diff --git a/08eb91e3-e495c98f45ef3ea208e5.js b/08eb91e3-e495c98f45ef3ea208e5.js new file mode 100644 index 00000000..115f783c --- /dev/null +++ b/08eb91e3-e495c98f45ef3ea208e5.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{OkDN:function(e,t,o){"use strict";o.d(t,"a",(function(){return G}));o("RUBk");var c=o("t8Zj"),n=o("8o2o"),l=o("k1TG"),r=o("DZdY"),a=o("FdF9"),i=o("Wbzz"),p=o("7ljp"),s=o("5hOV"),b=o("nR6F"),u=o("7pWL"),d=o("dSoD"),f=o("JoNN"),g=o("kW80"),j=o("XTYC"),m=o("dN85"),O=o("EAKA"),h=o("mBwQ"),w=o("eVhr"),x=o("9CUm"),y=o("rY4l"),v=o("Cgmk"),k=o("4FWg"),P=o("ZNFm"),S=o("3EkF"),z=(o("ewTs"),o("a//A"),o("8ypT"),o("cu9l"),o("7oih")),U=o("/Ezq"),L=o.n(U),T=o("AeFk");var q=[{logo:o("YIAf"),label:"Used by Microsoft - Fluent UI",url:"https://microsoft.com/"},{logo:o("wUyZ"),label:"Used by Atlassian - Atlaskit",url:"https://www.atlassian.com/"},{logo:o("58qx"),label:"Used by Bootstrap",url:"https://getbootstrap.com/"},{logo:o("LGgb"),label:"Used by GitLab",url:"https://www.gitlab.com/"},{logo:o("Sdhm"),label:"Used by Adobe - @webspectrum components",url:"https://www.adobe.com/"},{logo:o("GMLL"),label:"Used by Stack Exchange",url:"https://www.stackexchange.com/"},{logo:o("tMvK"),label:"Used by Drupal",url:"https://www.drupal.org/"},{logo:o("s0KR"),label:"Used by Uber - Base Web",url:"https://www.uber.com/"},{logo:o("0Ufg"),label:"Used by Twitch",url:"https://www.twitch.tv/"},{logo:o("01ya"),label:"Used by Discourse",url:"https://www.discourse.org/"},{logo:o("WfnT"),label:"Used by Reddit",url:"https://www.reddit.com/"},{logo:o("b8Gz"),label:"Used by Linear",url:"https://www.linear.app/"}],F=Object(r.a)("div",{target:"eetfspd15"})({name:"1lw3ul3",styles:"margin-top:40px"}),N=Object(r.a)((function(e){return Object(T.c)("a",{href:e.href,target:"_blank",className:e.className,title:e.alt,rel:"noopener noreferrer"},Object(T.c)("img",{src:e.src,alt:e.alt,width:"40",height:"40"}))}),{target:"eetfspd14"})({name:"1qkqa41",styles:"opacity:0.2;transition:opacity 0.2s ease-in-out;&:hover{opacity:1;}img{height:40px;margin:10px;}"}),C=Object(r.a)("a",{target:"eetfspd13"})({name:"w5wlfn",styles:"display:inline-block;background:white;padding:10px 16px;border-radius:4px;text-decoration:none;font-size:16px;font-weight:700;margin-top:10px;color:#c83b50;transition:all 0.2s ease-in-out;text-transform:uppercase;&:hover{background:#c73a50;color:white;border-color:#c73a50;}"}),E=Object(r.a)("h3",{target:"eetfspd12"})({name:"jajmcq",styles:"font-family:'Luckiest Guy',sans-serif;letter-spacing:0.5px;text-transform:uppercase;font-size:30px;-webkit-font-smoothing:antialiased;margin-top:15px;margin-bottom:15px;line-height:1.1;color:#f4e0f1"}),M=Object(a.forwardRef)((function(e,t){return Object(T.c)("img",Object(l.a)({ref:t,alt:"Popcorn box"},e,{width:"134",height:"120",css:Object(T.b)("position:relative;left:50%;width:134px;height:120px;margin-left:-67px;transform:scale(0.8);",k.e.sm,"{transform:scale(1);}","")}))})),W=Object(r.a)("div",{target:"eetfspd11"})({name:"js5pyw",styles:"font-weight:900;text-transform:uppercase"}),A=Object(r.a)("div",{target:"eetfspd10"})({name:"lugakg",styles:"font-weight:normal"}),D=Object(r.a)("button",{target:"eetfspd9"})({name:"1oov3vu",styles:"display:flex;justify-content:center;align-items:center;position:absolute;width:50px;height:50px;padding:0;border:none;background:none;transition:transform 0.4s cubic-bezier(0.54, 1.5, 0.38, 1.2);cursor:pointer;outline:0;will-change:transform;-webkit-tap-highlight-color:transparent;&:focus>div{box-shadow:0 0 0 6px rgba(255, 100, 150, 0.4);}&:hover{transform:scale(1.5);}&[data-placement^='top']{top:0;left:50%;margin-left:-25px;}&[data-placement^='bottom']{bottom:0;left:50%;margin-left:-25px;}&[data-placement='top-start'],&[data-placement='bottom-start']{left:calc(50% - 50px);}&[data-placement='top-end'],&[data-placement='bottom-end']{left:calc(50% + 50px);}&[data-placement^='right']{right:0;top:50%;margin-top:-25px;}&[data-placement^='left']{left:0;top:50%;margin-top:-25px;}&[data-placement='left-start'],&[data-placement='right-start']{top:calc(50% - 50px);}&[data-placement='left-end'],&[data-placement='right-end']{top:calc(50% + 50px);}"}),R=Object(r.a)("div",{target:"eetfspd8"})("width:18px;height:18px;border:2px solid #ff6b81;background:",(function(e){return e.selected?"#ff6b81":"transparent"}),";border-radius:50%;"),B=Object(r.a)("section",{target:"eetfspd7"})("background-color:#281e36;padding:40px 0;font-size:16px;text-align:center;",k.e.lg,"{font-size:18px;padding:50px 0;}&:not(:last-of-type){border-bottom:1px solid #362c4f;}"),G=Object(r.a)("div",{target:"eetfspd6"})({name:"1mjs8ts",styles:"position:relative;width:100%;scrollbar-color:rgba(255, 230, 157, 1) transparent;border-radius:10px;::-webkit-scrollbar{-webkit-appearance:none;width:7px;}::-webkit-scrollbar-thumb{border-radius:4px;background-color:rgba(255, 230, 157, 1);-webkit-box-shadow:0 0 1px rgba(255, 255, 255, 0.5);}"}),I=Object(r.a)(G,{target:"eetfspd5"})("height:350px;text-align:center;margin:0 auto;",k.e.lg,"{height:450px;}"),X=Object(r.a)(G,{target:"eetfspd4"})("overflow-y:scroll;overscroll-behavior:contain;height:350px;margin:0 auto;border:2px dashed #ff6b81;background-color:#281e36;",k.e.lg,"{height:450px;}&::before{content:'';display:block;width:1px;height:600px;}&::after{content:'';display:block;width:1px;height:600px;}"),Y=Object(r.a)("article",{target:"eetfspd3"})("padding:40px 0;display:flex;flex-direction:column-reverse;&:not(:last-of-type){border-bottom:1px solid #44395d;}",k.e.lg,"{display:grid;grid-template-columns:2fr 3fr;align-items:start;font-size:17px;padding:50px 0;}strong{color:#ff6b81;}p{margin-top:0;}"),$=Object(r.a)("div",{target:"eetfspd2"})("padding:20px 0 0;display:grid;align-items:center;margin-bottom:20px;",k.e.lg,"{padding:0 40px;margin-bottom:0;}"),K=Object(r.a)("ul",{target:"eetfspd1"})({name:"14cmubt",styles:"padding-left:20px;list-style:none;margin-top:0;text-align:left"}),Z=Object(r.a)("li",{target:"eetfspd0"})({name:"72dxhv",styles:"svg{display:inline-block;top:6px;left:2px;margin-right:6px;position:relative;color:#ff6b81;height:25px;margin-left:-30px;}strong{color:#ff6b81;}&:not(:last-of-type){margin-bottom:10px;}"}),J={a:function(e){var t=e.href,o=Object(n.a)(e,["href"]);return Object(T.c)(i.Link,Object(l.a)({to:t},o))}},H={name:"4f3wnu",styles:"position:absolute;top:50%;margin-top:-60px"},Q=function(){var e=Object(a.useState)("top"),t=e[0],o=e[1],n=Object(P.c)({placement:t,modifiers:[{name:"flip",enabled:!1},{name:"preventOverflow",options:{rootBoundary:"document"}}]}),l=n.reference,r=n.popper,i="\nimport { createPopper } from '@popperjs/core';\n\nconst popcorn = document.querySelector('#popcorn');\nconst tooltip = document.querySelector('#tooltip');\n\ncreatePopper(popcorn, tooltip, {\n placement: '"+t+"',\n});";return Object(T.c)(Y,null,Object(T.c)(I,null,["top","right","bottom","left"].reduce((function(e,t){return[].concat(Object(c.a)(e),Object(c.a)(["bottom","left"].indexOf(t)>=0?[t+"-end",t,t+"-start"]:[t+"-start",t,t+"-end"]))}),[]).map((function(e){return Object(T.c)(D,{key:e,onClick:function(){return o(e)},onMouseDown:function(){return o(e)},"data-placement":e,"aria-label":e,selected:t===e},Object(T.c)(R,{selected:t===e}))})),Object(T.c)(M,{ref:l,src:L.a,css:H}),Object(T.c)(P.b,{ref:r},Object(T.c)(W,{"data-small":!0},"Tip"),Object(T.c)(W,null,"Popcorn"),Object(T.c)(P.a,{"data-popper-arrow":!0}))),Object(T.c)($,null,Object(T.c)(E,null,Object(T.c)(s.a,null)," Placement"),Object(T.c)("p",null,Object(T.c)("strong",null,"Click on the dots")," to place the tooltip. There are 12 different placements to choose from."),Object(T.c)(h.a,{code:i}),Object(T.c)("span",null,Object(T.c)(k.b,{to:"https://codesandbox.io/s/github/floating-ui/popper.js.org/tree/master/examples/placement"},"Edit on CodeSandbox"))))},V={name:"g5empg",styles:"position:absolute;left:100px"},_={name:"vabva8",styles:"position:relative;overflow:hidden"},ee=function(){var e=Object(a.useState)(),t=e[0],o=e[1],c=Object(a.useRef)(),n=Object(P.c)({placement:"right",modifiers:[{name:"preventOverflow",options:{boundary:t}}]}),l=n.reference,r=n.popper;Object(a.useLayoutEffect)((function(){c.current.scrollTop=window.innerWidth<=k.f.lg?490:450}),[]);return Object(T.c)(Y,null,Object(T.c)("div",{css:_,ref:o},Object(T.c)(X,{ref:c},Object(T.c)(M,{ref:l,src:L.a,css:V})),Object(T.c)(P.b,{ref:r},Object(T.c)(W,null,"Popcorn"),Object(T.c)(W,null,"sizes"),Object(T.c)(W,null,"& Price"),Object(T.c)(A,null,"XXS: $1.99"),Object(T.c)(A,null,"XS: $2.99"),Object(T.c)(A,null,"S: $3.99"),Object(T.c)(A,null,"M: $4.99"),Object(T.c)(A,null,"L: $5.99"),Object(T.c)(A,null,"XL: $6.99"),Object(T.c)(A,null,"XXL: $7.99"),Object(T.c)(P.a,{"data-popper-arrow":!0}))),Object(T.c)($,null,Object(T.c)(E,null,Object(T.c)(b.a,null)," Overflow prevention"),Object(T.c)("p",null,Object(T.c)("strong",null,"Scroll the container")," (or the whole page) to see the tooltip stay within the boundary. Once the opposite edges of the popcorn and tooltip are aligned, the tooltip is allowed to overflow to prevent detachment."),Object(T.c)(h.a,{code:"\nimport { createPopper } from '@popperjs/core';\n\nconst popcorn = document.querySelector('#popcorn');\nconst tooltip = document.querySelector('#tooltip');\n\ncreatePopper(popcorn, tooltip, {\n placement: 'right',\n});\n"}),Object(T.c)("span",null,Object(T.c)(k.b,{to:"https://codesandbox.io/s/github/floating-ui/popper.js.org/tree/master/examples/overflow-prevention"},"Edit on CodeSandbox"))))},te=function(){var e=Object(P.c)({placement:"bottom"}),t=e.reference,o=e.popper,c=Object(a.useRef)();Object(a.useLayoutEffect)((function(){c.current.scrollTop=window.innerWidth<=k.f.lg?490:450}),[]);return Object(T.c)(Y,null,Object(T.c)(X,{ref:c},Object(T.c)(M,{ref:t,src:L.a}),Object(T.c)(P.b,{ref:o},Object(T.c)(W,null,"Popcorn"),Object(T.c)(A,null,"New Item"),Object(T.c)(P.a,{"data-popper-arrow":!0}))),Object(T.c)($,null,Object(T.c)(E,null,Object(T.c)(u.a,null),Object(T.c)(d.a,null)," Flipping"),Object(T.c)("p",null,Object(T.c)("strong",null,"Scroll the container")," (or the whole page) to see the tooltip flip to the opposite side once it's about to overflow the visible area. Once enough space is detected on its preferred side, it will flip back."),Object(T.c)(h.a,{code:"\nimport { createPopper } from '@popperjs/core';\n\nconst popcorn = document.querySelector('#popcorn');\nconst tooltip = document.querySelector('#tooltip');\n\ncreatePopper(popcorn, tooltip);\n"})," ",Object(T.c)("span",null,Object(T.c)(k.b,{to:"https://codesandbox.io/s/github/floating-ui/popper.js.org/tree/master/examples/flipping"},"Edit on CodeSandbox"))))},oe={name:"iyyzlo",styles:"margin-top:4rem"};t.b=function(e){e.children;var t=Object(i.useStaticQuery)("1495678274");return Object(T.c)(p.a,{components:J},Object(T.c)(x.a,{title:"Home"}),Object(T.c)(z.a,null),Object(T.c)(y.a,{siteTitle:t.site.siteMetadata.title,css:oe}),Object(T.c)(v.a,null),Object(T.c)(w.a,{css:Object(T.b)("margin-top:4rem;",k.e.lg,"{position:absolute;top:0;right:15px;.carbonplaceholder,#carbonads{background-color:#ffffff4f;color:#632f45;}}","")}),Object(T.c)(k.a,{maxWidth:1400},Object(T.c)(Q,null),Object(T.c)(ee,null),Object(T.c)(te,null)),Object(T.c)(B,null,Object(T.c)(k.a,null,Object(T.c)(b.a,{size:50,stroke:"#ffe69d"}),Object(T.c)(E,null,"In a nutshell, Popper:"),Object(T.c)(K,null,Object(T.c)(Z,null,Object(T.c)(f.a,null),Object(T.c)("strong",null,"Places your tooltip or popover relative to the reference")," ","taking into account their sizes, and positions its arrow centered to the reference."),Object(T.c)(Z,null,Object(T.c)(f.a,null),Object(T.c)("strong",null,"Takes into account the many different contexts it can live in")," ","relative to the reference (different offsetParents, different or nested scrolling containers)."),Object(T.c)(Z,null,Object(T.c)(f.a,null),Object(T.c)("strong",null,"Keeps your tooltip or popover in view as best as possible"),". It prevents it from being clipped or cut off (overflow prevention) and changes the placement if the original does not fit (flipping).")))),Object(T.c)(B,null,Object(T.c)(k.a,null,Object(T.c)(g.a,{size:50,stroke:"#ffe69d"}),Object(T.c)(E,null,"Our Sponsors"),Object(T.c)("p",null,"Popper is proudly sponsored by the following organizations,",Object(T.c)("br",null),"join them on"," ",Object(T.c)(k.b,{to:"https://opencollective.com/floating-ui"},"Open Collective")," ","to support us."),Object(T.c)(S.a,null))),Object(T.c)(B,null,Object(T.c)(k.a,null,Object(T.c)(j.a,{size:50,stroke:"#ffe69d"}),Object(T.c)(E,null,"Granular configuration with sensible defaults"),Object(T.c)("p",null,'Popper aims to "just work" without you needing to configure much. Of course, there are cases where you need to configure Popper beyond its defaults – in these cases, Popper shines by offering high granularity of configuration to fine-tune the position or behavior of your popper.'),Object(T.c)("p",null,"You can extend Popper with your own modifiers (or plugins) to make your popper work for you, no matter how advanced the scenario."))),Object(T.c)(B,null,Object(T.c)(k.a,null,Object(T.c)(f.a,{size:50,stroke:"#ffe69d"}),Object(T.c)(E,null,"No compromises"),Object(T.c)(K,null,Object(T.c)(Z,null,Object(T.c)(f.a,null),Object(T.c)("strong",null,"No detachment"),". Position updates take less than a millisecond on average devices. Popper doesn't debounce the positioning updates of the tooltip to the point where it will"," ",Object(T.c)("em",null,"ever")," detach from its reference, but this doesn't come at the cost of poor performance."),Object(T.c)(Z,null,Object(T.c)(f.a,null),Object(T.c)("strong",null,"You don't have to change the DOM context of your tooltip or popover element"),"; it will work no matter where your popper and reference elements live, even in the most complex scenarios like nested scrolling containers or alternative offsetParent contexts."),Object(T.c)(Z,null,Object(T.c)(f.a,null),Object(T.c)("strong",null,"Still lightweight"),". Handling all of this complexity is still done in an efficient manner. The base Popper is only 2 kB minzipped.")))),Object(T.c)(B,null,Object(T.c)(k.a,null,Object(T.c)(m.a,{size:50,stroke:"#ffe69d"}),Object(T.c)(E,null,"Free open-source, used by millions"),Object(T.c)("p",null,"Popper has billions of hits across the web, is trusted by millions of developers in production, and used in popular libraries like Bootstrap and Material UI."),Object(T.c)(C,{href:"https://opencollective.com/floating-ui",target:"_blank",rel:"noopener noreferrer"},"Support us"),Object(T.c)(F,null,q.map((function(e){var t=e.logo,o=e.label,c=e.url;return Object(T.c)(N,{href:c,src:t,alt:o,key:c})}))))),Object(T.c)(B,null,Object(T.c)(k.a,null,Object(T.c)(O.a,{size:50,stroke:"#ffe69d"}),Object(T.c)(E,null,"Ready to start?"),Object(T.c)("p",null,"Start reading"," ",Object(T.c)(k.d,{to:"/docs/"},"Popper's documentation"),"!"))),Object(T.c)(k.c,null,Object(T.c)(k.a,null,Object(T.c)("p",null,"© ",(new Date).getFullYear()," MIT License"))))}}}]); +//# sourceMappingURL=08eb91e3-e495c98f45ef3ea208e5.js.map \ No newline at end of file diff --git a/08eb91e3-e495c98f45ef3ea208e5.js.map b/08eb91e3-e495c98f45ef3ea208e5.js.map new file mode 100644 index 00000000..5a1d7177 --- /dev/null +++ b/08eb91e3-e495c98f45ef3ea208e5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/components/Landing.js"],"names":["USED_BY_LIST","logo","require","label","url","UsedByContainer","UsedByLogo","props","href","target","className","title","alt","rel","src","width","height","Button","Heading","PopcornBox","forwardRef","ref","css","media","sm","TooltipName","TooltipPrice","DotHitArea","Dot","selected","Section","lg","ExampleArea","DotContainer","ScrollContainer","ExampleBox","ExampleText","Ul","Li","components","a","to","PlacementExample","useState","placement","setPlacement","usePopper","modifiers","name","enabled","options","rootBoundary","reference","popper","code","reduce","placements","basePlacement","indexOf","map","p","key","onClick","onMouseDown","data-placement","aria-label","popcornBox","data-small","data-popper-arrow","PreventOverflowExample","boundary","setBoundary","scrollContainerRef","useRef","useLayoutEffect","current","scrollTop","window","innerWidth","sizes","FlipExample","Layout","children","data","useStaticQuery","siteTitle","site","siteMetadata","maxWidth","size","stroke","Date","getFullYear"],"mappings":"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","file":"08eb91e3-e495c98f45ef3ea208e5.js","sourcesContent":["/**\n * Layout component that queries for data\n * with Gatsby's useStaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React, { useState, useLayoutEffect, useRef, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useStaticQuery, graphql, Link } from 'gatsby';\nimport { MDXProvider } from '@mdx-js/react';\nimport styled from '@emotion/styled';\nimport {\n Crop,\n Layers,\n Heart,\n Check,\n ChevronRight,\n CloudLightning,\n Move,\n ArrowUp,\n ArrowDown,\n} from 'react-feather';\nimport Highlight from './Highlight';\nimport CarbonAds from './CarbonAds';\nimport SEO from './Seo';\n\nimport Header from './Header';\nimport InstallBar from './InstallBar';\nimport {\n Container,\n LinkStyled,\n ExternalLinkStyled,\n media,\n Footer,\n sizes,\n} from './Framework';\nimport { usePopper, Tooltip, Arrow } from './Popper';\nimport { Sponsors } from './Affiliates';\nimport 'modern-normalize';\nimport '@openfonts/luckiest-guy_latin';\nimport './layout.css';\nimport './prism-base2tone-pool-dark.css';\nimport { FloatingUIBanner } from './Layout';\n\nimport popcornBox from '../images/popcorn-box.svg';\nimport { css } from '@emotion/react';\n\nconst USED_BY_LIST = [\n {\n logo: require('../images/logos/microsoft.svg'),\n label: 'Used by Microsoft - Fluent UI',\n url: 'https://microsoft.com/',\n },\n {\n logo: require('../images/logos/atlassian.svg'),\n label: 'Used by Atlassian - Atlaskit',\n url: 'https://www.atlassian.com/',\n },\n {\n logo: require('../images/logos/bootstrap.svg'),\n label: 'Used by Bootstrap',\n url: 'https://getbootstrap.com/',\n },\n {\n logo: require('../images/logos/gitlab.svg'),\n label: 'Used by GitLab',\n url: 'https://www.gitlab.com/',\n },\n {\n logo: require('../images/logos/adobe.svg'),\n label: 'Used by Adobe - @webspectrum components',\n url: 'https://www.adobe.com/',\n },\n {\n logo: require('../images/logos/stackexchange.svg'),\n label: 'Used by Stack Exchange',\n url: 'https://www.stackexchange.com/',\n },\n {\n logo: require('../images/logos/drupal.svg'),\n label: 'Used by Drupal',\n url: 'https://www.drupal.org/',\n },\n {\n logo: require('../images/logos/uber.svg'),\n label: 'Used by Uber - Base Web',\n url: 'https://www.uber.com/',\n },\n {\n logo: require('../images/logos/twitch.svg'),\n label: 'Used by Twitch',\n url: 'https://www.twitch.tv/',\n },\n {\n logo: require('../images/logos/discourse.svg'),\n label: 'Used by Discourse',\n url: 'https://www.discourse.org/',\n },\n {\n logo: require('../images/logos/reddit.svg'),\n label: 'Used by Reddit',\n url: 'https://www.reddit.com/',\n },\n {\n logo: require('../images/logos/linear.svg'),\n label: 'Used by Linear',\n url: 'https://www.linear.app/',\n },\n];\n\nconst UsedByContainer = styled.div`\n margin-top: 40px;\n`;\n\nconst UsedByLogo = styled((props) => (\n \n {props.alt}\n \n))`\n opacity: 0.2;\n transition: opacity 0.2s ease-in-out;\n &:hover {\n opacity: 1;\n }\n img {\n height: 40px;\n margin: 10px;\n }\n`;\n\nconst Button = styled.a`\n display: inline-block;\n background: white;\n padding: 10px 16px;\n border-radius: 4px;\n text-decoration: none;\n font-size: 16px;\n font-weight: 700;\n margin-top: 10px;\n color: #c83b50;\n transition: all 0.2s ease-in-out;\n text-transform: uppercase;\n\n &:hover {\n background: #c73a50;\n color: white;\n border-color: #c73a50;\n }\n`;\n\nconst Heading = styled.h3`\n font-family: 'Luckiest Guy', sans-serif;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n font-size: 30px;\n -webkit-font-smoothing: antialiased;\n margin-top: 15px;\n margin-bottom: 15px;\n line-height: 1.1;\n color: #f4e0f1;\n`;\n\nconst PopcornBox = forwardRef((props, ref) => (\n \n));\n\nconst TooltipName = styled.div`\n font-weight: 900;\n text-transform: uppercase;\n`;\n\nconst TooltipPrice = styled.div`\n font-weight: normal;\n`;\n\nconst DotHitArea = styled.button`\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n width: 50px;\n height: 50px;\n padding: 0;\n border: none;\n background: none;\n transition: transform 0.4s cubic-bezier(0.54, 1.5, 0.38, 1.2);\n cursor: pointer;\n outline: 0;\n will-change: transform;\n -webkit-tap-highlight-color: transparent;\n\n &:focus > div {\n box-shadow: 0 0 0 6px rgba(255, 100, 150, 0.4);\n }\n\n &:hover {\n transform: scale(1.5);\n }\n\n &[data-placement^='top'] {\n top: 0;\n left: 50%;\n margin-left: -25px;\n }\n\n &[data-placement^='bottom'] {\n bottom: 0;\n left: 50%;\n margin-left: -25px;\n }\n\n &[data-placement='top-start'],\n &[data-placement='bottom-start'] {\n left: calc(50% - 50px);\n }\n\n &[data-placement='top-end'],\n &[data-placement='bottom-end'] {\n left: calc(50% + 50px);\n }\n\n &[data-placement^='right'] {\n right: 0;\n top: 50%;\n margin-top: -25px;\n }\n\n &[data-placement^='left'] {\n left: 0;\n top: 50%;\n margin-top: -25px;\n }\n\n &[data-placement='left-start'],\n &[data-placement='right-start'] {\n top: calc(50% - 50px);\n }\n\n &[data-placement='left-end'],\n &[data-placement='right-end'] {\n top: calc(50% + 50px);\n }\n`;\n\nconst Dot = styled.div`\n width: 18px;\n height: 18px;\n border: 2px solid #ff6b81;\n background: ${(props) => (props.selected ? '#ff6b81' : 'transparent')};\n border-radius: 50%;\n`;\n\nconst Section = styled.section`\n background-color: #281e36;\n padding: 40px 0;\n font-size: 16px;\n text-align: center;\n\n ${media.lg} {\n font-size: 18px;\n padding: 50px 0;\n }\n\n &:not(:last-of-type) {\n border-bottom: 1px solid #362c4f;\n }\n`;\n\nexport const ExampleArea = styled.div`\n position: relative;\n width: 100%;\n scrollbar-color: rgba(255, 230, 157, 1) transparent;\n border-radius: 10px;\n\n ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 7px;\n }\n ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(255, 230, 157, 1);\n -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, 0.5);\n }\n`;\n\nconst DotContainer = styled(ExampleArea)`\n height: 350px;\n text-align: center;\n margin: 0 auto;\n\n ${media.lg} {\n height: 450px;\n }\n`;\n\nexport const ScrollContainer = styled(ExampleArea)`\n overflow-y: scroll;\n overscroll-behavior: contain;\n height: 350px;\n margin: 0 auto;\n border: 2px dashed #ff6b81;\n background-color: #281e36;\n\n ${media.lg} {\n height: 450px;\n }\n\n &::before {\n content: '';\n display: block;\n width: 1px;\n height: 600px;\n }\n\n &::after {\n content: '';\n display: block;\n width: 1px;\n height: 600px;\n }\n`;\n\nconst ExampleBox = styled.article`\n padding: 40px 0;\n display: flex;\n flex-direction: column-reverse;\n\n &:not(:last-of-type) {\n border-bottom: 1px solid #44395d;\n }\n\n ${media.lg} {\n display: grid;\n grid-template-columns: 2fr 3fr;\n align-items: start;\n font-size: 17px;\n padding: 50px 0;\n }\n\n strong {\n color: #ff6b81;\n }\n\n p {\n margin-top: 0;\n }\n`;\n\nconst ExampleText = styled.div`\n padding: 20px 0 0;\n display: grid;\n align-items: center;\n margin-bottom: 20px;\n\n ${media.lg} {\n padding: 0 40px;\n margin-bottom: 0;\n }\n`;\n\nconst Ul = styled.ul`\n padding-left: 20px;\n list-style: none;\n margin-top: 0;\n text-align: left;\n`;\n\nconst Li = styled.li`\n svg {\n display: inline-block;\n top: 6px;\n left: 2px;\n margin-right: 6px;\n position: relative;\n color: #ff6b81;\n height: 25px;\n margin-left: -30px;\n }\n\n strong {\n color: #ff6b81;\n }\n\n &:not(:last-of-type) {\n margin-bottom: 10px;\n }\n`;\n\nconst components = {\n a: ({ href, ...props }) => ,\n};\n\nconst PlacementExample = () => {\n const [placement, setPlacement] = useState('top');\n const { reference, popper } = usePopper({\n placement,\n modifiers: [\n {\n name: 'flip',\n enabled: false,\n },\n // left/right placements on mobile\n {\n name: 'preventOverflow',\n options: {\n rootBoundary: 'document',\n },\n },\n ],\n });\n\n const code = `\nimport { createPopper } from '@popperjs/core';\n\nconst popcorn = document.querySelector('#popcorn');\nconst tooltip = document.querySelector('#tooltip');\n\ncreatePopper(popcorn, tooltip, {\n placement: '${placement}',\n});`;\n\n return (\n \n \n {['top', 'right', 'bottom', 'left']\n .reduce(\n (placements, basePlacement) => [\n ...placements,\n // clockwise tabbing order\n ...(['bottom', 'left'].indexOf(basePlacement) >= 0\n ? [\n `${basePlacement}-end`,\n basePlacement,\n `${basePlacement}-start`,\n ]\n : [\n `${basePlacement}-start`,\n basePlacement,\n `${basePlacement}-end`,\n ]),\n ],\n []\n )\n .map((p) => (\n setPlacement(p)}\n onMouseDown={() => setPlacement(p)}\n data-placement={p}\n aria-label={p}\n selected={placement === p}\n >\n \n \n ))}\n \n \n Tip\n Popcorn\n \n \n \n \n \n Placement\n \n

\n Click on the dots to place the tooltip. There are 12\n different placements to choose from.\n

\n \n \n \n Edit on CodeSandbox\n \n \n
\n
\n );\n};\n\nconst PreventOverflowExample = () => {\n const [boundary, setBoundary] = useState();\n const scrollContainerRef = useRef();\n\n const { reference, popper } = usePopper({\n placement: 'right',\n modifiers: [\n {\n name: 'preventOverflow',\n options: {\n boundary,\n },\n },\n ],\n });\n\n useLayoutEffect(() => {\n scrollContainerRef.current.scrollTop =\n window.innerWidth <= sizes.lg ? 490 : 450;\n }, []);\n\n const code = `\nimport { createPopper } from '@popperjs/core';\n\nconst popcorn = document.querySelector('#popcorn');\nconst tooltip = document.querySelector('#tooltip');\n\ncreatePopper(popcorn, tooltip, {\n placement: 'right',\n});\n`;\n\n return (\n \n \n \n \n \n \n Popcorn\n sizes\n & Price\n\n XXS: $1.99\n XS: $2.99\n S: $3.99\n M: $4.99\n L: $5.99\n XL: $6.99\n XXL: $7.99\n\n \n \n \n \n \n Overflow prevention\n \n

\n Scroll the container (or the whole page) to see the\n tooltip stay within the boundary. Once the opposite edges of the\n popcorn and tooltip are aligned, the tooltip is allowed to overflow to\n prevent detachment.\n

\n \n \n \n Edit on CodeSandbox\n \n \n
\n
\n );\n};\n\nconst FlipExample = () => {\n const { reference, popper } = usePopper({ placement: 'bottom' });\n const scrollContainerRef = useRef();\n\n useLayoutEffect(() => {\n scrollContainerRef.current.scrollTop =\n window.innerWidth <= sizes.lg ? 490 : 450;\n }, []);\n\n const code = `\nimport { createPopper } from '@popperjs/core';\n\nconst popcorn = document.querySelector('#popcorn');\nconst tooltip = document.querySelector('#tooltip');\n\ncreatePopper(popcorn, tooltip);\n`;\n\n return (\n \n \n \n \n Popcorn\n New Item\n\n \n \n \n \n \n \n Flipping\n \n

\n Scroll the container (or the whole page) to see the\n tooltip flip to the opposite side once it's about to overflow the\n visible area. Once enough space is detected on its preferred side, it\n will flip back.\n

\n {' '}\n \n \n Edit on CodeSandbox\n \n \n
\n
\n );\n};\n\nconst Layout = ({ children }) => {\n const data = useStaticQuery(graphql`\n query LandingTitleQuery {\n site {\n siteMetadata {\n title\n }\n }\n }\n `);\n\n return (\n \n \n \n \n \n \n\n \n \n \n \n \n\n
\n \n \n In a nutshell, Popper:\n
    \n
  • \n \n \n Places your tooltip or popover relative to the reference\n {' '}\n taking into account their sizes, and positions its arrow centered\n to the reference.\n
  • \n
  • \n \n \n Takes into account the many different contexts it can live in\n {' '}\n relative to the reference (different offsetParents, different or\n nested scrolling containers).\n
  • \n
  • \n \n \n Keeps your tooltip or popover in view as best as possible\n \n . It prevents it from being clipped or cut off (overflow\n prevention) and changes the placement if the original does not fit\n (flipping).\n
  • \n
\n
\n
\n\n
\n \n \n Our Sponsors\n

\n Popper is proudly sponsored by the following organizations,\n
\n join them on{' '}\n \n Open Collective\n {' '}\n to support us.\n

\n\n \n
\n
\n\n
\n \n \n Granular configuration with sensible defaults\n

\n Popper aims to \"just work\" without you needing to configure much. Of\n course, there are cases where you need to configure Popper beyond\n its defaults – in these cases, Popper shines by offering high\n granularity of configuration to fine-tune the position or behavior\n of your popper.\n

\n

\n You can extend Popper with your own modifiers (or plugins) to make\n your popper work for you, no matter how advanced the scenario.\n

\n
\n
\n\n
\n \n \n No compromises\n
    \n
  • \n \n No detachment. Position updates take less than a\n millisecond on average devices. Popper doesn't debounce the\n positioning updates of the tooltip to the point where it will{' '}\n ever detach from its reference, but this doesn't come at\n the cost of poor performance.\n
  • \n
  • \n \n \n You don't have to change the DOM context of your tooltip or\n popover element\n \n ; it will work no matter where your popper and reference elements\n live, even in the most complex scenarios like nested scrolling\n containers or alternative offsetParent contexts.\n
  • \n
  • \n \n Still lightweight. Handling all of this\n complexity is still done in an efficient manner. The base Popper\n is only 2 kB minzipped.\n
  • \n
\n
\n
\n\n
\n \n \n Free open-source, used by millions\n

\n Popper has billions of hits across the web, is trusted by millions\n of developers in production, and used in popular libraries like\n Bootstrap and Material UI.\n

\n \n Support us\n \n \n {USED_BY_LIST.map(({ logo, label, url }) => (\n \n ))}\n \n
\n
\n\n
\n \n \n Ready to start?\n

\n Start reading{' '}\n Popper's documentation!\n

\n
\n
\n\n
\n \n

© {new Date().getFullYear()} MIT License

\n
\n
\n
\n );\n};\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 00000000..92dee901 --- /dev/null +++ b/404.html @@ -0,0 +1,36 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home
      • Popper

NOT FOUND

You just hit a route that doesn't exist... the sadness.

Home
© 2023 MIT License
\ No newline at end of file diff --git a/404/index.html b/404/index.html new file mode 100644 index 00000000..b806f1ee --- /dev/null +++ b/404/index.html @@ -0,0 +1,36 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home
      • Popper

NOT FOUND

You just hit a route that doesn't exist... the sadness.

Edit this page
Home
© 2023 MIT License
\ No newline at end of file diff --git a/42-60bff29ec746a9b20436.js b/42-60bff29ec746a9b20436.js new file mode 100644 index 00000000..6d22cfda --- /dev/null +++ b/42-60bff29ec746a9b20436.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[42],{Lfjm:function(n,f,i){},avE5:function(n,f,i){"use strict";i.r(f);var o=i("Lfjm");for(var t in o)["default"].indexOf(t)<0&&function(n){i.d(f,n,(function(){return o[n]}))}(t)}}]); +//# sourceMappingURL=42-60bff29ec746a9b20436.js.map \ No newline at end of file diff --git a/42-60bff29ec746a9b20436.js.map b/42-60bff29ec746a9b20436.js.map new file mode 100644 index 00000000..7c5da828 --- /dev/null +++ b/42-60bff29ec746a9b20436.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/@docsearch/react/style/index.js"],"names":[],"mappings":"mHAAA","file":"42-60bff29ec746a9b20436.js","sourcesContent":["export * from '@docsearch/css';"],"sourceRoot":""} \ No newline at end of file diff --git a/6cd9c5f3-b7f7a9b595b27a1cccc5.js b/6cd9c5f3-b7f7a9b595b27a1cccc5.js new file mode 100644 index 00000000..26e4faaa --- /dev/null +++ b/6cd9c5f3-b7f7a9b595b27a1cccc5.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{"7oih":function(t,e,o){"use strict";o.d(e,"a",(function(){return I}));o("RUBk");var n=o("8o2o"),a=o("k1TG"),r=o("DZdY"),i=o("FdF9"),c=o("Wbzz"),l=o("7ljp"),d=o("AeFk"),p=o("eVhr"),b=o("4FWg"),s=o("78ZJ"),g=o("7pXE"),f=o("9CUm"),u=o("9xdK"),x=o("r7HZ"),h=(o("a//A"),o("8ypT"),o("cu9l"),o("CwS1")),m=o("EAKA");var j=Object(r.a)("main",{target:"e1fogcta7"})("margin-left:0;padding-top:45px;",b.e.lg,"{padding-top:0;margin-left:",g.a,"px;}"),O=Object(r.a)(b.c,{target:"e1fogcta6"})("background:none;border-top:1px solid #44395d;",b.e.lg,"{margin-left:",g.a,"px;}"),v=Object(r.a)("div",{target:"e1fogcta5"})({name:"1bangpe",styles:"display:flex;border-top:1px solid #44395d;margin-top:50px"}),y=Object(r.a)(b.a,{target:"e1fogcta4"})("display:flex;justify-content:space-between;width:100%;padding:0;",b.e.md,"{padding:0 40px;}"),w=Object(r.a)("div",{target:"e1fogcta3"})({name:"9ry97j",styles:"display:flex;min-width:0;width:100%"}),k=Object(r.a)("div",{target:"e1fogcta2"})("display:none;min-width:1px;background:#44395d;height:100%;",b.e.md,"{display:block;}"),z=Object(r.a)(c.Link,{target:"e1fogcta1"})("position:relative;font-size:18px;padding:50px 40px;color:#4edee5;border-bottom:2px solid transparent;transition:none;word-break:break-word;width:100%;&[data-first]{padding-right:10px;}&[data-last]{padding-left:10px;text-align:right;}",b.e.md,"{font-size:22px;}",b.e.lg,"{font-size:24px;}&:hover{background-color:#281e36;border-bottom-color:#4edee5;}&:active{border-bottom-style:dashed;}"),F=Object(d.b)("vertical-align:3px;",b.e.md,"{vertical-align:0;}",""),L=Object(r.a)("span",{target:"e1fogcta0"})("position:absolute;top:50px;",b.e.md,"{top:54px;}",b.e.lg,"{top:56px;}&[data-prev]{left:10px;}&[data-next]{right:10px;}"),A={"x-ad":p.a,a:function(t){return Object(d.c)("a",Object(a.a)({},t,{onClick:C}),t.children)}};function C(t){try{var e=document.querySelector(window.location.hash);e.scrollIntoView();var o="H2"===e.nodeName;window.innerWidth<=b.f.lg?o||window.scrollBy(0,-60):o&&window.scrollBy(0,50)}catch(n){}}var E={name:"2h5m12",styles:"all:unset;box-sizing:border-box;&:hover,&:active,&:focus{border:none;}cursor:pointer;position:fixed;top:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:center;width:100%;height:4rem;background:#1f2028;color:rgb(221, 214, 254);border:none;text-align:center;font-size:16px;font-weight:bold;text-decoration:none;&:after{content:'';position:absolute;top:10px;left:10px;bottom:10px;right:10px;border-radius:20px;filter:blur(5px);z-index:-1;background-repeat:no-repeat;background-size:cover;background-position:center;background-image:radial-gradient(\n circle,\n rgba(51, 43, 61, 1) 4%,\n rgba(54, 45, 74, 1) 13%,\n rgba(65, 53, 120, 1) 40%,\n rgba(110, 66, 122, 1) 55%,\n rgba(119, 69, 122, 1) 71%,\n rgba(32, 33, 40, 1) 100%\n );}"},I=function(){return Object(d.c)("a",{css:E,href:"https://floating-ui.com",rel:"noopener noreferrer",target:"_blank"},"The future of Popper is here! Floating UI is now available. Get it now!")},T={name:"1wvsryt",styles:"margin-top:15px;display:inline-block"},B=function(t){var e=t.path;return Object(d.c)(s.a,null,(function(t){var o=t.find((function(t){return t.slug===e}));return o&&Object(d.c)("a",{css:T,href:"https://github.com/floating-ui/popper.js.org/edit/master/src/"+o.fileAbsolutePath.split("/src/")[1],rel:"noopener noreferrer",target:"_blank"},"Edit this page")}))},J={name:"iyyzlo",styles:"margin-top:4rem"};e.b=function(t){var e=t.children,o=t.location,a=t.pageResources,r=(Object(n.a)(t,["children","location","pageResources"]),o.pathname);return Object(i.useLayoutEffect)(C,[]),Object(d.c)(l.a,{components:A},Object(d.c)(d.a,{styles:Object(d.b)("h1,h2,h3,h4,h5,h6{color:#f4e0f1;font-weight:bold;}h1{font-size:40px;margin-top:20px;padding-top:20px;line-height:1.1;}h2{font-size:32px;line-height:1.3;}h3{font-size:24px;margin-bottom:10px;margin-top:40px;}h4{font-size:20px;margin-bottom:10px;}h5{font-size:18px;}h2::before{content:' ';display:block;border-bottom:1px solid #44395d;padding-top:20px;margin-bottom:40px;}blockquote{margin:0;padding:0.5em 30px;border-radius:0px 10px 10px 0px;background-color:rgba(135, 82, 27, 0.25);color:#ddc5a1;border-left:2px dashed #ddc5a1;}h3>code[class*='language-']{color:#ffe69d;}ul{padding-left:20px;}li{margin-bottom:5px;}a{color:#ffe69d;text-decoration:none;padding-bottom:1px;border-bottom:2px solid rgba(255, 228, 148, 0.25);transition:border-bottom-color 0.15s ease-in-out;&:hover{border-bottom:2px solid rgba(255, 228, 148, 1);}&:active{border-bottom-style:dashed;}}",b.e.md,"{pre[class*='language-']{padding:15px 20px;}}h1 .gatsby-link-icon{display:none;}h2,h3,h4,h5,h6{&:hover{.gatsby-link-icon{opacity:1;}}}.gatsby-link-icon{fill:#ffb6b3;border:none;margin-left:-30px;padding-right:10px;opacity:0;transition:opacity 0.15s ease-in-out;float:right;",b.e.md,"{float:left;}&:focus{opacity:1;}&:hover{border:none;}svg{width:20px;height:20px;}}","")}),Object(d.c)(I,null),Object(d.c)("div",{css:J},a&&Object(d.c)(f.a,{title:a.json.pageContext.frontmatter.title||a.json.pageContext.frontmatter.navigationLabel}),Object(d.c)(g.b,{root:"/",target:"location",path:r}),Object(d.c)(j,null,Object(d.c)(b.a,null,e,Object(d.c)(B,{path:r})),Object(d.c)(s.a,null,(function(t){var e=function(t){var e=function t(e){return e.reduce((function(e,o){return e.concat(o).concat(t(o.children))}),[])}(Object(u.a)(Object(x.a)(t,r))),o=e.findIndex((function(t){return t.slug===r}));return{prev:e[o-1],next:e[o+1]}}(t),o=e.prev,n=e.next;return Object(d.c)(v,null,Object(d.c)(y,null,Object(d.c)(w,null,o&&Object(d.c)(z,{to:""+o.slug,"data-first":!0},Object(d.c)(L,{"data-prev":!0},Object(d.c)(h.a,{size:28,css:F})),o.navigationLabel)),Object(d.c)(k,null),Object(d.c)(w,null,n&&Object(d.c)(z,{to:""+n.slug,"data-last":!0},n.navigationLabel,Object(d.c)(L,{"data-next":!0},Object(d.c)(m.a,{size:28,css:F}))))))}))),Object(d.c)(O,null,"© ",(new Date).getFullYear()," MIT License")))}}}]); +//# sourceMappingURL=6cd9c5f3-b7f7a9b595b27a1cccc5.js.map \ No newline at end of file diff --git a/6cd9c5f3-b7f7a9b595b27a1cccc5.js.map b/6cd9c5f3-b7f7a9b595b27a1cccc5.js.map new file mode 100644 index 00000000..89655625 --- /dev/null +++ b/6cd9c5f3-b7f7a9b595b27a1cccc5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/components/Layout.js"],"names":["Main","media","lg","NAVIGATION_WIDTH","FooterStyled","Footer","NavButtonWrapper","NavButtonContainer","Container","md","NavButtonCell","NavDivider","NavButton","Link","arrowCss","css","NavButtonDirection","components","CarbonAds","a","props","onClick","anchorScroll","children","event","element","document","querySelector","window","location","hash","scrollIntoView","isH2","nodeName","innerWidth","sizes","scrollBy","e","FloatingUIBanner","href","rel","target","EditPage","path","routes","route","find","slug","fileAbsolutePath","split","Layout","pageResources","pathname","useLayoutEffect","styles","title","json","pageContext","frontmatter","navigationLabel","root","validRoutes","flatten","reduce","acc","cur","concat","createTree","processRoutes","currentPathIndex","findIndex","prev","next","getPrevNextRoutes","to","data-first","data-prev","size","data-last","data-next","Date","getFullYear"],"mappings":"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","file":"6cd9c5f3-b7f7a9b595b27a1cccc5.js","sourcesContent":["/**\n * Layout component that queries for data\n * with Gatsby's useStaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport React, { useLayoutEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'gatsby';\nimport { MDXProvider } from '@mdx-js/react';\nimport styled from '@emotion/styled';\nimport { Global, css } from '@emotion/react';\nimport CarbonAds from './CarbonAds';\nimport { Container, media, Footer, sizes } from './Framework';\nimport { MdxRoutes } from '@pauliescanlon/gatsby-mdx-routes';\nimport Navigation, { NAVIGATION_WIDTH } from './Navigation';\nimport SEO from './Seo';\nimport { createTree } from '../utils/createTree';\nimport processRoutes from '../utils/processRoutes';\n\nimport '@openfonts/luckiest-guy_latin';\nimport './layout.css';\nimport './prism-base2tone-pool-dark.css';\nimport { ChevronRight, ChevronLeft } from 'react-feather';\n\nconst Main = styled.main`\n margin-left: 0;\n padding-top: 45px;\n\n ${media.lg} {\n padding-top: 0;\n margin-left: ${NAVIGATION_WIDTH}px;\n }\n`;\n\nconst FooterStyled = styled(Footer)`\n background: none;\n border-top: 1px solid #44395d;\n\n ${media.lg} {\n margin-left: ${NAVIGATION_WIDTH}px;\n }\n`;\n\nconst NavButtonWrapper = styled.div`\n display: flex;\n border-top: 1px solid #44395d;\n margin-top: 50px;\n`;\n\nconst NavButtonContainer = styled(Container)`\n display: flex;\n justify-content: space-between;\n width: 100%;\n padding: 0;\n\n ${media.md} {\n padding: 0 40px;\n }\n`;\n\nconst NavButtonCell = styled.div`\n display: flex;\n min-width: 0;\n width: 100%;\n`;\n\nconst NavDivider = styled.div`\n display: none;\n min-width: 1px;\n background: #44395d;\n height: 100%;\n\n ${media.md} {\n display: block;\n }\n`;\n\nconst NavButton = styled(Link)`\n position: relative;\n font-size: 18px;\n padding: 50px 40px;\n color: #4edee5;\n border-bottom: 2px solid transparent;\n transition: none;\n word-break: break-word;\n width: 100%;\n\n &[data-first] {\n padding-right: 10px;\n }\n\n &[data-last] {\n padding-left: 10px;\n text-align: right;\n }\n\n ${media.md} {\n font-size: 22px;\n }\n\n ${media.lg} {\n font-size: 24px;\n }\n\n &:hover {\n background-color: #281e36;\n border-bottom-color: #4edee5;\n }\n\n &:active {\n border-bottom-style: dashed;\n }\n`;\n\nconst arrowCss = css`\n vertical-align: 3px;\n\n ${media.md} {\n vertical-align: 0;\n }\n`;\n\nconst NavButtonDirection = styled.span`\n position: absolute;\n top: 50px;\n\n ${media.md} {\n top: 54px;\n }\n\n ${media.lg} {\n top: 56px;\n }\n\n &[data-prev] {\n left: 10px;\n }\n\n &[data-next] {\n right: 10px;\n }\n`;\n\nconst components = {\n 'x-ad': CarbonAds,\n a: (props) => (\n // eslint-disable-next-line\n \n {props.children}\n \n ),\n};\n\nfunction anchorScroll(event) {\n // if (event) {\n // event.preventDefault();\n // window.history.pushState({}, '', event.currentTarget.getAttribute('href'));\n // }\n\n try {\n const element = document.querySelector(window.location.hash);\n element.scrollIntoView();\n\n const isH2 = element.nodeName === 'H2';\n\n if (window.innerWidth <= sizes.lg) {\n if (!isH2) {\n window.scrollBy(0, -60);\n }\n } else if (isH2) {\n window.scrollBy(0, 50);\n }\n } catch (e) {}\n}\n\nconst flatten = (routes) =>\n routes.reduce(\n (acc, cur) => acc.concat(cur).concat(flatten(cur.children)),\n []\n );\n\nexport const FloatingUIBanner = () => (\n \n The future of Popper is here! Floating UI is now available. Get it now!\n \n);\n\nconst EditPage = ({ path }) => (\n \n {(routes) => {\n const route = routes.find((route) => route.slug === path);\n\n return (\n route && (\n \n Edit this page\n \n )\n );\n }}\n \n);\n\nconst Layout = ({ children, location, pageResources, ...props }) => {\n const path = location.pathname;\n function getPrevNextRoutes(routes) {\n const validRoutes = flatten(createTree(processRoutes(routes, path)));\n\n const currentPathIndex = validRoutes.findIndex(\n (route) => route.slug === path\n );\n\n return {\n prev: validRoutes[currentPathIndex - 1],\n next: validRoutes[currentPathIndex + 1],\n };\n }\n\n // HACK: remove this if the plugin can somehow work by default...\n // Fixes the anchor not being scrolled to on page load\n useLayoutEffect(anchorScroll, []);\n\n return (\n \n code[class*='language-'] {\n color: #ffe69d;\n }\n\n ul {\n padding-left: 20px;\n }\n\n li {\n margin-bottom: 5px;\n }\n\n a {\n color: #ffe69d;\n text-decoration: none;\n padding-bottom: 1px;\n border-bottom: 2px solid rgba(255, 228, 148, 0.25);\n transition: border-bottom-color 0.15s ease-in-out;\n\n &:hover {\n border-bottom: 2px solid rgba(255, 228, 148, 1);\n }\n\n &:active {\n border-bottom-style: dashed;\n }\n }\n\n ${media.md} {\n pre[class*='language-'] {\n padding: 15px 20px;\n }\n }\n\n h1 .gatsby-link-icon {\n display: none;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n &:hover {\n .gatsby-link-icon {\n opacity: 1;\n }\n }\n }\n\n .gatsby-link-icon {\n fill: #ffb6b3;\n border: none;\n margin-left: -30px;\n padding-right: 10px;\n opacity: 0;\n transition: opacity 0.15s ease-in-out;\n float: right;\n\n ${media.md} {\n float: left;\n }\n\n &:focus {\n opacity: 1;\n }\n\n &:hover {\n border: none;\n }\n\n svg {\n width: 20px;\n height: 20px;\n }\n }\n `}\n />\n \n \n {pageResources && (\n \n )}\n \n
\n \n {children}\n \n \n \n {(routes) => {\n const { prev, next } = getPrevNextRoutes(routes);\n return (\n \n \n \n {prev && (\n \n \n \n \n {prev.navigationLabel}\n \n )}\n \n \n \n {next && (\n \n {next.navigationLabel}\n \n \n \n \n )}\n \n \n \n );\n }}\n \n
\n © {new Date().getFullYear()} MIT License\n \n
\n );\n};\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..21d607af --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +popper.js.org \ No newline at end of file diff --git a/app-d4d70add0c8c754f9a24.js b/app-d4d70add0c8c754f9a24.js new file mode 100644 index 00000000..7304c1ca --- /dev/null +++ b/app-d4d70add0c8c754f9a24.js @@ -0,0 +1,3 @@ +/*! For license information please see app-d4d70add0c8c754f9a24.js.LICENSE.txt */ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{"+1VY":function(e,t,n){"use strict";var r=n("ep+1"),o="-ms-",i="-moz-",a="-webkit-",c="comm",s="rule",u="decl",l=Math.abs,d=String.fromCharCode;function p(e){return e.trim()}function f(e,t,n){return e.replace(t,n)}function g(e,t){return e.indexOf(t)}function M(e,t){return 0|e.charCodeAt(t)}function y(e,t,n){return e.slice(t,n)}function m(e){return e.length}function h(e){return e.length}function b(e,t){return t.push(e),e}function j(e,t){return e.map(t).join("")}var N=1,I=1,w=0,v=0,D=0,L="";function O(e,t,n,r,o,i,a){return{value:e,root:t,parent:n,type:r,props:o,children:i,line:N,column:I,length:a,return:""}}function T(e,t,n){return O(e,t.root,t.parent,n,t.props,t.children,0)}function x(){return D=v2||z(D)>3?"":" "}function R(e,t){for(;x()&&e+D!==57&&(e+D!==84||47!==A()););return"/*"+E(t,v-1)+"*"+d(47===e?e:x())}function Q(e){for(;!z(A());)x();return E(e,v)}function Z(e){return k(function e(t,n,r,o,i,a,c,s,u){var l=0,p=0,g=c,M=0,y=0,h=0,j=1,N=1,I=1,w=0,v="",D=i,L=a,O=o,T=v;for(;N;)switch(h=w,w=x()){case 34:case 39:case 91:case 40:T+=P(w);break;case 9:case 10:case 13:case 32:T+=U(h);break;case 47:switch(A()){case 42:case 47:b(G(R(x(),S()),n,r),u);break;default:T+="/"}break;case 123*j:s[l++]=m(T)*I;case 125*j:case 59:case 0:switch(w){case 0:case 125:N=0;case 59+p:y>0&&m(T)-g&&b(y>32?F(T+";",o,r,g-1):F(f(T," ","")+";",o,r,g-2),u);break;case 59:T+=";";default:if(b(O=Y(T,n,r,l,p,i,s,v,D=[],L=[],g),a),123===w)if(0===p)e(T,n,O,O,D,a,g,s,L);else switch(M){case 100:case 109:case 115:e(t,O,O,o&&b(Y(t,O,O,0,0,i,s,v,i,D=[],g),L),i,L,g,s,o?D:L);break;default:e(T,O,O,O,[""],L,g,s,L)}}l=p=y=0,j=I=1,v=T="",g=c;break;case 58:g=1+m(T),y=h;default:switch(T+=d(w),w*j){case 38:I=p>0?1:(T+="\f",-1);break;case 44:s[l++]=(m(T)-1)*I,I=1;break;case 64:45===A()&&(T+=P(x())),M=A(),p=m(v=T+=Q(S())),w++;break;case 45:45===h&&2==m(T)&&(j=0)}}return a}("",null,null,null,[""],e=C(e),0,[0],e))}function Y(e,t,n,r,o,i,a,c,u,d,g){for(var M=o-1,m=0===o?i:[""],b=h(m),j=0,N=0,I=0;j0?m[w]+" "+v:f(v,/&\f/g,m[w])))&&(u[I++]=D);return O(e,t,n,0===o?s:c,u,d,g)}function G(e,t,n){return O(e,t,n,c,d(D),y(e,2,-2),0)}function F(e,t,n,r){return O(e,t,n,u,y(e,0,r),y(e,r+1,-1),r)}function W(e,t){switch(function(e,t){return(((t<<2^M(e,0))<<2^M(e,1))<<2^M(e,2))<<2^M(e,3)}(e,t)){case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return a+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return a+e+i+e+o+e+e;case 6828:case 4268:return a+e+o+e+e;case 6165:return a+e+o+"flex-"+e+e;case 5187:return a+e+f(e,/(\w+).+(:[^]+)/,a+"box-$1$2"+o+"flex-$1$2")+e;case 5443:return a+e+o+"flex-item-"+f(e,/flex-|-self/,"")+e;case 4675:return a+e+o+"flex-line-pack"+f(e,/align-content|flex-|-self/,"")+e;case 5548:return a+e+o+f(e,"shrink","negative")+e;case 5292:return a+e+o+f(e,"basis","preferred-size")+e;case 6060:return a+"box-"+f(e,"-grow","")+a+e+o+f(e,"grow","positive")+e;case 4554:return a+f(e,/([^-])(transform)/g,"$1"+a+"$2")+e;case 6187:return f(f(f(e,/(zoom-|grab)/,a+"$1"),/(image-set)/,a+"$1"),e,"")+e;case 5495:case 3959:return f(e,/(image-set\([^]*)/,a+"$1$`$1");case 4968:return f(f(e,/(.+:)(flex-)?(.*)/,a+"box-pack:$3"+o+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+a+e+e;case 4095:case 3583:case 4068:case 2532:return f(e,/(.+)-inline(.+)/,a+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(m(e)-1-t>6)switch(M(e,t+1)){case 102:t=M(e,t+3);case 109:return f(e,/(.+:)(.+)-([^]+)/,"$1"+a+"$2-$3$1"+i+(108==t?"$3":"$2-$3"))+e;case 115:return~g(e,"stretch")?W(f(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==M(e,t+1))break;case 6444:switch(M(e,m(e)-3-(~g(e,"!important")&&10))){case 107:case 111:return f(e,e,a+e)+e;case 101:return f(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+a+(45===M(e,14)?"inline-":"")+"box$3$1"+a+"$2$3$1"+o+"$2box$3")+e}break;case 5936:switch(M(e,t+11)){case 114:return a+e+o+f(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return a+e+o+f(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return a+e+o+f(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return a+e+o+e+e}return e}function B(e,t){for(var n="",r=h(e),o=0;o0)&&(r.unobserve(t),r.disconnect(),n())}))}))).observe(t),{instance:r,el:t}))},n.render=function(){var e=this,t=this.props,n=t.to,r=t.getProps,i=void 0===r?this.defaultGetProps:r,a=t.onClick,s=t.onMouseEnter,d=(t.activeClassName,t.activeStyle,t.innerRef,t.partiallyActive,t.state),f=t.replace,g=t._location,M=(0,o.default)(t,["to","getProps","onClick","onMouseEnter","activeClassName","activeStyle","innerRef","partiallyActive","state","replace","_location"]);var y=h(n,g.pathname);return m(y)?u.default.createElement(l.Link,(0,c.default)({to:y,state:d,getProps:i,innerRef:this.handleRef,onMouseEnter:function(e){s&&s(e),___loader.hovering((0,p.parsePath)(y).pathname)},onClick:function(t){if(a&&a(t),!(0!==t.button||e.props.target||t.defaultPrevented||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)){t.preventDefault();var n=f,r=encodeURI(y)===g.pathname;"boolean"!=typeof f&&r&&(n=!0),window.___navigate(y,{state:d,replace:n})}return!0}},M)):u.default.createElement("a",(0,c.default)({href:y},M))},t}(u.default.Component);N.propTypes=(0,c.default)({},b,{onClick:s.default.func,to:s.default.string.isRequired,replace:s.default.bool,state:s.default.object});var I=function(e,t,n){return console.warn('The "'+e+'" method is now deprecated and will be removed in Gatsby v'+n+'. Please use "'+t+'" instead.')},w=u.default.forwardRef((function(e,t){return u.default.createElement(j,(0,c.default)({innerRef:t},e))}));t.default=w;t.navigate=function(e,t){window.___navigate(h(e,window.location.pathname),t)};var v=function(e){I("push","navigate",3),window.___push(h(e,window.location.pathname))};t.push=v;t.replace=function(e){I("replace","navigate",3),window.___replace(h(e,window.location.pathname))};t.navigateTo=function(e){return I("navigateTo","navigate",3),v(e)}},"+zIb":function(e,t,n){"use strict";n.r(t),n.d(t,"startsWith",(function(){return i})),n.d(t,"pick",(function(){return a})),n.d(t,"match",(function(){return c})),n.d(t,"resolve",(function(){return s})),n.d(t,"insertParams",(function(){return u})),n.d(t,"validateRedirect",(function(){return l})),n.d(t,"shallowCompare",(function(){return b}));var r=n("QLaP"),o=n.n(r),i=function(e,t){return e.substr(0,t.length)===t},a=function(e,t){for(var n=void 0,r=void 0,i=t.split("?")[0],a=y(i),c=""===a[0],s=M(e),u=0,l=s.length;ut.score?-1:e.index-t.index}))},y=function(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")},m=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r0})))&&n.length>0?"?"+n.join("&"):"")},h=["uri","path"],b=function(e,t){var n=Object.keys(e);return n.length===Object.keys(t).length&&n.every((function(n){return t.hasOwnProperty(n)&&e[n]===t[n]}))}},"/Ezq":function(e,t,n){e.exports=n.p+"static/popcorn-box-f16f5d64e675baca26519478e88e4961.svg"},"/TCF":function(e,t,n){var r=n("REpN"),o=n("krUJ"),i=r.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},"/hTd":function(e,t,n){"use strict";t.__esModule=!0,t.SessionStorage=void 0;var r=function(){function e(){}var t=e.prototype;return t.read=function(e,t){var n=this.getStateKey(e,t);try{var r=window.sessionStorage.getItem(n);return r?JSON.parse(r):0}catch(o){return window&&window.___GATSBY_REACT_ROUTER_SCROLL&&window.___GATSBY_REACT_ROUTER_SCROLL[n]?window.___GATSBY_REACT_ROUTER_SCROLL[n]:0}},t.save=function(e,t,n){var r=this.getStateKey(e,t),o=JSON.stringify(n);try{window.sessionStorage.setItem(r,o)}catch(i){window&&window.___GATSBY_REACT_ROUTER_SCROLL||(window.___GATSBY_REACT_ROUTER_SCROLL={}),window.___GATSBY_REACT_ROUTER_SCROLL[r]=JSON.parse(o)}},t.getStateKey=function(e,t){var n="@@scroll|"+e.pathname;return null==t?n:n+"|"+t},e}();t.SessionStorage=r},"/smy":function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI2NTMiIHZpZXdCb3g9IjAgMCAxNDQwIDY1MyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOmxpZ2h0ZW4iIG9wYWNpdHk9IjAuMSI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiPgo8cGF0aCBkPSJNMTk5My43MSAwSC01NTMuNzFWMTk5OC42M0gxOTkzLjcxVjBaIiBmaWxsPSIjMkM0Qjk1Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzIwIDMwMi42NzZDNTUwLjI5MyAyMTkuOTYzIDMxMC4yOTQgMTAyLjk5IDAgLTQ4LjI0MjdIMTgwQzQwNi42NjMgODguNDQzNSA1ODYuNjYzIDIwNS40MTcgNzIwIDMwMi42NzZaIiBmaWxsPSIjRkZGQ0UxIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzIwIDMwMi42NzZDNjI4LjE1NyAxOTQuNjA3IDUwOC4xNTYgNzcuNjM0NSAzNjAgLTQ4LjI0MjdINTQwQzYxMy4xNzggNzAuOTc3NiA2NzMuMTc4IDE4Ny45NTEgNzIwIDMwMi42NzZaIiBmaWxsPSIjRkZGQ0UxIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzIwIDMwMi42NzZDNzIwIDE4NS43MDMgNzIwIDY4LjczMDMgNzIwIC00OC4yNDI3SDkwMEM4MjYuODIyIDcwLjk3NzYgNzY2LjgyMiAxODcuOTUxIDcyMCAzMDIuNjc2WiIgZmlsbD0iI0ZGRkNFMSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcyMCAzMDIuNjc2QzgxMS44NDMgMTk0LjYwNyA5MzEuODQ0IDc3LjYzNDUgMTA4MCAtNDguMjQyN0gxMjYwQzEwMzMuMzQgODguNDQzNSA4NTMuMzM3IDIwNS40MTcgNzIwIDMwMi42NzZaIiBmaWxsPSIjRkZGQ0UxIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzIwIDMwMi42NzZDODg5LjcwNyAyMTkuOTYzIDExMjkuNzEgMTAyLjk5IDE0NDAgLTQ4LjI0MjdWMzkuNDg2OUMxMTU5LjU1IDE0OS45NTkgOTE5LjU1MiAyMzcuNjg5IDcyMCAzMDIuNjc2WiIgZmlsbD0iI0ZGRkNFMSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTM2MCA2NTNIMTgwQzQwNi42NjMgNTE2LjQyOSA1ODYuNjYzIDM5OS41NTUgNzIwIDMwMi4zNzlDNjI4LjE1NyA0MTAuMzU1IDUwOC4xNTYgNTI3LjIyOSAzNjAgNjUzWiIgZmlsbD0iI0ZGRkNFMSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNjUzVjU2NS4zNDVDMjgwLjQ0NyA0NTQuOTY2IDUyMC40NDggMzY3LjMxIDcyMCAzMDIuMzc5QzU1MC4yOTMgMzg1LjAyMSAzMTAuMjk0IDUwMS44OTUgMCA2NTNaIiBmaWxsPSIjRkZGQ0UxIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCA0NzcuNjg5VjM5MC4wMzRDMjQ0LjYxMSAzNTQuMzk4IDQ4NC42MTIgMzI1LjE4IDcyMCAzMDIuMzc5QzQ5OC4yNyAzNDcuMTA0IDI1OC4yNyA0MDUuNTQxIDAgNDc3LjY4OVoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDMwMi4zNzlWMjE0LjcyM0MyNDQuNjExIDI1MC4zNTkgNDg0LjYxMiAyNzkuNTc4IDcyMCAzMDIuMzc5QzQ4MCAzMDIuMzc5IDI0MCAzMDIuMzc5IDAgMzAyLjM3OVoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDEyNy4wNjhWMzkuNDEyNkMyODAuNDQ3IDE0OS43OTIgNTIwLjQ0OCAyMzcuNDQ3IDcyMCAzMDIuMzc5QzQ5OC4yNyAyNTcuNjUzIDI1OC4yNyAxOTkuMjE2IDAgMTI3LjA2OFoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM5NDEuNzMgMjU3LjUyNiAxMTgxLjczIDE5OC45MjIgMTQ0MCAxMjYuNTY4VjIxNC40NzRDMTE5NS4zOSAyNTAuMjExIDk1NS4zODggMjc5LjUxMyA3MjAgMzAyLjM3OVoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM5NjAgMzAyLjM3OSAxMjAwIDMwMi4zNzkgMTQ0MCAzMDIuMzc5VjM5MC4yODRDMTE5NS4zOSAzNTQuNTQ2IDk1NS4zODggMzI1LjI0NCA3MjAgMzAyLjM3OVoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM5NDEuNzMgMzQ3LjA2MSAxMTgxLjczIDQwNS40NDMgMTQ0MCA0NzcuNTIzVjU2NS4wOTVDMTE1OS41NSA0NTQuODIxIDkxOS41NTIgMzY3LjI0OSA3MjAgMzAyLjM3OVoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM4ODkuNzA3IDM4NS4wMjEgMTEyOS43MSA1MDEuODk1IDE0NDAgNjUzSDEyNjBDMTAzMy4zNCA1MTYuNDI5IDg1My4zMzcgMzk5LjU1NSA3MjAgMzAyLjM3OVoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM4MTIuMTA1IDQxMC4zNTUgOTMyLjQ0OCA1MjcuMjI5IDEwODEuMDMgNjUzSDkwMC41MTNDODI3LjEyNiA1MzMuODgxIDc2Ni45NTUgNDE3LjAwNyA3MjAgMzAyLjM3OVoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM3MjAgNDE5LjI1MyA3MjAgNTM2LjEyNiA3MjAgNjUzSDUzOS40ODdDNjEyLjg3NCA1MzMuODgxIDY3My4wNDUgNDE3LjAwNyA3MjAgMzAyLjM3OVoiIGZpbGw9IiNGRkZDRTEiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM1ODYuNjYzIDIwNS4yMDIgNDA2LjY2MyA4OC4zMjc4IDE4MCAtNDguMjQyN0gzNjBDNTA4LjE1NiA3Ny41MjggNjI4LjE1NyAxOTQuNDAxIDcyMCAzMDIuMzc5WiIgZmlsbD0iI0U5OTk5NCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcyMCAzMDIuMzc5QzY3My4xNzggMTg3Ljc1MSA2MTMuMTc4IDcwLjg3NjcgNTQwIC00OC4yNDI3SDcyMEM3MjAgNjguNjMxMyA3MjAgMTg1LjUwNSA3MjAgMzAyLjM3OVoiIGZpbGw9IiNFOTk5OTQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM3NjYuODIyIDE4Ny43NTEgODI2LjgyMiA3MC44NzY3IDkwMCAtNDguMjQyN0gxMDgwQzkzMS44NDQgNzcuNTI4IDgxMS44NDMgMTk0LjQwMSA3MjAgMzAyLjM3OVoiIGZpbGw9IiNFOTk5OTQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03MjAgMzAyLjM3OUM4NTMuMzM3IDIwNS4yMDIgMTAzMy4zNCA4OC4zMjc4IDEyNjAgLTQ4LjI0MjdIMTQ0MEMxMTI5LjcxIDEwMi44NjIgODg5LjcwNyAyMTkuNzM3IDcyMCAzMDIuMzc5WiIgZmlsbD0iI0U5OTk5NCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcyMCAzMDIuMzc5QzkxOS41NTIgMjM3LjUwOSAxMTU5LjU1IDE0OS45MzcgMTQ0MCAzOS42NjI0VjEyNy4yMzRDMTE4MS43MyAxOTkuMzE0IDk0MS43MyAyNTcuNjk2IDcyMCAzMDIuMzc5WiIgZmlsbD0iI0U5OTk5NCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcyMCAzMDIuMzc5Qzk1NS4zODggMjc5LjUxMyAxMTk1LjM5IDI1MC4yMTEgMTQ0MCAyMTQuNDc0VjMwMi4zNzlDMTIwMCAzMDIuMzc5IDk2MCAzMDIuMzc5IDcyMCAzMDIuMzc5WiIgZmlsbD0iI0U5OTk5NCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcyMCAzMDIuMzc5Qzk1NS4zODggMzI1LjI0NCAxMTk1LjM5IDM1NC41NDYgMTQ0MCAzOTAuMjg0VjQ3OC4xODlDMTE4MS43MyA0MDUuODM1IDk0MS43MyAzNDcuMjMxIDcyMCAzMDIuMzc5WiIgZmlsbD0iI0U5OTk5NCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcyMCAzMDIuMzc5QzkxOS41NTIgMzY3LjMxIDExNTkuNTUgNDU0Ljk2NiAxNDQwIDU2NS4zNDVWNjUzQzExMjkuNzEgNTAxLjg5NSA4ODkuNzA3IDM4NS4wMjEgNzIwIDMwMi4zNzlaIiBmaWxsPSIjRTk5OTk0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzIwIDMwMi4zNzlDODUzLjIxIDM5OS41NTUgMTAzMy4wNCA1MTYuNDI5IDEyNTkuNDkgNjUzSDEwNzkuNjZDOTMxLjY0MyA1MjcuMjI5IDgxMS43NTYgNDEwLjM1NSA3MjAgMzAyLjM3OVoiIGZpbGw9IiNFOTk5OTQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05MDAuNTEzIDY1M0g3MjBDNzIwIDUzNi4xMjYgNzIwIDQxOS4yNTMgNzIwIDMwMi4zNzlDNzY2Ljk1NSA0MTcuMDA3IDgyNy4xMjYgNTMzLjg4MSA5MDAuNTEzIDY1M1oiIGZpbGw9IiNFOTk5OTQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01NDAgNjUzSDM2MEM1MDguMTU2IDUyNy4yMjkgNjI4LjE1NyA0MTAuMzU1IDcyMCAzMDIuMzc5QzY3My4xNzggNDE3LjAwNyA2MTMuMTc4IDUzMy44ODEgNTQwIDY1M1oiIGZpbGw9IiNFOTk5OTQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xODAgNjUzSDBDMzEwLjI5NCA1MDEuODk1IDU1MC4yOTMgMzg1LjAyMSA3MjAgMzAyLjM3OUM1ODYuNjYzIDM5OS41NTUgNDA2LjY2MyA1MTYuNDI5IDE4MCA2NTNaIiBmaWxsPSIjRTk5OTk0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCA1NjUuMzQ1VjQ3Ny42ODlDMjU4LjI3IDQwNS41NDEgNDk4LjI3IDM0Ny4xMDQgNzIwIDMwMi4zNzlDNTIwLjQ0OCAzNjcuMzEgMjgwLjQ0NyA0NTQuOTY2IDAgNTY1LjM0NVoiIGZpbGw9IiNFOTk5OTQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDM5MC4wMzRWMzAyLjM3OUMyNDAgMzAyLjM3OSA0ODAgMzAyLjM3OSA3MjAgMzAyLjM3OUM0ODQuNjEyIDMyNS4xOCAyNDQuNjExIDM1NC4zOTggMCAzOTAuMDM0WiIgZmlsbD0iI0U5OTk5NCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgMjE0LjcyM1YxMjcuMDY4QzI1OC4yNyAxOTkuMjE2IDQ5OC4yNyAyNTcuNjUzIDcyMCAzMDIuMzc5QzQ4NC42MTIgMjc5LjU3OCAyNDQuNjExIDI1MC4zNTkgMCAyMTQuNzIzWiIgZmlsbD0iI0U5OTk5NCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgMzkuNDEyNlYtNDguMjQyN0MzMTAuMjk0IDEwMi44NjIgNTUwLjI5MyAyMTkuNzM3IDcyMCAzMDIuMzc5QzUyMC40NDggMjM3LjQ0NyAyODAuNDQ3IDE0OS43OTIgMCAzOS40MTI2WiIgZmlsbD0iI0U5OTk5NCIvPgo8L2c+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iMTQ0MCIgaGVpZ2h0PSI2NTMiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},"01ya":function(e,t){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY3IDY3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMi43OTE2NywwLDAsMi43OTE2NywzLjk0NDNlLTMxLDApIj4KICAgICAgICA8cGF0aCBkPSJNMTIuMTAzLDBDMTguNjY2LDAgMjQsNS40ODUgMjQsMTEuOTk3QzI0LDE4LjUwNyAxOC42NywyMy45ODcgMTIuMSwyMy45ODdMMCwyNEwwLDExLjc5QzAsNS4yOCA1LjUzMiwwIDEyLjEwMywwWk0xMi4yMTksNC41NjNDOS42MjYsNC41NiA3LjIyMyw1LjkxNSA1Ljg4Miw4LjEzM0M0LjU1MiwxMC4zNDEgNC40OTUsMTMuMDkgNS43MzQsMTUuMzUzTDQuNCwxOS42MUw5LjE5NCwxOC41MzZDMTEuOTM5LDE5Ljc2MSAxNS4xNTksMTkuMjEyIDE3LjMzLDE3LjE0NkMxOS41LDE1LjA5MiAyMC4xOSwxMS45MTggMTkuMDY3LDkuMTQ5QzE3LjkzMiw2LjM3MSAxNS4yMjcsNC41NTkgMTIuMjI3LDQuNTY0TDEyLjIxOSw0LjU2NEwxMi4yMTksNC41NjNaIiBzdHlsZT0iZmlsbDp3aGl0ZTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgIDwvZz4KPC9zdmc+Cg=="},"0Ufg":function(e,t){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY3IDY3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNDc0NCwwLDAsMC4yNDc0NCwxLjc3NjM2ZS0xNSwzLjg5OTc3KSI+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4wOTY3MDQ1LDAsMCwwLjA5NjcwNDUsMTkuMzQwOSwtMTUuNzYwNSkiPgogICAgICAgICAgICA8cGF0aCBkPSJNNTAwLDBMMCw1MDBMMCwyMzAwTDYwMCwyMzAwTDYwMCwyODAwTDExMDAsMjMwMEwxNTAwLDIzMDBMMjQwMCwxNDAwTDI0MDAsMEw1MDAsMFpNMjIwMCwxMzAwTDE4MDAsMTcwMEwxNDAwLDE3MDBMMTA1MCwyMDUwTDEwNTAsMTcwMEw2MDAsMTcwMEw2MDAsMjAwTDIyMDAsMjAwTDIyMDAsMTMwMFoiIHN0eWxlPSJmaWxsOndoaXRlO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjA5NjcwNDUsMCwwLDAuMDk2NzA0NSwxOS4zNDA5LC0xNS43NjA1KSI+CiAgICAgICAgICAgIDxyZWN0IHg9IjE3MDAiIHk9IjU1MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI2MDAiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgIDwvZz4KICAgICAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjA5NjcwNDUsMCwwLDAuMDk2NzA0NSwxOS4zNDA5LC0xNS43NjA1KSI+CiAgICAgICAgICAgIDxyZWN0IHg9IjExNTAiIHk9IjU1MCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSI2MDAiIHN0eWxlPSJmaWxsOndoaXRlOyIvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg=="},"0dIN":function(e,t,n){var r=n("gQbX"),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},"0uqK":function(e,t,n){var r=n("m/aQ"),o=n("ckLD"),i=n("FUra");e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},"17+C":function(e,t,n){var r=n("4jnk");e.exports=function(e){return Object(r(e))}},"1RYp":function(e,t,n){var r=n("QU3x"),o=n("FlY1");e.exports=Object.keys||function(e){return r(e,o)}},"1Vcc":function(e,t){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDY3IDY3IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHN0eWxlPSJmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MjsiPgogICAgPGc+CiAgICAgICAgPHBhdGggZD0iTTY3LDYuN0M2NywzLjAwMiA2My45OTgsLTAgNjAuMywtMEw2LjcsLTBDMy4wMDIsLTAgMCwzLjAwMiAwLDYuN0wwLDYwLjNDMCw2My45OTggMy4wMDIsNjcgNi43LDY3TDYwLjMsNjdDNjMuOTk4LDY3IDY3LDYzLjk5OCA2Nyw2MC4zTDY3LDYuN1pNMjAuNjk0LDUzLjk5NUwyMC42OTQsMTMuMDA1TDI2LjExOCwxMy4wMDVMMjYuMTE4LDQ5LjE1OEw0Ni4zMDYsNDkuMTU4TDQ2LjMwNiw1My45OTVMMjAuNjk0LDUzLjk5NVoiIHN0eWxlPSJmaWxsOndoaXRlOyIgLz4KICAgIDwvZz4KPC9zdmc+"},"1uEE":function(e,t,n){var r=n("jdR/");e.exports=r("navigator","userAgent")||""},"2mql":function(e,t,n){"use strict";var r=n("TOwV"),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(e){return r.isMemo(e)?a:c[e.$$typeof]||o}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=a;var u=Object.defineProperty,l=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var o=f(n);o&&o!==g&&e(t,o,r)}var a=l(n);d&&(a=a.concat(d(n)));for(var c=s(t),M=s(n),y=0;y=0?t.ownerDocument.body:b(t)&&D(t)?t:e(T(t))}(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=y(r),a=o?[i].concat(i.visualViewport||[],D(r)?r:[]):r,c=t.concat(a);return o?c:c.concat(x(T(a)))}function A(e){return["table","td","th"].indexOf(N(e))>=0}function S(e){return b(e)&&"fixed"!==v(e).position?e.offsetParent:null}function E(e){for(var t=y(e),n=S(e);n&&A(n)&&"static"===v(n).position;)n=S(n);return n&&("html"===N(n)||"body"===N(n)&&"static"===v(n).position)?t:n||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&b(e)&&"fixed"===v(e).position)return null;for(var n=T(e);b(n)&&["html","body"].indexOf(N(n))<0;){var r=v(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}var z="top",C="bottom",k="right",P="left",U=[z,C,k,P],R=U.reduce((function(e,t){return e.concat([t+"-start",t+"-end"])}),[]),Q=[].concat(U,["auto"]).reduce((function(e,t){return e.concat([t,t+"-start",t+"-end"])}),[]),Z=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function Y(e){var t=new Map,n=new Set,r=[];return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||function e(o){n.add(o.name),[].concat(o.requires||[],o.requiresIfExists||[]).forEach((function(r){if(!n.has(r)){var o=t.get(r);o&&e(o)}})),r.push(o)}(e)})),r}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function F(){for(var e=arguments.length,t=new Array(e),n=0;n=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?H(o):null,a=o?V(o):null,c=n.x+n.width/2-r.width/2,s=n.y+n.height/2-r.height/2;switch(i){case z:t={x:c,y:n.y-r.height};break;case C:t={x:c,y:n.y+n.height};break;case k:t={x:n.x+n.width,y:s};break;case P:t={x:n.x-r.width,y:s};break;default:t={x:n.x,y:n.y}}var u=i?J(i):null;if(null!=u){var l="y"===u?"height":"width";switch(a){case"start":t[u]=t[u]-(n[l]/2-r[l]/2);break;case"end":t[u]=t[u]+(n[l]/2-r[l]/2)}}return t}var q={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=X({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},K=Math.max,$=Math.min,ee=Math.round,te={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ne(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,c=e.position,s=e.gpuAcceleration,u=e.adaptive,l=e.roundOffsets,d=!0===l?function(e){var t=e.x,n=e.y,r=window.devicePixelRatio||1;return{x:ee(ee(t*r)/r)||0,y:ee(ee(n*r)/r)||0}}(a):"function"==typeof l?l(a):a,p=d.x,f=void 0===p?0:p,g=d.y,M=void 0===g?0:g,m=a.hasOwnProperty("x"),h=a.hasOwnProperty("y"),b=P,j=z,N=window;if(u){var w=E(n),D="clientHeight",L="clientWidth";w===y(n)&&"static"!==v(w=I(n)).position&&"absolute"===c&&(D="scrollHeight",L="scrollWidth"),w=w,o!==z&&(o!==P&&o!==k||"end"!==i)||(j=C,M-=w[D]-r.height,M*=s?1:-1),o!==P&&(o!==z&&o!==C||"end"!==i)||(b=k,f-=w[L]-r.width,f*=s?1:-1)}var O,T=Object.assign({position:c},u&&te);return s?Object.assign({},T,((O={})[j]=h?"0":"",O[b]=m?"0":"",O.transform=(N.devicePixelRatio||1)<=1?"translate("+f+"px, "+M+"px)":"translate3d("+f+"px, "+M+"px, 0)",O)):Object.assign({},T,((t={})[j]=h?M+"px":"",t[b]=m?f+"px":"",t.transform="",t))}var re={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},o=t.elements[e];b(o)&&N(o)&&(Object.assign(o.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],o=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});b(r)&&N(r)&&(Object.assign(r.style,i),Object.keys(o).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]};var oe={left:"right",right:"left",bottom:"top",top:"bottom"};function ie(e){return e.replace(/left|right|bottom|top/g,(function(e){return oe[e]}))}var ae={start:"end",end:"start"};function ce(e){return e.replace(/start|end/g,(function(e){return ae[e]}))}function se(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&j(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function ue(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function le(e,t){return"viewport"===t?ue(function(e){var t=y(e),n=I(e),r=t.visualViewport,o=n.clientWidth,i=n.clientHeight,a=0,c=0;return r&&(o=r.width,i=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,c=r.offsetTop)),{width:o,height:i,x:a+w(e),y:c}}(e)):b(t)?function(e){var t=M(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):ue(function(e){var t,n=I(e),r=m(e),o=null==(t=e.ownerDocument)?void 0:t.body,i=K(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=K(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),c=-r.scrollLeft+w(e),s=-r.scrollTop;return"rtl"===v(o||n).direction&&(c+=K(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:c,y:s}}(I(e)))}function de(e,t,n){var r="clippingParents"===t?function(e){var t=x(T(e)),n=["absolute","fixed"].indexOf(v(e).position)>=0&&b(e)?E(e):e;return h(n)?t.filter((function(e){return h(e)&&se(e,n)&&"body"!==N(e)})):[]}(e):[].concat(t),o=[].concat(r,[n]),i=o[0],a=o.reduce((function(t,n){var r=le(e,n);return t.top=K(r.top,t.top),t.right=$(r.right,t.right),t.bottom=$(r.bottom,t.bottom),t.left=K(r.left,t.left),t}),le(e,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function pe(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function fe(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function ge(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,i=n.boundary,a=void 0===i?"clippingParents":i,c=n.rootBoundary,s=void 0===c?"viewport":c,u=n.elementContext,l=void 0===u?"popper":u,d=n.altBoundary,p=void 0!==d&&d,f=n.padding,g=void 0===f?0:f,y=pe("number"!=typeof g?g:fe(g,U)),m="popper"===l?"reference":"popper",b=e.rects.popper,j=e.elements[p?m:l],N=de(h(j)?j:j.contextElement||I(e.elements.popper),a,s),w=M(e.elements.reference),v=X({reference:w,element:b,strategy:"absolute",placement:o}),D=ue(Object.assign({},b,v)),L="popper"===l?D:w,O={top:N.top-L.top+y.top,bottom:L.bottom-N.bottom+y.bottom,left:N.left-L.left+y.left,right:L.right-N.right+y.right},T=e.modifiersData.offset;if("popper"===l&&T){var x=T[o];Object.keys(O).forEach((function(e){var t=[k,C].indexOf(e)>=0?1:-1,n=[z,C].indexOf(e)>=0?"y":"x";O[e]+=x[n]*t}))}return O}function Me(e,t,n){return K(e,$(t,n))}function ye(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[z,k,C,P].some((function(t){return e[t]>=0}))}var he=W({defaultModifiers:[_,q,{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,a=void 0===i||i,c=n.roundOffsets,s=void 0===c||c,u={placement:H(t.placement),variation:V(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ne(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:s})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ne(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},re,{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,a=Q.reduce((function(e,n){return e[n]=function(e,t,n){var r=H(e),o=[P,z].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],c=i[1];return a=a||0,c=(c||0)*o,[P,k].indexOf(r)>=0?{x:c,y:a}:{x:a,y:c}}(n,t.rects,i),e}),{}),c=a[t.placement],s=c.x,u=c.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=a}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,c=void 0===a||a,s=n.fallbackPlacements,u=n.padding,l=n.boundary,d=n.rootBoundary,p=n.altBoundary,f=n.flipVariations,g=void 0===f||f,M=n.allowedAutoPlacements,y=t.options.placement,m=H(y),h=s||(m===y||!g?[ie(y)]:function(e){if("auto"===H(e))return[];var t=ie(e);return[ce(e),t,ce(t)]}(y)),b=[y].concat(h).reduce((function(e,n){return e.concat("auto"===H(n)?function(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,c=n.flipVariations,s=n.allowedAutoPlacements,u=void 0===s?Q:s,l=V(r),d=l?c?R:R.filter((function(e){return V(e)===l})):U,p=d.filter((function(e){return u.indexOf(e)>=0}));0===p.length&&(p=d);var f=p.reduce((function(t,n){return t[n]=ge(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[H(n)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:n,boundary:l,rootBoundary:d,padding:u,flipVariations:g,allowedAutoPlacements:M}):n)}),[]),j=t.rects.reference,N=t.rects.popper,I=new Map,w=!0,v=b[0],D=0;D=0,A=x?"width":"height",S=ge(t,{placement:L,boundary:l,rootBoundary:d,altBoundary:p,padding:u}),E=x?T?k:P:T?C:z;j[A]>N[A]&&(E=ie(E));var Z=ie(E),Y=[];if(i&&Y.push(S[O]<=0),c&&Y.push(S[E]<=0,S[Z]<=0),Y.every((function(e){return e}))){v=L,w=!1;break}I.set(L,Y)}if(w)for(var G=function(e){var t=b.find((function(t){var n=I.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return v=t,"break"},F=g?3:1;F>0;F--){if("break"===G(F))break}t.placement!==v&&(t.modifiersData[r]._skip=!0,t.placement=v,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=void 0===o||o,a=n.altAxis,c=void 0!==a&&a,s=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,p=n.tether,f=void 0===p||p,g=n.tetherOffset,M=void 0===g?0:g,y=ge(t,{boundary:s,rootBoundary:u,padding:d,altBoundary:l}),m=H(t.placement),h=V(t.placement),b=!h,j=J(m),N="x"===j?"y":"x",I=t.modifiersData.popperOffsets,w=t.rects.reference,v=t.rects.popper,D="function"==typeof M?M(Object.assign({},t.rects,{placement:t.placement})):M,L={x:0,y:0};if(I){if(i||c){var T="y"===j?z:P,x="y"===j?C:k,A="y"===j?"height":"width",S=I[j],U=I[j]+y[T],R=I[j]-y[x],Q=f?-v[A]/2:0,Z="start"===h?w[A]:v[A],Y="start"===h?-v[A]:-w[A],G=t.elements.arrow,F=f&&G?O(G):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},B=W[T],_=W[x],X=Me(0,w[A],F[A]),q=b?w[A]/2-Q-X-B-D:Z-X-B-D,ee=b?-w[A]/2+Q+X+_+D:Y+X+_+D,te=t.elements.arrow&&E(t.elements.arrow),ne=te?"y"===j?te.clientTop||0:te.clientLeft||0:0,re=t.modifiersData.offset?t.modifiersData.offset[t.placement][j]:0,oe=I[j]+q-re-ne,ie=I[j]+ee-re;if(i){var ae=Me(f?$(U,oe):U,S,f?K(R,ie):R);I[j]=ae,L[j]=ae-S}if(c){var ce="x"===j?z:P,se="x"===j?C:k,ue=I[N],le=ue+y[ce],de=ue-y[se],pe=Me(f?$(le,oe):le,ue,f?K(de,ie):de);I[N]=pe,L[N]=pe-ue}}t.modifiersData[r]=L}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,c=H(n.placement),s=J(c),u=[P,k].indexOf(c)>=0?"height":"width";if(i&&a){var l=function(e,t){return pe("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:fe(e,U))}(o.padding,n),d=O(i),p="y"===s?z:P,f="y"===s?C:k,g=n.rects.reference[u]+n.rects.reference[s]-a[s]-n.rects.popper[u],M=a[s]-n.rects.reference[s],y=E(i),m=y?"y"===s?y.clientHeight||0:y.clientWidth||0:0,h=g/2-M/2,b=l[p],j=m-d[u]-l[f],N=m/2-d[u]/2+h,I=Me(b,N,j),w=s;n.modifiersData[r]=((t={})[w]=I,t.centerOffset=I-N,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&se(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=ge(t,{elementContext:"reference"}),c=ge(t,{altBoundary:!0}),s=ye(a,r),u=ye(c,o,i),l=me(s),d=me(u);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:u,isReferenceHidden:l,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":l,"data-popper-escaped":d})}}]}),be={passive:!0,capture:!0},je=function(){return document.body};function Ne(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function Ie(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function we(e,t){return"function"==typeof e?e.apply(void 0,t):e}function ve(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function De(e){return[].concat(e)}function Le(e,t){-1===e.indexOf(t)&&e.push(t)}function Oe(e){return e.split("-")[0]}function Te(e){return[].slice.call(e)}function xe(){return document.createElement("div")}function Ae(e){return["Element","Fragment"].some((function(t){return Ie(e,t)}))}function Se(e){return Ie(e,"MouseEvent")}function Ee(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function ze(e){return Ae(e)?[e]:function(e){return Ie(e,"NodeList")}(e)?Te(e):Array.isArray(e)?e:Te(document.querySelectorAll(e))}function Ce(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function ke(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function Pe(e){var t,n=De(e)[0];return(null==n||null==(t=n.ownerDocument)?void 0:t.body)?n.ownerDocument:document}function Ue(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function Re(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==(r=null==n.getRootNode?void 0:n.getRootNode())?void 0:r.host}return!1}var Qe={isTouch:!1},Ze=0;function Ye(){Qe.isTouch||(Qe.isTouch=!0,window.performance&&document.addEventListener("mousemove",Ge))}function Ge(){var e=performance.now();e-Ze<20&&(Qe.isTouch=!1,document.removeEventListener("mousemove",Ge)),Ze=e}function Fe(){var e=document.activeElement;if(Ee(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var We=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto;var Be={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},_e=Object.assign({appendTo:je,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},Be,{},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),He=Object.keys(_e);function Ve(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=_e[o])?r:i);return t}),{});return Object.assign({},e,{},t)}function Je(e,t){var n=Object.assign({},t,{content:we(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(Ve(Object.assign({},_e,{plugins:t}))):He).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(o){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},_e.aria,{},n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function Xe(e,t){e.innerHTML=t}function qe(e){var t=xe();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",Ae(e)?t.appendChild(e):Xe(t,e)),t}function Ke(e,t){Ae(t.content)?(Xe(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?Xe(e,t.content):e.textContent=t.content)}function $e(e){var t=e.firstElementChild,n=Te(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function et(e){var t=xe(),n=xe();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=xe();function o(n,r){var o=$e(t),i=o.box,a=o.content,c=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||Ke(a,e.props),r.arrow?c?n.arrow!==r.arrow&&(i.removeChild(c),i.appendChild(qe(r.arrow))):i.appendChild(qe(r.arrow)):c&&i.removeChild(c)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),Ke(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}et.$$tippy=!0;var tt=1,nt=[],rt=[];function ot(e,t){var n,r,o,i,a,c,s,u,l,d=Je(e,Object.assign({},_e,{},Ve((n=t,Object.keys(n).reduce((function(e,t){return void 0!==n[t]&&(e[t]=n[t]),e}),{}))))),p=!1,f=!1,g=!1,M=!1,y=[],m=ve(V,d.interactiveDebounce),h=tt++,b=(l=d.plugins).filter((function(e,t){return l.indexOf(e)===t})),j={id:h,reference:e,popper:xe(),popperInstance:null,props:d,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:b,clearDelayTimeouts:function(){clearTimeout(r),clearTimeout(o),cancelAnimationFrame(i)},setProps:function(t){0;if(j.state.isDestroyed)return;C("onBeforeUpdate",[j,t]),_();var n=j.props,r=Je(e,Object.assign({},j.props,{},t,{ignoreAttributes:!0}));j.props=r,B(),n.interactiveDebounce!==r.interactiveDebounce&&(U(),m=ve(V,r.interactiveDebounce));n.triggerTarget&&!r.triggerTarget?De(n.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):r.triggerTarget&&e.removeAttribute("aria-expanded");P(),z(),w&&w(n,r);j.popperInstance&&(K(),ee().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));C("onAfterUpdate",[j,t])},setContent:function(e){j.setProps({content:e})},show:function(){0;var e=j.state.isVisible,t=j.state.isDestroyed,n=!j.state.isEnabled,r=Qe.isTouch&&!j.props.touch,o=Ne(j.props.duration,0,_e.duration);if(e||t||n||r)return;if(x().hasAttribute("disabled"))return;if(C("onShow",[j],!1),!1===j.props.onShow(j))return;j.state.isVisible=!0,T()&&(I.style.visibility="visible");z(),Y(),j.state.isMounted||(I.style.transition="none");if(T()){var i=S(),a=i.box,c=i.content;Ce([a,c],0)}s=function(){var e;if(j.state.isVisible&&!M){if(M=!0,I.offsetHeight,I.style.transition=j.props.moveTransition,T()&&j.props.animation){var t=S(),n=t.box,r=t.content;Ce([n,r],o),ke([n,r],"visible")}k(),P(),Le(rt,j),null==(e=j.popperInstance)||e.forceUpdate(),j.state.isMounted=!0,C("onMount",[j]),j.props.animation&&T()&&function(e,t){F(e,t)}(o,(function(){j.state.isShown=!0,C("onShown",[j])}))}},function(){var e,t=j.props.appendTo,n=x();e=j.props.interactive&&t===je||"parent"===t?n.parentNode:we(t,[n]);e.contains(I)||e.appendChild(I);K(),!1}()},hide:function(){0;var e=!j.state.isVisible,t=j.state.isDestroyed,n=!j.state.isEnabled,r=Ne(j.props.duration,1,_e.duration);if(e||t||n)return;if(C("onHide",[j],!1),!1===j.props.onHide(j))return;j.state.isVisible=!1,j.state.isShown=!1,M=!1,p=!1,T()&&(I.style.visibility="hidden");if(U(),G(),z(),T()){var o=S(),i=o.box,a=o.content;j.props.animation&&(Ce([i,a],r),ke([i,a],"hidden"))}k(),P(),j.props.animation?T()&&function(e,t){F(e,(function(){!j.state.isVisible&&I.parentNode&&I.parentNode.contains(I)&&t()}))}(r,j.unmount):j.unmount()},hideWithInteractivity:function(e){0;A().addEventListener("mousemove",m),Le(nt,m),m(e)},enable:function(){j.state.isEnabled=!0},disable:function(){j.hide(),j.state.isEnabled=!1},unmount:function(){0;j.state.isVisible&&j.hide();if(!j.state.isMounted)return;$(),ee().forEach((function(e){e._tippy.unmount()})),I.parentNode&&I.parentNode.removeChild(I);rt=rt.filter((function(e){return e!==j})),j.state.isMounted=!1,C("onHidden",[j])},destroy:function(){0;if(j.state.isDestroyed)return;j.clearDelayTimeouts(),j.unmount(),_(),delete e._tippy,j.state.isDestroyed=!0,C("onDestroy",[j])}};if(!d.render)return j;var N=d.render(j),I=N.popper,w=N.onUpdate;I.setAttribute("data-tippy-root",""),I.id="tippy-"+j.id,j.popper=I,e._tippy=j,I._tippy=j;var v=b.map((function(e){return e.fn(j)})),D=e.hasAttribute("aria-expanded");return B(),P(),z(),C("onCreate",[j]),d.showOnCreate&&te(),I.addEventListener("mouseenter",(function(){j.props.interactive&&j.state.isVisible&&j.clearDelayTimeouts()})),I.addEventListener("mouseleave",(function(e){j.props.interactive&&j.props.trigger.indexOf("mouseenter")>=0&&(A().addEventListener("mousemove",m),m(e))})),j;function L(){var e=j.props.touch;return Array.isArray(e)?e:[e,0]}function O(){return"hold"===L()[0]}function T(){var e;return!!(null==(e=j.props.render)?void 0:e.$$tippy)}function x(){return u||e}function A(){var e=x().parentNode;return e?Pe(e):document}function S(){return $e(I)}function E(e){return j.state.isMounted&&!j.state.isVisible||Qe.isTouch||a&&"focus"===a.type?0:Ne(j.props.delay,e?0:1,_e.delay)}function z(){I.style.pointerEvents=j.props.interactive&&j.state.isVisible?"":"none",I.style.zIndex=""+j.props.zIndex}function C(e,t,n){var r;(void 0===n&&(n=!0),v.forEach((function(n){n[e]&&n[e].apply(void 0,t)})),n)&&(r=j.props)[e].apply(r,t)}function k(){var t=j.props.aria;if(t.content){var n="aria-"+t.content,r=I.id;De(j.props.triggerTarget||e).forEach((function(e){var t=e.getAttribute(n);if(j.state.isVisible)e.setAttribute(n,t?t+" "+r:r);else{var o=t&&t.replace(r,"").trim();o?e.setAttribute(n,o):e.removeAttribute(n)}}))}}function P(){!D&&j.props.aria.expanded&&De(j.props.triggerTarget||e).forEach((function(e){j.props.interactive?e.setAttribute("aria-expanded",j.state.isVisible&&e===x()?"true":"false"):e.removeAttribute("aria-expanded")}))}function U(){A().removeEventListener("mousemove",m),nt=nt.filter((function(e){return e!==m}))}function R(e){if(!Qe.isTouch||!g&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!j.props.interactive||!Re(I,t)){if(Re(x(),t)){if(Qe.isTouch)return;if(j.state.isVisible&&j.props.trigger.indexOf("click")>=0)return}else C("onClickOutside",[j,e]);!0===j.props.hideOnClick&&(j.clearDelayTimeouts(),j.hide(),f=!0,setTimeout((function(){f=!1})),j.state.isMounted||G())}}}function Q(){g=!0}function Z(){g=!1}function Y(){var e=A();e.addEventListener("mousedown",R,!0),e.addEventListener("touchend",R,be),e.addEventListener("touchstart",Z,be),e.addEventListener("touchmove",Q,be)}function G(){var e=A();e.removeEventListener("mousedown",R,!0),e.removeEventListener("touchend",R,be),e.removeEventListener("touchstart",Z,be),e.removeEventListener("touchmove",Q,be)}function F(e,t){var n=S().box;function r(e){e.target===n&&(Ue(n,"remove",r),t())}if(0===e)return t();Ue(n,"remove",c),Ue(n,"add",r),c=r}function W(t,n,r){void 0===r&&(r=!1),De(j.props.triggerTarget||e).forEach((function(e){e.addEventListener(t,n,r),y.push({node:e,eventType:t,handler:n,options:r})}))}function B(){var e;O()&&(W("touchstart",H,{passive:!0}),W("touchend",J,{passive:!0})),(e=j.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(W(e,H),e){case"mouseenter":W("mouseleave",J);break;case"focus":W(We?"focusout":"blur",X);break;case"focusin":W("focusout",X)}}))}function _(){y.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),y=[]}function H(e){var t,n=!1;if(j.state.isEnabled&&!q(e)&&!f){var r="focus"===(null==(t=a)?void 0:t.type);a=e,u=e.currentTarget,P(),!j.state.isVisible&&Se(e)&&nt.forEach((function(t){return t(e)})),"click"===e.type&&(j.props.trigger.indexOf("mouseenter")<0||p)&&!1!==j.props.hideOnClick&&j.state.isVisible?n=!0:te(e),"click"===e.type&&(p=!n),n&&!r&&ne(e)}}function V(e){var t=e.target,n=x().contains(t)||I.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=Oe(o.placement),c=o.modifiersData.offset;if(!c)return!0;var s="bottom"===a?c.top.y:0,u="top"===a?c.bottom.y:0,l="right"===a?c.left.x:0,d="left"===a?c.right.x:0,p=t.top-r+s>i,f=r-t.bottom-u>i,g=t.left-n+l>i,M=n-t.right-d>i;return p||f||g||M}))}(ee().concat(I).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:d}:null})).filter(Boolean),e)&&(U(),ne(e))}function J(e){q(e)||j.props.trigger.indexOf("click")>=0&&p||(j.props.interactive?j.hideWithInteractivity(e):ne(e))}function X(e){j.props.trigger.indexOf("focusin")<0&&e.target!==x()||j.props.interactive&&e.relatedTarget&&I.contains(e.relatedTarget)||ne(e)}function q(e){return!!Qe.isTouch&&O()!==e.type.indexOf("touch")>=0}function K(){$();var t=j.props,n=t.popperOptions,r=t.placement,o=t.offset,i=t.getReferenceClientRect,a=t.moveTransition,c=T()?$e(I).arrow:null,u=i?{getBoundingClientRect:i,contextElement:i.contextElement||x()}:e,l=[{name:"offset",options:{offset:o}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!a}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(T()){var n=S().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];T()&&c&&l.push({name:"arrow",options:{element:c,padding:3}}),l.push.apply(l,(null==n?void 0:n.modifiers)||[]),j.popperInstance=he(u,I,Object.assign({},n,{placement:r,onFirstUpdate:s,modifiers:l}))}function $(){j.popperInstance&&(j.popperInstance.destroy(),j.popperInstance=null)}function ee(){return Te(I.querySelectorAll("[data-tippy-root]"))}function te(e){j.clearDelayTimeouts(),e&&C("onTrigger",[j,e]),Y();var t=E(!0),n=L(),o=n[0],i=n[1];Qe.isTouch&&"hold"===o&&i&&(t=i),t?r=setTimeout((function(){j.show()}),t):j.show()}function ne(e){if(j.clearDelayTimeouts(),C("onUntrigger",[j,e]),j.state.isVisible){if(!(j.props.trigger.indexOf("mouseenter")>=0&&j.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&p)){var t=E(!1);t?o=setTimeout((function(){j.state.isVisible&&j.hide()}),t):i=requestAnimationFrame((function(){j.hide()}))}}else G()}}function it(e,t){void 0===t&&(t={});var n=_e.plugins.concat(t.plugins||[]);document.addEventListener("touchstart",Ye,be),window.addEventListener("blur",Fe);var r=Object.assign({},t,{plugins:n}),o=ze(e).reduce((function(e,t){var n=t&&ot(t,r);return n&&e.push(n),e}),[]);return Ae(e)?o[0]:o}it.defaultProps=_e,it.setDefaultProps=function(e){Object.keys(e).forEach((function(t){_e[t]=e[t]}))},it.currentInput=Qe;Object.assign({},re,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}});it.setDefaultProps({render:et});var at=it;function ct(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}var st="undefined"!=typeof window&&"undefined"!=typeof document;function ut(e,t){e&&("function"==typeof e&&e(t),{}.hasOwnProperty.call(e,"current")&&(e.current=t))}function lt(){return st&&document.createElement("div")}function dt(e){var t=[];return e.forEach((function(e){t.find((function(t){return function e(t,n){if(t===n)return!0;if("object"==typeof t&&null!=t&&"object"==typeof n&&null!=n){if(Object.keys(t).length!==Object.keys(n).length)return!1;for(var r in t){if(!n.hasOwnProperty(r))return!1;if(!e(t[r],n[r]))return!1}return!0}return!1}(e,t)}))||t.push(e)})),t}function pt(e,t){var n,r;return Object.assign({},t,{popperOptions:Object.assign({},e.popperOptions,t.popperOptions,{modifiers:dt([].concat((null==(n=e.popperOptions)?void 0:n.modifiers)||[],(null==(r=t.popperOptions)?void 0:r.modifiers)||[]))})})}var ft=st?o.useLayoutEffect:o.useEffect;function gt(e){var t=Object(o.useRef)();return t.current||(t.current="function"==typeof e?e():e),t.current}function Mt(e,t,n){n.split(/\s+/).forEach((function(n){n&&e.classList[t](n)}))}var yt={name:"className",defaultValue:"",fn:function(e){var t=e.popper.firstElementChild,n=function(){var t;return!!(null==(t=e.props.render)?void 0:t.$$tippy)};function r(){e.props.className&&!n()||Mt(t,"add",e.props.className)}return{onCreate:r,onBeforeUpdate:function(){n()&&Mt(t,"remove",e.props.className)},onAfterUpdate:r}}};function mt(e){return function(t){var n=t.children,r=t.content,i=t.visible,a=t.singleton,c=t.render,s=t.reference,u=t.disabled,l=void 0!==u&&u,d=t.ignoreAttributes,p=void 0===d||d,f=(t.__source,t.__self,ct(t,["children","content","visible","singleton","render","reference","disabled","ignoreAttributes","__source","__self"])),g=void 0!==i,M=void 0!==a,y=Object(o.useState)(!1),m=y[0],h=y[1],b=Object(o.useState)({}),j=b[0],N=b[1],I=Object(o.useState)(),w=I[0],v=I[1],D=gt((function(){return{container:lt(),renders:1}})),L=Object.assign({ignoreAttributes:p},f,{content:D.container});g&&(L.trigger="manual",L.hideOnClick=!1),M&&(l=!0);var O=L,T=L.plugins||[];c&&(O=Object.assign({},L,{plugins:M?[].concat(T,[{fn:function(){return{onTrigger:function(e,t){var n=a.data.children.find((function(e){return e.instance.reference===t.currentTarget})).content;v(n)}}}}]):T,render:function(){return{popper:D.container}}}));var x=[s].concat(n?[n.type]:[]);return ft((function(){var t=s;s&&s.hasOwnProperty("current")&&(t=s.current);var n=e(t||D.ref||lt(),Object.assign({},O,{plugins:[yt].concat(L.plugins||[])}));return D.instance=n,l&&n.disable(),i&&n.show(),M&&a.hook({instance:n,content:r,props:O}),h(!0),function(){n.destroy(),null==a||a.cleanup(n)}}),x),ft((function(){var e;if(1!==D.renders){var t=D.instance;t.setProps(pt(t.props,O)),null==(e=t.popperInstance)||e.forceUpdate(),l?t.disable():t.enable(),g&&(i?t.show():t.hide()),M&&a.hook({instance:t,content:r,props:O})}else D.renders++})),ft((function(){var e;if(c){var t=D.instance;t.setProps({popperOptions:Object.assign({},t.props.popperOptions,{modifiers:[].concat(((null==(e=t.props.popperOptions)?void 0:e.modifiers)||[]).filter((function(e){return"$$tippyReact"!==e.name})),[{name:"$$tippyReact",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t,n=e.state,r=null==(t=n.modifiersData)?void 0:t.hide;j.placement===n.placement&&j.referenceHidden===(null==r?void 0:r.isReferenceHidden)&&j.escaped===(null==r?void 0:r.hasPopperEscaped)||N({placement:n.placement,referenceHidden:null==r?void 0:r.isReferenceHidden,escaped:null==r?void 0:r.hasPopperEscaped}),n.attributes.popper={}}}])})})}}),[j.placement,j.referenceHidden,j.escaped].concat(x)),o.default.createElement(o.default.Fragment,null,n?Object(o.cloneElement)(n,{ref:function(e){D.ref=e,ut(n.ref,e)}}):null,m&&Object(o.createPortal)(c?c(function(e){var t={"data-placement":e.placement};return e.referenceHidden&&(t["data-reference-hidden"]=""),e.escaped&&(t["data-escaped"]=""),t}(j),w,D.instance):r,D.container))}}var ht=function(e,t){return Object(o.forwardRef)((function(n,r){var i=n.children,a=ct(n,["children"]);return o.default.createElement(e,Object.assign({},t,a),i?Object(o.cloneElement)(i,{ref:function(e){ut(r,e),ut(i.ref,e)}}):null)}))},bt=ht(mt(at));n("Ut/D");var jt=[{logo:n("VfI4"),label:"Coupontoaster - Discount and Coupon Codes",url:"https://coupontoaster.com/"},{logo:n("6JlE"),label:"Cell Tracking Apps - Parental Control Software Review Website",url:"http://celltrackingapps.com/"},{logo:n("a/i0"),label:"ggc - espionner un téléphone Android iPhone Pour Control Parental",url:"https://www.global-gsm-control.com/"},{logo:n("1Vcc"),label:"Living Feeds",url:"https://livingfeeds.com/"},{logo:n("wqdf"),label:"Titan Asset Management",url:"https://titanam.co.uk/"},{logo:n("G/dx"),label:"Dailycontributors Blog",url:"https://dailycontributors.com"},{logo:n("kccX"),label:"Ariakit - Toolkit for building accessible UIs",url:"https://ariakit.org/"},{logo:n("ihbc"),label:"Sup Standup Bot",url:"https://sup.today/"},{logo:n("6sof"),label:"FitLivingTips - Health and Fitness Blog",url:"https://www.fitlivingtips.com/"},{logo:n("l6D/"),label:"Mobipast",url:"https://mobipast.net/"},{logo:n("hGz5"),label:"Refermate - Best Coupon Codes",url:"https://refermate.com/"},{logo:n("rMmN"),label:"Electric UI - Tools for building user interfaces for hardware devices.",url:"https://electricui.com/"},{logo:n("bb9X"),label:"Mobilemall",url:"https://mobilemall.co/"},{logo:n("Okxv"),label:"Tubidy",url:"https://the-tubidy.com/"},{logo:n("5Xe9"),label:"Rapelis24",url:"https://the-repelis24.com/"},{logo:n("I/WC"),label:"Tinyzone",url:"https://thetinyzone.com/"}],Nt=[{title:"Usetiful",description:"User onboarding and product adoption made simple",image:"../images/affiliates/usetiful.jpg",url:"https://www.usetiful.com/",probability:1},{title:"Modern Treasury",description:"The one place to keep a business’s money flowing",image:"../images/affiliates/modern-treasury.jpg",url:"https://www.moderntreasury.com/",probability:1},{title:"Dopt",description:" Dopt gives developers UI components and SDKs to build seamless onboarding and education experiences in minutes.",image:"../images/affiliates/dopt.png",url:"https://dopt.com/?utm_source=floating_ui_website",probability:1}].slice(0,3),It=Nt.find((function(e){return null!=e.xlImage})),wt={name:"4zleql",styles:"display:block"},vt=Object(r.a)((function(e){return Object(s.c)(bt,{content:e.alt},Object(s.c)("a",{css:wt,href:e.href,target:"_blank",className:e.className,rel:"noopener noreferrer"},Object(s.c)("img",{src:e.src,alt:e.alt,width:"40",height:"40"})))}),{target:"eouopp00"})({name:"1qkqa41",styles:"opacity:0.2;transition:opacity 0.2s ease-in-out;&:hover{opacity:1;}img{height:40px;margin:10px;}"}),Dt={name:"1oehkdj",styles:"display:flex;justify-content:center;flex-wrap:wrap"},Lt=function(){return"undefined"==typeof window?null:Object(s.c)(o.default.Fragment,null,Object(s.c)(i.StaticQuery,{query:"1766395590",render:function(e){if("undefined"!=typeof window&&window.innerWidth>600&&It){var t=e.allImageSharp.edges.find((function(e){return It.xlImage.includes(e.node.fluid.originalName)}));return Object(s.c)(g,{title:It.title,description:It.description,fluid:t.node.fluid,url:It.url})}return Object(s.c)(u,null,Nt.map((function(t){var n=t.title,r=t.description,o=t.image,i=t.url,a=e.allImageSharp.edges.find((function(e){return o.includes(e.node.fluid.originalName)}));return null==a?null:Object(s.c)(g,{title:n,description:r,fluid:a.node.fluid,url:i})})))}}),Object(s.c)("div",{style:{height:"2em"}}),Object(s.c)("div",{css:Dt},jt.map((function(e){return Object(s.c)(vt,{src:e.logo,alt:e.label,href:e.url})}))))}},"3uz+":function(e,t,n){"use strict";t.__esModule=!0,t.useScrollRestoration=function(e){var t=(0,i.useLocation)(),n=(0,o.useContext)(r.ScrollContext),a=(0,o.useRef)();return(0,o.useLayoutEffect)((function(){if(a.current){var r=n.read(t,e);a.current.scrollTo(0,r||0)}}),[]),{ref:a,onScroll:function(){a.current&&n.save(t,e,a.current.scrollTop)}}};var r=n("Enzk"),o=n("FdF9"),i=n("IxVq")},"46f4":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"48MS":function(e,t,n){var r=n("bmrq");e.exports=Array.isArray||function(e){return"Array"==r(e)}},"4FWg":function(e,t,n){"use strict";n.d(t,"f",(function(){return s})),n.d(t,"e",(function(){return u})),n.d(t,"a",(function(){return l})),n.d(t,"c",(function(){return d})),n.d(t,"d",(function(){return f})),n.d(t,"b",(function(){return g}));n("RUBk");var r=n("8o2o"),o=n("k1TG"),i=n("DZdY"),a=(n("FdF9"),n("Wbzz")),c=n("AeFk");var s={xs:360,sm:600,md:768,lg:992,xl:1200},u=Object.keys(s).reduce((function(e,t){return e[t]="@media (min-width: "+s[t]+"px)",e}),{}),l=Object(i.a)("div",{target:"exyshz41"})("padding:0 15px;max-width:",(function(e){return e.maxWidth||900}),"px;margin:0 auto;",u.sm,"{padding:0 25px;}",u.md,"{padding:0 40px;}"),d=Object(i.a)("footer",{target:"exyshz40"})({name:"wi9qe5",styles:"text-align:center;background-color:#1c1428;padding:25px 0;color:#9479b9"}),p={name:"1jqpgpl",styles:"color:#ffe69d;text-decoration:none;padding-bottom:1px;border-bottom:2px solid rgba(255, 228, 148, 0.25);transition:border-bottom-color 0.15s ease-in-out;&:hover{border-bottom:2px solid rgba(255, 228, 148, 1);}&:active{border-bottom-style:dashed;}"},f=function(e){return Object(c.c)(a.Link,Object(o.a)({},e,{css:p}))},g=function(e){var t=e.to,n=Object(r.a)(e,["to"]);return Object(c.c)("a",Object(o.a)({},n,{href:t,css:p,rel:"noopener noreferrer",target:"_blank"}),n.children)}},"4jnk":function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},"58qx":function(e,t){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDk1NCA5NTQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLDAsLTAuNjA4MzM0KSI+CiAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoNC4xNjY2NywwLDAsNC4xNjY2NywwLDApIj4KICAgICAgICAgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNCwwLDAsMC4yNCwwLDApIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03OTQuNjMsOTU0LjE2N0wxNTguOTI1LDk1NC4xNjdDNzEuNTE3LDk1NC4xNjcgMCw4ODIuNjUxIDAsNzk1LjIzOEwwLDE1OS41MzhDMCw3Mi4xMjUgNzEuNTE3LDAuNjA4IDE1OC45MjUsMC42MDhMNzk0LjYzLDAuNjA4Qzg4Mi4wNDIsMC42MDggOTUzLjU1OSw3Mi4xMjUgOTUzLjU1OSwxNTkuNTM4TDk1My41NTksNzk1LjIzOEM5NTMuNTU5LDg4Mi42NSA4ODIuMDQzLDk1NC4xNjcgNzk0LjYzLDk1NC4xNjdaTTUxNC42NDIsNzY0LjA4QzU1MC40NzYsNzY0LjA4IDU4MS4zMjYsNzYwLjAyNiA2MDcuMzQ2LDc1MS45MjZDNjMzLjM2Nyw3NDMuODIxIDY1NC41NTksNzMyLjkxNyA2NzEuMjMsNzE5LjIwNUM2ODcuOTAxLDcwNS40OTIgNzAwLjA1NSw2ODkuMTM0IDcwNy44NDYsNjcwLjEyNkM3MTUuNjM0LDY1MS4yNzEgNzE5LjUzLDYzMC44NTkgNzE5LjUzLDYwOS4wNDZDNzE5LjUzLDU3MS4wMyA3MTAuNjUxLDUzOS41NTUgNjkzLjA0Miw1MTQuMzEzQzY3NS40MzgsNDg5LjIzIDY0OS40MTcsNDczLjAyNSA2MTUuMTM4LDQ2NS43TDYxNS4xMzgsNDY0LjE0MkM2NDAuNjkyLDQ1My4yMzggNjYwLjMyMSw0MzcuNjU1IDY3NC4wMzQsNDE3LjcxM0M2ODcuNzQ2LDM5Ny43NzEgNjk0LjYwMSwzNzMuNzc1IDY5NC42MDEsMzQ1LjcyOUM2OTQuNjAxLDI5OS40NTQgNjc5LjQ4OCwyNjUuMDIxIDY0OS40MTcsMjQyLjExN0M2MTkuMzQ2LDIxOS4yMTMgNTc5LjMsMjA3LjgzOCA1MjkuNDQyLDIwNy44MzhMMjU5LjEwOSwyMDcuODM4TDI1OS4xMDksNzY0LjA4TDUxNC42NDIsNzY0LjA4Wk01MjguNjYzLDUxMC43M0M1NTguMjY4LDUxMC43MyA1ODEuMDE3LDUxNy44OTYgNTk3LjUzNCw1MzIuODU1QzYxNC4wNDYsNTQ3LjgxMyA2MjIuMTUsNTY4Ljg0NiA2MjIuMTUsNTk2LjQyNUM2MjIuMTUsNjI0LjQ3MSA2MTMuODkyLDY0Ni4yODQgNTk3LjUzNCw2NjEuNTU1QzU4MS4zMjUsNjc2Ljk4IDU1OC4yNjcsNjg0LjYxMyA1MjguNjYzLDY4NC42MTNMMzU2LjQ5Miw2ODQuNjEzTDM1Ni40OTIsNTEwLjczTDUyOC42NjMsNTEwLjczWk01MTUuNDIxLDI4Ny4xNDZDNTQxLjkwOSwyODcuMTQ2IDU2Mi4xNjMsMjkyLjkwOSA1NzYuMTg0LDMwNC4yODRDNTkwLjIwOSwzMTUuNjU5IDU5Ny4yMjEsMzM1LjQ0NiA1OTcuMjIxLDM2My40OTJDNTk3LjIyMSwzODguNDIxIDU4OS40Myw0MDcuNDI5IDU3My44NSw0MjAuODNDNTU4LjI2Nyw0MzQuMjMgNTM4Ljc5Miw0NDAuNzcxIDUxNS40MjEsNDQwLjc3MUwzNTYuNDkyLDQ0MC43NzFMMzU2LjQ5MiwyODcuMTQ2TDUxNS40MjEsMjg3LjE0NloiIHN0eWxlPSJmaWxsOndoaXRlO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4K"},"5NKs":function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},"5Xe9":function(e,t){e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDUxMiA1MTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgyNi4yNDQ4LDAsMCwyNi4yNDQ4LC0zODguNjksLTU1NjEuMjMpIj4KICAgICAgICA8dGV4dCB4PSIxNS4wMDRweCIgeT0iMjI1Ljg1MnB4IiBzdHlsZT0iZm9udC1mYW1pbHk6J0JlYmFzTmV1ZS1SZWd1bGFyJywgJ0JlYmFzIE5ldWUnLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMnB4O2ZpbGw6d2hpdGU7Ij5SUzI0PC90ZXh0PgogICAgPC9nPgo8L3N2Zz4K"},"5hOV":function(e,t,n){"use strict";var r=n("FdF9");function o(){return(o=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=Object(r.forwardRef)((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,c=e.size,s=void 0===c?24:c,u=i(e,["color","size"]);return r.default.createElement("svg",o({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},u),r.default.createElement("polyline",{points:"5 9 2 12 5 15"}),r.default.createElement("polyline",{points:"9 5 12 2 15 5"}),r.default.createElement("polyline",{points:"15 19 12 22 9 19"}),r.default.createElement("polyline",{points:"19 9 22 12 19 15"}),r.default.createElement("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),r.default.createElement("line",{x1:"12",y1:"2",x2:"12",y2:"22"}))}));a.displayName="Move",t.a=a},"5yr3":function(e,t,n){"use strict";var r=function(e){return e=e||Object.create(null),{on:function(t,n){(e[t]||(e[t]=[])).push(n)},off:function(t,n){e[t]&&e[t].splice(e[t].indexOf(n)>>>0,1)},emit:function(t,n){(e[t]||[]).slice().map((function(e){e(n)})),(e["*"]||[]).slice().map((function(e){e(t,n)}))}}}();t.a=r},"67Pw":function(e,t,n){var r=n("m/aQ"),o=n("wTlq"),i=n("QD2z")("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},"6JlE":function(e,t,n){e.exports=n.p+"static/celltrackingapps-9d67abee46cbd524d95edc8121acbc92.svg"},"6Zah":function(e,t,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);t.f=i?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},"6cYJ":function(e,t,n){var r=n("34EK"),o=n("SWhb"),i=n("GoW4"),a=n("jekk");e.exports=function(e,t){for(var n=o(t),c=a.f,s=i.f,u=0;u=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.default.createContext({}),l=function(e){return function(t){var n=d(t.components);return r.default.createElement(e,i({},t,{components:n}))}},d=function(e){var t=r.default.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=d(e.components);return r.default.createElement(u.Provider,{value:t},e.children)},f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.default.createElement(r.default.Fragment,{},t)}},g=r.default.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),l=d(n),p=o,g=l["".concat(a,".").concat(p)]||l[p]||f[p]||i;return n?r.default.createElement(g,c(c({ref:t},u),{},{components:n})):r.default.createElement(g,c({ref:t},u))}));function M(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=g;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var u=2;u=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=Object(r.forwardRef)((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,c=e.size,s=void 0===c?24:c,u=i(e,["color","size"]);return r.default.createElement("svg",o({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},u),r.default.createElement("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),r.default.createElement("polyline",{points:"5 12 12 5 19 12"}))}));a.displayName="ArrowUp",t.a=a},"7pXE":function(e,t,n){"use strict";n.d(t,"a",(function(){return hn})),n.d(t,"b",(function(){return zn}));var r=n("DZdY"),o=n("FdF9"),i=n("Wbzz"),a=n("AeFk"),c=n("78ZJ"),s=n("9xdK"),u=n("r7HZ"),l=n("4FWg"),d=n("FqMR");function p(){return o.default.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},o.default.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function f(){return o.default.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},o.default.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function g(){return(g=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var h=o.default.forwardRef((function(e,t){var n=e.translations,r=void 0===n?{}:n,i=m(e,["translations"]),a=r.buttonText,c=void 0===a?"Search":a,s=r.buttonAriaLabel,u=void 0===s?"Search":s,l=M(Object(o.useState)(null),2),d=l[0],y=l[1];return Object(o.useEffect)((function(){"undefined"!=typeof navigator&&y(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl")}),[]),o.default.createElement("button",g({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},i,{ref:t}),o.default.createElement("span",{className:"DocSearch-Button-Container"},o.default.createElement(f,null),o.default.createElement("span",{className:"DocSearch-Button-Placeholder"},c)),null!==d&&o.default.createElement("span",{className:"DocSearch-Button-Keys"},o.default.createElement("span",{className:"DocSearch-Button-Key"},"Ctrl"===d?o.default.createElement(p,null):d),o.default.createElement("span",{className:"DocSearch-Button-Key"},"K")))}));n("bNlK"),n("LOWo");function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e,t,n){var r=t.initialState;return{getState:function(){return r},dispatch:function(o,i){var a=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var W=null;function B(e){var t=e.event,n=e.nextState,r=void 0===n?{}:n,o=e.props,i=e.query,a=e.refresh,c=e.store,s=F(e,["event","nextState","props","query","refresh","store"]);W&&o.environment.clearTimeout(W);var u,l=s.setCollections,d=s.setIsOpen,p=s.setQuery,f=s.setActiveItemId,g=s.setStatus;return p(i),f(o.defaultActiveItemId),i||!1!==o.openOnFocus?(g("loading"),W=o.environment.setTimeout((function(){g("stalled")}),o.stallThreshold),o.getSources(Y({query:i,refresh:a,state:c.getState()},s)).then((function(e){return g("loading"),Promise.all(e.map((function(e){return Promise.resolve(e.getItems(Y({query:i,refresh:a,state:c.getState()},s))).then((function(t){return Array.isArray(t),"The `getItems` function must return an array of items but returned type ".concat(JSON.stringify(Q(t)),":\n\n").concat(JSON.stringify(t,null,2)),{source:e,items:t}}))}))).then((function(e){var n;g("idle"),l(e);var u=o.shouldPanelOpen({state:c.getState()});d(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!i&&u||u);var p=R(c.getState());if(null!==c.getState().activeItemId&&p){var f=p.item,M=p.itemInputValue,y=p.itemUrl,m=p.source;m.onActive(Y({event:t,item:f,itemInputValue:M,itemUrl:y,refresh:a,source:m,state:c.getState()},s))}})).finally((function(){W&&o.environment.clearTimeout(W)}))}))):(g("idle"),l(c.getState().collections.map((function(e){return Y(Y({},e),{},{items:[]})}))),d(null!==(u=r.isOpen)&&void 0!==u?u:o.shouldPanelOpen({state:c.getState()})),Promise.resolve())}function _(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function H(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function X(e,t){return e===t||e.contains(t)}function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function K(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function te(e){var t=e.props,n=e.refresh,r=e.store,o=ee(e,["props","refresh","store"]);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;return K({onTouchStart:function(e){!1!==r.getState().isOpen&&e.target!==n&&(!1===[o,i].some((function(n){return X(n,e.target)||X(n,t.environment.document.activeElement)}))&&r.dispatch("blur",null))},onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},ee(e,["inputElement","formElement","panelElement"]))},getRootProps:function(e){return K({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return K({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(K({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(K({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},ee(e,["inputElement"]))},getLabelProps:function(e){return K({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){function i(e){(t.openOnFocus||Boolean(r.getState().query))&&B(K({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a="ontouchstart"in t.environment,c=e||{},s=(c.inputElement,c.maxLength),u=void 0===s?512:s,l=ee(c,["inputElement","maxLength"]),d=R(r.getState());return K({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:null!=d&&d.itemUrl?"go":"search",spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:u,type:"search",onChange:function(e){B(K({event:e,props:t,query:e.currentTarget.value.slice(0,u),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=J(e,["event","props","refresh","store"]);if("ArrowUp"===t.key||"ArrowDown"===t.key){t.preventDefault(),o.dispatch(t.key,null);var a=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));a&&(a.scrollIntoViewIfNeeded?a.scrollIntoViewIfNeeded(!1):a.scrollIntoView(!1));var c=R(o.getState());if(null!==o.getState().activeItemId&&c){var s=c.item,u=c.itemInputValue,l=c.itemUrl,d=c.source;d.onActive(H({event:t,item:s,itemInputValue:u,itemUrl:l,refresh:r,source:d,state:o.getState()},i))}}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null);else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return;t.preventDefault();var p=R(o.getState()),f=p.item,g=p.itemInputValue,M=p.itemUrl,y=p.source;if(t.metaKey||t.ctrlKey)void 0!==M&&(y.onSelect(H({event:t,item:f,itemInputValue:g,itemUrl:M,refresh:r,source:y,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:M,item:f,state:o.getState()}));else if(t.shiftKey)void 0!==M&&(y.onSelect(H({event:t,item:f,itemInputValue:g,itemUrl:M,refresh:r,source:y,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:M,item:f,state:o.getState()}));else if(t.altKey);else{if(void 0!==M)return y.onSelect(H({event:t,item:f,itemInputValue:g,itemUrl:M,refresh:r,source:y,state:o.getState()},i)),void n.navigator.navigate({itemUrl:M,item:f,state:o.getState()});B(H({event:t,nextState:{isOpen:!1},props:n,query:g,refresh:r,store:o},i)).then((function(){y.onSelect(H({event:t,item:f,itemInputValue:g,itemUrl:M,refresh:r,source:y,state:o.getState()},i))}))}}}(K({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:function(){a||r.dispatch("blur",null)},onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},l)},getPanelProps:function(e){return K({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){return K({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var i=e.item,a=e.source,c=ee(e,["item","source"]);return K({id:"".concat(t.id,"-item-").concat(i.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=R(r.getState());if(null!==r.getState().activeItemId&&t){var a=t.item,c=t.itemInputValue,s=t.itemUrl,u=t.source;u.onActive(K({event:e,item:a,itemInputValue:c,itemUrl:s,refresh:n,source:u,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var c=a.getItemInputValue({item:i,state:r.getState()}),s=a.getItemUrl({item:i,state:r.getState()});(s?Promise.resolve():B(K({event:e,nextState:{isOpen:!1},props:t,query:c,refresh:n,store:r},o))).then((function(){a.onSelect(K({event:e,item:i,itemInputValue:c,itemUrl:s,refresh:n,source:a,state:r.getState()},o))}))}},c)}}}function ne(e){var t=e.state;return!1===t.isOpen||null===t.activeItemId?null:R(t).itemInputValue||null}function re(e,t,n,r){if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ie(e){for(var t=1;t0}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:"autocomplete-".concat(O++),plugins:o,initialState:P({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(z(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return E(e,n)}))).then((function(e){return I(e)})).then((function(e){return e.map((function(e){return P(P({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:P({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}(e,t),r=N(ce,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(ue({prevState:t,state:r,refresh:a},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return v(v({},e),{},{items:I(e.items).map((function(e){return v(v({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),i=te(ue({props:n,refresh:a,store:r},o));function a(){return B(ue({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,query:r.getState().query,refresh:a,store:r},o))}return n.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,ue(ue({},o),{},{refresh:a,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),ue(ue({refresh:a},i),o)}var pe="1.0.0-alpha.42";function fe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ge(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&o.default.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},o.default.createElement("p",{className:"DocSearch-Help"},"Try searching for:"),o.default.createElement("ul",null,t.slice(0,3).reduce((function(t,n){return[].concat(Le(t),[o.default.createElement("li",{key:n},o.default.createElement("button",{className:"DocSearch-Prefill",key:n,onClick:function(){e.setQuery(n.toLowerCase()+" "),e.refresh(),e.inputRef.current.focus()}},n))])}),[]))),o.default.createElement("p",{className:"DocSearch-Help"},"Believe this query should return results?"," ",o.default.createElement("a",{href:"https://github.com/algolia/docsearch-configs/issues/new?template=Missing_results.md&title=[".concat(e.indexName,']+Missing+results+for+query+"').concat(e.state.query,'"'),target:"_blank",rel:"noopener noreferrer"},"Let us know"),"."))}function xe(e){switch(e.type){case"lvl1":return o.default.createElement(Ae,null);case"content":return o.default.createElement(Ee,null);default:return o.default.createElement(Se,null)}}function Ae(){return o.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},o.default.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Se(){return o.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},o.default.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function Ee(){return o.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},o.default.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function ze(){return o.default.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},o.default.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},o.default.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),o.default.createElement("path",{d:"M8 17l-6-6 6-6"})))}function Ce(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ke(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Re(e,t){return t.split(".").reduce((function(e,t){return e&&e[t]}),e)}function Qe(e){var t=e.hit,n=e.attribute,r=e.tagName,i=void 0===r?"span":r,a=Ue(e,["hit","attribute","tagName"]);return Object(o.createElement)(i,ke(ke({},a),{},{dangerouslySetInnerHTML:{__html:Re(t,"_snippetResult.".concat(n,".value"))||Re(t,n)}}))}function Ze(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(s){o=!0,i=s}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Ye(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ye(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0}));return e.state.query?!1===t?o.default.createElement(Te,e):o.default.createElement(_e,e):o.default.createElement(qe,Ke({},e,{hasCollections:t}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function et(){return o.default.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},o.default.createElement("g",{fill:"none",fillRule:"evenodd"},o.default.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},o.default.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),o.default.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},o.default.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}function tt(){return(tt=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ot(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(t){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function it(e){var t=e.key,n=e.limit,r=void 0===n?5:n,o=ot(t),i=o.getItem().slice(0,r);return{add:function(e){var t=e,n=(t._highlightResult,t._snippetResult,rt(t,["_highlightResult","_snippetResult"])),a=i.findIndex((function(e){return e.objectID===n.objectID}));a>-1&&i.splice(a,1),i.unshift(n),i=i.slice(0,r),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}var at=n("8o2o");var ct=n("t8Zj");var st=n("sXA6");function ut(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(r=(a=c.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(s){o=!0,i=s}finally{try{r||null==c.return||c.return()}finally{if(o)throw i}}return n}}(e,t)||Object(st.a)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function dt(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var n=JSON.stringify(e),r=o()[n];return Promise.all([r||t(),void 0!==r])})).then((function(e){var t=ut(e,2),r=t[0],o=t[1];return Promise.all([r,o||n.miss(r)])})).then((function(e){return ut(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=o();return i[JSON.stringify(e)]=t,r().setItem(n,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=o();delete t[JSON.stringify(e)],r().setItem(n,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){r().removeItem(n)}))}}}function ft(e){var t=Object(ct.a)(e.caches),n=t.shift();return void 0===n?{get:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},r=t();return r.then((function(e){return Promise.all([e,n.miss(e)])})).then((function(e){return ut(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(e,r,o).catch((function(){return ft({caches:t}).get(e,r,o)}))},set:function(e,r){return n.set(e,r).catch((function(){return ft({caches:t}).set(e,r)}))},delete:function(e){return n.delete(e).catch((function(){return ft({caches:t}).delete(e)}))},clear:function(){return n.clear().catch((function(){return ft({caches:t}).clear()}))}}}function gt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(n);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var a=r(),c=o&&o.miss||function(){return Promise.resolve()};return a.then((function(e){return c(e)})).then((function(){return a}))},set:function(n,r){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function Mt(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}function yt(e,t){return Object.keys(void 0!==t?t:{}).forEach((function(n){e[n]=t[n](e)})),e}function mt(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r0?r:void 0,timeout:n.timeout||t,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}var jt={Read:1,Write:2,Any:3},Nt=1,It=2,wt=3;function vt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Nt;return dt(dt({},e),{},{status:t,lastUpdate:Date.now()})}function Dt(e){return{protocol:e.protocol||"https",url:e.url,accept:e.accept||jt.Any}}var Lt="GET",Ot="POST";function Tt(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(vt(t))}))}))).then((function(e){var n=e.filter((function(e){return function(e){return e.status===Nt||Date.now()-e.lastUpdate>12e4}(e)})),r=e.filter((function(e){return function(e){return e.status===wt&&Date.now()-e.lastUpdate<=12e4}(e)})),o=[].concat(Object(ct.a)(n),Object(ct.a)(r));return{getTimeout:function(e,t){return(0===r.length&&0===e?1:r.length+3+e)*t},statelessHosts:o.length>0?o.map((function(e){return Dt(e)})):t}}))}function xt(e,t,n,r){var o=[],i=function(e,t){if(e.method===Lt||void 0===e.data&&void 0===t.data)return;var n=Array.isArray(e.data)?e.data:dt(dt({},e.data),t.data);return JSON.stringify(n)}(n,r),a=function(e,t){var n=dt(dt({},e.headers),t.headers),r={};return Object.keys(n).forEach((function(e){var t=n[e];r[e.toLowerCase()]=t})),r}(e,r),c=n.method,s=n.method!==Lt?{}:dt(dt({},n.data),r.data),u=dt(dt(dt({"x-algolia-agent":e.userAgent.value},e.queryParameters),s),r.queryParameters),l=0,d=function t(s,d){var p=s.pop();if(void 0===p)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:zt(o)};var f={data:i,headers:a,method:c,url:St(p,n.path,u),connectTimeout:d(l,e.timeouts.connect),responseTimeout:d(l,r.timeout)},g=function(e){var t={request:f,response:e,host:p,triesLeft:s.length};return o.push(t),t},M={onSucess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var r=g(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",Ct(r)),e.hostsCache.set(p,vt(p,n.isTimedOut?wt:It))]).then((function(){return t(s,d)}))},onFail:function(e){throw g(e),function(e,t){var n=e.content,r=e.status,o=n;try{o=JSON.parse(n).message}catch(i){}return function(e,t,n){return{name:"ApiError",message:e,status:t,transporterStackTrace:n}}(o,r,t)}(e,zt(o))}};return e.requester.send(f).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,n=e.status;return!t&&0==~~n}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSucess(e):t.onFail(e)}(e,M)}))};return Tt(e.hostsCache,t).then((function(e){return d(Object(ct.a)(e.statelessHosts).reverse(),e.getTimeout)}))}function At(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var n="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(n)&&(t.value="".concat(t.value).concat(n)),t}};return t}function St(e,t,n){var r=Et(n),o="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return r.length&&(o+="?".concat(r)),o}function Et(e){return Object.keys(e).map((function(t){return mt("%s=%s",t,(n=e[t],"[object Object]"===Object.prototype.toString.call(n)||"[object Array]"===Object.prototype.toString.call(n)?JSON.stringify(e[t]):e[t]));var n})).join("&")}function zt(e){return e.map((function(e){return Ct(e)}))}function Ct(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return dt(dt({},e),{},{request:dt(dt({},e.request),{},{headers:dt(dt({},e.request.headers),t)})})}var kt=function(e){var t=e.appId,n=function(e,t,n){var r={"x-algolia-api-key":n,"x-algolia-application-id":t};return{headers:function(){return e===ht.WithinHeaders?r:{}},queryParameters:function(){return e===ht.WithinQueryParameters?r:{}}}}(void 0!==e.authMode?e.authMode:ht.WithinHeaders,t,e.apiKey),r=function(e){var t=e.hostsCache,n=e.logger,r=e.requester,o=e.requestsCache,i=e.responsesCache,a=e.timeouts,c=e.userAgent,s=e.hosts,u=e.queryParameters,l={hostsCache:t,logger:n,requester:r,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,headers:e.headers,queryParameters:u,hosts:s.map((function(e){return Dt(e)})),read:function(e,t){var n=bt(t,l.timeouts.read),r=function(){return xt(l,l.hosts.filter((function(e){return 0!=(e.accept&jt.Read)})),e,n)};if(!0!==(void 0!==n.cacheable?n.cacheable:e.cacheable))return r();var o={request:e,mappedRequestOptions:n,transporter:{queryParameters:l.queryParameters,headers:l.headers}};return l.responsesCache.get(o,(function(){return l.requestsCache.get(o,(function(){return l.requestsCache.set(o,r()).then((function(e){return Promise.all([l.requestsCache.delete(o),e])}),(function(e){return Promise.all([l.requestsCache.delete(o),Promise.reject(e)])})).then((function(e){var t=ut(e,2);t[0];return t[1]}))}))}),{miss:function(e){return l.responsesCache.set(o,e)}})},write:function(e,t){return xt(l,l.hosts.filter((function(e){return 0!=(e.accept&jt.Write)})),e,bt(t,l.timeouts.write))}};return l}(dt(dt({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:jt.Read},{url:"".concat(t,".algolia.net"),accept:jt.Write}].concat(Mt([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:dt(dt(dt({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:dt(dt({},n.queryParameters()),e.queryParameters)}));return yt({transporter:r,appId:t,addAlgoliaAgent:function(e,t){r.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([r.requestsCache.clear(),r.responsesCache.clear()]).then((function(){}))}},e.methods)},Pt=function(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={transporter:e.transporter,appId:e.appId,indexName:t};return yt(r,n.methods)}},Ut=function(e){return function(t,n){var r=t.map((function(e){return dt(dt({},e),{},{params:Et(e.params||{})})}));return e.transporter.read({method:Ot,path:"1/indexes/*/queries",data:{requests:r},cacheable:!0},n)}},Rt=function(e){return function(t,n){return Promise.all(t.map((function(t){var r=t.params,o=r.facetName,i=r.facetQuery,a=function(e,t){if(null==e)return{};var n,r,o=Object(at.a)(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(r,["facetName","facetQuery"]);return Pt(e)(t.indexName,{methods:{searchForFacetValues:Zt}}).searchForFacetValues(o,i,dt(dt({},n),a))})))}},Qt=function(e){return function(t,n){return e.transporter.read({method:Ot,path:mt("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},n)}},Zt=function(e){return function(t,n,r){return e.transporter.read({method:Ot,path:mt("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:n},cacheable:!0},r)}},Yt=1,Gt=2,Ft=3;function Wt(e,t,n){var r,o={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var n=new XMLHttpRequest;n.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return n.setRequestHeader(t,e.headers[t])}));var r,o=function(e,r){return setTimeout((function(){n.abort(),t({status:0,content:r,isTimedOut:!0})}),1e3*e)},i=o(e.connectTimeout,"Connection timeout");n.onreadystatechange=function(){n.readyState>n.OPENED&&void 0===r&&(clearTimeout(i),r=o(e.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(i),clearTimeout(r),t({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(i),clearTimeout(r),t({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(e.data)}))}},logger:(r=Ft,{debug:function(e,t){return Yt>=r&&console.debug(e,t),Promise.resolve()},info:function(e,t){return Gt>=r&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:gt(),requestsCache:gt({serializable:!1}),hostsCache:ft({caches:[pt({key:"".concat("4.4.0","-").concat(e)}),gt()]}),userAgent:At("4.4.0").add({segment:"Browser",version:"lite"}),authMode:ht.WithinQueryParameters};return kt(dt(dt(dt({},o),n),{},{methods:{search:Ut,searchForFacetValues:Rt,multipleQueries:Ut,multipleSearchForFacetValues:Rt,initIndex:function(e){return function(t){return Pt(e)(t,{methods:{search:Qt,searchForFacetValues:Zt}})}}}}))}Wt.version="4.4.0";var Bt=Wt;function _t(){}function Ht(e){return e}function Vt(e,t){return e.reduce((function(e,n){var r=t(n);return e.hasOwnProperty(r)||(e[r]=[]),e[r].length<5&&e[r].push(n),e}),{})}function Jt(){return(Jt=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n",highlightPostTag:"",hitsPerPage:20},s)}]}).catch((function(e){throw"RetryError"===e.name&&o("error"),e})).then((function(e){var t=e[0].hits,o=e[0].nbHits,i=Vt(t,(function(e){return e.hierarchy.lvl0}));return n.context.searchSuggestions.length0&&(W(),z.current&&z.current.focus())}),[P,W]),o.default.useEffect((function(){function e(){if(A.current){var e=.01*window.innerHeight;A.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),o.default.createElement("div",Jt({ref:x},F({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===O.status&&"DocSearch-Container--Stalled","error"===O.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),onMouseDown:function(e){e.target===e.currentTarget&&l()}}),o.default.createElement("div",{className:"DocSearch-Modal",ref:A},o.default.createElement("header",{className:"DocSearch-SearchBar",ref:S},o.default.createElement(nt,Jt({},Y,{state:O,autoFocus:0===P.length,onClose:l,inputRef:z,isFromSelection:Boolean(P)&&P===k}))),o.default.createElement("div",{className:"DocSearch-Dropdown",ref:E},o.default.createElement($e,Jt({},Y,{indexName:i,state:O,hitComponent:g,resultsFooterComponent:y,disableUserPersonalization:w,recentSearches:Q,favoriteSearches:R,onItemClick:function(e){Z(e),l()},inputRef:z}))),o.default.createElement("footer",{className:"DocSearch-Footer"},o.default.createElement(je,null))))}function nn(){return(nn=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var yn=Object(o.forwardRef)((function(e,t){var n=e.color,r=void 0===n?"currentColor":n,i=e.size,a=void 0===i?24:i,c=Mn(e,["color","size"]);return o.default.createElement("svg",gn({ref:t,xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:r,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),o.default.createElement("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),o.default.createElement("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),o.default.createElement("line",{x1:"3",y1:"18",x2:"21",y2:"18"}))}));yn.displayName="Menu";var mn=yn;var hn=260,bn={name:"1j107cc",styles:"display:flex;flex-direction:column;transform:translateX(0)"},jn=Object(r.a)("div",{target:"e1y4lhx07"})("background:#c83b50;position:fixed;top:4rem;height:100%;width:",hn,"px;transform:translateX(-",hn,"px);display:none;z-index:2;box-shadow:10px 0 20px -2px rgba(80, 0, 20, 0.2);",(function(e){return e.open&&bn})," ",l.e.lg,"{display:flex;flex-direction:column;transform:translateX(0);box-shadow:none;}"),Nn={name:"1mcfljc",styles:"margin-left:15px;border-left:1px solid rgba(255, 200, 200, 0.5)"},In=Object(r.a)("ul",{target:"e1y4lhx06"})("list-style:none;padding:0;margin-left:",(function(e){return e.root?0:15}),"px;margin-top:0;line-height:1.5;",(function(e){return!e.root&&Nn}),";"),wn=Object(r.a)(i.Link,{target:"e1y4lhx05"})({name:"1t5nui9",styles:"display:block;color:white;text-decoration:none;padding:6px 15px;font-size:18px;transition:background-color 0.1s;border-radius:0 20px 20px 0;border:none;font-weight:500;&:hover{background-color:rgba(255, 255, 255, 0.2);border:none;}&:active{border-style:none;}"}),vn=Object(r.a)("header",{target:"e1y4lhx04"})("display:flex;justify-content:space-between;position:fixed;background-color:#c83b50;padding:15px 0;height:45px;width:100%;z-index:2;",l.e.lg,"{display:none;}"),Dn=Object(r.a)("div",{target:"e1y4lhx03"})("background:#c83b50;width:100%;padding:6px 0 0;display:none;",l.e.lg,"{display:flex;flex-direction:column;align-items:center;}"),Ln={name:"19aw7yd",styles:"width:100px;height:50px"},On=function(e){var t=e.mobile;return Object(a.c)(i.Link,{to:"/",css:Object(a.b)("display:block;margin:0 auto;user-select:none;margin-top:",t?"-12px":"0",";&,&:hover{border-width:0;}","")},Object(a.c)("img",{src:fn.a,draggable:"false",alt:"Popper Logo",css:Ln}))},Tn=Object(r.a)("button",{target:"e1y4lhx02"})({name:"ypiffj",styles:"position:fixed;border:none;color:white;font-weight:bold;top:0;padding:8px 15px;height:45px;background-color:#c83b50;border-radius:0 0 4px 4px"}),xn=Object(r.a)("button",{target:"e1y4lhx01"})("display:block;background-color:white;color:#c83b50;border:none;font-weight:bold;padding:8px 16px;border-radius:4px;margin:10px 10px 0 10px;",l.e.lg,"{display:none;}"),An=Object(r.a)("div",{target:"e1y4lhx00"})("overflow:auto;min-height:0;flex:1;padding:0 10px 20px 0;margin-top:20px;",l.e.lg,"{margin-top:10px;}"),Sn=function e(t){var n=t.route;return Object(a.c)(o.default.Fragment,null,Object(a.c)(In,{root:!0},Object(a.c)("li",{style:{marginBottom:0}},Object(a.c)(wn,{to:n.slug,activeStyle:{backgroundColor:"#FFF",color:"#C83B50",fontWeight:"bold"}},n.navigationLabel)),Object(a.c)("li",null,Object(a.c)(In,{root:2===n.slug.split("/").length},n.children.map((function(t,n){return Object(a.c)(e,{key:n,route:t})}))))))},En=0;function zn(e){e.description,e.lang,e.meta;var t=e.path,n=Object(o.useState)(!1),r=n[0],i=n[1],l=Object(o.useState)(!1),d=(l[0],l[1]),p=Object(o.useRef)();function f(){i(!0)}function g(){i(!1)}function M(){var e=p.current.scrollTop;En=e,d(e>10)}return Object(o.useLayoutEffect)((function(){var e=p.current;e.scrollTop=En;var t=e.querySelector('[aria-current="page"]');if(t){var n=t.getBoundingClientRect();(n.bottom>window.innerHeight||n.top<0)&&t.scrollIntoView()}}),[]),Object(a.c)(c.a,null,(function(e){return Object(a.c)(o.default.Fragment,null,Object(a.c)(vn,null,Object(a.c)(Tn,{onClick:f,"aria-expanded":r?"true":"false","aria-label":"Click to open navigation menu"},Object(a.c)(mn,{size:30})),Object(a.c)(On,{mobile:!0})),Object(a.c)(jn,{open:r},Object(a.c)(Dn,null,Object(a.c)(On,null)),Object(a.c)(xn,{onClick:g},"Close Menu"),Object(a.c)(dn,null),Object(a.c)(An,{ref:p,onScroll:M},Object(s.a)(Object(u.a)(e,t)).map((function(e,t){return Object(a.c)(Sn,{route:e,key:t})})))))}))}},"8+s/":function(e,t,n){"use strict";var r,o=n("FdF9"),i=(r=o)&&"object"==typeof r&&"default"in r?r.default:r;function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=!("undefined"==typeof window||!window.document||!window.document.createElement);e.exports=function(e,t,n){if("function"!=typeof e)throw new Error("Expected reducePropsToState to be a function.");if("function"!=typeof t)throw new Error("Expected handleStateChangeOnClient to be a function.");if(void 0!==n&&"function"!=typeof n)throw new Error("Expected mapStateOnServer to either be undefined or a function.");return function(r){if("function"!=typeof r)throw new Error("Expected WrappedComponent to be a React component.");var s,u=[];function l(){s=e(u.map((function(e){return e.props}))),d.canUseDOM?t(s):n&&(s=n(s))}var d=function(e){var t,n;function o(){return e.apply(this,arguments)||this}n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o.peek=function(){return s},o.rewind=function(){if(o.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var e=s;return s=void 0,u=[],e};var a=o.prototype;return a.UNSAFE_componentWillMount=function(){u.push(this),l()},a.componentDidUpdate=function(){l()},a.componentWillUnmount=function(){var e=u.indexOf(this);u.splice(e,1),l()},a.render=function(){return i.createElement(r,this.props)},o}(o.PureComponent);return a(d,"displayName","SideEffect("+function(e){return e.displayName||e.name||"Component"}(r)+")"),a(d,"canUseDOM",c),d}}},"86Yh":function(e,t,n){var r=n("ckLD"),o=n("48MS"),i=n("QD2z")("species");e.exports=function(e,t){var n;return o(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},"8deY":function(e,t,n){var r=n("lSYd"),o=n("ij4R");(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.8.3",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},"8mzz":function(e,t,n){var r=n("JhOX"),o=n("bmrq"),i="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?i.call(e,""):Object(e)}:Object},"8o2o":function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},"8ypT":function(e,t,n){},"94VI":function(e,t){t.polyfill=function(e){return e}},"9CUm":function(e,t,n){"use strict";n("FdF9");var r=n("qhky"),o=n("Wbzz"),i=n("AeFk");function a(e){var t=e.description,n=e.lang,a=e.meta,c=e.title,s=Object(o.useStaticQuery)("32046230").site,u=t||s.siteMetadata.description,l="Home"===c,d=l?s.siteMetadata.title+" - Tooltip & Popover Positioning Engine":c,p=l?"":"%s | "+s.siteMetadata.title;return Object(i.c)(r.a,{htmlAttributes:{lang:n},title:d,titleTemplate:p,meta:[{name:"description",content:u},{property:"og:title",content:c},{property:"og:description",content:u},{property:"og:type",content:"website"},{property:"og:image",content:s.siteMetadata.image},{name:"twitter:card",content:"summary"},{name:"twitter:creator",content:s.siteMetadata.author},{name:"twitter:title",content:c},{name:"twitter:description",content:u}].concat(a)})}a.defaultProps={lang:"en",meta:[],description:""},t.a=a},"9Hrx":function(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,"a",(function(){return o}))},"9eSz":function(e,t,n){"use strict";var r=n("5NKs");t.__esModule=!0,t.default=void 0;var o,i=r(n("v06X")),a=r(n("XEEL")),c=r(n("uDP2")),s=r(n("j8BX")),u=r(n("FdF9")),l=r(n("17x9")),d=function(e){var t=(0,s.default)({},e),n=t.resolutions,r=t.sizes,o=t.critical;return n&&(t.fixed=n,delete t.resolutions),r&&(t.fluid=r,delete t.sizes),o&&(t.loading="eager"),t.fluid&&(t.fluid=I([].concat(t.fluid))),t.fixed&&(t.fixed=I([].concat(t.fixed))),t},p=function(e){var t=e.media;return!!t&&(h&&!!window.matchMedia(t).matches)},f=function(e){var t=e.fluid,n=e.fixed,r=g(t||n||[]);return r&&r.src},g=function(e){if(h&&function(e){return!!e&&Array.isArray(e)&&e.some((function(e){return void 0!==e.media}))}(e)){var t=e.findIndex(p);if(-1!==t)return e[t];var n=e.findIndex((function(e){return void 0===e.media}));if(-1!==n)return e[n]}return e[0]},M=Object.create({}),y=function(e){var t=d(e),n=f(t);return M[n]||!1},m="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype,h="undefined"!=typeof window,b=h&&window.IntersectionObserver,j=new WeakMap;function N(e){return e.map((function(e){var t=e.src,n=e.srcSet,r=e.srcSetWebp,o=e.media,i=e.sizes;return u.default.createElement(u.default.Fragment,{key:t},r&&u.default.createElement("source",{type:"image/webp",media:o,srcSet:r,sizes:i}),n&&u.default.createElement("source",{media:o,srcSet:n,sizes:i}))}))}function I(e){var t=[],n=[];return e.forEach((function(e){return(e.media?t:n).push(e)})),[].concat(t,n)}function w(e){return e.map((function(e){var t=e.src,n=e.media,r=e.tracedSVG;return u.default.createElement("source",{key:t,media:n,srcSet:r})}))}function v(e){return e.map((function(e){var t=e.src,n=e.media,r=e.base64;return u.default.createElement("source",{key:t,media:n,srcSet:r})}))}function D(e,t){var n=e.srcSet,r=e.srcSetWebp,o=e.media,i=e.sizes;return""}var L=function(e,t){var n=(void 0===o&&"undefined"!=typeof window&&window.IntersectionObserver&&(o=new window.IntersectionObserver((function(e){e.forEach((function(e){if(j.has(e.target)){var t=j.get(e.target);(e.isIntersecting||e.intersectionRatio>0)&&(o.unobserve(e.target),j.delete(e.target),t())}}))}),{rootMargin:"200px"})),o);return n&&(n.observe(e),j.set(e,t)),function(){n.unobserve(e),j.delete(e)}},O=function(e){var t=e.src?'src="'+e.src+'" ':'src="" ',n=e.sizes?'sizes="'+e.sizes+'" ':"",r=e.srcSet?'srcset="'+e.srcSet+'" ':"",o=e.title?'title="'+e.title+'" ':"",i=e.alt?'alt="'+e.alt+'" ':'alt="" ',a=e.width?'width="'+e.width+'" ':"",c=e.height?'height="'+e.height+'" ':"",s=e.crossOrigin?'crossorigin="'+e.crossOrigin+'" ':"",u=e.loading?'loading="'+e.loading+'" ':"",l=e.draggable?'draggable="'+e.draggable+'" ':"";return""+e.imageVariants.map((function(e){return(e.srcSetWebp?D(e,!0):"")+D(e)})).join("")+"'},T=u.default.forwardRef((function(e,t){var n=e.src,r=e.imageVariants,o=e.generateSources,i=e.spreadProps,a=e.ariaHidden,c=u.default.createElement(x,(0,s.default)({ref:t,src:n},i,{ariaHidden:a}));return r.length>1?u.default.createElement("picture",null,o(r),c):c})),x=u.default.forwardRef((function(e,t){var n=e.sizes,r=e.srcSet,o=e.src,i=e.style,a=e.onLoad,l=e.onError,d=e.loading,p=e.draggable,f=e.ariaHidden,g=(0,c.default)(e,["sizes","srcSet","src","style","onLoad","onError","loading","draggable","ariaHidden"]);return u.default.createElement("img",(0,s.default)({"aria-hidden":f,sizes:n,srcSet:r,src:o},g,{onLoad:a,onError:l,ref:t,loading:d,draggable:p,style:(0,s.default)({position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",objectPosition:"center"},i)}))}));x.propTypes={style:l.default.object,onError:l.default.func,onLoad:l.default.func};var A=function(e){function t(t){var n;(n=e.call(this,t)||this).seenBefore=h&&y(t),n.isCritical="eager"===t.loading||t.critical,n.addNoScript=!(n.isCritical&&!t.fadeIn),n.useIOSupport=!m&&b&&!n.isCritical&&!n.seenBefore;var r=n.isCritical||h&&(m||!n.useIOSupport);return n.state={isVisible:r,imgLoaded:!1,imgCached:!1,fadeIn:!n.seenBefore&&t.fadeIn,isHydrated:!1},n.imageRef=u.default.createRef(),n.placeholderRef=t.placeholderRef||u.default.createRef(),n.handleImageLoaded=n.handleImageLoaded.bind((0,i.default)(n)),n.handleRef=n.handleRef.bind((0,i.default)(n)),n}(0,a.default)(t,e);var n=t.prototype;return n.componentDidMount=function(){if(this.setState({isHydrated:h}),this.state.isVisible&&"function"==typeof this.props.onStartLoad&&this.props.onStartLoad({wasCached:y(this.props)}),this.isCritical){var e=this.imageRef.current;e&&e.complete&&this.handleImageLoaded()}},n.componentWillUnmount=function(){this.cleanUpListeners&&this.cleanUpListeners()},n.handleRef=function(e){var t=this;this.useIOSupport&&e&&(this.cleanUpListeners=L(e,(function(){var e=y(t.props);t.state.isVisible||"function"!=typeof t.props.onStartLoad||t.props.onStartLoad({wasCached:e}),t.setState({isVisible:!0},(function(){t.setState({imgLoaded:e,imgCached:!(!t.imageRef.current||!t.imageRef.current.currentSrc)})}))})))},n.handleImageLoaded=function(){var e,t,n;e=this.props,t=d(e),(n=f(t))&&(M[n]=!0),this.setState({imgLoaded:!0}),this.props.onLoad&&this.props.onLoad()},n.render=function(){var e=d(this.props),t=e.title,n=e.alt,r=e.className,o=e.style,i=void 0===o?{}:o,a=e.imgStyle,c=void 0===a?{}:a,l=e.placeholderStyle,p=void 0===l?{}:l,f=e.placeholderClassName,M=e.fluid,y=e.fixed,m=e.backgroundColor,h=e.durationFadeIn,b=e.Tag,j=e.itemProp,I=e.loading,D=e.draggable,L=M||y;if(!L)return null;var A=!1===this.state.fadeIn||this.state.imgLoaded,S=!0===this.state.fadeIn&&!this.state.imgCached,E=(0,s.default)({opacity:A?1:0,transition:S?"opacity "+h+"ms":"none"},c),z="boolean"==typeof m?"lightgray":m,C={transitionDelay:h+"ms"},k=(0,s.default)({opacity:this.state.imgLoaded?0:1},S&&C,c,p),P={title:t,alt:this.state.isVisible?"":n,style:k,className:f,itemProp:j},U=this.state.isHydrated?g(L):L[0];if(M)return u.default.createElement(b,{className:(r||"")+" gatsby-image-wrapper",style:(0,s.default)({position:"relative",overflow:"hidden",maxWidth:U.maxWidth?U.maxWidth+"px":null,maxHeight:U.maxHeight?U.maxHeight+"px":null},i),ref:this.handleRef,key:"fluid-"+JSON.stringify(U.srcSet)},u.default.createElement(b,{"aria-hidden":!0,style:{width:"100%",paddingBottom:100/U.aspectRatio+"%"}}),z&&u.default.createElement(b,{"aria-hidden":!0,title:t,style:(0,s.default)({backgroundColor:z,position:"absolute",top:0,bottom:0,opacity:this.state.imgLoaded?0:1,right:0,left:0},S&&C)}),U.base64&&u.default.createElement(T,{ariaHidden:!0,ref:this.placeholderRef,src:U.base64,spreadProps:P,imageVariants:L,generateSources:v}),U.tracedSVG&&u.default.createElement(T,{ariaHidden:!0,ref:this.placeholderRef,src:U.tracedSVG,spreadProps:P,imageVariants:L,generateSources:w}),this.state.isVisible&&u.default.createElement("picture",null,N(L),u.default.createElement(x,{alt:n,title:t,sizes:U.sizes,src:U.src,crossOrigin:this.props.crossOrigin,srcSet:U.srcSet,style:E,ref:this.imageRef,onLoad:this.handleImageLoaded,onError:this.props.onError,itemProp:j,loading:I,draggable:D})),this.addNoScript&&u.default.createElement("noscript",{dangerouslySetInnerHTML:{__html:O((0,s.default)({alt:n,title:t,loading:I},U,{imageVariants:L}))}}));if(y){var R=(0,s.default)({position:"relative",overflow:"hidden",display:"inline-block",width:U.width,height:U.height},i);return"inherit"===i.display&&delete R.display,u.default.createElement(b,{className:(r||"")+" gatsby-image-wrapper",style:R,ref:this.handleRef,key:"fixed-"+JSON.stringify(U.srcSet)},z&&u.default.createElement(b,{"aria-hidden":!0,title:t,style:(0,s.default)({backgroundColor:z,width:U.width,opacity:this.state.imgLoaded?0:1,height:U.height},S&&C)}),U.base64&&u.default.createElement(T,{ariaHidden:!0,ref:this.placeholderRef,src:U.base64,spreadProps:P,imageVariants:L,generateSources:v}),U.tracedSVG&&u.default.createElement(T,{ariaHidden:!0,ref:this.placeholderRef,src:U.tracedSVG,spreadProps:P,imageVariants:L,generateSources:w}),this.state.isVisible&&u.default.createElement("picture",null,N(L),u.default.createElement(x,{alt:n,title:t,width:U.width,height:U.height,sizes:U.sizes,src:U.src,crossOrigin:this.props.crossOrigin,srcSet:U.srcSet,style:E,ref:this.imageRef,onLoad:this.handleImageLoaded,onError:this.props.onError,itemProp:j,loading:I,draggable:D})),this.addNoScript&&u.default.createElement("noscript",{dangerouslySetInnerHTML:{__html:O((0,s.default)({alt:n,title:t,loading:I},U,{imageVariants:L}))}}))}return null},t}(u.default.Component);A.defaultProps={fadeIn:!0,durationFadeIn:500,alt:"",Tag:"div",loading:"lazy"};var S=l.default.shape({width:l.default.number.isRequired,height:l.default.number.isRequired,src:l.default.string.isRequired,srcSet:l.default.string.isRequired,base64:l.default.string,tracedSVG:l.default.string,srcWebp:l.default.string,srcSetWebp:l.default.string,media:l.default.string}),E=l.default.shape({aspectRatio:l.default.number.isRequired,src:l.default.string.isRequired,srcSet:l.default.string.isRequired,sizes:l.default.string.isRequired,base64:l.default.string,tracedSVG:l.default.string,srcWebp:l.default.string,srcSetWebp:l.default.string,media:l.default.string,maxWidth:l.default.number,maxHeight:l.default.number});function z(e){return function(t,n,r){var o;if(!t.fixed&&!t.fluid)throw new Error("The prop `fluid` or `fixed` is marked as required in `"+r+"`, but their values are both `undefined`.");l.default.checkPropTypes(((o={})[n]=e,o),t,"prop",r)}}A.propTypes={resolutions:S,sizes:E,fixed:z(l.default.oneOfType([S,l.default.arrayOf(S)])),fluid:z(l.default.oneOfType([E,l.default.arrayOf(E)])),fadeIn:l.default.bool,durationFadeIn:l.default.number,title:l.default.string,alt:l.default.string,className:l.default.oneOfType([l.default.string,l.default.object]),critical:l.default.bool,crossOrigin:l.default.oneOfType([l.default.string,l.default.bool]),style:l.default.object,imgStyle:l.default.object,placeholderStyle:l.default.object,placeholderClassName:l.default.string,backgroundColor:l.default.oneOfType([l.default.string,l.default.bool]),onLoad:l.default.func,onError:l.default.func,onStartLoad:l.default.func,Tag:l.default.string,itemProp:l.default.string,loading:l.default.oneOf(["auto","lazy","eager"]),draggable:l.default.bool};var C=A;t.default=C},"9h/2":function(e,t,n){var r,o,i=n("REpN"),a=n("1uEE"),c=i.process,s=c&&c.versions,u=s&&s.v8;u?o=(r=u.split("."))[0]+r[1]:a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=r[1]),e.exports=o&&+o},"9hXx":function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;t.default=function(e,t){if(!Array.isArray(t))return"manifest.webmanifest";var n=t.find((function(t){return e.startsWith(t.start_url)}));return n?"manifest_"+n.lang+".webmanifest":"manifest.webmanifest"}},"9xdK":function(e,t,n){"use strict";function r(e,t){for(var n=0;n0&&r(p))f=a(e,t,p,o(p.length),f,u-1)-1;else{if(f>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[f]=p}f++}g++}return f};e.exports=a},AeFk:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return l})),n.d(t,"c",(function(){return s}));var r=n("FdF9"),o=(n("+1VY"),n("cSFU")),i=(n("j8BX"),n("gRFL"),n("2mql"),n("eVQB")),a=n("Exhd"),c=n("ep+1"),s=function(e,t){var n=arguments;if(null==t||!o.d.call(t,"css"))return r.createElement.apply(void 0,n);var i=n.length,a=new Array(i);a[0]=o.a,a[1]=Object(o.c)(e,t);for(var c=2;c=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=Object(o.forwardRef)((function(e,t){var n=e.color,r=void 0===n?"currentColor":n,i=e.size,a=void 0===i?24:i,c=u(e,["color","size"]);return o.default.createElement("svg",s({ref:t,xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:r,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),o.default.createElement("path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14"}),o.default.createElement("polyline",{points:"22 4 12 14.01 9 11.01"}))}));l.displayName="CheckCircle";var d=l;function p(){return(p=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var g=Object(o.forwardRef)((function(e,t){var n=e.color,r=void 0===n?"currentColor":n,i=e.size,a=void 0===i?24:i,c=f(e,["color","size"]);return o.default.createElement("svg",p({ref:t,xmlns:"http://www.w3.org/2000/svg",width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:r,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),o.default.createElement("polyline",{points:"20 12 20 22 4 22 4 12"}),o.default.createElement("rect",{x:"2",y:"7",width:"20",height:"5"}),o.default.createElement("line",{x1:"12",y1:"22",x2:"12",y2:"7"}),o.default.createElement("path",{d:"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z"}),o.default.createElement("path",{d:"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z"}))}));g.displayName="Gift";var M=g,y=n("SHqf"),m=n.n(y),h=n("AeFk");var b=Object(r.a)("div",{target:"eie7key6"})({name:"1l4rj6q",styles:"background:#c83b50;padding:15px 0;font-weight:bold;margin-bottom:25px"}),j=Object(r.a)(a.a,{target:"eie7key5"})("flex-direction:column;display:flex;justify-content:center;align-items:center;padding:0 15px;max-width:1000px;color:white;",a.e.lg,"{flex-direction:row;}",a.e.md,"{padding:0 40px;}"),N=Object(r.a)("div",{target:"eie7key4"})("display:flex;background:#642f45;border-radius:4px;color:#ffd3f8;font-family:Menlo,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:14px;overflow:hidden;font-weight:normal;margin:5px;max-width:100%;overflow-x:auto;",a.e.sm,"{max-width:none;}",a.e.lg,"{margin-top:0;margin-bottom:0;}"),I=Object(r.a)("div",{target:"eie7key3"})({name:"1122wx0",styles:"display:flex;align-items:center;background:rgba(0, 0, 0, 0.25);text-align:center;padding:0 15px;color:white"}),w=Object(r.a)("img",{target:"eie7key2"})({name:"1d7txa7",styles:"max-width:50px;user-select:none"}),v=Object(r.a)("div",{target:"eie7key1"})({name:"ulso17",styles:"padding:10px 15px;white-space:nowrap;cursor:pointer;&:hover{text-decoration:underline;}"}),D=Object(r.a)("div",{target:"eie7key0"})({name:"d0rosp",styles:"font-size:12px;display:flex;align-items:center;svg{width:12px;margin-right:5px;}"}),L=function(e){var t=e.text,n=Object(c.c)({placement:"bottom"}),r=n.reference,i=n.popper,a=o.default.useState(!1),s=a[0],u=a[1];return Object(h.c)(o.default.Fragment,null,Object(h.c)(v,{ref:r,onClick:function(){!function(e){navigator.clipboard.writeText(e)}(t),u(!0),setTimeout((function(){u(!1)}),1e3)}},t),Object(h.c)(c.b,{style:{opacity:s?1:0},ref:i},Object(h.c)(D,null,Object(h.c)(d,null),"Copied to clipboard!"),Object(h.c)(c.a,{"data-popper-arrow":!0})))},O={name:"1rz3q9w",styles:"vertical-align:-5px;margin-right:10px"};t.a=function(){return Object(h.c)(b,null,Object(h.c)(j,null,Object(h.c)("div",{css:Object(h.b)("margin-right:15px;margin-bottom:5px;margin-top:5px;",a.e.lg,"{margin-top:0;margin-bottom:0;}","")},Object(h.c)(M,{css:O}),"Install Popper"),Object(h.c)(N,null,Object(h.c)(I,null,Object(h.c)(w,{src:m.a,width:"50",height:"20",alt:"npm logo",draggable:"false"})),Object(h.c)(L,{text:"npm i @popperjs/core"})),Object(h.c)(N,null,Object(h.c)(I,null,"CDN"),Object(h.c)(L,{text:i.UNPKG_CDN_URL}))))}},CiUx:function(e,t,n){var r=n("bmrq"),o=n("REpN");e.exports="process"==r(o.process)},Cn3S:function(e,t,n){e.exports=n.p+"static/popper-logo-outlined-fb38d0b34a253d52fc74cd9c4f3dcec3.svg"},CwS1:function(e,t,n){"use strict";var r=n("FdF9");function o(){return(o=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=Object(r.forwardRef)((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,c=e.size,s=void 0===c?24:c,u=i(e,["color","size"]);return r.default.createElement("svg",o({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},u),r.default.createElement("polyline",{points:"15 18 9 12 15 6"}))}));a.displayName="ChevronLeft",t.a=a},DZdY:function(e,t,n){"use strict";var r=n("k1TG"),o=n("FdF9"),i=n("SVgp"),a=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,c=Object(i.a)((function(e){return a.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),s=n("cSFU"),u=n("eVQB"),l=n("Exhd"),d=c,p=function(e){return"theme"!==e},f=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?d:p},g=function(e,t,n){var r;if(t){var o=t.shouldForwardProp;r=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r};t.a=function e(t,n){var i,a,c=t.__emotion_real===t,d=c&&t.__emotion_base||t;void 0!==n&&(i=n.label,a=n.target);var p=g(t,n,c),M=p||f(d),y=!M("as");return function(){var m=arguments,h=c&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==i&&h.push("label:"+i+";"),null==m[0]||void 0===m[0].raw)h.push.apply(h,m);else{0,h.push(m[0][0]);for(var b=m.length,j=1;j=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=Object(r.forwardRef)((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,c=e.size,s=void 0===c?24:c,u=i(e,["color","size"]);return r.default.createElement("svg",o({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},u),r.default.createElement("polyline",{points:"9 18 15 12 9 6"}))}));a.displayName="ChevronRight",t.a=a},Enzk:function(e,t,n){"use strict";var r=n("jGDn"),o=n("5NKs");t.__esModule=!0,t.ScrollHandler=t.ScrollContext=void 0;var i=o(n("v06X")),a=o(n("XEEL")),c=r(n("FdF9")),s=n("/hTd"),u=c.createContext(new s.SessionStorage);t.ScrollContext=u,u.displayName="GatsbyScrollContext";var l=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},o={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},i=n("SVgp"),a=/[A-Z]|^ms/g,c=/_EMO_([^_]+?)_([^]*?)_EMO_/g,s=function(e){return 45===e.charCodeAt(1)},u=function(e){return null!=e&&"boolean"!=typeof e},l=Object(i.a)((function(e){return s(e)?e:e.replace(a,"-$&").toLowerCase()})),d=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(c,(function(e,t,n){return f={name:t,styles:n,next:f},t}))}return 1===o[e]||s(e)||"number"!=typeof t||0===t?t:t+"px"};function p(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return f={name:n.name,styles:n.styles,next:f},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)f={name:r.name,styles:r.styles,next:f},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function M(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var y=function(e,t){var n=c()(t);return n.displayName=e,n},m=y("Location"),h=function(e){var t=e.children;return r.default.createElement(m.Consumer,null,(function(e){return e?t(e):r.default.createElement(b,null,t)}))},b=function(e){function t(){var n,r;f(this,t);for(var o=arguments.length,i=Array(o),a=0;a-1?(i=t.substring(0,o),a=t.substring(o)):i=t,r.default.createElement(m.Provider,{value:{location:{pathname:i,search:a,hash:""},navigate:function(){throw new Error("You can't call navigate on the server.")}}},n)},N=y("Base",{baseuri:"/",basepath:"/"}),I=function(e){return r.default.createElement(N.Consumer,null,(function(t){return r.default.createElement(h,null,(function(n){return r.default.createElement(w,d({},t,n,e))}))}))},w=function(e){function t(){return f(this,t),g(this,e.apply(this,arguments))}return M(t,e),t.prototype.render=function(){var e=this.props,t=e.location,n=e.navigate,o=e.basepath,i=e.primary,a=e.children,c=(e.baseuri,e.component),s=void 0===c?"div":c,l=p(e,["location","navigate","basepath","primary","children","baseuri","component"]),f=r.default.Children.toArray(a).reduce((function(e,t){var n=F(o)(t);return e.concat(n)}),[]),g=t.pathname,M=Object(u.pick)(f,g);if(M){var y=M.params,m=M.uri,h=M.route,b=M.route.value;o=h.default?o:h.path.replace(/\*$/,"");var j=d({},y,{uri:m,location:t,navigate:function(e,t){return n(Object(u.resolve)(e,m),t)}}),w=r.default.cloneElement(b,j,b.props.children?r.default.createElement(I,{location:t,primary:i},b.props.children):void 0),v=i?D:s,L=i?d({uri:m,location:t,component:s},l):l;return r.default.createElement(N.Provider,{value:{baseuri:m,basepath:o}},r.default.createElement(v,L,w))}return null},t}(r.default.PureComponent);w.defaultProps={primary:!0};var v=y("Focus"),D=function(e){var t=e.uri,n=e.location,o=e.component,i=p(e,["uri","location","component"]);return r.default.createElement(v.Consumer,null,(function(e){return r.default.createElement(T,d({},i,{component:o,requestFocus:e,uri:t,location:n}))}))},L=!0,O=0,T=function(e){function t(){var n,r;f(this,t);for(var o=arguments.length,i=Array(o),a=0;a=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=Object(r.forwardRef)((function(e,t){var n=e.color,a=void 0===n?"currentColor":n,c=e.size,s=void 0===c?24:c,u=i(e,["color","size"]);return r.default.createElement("svg",o({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:a,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},u),r.default.createElement("polyline",{points:"20 6 9 17 4 12"}))}));a.displayName="Check",t.a=a},"KK5/":function(e,t,n){"use strict";n.d(t,"a",(function(){return M})),n.d(t,"c",(function(){return m})),n.d(t,"d",(function(){return h})),n.d(t,"e",(function(){return j})),n.d(t,"b",(function(){return I})),n.d(t,"f",(function(){return w}));var r=n("k1TG"),o=n("DZdY"),i=n("FdF9"),a=n("AeFk"),c=n("ZNFm"),s=n("OkDN");var u={name:"w4q2g1",styles:"&::before{content:'';display:block;height:400px;}&::after{content:'';display:block;height:550px;}"},l=Object(o.a)(s.a,{target:"eoyj5s81"})("overflow-y:scroll;height:350px;margin:0 auto;border:2px dashed #ff6b81;background-color:#281e36;",(function(e){return e.scrollable&&u}),";"),d=Object(o.a)("div",{target:"eoyj5s80"})({name:"1hqhhz",styles:"display:flex;justify-content:center;align-items:center;width:150px;height:150px;background:#b886fd;border:2px solid #b886fd;color:black;font-weight:bold"}),p=function(e){var t=Object(i.useRef)();return Object(i.useLayoutEffect)((function(){t.current.scrollTop=300}),[]),Object(a.c)(l,Object(r.a)({ref:t},e))},f={name:"4ytf4j",styles:"display:grid;place-items:center;height:200px;width:100px"},g={name:"1txqosh",styles:"position:absolute;left:15px"},M=function(){var e=Object(i.useState)(!1),t=e[0],n=e[1],r=Object(c.c)({placement:"right",modifiers:[{name:"applyArrowHide",enabled:!0,phase:"write",fn:function(e){var t=e.state;n(0!==t.modifiersData.arrow.centerOffset)}},{name:"preventOverflow",options:{tetherOffset:function(){return t?-16:0}}}]}),o=r.reference,s=r.popper;return Object(a.c)(i.default.Fragment,null,Object(a.c)(p,{scrollable:!0},Object(a.c)(d,{ref:o,css:g},"Reference"),Object(a.c)(c.b,{ref:s},Object(a.c)("div",{css:f}),Object(a.c)(c.a,{"data-popper-arrow":!0,css:Object(a.b)("&::before{transition:transform 0.2s ease-out,visibility 0.2s ease-out;visibility:",t?"hidden":"visible",";transform:translateX(",t?10:0,"px) rotate(45deg);transform-origin:center;}","")}))))},y={name:"3nx8fk",styles:"position:absolute;left:50%;margin-left:-75px"},m=function(){var e=Object(c.c)(),t=e.reference,n=e.popper;return Object(a.c)(i.default.Fragment,null,Object(a.c)(p,{scrollable:!0},Object(a.c)(d,{ref:t,css:y},"Reference")),Object(a.c)(c.b,{ref:n,hide:!0},"Tooltip"))},h=function(e){var t=e.offset,n=Object(c.c)({placement:"right",modifiers:[{name:"offset",options:{offset:t}}]}),r=n.reference,o=n.popper;return Object(a.c)(i.default.Fragment,null,Object(a.c)(d,{ref:r},"Reference"),Object(a.c)(c.b,{ref:o},"Tooltip"))},b={name:"nz8u9z",styles:"position:absolute;top:10px;left:10px"},j=function(){var e=Object(c.c)(),t=e.reference,n=e.popper;return Object(a.c)(i.default.Fragment,null,Object(a.c)(p,null,Object(a.c)(d,{ref:t,css:b},"Reference"),Object(a.c)(c.b,{ref:n},"Tooltip wider than its reference")))},N={name:"3nx8fk",styles:"position:absolute;left:50%;margin-left:-75px"},I=function(){var e=Object(c.c)(),t=e.reference,n=e.popper;return Object(a.c)(i.default.Fragment,null,Object(a.c)(p,{scrollable:!0},Object(a.c)(d,{ref:t,css:N},"Reference"),Object(a.c)(c.b,{ref:n},"Tooltip")))},w=function(){var e=Object(c.c)({placement:"right-start",modifiers:[{name:"flip",enabled:!1},{name:"preventOverflow",options:{tether:!1,altAxis:!0}}]}),t=e.reference,n=e.popper,r=e.instance;function o(e,t){return void 0===e&&(e=0),void 0===t&&(t=0),function(){return{width:0,height:0,top:t,right:e,bottom:t,left:e}}}function s(e){var n=o(e.clientX,e.clientY);t.current.getBoundingClientRect=n,r.current.update()}return t.current||(t.current={getBoundingClientRect:o()}),Object(i.useLayoutEffect)((function(){return document.addEventListener("mousemove",s),function(){document.removeEventListener("mousemove",s)}})),Object(a.c)(p,null,Object(a.c)(c.b,{ref:n},"Tooltip"))}},Km5v:function(e,t,n){var r,o=n("m/aQ"),i=n("OKd1"),a=n("FlY1"),c=n("HIFH"),s=n("gbZP"),u=n("C2zU"),l=n("uFM1"),d=l("IE_PROTO"),p=function(){},f=function(e){return" \ No newline at end of file diff --git a/docs/v1/index.html b/docs/v1/index.html new file mode 100644 index 00000000..c560c4cb --- /dev/null +++ b/docs/v1/index.html @@ -0,0 +1,187 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home
      • Popper

Popper.js (v1.x)

This page covers the API reference and documentation of Popper 1 (popper.js on +npm).

This page is here to help consumers who haven't migrated yet to the most recent +version, for the latest version documentation click here.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Classes

Popper

Members

dataObject

The dataObject is an object containing all the information used by Popper.js. This object is passed to modifiers and to the onCreate and onUpdate callbacks.

referenceObject

The referenceObject is an object that provides an interface compatible with Popper.js and lets you use it as replacement of a real DOM node.
You can use this method to position a popper relatively to a set of coordinates in case you don't have a DOM node to use as reference.

new Popper(referenceObject, popperNode);

NB: This feature isn't supported in Internet Explorer 10.

Objects

modifiers : object

Modifiers are plugins used to alter the behavior of your poppers.
Popper.js uses a set of 9 modifiers to provide all the basic functionalities needed by the library.

Usually you don't want to override the order, fn and onLoad props. All the other properties are configurations that could be tweaked.

Functions

getWindow(element)Window

Get the window associated with the element

ModifierFn(data, options) dataObject

Modifier function, each modifier can have a function of this type assigned to its fn property.
These functions will be called on each update, this means that you must make sure they are performant enough to avoid performance bottlenecks.

Typedefs

onUpdate : function
onCreate : function

Popper

Kind: global class

new Popper(reference, popper, options)

Creates a new Popper.js instance.

Returns: Object - instance - The generated Popper.js instance

ParamTypeDescription
referenceElement | referenceObjectThe reference element used to position the popper
popperElementThe HTML / XML element used as the popper
optionsObjectYour custom options to override the ones defined in Defaults

Popper.Defaults : Object

Default options provided to Popper.js constructor.
These can be overridden +using the options argument of Popper.js.
To override an option, simply +pass an object with the same structure of the options object, as the 3rd +argument. For example:

new Popper(ref, pop, {
+  modifiers: {
+    preventOverflow: { enabled: false },
+  },
+});

Kind: static property of Popper

Defaults.placement

Popper's placement.

Kind: static property of Defaults
+Properties

NameTypeDefault
placementplacements'bottom'

Defaults.positionFixed

Set this to true if you want popper to position it self in 'fixed' mode

Kind: static property of Defaults
+Properties

NameTypeDefault
positionFixedBooleanfalse

Defaults.eventsEnabled

Whether events (resize, scroll) are initially enabled.

Kind: static property of Defaults
+Properties

NameTypeDefault
eventsEnabledBooleantrue

Defaults.removeOnDestroy

Set to true if you want to automatically remove the popper when you call the +destroy method.

Kind: static property of Defaults
+Properties

NameTypeDefault
removeOnDestroyBooleanfalse

Defaults.modifiers

List of modifiers used to modify the offsets before they are applied to the +popper. They provide most of the functionalities of Popper.js.

Kind: static property of Defaults
+Properties

Type
modifiers

Defaults.onCreate()

Callback called when the popper is created.
By default, it is set to +no-op.
Access Popper.js instance with data.instance.

Kind: static method of Defaults
+Properties

Type
onCreate

Defaults.onUpdate()

Callback called when the popper is updated. This callback is not called on the +initialization/creation of the popper, but only on subsequent updates.
By +default, it is set to no-op.
Access Popper.js instance with +data.instance.

Kind: static method of Defaults
+Properties

Type
onUpdate

Popper.placements : enum

List of accepted placements to use as values of the placement option.
+Valid placements are:

  • auto
  • top
  • right
  • bottom
  • left

Each placement can have a variation from this list:

  • -start
  • -end

Variations are interpreted easily if you think of them as the left to right +written languages. Horizontally (top and bottom), start is left and end +is right.
Vertically (left and right), start is top and end is +bottom.

Some valid examples are:

  • top-end (on top of reference, right aligned)
  • right-start (on right of reference, top aligned)
  • bottom (on bottom, centered)
  • auto-end (on the side with more space available, alignment depends by +placement)

Kind: static enum of Popper
+Read only: true

Popper.update()

Updates the position of the popper, computing the new offsets and applying the +new style.
Prefer scheduleUpdate over update because of performance +reasons.

Kind: static method of Popper

Popper.destroy()

Destroys the popper.

Kind: static method of Popper

Popper.enableEventListeners()

It will add resize/scroll events and start recalculating position of the popper +element when they are triggered.

Kind: static method of Popper

Popper.disableEventListeners()

It will remove resize/scroll events and won't recalculate popper position when +they are triggered. It also won't trigger onUpdate callback anymore, unless +you call update method manually.

Kind: static method of Popper

Popper.scheduleUpdate()

Schedules an update. It will run on the next UI update available.

Kind: static method of Popper

dataObject

The dataObject is an object containing all the information used by Popper.js. +This object is passed to modifiers and to the onCreate and onUpdate +callbacks.

Kind: global variable
+Properties

NameTypeDescription
data.instanceObjectThe Popper.js instance
data.placementStringPlacement applied to popper
data.originalPlacementStringPlacement originally defined on init
data.flippedBooleanTrue if popper has been flipped by flip modifier
data.hideBooleanTrue if the reference element is out of boundaries, useful to know when to hide the popper
data.arrowElementHTMLElementNode used as arrow by arrow modifier
data.stylesObjectAny CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. marginBottom)
data.arrowStylesObjectAny CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. marginBottom)
data.boundariesObjectOffsets of the popper boundaries
data.offsetsObjectThe measurements of popper, reference and arrow elements
data.offsets.popperObjecttop, left, width, height values
data.offsets.referenceObjecttop, left, width, height values
data.offsets.arrowObjecttop and left offsets, only one of them will be different from 0

referenceObject

The referenceObject is an object that provides an interface compatible with +Popper.js and lets you use it as replacement of a real DOM node.
You can +use this method to position a popper relatively to a set of coordinates in case +you don't have a DOM node to use as reference.

new Popper(referenceObject, popperNode);

NB: This feature isn't supported in Internet Explorer 10.

Kind: global variable
+Properties

NameTypeDescription
data.getBoundingClientRectfunctionA function that returns a set of coordinates compatible with the native getBoundingClientRect method.
data.clientWidthnumberAn ES6 getter that will return the width of the virtual reference element.
data.clientHeightnumberAn ES6 getter that will return the height of the virtual reference element.

modifiers : object

Modifiers are plugins used to alter the behavior of your poppers.
+Popper.js uses a set of 9 modifiers to provide all the basic functionalities +needed by the library.

Usually you don't want to override the order, fn and onLoad props. All the +other properties are configurations that could be tweaked.

Kind: global namespace

modifiers~shift

Modifier used to shift the popper on the start or end of its reference +element.
It will read the variation of the placement property.
It +can be one either -end or -start.

Kind: inner property of modifiers

shift.order

Kind: static property of shift
+Properties

NameTypeDefaultDescription
ordernumber100Index used to define the order of execution

shift.enabled

Kind: static property of shift
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

shift.fn

Kind: static property of shift
+Properties

Type
ModifierFn

modifiers~offset

The offset modifier can shift your popper on both its axis.

It accepts the following units:

  • px or unit-less, interpreted as pixels
  • % or %r, percentage relative to the length of the reference element
  • %p, percentage relative to the length of the popper element
  • vw, CSS viewport width unit
  • vh, CSS viewport height unit

For length is intended the main axis relative to the placement of the +popper.
This means that if the placement is top or bottom, the length +will be the width. In case of left or right, it will be the height.

You can provide a single value (as Number or String), or a pair of values as +String divided by a comma or one (or more) white spaces.
The latter is a +deprecated method because it leads to confusion and will be removed in v2.
+Additionally, it accepts additions and subtractions between different units. +Note that multiplications and divisions aren't supported.

Valid examples are:

10
+'10%'
+'10, 10'
+'10%, 10'
+'10 + 10%'
+'10 - 5vh + 3%'
+'-10px + 5vh, 5px - 6%'

NB: If you desire to apply offsets to your poppers in a way that may make +them overlap with their reference element, unfortunately, you will have to +disable the flip modifier. You can read more on this at this +issue.

Kind: inner property of modifiers

offset.order

Kind: static property of offset
+Properties

NameTypeDefaultDescription
ordernumber200Index used to define the order of execution

offset.enabled

Kind: static property of offset
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

offset.fn

Kind: static property of offset
+Properties

Type
ModifierFn

offset.offset

Kind: static property of offset
+Properties

NameTypeDefaultDescription
offsetNumber | String0The offset value as described in the modifier description

modifiers~preventOverflow

Modifier used to prevent the popper from being positioned outside the boundary.

A scenario exists where the reference itself is not within the boundaries.
+We can say it has "escaped the boundaries" — or just "escaped".
In this +case we need to decide whether the popper should either:

  • detach from the reference and remain "trapped" in the boundaries, or
  • if it should ignore the boundary and "escape with its reference"

When escapeWithReference is set totrue and reference is completely outside +its boundaries, the popper will overflow (or completely leave) the boundaries in +order to remain attached to the edge of the reference.

Kind: inner property of modifiers

preventOverflow.order

Kind: static property of +preventOverflow
+Properties

NameTypeDefaultDescription
ordernumber300Index used to define the order of execution

preventOverflow.enabled

Kind: static property of +preventOverflow
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

preventOverflow.fn

Kind: static property of +preventOverflow
+Properties

Type
ModifierFn

preventOverflow.priority

Kind: static property of +preventOverflow
+Properties

NameTypeDefaultDescription
priorityArray['left','right','top','bottom']Popper will try to prevent overflow following these priorities by default, then, it could overflow on the left and on top of the boundariesElement

preventOverflow.padding

Kind: static property of +preventOverflow
+Properties

NameTypeDefaultDescription
paddingnumber5Amount of pixel used to define a minimum distance between the boundaries and the popper. This makes sure the popper always has a little padding between the edges of its container

preventOverflow.boundariesElement

Kind: static property of +preventOverflow
+Properties

NameTypeDefaultDescription
boundariesElementString | HTMLElement'scrollParent'Boundaries used by the modifier. Can be scrollParent, window, viewport or any DOM element.

modifiers~keepTogether

Modifier used to make sure the reference and its popper stay near each other +without leaving any gap between the two. Especially useful when the arrow is +enabled and you want to ensure that it points to its reference element. It cares +only about the first axis. You can still have poppers with margin between the +popper and its reference element.

Kind: inner property of modifiers

keepTogether.order

Kind: static property of +keepTogether
+Properties

NameTypeDefaultDescription
ordernumber400Index used to define the order of execution

keepTogether.enabled

Kind: static property of +keepTogether
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

keepTogether.fn

Kind: static property of +keepTogether
+Properties

Type
ModifierFn

modifiers~arrow

This modifier is used to move the arrowElement of the popper to make sure it +is positioned between the reference element and its popper element. It will read +the outer size of the arrowElement node to detect how many pixels of +conjunction are needed.

It has no effect if no arrowElement is provided.

Kind: inner property of modifiers

arrow.order

Kind: static property of arrow
+Properties

NameTypeDefaultDescription
ordernumber500Index used to define the order of execution

arrow.enabled

Kind: static property of arrow
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

arrow.fn

Kind: static property of arrow
+Properties

Type
ModifierFn

arrow.element

Kind: static property of arrow
+Properties

NameTypeDefaultDescription
elementString | HTMLElement'[x-arrow]'Selector or node used as arrow

modifiers~flip

Modifier used to flip the popper's placement when it starts to overlap its +reference element.

Requires the preventOverflow modifier before it in order to work.

NOTE: this modifier will interrupt the current update cycle and will restart +it if it detects the need to flip the placement.

Kind: inner property of modifiers

flip.order

Kind: static property of flip
+Properties

NameTypeDefaultDescription
ordernumber600Index used to define the order of execution

flip.enabled

Kind: static property of flip
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

flip.fn

Kind: static property of flip
+Properties

Type
ModifierFn

flip.behavior

Kind: static property of flip
+Properties

NameTypeDefaultDescription
behaviorString | Array'flip'The behavior used to change the popper's placement. It can be one of flip, clockwise, counterclockwise or an array with a list of valid placements (with optional variations)

flip.padding

Kind: static property of flip
+Properties

NameTypeDefaultDescription
paddingnumber5The popper will flip if it hits the edges of the boundariesElement

flip.boundariesElement

Kind: static property of flip
+Properties

NameTypeDefaultDescription
boundariesElementString | HTMLElement'viewport'The element which will define the boundaries of the popper position. The popper will never be placed outside of the defined boundaries (except if keepTogether is enabled)

flip.flipVariations

Kind: static property of flip
+Properties

NameTypeDefaultDescription
flipVariationsBooleanfalseThe popper will switch placement variation between -start and -end when the reference element overlaps its boundaries. The original placement should have a set variation.

flip.flipVariationsByContent

Kind: static property of flip
+Properties

NameTypeDefaultDescription
flipVariationsByContentBooleanfalseThe popper will switch placement variation between -start and -end when the popper element overlaps its reference boundaries. The original placement should have a set variation.

modifiers~inner

Modifier used to make the popper flow toward the inner of the reference element. +By default, when this modifier is disabled, the popper will be placed outside +the reference element.

Kind: inner property of modifiers

inner.order

Kind: static property of inner
+Properties

NameTypeDefaultDescription
ordernumber700Index used to define the order of execution

inner.enabled

Kind: static property of inner
+Properties

NameTypeDefaultDescription
enabledBooleanfalseWhether the modifier is enabled or not

inner.fn

Kind: static property of inner
+Properties

Type
ModifierFn

modifiers~hide

Modifier used to hide the popper when its reference element is outside of the +popper boundaries. It will set a x-out-of-boundaries attribute which can be +used to hide with a CSS selector the popper when its reference is out of +boundaries.

Requires the preventOverflow modifier before it in order to work.

Kind: inner property of modifiers

hide.order

Kind: static property of hide
+Properties

NameTypeDefaultDescription
ordernumber800Index used to define the order of execution

hide.enabled

Kind: static property of hide
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

hide.fn

Kind: static property of hide
+Properties

Type
ModifierFn

modifiers~computeStyle

Computes the style that will be applied to the popper element to gets properly +positioned.

Note that this modifier will not touch the DOM, it just prepares the styles so +that applyStyle modifier can apply it. This separation is useful in case you +need to replace applyStyle with a custom implementation.

This modifier has 850 as order value to maintain backward compatibility with +previous versions of Popper.js. Expect the modifiers ordering method to change +in future major versions of the library.

Kind: inner property of modifiers

computeStyle.order

Kind: static property of +computeStyle
+Properties

NameTypeDefaultDescription
ordernumber850Index used to define the order of execution

computeStyle.enabled

Kind: static property of +computeStyle
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

computeStyle.fn

Kind: static property of +computeStyle
+Properties

Type
ModifierFn

computeStyle.gpuAcceleration

Kind: static property of +computeStyle
+Properties

NameTypeDefaultDescription
gpuAccelerationBooleantrueIf true, it uses the CSS 3D transformation to position the popper. Otherwise, it will use the top and left properties

computeStyle.x

Kind: static property of +computeStyle
+Properties

NameTypeDefaultDescription
xstring"'bottom'"Where to anchor the X axis (bottom or top). AKA X offset origin. Change this if your popper should grow in a direction different from bottom

computeStyle.y

Kind: static property of +computeStyle
+Properties

NameTypeDefaultDescription
xstring"'left'"Where to anchor the Y axis (left or right). AKA Y offset origin. Change this if your popper should grow in a direction different from right

modifiers~applyStyle

Applies the computed styles to the popper element.

All the DOM manipulations are limited to this modifier. This is useful in case +you want to integrate Popper.js inside a framework or view library and you want +to delegate all the DOM manipulations to it.

Note that if you disable this modifier, you must make sure the popper element +has its position set to absolute before Popper.js can do its work!

Just disable this modifier and define your own to achieve the desired effect.

Kind: inner property of modifiers

applyStyle.order

Kind: static property of applyStyle
+Properties

NameTypeDefaultDescription
ordernumber900Index used to define the order of execution

applyStyle.enabled

Kind: static property of applyStyle
+Properties

NameTypeDefaultDescription
enabledBooleantrueWhether the modifier is enabled or not

applyStyle.fn

Kind: static property of applyStyle
+Properties

Type
ModifierFn

applyStyle.onLoad

Kind: static property of applyStyle
+Properties

Type
function

applyStyle.gpuAcceleration

Deprecated

Kind: static property of applyStyle
+Properties

NameTypeDefaultDescription
gpuAccelerationBooleantrueIf true, it uses the CSS 3D transformation to position the popper. Otherwise, it will use the top and left properties

getWindow(element) ⇒ Window

Get the window associated with the element

Kind: global function

ParamType
elementElement

ModifierFn(data, options) ⇒ dataObject

Modifier function, each modifier can have a function of this type assigned to +its fn property.
These functions will be called on each update, this +means that you must make sure they are performant enough to avoid performance +bottlenecks.

Kind: global function
+Returns: dataObject - The data object, properly +modified

ParamTypeDescription
datadataObjectThe data object generated by update method
optionsObjectModifiers configuration and options

onUpdate : function

Kind: global typedef

ParamType
datadataObject

onCreate : function

Kind: global typedef

ParamType
datadataObject
Edit this page
v2.×
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/browser-support/index.html b/docs/v2/browser-support/index.html new file mode 100644 index 00000000..803a95dd --- /dev/null +++ b/docs/v2/browser-support/index.html @@ -0,0 +1,62 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Browser Support

Popper supports modern versions of Chrome, Firefox, Safari, Edge. IE11 works +with some polyfills. Additionally, any Chromium-based browser, such as Opera, +Beaker, etc should be supported.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

IE11

IE11 (and older browsers in general) require polyfills to work. The simplest way +to make Popper work is to use the following polyfill service:

<script src="https://polyfill.io/v3/polyfill.min.js?features=Array.prototype.find,Promise,Object.assign"></script>

Browsers that don't need the polyfills won't be burdened with the JS bundle +size.

Support note

If you need to support old browsers, ensure you lock Popper's version to a +specific number when using the CDN. On new releases, we may add more modern +functions that require new polyfills, or positioning behavior may break in IE11 +since it is completely untested. We don't plan to officially support IE11, but +welcome PRs to fix issues. For the most part, IE11 seems to work without much +trouble, but there may be edge cases in some scenarios.

Safari

Safari has unfortunate quirks regarding updating the position of DOM elements. +We have filed WebKit bugs for these, so hopefully they will be fixed in the +future.

Lag

On macOS and iOS, when the popper is prevented from overflowing the root +viewport boundary, it can appear to lag behind while scrolling (not 1:1 +in-sync). For iOS this also happens in scrolling containers.

We recommend one of these options for Safari only:

  • Setting rootBoundary to "document" for the preventOverflow modifier
  • Hiding the popper upon scrolling

WebKit bug report

Fixed strategy

In the latest version of macOS Safari, when elastic overscroll (rubber-banding +effect) is in progress, fixed elements will detach from the reference element +because they no longer stick including the elastic overscroll – which Safari +reports scroll to include. On iOS, this is not an issue.

In addition, while scrolling the document, a slight lag as mentioned above also +becomes present because the popper needs to be continuously updated while +scrolling, which Safari is not good at. Ideally this strategy should only be +used when the reference element is fixed, and not to "break" the popper out of a +clipping container context.

WebKit bug report

IE10 and older

Browsers older than 2013 (including Android 4.4) will never be supported since +they are becoming increasingly obsolete and add a lot of complexity (runtime and +bundle) costs to the library.

We encourage any Internet Explorer user to upgrade to +Microsoft Edge, their most recent versions are +based on Chromium, allowing to render all the modern websites without issues, +but still provide a compatibility mode to render legacy websites designed to +work with Internet Explorer.

Edit this page
Typings
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/constructors/index.html b/docs/v2/constructors/index.html new file mode 100644 index 00000000..dc7685b1 --- /dev/null +++ b/docs/v2/constructors/index.html @@ -0,0 +1,163 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Constructors

Popper comes with two constructor functions to use.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

createPopper

The createPopper constructor is at the heart of Popper. It allows you to +create individual popper instances (objects) with state and methods.

Imports

// esm
+import { createPopper } from '@popperjs/core';
+
+// cjs
+const { createPopper } = require('@popperjs/core');
+
+// umd
+const { createPopper } = Popper;

Usage

const reference = document.querySelector('#reference');
+const popper = document.querySelector('#popper');
+
+createPopper(reference, popper, {
+  // options
+});

Options

type Options = {|
+  placement: Placement, // "bottom"
+  modifiers: Array<$Shape<Modifier<any>>>, // []
+  strategy: PositioningStrategy, // "absolute",
+  onFirstUpdate?: ($Shape<State>) => void, // undefined
+|};
+
+type Placement =
+  | 'auto'
+  | 'auto-start'
+  | 'auto-end'
+  | 'top'
+  | 'top-start'
+  | 'top-end'
+  | 'bottom'
+  | 'bottom-start'
+  | 'bottom-end'
+  | 'right'
+  | 'right-start'
+  | 'right-end'
+  | 'left'
+  | 'left-start'
+  | 'left-end';
+type Strategy = 'absolute' | 'fixed';

placement

Describes the preferred placement of the popper. Modifiers like flip may +change the placement of the popper to make it fit better.

createPopper(reference, popper, {
+  placement: 'right-start',
+});

The "auto" placements will choose the side with most space.

modifiers

Describes the array of modifiers to add or configure. The default (full) version +of Popper includes all modifiers listed in the menu.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      enabled: false,
+    },
+  ],
+});

See Modifiers for more information.

strategy

Describes the positioning strategy to use. By default, it is absolute, which +in the simplest cases does not require repositioning of the popper.

If your reference element is in a fixed container, use the fixed strategy:

createPopper(reference, popper, {
+  strategy: 'fixed',
+});

This will prevent any jumpiness since no repositioning is needed.

Instance

createPopper returns a popper instance. This is a plain object with a state +property and some methods.

Log it out in DevTools:

const instance = createPopper(reference, popper);
+console.log(instance);
{
+  // This is the main state object containing all of the information about the
+  // popper.
+  state,
+
+  // Synchronously updates the popper instance. Use this for low-frequency
+  // updates.
+  forceUpdate() {},
+
+  // Asynchronously updates the popper instance, and returns a promise. Use this
+  // for high-frequency updates.
+  update() {},
+
+  // Updates the options of the instance.
+  setOptions(options) {},
+
+  // Cleans up the instance.
+  destroy() {},
+};

Types

type CreatePopper = (
+  reference: Element | VirtualElement,
+  popper: HTMLElement,
+  options?: Options
+) => Instance;
+
+type Options = {|
+  placement: Placement,
+  modifiers: Array<$Shape<Modifier<any>>>,
+  strategy: PositioningStrategy,
+  onFirstUpdate?: ($Shape<State>) => void,
+|};
+
+type Instance = {|
+  state: State,
+  destroy: () => void,
+  forceUpdate: () => void,
+  update: () => Promise<$Shape<State>>,
+  setOptions: (
+    options: $Shape<Options> | (($Shape<Options>) => $Shape<Options>)
+  ) => Promise<$Shape<State>>,
+|};

setOptions

You can update the options of a popper instance with the setOptions method.

The method accepts either an options object or a function that takes the current +options object as argument and returns the new one.

Below we set a new configuration object that replaces the current one. Note that +the below example will unset all the modifiers configuration and any other +custom options:

instance.setOptions({
+  placement: 'bottom',
+});

If, instead, we want to update the existing configuration, we can use a function +to read the current options and return updated ones (available since version +2.10.0):

// Disable event listeners options without losing the rest of the set options
+instance.setOptions(options => ({
+  ...options,
+  modifiers: [
+     ...options.modifiers,
+     { name: 'eventListeners', enabled: false }
+  ]
+}));
// Enable it back, you can also use something like Ramda#assocPath to make this terser
+instance.setOptions((options) =>
+  R.assocPath(['modifiers'], { name: 'eventListeners', enabled: true }, options)
+);

popperGenerator

The popperGenerator constructor generates a createPopper function. This +allows you to configure createPopper with the functionality you need instead +of needing to pass the same defaults each time.

Imports

// esm
+import { popperGenerator } from '@popperjs/core';
+
+// cjs
+const { popperGenerator } = require('@popperjs/core');
+
+// umd
+const { popperGenerator } = Popper;

Usage

const createPopper = popperGenerator({
+  defaultOptions: { placement: 'top' },
+  defaultModifiers: [popperOffsets, computeStyles, applyStyles, eventListeners],
+});
+
+// Now your custom `createPopper` is ready to use.

Types

type PopperGenerator = (options?: PopperGeneratorOptions) => CreatePopper;
+
+type PopperGeneratorOptions = {
+  defaultModifiers?: Array<Modifier<any>>,
+  defaultOptions?: $Shape<Options>,
+};
Edit this page
Tutorial
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/faq/index.html b/docs/v2/faq/index.html new file mode 100644 index 00000000..d8c8e698 --- /dev/null +++ b/docs/v2/faq/index.html @@ -0,0 +1,103 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Frequently Asked Questions (FAQ)

Don't see your question here? Feel free to ask on +Spectrum! We'll try to answer you within a +day or two.

Why is my popper in the wrong location (or not visible at all)?

For the left and top placements, Popper relies on HTML Standards Mode for +the computeStyles modifier's adaptive option. A problem will occur in Quirks +Mode when the <body> is the popper element's offsetParent, and it's taller +than the viewport.

To fix it, use the Standards Mode doctype:

<!DOCTYPE html>
+<html>
+  <!-- ... -->
+</html>

Additionally, make sure your popper element (tooltip, popover, etc...) CSS +doesn't include some positioning styles (such as top, left, right, +bottom, and transform) because they could interfere with the Popper +positioning logic.

Why is my popper jittering while scrolling?

If your reference element is position: fixed, use the "fixed" strategy:

createPopper(reference, popper, {
+  strategy: 'fixed',
+});

Due to the way browsers handle element updates, there will likely be some +inevitable stutters if the strategy does not match the reference element's +position.

How do I add CSS transitions without disabling adaptive?

We recommend making the popper element a wrapper around an inner element that +can have any CSS property transitioned:

<div class="popper">
+  <div class="box">
+    Content
+  </div>
+</div>

In the above case, the .popper element is the one that's positioned but has no +styles applied. The .box element has all of the CSS styling and animations.

How do I set modifier defaults and allow them to be overridden?

Modifiers are merged by name, where later items in the array override earlier +ones. This provides a way to configure some defaults for modifiers, but allow +them to be overridden easily:

// A user passes this object in:
+const popperOptions = {
+  strategy: 'fixed',
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        padding: 0,
+      },
+    },
+  ],
+};
+
+// Your library sets its own defaults:
+createPopper(reference, popper, {
+  ...popperOptions,
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        rootBoundary: 'document',
+        padding: 10,
+      },
+    },
+    ...(popperOptions.modifiers || []),
+  ],
+});

How do I change offset based on the browser width (media queries)?

Popper doesn't accept margins, but you can still make offset dynamic based on +media queries.

window.matchMedia() is a useful API for this — since offset can take a +function, it allows you to dynamically change the offset based on a condition:

const mediaQuery = window.matchMedia('(max-width: 500px)');
+
+createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'offset',
+      options: {
+        // 0px distance at <= 500px width, otherwise 10px distance
+        offset: () => [0, mediaQuery.matches ? 0 : 10],
+      },
+    },
+  ],
+});

My popper is bigger than the viewport, what do I do?

Here are some options:

  • Prevent the popper's width from ever exceeding the browser's width with +max-width: 100vw; CSS (along with box-sizing: border-box).
  • Set preventOverflow's rootBoundary option to document if it must be +larger than the viewport.
  • Create a custom size modifier that changes the size of the popper based on +the available space remaining, and allow the popper box to be scrolled. The +detectOverflow utility enables this.
Edit this page
Performance
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/index.html b/docs/v2/index.html new file mode 100644 index 00000000..5a6f93d3 --- /dev/null +++ b/docs/v2/index.html @@ -0,0 +1,157 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Documentation

Popper

Positioning tooltips and popovers is difficult. Popper is here to help!

Given an element, such as a button, and a tooltip element describing it, Popper +will automatically put the tooltip in the right place near the button.

It will position any UI element that "pops out" from the flow of your document +and floats near a target element. The most common example is a tooltip, but it +also includes popovers, drop-downs, and more. All of these can be generically +described as a "popper" element.

If you are looking for the Popper v1 documentation, click here.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Why not use pure CSS?

  • Clipping and overflow issues: Pure CSS poppers will not be prevented from +overflowing clipping boundaries, such as the viewport. It will get partially +cut off or overflows if it's near the edge since there is no dynamic +positioning logic. When using Popper, your popper will always be positioned in +the right place without needing manual adjustments.
  • No flipping: CSS poppers will not flip to a different placement to fit +better in view if necessary. While you can manually adjust for the main axis +overflow, this feature cannot be achieved via CSS alone. Popper automatically +flips the tooltip to make it fit in view as best as possible for the user.
  • No virtual positioning: CSS poppers cannot follow the mouse cursor or be +used as a context menu. Popper allows you to position your tooltip relative to +any coordinates you desire.
  • Slower development cycle: When pure CSS is used to position popper +elements, the lack of dynamic positioning means they must be carefully placed +to consider overflow on all screen sizes. In reusable component libraries, +this means a developer can't just add the component anywhere on the page, +because these issues need to be considered and adjusted for every time. With +Popper, you can place your elements anywhere and they will be positioned +correctly, without needing to consider different screen sizes, layouts, etc. +This massively speeds up development time because this work is automatically +offloaded to Popper.
  • Lack of extensibility: CSS poppers cannot be easily extended to fit any +arbitrary use case you may need to adjust for. Popper is built with +extensibility in mind.

Why Popper?

With the CSS drawbacks out of the way, we now move on to Popper in the +JavaScript space itself.

Naive JavaScript tooltip implementations usually have the following problems:

  • Scrolling containers: They don't ensure the tooltip stays with the +reference element while scrolling when inside any number of scrolling +containers.
  • DOM context: They often require the tooltip move outside of its original +DOM context because they don't handle offsetParent contexts.
  • Compatibility: Popper handles an incredible number of edge cases regarding +different browsers and environments (mobile viewports, RTL, scrollbars enabled +or disabled, etc.). Popper is a popular and well-maintained library, so you +can be confident positioning will work for your users on any device.
  • Configurability: They often lack advanced configurability to suit any +possible use case.
  • Size: They are usually relatively large in size, or require an ancient +jQuery dependency.
  • Performance: They often have runtime performance issues and update the +tooltip position too slowly.

Popper solves all of these key problems in an elegant, performant manner. It +is a lightweight ~3 kB library that aims to provide a reliable and extensible +positioning engine you can use to ensure all your popper elements are positioned +in the right place.

When you start writing your own popper implementation, you'll quickly run into +all of the problems mentioned above. These widgets are incredibly common in our +UIs; we've done the hard work figuring this out so you don't need to spend hours +fixing and handling numerous edge cases that we already ran into while building +the library!

Popper is used in popular libraries like Bootstrap, Foundation, Material UI, and +more. It's likely you've already used popper elements on the web positioned by +Popper at some point in the past few years.

Since we write UIs using powerful abstraction libraries such as React or Angular +nowadays, you'll also be glad to know Popper can fully integrate with them and +be a good citizen together with your other components. Check out react-popper +for the official Popper wrapper for React.

Installation

1. Package Manager

# With npm
+npm i @popperjs/core
+
+# With Yarn
+yarn add @popperjs/core

2. CDN

<!-- Development version -->
+<script src="https://unpkg.com/@popperjs/core@2/dist/umd/popper.js"></script>
+
+<!-- Production version -->
+<script src="https://unpkg.com/@popperjs/core@2"></script>

3. Direct Download?

Managing dependencies by "directly downloading" them and placing them into your +source code is not recommended for a variety of reasons, including missing out +on feat/fix updates easily. Please use a versioning management system like a CDN +or npm/Yarn.

Usage

The most straightforward way to get started is to import Popper from the unpkg +CDN, which includes all of its features. You can call the Popper.createPopper +constructor to create new popper instances.

Here is a complete example:

<!DOCTYPE html>
+<title>Popper example</title>
+
+<style>
+  #tooltip {
+    background-color: #333;
+    color: white;
+    padding: 5px 10px;
+    border-radius: 4px;
+    font-size: 13px;
+  }
+</style>
+
+<button id="button" aria-describedby="tooltip">I'm a button</button>
+<div id="tooltip" role="tooltip">I'm a tooltip</div>
+
+<script src="https://unpkg.com/@popperjs/core@2"></script>
+<script>
+  const button = document.querySelector('#button');
+  const tooltip = document.querySelector('#tooltip');
+
+  // Pass the button, the tooltip, and some options, and Popper will do the
+  // magic positioning for you:
+  Popper.createPopper(button, tooltip, {
+    placement: 'right',
+  });
+</script>

Visit the tutorial for an example of how to build your own tooltip +from scratch using Popper.

Module bundlers

You can import the createPopper constructor from the fully-featured file:

import { createPopper } from '@popperjs/core';
+
+const button = document.querySelector('#button');
+const tooltip = document.querySelector('#tooltip');
+
+// Pass the button, the tooltip, and some options, and Popper will do the
+// magic positioning for you:
+createPopper(button, tooltip, {
+  placement: 'right',
+});

All the modifiers listed in the docs menu will be enabled and "just work", so +you don't need to think about setting Popper up. The size of Popper including +all of its features is about 5 kB minzipped, but it may grow a bit in the +future.

Popper Lite (tree-shaking)

If bundle size is important, you'll want to take advantage of tree-shaking. The +library is built in a modular way to allow to import only the parts you really +need.

import { createPopper } from '@popperjs/core/lib/popper-lite.js';

The Lite version includes the most necessary modifiers that will compute the +offsets of the popper, compute and add the positioning styles, and add event +listeners. This is close in bundle size to pure CSS tooltip libraries, and +behaves somewhat similarly.

However, this does not include the features that makes Popper truly useful.

The two most useful modifiers not included in Lite are preventOverflow and +flip:

import { createPopper } from '@popperjs/core/lib/popper-lite.js';
+import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow.js';
+import flip from '@popperjs/core/lib/modifiers/flip.js';
+
+const button = document.querySelector('#button');
+const tooltip = document.querySelector('#tooltip');
+
+createPopper(button, tooltip, {
+  modifiers: [preventOverflow, flip],
+});

As you make more poppers, you may be finding yourself needing other modifiers +provided by the library.

See tree-shaking for more information.

Distribution targets

Popper is distributed in 3 different versions, in 3 different file formats.

The 3 file formats are:

  • esm (works with import syntax — recommended)
  • umd (works with <script> tags or RequireJS)
  • cjs (works with require() syntax)

There are two different esm builds, one for bundler consumers (e.g. webpack, +Rollup, etc..), which is located under /lib, and one for browsers with native +support for ES Modules, under /dist/esm. The only difference within the two, +is that the browser-compatible version doesn't make use of +process.env.NODE_ENV to run development checks.

The 3 versions are:

  • popper: includes all the modifiers (features) in one file (default);
  • popper-lite: includes only the minimum amount of modifiers to provide the +basic functionality;
  • popper-base: doesn't include any modifier, you must import them separately;

Below you can find the size of each version, minified and compressed with the +Brotli compression algorithm:

+ +

Edit this page
Popper
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/lifecycle/index.html b/docs/v2/lifecycle/index.html new file mode 100644 index 00000000..669b887a --- /dev/null +++ b/docs/v2/lifecycle/index.html @@ -0,0 +1,51 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Lifecycle

Popper relies on a set of steps, executed in a precise order, in order to +provide the functionalities you expect from it.

Everything starts with the popper initialization, executed by calling +createPopper.

As first thing, all the modifier's effects are ran. +After that, it's the turn of the modifier's main logic.

At this point, your popper has been properly positioned, and its position is +ready to be updated in different ways.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Manual update

You can ask Popper to recompute your tooltip's position by running +instance.update().

This method will return a promise, that will be resolved with the updated +State, from where you will optionally be able to read the updated positions.

const state = await popperInstance.update();

Set new options

You can also trigger an update by setting new options to your Popper instance. +This, internally, will call the update() method.

const state = await popperInstance.setOptions({ placement: 'bottom' });

Event Listeners

You can also have Popper automatically update the position when certain events +are fired, to learn more visit the +Event Listeners Modifier page.

Hook into the lifecycle

There are situations where you may need to hook into the Popper's lifecycle to +perform some additional logic.

If all you need is a callback ran after Popper positioned the element the first +time, you can define the onFirstUpdate property in the Popper options:

createPopper(referenceElement, popperElement, {
+  onFirstUpdate: state => console.log('Popper positioned on', state.placement),
+});

If, instead, you want to run some logic on each update cycle, the best way to do +that is to define your own custom modifier.

If you want to make sure to run your logic after all the other modifiers have +ran, we suggest to set afterWrite as your custom modifier's phase.

Edit this page
Constructors
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/migration-guide/index.html b/docs/v2/migration-guide/index.html new file mode 100644 index 00000000..9f44f254 --- /dev/null +++ b/docs/v2/migration-guide/index.html @@ -0,0 +1,84 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Migrating to Popper 2

Popper 2 introduces a lot of changes for the better! Here's a guide to help you +migrate to the new version.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

1. Install the new package

Remove the popper.js package from your package.json or CDN script tag +includes, and install @popperjs/core.

Popper has changed its package name to live under the scoped @popperjs +organization. This is where other packages like react-popper will now live +too.

2. Change the import

Modules

In Popper 1, it was a class:

import Popper from 'popper.js';
+
+new Popper(reference, popper, options);

In Popper 2, it's now a function:

import { createPopper } from '@popperjs/core';
+
+createPopper(reference, popper, options);

CDN / umd version

This named import lives under the Popper namespace object:

Popper.createPopper;

3. Change your CSS attribute selectors

In v1, attributes were prefixed with x-, for example, x-placement. In v2, +these are now prefixed with data-popper-, which matches the HTML5 spec, and +has its own data namespace to prevent conflicts.

Also, x-out-of-boundaries is now data-popper-reference-hidden.

4. Remove all CSS margins

In Popper 2 we no longer consider CSS margin because of inherent issues with +it. Instead, to apply some padding between the popper and its reference element, +use the offset modifier. You also need to remove margin from your arrows +too; instead use the padding option in the arrow modifier.

5. Ensure your popper and arrow box size is constant for all placements

Your popper and arrow cannot be a different width or height for different +placements; it must be constant in size. This is due to the way the Popper +lifecycle works – which can't know ahead of time (before writing to the DOM) +what the computed CSS will be, which can change the size of the elements. In +Popper 1, this caused all sorts of flicker and jitter issues.

We are looking into a way to allow this in the future, but it's currently a +difficult problem to solve efficiently.

6. Add back boundary paddings if necessary

In Popper 2, all padding is now 0. In v1, these were 5 for +preventOverflow and flip. If necessary, you can add these back using the +padding option, which works the same as v1.

7. Change positionFixed

In Popper 2, this is now the strategy option:

createPopper(reference, popper, {
+  strategy: 'fixed',
+});

8. Update method names

  • update() is now forceUpdate() (and is sync)
  • scheduleUpdate() is now update() (and returns a promise)
  • enableEventListeners / disableEventListeners are gone; see the +eventListeners modifier. You can use the setOptions method to change the +scroll and resize options at will to replicate the original methods' +functionality.

9. Update callbacks

  • onCreate is now onFirstUpdate
  • onUpdate is gone; use a custom modifier with an afterWrite phase

10. Update modifiers

In Popper 2 this is now an array of objects (modifiers), instead of an object +where each property was the modifier name.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      enabled: false,
+    },
+  ],
+});

In addition, their options are grouped together in the options object:

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        padding: 5,
+      },
+    },
+  ],
+});

We cannot list all the changes to them here (there are a lot!); you'll need to +visit each modifier in the menu to learn more about their new behavior.

See Modifiers for more information on writing custom modifiers.

11. inner, keepTogether, shift modifiers are gone

  • inner can be replicated using the offset modifier with negative values
  • keepTogether functionality lives in preventOverflow in tether options

12. Remove virtual element properties

The only property your virtual elements (or Reference Objects in Popper 1) need +is getBoundingClientRect. The other properties are unnecessary now.

13. Transitions

In Popper 2, the computeStyles modifier has a new option called adaptive +enabled by default, which breaks CSS transitions. You should set this option to +false if CSS transitions are enabled.

Keep in mind, adaptive has the benefit of allowing you to change the height or +width of the popper in most cases without needing to update its position, so +you'll lose this benefit when disabling it.

Edit this page
Browser Support
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/apply-styles/index.html b/docs/v2/modifiers/apply-styles/index.html new file mode 100644 index 00000000..87a8a5e1 --- /dev/null +++ b/docs/v2/modifiers/apply-styles/index.html @@ -0,0 +1,38 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Apply Styles

The applyStyles modifier writes the styles in state.styles and +state.attributes to the popper element.

If you're using a library like React, you may want to implement your own +applyStyles modifier fn to delegate DOM writes to it.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Phase

write

Options

This modifier currently has no options.

Data

This modifier currently has no data.

Edit this page
Compute Styles
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/arrow/index.html b/docs/v2/modifiers/arrow/index.html new file mode 100644 index 00000000..c57ea9c0 --- /dev/null +++ b/docs/v2/modifiers/arrow/index.html @@ -0,0 +1,124 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Arrow

The arrow modifier positions an inner element of the popper so it appears +centered relative to the reference element, usually the triangle or caret that +points toward the reference element.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Demo

The arrow points toward the center of the reference at all times and transitions +away once it can no longer point to the center.

Reference

Phase

main

Options

type Options = {
+  element: HTMLElement | string, // "[data-popper-arrow]"
+  padding: Padding | PaddingFunction, // 0
+};
+
+type PaddingFunction = ({
+  popper: Rect,
+  reference: Rect,
+  placement: Placement,
+}) => Padding;
+
+type Padding =
+  | number
+  | {|
+      top?: number,
+      left?: number,
+      right?: number,
+      bottom?: number,
+    |};

element

Specifies the element to position as the arrow. This element must be a child of +the popper element.

A string represents a CSS selector queried within the context of the popper +element.

Popper will automatically pick up the following element (using the +data-popper-arrow attribute) and position it:

<div id="popper">
+  <div data-popper-arrow></div>
+</div>

Or you can pass an element without an attribute:

const arrow = document.querySelector('#arrow');
+createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'arrow',
+      options: {
+        element: arrow,
+      },
+    },
+  ],
+});

padding

If you don't want the arrow to reach the very edge of the popper (this is +common if your popper has rounded corners using border-radius), you can apply +some padding to it.

You can pass a number, which will be equal padding on all four sides, or an +object containing side properties each with their own padding value.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'arrow',
+      options: {
+        padding: 5, // 5px from the edges of the popper
+      },
+    },
+  ],
+});

The padding option also accepts a function as value, the function provides the +popper and reference rects, and placement as arguments and should return a +valid Padding type.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'arrow',
+      options: {
+        padding: ({ popper, reference, placement }) =>
+          popper.width / reference.width,
+      },
+    },
+  ],
+});

Data

type Data = {
+  // Describes the offset of the arrow
+  x?: number,
+  y?: number,
+  // Describes the offset of the arrow (where it actually is) relative to where
+  // it should be if it were allowed to overflow its popper. Non-zero once the
+  // arrow reaches the edge of its popper and cannot overflow it to be centered
+  // to the reference.
+  centerOffset: number,
+};

If you would like to hide the arrow once it reaches the edge of its popper (i.e. +once it can no longer point to the center of the reference element), you can +create a custom modifier:

const applyArrowHide = {
+  name: 'applyArrowHide',
+  enabled: true,
+  phase: 'write',
+  fn({ state }) {
+    const { arrow } = state.elements;
+
+    if (arrow) {
+      if (state.modifiersData.arrow.centerOffset !== 0) {
+        arrow.setAttribute('data-hide', '');
+      } else {
+        arrow.removeAttribute('data-hide');
+      }
+    }
+  },
+};
.arrow[data-hide] {
+  visibility: hidden;
+}
Edit this page
Prevent Overflow
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/community-modifiers/index.html b/docs/v2/modifiers/community-modifiers/index.html new file mode 100644 index 00000000..3c86aafd --- /dev/null +++ b/docs/v2/modifiers/community-modifiers/index.html @@ -0,0 +1,44 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Community Modifiers

Due to bundle size and complexity constraints, we can't include all the possible +modifiers in the core library, but we do encourage everybody to publish their +own custom modifiers in dedicated npm packages!

When you do so, please make sure to add the popperjs-modifier +keyword to your package.json, so that other people can easily +discover the community modifiers on npm.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

You can find all the information needed to learn how to create your very own +custom modifiers by visiting the dedicated docs.

Below you can find a few common examples to help get you started:

Edit this page
Event Listeners
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/compute-styles/index.html b/docs/v2/modifiers/compute-styles/index.html new file mode 100644 index 00000000..6db92e03 --- /dev/null +++ b/docs/v2/modifiers/compute-styles/index.html @@ -0,0 +1,90 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Compute Styles

The computeStyles modifier prepares the styles that will get written to the +DOM in the next phase, write. This includes rounding the offsets and deciding +what properties to use (e.g. gpuAcceleration).

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Phase

beforeWrite

Options

type Options = {
+  gpuAcceleration: boolean,
+  adaptive: boolean,
+  roundOffsets: boolean | RoundOffsets, // true by default
+};
+
+type RoundOffsets = (
+  offsets: $Shape<{ x: number, y: number, centerOffset: number }>
+) => {|
+  y: number,
+  x: number,
+|};

gpuAcceleration

This determines whether GPU-accelerated styles are used to position the popper.

  • true: Popper will use the 3D transforms on high PPI displays and 2D +transforms on low PPI displays.
  • false: Popper will use top/left properties.
createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'computeStyles',
+      options: {
+        gpuAcceleration: false, // true by default
+      },
+    },
+  ],
+});

adaptive

This option, enabled by default, tells Popper to use the most suitable CSS +properties to position the popper (either top and left, or bottom and +right).

This allows the popper content to change, and reduce the likelihood of needing +to recompute the popper position.

For example, if our popper is positioned on the left of its reference element, +Popper will apply right: 0px and translate3d(-200px, 0px, 0px). Doing so, if +the content of the popper changes, making it wider or narrower, the popper will +stay anchored to its reference element.

This behavior can be disabled by setting the option to false:

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'computeStyles',
+      options: {
+        adaptive: false, // true by default
+      },
+    },
+  ],
+});

roundOffsets

This determines whether try to round offsets to the nearest suitable subpixel +based on the device pixel ratio.

Rounded offsets are useful to prevent blurriness on some browsers, but may lead +to slight positioning issues (1px off).

When the option is set to false, the offsets will not be rounded, so you may +receive decimal values that don't fit in the device subpixel grid.

You can optionally set this to a function to provide your own offset logic, +example:

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'computeStyles',
+      options: {
+        roundOffsets: ({ x, y }) => ({
+          x: Math.round(x + 2),
+          y: Math.round(y + 2),
+        }),
+      },
+    },
+  ],
+});

Data

This modifier currently has no data.

Edit this page
Hide
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/event-listeners/index.html b/docs/v2/modifiers/event-listeners/index.html new file mode 100644 index 00000000..47629909 --- /dev/null +++ b/docs/v2/modifiers/event-listeners/index.html @@ -0,0 +1,59 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Event Listeners

The eventListeners modifier adds scroll and resize listeners that update +the position of the popper when necessary. These are not exhaustive and don't +cover the following cases:

When the reference element moves or changes size

Most of the times, you can avoid the need to reposition your popper when its +reference element moves on the page by attaching the popper DOM node right next +to the reference DOM node.

This has the advantage of dramatically reducing the amount of updates required +to keep the popper and reference elements next to each other, but has some quirks +to keep in mind.

First of all, you must make sure the parent elements are not clipping containers. +A clipping container is an element with the ability to clip (or hide) content that +overflows its boundaries.
+A common misconception is that any parent with overflow: hidden will clip any +overflowing child element, but that's not actually the case.
+An element, in order to gain such characteristics, needs to have an overflow +property set to auto, scroll, overlay, or hidden, and needs to act as +offset parent +or be parent of an offset parent. Only in these conditions, a popper will get cut +off when it overflows its parent.

Note that Popper already handles this case, and will only attempt to make the +popper not overflow its parent if the parent is a clipping container.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

When the popper element changes size (i.e. content)

This case is not handled by the eventListeners modifier because it's already +handled by the computeStyles one, when its adaptive +property is enabled (on by default).

Other cases

For any other cases not included in the options above, you may want to either +update the instance via instance.update(), a ResizeObserver or +requestAnimationFrame loop (if animating) to solve these if necessary.

Phase

write

Options

type Options = {
+  scroll: boolean, // true
+  resize: boolean, // true
+};

scroll

Determines if scroll listeners are added.

resize

Determines if resize listeners are added.

Data

This modifier currently has no data.

Edit this page
Apply Styles
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/flip/index.html b/docs/v2/modifiers/flip/index.html new file mode 100644 index 00000000..e37dfeda --- /dev/null +++ b/docs/v2/modifiers/flip/index.html @@ -0,0 +1,136 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Flip

The flip modifier can change the placement of a popper when it's scheduled +to overflow a given boundary.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Demo

The placement is set to bottom, but if that placement does not fit, the +opposite top placement will be used.

Reference
Tooltip

Phase

main

Options

type Options = {
+  fallbackPlacements: Array<Placement>, // [oppositePlacement]
+  padding: Padding, // 0,
+  boundary: Boundary, // "clippingParents"
+  rootBoundary: RootBoundary, // "viewport"
+  flipVariations: boolean, // true
+  allowedAutoPlacements: Array<Placement>, // all supported placements
+};

fallbackPlacements

If the popper has placement set to bottom, but there isn't enough space to +position the popper in that direction, by default, it will change the popper +placement to top. As soon as enough space is detected, the placement will be +reverted to the originally defined (or preferred) one.

You can also define fallback placements by providing a list of placements to +try. When no space is available on the preferred placement, the modifier will +test the ones provided in the list, and use the first useful one.

createPopper(reference, popper, {
+  placement: 'left',
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        fallbackPlacements: ['top', 'right'],
+      },
+    },
+  ],
+});

In the above example, the popper will be placed on left if there's enough space, +if not, it will try the top placement, and if the top placement doesn't fit +either, it will try to use the right placement. If even the right placement +doesn't fit, it reverts back to the original placement.

padding

See padding in Detect Overflow for +details.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        padding: 8,
+      },
+    },
+  ],
+});

boundary

See boundary in Detect Overflow for +details.

const element = document.querySelector('#parentElement');
+
+createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        boundary: element,
+      },
+    },
+  ],
+});

rootBoundary

See +rootBoundary in Detect Overflow +for details.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        rootBoundary: 'document',
+      },
+    },
+  ],
+});

altBoundary

This will check the reference's boundary context +(clippingParents) instead of the +popper's, effectively replicating the +scrollParent boundary from +Popper v1. See +altBoundary in Detect Overflow for +details.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        altBoundary: true, // false by default
+      },
+    },
+  ],
+});

flipVariations

When using variation placements (e.g. top-start), the popper will attempt to +flip the opposite variation if the preferred variation does not fit. This allows +the popper to stay aligned to the edge of the reference element before +preventOverflow has a chance to misalign it.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        flipVariations: false, // true by default
+      },
+    },
+  ],
+});

allowedAutoPlacements

The auto placement is very versatile, but sometimes you may need to make it +resolve to just a user defined set of placements.
+If, for example, you want auto to only ever resolve to either top or +bottom, you can set allowedAutoPlacements to ['top', 'bottom'].

This feature is available starting from @popperjs/core@2.3.0

createPopper(reference, popper, {
+  placement: 'auto',
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        allowedAutoPlacements: ['top', 'bottom'], // by default, all the placements are allowed
+      },
+    },
+  ],
+});

Data

This modifier has no data.

Edit this page
Arrow
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/hide/index.html b/docs/v2/modifiers/hide/index.html new file mode 100644 index 00000000..68ec3399 --- /dev/null +++ b/docs/v2/modifiers/hide/index.html @@ -0,0 +1,62 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Hide

The hide modifier lets you hide the popper if it appears to be detached from +its reference element, or attached to nothing at all. This can occur when the +reference element is inside a scrolling container and the popper is in a +different context.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

It adds attributes to state.attributes:

  • data-popper-reference-hidden: This attribute gets applied to the popper when +the reference element is fully clipped and hidden from view, which causes the +popper to appear to be attached to nothing.
  • data-popper-escaped: This attribute gets applied when the popper escapes the +reference element's boundary (and so it appears detached).

To hide the popper, apply some CSS:

/* Hide the popper when the reference is hidden */
+#popper[data-popper-reference-hidden] {
+  visibility: hidden;
+  pointer-events: none;
+}

Note: avoid using properties like display: none. This doesn't allow +Popper to read its dimensions which can cause jitter issues.

Demo

The popper turns partially transparent when the popper escapes the reference's +clipping container. It then becomes invisible when the reference is hidden +entirely.

Reference
Tooltip

Phase

main

Options

This modifier currently has no options.

Data

type Data = {
+  isReferenceHidden: boolean,
+  hasPopperEscaped: boolean,
+  referenceClippingOffsets: Offsets,
+  popperEscapeOffsets: Offsets,
+};
+
+// A positive number indicates it's overflowing on that side
+type Offsets = {
+  top: number,
+  right: number,
+  bottom: number,
+  left: number,
+};
Edit this page
Flip
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/index.html b/docs/v2/modifiers/index.html new file mode 100644 index 00000000..927315d2 --- /dev/null +++ b/docs/v2/modifiers/index.html @@ -0,0 +1,123 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Modifiers

Popper is built using an extensible core, which provides the foundation used to +deliver all the functionalities offered by the library.

All the useful functionalities provided by the library are implemented as Popper +modifiers. They are plugins, or middlewares, that can hook into the lifecycle of +Popper, and add additional logic to the positioning operations provided by +default by Popper. They effectively "modify" the popper state in some fashion, +adding functionality, hence the term "modifiers".

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Custom Modifiers

It is possible to add custom modifiers, written by you, by defining them in the +options.modifiers array during a Popper instantation.

Example modifier

A modifier that logs to the console when it's on the top (not very useful, but +demonstrates each property):

const topLogger = {
+  name: 'topLogger',
+  enabled: true,
+  phase: 'main',
+  fn({ state }) {
+    if (state.placement === 'top') {
+      console.log('Popper is on the top');
+    }
+  },
+};
+
+createPopper(reference, popper, {
+  modifiers: [topLogger],
+});

A modifier is composed of an object with the following properties:

type Modifier = {|
+  // Required properties
+  name: string,
+  enabled: boolean,
+  phase: ModifierPhases,
+  fn: (ModifierArguments<Options>) => ?State,
+
+  // Optional properties
+  requires?: Array<string>,
+  requiresIfExists?: Array<string>,
+  effect?: (ModifierArguments<Options>) => ?() => void,
+  options?: {},
+  data?: {},
+|};
+
+type ModifierArguments<Options: Obj> = {
+  state: $Shape<State>,
+  instance: Instance,
+  options: $Shape<Options>,
+  name: string,
+};

name

The name is used as an identifier to make it possible to refer to the modifier +from other parts of the library. For example, you can add an object to the +options.modifier array with the name property, and the options property +populated with some custom options, to override the options of a built-in +modifier.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'flip',
+      options: {
+        fallbackPlacements: ['top', 'bottom'],
+      },
+    },
+  ],
+});

enabled

If set to true, the modifier will be executed during the Popper lifecycle, +otherwise, it will be ignored.

phase

Popper's modifiers lifecycle is divided into 3 core phases: read, main, and +write. This is done to optimize the library so that its access to the DOM is +grouped together rather than scattered around the whole lifecycle.

The modifiers that need to read from the DOM should run in the read phase, the +ones that only perform logic with algorithms should live in main, and the ones +that write to the DOM should be under write.

Note that Popper provides a cache of DOM measurements in its state, so that +modifiers can read them rather than querying the DOM, optimizing the overall +execution time. This means you should rarely need to hook into the read phase.

For further granularity if needed, there are 2 other sub-phases: before and +after. Here is the full list:

  • beforeRead
  • read
  • afterRead
  • beforeMain
  • main
  • afterMain
  • beforeWrite
  • write
  • afterWrite

fn

This is the main function, used to provide the logic to the modifier.

There are cases when you may want to control the Popper lifecycle through a +modifier – for example the flip modifier can alter the placement option, and +if that happens, Popper is instructed to run all the modifiers again, so that +they can react to the updated placement value. A modifier can reset the +lifecycle by setting state.reset to true.

requires

Specifies the list of modifiers it depends upon. Popper will execute the +modifiers in the correct order to allow the dependent modifier to access the +data provided by the dependee modifier.

For example, offset relies on popperOffsets data, since it mutates its +properties.

In short, the modifier depends upon this list of modifiers' data to work.

requiresIfExists

Specifies the list of modifiers it depends upon, but only if those modifiers +actually exist.

For example, preventOverflow relies on offset, but only if offset actually +exists, because offset mutates the popperOffsets data, which +preventOverflow needs to read and mutate. If offset doesn't exist, +preventOverflow will still work as normal.

In short, the modifier depends upon this list of modifiers' behavior (or +mutations to dependent data from other modifiers) to work.

effect

This function allows you to execute arbitrary code (effects) before the first +update cycle is ran. Perform effects in the function and return a cleanup +function if necessary:

function effect() {
+  // perform side effects
+  return () => {
+    // cleanup side effects
+  };
+}

Examples where this is useful involve code that is not necessary to be run on +every update, rather only when the instance lifecycle changes (created, updated, +or destroyed):

  • The eventListeners modifier uses this to add and remove window/document +event listeners which is not part of the main modifier update cycle.
  • The arrow modifier uses this to add the element to state.elements. The +arrow modifier is dependent on preventOverflow (run after), but +preventOverflow depends on state.elements.arrow. Since effects are run +before the first update cycle, the problem is resolved.

options

This is an object with all the properties used to configure the modifier.

data

This is the initial data provided to state.modifiersData.<MODIFIER_NAME>, +which is shared to other modifiers to be read or manipulated.

Edit this page
Lifecycle
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/offset/index.html b/docs/v2/modifiers/offset/index.html new file mode 100644 index 00000000..779b485f --- /dev/null +++ b/docs/v2/modifiers/offset/index.html @@ -0,0 +1,81 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Offset

The offset modifier lets you displace a popper element from its reference +element.

This can be useful if you need to apply some margin between them or if you need +to fine tune the position according to some custom logic.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Demo

Skidding

[20, 0]: The popper is offset 20px along the reference.

Reference
Tooltip

Distance

[0, 20]: The popper is offset 20px away from the reference.

Reference
Tooltip

Phase

main

Options

type Options = {
+  offset: OffsetsFunction | [?number, ?number], // [0, 0]
+};
+
+type OffsetsFunction = ({
+  popper: Rect,
+  reference: Rect,
+  placement: Placement,
+}) => [?number, ?number];

offset

The basic offset accepts an array with two numbers in the form +[skidding, distance].

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'offset',
+      options: {
+        offset: [10, 20],
+      },
+    },
+  ],
+});

Skidding

The first number, skidding, displaces the popper along the reference element.

           POP
+ |----------| <- [10, 0]
+REF

Distance

The second number, distance, displaces the popper away from, or toward, the +reference element in the direction of its placement. A positive number displaces +it further away, while a negative number lets it overlap the reference.

POP
+ |
+ | <- [0, 10]
+ |
+REF

The option can also take a function provided with some arguments, giving you +access to the popper placement, and the reference and popper rects.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'offset',
+      options: {
+        offset: ({ placement, reference, popper }) => {
+          if (placement === 'bottom') {
+            return [0, popper.height / 2];
+          } else {
+            return [];
+          }
+        },
+      },
+    },
+  ],
+});

In the above example, we are applying half the popper's height as margin between +the two elements only when the popper is positioned below its reference element.

Edit this page
Popper Offsets
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/popper-offsets/index.html b/docs/v2/modifiers/popper-offsets/index.html new file mode 100644 index 00000000..447b1998 --- /dev/null +++ b/docs/v2/modifiers/popper-offsets/index.html @@ -0,0 +1,45 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Popper Offsets

The popperOffsets modifier is at the core of Popper, it computes the offsets +needed to position the popper element near the reference element.

In other words, without this modifier you would have no reason to use Popper at +all 😄

This piece of logic is written as a modifier because it makes it possible to run +additional custom modifiers before it, for example, if you need to read from the +DOM and manipulate the measurements made by Popper at the beginning of the +lifecycle.

Additionally, you may want to replace this modifier with your own one, to +address very specific cases not covered by the default one.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Phase

read

Options

This modifier currently has no options.

Data

type Data = {
+  x: number,
+  y: number,
+};
Edit this page
Modifiers
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/modifiers/prevent-overflow/index.html b/docs/v2/modifiers/prevent-overflow/index.html new file mode 100644 index 00000000..4af79132 --- /dev/null +++ b/docs/v2/modifiers/prevent-overflow/index.html @@ -0,0 +1,160 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Prevent Overflow

The preventOverflow modifier prevents the popper from being cut off by moving +it so that it stays visible within its boundary area.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Demo

The tooltip is prevented from overflowing its clipping container, even though +that won't center it anymore.

Reference
Tooltip wider than its reference

Phase

main

Options

type Options = {
+  mainAxis: boolean, // true
+  altAxis: boolean, // false
+  padding: Padding, // 0
+  boundary: Boundary, // "clippingParents"
+  altBoundary: boolean, // false
+  rootBoundary: RootBoundary, // "viewport"
+  tether: boolean, // true
+  tetherOffset: TetherOffset, // 0
+};
+
+// Below are the described relative types
+type TetherOffset =
+  | (({
+      popper: Rect,
+      reference: Rect,
+      placement: Placement,
+    }) => number)
+  | number;

mainAxis

For top and bottom placements, this is the x-axis. For left and right +placements, it is the y-axis.

By default, only this axis checked, which means if a popper with bottom +placement is overflowing on the right of its boundary area, it will be moved to +the left so that it doesn't get cut off.

This behavior can be disabled by setting it to false.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        mainAxis: false, // true by default
+      },
+    },
+  ],
+});

altAxis

Optionally, the alternative axis check can be enabled. Keep in mind that this +may cause the popper to overlap its reference element. Generally, the flip +modifier is used to prevent this from happening.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        altAxis: true, // false by default
+      },
+    },
+  ],
+});

padding

See padding in Detect Overflow for +details.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        padding: 8,
+      },
+    },
+  ],
+});

boundary

See boundary in Detect Overflow for +details.

const element = document.querySelector('#parentElement');
+
+createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        boundary: element,
+      },
+    },
+  ],
+});

altBoundary

This will check the reference's boundary context +(clippingParents) instead of the +popper's, effectively replicating the +scrollParent boundary from +Popper v1. See +altBoundary in Detect Overflow for +details.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        altBoundary: true, // false by default
+      },
+    },
+  ],
+});

rootBoundary

See +rootBoundary in Detect Overflow +for details.

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        rootBoundary: 'document',
+      },
+    },
+  ],
+});

tether

While trying to keep the popper element within its overflow area is usually +desired, we likely don't want to reach the point where the reference and popper +elements are not touching (or "tethered") to each other at all, since that would +make it difficult for the user to understand where the popper originated from.

The default behavior is to avoid this situation by allowing the popper to +overflow once the opposite edges of the reference element and popper element are +aligned (i.e. right before they would appear to be detached).

This behavior can be disabled by setting it to false:

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        tether: false, // true by default
+      },
+    },
+  ],
+});

tetherOffset

When tether is enabled, you can customize its behavior by providing an offset +to be used during the tether calculations. Setting the offset to a positive +number will make the tether behavior activate earlier, while setting it negative +will do the opposite.

The tetherOffset option can also take a function, this will enable you to read +some useful data, such as the popper and reference measures, or the current +popper placement:

createPopper(reference, popper, {
+  modifiers: [
+    {
+      name: 'preventOverflow',
+      options: {
+        tetherOffset: ({ popper, reference, placement }) => popper.width / 2,
+      },
+    },
+  ],
+});

Data

// Describes how much the Popper has been moved from its desired position so
+// that it doesn't overflow
+type Data = {
+  x: number,
+  y: number,
+};
Edit this page
Offset
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/performance/index.html b/docs/v2/performance/index.html new file mode 100644 index 00000000..3a69c395 --- /dev/null +++ b/docs/v2/performance/index.html @@ -0,0 +1,76 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Performance

Tree-shaking

While Popper v2 saw a sizeable decrease in bundle size from v1 (-2 kB from ~7 kB +minzipped to ~5 kB minzipped), this is still not optimal.

Popper addresses a lot of use cases and complexity, but to help keep consumers' +bundle sizes small, we made the library tree-shakable. "Tree-shaking" is the +process of eliminating unused code from your bundles, which is achieved by +bundlers such as webpack, Rollup and Parcel.

If you're using the CDN, tree-shaking will not be available.

Popper Lite

The most straightforward way to enable tree-shaking is to use Popper Lite and +configure it with your needs.

Instead of:

// ❌ Imports all of Popper!
+import { createPopper } from '@popperjs/core';

Use:

// ✅
+import { createPopper } from '@popperjs/core/lib/popper-lite';

Popper Lite only comes with the following modifiers:

  • popperOffsets
  • computeStyles
  • applyStyles
  • eventListeners

This effectively achieves the bare minimum functionality, and is around 3 kB +minzipped. If 3 kB is still too much for your application, we recommend trying +out CSS tooltip alternatives which are as tiny as 1 kB. Please note that such +libraries have many disadvantages that Popper doesn't, so assess the trade-offs +where necessary.

Now, you'll need to add the modifiers you need. These are accessible under the +@popperjs/core/lib/modifiers/ directory.

Generally, we recommend flip and preventOverflow since these are the most +attractive reasons for using Popper in the first place:

import { createPopper } from '@popperjs/core/lib/popper-lite';
+import flip from '@popperjs/core/lib/modifiers/flip';
+import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';
+
+createPopper(reference, popper, {
+  modifiers: [flip, preventOverflow],
+});

Popper Generator

To pass these extra modifiers as default, you can use the popperGenerator +function:

import {
+  popperGenerator,
+  defaultModifiers,
+} from '@popperjs/core/lib/popper-lite';
+import flip from '@popperjs/core/lib/modifiers/flip';
+import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';
+
+const createPopper = popperGenerator({
+  defaultModifiers: [...defaultModifiers, flip, preventOverflow],
+});
+
+// Now you can use `createPopper`

Attaching elements to the DOM

The recommended way to use Popper is to attach popper elements next to their +reference elements.
+This ensures that accessibility best practices are followed, such as keyboard +navigation and screen reader support.

There are cases where you may want to attach popper elements to the top of the +DOM, such as <body />, this is of course supported as well, but some measures +should be taken to ensure that everything works in the best possible way.

To ensure the best possible performance, it's +recommended +to not attach elements directly to the <body /> element, but instead create a +<div /> element right within the <body /> and use it as container of your +poppers.

Edit this page
Virtual Elements
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/tutorial/index.html b/docs/v2/tutorial/index.html new file mode 100644 index 00000000..c069e394 --- /dev/null +++ b/docs/v2/tutorial/index.html @@ -0,0 +1,305 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Tutorial

In this tutorial you'll learn how to use Popper by building a basic tooltip.

Remember, Popper is not a tooltip library, it's the foundation to build one! +Follow the tutorial below to learn how to use Popper.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Setting up

Create a new HTML document with two elements, a <button> and a tooltip +<div>, and pass them to Popper:

<!DOCTYPE html>
+<html>
+  <head>
+    <title>Popper Tutorial</title>
+  </head>
+  <body>
+    <button id="button" aria-describedby="tooltip">My button</button>
+    <div id="tooltip" role="tooltip">My tooltip</div>
+
+    <script src="https://unpkg.com/@popperjs/core@2"></script>
+    <script>
+      const button = document.querySelector('#button');
+      const tooltip = document.querySelector('#tooltip');
+
+      const popperInstance = Popper.createPopper(button, tooltip);
+    </script>
+  </body>
+</html>

Styling

Let's give our tooltip some styling:

<!DOCTYPE html>
+<html>
+  <head>
+    <title>Popper Tutorial</title>
+    <style>
+      #tooltip {
+        background: #333;
+        color: white;
+        font-weight: bold;
+        padding: 4px 8px;
+        font-size: 13px;
+        border-radius: 4px;
+      }
+    </style>
+  </head>
+  <body>
+    <!-- ... -->
+  </body>
+</html>

Here's the result so far:

Arrow

Our tooltip is currently just a box. In many UI design systems, this is all +tooltips need, but others prefer to have an arrow that points toward the +reference element.

Add an arrow element with a data-popper-arrow attribute like so:

<div id="tooltip" role="tooltip">
+  My tooltip
+  <div id="arrow" data-popper-arrow></div>
+</div>

Now for styling:

#arrow,
+#arrow::before {
+  position: absolute;
+  width: 8px;
+  height: 8px;
+  background: inherit;
+}
+
+#arrow {
+  visibility: hidden;
+}
+
+#arrow::before {
+  visibility: visible;
+  content: '';
+  transform: rotate(45deg);
+}

The ::before pseudo-element is required because Popper uses transform to +position the arrow inside the popper, but we want to use our own transform to +rotate the arrow box into a diamond.

Now we need to offset the arrow depending on the popper's current placement. +Popper provides this information with the data-popper-placement attribute:

#tooltip[data-popper-placement^='top'] > #arrow {
+  bottom: -4px;
+}
+
+#tooltip[data-popper-placement^='bottom'] > #arrow {
+  top: -4px;
+}
+
+#tooltip[data-popper-placement^='left'] > #arrow {
+  right: -4px;
+}
+
+#tooltip[data-popper-placement^='right'] > #arrow {
+  left: -4px;
+}

Why the ^=? This means "starts with", because we can also have variation +placements like top-start.

Here's the result so far:

Offset

Our arrow currently overlaps the reference, we can give it a distance of 8px +using the offset modifier:

const popperInstance = Popper.createPopper(button, tooltip, {
+  modifiers: [
+    {
+      name: 'offset',
+      options: {
+        offset: [0, 8],
+      },
+    },
+  ],
+});

Here's the result so far:

Functionality

We only want our tooltip to show when hovering or focusing the button.

#tooltip {
+  /* ... */
+  display: none;
+}
+
+#tooltip[data-show] {
+  display: block;
+}
function show() {
+  tooltip.setAttribute('data-show', '');
+
+  // We need to tell Popper to update the tooltip position
+  // after we show the tooltip, otherwise it will be incorrect
+  popperInstance.update();
+}
+
+function hide() {
+  tooltip.removeAttribute('data-show');
+}
+
+const showEvents = ['mouseenter', 'focus'];
+const hideEvents = ['mouseleave', 'blur'];
+
+showEvents.forEach((event) => {
+  button.addEventListener(event, show);
+});
+
+hideEvents.forEach((event) => {
+  button.addEventListener(event, hide);
+});

Here's the final result:

Performance

Once we create a popper with createPopper, it stays "alive". This means while +scrolling the page, the popper is constantly being updated, even if it is not +visible. We can disable the event listeners when the tooltip is hidden to +optimize it:

function show() {
+  // Make the tooltip visible
+  tooltip.setAttribute('data-show', '');
+
+  // Enable the event listeners
+  popperInstance.setOptions((options) => ({
+    ...options,
+    modifiers: [
+      ...options.modifiers,
+      { name: 'eventListeners', enabled: true },
+    ],
+  }));
+
+  // Update its position
+  popperInstance.update();
+}
+
+function hide() {
+  // Hide the tooltip
+  tooltip.removeAttribute('data-show');
+
+  // Disable the event listeners
+  popperInstance.setOptions((options) => ({
+    ...options,
+    modifiers: [
+      ...options.modifiers,
+      { name: 'eventListeners', enabled: false },
+    ],
+  }));
+}

Full code

<!DOCTYPE html>
+<html>
+  <head>
+    <title>Popper Tutorial</title>
+    <style>
+      #tooltip {
+        background: #333;
+        color: white;
+        font-weight: bold;
+        padding: 4px 8px;
+        font-size: 13px;
+        border-radius: 4px;
+        display: none;
+      }
+
+      #tooltip[data-show] {
+        display: block;
+      }
+
+      #arrow,
+      #arrow::before {
+        position: absolute;
+        width: 8px;
+        height: 8px;
+        background: inherit;
+      }
+
+      #arrow {
+        visibility: hidden;
+      }
+
+      #arrow::before {
+        visibility: visible;
+        content: '';
+        transform: rotate(45deg);
+      }
+
+      #tooltip[data-popper-placement^='top'] > #arrow {
+        bottom: -4px;
+      }
+
+      #tooltip[data-popper-placement^='bottom'] > #arrow {
+        top: -4px;
+      }
+
+      #tooltip[data-popper-placement^='left'] > #arrow {
+        right: -4px;
+      }
+
+      #tooltip[data-popper-placement^='right'] > #arrow {
+        left: -4px;
+      }
+    </style>
+  </head>
+  <body>
+    <button id="button" aria-describedby="tooltip">My button</button>
+    <div id="tooltip" role="tooltip">
+      My tooltip
+      <div id="arrow" data-popper-arrow></div>
+    </div>
+
+    <script src="https://unpkg.com/@popperjs/core@2"></script>
+    <script>
+      const button = document.querySelector('#button');
+      const tooltip = document.querySelector('#tooltip');
+
+      const popperInstance = Popper.createPopper(button, tooltip, {
+        modifiers: [
+          {
+            name: 'offset',
+            options: {
+              offset: [0, 8],
+            },
+          },
+        ],
+      });
+
+      function show() {
+        // Make the tooltip visible
+        tooltip.setAttribute('data-show', '');
+
+        // Enable the event listeners
+        popperInstance.setOptions((options) => ({
+          ...options,
+          modifiers: [
+            ...options.modifiers,
+            { name: 'eventListeners', enabled: true },
+          ],
+        }));
+
+        // Update its position
+        popperInstance.update();
+      }
+
+      function hide() {
+        // Hide the tooltip
+        tooltip.removeAttribute('data-show');
+
+        // Disable the event listeners
+        popperInstance.setOptions((options) => ({
+          ...options,
+          modifiers: [
+            ...options.modifiers,
+            { name: 'eventListeners', enabled: false },
+          ],
+        }));
+      }
+
+      const showEvents = ['mouseenter', 'focus'];
+      const hideEvents = ['mouseleave', 'blur'];
+
+      showEvents.forEach((event) => {
+        button.addEventListener(event, show);
+      });
+
+      hideEvents.forEach((event) => {
+        button.addEventListener(event, hide);
+      });
+    </script>
+  </body>
+</html>

Finished

You've now created a basic tooltip using Popper! Of course, there is more you +can do, such as adding animations or interactivity. These are up to you to +explore when creating abstractions for common popper elements like tooltips, +popovers, drop-downs, and more.

Edit this page
v2.×
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/typings/index.html b/docs/v2/typings/index.html new file mode 100644 index 00000000..24015549 --- /dev/null +++ b/docs/v2/typings/index.html @@ -0,0 +1,68 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Typings

Popper comes with type definitions for both Flow and TypeScript.

The project is type checked by Flow, and type definitions for TypeScript are +automatically generated from its source code.

Note, type definitions don't strictly follow SemVer, since any type change can +be a breaking change, but type systems evolve very quickly and adjustments are +constantly required to keep up with them.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Common (Flow and TypeScript)

This section covers common knowledge applicable to both Flow and TypeScript, for +sake of simplicity the examples are written in Flow, but they should work as-is +after the // @flow header has been removed.

Modifiers Type Checking

createPopper, by default, works in a loose-type mode, that means the modifiers +are not strictly type-checked.

If you'd like to opt-in to the strict-mode, you can do the following:

// @flow
+import { createPopper } from '@popperjs/core';
+import type { StrictModifiers } from '@popperjs/core';
+
+createPopper<StrictModifiers>(referenceElement, popperElement, options);

If you'd like to define custom modifiers, you will need to add them to the list:

// @flow
+import { createPopper } from '@popperjs/core';
+import type { StrictModifiers, Modifier } from '@popperjs/core';
+
+type CustomModifier = Modifier<'custom', { customOption: boolean }>;
+type ExtendedModifiers = StrictModifiers | $Shape<CustomModifier>;
+
+createPopper<ExtendedModifiers>(referenceElement, popperElement, options);

Flow

Rather than exporting limited type definitions, we link to the Flow-typed source +files from the dist/umd folder.

Flow will automatically read the exposed types, so you don't need to change any +configuration in your project to take benefit from Popper typings.

You may also decide to import a specific module from the library, by doing so, +the module types will be automatically imported with it:

import hideModifier from '@popperjs/core/lib/modifiers/hide';

It's although reccomended to add the following lines to your .flowconfig file +in order to instruct Flow not to report type errors originating from your +node_modules folder. Type definitions exposed by the modules will still be +used, but their errors, if any, will be ignored.

[declarations]
+<PROJECT_ROOT>/node_modules

TypeScript

Generating TypeScript type definitions from Flow makes it possible to type check +the project with stricter rules, providing at the same time type definitions for +users of other type system.

Type definition interfaces for the two type systems are inherently identical, +but we can't guarantee the same level of type coverage for TypeScript +definitions, due to the intrinsic differences between Flow and TypeScript.

TypeScript .d.ts files are colocated in the lib/ folder, together with the +corresponding JavaScript modules, an index.d.ts file located on the root of +the repository allows the TypeScript compiler to locate them, no additional +configuration is needed to consume the typings.

You may also decide to import a specific module from the library, by doing so, +the module types will be automatically imported with it:

import hideModifier from '@popperjs/core/lib/modifiers/hide';
Edit this page
FAQ
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/utils/detect-overflow/index.html b/docs/v2/utils/detect-overflow/index.html new file mode 100644 index 00000000..067863b0 --- /dev/null +++ b/docs/v2/utils/detect-overflow/index.html @@ -0,0 +1,109 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Detect Overflow

The detectOverflow utility returns an object of overflow offsets of the popper +or reference element relative to a given boundary.

import { detectOverflow } from '@popperjs/core';
+
+const overflow = detectOverflow(state, options);

You can use this utility within your own custom modifiers.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

State

The first argument is the popper instance state that gets passed in to +modifiers.

Options

type Options = {
+  placement: Placement, // state.placement
+  elementContext: Context, // "popper"
+  boundary: Boundary, // "clippingParents"
+  rootBoundary: RootBoundary, // "viewport"
+  altBoundary: boolean, // false
+  padding: Padding, // 0
+};
+
+// Below are the relative types
+type Context = 'reference' | 'popper';
+type Boundary = 'clippingParents' | HTMLElement | Array<HTMLElement>;
+type RootBoundary = 'document' | 'viewport';
+type Padding =
+  | number
+  | {|
+      top?: number,
+      right?: number,
+      bottom?: number,
+      left?: number,
+    |};

placement

This will check the overflow when the popper is given this placement. By +default, it's state.placement.

elementContext

This describes the element that is being checked for overflow relative to the +boundary.

detectOverflow(state, {
+  elementContext: 'reference', // 'popper' by default
+});

boundary

This describes the area that the element will be checked for overflow relative +to.

By default, it is "clippingParents", which are the scrolling containers that +may cause the element to be partially or fully cut off.

const customBoundary = document.querySelector('#boundary');
+
+detectOverflow(state, {
+  boundary: customBoundary, // 'clippingParents' by default
+});

rootBoundary

This describes the root boundary that will be checked for overflow. There are +only two "roots" – the viewport and the document. "viewport" is default, which +is the area of the document the user can actually see on the screen. +"document" is the entire page which can be potentially scrolled.

detectOverflow(state, {
+  rootBoundary: 'document', // 'viewport' by default
+});

altBoundary

This describes whether to use the alt element's boundary. For example, if the +elementContext is "popper", then it will check the reference's boundary +context, and vice-versa.

detectOverflow(state, {
+  altBoundary: true, // false by default
+});

padding

Applies virtual padding to the boundary.

You can pass a number, which will be equal padding on all four sides, or an +object containing side properties each with their own padding value.

detectOverflow(state, {
+  // Same padding on all four sides
+  padding: 8,
+  // Different padding on certain sides – unspecified sides are 0
+  padding: { top: 8, right: 16 },
+});

Return value

// If the number is positive, the popper is overflowing by that number of pixels.
+// When 0, or negative, the popper is within its boundaries.
+type OverflowOffsets = {
+  top: number,
+  bottom: number,
+  right: number,
+  left: number,
+};

Example

For your custom modifiers, ensure you add "offset" to requiresIfExists, as +the util needs to have access to this information if offset exists in the +modifier lifecycle:

import { detectOverflow } from '@popperjs/core';
+
+const myModifier = {
+  name: 'myModifier',
+  enabled: true,
+  phase: 'main',
+  requiresIfExists: ['offset'],
+  fn({ state }) {
+    const overflow = detectOverflow(state);
+    // ...
+  },
+};

detectOverflow only considers the offset modifier by default and reports +values as though no other modifier is currently affecting it. This means if +preventOverflow is enabled, its values should be taken into account +(state.modifiersData.preventOverflow), along with any other potential modifier +that alters popperOffsets.

Edit this page
Utils
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/utils/index.html b/docs/v2/utils/index.html new file mode 100644 index 00000000..82b796e6 --- /dev/null +++ b/docs/v2/utils/index.html @@ -0,0 +1,38 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Utils

Utils are helper functions provided by the library.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

SemVer

While the library provides access to all utils, use these at your own risk. +Only the utils listed in the documentation menu will strictly follow SemVer. We +may break or remove undocumented utils between patch releases.

Edit this page
Community Modifiers
© 2023 MIT License
\ No newline at end of file diff --git a/docs/v2/virtual-elements/index.html b/docs/v2/virtual-elements/index.html new file mode 100644 index 00000000..d46ef14b --- /dev/null +++ b/docs/v2/virtual-elements/index.html @@ -0,0 +1,65 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo

Virtual Elements

You can use a virtual element instead of a real DOM element as the reference. +This allows you to position the popper relative to a virtual area defined by any +coordinates you desire.

A common use case for this is making the popper follow the mouse cursor, where +the cursor acts as a point reference.

A virtual element is a plain object:

type VirtualElement = {|
+  getBoundingClientRect: () => ClientRect | DOMRect,
+  contextElement?: Element,
+|};

contextElement is an optional property that describes the DOM context of the +virtual element. This is necessary if getBoundingClientRect is derived from a +real DOM element, and that element is within a different scrolling container +context to the popper element.

Demo

Tooltip

Usage

This will make the popper follow the mouse cursor as seen in the demo above:

function generateGetBoundingClientRect(x = 0, y = 0) {
+  return () => ({
+    width: 0,
+    height: 0,
+    top: y,
+    right: x,
+    bottom: y,
+    left: x,
+  });
+}
+
+const virtualElement = {
+  getBoundingClientRect: generateGetBoundingClientRect(),
+};
+
+const instance = createPopper(virtualElement, popper);
+
+document.addEventListener('mousemove', ({ clientX: x, clientY: y }) => {
+  virtualElement.getBoundingClientRect = generateGetBoundingClientRect(x, y);
+  instance.update();
+});
Edit this page
Detect Overflow
© 2023 MIT License
\ No newline at end of file diff --git a/favicon-32x32.png b/favicon-32x32.png new file mode 100644 index 00000000..8890b035 Binary files /dev/null and b/favicon-32x32.png differ diff --git a/framework-9953129fd5de5b320f61.js b/framework-9953129fd5de5b320f61.js new file mode 100644 index 00000000..ac3b9e22 --- /dev/null +++ b/framework-9953129fd5de5b320f61.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[40],{"16Al":function(n,e,t){"use strict";var r=t("WbBG");function _(){}function o(){}o.resetWarningCache=_,n.exports=function(){function n(n,e,t,_,o,u){if(u!==r){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function e(){return n}n.isRequired=n;var t={array:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:e,element:n,elementType:n,instanceOf:e,node:n,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:o,resetWarningCache:_};return t.PropTypes=t,t}},"17x9":function(n,e,t){n.exports=t("16Al")()},FdF9:function(n,e,t){"use strict";t.r(e),t.d(e,"useState",(function(){return K})),t.d(e,"useReducer",(function(){return Q})),t.d(e,"useEffect",(function(){return X})),t.d(e,"useLayoutEffect",(function(){return nn})),t.d(e,"useRef",(function(){return en})),t.d(e,"useImperativeHandle",(function(){return tn})),t.d(e,"useMemo",(function(){return rn})),t.d(e,"useCallback",(function(){return _n})),t.d(e,"useContext",(function(){return on})),t.d(e,"useDebugValue",(function(){return un})),t.d(e,"useErrorBoundary",(function(){return ln})),t.d(e,"createElement",(function(){return p})),t.d(e,"createContext",(function(){return M})),t.d(e,"createRef",(function(){return h})),t.d(e,"Fragment",(function(){return v})),t.d(e,"Component",(function(){return m})),t.d(e,"version",(function(){return ne})),t.d(e,"Children",(function(){return En})),t.d(e,"render",(function(){return Wn})),t.d(e,"hydrate",(function(){return Ln})),t.d(e,"unmountComponentAtNode",(function(){return _e})),t.d(e,"createPortal",(function(){return Rn})),t.d(e,"createFactory",(function(){return ee})),t.d(e,"cloneElement",(function(){return re})),t.d(e,"isValidElement",(function(){return te})),t.d(e,"findDOMNode",(function(){return oe})),t.d(e,"PureComponent",(function(){return mn})),t.d(e,"memo",(function(){return yn})),t.d(e,"forwardRef",(function(){return kn})),t.d(e,"unstable_batchedUpdates",(function(){return ue})),t.d(e,"StrictMode",(function(){return ie})),t.d(e,"Suspense",(function(){return Sn})),t.d(e,"SuspenseList",(function(){return Nn})),t.d(e,"lazy",(function(){return xn})),t.d(e,"__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED",(function(){return qn})),t.d(e,"unstable_ImmediatePriority",(function(){return Gn})),t.d(e,"unstable_UserBlockingPriority",(function(){return Yn})),t.d(e,"unstable_NormalPriority",(function(){return Jn})),t.d(e,"unstable_LowPriority",(function(){return Zn})),t.d(e,"unstable_IdlePriority",(function(){return Kn})),t.d(e,"unstable_runWithPriority",(function(){return Qn})),t.d(e,"unstable_now",(function(){return Xn}));var r,_,o,u,i,l={},c=[],f=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,e){for(var t in e)n[t]=e[t];return n}function s(n){var e=n.parentNode;e&&e.removeChild(n)}function p(n,e,t){var r,_,o,u=arguments,i={};for(o in e)"key"==o?r=e[o]:"ref"==o?_=e[o]:i[o]=e[o];if(arguments.length>3)for(t=[t],o=3;o0?d(m.type,m.props,m.key,null,m.__v):m)){if(m.__=t,m.__b=t.__b+1,null===(h=C[s])||h&&m.key==h.key&&m.type===h.type)C[s]=void 0;else for(p=0;p3)for(t=[t],o=3;o=t.__.length&&t.__.push({}),t.__[n]}function K(n){return $=1,Q(dn,n)}function Q(n,e,t){var r=Z(I++,2);return r.t=n,r.__c||(r.__=[t?t(e):dn(void 0,e),function(n){var e=r.t(r.__[0],n);r.__[0]!==e&&(r.__=[e,r.__[1]],r.__c.setState({}))}],r.__c=B),r.__}function X(n,e){var t=Z(I++,3);!r.__s&&pn(t.__H,e)&&(t.__=n,t.__H=e,B.__H.__h.push(t))}function nn(n,e){var t=Z(I++,4);!r.__s&&pn(t.__H,e)&&(t.__=n,t.__H=e,B.__h.push(t))}function en(n){return $=5,rn((function(){return{current:n}}),[])}function tn(n,e,t){$=6,nn((function(){"function"==typeof n?n(e()):n&&(n.current=e())}),null==t?t:t.concat(n))}function rn(n,e){var t=Z(I++,7);return pn(t.__H,e)&&(t.__=n(),t.__H=e,t.__h=n),t.__}function _n(n,e){return $=8,rn((function(){return n}),e)}function on(n){var e=B.context[n.__c],t=Z(I++,9);return t.__c=n,e?(null==t.__&&(t.__=!0,e.sub(B)),e.props.value):n.__}function un(n,e){r.useDebugValue&&r.useDebugValue(e?e(n):n)}function ln(n){var e=Z(I++,10),t=K();return e.__=n,B.componentDidCatch||(B.componentDidCatch=function(n){e.__&&e.__(n),t[1](n)}),[t[0],function(){t[1](void 0)}]}function cn(){j.forEach((function(n){if(n.__P)try{n.__H.__h.forEach(an),n.__H.__h.forEach(sn),n.__H.__h=[]}catch(e){n.__H.__h=[],r.__e(e,n.__v)}})),j=[]}r.__b=function(n){B=null,z&&z(n)},r.__r=function(n){q&&q(n),I=0;var e=(B=n.__c).__H;e&&(e.__h.forEach(an),e.__h.forEach(sn),e.__h=[])},r.diffed=function(n){G&&G(n);var e=n.__c;e&&e.__H&&e.__H.__h.length&&(1!==j.push(e)&&V===r.requestAnimationFrame||((V=r.requestAnimationFrame)||function(n){var e,t=function(){clearTimeout(r),fn&&cancelAnimationFrame(e),setTimeout(n)},r=setTimeout(t,100);fn&&(e=requestAnimationFrame(t))})(cn)),B=void 0},r.__c=function(n,e){e.some((function(n){try{n.__h.forEach(an),n.__h=n.__h.filter((function(n){return!n.__||sn(n)}))}catch(t){e.some((function(n){n.__h&&(n.__h=[])})),e=[],r.__e(t,n.__v)}})),Y&&Y(n,e)},r.unmount=function(n){J&&J(n);var e=n.__c;if(e&&e.__H)try{e.__H.__.forEach(an)}catch(n){r.__e(n,e.__v)}};var fn="function"==typeof requestAnimationFrame;function an(n){var e=B;"function"==typeof n.__c&&n.__c(),B=e}function sn(n){var e=B;n.__c=n.__(),B=e}function pn(n,e){return!n||n.length!==e.length||e.some((function(e,t){return e!==n[t]}))}function dn(n,e){return"function"==typeof e?e(n):e}function hn(n,e){for(var t in e)n[t]=e[t];return n}function vn(n,e){for(var t in n)if("__source"!==t&&!(t in e))return!0;for(var r in e)if("__source"!==r&&n[r]!==e[r])return!0;return!1}function mn(n){this.props=n}function yn(n,e){function t(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:vn(this.props,n)}function r(e){return this.shouldComponentUpdate=t,p(n,e)}return r.displayName="Memo("+(n.displayName||n.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r}(mn.prototype=new m).isPureReactComponent=!0,mn.prototype.shouldComponentUpdate=function(n,e){return vn(this.props,n)||vn(this.state,e)};var bn=r.__b;r.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),bn&&bn(n)};var gn="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function kn(n){function e(e,t){var r=hn({},e);return delete r.ref,n(r,(t=e.ref||t)&&("object"!=typeof t||"current"in t)?t:null)}return e.$$typeof=gn,e.render=e,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(n.displayName||n.name)+")",e}var Cn=function(n,e){return null==n?null:P(P(n).map(e))},En={map:Cn,forEach:Cn,count:function(n){return n?P(n).length:0},only:function(n){var e=P(n);if(1!==e.length)throw"Children.only";return e[0]},toArray:P},Pn=r.__e;function Sn(){this.__u=0,this.t=null,this.__b=null}function wn(n){var e=n.__.__c;return e&&e.__e&&e.__e(n)}function xn(n){var e,t,r;function _(_){if(e||(e=n()).then((function(n){t=n.default||n}),(function(n){r=n})),r)throw r;if(!t)throw e;return p(t,_)}return _.displayName="Lazy",_.__f=!0,_}function Nn(){this.u=null,this.o=null}r.__e=function(n,e,t){if(n.then)for(var r,_=e;_=_.__;)if((r=_.__c)&&r.__c)return null==e.__e&&(e.__e=t.__e,e.__k=t.__k),r.__c(n,e);Pn(n,e,t)},(Sn.prototype=new m).__c=function(n,e){var t=e.__c,r=this;null==r.t&&(r.t=[]),r.t.push(t);var _=wn(r.__v),o=!1,u=function(){o||(o=!0,t.componentWillUnmount=t.__c,_?_(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){u(),t.__c&&t.__c()};var i=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(e,t,r){return e&&(e.__v=null,e.__k=e.__k&&e.__k.map((function(e){return n(e,t,r)})),e.__c&&e.__c.__P===t&&(e.__e&&r.insertBefore(e.__e,e.__d),e.__c.__e=!0,e.__c.__P=r)),e}(n,n.__c.__P,n.__c.__O)}var e;for(r.setState({__e:r.__b=null});e=r.t.pop();)e.forceUpdate()}},l=!0===e.__h;r.__u++||l||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(u,u)},Sn.prototype.componentWillUnmount=function(){this.t=[]},Sn.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var t=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(e,t,r){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach((function(n){"function"==typeof n.__c&&n.__c()})),e.__c.__H=null),null!=(e=hn({},e)).__c&&(e.__c.__P===r&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map((function(e){return n(e,t,r)}))),e}(this.__b,t,r.__O=r.__P)}this.__b=null}var _=e.__e&&p(v,null,n.fallback);return _&&(_.__h=null),[p(v,null,e.__e?null:n.children),_]};var Un=function(n,e,t){if(++t[1]===t[0]&&n.o.delete(e),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(t=n.u;t;){for(;t.length>3;)t.pop()();if(t[1]>>1,1),e.i.removeChild(n)}}),W(p(On,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function Rn(n,e){return p(Tn,{__v:n,i:e})}(Nn.prototype=new m).__e=function(n){var e=this,t=wn(e.__v),r=e.o.get(n);return r[0]++,function(_){var o=function(){e.props.revealOrder?(r.push(_),Un(e,n,r)):_()};t?t(o):o()}},Nn.prototype.render=function(n){this.u=null,this.o=new Map;var e=P(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&e.reverse();for(var t=e.length;t--;)this.o.set(e[t],this.u=[1,0,this.u]);return n.children},Nn.prototype.componentDidUpdate=Nn.prototype.componentDidMount=function(){var n=this;this.o.forEach((function(e,t){Un(n,t,e)}))};var Dn="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,Hn=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,An=function(n){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Wn(n,e,t){return null==e.__k&&(e.textContent=""),W(n,e),"function"==typeof t&&t(),n?n.__c:null}function Ln(n,e,t){return L(n,e),"function"==typeof t&&t(),n?n.__c:null}m.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(n){Object.defineProperty(m.prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(e){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:e})}})}));var Fn=r.event;function Mn(){}function In(){return this.cancelBubble}function Bn(){return this.defaultPrevented}r.event=function(n){return Fn&&(n=Fn(n)),n.persist=Mn,n.isPropagationStopped=In,n.isDefaultPrevented=Bn,n.nativeEvent=n};var Vn,$n={configurable:!0,get:function(){return this.class}},jn=r.vnode;r.vnode=function(n){var e=n.type,t=n.props,r=t;if("string"==typeof e){for(var _ in r={},t){var o=t[_];"value"===_&&"defaultValue"in t&&null==o||("defaultValue"===_&&"value"in t&&null==t.value?_="value":"download"===_&&!0===o?o="":/ondoubleclick/i.test(_)?_="ondblclick":/^onchange(textarea|input)/i.test(_+e)&&!An(t.type)?_="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(_)?_=_.toLowerCase():Hn.test(_)?_=_.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),r[_]=o)}"select"==e&&r.multiple&&Array.isArray(r.value)&&(r.value=P(t.children).forEach((function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)}))),"select"==e&&null!=r.defaultValue&&(r.value=P(t.children).forEach((function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value}))),n.props=r}e&&t.class!=t.className&&($n.enumerable="className"in t,null!=t.className&&(r.class=t.className),Object.defineProperty(r,"className",$n)),n.$$typeof=Dn,jn&&jn(n)};var zn=r.__r;r.__r=function(n){zn&&zn(n),Vn=n.__c};var qn={ReactCurrentDispatcher:{current:{readContext:function(n){return Vn.__n[n.__c].props.value}}}},Gn=1,Yn=2,Jn=3,Zn=4,Kn=5;function Qn(n,e){return e()}var Xn="object"==typeof performance&&"function"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ne="16.8.0";function ee(n){return p.bind(null,n)}function te(n){return!!n&&n.$$typeof===Dn}function re(n){return te(n)?F.apply(null,arguments):n}function _e(n){return!!n.__k&&(W(null,n),!0)}function oe(n){return n&&(n.base||1===n.nodeType&&n)||null}var ue=function(n,e){return n(e)},ie=v;e.default={useState:K,useReducer:Q,useEffect:X,useLayoutEffect:nn,useRef:en,useImperativeHandle:tn,useMemo:rn,useCallback:_n,useContext:on,useDebugValue:un,version:"16.8.0",Children:En,render:Wn,hydrate:Ln,unmountComponentAtNode:_e,createPortal:Rn,createElement:p,createContext:M,createFactory:ee,cloneElement:re,createRef:h,Fragment:v,isValidElement:te,findDOMNode:oe,Component:m,PureComponent:mn,memo:yn,forwardRef:kn,unstable_batchedUpdates:ue,StrictMode:v,Suspense:Sn,SuspenseList:Nn,lazy:xn,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:qn}},WbBG:function(n,e,t){"use strict";n.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}}]); +//# sourceMappingURL=framework-9953129fd5de5b320f61.js.map \ No newline at end of file diff --git a/framework-9953129fd5de5b320f61.js.map b/framework-9953129fd5de5b320f61.js.map new file mode 100644 index 00000000..5b706945 --- /dev/null +++ b/framework-9953129fd5de5b320f61.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/preact/dist/preact.module.js","webpack:///./node_modules/preact/hooks/dist/hooks.module.js","webpack:///./node_modules/preact/compat/dist/compat.module.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js"],"names":["ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","exports","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","f","c","n","l","u","s","parentNode","removeChild","a","i","t","r","o","arguments","length","push","children","defaultProps","v","type","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","h","current","y","p","this","context","d","indexOf","_","base","k","m","__r","debounceRendering","sort","some","__P","T","__n","ownerSVGElement","j","b","e","w","A","P","Array","isArray","g","x","value","L","I","appendChild","nextSibling","insertBefore","setProperty","test","C","style","cssText","replace","toLowerCase","slice","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","event","contextType","__E","prototype","render","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","z","diffed","call","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","firstChild","checked","unmount","componentWillUnmount","O","S","q","Consumer","Provider","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","bind","resolve","setTimeout","__H","concat","F","useDebugValue","forEach","requestAnimationFrame","clearTimeout","cancelAnimationFrame","filter","E","displayName","isReactComponent","__f","isPureReactComponent","R","Symbol","for","$$typeof","map","count","only","toArray","__u","U","default","D","__O","pop","fallback","delete","revealOrder","size","get","Map","reverse","set","W","V","textContent","Object","defineProperty","configurable","writable","B","Z","cancelBubble","Y","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","class","G","multiple","selected","defaultValue","className","enumerable","J","K","ReactCurrentDispatcher","readContext","Q","X","nn","tn","en","rn","un","performance","now","Date","on","ln","fn","cn","apply","an","sn","hn","pn","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","version","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cloneElement","createRef","Fragment","isValidElement","findDOMNode","Component","PureComponent","memo","forwardRef","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED"],"mappings":"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","file":"framework-9953129fd5de5b320f61.js","sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","var n,\n l,\n u,\n i,\n t,\n r,\n o = {},\n f = [],\n e = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n\nfunction c(n, l) {\n for (var u in l) {\n n[u] = l[u];\n }\n\n return n;\n}\n\nfunction s(n) {\n var l = n.parentNode;\n l && l.removeChild(n);\n}\n\nfunction a(n, l, u) {\n var i,\n t,\n r,\n o = arguments,\n f = {};\n\n for (r in l) {\n \"key\" == r ? i = l[r] : \"ref\" == r ? t = l[r] : f[r] = l[r];\n }\n\n if (arguments.length > 3) for (u = [u], r = 3; r < arguments.length; r++) {\n u.push(o[r]);\n }\n if (null != u && (f.children = u), \"function\" == typeof n && null != n.defaultProps) for (r in n.defaultProps) {\n void 0 === f[r] && (f[r] = n.defaultProps[r]);\n }\n return v(n, f, i, t, null);\n}\n\nfunction v(l, u, i, t, r) {\n var o = {\n type: l,\n props: u,\n key: i,\n ref: t,\n __k: null,\n __: null,\n __b: 0,\n __e: null,\n __d: void 0,\n __c: null,\n __h: null,\n constructor: void 0,\n __v: null == r ? ++n.__v : r\n };\n return null != n.vnode && n.vnode(o), o;\n}\n\nfunction h() {\n return {\n current: null\n };\n}\n\nfunction y(n) {\n return n.children;\n}\n\nfunction p(n, l) {\n this.props = n, this.context = l;\n}\n\nfunction d(n, l) {\n if (null == l) return n.__ ? d(n.__, n.__.__k.indexOf(n) + 1) : null;\n\n for (var u; l < n.__k.length; l++) {\n if (null != (u = n.__k[l]) && null != u.__e) return u.__e;\n }\n\n return \"function\" == typeof n.type ? d(n) : null;\n}\n\nfunction _(n) {\n var l, u;\n\n if (null != (n = n.__) && null != n.__c) {\n for (n.__e = n.__c.base = null, l = 0; l < n.__k.length; l++) {\n if (null != (u = n.__k[l]) && null != u.__e) {\n n.__e = n.__c.base = u.__e;\n break;\n }\n }\n\n return _(n);\n }\n}\n\nfunction k(l) {\n (!l.__d && (l.__d = !0) && u.push(l) && !m.__r++ || t !== n.debounceRendering) && ((t = n.debounceRendering) || i)(m);\n}\n\nfunction m() {\n for (var n; m.__r = u.length;) {\n n = u.sort(function (n, l) {\n return n.__v.__b - l.__v.__b;\n }), u = [], n.some(function (n) {\n var l, u, i, t, r, o;\n n.__d && (r = (t = (l = n).__v).__e, (o = l.__P) && (u = [], (i = c({}, t)).__v = t.__v + 1, T(o, t, i, l.__n, void 0 !== o.ownerSVGElement, null != t.__h ? [r] : null, u, null == r ? d(t) : r, t.__h), j(u, t), t.__e != r && _(t)));\n });\n }\n}\n\nfunction b(n, l, u, i, t, r, e, c, s, a) {\n var h,\n p,\n _,\n k,\n m,\n b,\n w,\n A = i && i.__k || f,\n P = A.length;\n\n for (u.__k = [], h = 0; h < l.length; h++) {\n if (null != (k = u.__k[h] = null == (k = l[h]) || \"boolean\" == typeof k ? null : \"string\" == typeof k || \"number\" == typeof k ? v(null, k, null, null, k) : Array.isArray(k) ? v(y, {\n children: k\n }, null, null, null) : k.__b > 0 ? v(k.type, k.props, k.key, null, k.__v) : k)) {\n if (k.__ = u, k.__b = u.__b + 1, null === (_ = A[h]) || _ && k.key == _.key && k.type === _.type) A[h] = void 0;else for (p = 0; p < P; p++) {\n if ((_ = A[p]) && k.key == _.key && k.type === _.type) {\n A[p] = void 0;\n break;\n }\n\n _ = null;\n }\n T(n, k, _ = _ || o, t, r, e, c, s, a), m = k.__e, (p = k.ref) && _.ref != p && (w || (w = []), _.ref && w.push(_.ref, null, k), w.push(p, k.__c || m, k)), null != m ? (null == b && (b = m), \"function\" == typeof k.type && null != k.__k && k.__k === _.__k ? k.__d = s = g(k, s, n) : s = x(n, k, _, A, m, s), a || \"option\" !== u.type ? \"function\" == typeof u.type && (u.__d = s) : n.value = \"\") : s && _.__e == s && s.parentNode != n && (s = d(_));\n }\n }\n\n for (u.__e = b, h = P; h--;) {\n null != A[h] && (\"function\" == typeof u.type && null != A[h].__e && A[h].__e == u.__d && (u.__d = d(i, h + 1)), L(A[h], A[h]));\n }\n\n if (w) for (h = 0; h < w.length; h++) {\n I(w[h], w[++h], w[++h]);\n }\n}\n\nfunction g(n, l, u) {\n var i, t;\n\n for (i = 0; i < n.__k.length; i++) {\n (t = n.__k[i]) && (t.__ = n, l = \"function\" == typeof t.type ? g(t, l, u) : x(u, t, t, n.__k, t.__e, l));\n }\n\n return l;\n}\n\nfunction w(n, l) {\n return l = l || [], null == n || \"boolean\" == typeof n || (Array.isArray(n) ? n.some(function (n) {\n w(n, l);\n }) : l.push(n)), l;\n}\n\nfunction x(n, l, u, i, t, r) {\n var o, f, e;\n if (void 0 !== l.__d) o = l.__d, l.__d = void 0;else if (null == u || t != r || null == t.parentNode) n: if (null == r || r.parentNode !== n) n.appendChild(t), o = null;else {\n for (f = r, e = 0; (f = f.nextSibling) && e < i.length; e += 2) {\n if (f == t) break n;\n }\n\n n.insertBefore(t, r), o = r;\n }\n return void 0 !== o ? o : t.nextSibling;\n}\n\nfunction A(n, l, u, i, t) {\n var r;\n\n for (r in u) {\n \"children\" === r || \"key\" === r || r in l || C(n, r, null, u[r], i);\n }\n\n for (r in l) {\n t && \"function\" != typeof l[r] || \"children\" === r || \"key\" === r || \"value\" === r || \"checked\" === r || u[r] === l[r] || C(n, r, l[r], u[r], i);\n }\n}\n\nfunction P(n, l, u) {\n \"-\" === l[0] ? n.setProperty(l, u) : n[l] = null == u ? \"\" : \"number\" != typeof u || e.test(l) ? u : u + \"px\";\n}\n\nfunction C(n, l, u, i, t) {\n var r;\n\n n: if (\"style\" === l) {\n if (\"string\" == typeof u) n.style.cssText = u;else {\n if (\"string\" == typeof i && (n.style.cssText = i = \"\"), i) for (l in i) {\n u && l in u || P(n.style, l, \"\");\n }\n if (u) for (l in u) {\n i && u[l] === i[l] || P(n.style, l, u[l]);\n }\n }\n } else if (\"o\" === l[0] && \"n\" === l[1]) r = l !== (l = l.replace(/Capture$/, \"\")), l = l.toLowerCase() in n ? l.toLowerCase().slice(2) : l.slice(2), n.l || (n.l = {}), n.l[l + r] = u, u ? i || n.addEventListener(l, r ? H : $, r) : n.removeEventListener(l, r ? H : $, r);else if (\"dangerouslySetInnerHTML\" !== l) {\n if (t) l = l.replace(/xlink[H:h]/, \"h\").replace(/sName$/, \"s\");else if (\"href\" !== l && \"list\" !== l && \"form\" !== l && \"download\" !== l && l in n) try {\n n[l] = null == u ? \"\" : u;\n break n;\n } catch (n) {}\n \"function\" == typeof u || (null != u && (!1 !== u || \"a\" === l[0] && \"r\" === l[1]) ? n.setAttribute(l, u) : n.removeAttribute(l));\n }\n}\n\nfunction $(l) {\n this.l[l.type + !1](n.event ? n.event(l) : l);\n}\n\nfunction H(l) {\n this.l[l.type + !0](n.event ? n.event(l) : l);\n}\n\nfunction T(l, u, i, t, r, o, f, e, s) {\n var a,\n v,\n h,\n d,\n _,\n k,\n m,\n g,\n w,\n x,\n A,\n P = u.type;\n\n if (void 0 !== u.constructor) return null;\n null != i.__h && (s = i.__h, e = u.__e = i.__e, u.__h = null, o = [e]), (a = n.__b) && a(u);\n\n try {\n n: if (\"function\" == typeof P) {\n if (g = u.props, w = (a = P.contextType) && t[a.__c], x = a ? w ? w.props.value : a.__ : t, i.__c ? m = (v = u.__c = i.__c).__ = v.__E : (\"prototype\" in P && P.prototype.render ? u.__c = v = new P(g, x) : (u.__c = v = new p(g, x), v.constructor = P, v.render = M), w && w.sub(v), v.props = g, v.state || (v.state = {}), v.context = x, v.__n = t, h = v.__d = !0, v.__h = []), null == v.__s && (v.__s = v.state), null != P.getDerivedStateFromProps && (v.__s == v.state && (v.__s = c({}, v.__s)), c(v.__s, P.getDerivedStateFromProps(g, v.__s))), d = v.props, _ = v.state, h) null == P.getDerivedStateFromProps && null != v.componentWillMount && v.componentWillMount(), null != v.componentDidMount && v.__h.push(v.componentDidMount);else {\n if (null == P.getDerivedStateFromProps && g !== d && null != v.componentWillReceiveProps && v.componentWillReceiveProps(g, x), !v.__e && null != v.shouldComponentUpdate && !1 === v.shouldComponentUpdate(g, v.__s, x) || u.__v === i.__v) {\n v.props = g, v.state = v.__s, u.__v !== i.__v && (v.__d = !1), v.__v = u, u.__e = i.__e, u.__k = i.__k, v.__h.length && f.push(v);\n break n;\n }\n\n null != v.componentWillUpdate && v.componentWillUpdate(g, v.__s, x), null != v.componentDidUpdate && v.__h.push(function () {\n v.componentDidUpdate(d, _, k);\n });\n }\n v.context = x, v.props = g, v.state = v.__s, (a = n.__r) && a(u), v.__d = !1, v.__v = u, v.__P = l, a = v.render(v.props, v.state, v.context), v.state = v.__s, null != v.getChildContext && (t = c(c({}, t), v.getChildContext())), h || null == v.getSnapshotBeforeUpdate || (k = v.getSnapshotBeforeUpdate(d, _)), A = null != a && a.type === y && null == a.key ? a.props.children : a, b(l, Array.isArray(A) ? A : [A], u, i, t, r, o, f, e, s), v.base = u.__e, u.__h = null, v.__h.length && f.push(v), m && (v.__E = v.__ = null), v.__e = !1;\n } else null == o && u.__v === i.__v ? (u.__k = i.__k, u.__e = i.__e) : u.__e = z(i.__e, u, i, t, r, o, f, s);\n\n (a = n.diffed) && a(u);\n } catch (l) {\n u.__v = null, (s || null != o) && (u.__e = e, u.__h = !!s, o[o.indexOf(e)] = null), n.__e(l, u, i);\n }\n}\n\nfunction j(l, u) {\n n.__c && n.__c(u, l), l.some(function (u) {\n try {\n l = u.__h, u.__h = [], l.some(function (n) {\n n.call(u);\n });\n } catch (l) {\n n.__e(l, u.__v);\n }\n });\n}\n\nfunction z(n, l, u, i, t, r, e, c) {\n var a,\n v,\n h,\n y,\n p = u.props,\n d = l.props,\n _ = l.type,\n k = 0;\n if (\"svg\" === _ && (t = !0), null != r) for (; k < r.length; k++) {\n if ((a = r[k]) && (a === n || (_ ? a.localName == _ : 3 == a.nodeType))) {\n n = a, r[k] = null;\n break;\n }\n }\n\n if (null == n) {\n if (null === _) return document.createTextNode(d);\n n = t ? document.createElementNS(\"http://www.w3.org/2000/svg\", _) : document.createElement(_, d.is && d), r = null, c = !1;\n }\n\n if (null === _) p === d || c && n.data === d || (n.data = d);else {\n if (r = r && f.slice.call(n.childNodes), v = (p = u.props || o).dangerouslySetInnerHTML, h = d.dangerouslySetInnerHTML, !c) {\n if (null != r) for (p = {}, y = 0; y < n.attributes.length; y++) {\n p[n.attributes[y].name] = n.attributes[y].value;\n }\n (h || v) && (h && (v && h.__html == v.__html || h.__html === n.innerHTML) || (n.innerHTML = h && h.__html || \"\"));\n }\n\n if (A(n, d, p, t, c), h) l.__k = [];else if (k = l.props.children, b(n, Array.isArray(k) ? k : [k], l, u, i, t && \"foreignObject\" !== _, r, e, n.firstChild, c), null != r) for (k = r.length; k--;) {\n null != r[k] && s(r[k]);\n }\n c || (\"value\" in d && void 0 !== (k = d.value) && (k !== n.value || \"progress\" === _ && !k) && C(n, \"value\", k, p.value, !1), \"checked\" in d && void 0 !== (k = d.checked) && k !== n.checked && C(n, \"checked\", k, p.checked, !1));\n }\n return n;\n}\n\nfunction I(l, u, i) {\n try {\n \"function\" == typeof l ? l(u) : l.current = u;\n } catch (l) {\n n.__e(l, i);\n }\n}\n\nfunction L(l, u, i) {\n var t, r, o;\n\n if (n.unmount && n.unmount(l), (t = l.ref) && (t.current && t.current !== l.__e || I(t, null, u)), i || \"function\" == typeof l.type || (i = null != (r = l.__e)), l.__e = l.__d = void 0, null != (t = l.__c)) {\n if (t.componentWillUnmount) try {\n t.componentWillUnmount();\n } catch (l) {\n n.__e(l, u);\n }\n t.base = t.__P = null;\n }\n\n if (t = l.__k) for (o = 0; o < t.length; o++) {\n t[o] && L(t[o], u, i);\n }\n null != r && s(r);\n}\n\nfunction M(n, l, u) {\n return this.constructor(n, u);\n}\n\nfunction N(l, u, i) {\n var t, r, e;\n n.__ && n.__(l, u), r = (t = \"function\" == typeof i) ? null : i && i.__k || u.__k, e = [], T(u, l = (!t && i || u).__k = a(y, null, [l]), r || o, o, void 0 !== u.ownerSVGElement, !t && i ? [i] : r ? null : u.firstChild ? f.slice.call(u.childNodes) : null, e, !t && i ? i : r ? r.__e : u.firstChild, t), j(e, l);\n}\n\nfunction O(n, l) {\n N(n, l, O);\n}\n\nfunction S(n, l, u) {\n var i,\n t,\n r,\n o = arguments,\n f = c({}, n.props);\n\n for (r in l) {\n \"key\" == r ? i = l[r] : \"ref\" == r ? t = l[r] : f[r] = l[r];\n }\n\n if (arguments.length > 3) for (u = [u], r = 3; r < arguments.length; r++) {\n u.push(o[r]);\n }\n return null != u && (f.children = u), v(n.type, f, i || n.key, t || n.ref, null);\n}\n\nfunction q(n, l) {\n var u = {\n __c: l = \"__cC\" + r++,\n __: n,\n Consumer: function Consumer(n, l) {\n return n.children(l);\n },\n Provider: function Provider(n) {\n var u, i;\n return this.getChildContext || (u = [], (i = {})[l] = this, this.getChildContext = function () {\n return i;\n }, this.shouldComponentUpdate = function (n) {\n this.props.value !== n.value && u.some(k);\n }, this.sub = function (n) {\n u.push(n);\n var l = n.componentWillUnmount;\n\n n.componentWillUnmount = function () {\n u.splice(u.indexOf(n), 1), l && l.call(n);\n };\n }), n.children;\n }\n };\n return u.Provider.__ = u.Consumer.contextType = u;\n}\n\nn = {\n __e: function __e(n, l) {\n for (var u, i, t; l = l.__;) {\n if ((u = l.__c) && !u.__) try {\n if ((i = u.constructor) && null != i.getDerivedStateFromError && (u.setState(i.getDerivedStateFromError(n)), t = u.__d), null != u.componentDidCatch && (u.componentDidCatch(n), t = u.__d), t) return u.__E = u;\n } catch (l) {\n n = l;\n }\n }\n\n throw n;\n },\n __v: 0\n}, l = function l(n) {\n return null != n && void 0 === n.constructor;\n}, p.prototype.setState = function (n, l) {\n var u;\n u = null != this.__s && this.__s !== this.state ? this.__s : this.__s = c({}, this.state), \"function\" == typeof n && (n = n(c({}, u), this.props)), n && c(u, n), null != n && this.__v && (l && this.__h.push(l), k(this));\n}, p.prototype.forceUpdate = function (n) {\n this.__v && (this.__e = !0, n && this.__h.push(n), k(this));\n}, p.prototype.render = y, u = [], i = \"function\" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, m.__r = 0, r = 0;\nexport { N as render, O as hydrate, a as createElement, a as h, y as Fragment, h as createRef, l as isValidElement, p as Component, S as cloneElement, q as createContext, w as toChildArray, n as options };","import { options as n } from \"preact\";\nvar t,\n u,\n r,\n o = 0,\n i = [],\n c = n.__b,\n f = n.__r,\n e = n.diffed,\n a = n.__c,\n v = n.unmount;\n\nfunction m(t, r) {\n n.__h && n.__h(u, t, o || r), o = 0;\n var i = u.__H || (u.__H = {\n __: [],\n __h: []\n });\n return t >= i.__.length && i.__.push({}), i.__[t];\n}\n\nfunction l(n) {\n return o = 1, p(w, n);\n}\n\nfunction p(n, r, o) {\n var i = m(t++, 2);\n return i.t = n, i.__c || (i.__ = [o ? o(r) : w(void 0, r), function (n) {\n var t = i.t(i.__[0], n);\n i.__[0] !== t && (i.__ = [t, i.__[1]], i.__c.setState({}));\n }], i.__c = u), i.__;\n}\n\nfunction y(r, o) {\n var i = m(t++, 3);\n !n.__s && k(i.__H, o) && (i.__ = r, i.__H = o, u.__H.__h.push(i));\n}\n\nfunction h(r, o) {\n var i = m(t++, 4);\n !n.__s && k(i.__H, o) && (i.__ = r, i.__H = o, u.__h.push(i));\n}\n\nfunction s(n) {\n return o = 5, d(function () {\n return {\n current: n\n };\n }, []);\n}\n\nfunction _(n, t, u) {\n o = 6, h(function () {\n \"function\" == typeof n ? n(t()) : n && (n.current = t());\n }, null == u ? u : u.concat(n));\n}\n\nfunction d(n, u) {\n var r = m(t++, 7);\n return k(r.__H, u) && (r.__ = n(), r.__H = u, r.__h = n), r.__;\n}\n\nfunction A(n, t) {\n return o = 8, d(function () {\n return n;\n }, t);\n}\n\nfunction F(n) {\n var r = u.context[n.__c],\n o = m(t++, 9);\n return o.__c = n, r ? (null == o.__ && (o.__ = !0, r.sub(u)), r.props.value) : n.__;\n}\n\nfunction T(t, u) {\n n.useDebugValue && n.useDebugValue(u ? u(t) : t);\n}\n\nfunction q(n) {\n var r = m(t++, 10),\n o = l();\n return r.__ = n, u.componentDidCatch || (u.componentDidCatch = function (n) {\n r.__ && r.__(n), o[1](n);\n }), [o[0], function () {\n o[1](void 0);\n }];\n}\n\nfunction x() {\n i.forEach(function (t) {\n if (t.__P) try {\n t.__H.__h.forEach(g), t.__H.__h.forEach(j), t.__H.__h = [];\n } catch (u) {\n t.__H.__h = [], n.__e(u, t.__v);\n }\n }), i = [];\n}\n\nn.__b = function (n) {\n u = null, c && c(n);\n}, n.__r = function (n) {\n f && f(n), t = 0;\n var r = (u = n.__c).__H;\n r && (r.__h.forEach(g), r.__h.forEach(j), r.__h = []);\n}, n.diffed = function (t) {\n e && e(t);\n var o = t.__c;\n o && o.__H && o.__H.__h.length && (1 !== i.push(o) && r === n.requestAnimationFrame || ((r = n.requestAnimationFrame) || function (n) {\n var t,\n u = function u() {\n clearTimeout(r), b && cancelAnimationFrame(t), setTimeout(n);\n },\n r = setTimeout(u, 100);\n\n b && (t = requestAnimationFrame(u));\n })(x)), u = void 0;\n}, n.__c = function (t, u) {\n u.some(function (t) {\n try {\n t.__h.forEach(g), t.__h = t.__h.filter(function (n) {\n return !n.__ || j(n);\n });\n } catch (r) {\n u.some(function (n) {\n n.__h && (n.__h = []);\n }), u = [], n.__e(r, t.__v);\n }\n }), a && a(t, u);\n}, n.unmount = function (t) {\n v && v(t);\n var u = t.__c;\n if (u && u.__H) try {\n u.__H.__.forEach(g);\n } catch (t) {\n n.__e(t, u.__v);\n }\n};\nvar b = \"function\" == typeof requestAnimationFrame;\n\nfunction g(n) {\n var t = u;\n \"function\" == typeof n.__c && n.__c(), u = t;\n}\n\nfunction j(n) {\n var t = u;\n n.__c = n.__(), u = t;\n}\n\nfunction k(n, t) {\n return !n || n.length !== t.length || t.some(function (t, u) {\n return t !== n[u];\n });\n}\n\nfunction w(n, t) {\n return \"function\" == typeof t ? t(n) : t;\n}\n\nexport { l as useState, p as useReducer, y as useEffect, h as useLayoutEffect, s as useRef, _ as useImperativeHandle, d as useMemo, A as useCallback, F as useContext, T as useDebugValue, q as useErrorBoundary };","import { useState as n, useReducer as t, useEffect as e, useLayoutEffect as r, useRef as u, useImperativeHandle as o, useMemo as i, useCallback as l, useContext as f, useDebugValue as c } from \"preact/hooks\";\nexport * from \"preact/hooks\";\nimport { Component as a, createElement as s, options as h, toChildArray as p, Fragment as v, render as d, hydrate as m, cloneElement as y, createRef as b, createContext as _ } from \"preact\";\nexport { createElement, createContext, createRef, Fragment, Component } from \"preact\";\n\nfunction C(n, t) {\n for (var e in t) {\n n[e] = t[e];\n }\n\n return n;\n}\n\nfunction S(n, t) {\n for (var e in n) {\n if (\"__source\" !== e && !(e in t)) return !0;\n }\n\n for (var r in t) {\n if (\"__source\" !== r && n[r] !== t[r]) return !0;\n }\n\n return !1;\n}\n\nfunction E(n) {\n this.props = n;\n}\n\nfunction g(n, t) {\n function e(n) {\n var e = this.props.ref,\n r = e == n.ref;\n return !r && e && (e.call ? e(null) : e.current = null), t ? !t(this.props, n) || !r : S(this.props, n);\n }\n\n function r(t) {\n return this.shouldComponentUpdate = e, s(n, t);\n }\n\n return r.displayName = \"Memo(\" + (n.displayName || n.name) + \")\", r.prototype.isReactComponent = !0, r.__f = !0, r;\n}\n\n(E.prototype = new a()).isPureReactComponent = !0, E.prototype.shouldComponentUpdate = function (n, t) {\n return S(this.props, n) || S(this.state, t);\n};\nvar w = h.__b;\n\nh.__b = function (n) {\n n.type && n.type.__f && n.ref && (n.props.ref = n.ref, n.ref = null), w && w(n);\n};\n\nvar R = \"undefined\" != typeof Symbol && Symbol.for && Symbol.for(\"react.forward_ref\") || 3911;\n\nfunction x(n) {\n function t(t, e) {\n var r = C({}, t);\n return delete r.ref, n(r, (e = t.ref || e) && (\"object\" != typeof e || \"current\" in e) ? e : null);\n }\n\n return t.$$typeof = R, t.render = t, t.prototype.isReactComponent = t.__f = !0, t.displayName = \"ForwardRef(\" + (n.displayName || n.name) + \")\", t;\n}\n\nvar N = function N(n, t) {\n return null == n ? null : p(p(n).map(t));\n},\n k = {\n map: N,\n forEach: N,\n count: function count(n) {\n return n ? p(n).length : 0;\n },\n only: function only(n) {\n var t = p(n);\n if (1 !== t.length) throw \"Children.only\";\n return t[0];\n },\n toArray: p\n},\n A = h.__e;\n\nfunction O() {\n this.__u = 0, this.t = null, this.__b = null;\n}\n\nfunction L(n) {\n var t = n.__.__c;\n return t && t.__e && t.__e(n);\n}\n\nfunction U(n) {\n var t, e, r;\n\n function u(u) {\n if (t || (t = n()).then(function (n) {\n e = n.default || n;\n }, function (n) {\n r = n;\n }), r) throw r;\n if (!e) throw t;\n return s(e, u);\n }\n\n return u.displayName = \"Lazy\", u.__f = !0, u;\n}\n\nfunction D() {\n this.u = null, this.o = null;\n}\n\nh.__e = function (n, t, e) {\n if (n.then) for (var r, u = t; u = u.__;) {\n if ((r = u.__c) && r.__c) return null == t.__e && (t.__e = e.__e, t.__k = e.__k), r.__c(n, t);\n }\n A(n, t, e);\n}, (O.prototype = new a()).__c = function (n, t) {\n var e = t.__c,\n r = this;\n null == r.t && (r.t = []), r.t.push(e);\n\n var u = L(r.__v),\n o = !1,\n i = function i() {\n o || (o = !0, e.componentWillUnmount = e.__c, u ? u(l) : l());\n };\n\n e.__c = e.componentWillUnmount, e.componentWillUnmount = function () {\n i(), e.__c && e.__c();\n };\n\n var l = function l() {\n if (! --r.__u) {\n if (r.state.__e) {\n var n = r.state.__e;\n\n r.__v.__k[0] = function n(t, e, r) {\n return t && (t.__v = null, t.__k = t.__k && t.__k.map(function (t) {\n return n(t, e, r);\n }), t.__c && t.__c.__P === e && (t.__e && r.insertBefore(t.__e, t.__d), t.__c.__e = !0, t.__c.__P = r)), t;\n }(n, n.__c.__P, n.__c.__O);\n }\n\n var t;\n\n for (r.setState({\n __e: r.__b = null\n }); t = r.t.pop();) {\n t.forceUpdate();\n }\n }\n },\n f = !0 === t.__h;\n\n r.__u++ || f || r.setState({\n __e: r.__b = r.__v.__k[0]\n }), n.then(i, i);\n}, O.prototype.componentWillUnmount = function () {\n this.t = [];\n}, O.prototype.render = function (n, t) {\n if (this.__b) {\n if (this.__v.__k) {\n var e = document.createElement(\"div\"),\n r = this.__v.__k[0].__c;\n\n this.__v.__k[0] = function n(t, e, r) {\n return t && (t.__c && t.__c.__H && (t.__c.__H.__.forEach(function (n) {\n \"function\" == typeof n.__c && n.__c();\n }), t.__c.__H = null), null != (t = C({}, t)).__c && (t.__c.__P === r && (t.__c.__P = e), t.__c = null), t.__k = t.__k && t.__k.map(function (t) {\n return n(t, e, r);\n })), t;\n }(this.__b, e, r.__O = r.__P);\n }\n\n this.__b = null;\n }\n\n var u = t.__e && s(v, null, n.fallback);\n return u && (u.__h = null), [s(v, null, t.__e ? null : n.children), u];\n};\n\nvar F = function F(n, t, e) {\n if (++e[1] === e[0] && n.o.delete(t), n.props.revealOrder && (\"t\" !== n.props.revealOrder[0] || !n.o.size)) for (e = n.u; e;) {\n for (; e.length > 3;) {\n e.pop()();\n }\n\n if (e[1] < e[0]) break;\n n.u = e = e[2];\n }\n};\n\nfunction M(n) {\n return this.getChildContext = function () {\n return n.context;\n }, n.children;\n}\n\nfunction T(n) {\n var t = this,\n e = n.i;\n t.componentWillUnmount = function () {\n d(null, t.l), t.l = null, t.i = null;\n }, t.i && t.i !== e && t.componentWillUnmount(), n.__v ? (t.l || (t.i = e, t.l = {\n nodeType: 1,\n parentNode: e,\n childNodes: [],\n appendChild: function appendChild(n) {\n this.childNodes.push(n), t.i.appendChild(n);\n },\n insertBefore: function insertBefore(n, e) {\n this.childNodes.push(n), t.i.appendChild(n);\n },\n removeChild: function removeChild(n) {\n this.childNodes.splice(this.childNodes.indexOf(n) >>> 1, 1), t.i.removeChild(n);\n }\n }), d(s(M, {\n context: t.context\n }, n.__v), t.l)) : t.l && t.componentWillUnmount();\n}\n\nfunction j(n, t) {\n return s(T, {\n __v: n,\n i: t\n });\n}\n\n(D.prototype = new a()).__e = function (n) {\n var t = this,\n e = L(t.__v),\n r = t.o.get(n);\n return r[0]++, function (u) {\n var o = function o() {\n t.props.revealOrder ? (r.push(u), F(t, n, r)) : u();\n };\n\n e ? e(o) : o();\n };\n}, D.prototype.render = function (n) {\n this.u = null, this.o = new Map();\n var t = p(n.children);\n n.revealOrder && \"b\" === n.revealOrder[0] && t.reverse();\n\n for (var e = t.length; e--;) {\n this.o.set(t[e], this.u = [1, 0, this.u]);\n }\n\n return n.children;\n}, D.prototype.componentDidUpdate = D.prototype.componentDidMount = function () {\n var n = this;\n this.o.forEach(function (t, e) {\n F(n, e, t);\n });\n};\n\nvar I = \"undefined\" != typeof Symbol && Symbol.for && Symbol.for(\"react.element\") || 60103,\n W = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,\n P = function P(n) {\n return (\"undefined\" != typeof Symbol && \"symbol\" == typeof Symbol() ? /fil|che|rad/i : /fil|che|ra/i).test(n);\n};\n\nfunction V(n, t, e) {\n return null == t.__k && (t.textContent = \"\"), d(n, t), \"function\" == typeof e && e(), n ? n.__c : null;\n}\n\nfunction z(n, t, e) {\n return m(n, t), \"function\" == typeof e && e(), n ? n.__c : null;\n}\n\na.prototype.isReactComponent = {}, [\"componentWillMount\", \"componentWillReceiveProps\", \"componentWillUpdate\"].forEach(function (n) {\n Object.defineProperty(a.prototype, n, {\n configurable: !0,\n get: function get() {\n return this[\"UNSAFE_\" + n];\n },\n set: function set(t) {\n Object.defineProperty(this, n, {\n configurable: !0,\n writable: !0,\n value: t\n });\n }\n });\n});\nvar B = h.event;\n\nfunction H() {}\n\nfunction Z() {\n return this.cancelBubble;\n}\n\nfunction Y() {\n return this.defaultPrevented;\n}\n\nh.event = function (n) {\n return B && (n = B(n)), n.persist = H, n.isPropagationStopped = Z, n.isDefaultPrevented = Y, n.nativeEvent = n;\n};\n\nvar $,\n q = {\n configurable: !0,\n get: function get() {\n return this.class;\n }\n},\n G = h.vnode;\n\nh.vnode = function (n) {\n var t = n.type,\n e = n.props,\n r = e;\n\n if (\"string\" == typeof t) {\n for (var u in r = {}, e) {\n var o = e[u];\n \"value\" === u && \"defaultValue\" in e && null == o || (\"defaultValue\" === u && \"value\" in e && null == e.value ? u = \"value\" : \"download\" === u && !0 === o ? o = \"\" : /ondoubleclick/i.test(u) ? u = \"ondblclick\" : /^onchange(textarea|input)/i.test(u + t) && !P(e.type) ? u = \"oninput\" : /^on(Ani|Tra|Tou|BeforeInp)/.test(u) ? u = u.toLowerCase() : W.test(u) ? u = u.replace(/[A-Z0-9]/, \"-$&\").toLowerCase() : null === o && (o = void 0), r[u] = o);\n }\n\n \"select\" == t && r.multiple && Array.isArray(r.value) && (r.value = p(e.children).forEach(function (n) {\n n.props.selected = -1 != r.value.indexOf(n.props.value);\n })), \"select\" == t && null != r.defaultValue && (r.value = p(e.children).forEach(function (n) {\n n.props.selected = r.multiple ? -1 != r.defaultValue.indexOf(n.props.value) : r.defaultValue == n.props.value;\n })), n.props = r;\n }\n\n t && e.class != e.className && (q.enumerable = \"className\" in e, null != e.className && (r.class = e.className), Object.defineProperty(r, \"className\", q)), n.$$typeof = I, G && G(n);\n};\n\nvar J = h.__r;\n\nh.__r = function (n) {\n J && J(n), $ = n.__c;\n};\n\nvar K = {\n ReactCurrentDispatcher: {\n current: {\n readContext: function readContext(n) {\n return $.__n[n.__c].props.value;\n }\n }\n }\n},\n Q = 1,\n X = 2,\n nn = 3,\n tn = 4,\n en = 5;\n\nfunction rn(n, t) {\n return t();\n}\n\nvar un = \"object\" == typeof performance && \"function\" == typeof performance.now ? performance.now.bind(performance) : function () {\n return Date.now();\n},\n on = \"16.8.0\";\n\nfunction ln(n) {\n return s.bind(null, n);\n}\n\nfunction fn(n) {\n return !!n && n.$$typeof === I;\n}\n\nfunction cn(n) {\n return fn(n) ? y.apply(null, arguments) : n;\n}\n\nfunction an(n) {\n return !!n.__k && (d(null, n), !0);\n}\n\nfunction sn(n) {\n return n && (n.base || 1 === n.nodeType && n) || null;\n}\n\nvar hn = function hn(n, t) {\n return n(t);\n},\n pn = v;\n\nexport default {\n useState: n,\n useReducer: t,\n useEffect: e,\n useLayoutEffect: r,\n useRef: u,\n useImperativeHandle: o,\n useMemo: i,\n useCallback: l,\n useContext: f,\n useDebugValue: c,\n version: \"16.8.0\",\n Children: k,\n render: V,\n hydrate: z,\n unmountComponentAtNode: an,\n createPortal: j,\n createElement: s,\n createContext: _,\n createFactory: ln,\n cloneElement: cn,\n createRef: b,\n Fragment: v,\n isValidElement: fn,\n findDOMNode: sn,\n Component: a,\n PureComponent: E,\n memo: g,\n forwardRef: x,\n unstable_batchedUpdates: hn,\n StrictMode: v,\n Suspense: O,\n SuspenseList: D,\n lazy: U,\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: K\n};\nexport { on as version, k as Children, V as render, z as hydrate, an as unmountComponentAtNode, j as createPortal, ln as createFactory, cn as cloneElement, fn as isValidElement, sn as findDOMNode, E as PureComponent, g as memo, x as forwardRef, hn as unstable_batchedUpdates, pn as StrictMode, O as Suspense, D as SuspenseList, U as lazy, K as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, Q as unstable_ImmediatePriority, X as unstable_UserBlockingPriority, nn as unstable_NormalPriority, tn as unstable_LowPriority, en as unstable_IdlePriority, rn as unstable_runWithPriority, un as unstable_now };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/icons/icon-144x144.png b/icons/icon-144x144.png new file mode 100644 index 00000000..ebc02469 Binary files /dev/null and b/icons/icon-144x144.png differ diff --git a/icons/icon-192x192.png b/icons/icon-192x192.png new file mode 100644 index 00000000..c5c7ba87 Binary files /dev/null and b/icons/icon-192x192.png differ diff --git a/icons/icon-256x256.png b/icons/icon-256x256.png new file mode 100644 index 00000000..14b0ccd3 Binary files /dev/null and b/icons/icon-256x256.png differ diff --git a/icons/icon-384x384.png b/icons/icon-384x384.png new file mode 100644 index 00000000..3752c555 Binary files /dev/null and b/icons/icon-384x384.png differ diff --git a/icons/icon-48x48.png b/icons/icon-48x48.png new file mode 100644 index 00000000..61b6ba41 Binary files /dev/null and b/icons/icon-48x48.png differ diff --git a/icons/icon-512x512.png b/icons/icon-512x512.png new file mode 100644 index 00000000..b0ed9d89 Binary files /dev/null and b/icons/icon-512x512.png differ diff --git a/icons/icon-72x72.png b/icons/icon-72x72.png new file mode 100644 index 00000000..81854305 Binary files /dev/null and b/icons/icon-72x72.png differ diff --git a/icons/icon-96x96.png b/icons/icon-96x96.png new file mode 100644 index 00000000..8653b6c8 Binary files /dev/null and b/icons/icon-96x96.png differ diff --git a/images/popcorn-box.svg b/images/popcorn-box.svg new file mode 100644 index 00000000..ac84a427 --- /dev/null +++ b/images/popcorn-box.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/popper-og-image.jpg b/images/popper-og-image.jpg new file mode 100644 index 00000000..31c1caac Binary files /dev/null and b/images/popper-og-image.jpg differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..26115fab --- /dev/null +++ b/index.html @@ -0,0 +1,28 @@ +Popper - Tooltip & Popover Positioning Engine
The future of Popper is here! Floating UI is now available. Get it now!
Popper logo

Tooltip & Popover
Positioning Engine

Weighs just 3 kB!

Star on GitHubDocumentation
Install Popper
npm logo
npm i @popperjs/core
Copied to clipboard!
CDN
https://unpkg.com/@popperjs/core@2
Copied to clipboard!
Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!
Popcorn box
Tip
Popcorn

Placement

Click on the dots to place the tooltip. There are 12 different placements to choose from.

import { createPopper } from '@popperjs/core';
const popcorn = document.querySelector('#popcorn');
const tooltip = document.querySelector('#tooltip');
createPopper(popcorn, tooltip, {
placement: 'top',
});
Edit on CodeSandbox
Popcorn box
Popcorn
sizes
& Price
XXS: $1.99
XS: $2.99
S: $3.99
M: $4.99
L: $5.99
XL: $6.99
XXL: $7.99

Overflow prevention

Scroll the container (or the whole page) to see the tooltip stay within the boundary. Once the opposite edges of the popcorn and tooltip are aligned, the tooltip is allowed to overflow to prevent detachment.

import { createPopper } from '@popperjs/core';
const popcorn = document.querySelector('#popcorn');
const tooltip = document.querySelector('#tooltip');
createPopper(popcorn, tooltip, {
placement: 'right',
});
Edit on CodeSandbox
Popcorn box
Popcorn
New Item

Flipping

Scroll the container (or the whole page) to see the tooltip flip to the opposite side once it's about to overflow the visible area. Once enough space is detected on its preferred side, it will flip back.

import { createPopper } from '@popperjs/core';
const popcorn = document.querySelector('#popcorn');
const tooltip = document.querySelector('#tooltip');
createPopper(popcorn, tooltip);
Edit on CodeSandbox

In a nutshell, Popper:

  • Places your tooltip or popover relative to the reference taking into account their sizes, and positions its arrow centered to the reference.
  • Takes into account the many different contexts it can live in relative to the reference (different offsetParents, different or nested scrolling containers).
  • Keeps your tooltip or popover in view as best as possible. It prevents it from being clipped or cut off (overflow prevention) and changes the placement if the original does not fit (flipping).

Our Sponsors

Popper is proudly sponsored by the following organizations,
join them on Open Collective to support us.

Granular configuration with sensible defaults

Popper aims to "just work" without you needing to configure much. Of course, there are cases where you need to configure Popper beyond its defaults – in these cases, Popper shines by offering high granularity of configuration to fine-tune the position or behavior of your popper.

You can extend Popper with your own modifiers (or plugins) to make your popper work for you, no matter how advanced the scenario.

No compromises

  • No detachment. Position updates take less than a millisecond on average devices. Popper doesn't debounce the positioning updates of the tooltip to the point where it will ever detach from its reference, but this doesn't come at the cost of poor performance.
  • You don't have to change the DOM context of your tooltip or popover element; it will work no matter where your popper and reference elements live, even in the most complex scenarios like nested scrolling containers or alternative offsetParent contexts.
  • Still lightweight. Handling all of this complexity is still done in an efficient manner. The base Popper is only 2 kB minzipped.

Free open-source, used by millions

Popper has billions of hits across the web, is trusted by millions of developers in production, and used in popular libraries like Bootstrap and Material UI.

Support us
Used by Microsoft - Fluent UIUsed by Atlassian - AtlaskitUsed by BootstrapUsed by GitLabUsed by Adobe - @webspectrum componentsUsed by Stack ExchangeUsed by DrupalUsed by Uber - Base WebUsed by TwitchUsed by DiscourseUsed by RedditUsed by Linear

Ready to start?

Start reading Popper's documentation!

© 2023 MIT License

\ No newline at end of file diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 00000000..1022ce81 --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1 @@ +{"name":"Popper","short_name":"Popper","start_url":"/","background_color":"#FFFFFF","theme_color":"#C83B50","display":"minimal-ui","cacheDigest":"e8966dab7a9bda34fd13edd5fb997ff2","icons":[{"src":"icons/icon-48x48.png?v=e8966dab7a9bda34fd13edd5fb997ff2","sizes":"48x48","type":"image/png"},{"src":"icons/icon-72x72.png?v=e8966dab7a9bda34fd13edd5fb997ff2","sizes":"72x72","type":"image/png"},{"src":"icons/icon-96x96.png?v=e8966dab7a9bda34fd13edd5fb997ff2","sizes":"96x96","type":"image/png"},{"src":"icons/icon-144x144.png?v=e8966dab7a9bda34fd13edd5fb997ff2","sizes":"144x144","type":"image/png"},{"src":"icons/icon-192x192.png?v=e8966dab7a9bda34fd13edd5fb997ff2","sizes":"192x192","type":"image/png"},{"src":"icons/icon-256x256.png?v=e8966dab7a9bda34fd13edd5fb997ff2","sizes":"256x256","type":"image/png"},{"src":"icons/icon-384x384.png?v=e8966dab7a9bda34fd13edd5fb997ff2","sizes":"384x384","type":"image/png"},{"src":"icons/icon-512x512.png?v=e8966dab7a9bda34fd13edd5fb997ff2","sizes":"512x512","type":"image/png"}]} \ No newline at end of file diff --git a/page-data/404.html/page-data.json b/page-data/404.html/page-data.json new file mode 100644 index 00000000..1ad05769 --- /dev/null +++ b/page-data/404.html/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-404-mdx","path":"/404.html","result":{"pageContext":{"frontmatter":{}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/404/page-data.json b/page-data/404/page-data.json new file mode 100644 index 00000000..7b8f8c98 --- /dev/null +++ b/page-data/404/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-404-mdx","path":"/404/","result":{"pageContext":{"frontmatter":{}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json new file mode 100644 index 00000000..66569d66 --- /dev/null +++ b/page-data/app-data.json @@ -0,0 +1 @@ +{"webpackCompilationHash":"4e843ce7ffad47afac59"} diff --git a/page-data/docs/page-data.json b/page-data/docs/page-data.json new file mode 100644 index 00000000..7602d738 --- /dev/null +++ b/page-data/docs/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-index-mdx","path":"/docs/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Popper","order":1}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v1/page-data.json b/page-data/docs/v1/page-data.json new file mode 100644 index 00000000..cc5c4057 --- /dev/null +++ b/page-data/docs/v1/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-1-index-mdx","path":"/docs/v1/","result":{"pageContext":{"frontmatter":{"navigationLabel":"v1.×","title":"Popper (v1.×)","order":1,"redirect_from":["/popper-documentation.html"]}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/browser-support/page-data.json b/page-data/docs/v2/browser-support/page-data.json new file mode 100644 index 00000000..91a84d1d --- /dev/null +++ b/page-data/docs/v2/browser-support/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-browser-support-mdx","path":"/docs/v2/browser-support/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Browser Support","order":10}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/constructors/page-data.json b/page-data/docs/v2/constructors/page-data.json new file mode 100644 index 00000000..ce375b0c --- /dev/null +++ b/page-data/docs/v2/constructors/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-constructors-mdx","path":"/docs/v2/constructors/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Constructors","order":2}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/faq/page-data.json b/page-data/docs/v2/faq/page-data.json new file mode 100644 index 00000000..6ca4a93e --- /dev/null +++ b/page-data/docs/v2/faq/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-faq-mdx","path":"/docs/v2/faq/","result":{"pageContext":{"frontmatter":{"navigationLabel":"FAQ","order":8}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/lifecycle/page-data.json b/page-data/docs/v2/lifecycle/page-data.json new file mode 100644 index 00000000..ee1ac4a4 --- /dev/null +++ b/page-data/docs/v2/lifecycle/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-lifecycle-mdx","path":"/docs/v2/lifecycle/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Lifecycle","order":3}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/migration-guide/page-data.json b/page-data/docs/v2/migration-guide/page-data.json new file mode 100644 index 00000000..1f219f79 --- /dev/null +++ b/page-data/docs/v2/migration-guide/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-migration-guide-mdx","path":"/docs/v2/migration-guide/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Migration Guide","order":11}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/apply-styles/page-data.json b/page-data/docs/v2/modifiers/apply-styles/page-data.json new file mode 100644 index 00000000..3ff647b2 --- /dev/null +++ b/page-data/docs/v2/modifiers/apply-styles/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-apply-styles-mdx","path":"/docs/v2/modifiers/apply-styles/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Apply Styles","order":8}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/arrow/page-data.json b/page-data/docs/v2/modifiers/arrow/page-data.json new file mode 100644 index 00000000..fa490dad --- /dev/null +++ b/page-data/docs/v2/modifiers/arrow/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-arrow-mdx","path":"/docs/v2/modifiers/arrow/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Arrow","order":3}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1495678274","1766395590","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/community-modifiers/page-data.json b/page-data/docs/v2/modifiers/community-modifiers/page-data.json new file mode 100644 index 00000000..b6c1896a --- /dev/null +++ b/page-data/docs/v2/modifiers/community-modifiers/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-community-modifiers-mdx","path":"/docs/v2/modifiers/community-modifiers/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Community Modifiers","order":10}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/compute-styles/page-data.json b/page-data/docs/v2/modifiers/compute-styles/page-data.json new file mode 100644 index 00000000..68e5e2a4 --- /dev/null +++ b/page-data/docs/v2/modifiers/compute-styles/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-compute-styles-mdx","path":"/docs/v2/modifiers/compute-styles/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Compute Styles","order":6}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/event-listeners/page-data.json b/page-data/docs/v2/modifiers/event-listeners/page-data.json new file mode 100644 index 00000000..e6889b54 --- /dev/null +++ b/page-data/docs/v2/modifiers/event-listeners/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-event-listeners-mdx","path":"/docs/v2/modifiers/event-listeners/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Event Listeners","order":9}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/flip/page-data.json b/page-data/docs/v2/modifiers/flip/page-data.json new file mode 100644 index 00000000..da7aa3ce --- /dev/null +++ b/page-data/docs/v2/modifiers/flip/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-flip-mdx","path":"/docs/v2/modifiers/flip/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Flip","order":4}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1495678274","1766395590","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/hide/page-data.json b/page-data/docs/v2/modifiers/hide/page-data.json new file mode 100644 index 00000000..09f4ba14 --- /dev/null +++ b/page-data/docs/v2/modifiers/hide/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-hide-mdx","path":"/docs/v2/modifiers/hide/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Hide","order":5}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1495678274","1766395590","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/offset/page-data.json b/page-data/docs/v2/modifiers/offset/page-data.json new file mode 100644 index 00000000..81b2b0fa --- /dev/null +++ b/page-data/docs/v2/modifiers/offset/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-offset-mdx","path":"/docs/v2/modifiers/offset/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Offset","order":1}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1495678274","1766395590","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/page-data.json b/page-data/docs/v2/modifiers/page-data.json new file mode 100644 index 00000000..3ac900ff --- /dev/null +++ b/page-data/docs/v2/modifiers/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-index-mdx","path":"/docs/v2/modifiers/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Modifiers","order":4}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/popper-offsets/page-data.json b/page-data/docs/v2/modifiers/popper-offsets/page-data.json new file mode 100644 index 00000000..e333968e --- /dev/null +++ b/page-data/docs/v2/modifiers/popper-offsets/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-popper-offsets-mdx","path":"/docs/v2/modifiers/popper-offsets/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Popper Offsets","order":0}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/modifiers/prevent-overflow/page-data.json b/page-data/docs/v2/modifiers/prevent-overflow/page-data.json new file mode 100644 index 00000000..8534a5f7 --- /dev/null +++ b/page-data/docs/v2/modifiers/prevent-overflow/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-modifiers-prevent-overflow-mdx","path":"/docs/v2/modifiers/prevent-overflow/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Prevent Overflow","order":2}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1495678274","1766395590","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/page-data.json b/page-data/docs/v2/page-data.json new file mode 100644 index 00000000..e795c003 --- /dev/null +++ b/page-data/docs/v2/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-index-mdx","path":"/docs/v2/","result":{"pageContext":{"frontmatter":{"navigationLabel":"v2.×","title":"Popper (v2.×)","order":0,"redirect_from":["/docs/"]}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/performance/page-data.json b/page-data/docs/v2/performance/page-data.json new file mode 100644 index 00000000..e9f8dc19 --- /dev/null +++ b/page-data/docs/v2/performance/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-performance-mdx","path":"/docs/v2/performance/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Performance","order":7}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/tutorial/page-data.json b/page-data/docs/v2/tutorial/page-data.json new file mode 100644 index 00000000..ddd853ab --- /dev/null +++ b/page-data/docs/v2/tutorial/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-tutorial-mdx","path":"/docs/v2/tutorial/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Tutorial","order":0}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/typings/page-data.json b/page-data/docs/v2/typings/page-data.json new file mode 100644 index 00000000..d768a94a --- /dev/null +++ b/page-data/docs/v2/typings/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-typings-mdx","path":"/docs/v2/typings/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Typings","order":9}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/utils/detect-overflow/page-data.json b/page-data/docs/v2/utils/detect-overflow/page-data.json new file mode 100644 index 00000000..c72c291f --- /dev/null +++ b/page-data/docs/v2/utils/detect-overflow/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-utils-detect-overflow-mdx","path":"/docs/v2/utils/detect-overflow/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Detect Overflow"}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/utils/page-data.json b/page-data/docs/v2/utils/page-data.json new file mode 100644 index 00000000..468517fc --- /dev/null +++ b/page-data/docs/v2/utils/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-utils-index-mdx","path":"/docs/v2/utils/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Utils","order":5}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/docs/v2/virtual-elements/page-data.json b/page-data/docs/v2/virtual-elements/page-data.json new file mode 100644 index 00000000..237bf5ae --- /dev/null +++ b/page-data/docs/v2/virtual-elements/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-docs-v-2-virtual-elements-mdx","path":"/docs/v2/virtual-elements/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Virtual Elements","order":6}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1495678274","1766395590","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/index/page-data.json b/page-data/index/page-data.json new file mode 100644 index 00000000..bae17479 --- /dev/null +++ b/page-data/index/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-index-mdx","path":"/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Home","order":0}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1495678274","1766395590","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/react-popper/page-data.json b/page-data/react-popper/page-data.json new file mode 100644 index 00000000..f8e77ce4 --- /dev/null +++ b/page-data/react-popper/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-react-popper-index-mdx","path":"/react-popper/","result":{"pageContext":{"frontmatter":{"navigationLabel":"React Popper","order":2}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/react-popper/v2/faq/page-data.json b/page-data/react-popper/v2/faq/page-data.json new file mode 100644 index 00000000..382aa341 --- /dev/null +++ b/page-data/react-popper/v2/faq/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-react-popper-v-2-faq-mdx","path":"/react-popper/v2/faq/","result":{"pageContext":{"frontmatter":{"navigationLabel":"FAQ","order":6}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/react-popper/v2/hook/page-data.json b/page-data/react-popper/v2/hook/page-data.json new file mode 100644 index 00000000..9363ae3a --- /dev/null +++ b/page-data/react-popper/v2/hook/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-react-popper-v-2-hook-mdx","path":"/react-popper/v2/hook/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Hook","order":1}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/react-popper/v2/page-data.json b/page-data/react-popper/v2/page-data.json new file mode 100644 index 00000000..df46de1d --- /dev/null +++ b/page-data/react-popper/v2/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-react-popper-v-2-index-mdx","path":"/react-popper/v2/","result":{"pageContext":{"frontmatter":{"navigationLabel":"v2.×","title":"React Popper (v2.×)","order":0}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/react-popper/v2/react-portals/page-data.json b/page-data/react-popper/v2/react-portals/page-data.json new file mode 100644 index 00000000..6809a33b --- /dev/null +++ b/page-data/react-popper/v2/react-portals/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-react-popper-v-2-react-portals-mdx","path":"/react-popper/v2/react-portals/","result":{"pageContext":{"frontmatter":{"navigationLabel":"React Portals","order":3}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/react-popper/v2/render-props/page-data.json b/page-data/react-popper/v2/render-props/page-data.json new file mode 100644 index 00000000..19425f51 --- /dev/null +++ b/page-data/react-popper/v2/render-props/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-react-popper-v-2-render-props-mdx","path":"/react-popper/v2/render-props/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Render Props","order":2}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/react-popper/v2/typings/page-data.json b/page-data/react-popper/v2/typings/page-data.json new file mode 100644 index 00000000..9d7776bd --- /dev/null +++ b/page-data/react-popper/v2/typings/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-react-popper-v-2-typings-mdx","path":"/react-popper/v2/typings/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Typings","order":5}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/react-popper/v2/virtual-elements/page-data.json b/page-data/react-popper/v2/virtual-elements/page-data.json new file mode 100644 index 00000000..029edf9f --- /dev/null +++ b/page-data/react-popper/v2/virtual-elements/page-data.json @@ -0,0 +1 @@ +{"componentChunkName":"component---src-pages-react-popper-v-2-virtual-elements-mdx","path":"/react-popper/v2/virtual-elements/","result":{"pageContext":{"frontmatter":{"navigationLabel":"Virtual Elements","order":4}}},"staticQueryHashes":["1101094934","1101094934","1495678274","1766395590","32046230","32046230"]} \ No newline at end of file diff --git a/page-data/sq/d/1101094934.json b/page-data/sq/d/1101094934.json new file mode 100644 index 00000000..33f5bad5 --- /dev/null +++ b/page-data/sq/d/1101094934.json @@ -0,0 +1 @@ +{"data":{"allMdx":{"edges":[{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/404.mdx","fields":{"slug":"/404/"},"frontmatter":{"navigationLabel":null,"order":null}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/index.mdx","fields":{"slug":"/"},"frontmatter":{"navigationLabel":"Home","order":0}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/index.mdx","fields":{"slug":"/docs/"},"frontmatter":{"navigationLabel":"Popper","order":1}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/react-popper/index.mdx","fields":{"slug":"/react-popper/"},"frontmatter":{"navigationLabel":"React Popper","order":2}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v1/index.mdx","fields":{"slug":"/docs/v1/"},"frontmatter":{"navigationLabel":"v1.×","order":1}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/constructors.mdx","fields":{"slug":"/docs/v2/constructors/"},"frontmatter":{"navigationLabel":"Constructors","order":2}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/browser-support.mdx","fields":{"slug":"/docs/v2/browser-support/"},"frontmatter":{"navigationLabel":"Browser Support","order":10}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/faq.mdx","fields":{"slug":"/docs/v2/faq/"},"frontmatter":{"navigationLabel":"FAQ","order":8}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/index.mdx","fields":{"slug":"/docs/v2/"},"frontmatter":{"navigationLabel":"v2.×","order":0}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/lifecycle.mdx","fields":{"slug":"/docs/v2/lifecycle/"},"frontmatter":{"navigationLabel":"Lifecycle","order":3}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/tutorial.mdx","fields":{"slug":"/docs/v2/tutorial/"},"frontmatter":{"navigationLabel":"Tutorial","order":0}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/migration-guide.mdx","fields":{"slug":"/docs/v2/migration-guide/"},"frontmatter":{"navigationLabel":"Migration Guide","order":11}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/performance.mdx","fields":{"slug":"/docs/v2/performance/"},"frontmatter":{"navigationLabel":"Performance","order":7}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/typings.mdx","fields":{"slug":"/docs/v2/typings/"},"frontmatter":{"navigationLabel":"Typings","order":9}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/virtual-elements.mdx","fields":{"slug":"/docs/v2/virtual-elements/"},"frontmatter":{"navigationLabel":"Virtual Elements","order":6}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/react-popper/v2/hook.mdx","fields":{"slug":"/react-popper/v2/hook/"},"frontmatter":{"navigationLabel":"Hook","order":1}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/react-popper/v2/react-portals.mdx","fields":{"slug":"/react-popper/v2/react-portals/"},"frontmatter":{"navigationLabel":"React Portals","order":3}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/react-popper/v2/render-props.mdx","fields":{"slug":"/react-popper/v2/render-props/"},"frontmatter":{"navigationLabel":"Render Props","order":2}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/react-popper/v2/faq.mdx","fields":{"slug":"/react-popper/v2/faq/"},"frontmatter":{"navigationLabel":"FAQ","order":6}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/react-popper/v2/typings.mdx","fields":{"slug":"/react-popper/v2/typings/"},"frontmatter":{"navigationLabel":"Typings","order":5}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/react-popper/v2/index.mdx","fields":{"slug":"/react-popper/v2/"},"frontmatter":{"navigationLabel":"v2.×","order":0}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/react-popper/v2/virtual-elements.mdx","fields":{"slug":"/react-popper/v2/virtual-elements/"},"frontmatter":{"navigationLabel":"Virtual Elements","order":4}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/apply-styles.mdx","fields":{"slug":"/docs/v2/modifiers/apply-styles/"},"frontmatter":{"navigationLabel":"Apply Styles","order":8}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/arrow.mdx","fields":{"slug":"/docs/v2/modifiers/arrow/"},"frontmatter":{"navigationLabel":"Arrow","order":3}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/compute-styles.mdx","fields":{"slug":"/docs/v2/modifiers/compute-styles/"},"frontmatter":{"navigationLabel":"Compute Styles","order":6}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/community-modifiers.mdx","fields":{"slug":"/docs/v2/modifiers/community-modifiers/"},"frontmatter":{"navigationLabel":"Community Modifiers","order":10}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/event-listeners.mdx","fields":{"slug":"/docs/v2/modifiers/event-listeners/"},"frontmatter":{"navigationLabel":"Event Listeners","order":9}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/flip.mdx","fields":{"slug":"/docs/v2/modifiers/flip/"},"frontmatter":{"navigationLabel":"Flip","order":4}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/hide.mdx","fields":{"slug":"/docs/v2/modifiers/hide/"},"frontmatter":{"navigationLabel":"Hide","order":5}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/offset.mdx","fields":{"slug":"/docs/v2/modifiers/offset/"},"frontmatter":{"navigationLabel":"Offset","order":1}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/index.mdx","fields":{"slug":"/docs/v2/modifiers/"},"frontmatter":{"navigationLabel":"Modifiers","order":4}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/popper-offsets.mdx","fields":{"slug":"/docs/v2/modifiers/popper-offsets/"},"frontmatter":{"navigationLabel":"Popper Offsets","order":0}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/modifiers/prevent-overflow.mdx","fields":{"slug":"/docs/v2/modifiers/prevent-overflow/"},"frontmatter":{"navigationLabel":"Prevent Overflow","order":2}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/utils/detect-overflow.mdx","fields":{"slug":"/docs/v2/utils/detect-overflow/"},"frontmatter":{"navigationLabel":"Detect Overflow","order":null}}},{"node":{"fileAbsolutePath":"/home/runner/work/popper.js.org/popper.js.org/src/pages/docs/v2/utils/index.mdx","fields":{"slug":"/docs/v2/utils/"},"frontmatter":{"navigationLabel":"Utils","order":5}}}]}}} \ No newline at end of file diff --git a/page-data/sq/d/1495678274.json b/page-data/sq/d/1495678274.json new file mode 100644 index 00000000..1a25d51a --- /dev/null +++ b/page-data/sq/d/1495678274.json @@ -0,0 +1 @@ +{"data":{"site":{"siteMetadata":{"title":"Popper"}}}} \ No newline at end of file diff --git a/page-data/sq/d/1766395590.json b/page-data/sq/d/1766395590.json new file mode 100644 index 00000000..5d706c35 --- /dev/null +++ b/page-data/sq/d/1766395590.json @@ -0,0 +1 @@ +{"data":{"allImageSharp":{"edges":[{"node":{"id":"d6f4e9f6-d6e8-5d16-b2e1-0a9da95f1ebd","fluid":{"src":"/static/e8966dab7a9bda34fd13edd5fb997ff2/bc59e/popper-icon.png","srcSet":"/static/e8966dab7a9bda34fd13edd5fb997ff2/69585/popper-icon.png 200w,\n/static/e8966dab7a9bda34fd13edd5fb997ff2/497c6/popper-icon.png 400w,\n/static/e8966dab7a9bda34fd13edd5fb997ff2/bc59e/popper-icon.png 512w","srcWebp":"/static/e8966dab7a9bda34fd13edd5fb997ff2/a3e81/popper-icon.webp","srcSetWebp":"/static/e8966dab7a9bda34fd13edd5fb997ff2/61e93/popper-icon.webp 200w,\n/static/e8966dab7a9bda34fd13edd5fb997ff2/1f5c5/popper-icon.webp 400w,\n/static/e8966dab7a9bda34fd13edd5fb997ff2/a3e81/popper-icon.webp 512w","base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEb0lEQVQ4y21UDUyVZRQ+97u1Gluzrdr6sexHa0qWJFKQCiKiwL3AxRoIoVMqNnPJWhMyI6RizcggxBAhuPzkyuaaM2skv5cLl0KvMCY6E1H+5F5B/oX7857Oeb/LHa2+7dzvve/7nec873nOOWB5PQZa2V6LhrbgOI1pZaSm7qmNcO7REGn1SzaC6aVIOjP4NCzdlNL4wuYisgJaxxWCD5j9dWyallejgbGgbb2BFrFgWRer7UhIhrrFoUAOwWSHyHLI0ZccVpDDlStpqThUcgAHi/Zj166daPaLqvkzdOuiFn89Y2hagwjwt/sDmYHSuCwcEgF4nWPdmoT9BRl4M/dDtBq2TbWs0Y/cKvsEcarSiRMVqo0ZHT0H92KzX9Sp0+AHBK7t3vMuQMNzm5T6p8PA/IouuHlVVNfFN5PQebVI4CQ5u084h0oP4KXUFMTpSpfoO45kwn3zuMBbpWTfu6xxiVj7xIbA2sc3MMY9UP9MGDQ+H66zGhKRmfXl7XPidJVw9RxDYoEDhRni7/173DheIcFwsFQag+Mdo3u4IhPN/vre1sCYZ5uWbwZofjlysWWdYWzS9DVOt+U5+I22MtV5tBwn6r7CjvhkdN8oRhwqRTFQIs0LSmkYLP4Yzat17f356Qqzy+3N+QBxpmqOroBoLxMeB2m85iD/CzhQIkQ/rScqHN2730FK305S19A52ZiLOFLu5tzQB2IeiD+WzrfLvOD/2ldZChbJ/uNBJEF/gfP6hDuO7qNI7GTEeUfJ0O4B8gB49znAkDeoYDJMqi0kzgrndfEjc5cKEYdVwHknzs/sxQIvyML3THu+mgI1GAO6JhsIMNhwAUid9vFzhxBHjS4+FH0lUoyRU59zjaE8I6bu68VSrAlypG5C24ksJOXVaqAr26o/RdOLESeBCjqTykKKQjlUI44ZxWznEez7Zh9Kh5kqWUJUi5Ihd8pd67eCAjA7QeXj6ErZxaLEc8ssoj7utf+UjThXzUqLqebDwnXtGP8XY79/iX356bLl+gsz0FadxeCC8+i4/B3afsiau0EdRbepLYWHgRkCdchqUnt84OhH8lqX01IddAUX3q1C+8lsQT0tqKex7slQvP5ZmpDldbtMUDqc5ItEqKMlIPoRqkWAphVbFKIKFGGZaWXE2c63trsvRCdQu73NOXJyPkdPf4FX098T1IaqaHQLHDfK2qPGKO8/knFfM00kGiIKA3K3aIkB/ApreNqsIvBkitbak53GgjhxtlrIPLKREFQRzmuZ7yOxqzmrDQASA2gaaVsC9CBHF1MltZW/wt7Q1Dy4Fpp8twCNpQco0JnO5B04XJnpmmzKFVRr7mFjpuhM2o7E6Gdr7DYfAmVfLY8uxpI/rWyeDcvaWIWi3Utg8MdD64Ec82g0IY0wJ5ksJZNvxF4evrRP19QrtK/6MuD8sxCYqVuCYpQzsARqHwvhIXyYzpGCUfHG7W5YGs4TXuGhSmL8F2zhI4GDVGAyjefN+zvI9J614t33vOeffwBiBtAiVaA9dgAAAABJRU5ErkJggg==","aspectRatio":1,"originalImg":"/static/e8966dab7a9bda34fd13edd5fb997ff2/bc59e/popper-icon.png","originalName":"popper-icon.png","sizes":"(max-width: 512px) 100vw, 512px"}}},{"node":{"id":"9051c780-8c3e-51a1-96b4-fd72a21e5c85","fluid":{"src":"/static/3498e862831923782d45f5bb95dc6735/e15b6/BannerMDB-mini.jpg","srcSet":"/static/3498e862831923782d45f5bb95dc6735/f836f/BannerMDB-mini.jpg 200w,\n/static/3498e862831923782d45f5bb95dc6735/2244e/BannerMDB-mini.jpg 400w,\n/static/3498e862831923782d45f5bb95dc6735/e15b6/BannerMDB-mini.jpg 510w","srcWebp":"/static/3498e862831923782d45f5bb95dc6735/d72d1/BannerMDB-mini.webp","srcSetWebp":"/static/3498e862831923782d45f5bb95dc6735/61e93/BannerMDB-mini.webp 200w,\n/static/3498e862831923782d45f5bb95dc6735/1f5c5/BannerMDB-mini.webp 400w,\n/static/3498e862831923782d45f5bb95dc6735/d72d1/BannerMDB-mini.webp 510w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAwACBf/EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/aAAwDAQACEAMQAAAB6GyJyQz3/8QAGxAAAgIDAQAAAAAAAAAAAAAAAAIBEgMEEyH/2gAIAQEAAQUCv7eGSNhFKnN4IXKf/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQMBAT8BV//EABcRAQADAAAAAAAAAAAAAAAAAAACEiH/2gAIAQIBAT8BxWL/xAAgEAACAQEJAAAAAAAAAAAAAAAAASERAhITIjFhcYGR/9oACAEBAAY/AobNa8FM3bJUDwqKzuTc8P/EABoQAAIDAQEAAAAAAAAAAAAAAAERACExUWH/2gAIAQEAAT8hc5G2VAYRjncerQwCEWFRhv8A6DLiep6Y/9oADAMBAAIAAwAAABAzD//EABYRAQEBAAAAAAAAAAAAAAAAAAEhAP/aAAgBAwEBPxAmqpv/xAAZEQADAAMAAAAAAAAAAAAAAAAAAREh4fD/2gAIAQIBAT8Qk5UZxdH/xAAcEAEBAAIDAQEAAAAAAAAAAAABEQAhMUFRkaH/2gAIAQEAAT8QsbJakDb75kva1bvzzfMBRVLJR+5HyDs6RMa4EVZQS7HrBqarAr+Z/9k=","aspectRatio":1.3071895424836601,"originalImg":"/static/3498e862831923782d45f5bb95dc6735/e15b6/BannerMDB-mini.jpg","originalName":"BannerMDB-mini.jpg","sizes":"(max-width: 510px) 100vw, 510px"}}},{"node":{"id":"11f1ca56-af71-5af6-9af9-fcd5a6a27f1c","fluid":{"src":"/static/dd247d2fa3f2291ab8c03b325f839b47/e2788/argon-dashboard-pro.jpg","srcSet":"/static/dd247d2fa3f2291ab8c03b325f839b47/f836f/argon-dashboard-pro.jpg 200w,\n/static/dd247d2fa3f2291ab8c03b325f839b47/e2788/argon-dashboard-pro.jpg 360w","srcWebp":"/static/dd247d2fa3f2291ab8c03b325f839b47/b6bb8/argon-dashboard-pro.webp","srcSetWebp":"/static/dd247d2fa3f2291ab8c03b325f839b47/61e93/argon-dashboard-pro.webp 200w,\n/static/dd247d2fa3f2291ab8c03b325f839b47/b6bb8/argon-dashboard-pro.webp 360w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAECAwT/xAAWAQEBAQAAAAAAAAAAAAAAAAADAQL/2gAMAwEAAhADEAAAAdwnsqiBG//EABkQAAIDAQAAAAAAAAAAAAAAAAABAgMRE//aAAgBAQABBQLgs44SqkK2SJX4O2TP/8QAGREAAwADAAAAAAAAAAAAAAAAAAECAxQh/9oACAEDAQE/AccxfJRps//EABgRAAIDAAAAAAAAAAAAAAAAAAABAhET/9oACAECAQE/AXN0bH//xAAbEAABBAMAAAAAAAAAAAAAAAAAAhEhQTFxov/aAAgBAQAGPwIhPRkohn0Uf//EAB4QAAIBBAMBAAAAAAAAAAAAAAERACFBUWExcaHh/9oACAEBAAE/IXOCSaXUYTW0fiAHe2IMXDqJVHg0LM+J/9oADAMBAAIAAwAAABDz3//EABgRAQEAAwAAAAAAAAAAAAAAAAEAIVGR/9oACAEDAQE/EHchnUdv/8QAGBEBAAMBAAAAAAAAAAAAAAAAAQARIaH/2gAIAQIBAT8QbpyACq5P/8QAHRABAAICAwEBAAAAAAAAAAAAAREhADFBUWFxof/aAAgBAQABPxBmx1WBCXxgCRcBMCWkJh6a9+5Lg+yp1RvEVpdy/ZyXA6DXP//Z","aspectRatio":1.3333333333333333,"originalImg":"/static/dd247d2fa3f2291ab8c03b325f839b47/e2788/argon-dashboard-pro.jpg","originalName":"argon-dashboard-pro.jpg","sizes":"(max-width: 360px) 100vw, 360px"}}},{"node":{"id":"8b4b3436-516b-5e90-8c49-59d0ffaea988","fluid":{"src":"/static/001a4130f03a08cf5160ac618ff72944/14b42/mbd-react.jpg","srcSet":"/static/001a4130f03a08cf5160ac618ff72944/f836f/mbd-react.jpg 200w,\n/static/001a4130f03a08cf5160ac618ff72944/2244e/mbd-react.jpg 400w,\n/static/001a4130f03a08cf5160ac618ff72944/14b42/mbd-react.jpg 800w","srcWebp":"/static/001a4130f03a08cf5160ac618ff72944/58556/mbd-react.webp","srcSetWebp":"/static/001a4130f03a08cf5160ac618ff72944/61e93/mbd-react.webp 200w,\n/static/001a4130f03a08cf5160ac618ff72944/1f5c5/mbd-react.webp 400w,\n/static/001a4130f03a08cf5160ac618ff72944/58556/mbd-react.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAwX/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/9oADAMBAAIQAxAAAAHtIuF5UEgL/8QAGBAAAwEBAAAAAAAAAAAAAAAAAAECERL/2gAIAQEAAQUCelE7nY3ArlH/xAAXEQADAQAAAAAAAAAAAAAAAAAAAQIS/9oACAEDAQE/AdoVyf/EABYRAQEBAAAAAAAAAAAAAAAAAAARAf/aAAgBAgEBPwGJr//EABoQAAEFAQAAAAAAAAAAAAAAAAABAhAhMRH/2gAIAQEABj8CN5Flvcpin//EABoQAAIDAQEAAAAAAAAAAAAAAAABITFRkUH/2gAIAQEAAT8hdHA+9B7mnklWPaWEIu5//9oADAMBAAIAAwAAABDA7//EABkRAQACAwAAAAAAAAAAAAAAAAEAkSEx8P/aAAgBAwEBPxDajcAZeqf/xAAYEQACAwAAAAAAAAAAAAAAAAAAEQExUf/aAAgBAgEBPxB8JdR//8QAGhABAQEBAQEBAAAAAAAAAAAAAREAQSExwf/aAAgBAQABPxAzxlH3HJBcBJi1e/N8lF6c0Qlum/kwagLanf/Z","aspectRatio":1.3333333333333333,"originalImg":"/static/001a4130f03a08cf5160ac618ff72944/14b42/mbd-react.jpg","originalName":"mbd-react.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"17f76b36-5c3e-52a0-9007-2d9b58be8786","fluid":{"src":"/static/0546c71223e67efb967d4f0ef717de91/14b42/mdb-angular.jpg","srcSet":"/static/0546c71223e67efb967d4f0ef717de91/f836f/mdb-angular.jpg 200w,\n/static/0546c71223e67efb967d4f0ef717de91/2244e/mdb-angular.jpg 400w,\n/static/0546c71223e67efb967d4f0ef717de91/14b42/mdb-angular.jpg 800w","srcWebp":"/static/0546c71223e67efb967d4f0ef717de91/58556/mdb-angular.webp","srcSetWebp":"/static/0546c71223e67efb967d4f0ef717de91/61e93/mdb-angular.webp 200w,\n/static/0546c71223e67efb967d4f0ef717de91/1f5c5/mdb-angular.webp 400w,\n/static/0546c71223e67efb967d4f0ef717de91/58556/mdb-angular.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAQCAwX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAP/2gAMAwEAAhADEAAAAdKSlRu8Ik//xAAaEAACAwEBAAAAAAAAAAAAAAABAgADEQQS/9oACAEBAAEFArWcEtE9YOubQILEE//EABgRAAMBAQAAAAAAAAAAAAAAAAABAhNB/9oACAEDAQE/Ac66hxR//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHBAAAQQDAQAAAAAAAAAAAAAAAAECITIiMaGR/9oACAEBAAY/AoUt030yaQrirvT/xAAbEAEAAwADAQAAAAAAAAAAAAABABEhMUFRgf/aAAgBAQABPyHZwVmXbCasmdR2g+MAiJvkDPJ6qH0fSP/aAAwDAQACAAMAAAAQx8//xAAaEQEAAgMBAAAAAAAAAAAAAAABABEhQbHR/9oACAEDAQE/EEKKK2RTg57P/8QAFREBAQAAAAAAAAAAAAAAAAAAABH/2gAIAQIBAT8Qqv/EABwQAQEAAgIDAAAAAAAAAAAAAAERACExQaGx4f/aAAgBAQABPxA2I+PudOuIecLrIUE3M20dbQ0h9wO0oVDrNtRDAOpMVLC2hfWf/9k=","aspectRatio":1.3333333333333333,"originalImg":"/static/0546c71223e67efb967d4f0ef717de91/14b42/mdb-angular.jpg","originalName":"mdb-angular.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"5abc8f88-e34c-5b2c-814b-513f1fd03a30","fluid":{"src":"/static/2db27cc54e4299b48f81a156b85db25b/14b42/mdb-standard.jpg","srcSet":"/static/2db27cc54e4299b48f81a156b85db25b/f836f/mdb-standard.jpg 200w,\n/static/2db27cc54e4299b48f81a156b85db25b/2244e/mdb-standard.jpg 400w,\n/static/2db27cc54e4299b48f81a156b85db25b/14b42/mdb-standard.jpg 800w","srcWebp":"/static/2db27cc54e4299b48f81a156b85db25b/58556/mdb-standard.webp","srcSetWebp":"/static/2db27cc54e4299b48f81a156b85db25b/61e93/mdb-standard.webp 200w,\n/static/2db27cc54e4299b48f81a156b85db25b/1f5c5/mdb-standard.webp 400w,\n/static/2db27cc54e4299b48f81a156b85db25b/58556/mdb-standard.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMFBP/EABYBAQEBAAAAAAAAAAAAAAAAAAIBA//aAAwDAQACEAMQAAABoNyJ2VImhn//xAAaEAACAwEBAAAAAAAAAAAAAAACAwABEQQS/9oACAEBAAEFAnsYJFcDcrqqekYLwGv/xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8BZX//xAAYEQADAQEAAAAAAAAAAAAAAAAAAQIRIf/aAAgBAgEBPwFw+LBxR//EAB4QAAIBAwUAAAAAAAAAAAAAAAABAhEiUSExMoGR/9oACAEBAAY/ArcYOVOzVlyN5sooP0//xAAaEAADAQEBAQAAAAAAAAAAAAAAAREhMUGB/9oACAEBAAE/IYNXNLql+/AOndubRpNNV9Q1iZZbdH//2gAMAwEAAgADAAAAEFjv/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQBR/9oACAEDAQE/EEctC//EABgRAAMBAQAAAAAAAAAAAAAAAAABESFB/9oACAECAQE/EEaTOoaeI//EABoQAQEBAQEBAQAAAAAAAAAAAAERACExQVH/2gAIAQEAAT8QAcyh0XpfmGHxUACzNYNpHhjbYSgw0ZZ+TIkV4F3/2Q==","aspectRatio":1.3333333333333333,"originalImg":"/static/2db27cc54e4299b48f81a156b85db25b/14b42/mdb-standard.jpg","originalName":"mdb-standard.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"31d17d90-aacd-5fc4-ae16-b983756c4632","fluid":{"src":"/static/df6d3aaefc2c51fe278e3acc568958f0/14b42/mdb-vue.jpg","srcSet":"/static/df6d3aaefc2c51fe278e3acc568958f0/f836f/mdb-vue.jpg 200w,\n/static/df6d3aaefc2c51fe278e3acc568958f0/2244e/mdb-vue.jpg 400w,\n/static/df6d3aaefc2c51fe278e3acc568958f0/14b42/mdb-vue.jpg 800w","srcWebp":"/static/df6d3aaefc2c51fe278e3acc568958f0/58556/mdb-vue.webp","srcSetWebp":"/static/df6d3aaefc2c51fe278e3acc568958f0/61e93/mdb-vue.webp 200w,\n/static/df6d3aaefc2c51fe278e3acc568958f0/1f5c5/mdb-vue.webp 400w,\n/static/df6d3aaefc2c51fe278e3acc568958f0/58556/mdb-vue.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFAQP/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQP/2gAMAwEAAhADEAAAAau8VZlREA//xAAaEAACAwEBAAAAAAAAAAAAAAABAgADERMh/9oACAEBAAEFArS4haLudvMoUixFn//EABcRAQEBAQAAAAAAAAAAAAAAAAEAAhL/2gAIAQMBAT8B6I0X/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPwE//8QAHBAAAQQDAQAAAAAAAAAAAAAAAAECESEQEjKh/9oACAEBAAY/Ak0O/cWhMuKap//EABwQAQEBAAIDAQAAAAAAAAAAAAERADGBIUFhcf/aAAgBAQABPyGkRHw04+4H06xcje9Cho4kHZJjJD+7/9oADAMBAAIAAwAAABCv7//EABYRAQEBAAAAAAAAAAAAAAAAAAEAEf/aAAgBAwEBPxBbUYhi3//EABURAQEAAAAAAAAAAAAAAAAAAAEA/9oACAECAQE/EFhv/8QAGhABAQEBAAMAAAAAAAAAAAAAAREhADFBYf/aAAgBAQABPxDbqTtrkYqh5ArwqOmiVnTuAjG5z5QgSB7zPnKGk3T3/9k=","aspectRatio":1.3333333333333333,"originalImg":"/static/df6d3aaefc2c51fe278e3acc568958f0/14b42/mdb-vue.jpg","originalName":"mdb-vue.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"fc4ecff7-a025-5189-acc8-4f35f24ee501","fluid":{"src":"/static/71c7c1b6e932db9fa9d8496ae3d2e562/14b42/modern-treasury.jpg","srcSet":"/static/71c7c1b6e932db9fa9d8496ae3d2e562/f836f/modern-treasury.jpg 200w,\n/static/71c7c1b6e932db9fa9d8496ae3d2e562/2244e/modern-treasury.jpg 400w,\n/static/71c7c1b6e932db9fa9d8496ae3d2e562/14b42/modern-treasury.jpg 800w","srcWebp":"/static/71c7c1b6e932db9fa9d8496ae3d2e562/58556/modern-treasury.webp","srcSetWebp":"/static/71c7c1b6e932db9fa9d8496ae3d2e562/61e93/modern-treasury.webp 200w,\n/static/71c7c1b6e932db9fa9d8496ae3d2e562/1f5c5/modern-treasury.webp 400w,\n/static/71c7c1b6e932db9fa9d8496ae3d2e562/58556/modern-treasury.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAMCBP/EABYBAQEBAAAAAAAAAAAAAAAAAAADBP/aAAwDAQACEAMQAAAB3aFWPmCf/8QAGhAAAgIDAAAAAAAAAAAAAAAAAhIAAQMTIf/aAAgBAQABBQLGLFYAsAkvbyf/xAAWEQEBAQAAAAAAAAAAAAAAAAARARD/2gAIAQMBAT8BgZ//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAABBAMBAAAAAAAAAAAAAAARABAxgRIhIkL/2gAIAQEABj8C2aXOUFqUeQ3/xAAaEAEBAAIDAAAAAAAAAAAAAAABEQAQITGR/9oACAEBAAE/IQgEBcXENOzjVxlqMbR7df/aAAwDAQACAAMAAAAQIB//xAAWEQEBAQAAAAAAAAAAAAAAAAAxARD/2gAIAQMBAT8QtnP/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAeEAEAAQQCAwAAAAAAAAAAAAABEQAQMVEhQWFxgf/aAAgBAQABPxBIgqECB7rNVREBvk5+W0vjMZ7rcoz8O8W//9k=","aspectRatio":1.3333333333333333,"originalImg":"/static/71c7c1b6e932db9fa9d8496ae3d2e562/14b42/modern-treasury.jpg","originalName":"modern-treasury.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"935cc5e2-5706-5342-b2fa-6f0e0f1cb4e9","fluid":{"src":"/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/14b42/opt_mdp_thumbnail.jpg","srcSet":"/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/f836f/opt_mdp_thumbnail.jpg 200w,\n/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/2244e/opt_mdp_thumbnail.jpg 400w,\n/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/14b42/opt_mdp_thumbnail.jpg 800w","srcWebp":"/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/58556/opt_mdp_thumbnail.webp","srcSetWebp":"/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/61e93/opt_mdp_thumbnail.webp 200w,\n/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/1f5c5/opt_mdp_thumbnail.webp 400w,\n/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/58556/opt_mdp_thumbnail.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQFAv/EABUBAQEAAAAAAAAAAAAAAAAAAAAD/9oADAMBAAIQAxAAAAFWjKfUTMh//8QAGxAAAgIDAQAAAAAAAAAAAAAAAgMBEgAEERT/2gAIAQEAAQUCWuzPDGMRQhdxk7gcPYtP/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAECEf/aAAgBAwEBPwF1RrP/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAcEAACAgMBAQAAAAAAAAAAAAAAARESAiEycZH/2gAIAQEABj8Cwxt0pO38IumYNrlRo1efSapH/8QAGxAAAgMAAwAAAAAAAAAAAAAAAAERITFBUWH/2gAIAQEAAT8hl3xFg+UjIAMjt6xet+jgONP/2gAMAwEAAgADAAAAENMf/8QAFxEAAwEAAAAAAAAAAAAAAAAAABEhAf/aAAgBAwEBPxBGGJp//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAAIDAQEBAAAAAAAAAAAAAREhADFhQaGx/9oACAEBAAE/EIrzrKLF06yb6OXFJC9FlpD2vuTGD9JEN/cU08II6zf5g8GCIFVtZX1vef/Z","aspectRatio":1.3333333333333333,"originalImg":"/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/14b42/opt_mdp_thumbnail.jpg","originalName":"opt_mdp_thumbnail.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"6b698bfa-5549-501a-814e-3bf6d4741dbc","fluid":{"src":"/static/1cf349486ccb73d39771a0a83d99b80b/14b42/opt_tsp_tailwindcss_thumbnail.jpg","srcSet":"/static/1cf349486ccb73d39771a0a83d99b80b/f836f/opt_tsp_tailwindcss_thumbnail.jpg 200w,\n/static/1cf349486ccb73d39771a0a83d99b80b/2244e/opt_tsp_tailwindcss_thumbnail.jpg 400w,\n/static/1cf349486ccb73d39771a0a83d99b80b/14b42/opt_tsp_tailwindcss_thumbnail.jpg 800w","srcWebp":"/static/1cf349486ccb73d39771a0a83d99b80b/58556/opt_tsp_tailwindcss_thumbnail.webp","srcSetWebp":"/static/1cf349486ccb73d39771a0a83d99b80b/61e93/opt_tsp_tailwindcss_thumbnail.webp 200w,\n/static/1cf349486ccb73d39771a0a83d99b80b/1f5c5/opt_tsp_tailwindcss_thumbnail.webp 400w,\n/static/1cf349486ccb73d39771a0a83d99b80b/58556/opt_tsp_tailwindcss_thumbnail.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABQABBP/EABQBAQAAAAAAAAAAAAAAAAAAAAH/2gAMAwEAAhADEAAAAXMOQXgkJP/EABoQAAMBAAMAAAAAAAAAAAAAAAECEQMAECH/2gAIAQEAAQUC9rreODdmI1vX/8QAFxEBAQEBAAAAAAAAAAAAAAAAAQARIf/aAAgBAwEBPwFE7bf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwFX/8QAGhAAAQUBAAAAAAAAAAAAAAAAAAECECExYf/aAAgBAQAGPwI6hbTZ/8QAHRABAAICAgMAAAAAAAAAAAAAAQARIUEQUTFxgf/aAAgBAQABPyHTTXcADjQs8Dr3MOVFNfJ7cf/aAAwDAQACAAMAAAAQtP8A/8QAGBEAAgMAAAAAAAAAAAAAAAAAAAERQVH/2gAIAQMBAT8QSJrIYf/EABURAQEAAAAAAAAAAAAAAAAAABEQ/9oACAECAQE/EAn/xAAbEAEBAAMBAQEAAAAAAAAAAAABEQAhMVFhcf/aAAgBAQABPxAUkPVSfnuan2pLH55miDBEbT7ruTEFCweN5XKsuDS25//Z","aspectRatio":1.3333333333333333,"originalImg":"/static/1cf349486ccb73d39771a0a83d99b80b/14b42/opt_tsp_tailwindcss_thumbnail.jpg","originalName":"opt_tsp_tailwindcss_thumbnail.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"1064283f-34d4-50ff-b123-5de9dcb84a77","fluid":{"src":"/static/d64f6c657872d1235898a7b28cc15c4d/14b42/usetiful.jpg","srcSet":"/static/d64f6c657872d1235898a7b28cc15c4d/f836f/usetiful.jpg 200w,\n/static/d64f6c657872d1235898a7b28cc15c4d/2244e/usetiful.jpg 400w,\n/static/d64f6c657872d1235898a7b28cc15c4d/14b42/usetiful.jpg 800w","srcWebp":"/static/d64f6c657872d1235898a7b28cc15c4d/58556/usetiful.webp","srcSetWebp":"/static/d64f6c657872d1235898a7b28cc15c4d/61e93/usetiful.webp 200w,\n/static/d64f6c657872d1235898a7b28cc15c4d/1f5c5/usetiful.webp 400w,\n/static/d64f6c657872d1235898a7b28cc15c4d/58556/usetiful.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQBAgMF/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAECA//aAAwDAQACEAMQAAAB4jyl9IwJGf/EABoQAAEFAQAAAAAAAAAAAAAAAAEAAgMEEBL/2gAIAQEAAQUCVmBsONIC7Gf/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAbEAABBAMAAAAAAAAAAAAAAAACAAEQERIhMv/aAAgBAQAGPwJDiV3GxtcNH//EABwQAAEEAwEAAAAAAAAAAAAAAAEAEBExQVFxkf/aAAgBAQABPyECSBSFS80hqU7W32b/2gAMAwEAAgADAAAAEE8P/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFhEBAQEAAAAAAAAAAAAAAAAAEQEQ/9oACAECAQE/EKuf/8QAGxABAQACAwEAAAAAAAAAAAAAAREAIRBBYYH/2gAIAQEAAT8QJRAoV6xBVLEHU2eb4vb5JSTKymej5jKwhn//2Q==","aspectRatio":1.3333333333333333,"originalImg":"/static/d64f6c657872d1235898a7b28cc15c4d/14b42/usetiful.jpg","originalName":"usetiful.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"42a95671-c520-5c86-b02b-27fd90051a43","fluid":{"src":"/static/8b944b92d6ecf86a39ca0ab040027646/14b42/BannerMDB.jpg","srcSet":"/static/8b944b92d6ecf86a39ca0ab040027646/f836f/BannerMDB.jpg 200w,\n/static/8b944b92d6ecf86a39ca0ab040027646/2244e/BannerMDB.jpg 400w,\n/static/8b944b92d6ecf86a39ca0ab040027646/14b42/BannerMDB.jpg 800w,\n/static/8b944b92d6ecf86a39ca0ab040027646/47498/BannerMDB.jpg 1200w,\n/static/8b944b92d6ecf86a39ca0ab040027646/e962a/BannerMDB.jpg 1530w","srcWebp":"/static/8b944b92d6ecf86a39ca0ab040027646/58556/BannerMDB.webp","srcSetWebp":"/static/8b944b92d6ecf86a39ca0ab040027646/61e93/BannerMDB.webp 200w,\n/static/8b944b92d6ecf86a39ca0ab040027646/1f5c5/BannerMDB.webp 400w,\n/static/8b944b92d6ecf86a39ca0ab040027646/58556/BannerMDB.webp 800w,\n/static/8b944b92d6ecf86a39ca0ab040027646/99238/BannerMDB.webp 1200w,\n/static/8b944b92d6ecf86a39ca0ab040027646/09af0/BannerMDB.webp 1530w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAFABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAME/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAECA//aAAwDAQACEAMQAAAB10NSIc//xAAYEAADAQEAAAAAAAAAAAAAAAABAhEAMf/aAAgBAQABBQJbe4pT/8QAFhEBAQEAAAAAAAAAAAAAAAAAARAh/9oACAEDAQE/AXGf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAQBB/9oACAECAQE/Achb/8QAGBAAAwEBAAAAAAAAAAAAAAAAAAExIZH/2gAIAQEABj8CrKa1w//EABsQAQEAAQUAAAAAAAAAAAAAAAERACFRYXHB/9oACAEBAAE/IXRLDvitar3iosbw9z//2gAMAwEAAgADAAAAEHf/AP/EABYRAQEBAAAAAAAAAAAAAAAAAAEAIf/aAAgBAwEBPxA4E3//xAAWEQEBAQAAAAAAAAAAAAAAAAABEQD/2gAIAQIBAT8QC1ojf//EABoQAQACAwEAAAAAAAAAAAAAAAEAESExkaH/2gAIAQEAAT8Qop4FtOMaSaLERSRLD2F4j//Z","aspectRatio":3.9215686274509802,"originalImg":"/static/8b944b92d6ecf86a39ca0ab040027646/e962a/BannerMDB.jpg","originalName":"BannerMDB.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"c8bf132f-b718-5d06-9394-436f4b608bff","fluid":{"src":"/static/9b7bb2df198486539795a294cbdefc5a/14b42/light-bootstrap-dashboard-react.jpg","srcSet":"/static/9b7bb2df198486539795a294cbdefc5a/f836f/light-bootstrap-dashboard-react.jpg 200w,\n/static/9b7bb2df198486539795a294cbdefc5a/2244e/light-bootstrap-dashboard-react.jpg 400w,\n/static/9b7bb2df198486539795a294cbdefc5a/14b42/light-bootstrap-dashboard-react.jpg 800w","srcWebp":"/static/9b7bb2df198486539795a294cbdefc5a/58556/light-bootstrap-dashboard-react.webp","srcSetWebp":"/static/9b7bb2df198486539795a294cbdefc5a/61e93/light-bootstrap-dashboard-react.webp 200w,\n/static/9b7bb2df198486539795a294cbdefc5a/1f5c5/light-bootstrap-dashboard-react.webp 400w,\n/static/9b7bb2df198486539795a294cbdefc5a/58556/light-bootstrap-dashboard-react.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAIEBf/EABUBAQEAAAAAAAAAAAAAAAAAAAIB/9oADAMBAAIQAxAAAAF9PAvoUhEP/8QAHBAAAgICAwAAAAAAAAAAAAAAAgMAAQQTERIi/9oACAEBAAEFAk+naAj+oGk9TKzeY4qMv//EABYRAAMAAAAAAAAAAAAAAAAAAAEQEf/aAAgBAwEBPwERf//EABURAQEAAAAAAAAAAAAAAAAAABAh/9oACAECAQE/Aaf/xAAeEAACAQMFAAAAAAAAAAAAAAAAEQEhIjECEhNBYf/aAAgBAQAGPwLbJgUHJmhdop5Ja0uz/8QAGxABAQEAAgMAAAAAAAAAAAAAAREAITFBYZH/2gAIAQEAAT8hjvyLva+7k6Eu5F5iYKFowNQBGf/aAAwDAQACAAMAAAAQHC//xAAXEQADAQAAAAAAAAAAAAAAAAAAASEx/9oACAEDAQE/EI0en//EABcRAAMBAAAAAAAAAAAAAAAAAAABMVH/2gAIAQIBAT8QeBQ//8QAHRABAQACAQUAAAAAAAAAAAAAAREAMSFBgZGh0f/aAAgBAQABPxAPsMhxqYgc+bk8DGFu8VBpAWNZt7ZB0gtH3grUShev3P/Z","aspectRatio":1.3333333333333333,"originalImg":"/static/9b7bb2df198486539795a294cbdefc5a/14b42/light-bootstrap-dashboard-react.jpg","originalName":"light-bootstrap-dashboard-react.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"99808eab-1a10-56a2-9137-20ac13f7e5c7","fluid":{"src":"/static/4460ca7f74838594b2823193cf5caeeb/14b42/material-kit-pro-react.jpg","srcSet":"/static/4460ca7f74838594b2823193cf5caeeb/f836f/material-kit-pro-react.jpg 200w,\n/static/4460ca7f74838594b2823193cf5caeeb/2244e/material-kit-pro-react.jpg 400w,\n/static/4460ca7f74838594b2823193cf5caeeb/14b42/material-kit-pro-react.jpg 800w","srcWebp":"/static/4460ca7f74838594b2823193cf5caeeb/58556/material-kit-pro-react.webp","srcSetWebp":"/static/4460ca7f74838594b2823193cf5caeeb/61e93/material-kit-pro-react.webp 200w,\n/static/4460ca7f74838594b2823193cf5caeeb/1f5c5/material-kit-pro-react.webp 400w,\n/static/4460ca7f74838594b2823193cf5caeeb/58556/material-kit-pro-react.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAYBAgX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAcSzDOheG4L/xAAZEAEAAwEBAAAAAAAAAAAAAAACAAEDEBH/2gAIAQEAAQUC54ZRGsyyzdghH//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABURAQEAAAAAAAAAAAAAAAAAAAAR/9oACAECAQE/Aar/xAAfEAABAwMFAAAAAAAAAAAAAAAAAQIhAxEyBBIxQWH/2gAIAQEABj8CJMio5zN6sWydE6dG+3MeIP/EAB0QAAICAQUAAAAAAAAAAAAAAAABESExUXGBscH/2gAIAQEAAT8hlqIgSzThlS8C5UwR0KykTlKIuxof/9oADAMBAAIAAwAAABBwH//EABcRAAMBAAAAAAAAAAAAAAAAAAABEVH/2gAIAQMBAT8Qawh//8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERQf/aAAgBAgEBPxBPpZ//xAAbEAEBAAMBAQEAAAAAAAAAAAABEQAhMWFBkf/aAAgBAQABPxBbRU/MtWrsDOhsgsqYzeqBobBNfeuNQnJC/Jc1ajZT4z//2Q==","aspectRatio":1.3333333333333333,"originalImg":"/static/4460ca7f74838594b2823193cf5caeeb/14b42/material-kit-pro-react.jpg","originalName":"material-kit-pro-react.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"6bc0d9c2-25f7-5011-b601-064bed230566","fluid":{"src":"/static/57c2567d31be1739b3b0922339feea7f/14b42/nextjs-material-kit-pro.jpg","srcSet":"/static/57c2567d31be1739b3b0922339feea7f/f836f/nextjs-material-kit-pro.jpg 200w,\n/static/57c2567d31be1739b3b0922339feea7f/2244e/nextjs-material-kit-pro.jpg 400w,\n/static/57c2567d31be1739b3b0922339feea7f/14b42/nextjs-material-kit-pro.jpg 800w","srcWebp":"/static/57c2567d31be1739b3b0922339feea7f/58556/nextjs-material-kit-pro.webp","srcSetWebp":"/static/57c2567d31be1739b3b0922339feea7f/61e93/nextjs-material-kit-pro.webp 200w,\n/static/57c2567d31be1739b3b0922339feea7f/1f5c5/nextjs-material-kit-pro.webp 400w,\n/static/57c2567d31be1739b3b0922339feea7f/58556/nextjs-material-kit-pro.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAUBAgP/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABX6PbCMkr/8QAGhAAAgMBAQAAAAAAAAAAAAAAAQMAAhEEEv/aAAgBAQABBQItAgvYz2TBzryiVxzNv//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EAB4QAAICAAcAAAAAAAAAAAAAAAABAiIQESEyM2GR/9oACAEBAAY/Aqw9NqWFoRbXRxpMrDJLQ//EABoQAQEBAQADAAAAAAAAAAAAAAERACExQVH/2gAIAQEAAT8hcOxl5Ji4EOoQbyRdLbh03OYvx63/2gAMAwEAAgADAAAAEJgP/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oACAEDAQE/ELGP/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oACAECAQE/EK1//8QAHBABAQACAgMAAAAAAAAAAAAAAREAITFhUaGx/9oACAEBAAE/EKQSrW/WHhDJtA8vWF0CgwXWCTjwTyeDWQFGSKFNneMOsKMKnfzP/9k=","aspectRatio":1.3333333333333333,"originalImg":"/static/57c2567d31be1739b3b0922339feea7f/14b42/nextjs-material-kit-pro.jpg","originalName":"nextjs-material-kit-pro.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"50e6b6e2-1b9e-5ead-b7ee-9c79cd452fc4","fluid":{"src":"/static/29768be19e65f70fba4ba4a03a48b684/14b42/now-ui-dashboard-pro.jpg","srcSet":"/static/29768be19e65f70fba4ba4a03a48b684/f836f/now-ui-dashboard-pro.jpg 200w,\n/static/29768be19e65f70fba4ba4a03a48b684/2244e/now-ui-dashboard-pro.jpg 400w,\n/static/29768be19e65f70fba4ba4a03a48b684/14b42/now-ui-dashboard-pro.jpg 800w","srcWebp":"/static/29768be19e65f70fba4ba4a03a48b684/58556/now-ui-dashboard-pro.webp","srcSetWebp":"/static/29768be19e65f70fba4ba4a03a48b684/61e93/now-ui-dashboard-pro.webp 200w,\n/static/29768be19e65f70fba4ba4a03a48b684/1f5c5/now-ui-dashboard-pro.webp 400w,\n/static/29768be19e65f70fba4ba4a03a48b684/58556/now-ui-dashboard-pro.webp 800w","base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAMEAf/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAVL2mdZCYF//xAAcEAEAAgEFAAAAAAAAAAAAAAACAAMSAQQRFSP/2gAIAQEAAQUCxeh9I8jDu1z2EttVr//EABgRAAMBAQAAAAAAAAAAAAAAAAABAhJB/9oACAEDAQE/Aat8Zuj/xAAXEQEBAQEAAAAAAAAAAAAAAAABABFB/9oACAECAQE/AQO2F//EACAQAAIBAQkAAAAAAAAAAAAAAAABAhESIjEzQWGBkaH/2gAIAQEABj8CbfG5g+hV1I1irpl+lpn/xAAaEAEBAQADAQAAAAAAAAAAAAABEQBBUYHB/9oACAEBAAE/IYKjxmAn7cHrIphIqIRmvbnxOjf/2gAMAwEAAgADAAAAEIPf/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERIf/aAAgBAwEBPxB2Apaz/8QAFxEAAwEAAAAAAAAAAAAAAAAAAAERUf/aAAgBAgEBPxBawPI//8QAHhABAAICAQUAAAAAAAAAAAAAAQARITFhQVFx0fD/2gAIAQEAAT8QWDUHKp3KmcGceiDQMS01aZOmpS2Sysc7nG+eIi1XjFuULrO2f//Z","aspectRatio":1.3333333333333333,"originalImg":"/static/29768be19e65f70fba4ba4a03a48b684/14b42/now-ui-dashboard-pro.jpg","originalName":"now-ui-dashboard-pro.jpg","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"77c4a2c6-9429-56a5-974b-09d56906fce9","fluid":{"src":"/static/fc93eda84a46a43ed37f8e4039ad63fd/ee604/dopt.png","srcSet":"/static/fc93eda84a46a43ed37f8e4039ad63fd/69585/dopt.png 200w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/497c6/dopt.png 400w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/ee604/dopt.png 800w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/f3583/dopt.png 1200w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/5707d/dopt.png 1600w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/ed396/dopt.png 2000w","srcWebp":"/static/fc93eda84a46a43ed37f8e4039ad63fd/58556/dopt.webp","srcSetWebp":"/static/fc93eda84a46a43ed37f8e4039ad63fd/61e93/dopt.webp 200w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/1f5c5/dopt.webp 400w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/58556/dopt.webp 800w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/99238/dopt.webp 1200w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/7c22d/dopt.webp 1600w,\n/static/fc93eda84a46a43ed37f8e4039ad63fd/37117/dopt.webp 2000w","base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAAsTAAALEwEAmpwYAAACC0lEQVQoz2Mod/2CjCrcvlS4QxFUBMJ1+4KmEogY0PiFNl8KrD8DUb7Vl2KHL6VOQC5EBMRGM4IBzdq5ld+Xtn5f3PR9efv37sSvLeFfl7V+X9IMEmkM+lriiKIfobnM6Vu537MTOz4vbf6xuPH7/Jrvxzf/Or/nF1Dbgtrvq3t+HFrzq9r7S5kzFs2fy5y+l/nf3zzvfZ7Ftxrfr9MLv82p+AbU05v8DeiEZM3PO+b9nJT5rdAWYTma5gdbF7zPt/wGdO3m6T+nF35f3PADaPOs0m+J6p83z/g5ORu35hLf+/vXvp+c+WNa3re5lT/2r/x2fBuQ8R3oiukF3y4d/NUchuJthOZy5+9FXvdP7/uwY+6vTdO+b5j489KxL5dPfNy7GMj9sW32z5un/3QnfC22x+XsgAeb577PMf1a4f65K+Hr/Jofm6b+TFT/VOzwOU7p05q+n1NyvwHjEqefty18X+oI8vOqzp9r+36c3/cLGFpAp07MBDm7L/VbkR1uzfvXfqrx+rlxyo99az6smvx6fs+dg6t/Vrr9OLnz26K2N1Ue38pcsEVVhcv3PNd7mxY92jz/9eHNnxqjX+ZafsxwuLFz1bMtC17vXvq51AmIvpRjTSQVrl+LnN/kOj4ucHtc7PwWGH6V7t+gIq5PSlzeVbh9xZe2gdKVbt8rXIHoKyj80UUIZQySEAAujyHnyalvYQAAAABJRU5ErkJggg==","aspectRatio":1.3333333333333333,"originalImg":"/static/fc93eda84a46a43ed37f8e4039ad63fd/ed396/dopt.png","originalName":"dopt.png","sizes":"(max-width: 800px) 100vw, 800px"}}},{"node":{"id":"f823b634-aa35-5902-9513-917f616228bf","fluid":{"src":"/static/bd1f1d31fdb5043b5eae388b23717937/ee604/popper-logo.png","srcSet":"/static/bd1f1d31fdb5043b5eae388b23717937/69585/popper-logo.png 200w,\n/static/bd1f1d31fdb5043b5eae388b23717937/497c6/popper-logo.png 400w,\n/static/bd1f1d31fdb5043b5eae388b23717937/ee604/popper-logo.png 800w,\n/static/bd1f1d31fdb5043b5eae388b23717937/f3583/popper-logo.png 1200w,\n/static/bd1f1d31fdb5043b5eae388b23717937/5707d/popper-logo.png 1600w,\n/static/bd1f1d31fdb5043b5eae388b23717937/ed396/popper-logo.png 2000w","srcWebp":"/static/bd1f1d31fdb5043b5eae388b23717937/58556/popper-logo.webp","srcSetWebp":"/static/bd1f1d31fdb5043b5eae388b23717937/61e93/popper-logo.webp 200w,\n/static/bd1f1d31fdb5043b5eae388b23717937/1f5c5/popper-logo.webp 400w,\n/static/bd1f1d31fdb5043b5eae388b23717937/58556/popper-logo.webp 800w,\n/static/bd1f1d31fdb5043b5eae388b23717937/99238/popper-logo.webp 1200w,\n/static/bd1f1d31fdb5043b5eae388b23717937/7c22d/popper-logo.webp 1600w,\n/static/bd1f1d31fdb5043b5eae388b23717937/37117/popper-logo.webp 2000w","base64":"data:image/png;base64,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","aspectRatio":0.6993006993006993,"originalImg":"/static/bd1f1d31fdb5043b5eae388b23717937/ed396/popper-logo.png","originalName":"popper-logo.png","sizes":"(max-width: 800px) 100vw, 800px"}}}]}}} \ No newline at end of file diff --git a/page-data/sq/d/32046230.json b/page-data/sq/d/32046230.json new file mode 100644 index 00000000..fe7e00c0 --- /dev/null +++ b/page-data/sq/d/32046230.json @@ -0,0 +1 @@ +{"data":{"site":{"siteMetadata":{"title":"Popper","description":"Positioning tooltips and popovers is difficult. Popper is here to help! Popper is the de facto standard to position tooltips and popovers in modern web applications.","author":"@FezVrasta","image":"/images/popper-og-image.jpg"}}}} \ No newline at end of file diff --git a/polyfill-1e640fd64349b14fd46d.js b/polyfill-1e640fd64349b14fd46d.js new file mode 100644 index 00000000..b04eddbb --- /dev/null +++ b/polyfill-1e640fd64349b14fd46d.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[41],{VXT5:function(t,e,r){(function(t){!function(){var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{};function r(t,e,r){return t(r={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var n=function(t){return t&&t.Math==Math&&t},o=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")(),i=function(t){try{return!!t()}catch(t){return!0}},a=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),u={}.propertyIsEnumerable,c=Object.getOwnPropertyDescriptor,s={f:c&&!u.call({1:2},1)?function(t){var e=c(this,t);return!!e&&e.enumerable}:u},f=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},l={}.toString,h=function(t){return l.call(t).slice(8,-1)},p="".split,d=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==h(t)?p.call(t,""):Object(t)}:Object,v=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},g=function(t){return d(v(t))},y=function(t){return"object"==typeof t?null!==t:"function"==typeof t},m=function(t,e){if(!y(t))return t;var r,n;if(e&&"function"==typeof(r=t.toString)&&!y(n=r.call(t)))return n;if("function"==typeof(r=t.valueOf)&&!y(n=r.call(t)))return n;if(!e&&"function"==typeof(r=t.toString)&&!y(n=r.call(t)))return n;throw TypeError("Can't convert object to primitive value")},b={}.hasOwnProperty,S=function(t,e){return b.call(t,e)},E=o.document,w=y(E)&&y(E.createElement),R=function(t){return w?E.createElement(t):{}},T=!a&&!i((function(){return 7!=Object.defineProperty(R("div"),"a",{get:function(){return 7}}).a})),O=Object.getOwnPropertyDescriptor,x={f:a?O:function(t,e){if(t=g(t),e=m(e,!0),T)try{return O(t,e)}catch(t){}if(S(t,e))return f(!s.f.call(t,e),t[e])}},A=function(t){if(!y(t))throw TypeError(String(t)+" is not an object");return t},I=Object.defineProperty,_={f:a?I:function(t,e,r){if(A(t),e=m(e,!0),A(r),T)try{return I(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},j=a?function(t,e,r){return _.f(t,e,f(1,r))}:function(t,e,r){return t[e]=r,t},P=function(t,e){try{j(o,t,e)}catch(n){o[t]=e}return e},N=o["__core-js_shared__"]||P("__core-js_shared__",{}),M=Function.toString;"function"!=typeof N.inspectSource&&(N.inspectSource=function(t){return M.call(t)});var U,k,L,D=N.inspectSource,C=o.WeakMap,F="function"==typeof C&&/native code/.test(D(C)),B=r((function(t){(t.exports=function(t,e){return N[t]||(N[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.8.1",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),W=0,z=Math.random(),G=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++W+z).toString(36)},K=B("keys"),V=function(t){return K[t]||(K[t]=G(t))},$={};if(F){var q=N.state||(N.state=new(0,o.WeakMap)),H=q.get,X=q.has,Y=q.set;U=function(t,e){return e.facade=t,Y.call(q,t,e),e},k=function(t){return H.call(q,t)||{}},L=function(t){return X.call(q,t)}}else{var J=V("state");$[J]=!0,U=function(t,e){return e.facade=t,j(t,J,e),e},k=function(t){return S(t,J)?t[J]:{}},L=function(t){return S(t,J)}}var Q,Z={set:U,get:k,has:L,enforce:function(t){return L(t)?k(t):U(t,{})},getterFor:function(t){return function(e){var r;if(!y(e)||(r=k(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}},tt=r((function(t){var e=Z.get,r=Z.enforce,n=String(String).split("String");(t.exports=function(t,e,i,a){var u,c=!!a&&!!a.unsafe,s=!!a&&!!a.enumerable,f=!!a&&!!a.noTargetGet;"function"==typeof i&&("string"!=typeof e||S(i,"name")||j(i,"name",e),(u=r(i)).source||(u.source=n.join("string"==typeof e?e:""))),t!==o?(c?!f&&t[e]&&(s=!0):delete t[e],s?t[e]=i:j(t,e,i)):s?t[e]=i:P(e,i)})(Function.prototype,"toString",(function(){return"function"==typeof this&&e(this).source||D(this)}))})),et=o,rt=function(t){return"function"==typeof t?t:void 0},nt=function(t,e){return arguments.length<2?rt(et[t])||rt(o[t]):et[t]&&et[t][e]||o[t]&&o[t][e]},ot=Math.ceil,it=Math.floor,at=function(t){return isNaN(t=+t)?0:(t>0?it:ot)(t)},ut=Math.min,ct=function(t){return t>0?ut(at(t),9007199254740991):0},st=Math.max,ft=Math.min,lt=function(t,e){var r=at(t);return r<0?st(r+e,0):ft(r,e)},ht=function(t){return function(e,r,n){var o,i=g(e),a=ct(i.length),u=lt(n,a);if(t&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===r)return t||u||0;return!t&&-1}},pt={includes:ht(!0),indexOf:ht(!1)},dt=pt.indexOf,vt=function(t,e){var r,n=g(t),o=0,i=[];for(r in n)!S($,r)&&S(n,r)&&i.push(r);for(;e.length>o;)S(n,r=e[o++])&&(~dt(i,r)||i.push(r));return i},gt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],yt=gt.concat("length","prototype"),mt={f:Object.getOwnPropertyNames||function(t){return vt(t,yt)}},bt={f:Object.getOwnPropertySymbols},St=nt("Reflect","ownKeys")||function(t){var e=mt.f(A(t)),r=bt.f;return r?e.concat(r(t)):e},Et=function(t,e){for(var r=St(e),n=_.f,o=x.f,i=0;i2?arguments[2]:void 0,u=Nt((void 0===a?n:lt(a,n))-i,n-o),c=1;for(i0;)i in r?r[o]=r[i]:delete r[o],o+=c,i+=c;return r},Ut=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())})),kt=Ut&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Lt=B("wks"),Dt=o.Symbol,Ct=kt?Dt:Dt&&Dt.withoutSetter||G,Ft=function(t){return S(Lt,t)||(Lt[t]=Ut&&S(Dt,t)?Dt[t]:Ct("Symbol."+t)),Lt[t]},Bt=Object.keys||function(t){return vt(t,gt)},Wt=a?Object.defineProperties:function(t,e){A(t);for(var r,n=Bt(e),o=n.length,i=0;o>i;)_.f(t,r=n[i++],e[r]);return t},zt=nt("document","documentElement"),Gt=V("IE_PROTO"),Kt=function(){},Vt=function(t){return" \ No newline at end of file diff --git a/react-popper/v2/faq/index.html b/react-popper/v2/faq/index.html new file mode 100644 index 00000000..f07aee63 --- /dev/null +++ b/react-popper/v2/faq/index.html @@ -0,0 +1,69 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home

Frequently Asked Questions (FAQ)

Don't see your question here? Feel free to ask on +Spectrum! We'll try to +answer you within a day or two.

Why I get render loop whenever I put a function inside the popper configuration?

The following code example will produce a render loop:

const { styles, attributes } = usePopper(referenceElement, popperElement, {
+  modifiers: [
+    {
+      name: 'offset',
+      options: {
+        offset: ({ placement, reference, popper }) => {
+          return [0, 0];
+        },
+      },
+    },
+  ],
+});

As well as this one:

const { styles, attributes } = usePopper(referenceElement, popperElement, {
+  modifiers: [
+    {
+      name: 'custom',
+      fn: state => state,
+    },
+  ],
+});

This happens because react-popper performs a shallow comparison on the +configuration provided.
+By defining a function inline, the shallow comparison fails and makes the code +think the configuration changed every time it's set, provoking the loop.

There are two possible solutions:

  1. Define your functions outside the component body;
  2. Define your functions inside a React.useMemo or React.useCallback Hook;

Here's an example of a working solution:

const customModifier = React.useMemo(
+  () => ({
+    name: 'custom',
+    fn: state => state,
+  }),
+  []
+);
+
+const { styles, attributes } = usePopper(referenceElement, popperElement, {
+  modifiers: [customModifier],
+});
Edit this page
Typings
© 2023 MIT License
\ No newline at end of file diff --git a/react-popper/v2/hook/index.html b/react-popper/v2/hook/index.html new file mode 100644 index 00000000..ddf3f628 --- /dev/null +++ b/react-popper/v2/hook/index.html @@ -0,0 +1,49 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home

React Hook

The usePopper hook provides an API almost identical to the ones of +createPopper constructor.

Rather than returning a Popper instance, it will return an object containing the +following properties:

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

styles

The styles property is an object, its properties are popper, and arrow. +The two properties are a +CSSStyleDeclaration interface +describing the necessary CSS properties needed to properly position the two +elements.

You can directly assign the value of the two properties to the React style +property of your components.

<div style={styles.popper} />

attributes

Similar to styles, the attributes object lists the popper and arrow HTML +attributes, by default, only popper will hold some attributes (e.g. +data-popper-placement), but more generically, any HTML attribute described by +the Popper documentation will be available inside these properties.

The easiest way to consume their values is by destructuring them directly onto +your React component.

<div {...attributes.popper} />

update, forceUpdate, and state

These properties match the ones described in the +Popper docs, the only difference is that +they can be null if Popper isn't yet been initialized or has been destroyed.

Edit this page
v2.×
© 2023 MIT License
\ No newline at end of file diff --git a/react-popper/v2/index.html b/react-popper/v2/index.html new file mode 100644 index 00000000..181cbd70 --- /dev/null +++ b/react-popper/v2/index.html @@ -0,0 +1,69 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home

React Popper 2.×

The second major version of react-popper brings compatibility with Popper 2.x +and introduces a new React Hook to use the library with modern React patterns.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

Install

Via package managers:

# With npm
+npm i react-popper @popperjs/core
+
+# With Yarn
+yarn add react-popper @popperjs/core

Note: @popperjs/core must be installed in your project in order for +react-popper to work.

Via script tag (UMD library exposed as ReactPopper):

<script src="https://unpkg.com/react-popper/dist/index.umd.js"></script>

Example

import React, { useState } from 'react';
+import { usePopper } from 'react-popper';
+
+const Example = () => {
+  const [referenceElement, setReferenceElement] = useState(null);
+  const [popperElement, setPopperElement] = useState(null);
+  const [arrowElement, setArrowElement] = useState(null);
+  const { styles, attributes } = usePopper(referenceElement, popperElement, {
+    modifiers: [{ name: 'arrow', options: { element: arrowElement } }],
+  });
+
+  return (
+    <>
+      <button type="button" ref={setReferenceElement}>
+        Reference element
+      </button>
+
+      <div ref={setPopperElement} style={styles.popper} {...attributes.popper}>
+        Popper element
+        <div ref={setArrowElement} style={styles.arrow} />
+      </div>
+    </>
+  );
+};

Note: the usePopper hook intentionally takes the DOM node, not refs, +in order to be able to update when the nodes change. +A callback ref +is used here to permit this behaviour, and useState is an appropriate way to +implement this.

Edit this page
React Popper
© 2023 MIT License
\ No newline at end of file diff --git a/react-popper/v2/react-portals/index.html b/react-popper/v2/react-portals/index.html new file mode 100644 index 00000000..e163e86b --- /dev/null +++ b/react-popper/v2/react-portals/index.html @@ -0,0 +1,66 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home

Usage with ReactDOM.createPortal

Popper.js is smart enough to work even if the popper and reference +elements aren't in the same DOM context.
+This means that you can use +ReactDOM.createPortal (or any pre +React 16 alternative) to move the popper component somewhere else in the DOM.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!

This can be useful if you want to position a tooltip inside an +overflow: hidden container that you want to make overflow.

Please note that you can also try strategy: 'fixed' to obtain a similar +effect with less hassle.

import { usePopper } from 'react-popper';
+
+const Example = () => {
+  const [referenceElement, setReferenceElement] = React.useState(null);
+  const [popperElement, setPopperElement] = React.useState(null);
+  const { styles, attributes } = usePopper(referenceElement, popperElement);
+
+  return (
+    <>
+      <button type="button" ref={setReferenceElement}>
+        Reference
+      </button>
+      {ReactDOM.createPortal(
+        <div
+          ref={setPopperElement}
+          style={styles.popper}
+          {...attributes.popper}
+        >
+          Popper
+        </div>,
+        document.querySelector('#destination')
+      )}
+    </>
+  );
+};
Edit this page
Render Props
© 2023 MIT License
\ No newline at end of file diff --git a/react-popper/v2/render-props/index.html b/react-popper/v2/render-props/index.html new file mode 100644 index 00000000..a9ab94b5 --- /dev/null +++ b/react-popper/v2/render-props/index.html @@ -0,0 +1,87 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home

Render Props

This is a legacy API for compatibility with v1.x users moving to Popper v2. We +recommend using the usePopper Hook in new code.

The Manager component is a simple wrapper that needs to surround all the other +react-popper components in order to make them communicate with each others.

The Popper component accepts the properties children, placement, +modifiers and strategy.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!
<Popper
+  innerRef={(node) => this.popperNode = node}
+  placement="right"
+  modifiers={[{ name: 'preventOverflow', enabled: false }]}
+  strategy="fixed"
+>
+    { props => [...] }
+</Popper>

children

children: ({|
+  ref: (?HTMLElement) => void,
+  style: { [string]: string | number },
+  placement: ?Placement,
+  isReferenceHidden: ?boolean,
+  hasPopperEscaped: ?boolean,
+  update: () => void,
+  forceUpdate: () => void,
+  arrowProps: {
+    ref: (?HTMLElement) => void,
+    style: { [string]: string | number },
+  },
+|}) => Node

A function (render prop) that takes as argument an object containing the +following properties:

  • ref: used to retrieve the +React refs of the popper +element.
  • style: contains the necessary CSS styles (React CSS properties) which +are computed by Popper.js to correctly position the popper element.
  • placement: describes the placement of your popper after Popper.js has +applied all the modifiers that may have flipped or altered the originally +provided placement property. You can use this to alter the style of the +popper and or of the arrow according to the definitive placement. For +instance, you can use this property to orient the arrow to the right +direction.
  • isReferenceHidden: a boolean signifying the reference element is fully +clipped and hidden from view.
  • hasPopperEscaped: a boolean signifying the popper escapes the reference +element's boundary (and so it appears detached).
  • update: a function you can ask Popper to recompute your tooltip's +position . It will directly call the +Popper#update method.
  • arrowProps: an object, containing style and ref properties that are +identical to the ones provided as the first and second arguments of +children, but relative to the arrow element. The style property +contains left and top offset values, which are used to center the arrow +within the popper. These values can be merged with further custom styling and +positioning. See +the demo +for an example.

innerRef

innerRef?: (?HTMLElement) => void

Function that can be used to obtain popper reference

placement

placement?: PopperJS$Placement;

One of the accepted placement values listed in the +Popper.js documentation.
+Your popper is going to be placed according to the value of this property.
+Defaults to bottom.

strategy

Describes the positioning strategy to use. By default, it is absolute, which +in the simplest cases does not require repositioning of the popper. If your +reference element is in a fixed container, use the fixed strategy. +Read More

modifiers

modifiers?: PopperJS$Modifiers;

An object containing custom settings for the +Popper.js modifiers.
+You can use this property to override their settings or to inject your custom +ones.

Edit this page
Hook
© 2023 MIT License
\ No newline at end of file diff --git a/react-popper/v2/typings/index.html b/react-popper/v2/typings/index.html new file mode 100644 index 00000000..74f1c070 --- /dev/null +++ b/react-popper/v2/typings/index.html @@ -0,0 +1,37 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home

Typings

This library is built with Flow but it supports TypeScript as well.

You can find the exported Flow types in src/index.js, and the TypeScript +definitions in typings/react-popper.d.ts.

You don't need any additional configuration to consume the types.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!
Edit this page
Virtual Elements
© 2023 MIT License
\ No newline at end of file diff --git a/react-popper/v2/virtual-elements/index.html b/react-popper/v2/virtual-elements/index.html new file mode 100644 index 00000000..9b21a2ab --- /dev/null +++ b/react-popper/v2/virtual-elements/index.html @@ -0,0 +1,64 @@ +
The future of Popper is here! Floating UI is now available. Get it now!
Popper Logo
Popper Logo
  • Home

Usage without a reference HTMLElement

Whenever you need to position a popper based on some arbitrary coordinates, you +can provide Popper with a virtual element.

Don't mind tech-related ads? Consider disabling your ad-blocker to help us!
They are small and unobtrusive.
Alternatively, support us on Open Collective!
import { usePopper } from 'react-popper';
+
+// This is going to create a virtual reference element
+// positioned 10px from top and left of the document
+// 90px wide and 10px high
+const virtualReference = {
+  getBoundingClientRect() {
+    return {
+      top: 10,
+      left: 10,
+      bottom: 20,
+      right: 100,
+      width: 90,
+      height: 10,
+    };
+  },
+};
+
+const Example = () => {
+  const [popperElement, setPopperElement] = React.useState(null);
+  const { styles, attributes } = usePopper(virtualReference, popperElement);
+
+  return (
+    <div ref={setPopperElement} style={styles.popper} {...attributes.popper}>
+      Popper element
+    </div>
+  );
+};
Edit this page
React Portals
© 2023 MIT License
\ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..8f6e4ed6 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,37 @@ + + + https://popper.js.org/ daily 0.7 + https://popper.js.org/docs/ daily 0.7 + https://popper.js.org/react-popper/ daily 0.7 + https://popper.js.org/docs/v2/constructors/ daily 0.7 + https://popper.js.org/docs/v2/faq/ daily 0.7 + https://popper.js.org/docs/v1/ daily 0.7 + https://popper.js.org/docs/v2/ daily 0.7 + https://popper.js.org/docs/v2/browser-support/ daily 0.7 + https://popper.js.org/docs/v2/performance/ daily 0.7 + https://popper.js.org/docs/v2/lifecycle/ daily 0.7 + https://popper.js.org/docs/v2/migration-guide/ daily 0.7 + https://popper.js.org/docs/v2/tutorial/ daily 0.7 + https://popper.js.org/docs/v2/typings/ daily 0.7 + https://popper.js.org/docs/v2/virtual-elements/ daily 0.7 + https://popper.js.org/react-popper/v2/faq/ daily 0.7 + https://popper.js.org/react-popper/v2/hook/ daily 0.7 + https://popper.js.org/react-popper/v2/ daily 0.7 + https://popper.js.org/react-popper/v2/react-portals/ daily 0.7 + https://popper.js.org/react-popper/v2/render-props/ daily 0.7 + https://popper.js.org/react-popper/v2/typings/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/apply-styles/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/arrow/ daily 0.7 + https://popper.js.org/react-popper/v2/virtual-elements/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/event-listeners/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/compute-styles/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/flip/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/community-modifiers/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/hide/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/popper-offsets/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/offset/ daily 0.7 + https://popper.js.org/docs/v2/modifiers/prevent-overflow/ daily 0.7 + https://popper.js.org/docs/v2/utils/detect-overflow/ daily 0.7 + https://popper.js.org/docs/v2/utils/ daily 0.7 + \ No newline at end of file diff --git a/static/001a4130f03a08cf5160ac618ff72944/14b42/mbd-react.jpg b/static/001a4130f03a08cf5160ac618ff72944/14b42/mbd-react.jpg new file mode 100644 index 00000000..cab7aee4 Binary files /dev/null and b/static/001a4130f03a08cf5160ac618ff72944/14b42/mbd-react.jpg differ diff --git a/static/001a4130f03a08cf5160ac618ff72944/1f5c5/mbd-react.webp b/static/001a4130f03a08cf5160ac618ff72944/1f5c5/mbd-react.webp new file mode 100644 index 00000000..8032687b Binary files /dev/null and b/static/001a4130f03a08cf5160ac618ff72944/1f5c5/mbd-react.webp differ diff --git a/static/001a4130f03a08cf5160ac618ff72944/2244e/mbd-react.jpg b/static/001a4130f03a08cf5160ac618ff72944/2244e/mbd-react.jpg new file mode 100644 index 00000000..838fa5a9 Binary files /dev/null and b/static/001a4130f03a08cf5160ac618ff72944/2244e/mbd-react.jpg differ diff --git a/static/001a4130f03a08cf5160ac618ff72944/58556/mbd-react.webp b/static/001a4130f03a08cf5160ac618ff72944/58556/mbd-react.webp new file mode 100644 index 00000000..da76e4f1 Binary files /dev/null and b/static/001a4130f03a08cf5160ac618ff72944/58556/mbd-react.webp differ diff --git a/static/001a4130f03a08cf5160ac618ff72944/61e93/mbd-react.webp b/static/001a4130f03a08cf5160ac618ff72944/61e93/mbd-react.webp new file mode 100644 index 00000000..f941f2fc Binary files /dev/null and b/static/001a4130f03a08cf5160ac618ff72944/61e93/mbd-react.webp differ diff --git a/static/001a4130f03a08cf5160ac618ff72944/f836f/mbd-react.jpg b/static/001a4130f03a08cf5160ac618ff72944/f836f/mbd-react.jpg new file mode 100644 index 00000000..6fb46428 Binary files /dev/null and b/static/001a4130f03a08cf5160ac618ff72944/f836f/mbd-react.jpg differ diff --git a/static/0546c71223e67efb967d4f0ef717de91/14b42/mdb-angular.jpg b/static/0546c71223e67efb967d4f0ef717de91/14b42/mdb-angular.jpg new file mode 100644 index 00000000..9c15898a Binary files /dev/null and b/static/0546c71223e67efb967d4f0ef717de91/14b42/mdb-angular.jpg differ diff --git a/static/0546c71223e67efb967d4f0ef717de91/1f5c5/mdb-angular.webp b/static/0546c71223e67efb967d4f0ef717de91/1f5c5/mdb-angular.webp new file mode 100644 index 00000000..e9a242c6 Binary files /dev/null and b/static/0546c71223e67efb967d4f0ef717de91/1f5c5/mdb-angular.webp differ diff --git a/static/0546c71223e67efb967d4f0ef717de91/2244e/mdb-angular.jpg b/static/0546c71223e67efb967d4f0ef717de91/2244e/mdb-angular.jpg new file mode 100644 index 00000000..afb11019 Binary files /dev/null and b/static/0546c71223e67efb967d4f0ef717de91/2244e/mdb-angular.jpg differ diff --git a/static/0546c71223e67efb967d4f0ef717de91/58556/mdb-angular.webp b/static/0546c71223e67efb967d4f0ef717de91/58556/mdb-angular.webp new file mode 100644 index 00000000..048ccfd5 Binary files /dev/null and b/static/0546c71223e67efb967d4f0ef717de91/58556/mdb-angular.webp differ diff --git a/static/0546c71223e67efb967d4f0ef717de91/61e93/mdb-angular.webp b/static/0546c71223e67efb967d4f0ef717de91/61e93/mdb-angular.webp new file mode 100644 index 00000000..921ccce4 Binary files /dev/null and b/static/0546c71223e67efb967d4f0ef717de91/61e93/mdb-angular.webp differ diff --git a/static/0546c71223e67efb967d4f0ef717de91/f836f/mdb-angular.jpg b/static/0546c71223e67efb967d4f0ef717de91/f836f/mdb-angular.jpg new file mode 100644 index 00000000..e115f54c Binary files /dev/null and b/static/0546c71223e67efb967d4f0ef717de91/f836f/mdb-angular.jpg differ diff --git a/static/1cf349486ccb73d39771a0a83d99b80b/14b42/opt_tsp_tailwindcss_thumbnail.jpg b/static/1cf349486ccb73d39771a0a83d99b80b/14b42/opt_tsp_tailwindcss_thumbnail.jpg new file mode 100644 index 00000000..fcc13260 Binary files /dev/null and b/static/1cf349486ccb73d39771a0a83d99b80b/14b42/opt_tsp_tailwindcss_thumbnail.jpg differ diff --git a/static/1cf349486ccb73d39771a0a83d99b80b/1f5c5/opt_tsp_tailwindcss_thumbnail.webp b/static/1cf349486ccb73d39771a0a83d99b80b/1f5c5/opt_tsp_tailwindcss_thumbnail.webp new file mode 100644 index 00000000..612b68ea Binary files /dev/null and b/static/1cf349486ccb73d39771a0a83d99b80b/1f5c5/opt_tsp_tailwindcss_thumbnail.webp differ diff --git a/static/1cf349486ccb73d39771a0a83d99b80b/2244e/opt_tsp_tailwindcss_thumbnail.jpg b/static/1cf349486ccb73d39771a0a83d99b80b/2244e/opt_tsp_tailwindcss_thumbnail.jpg new file mode 100644 index 00000000..841ca737 Binary files /dev/null and b/static/1cf349486ccb73d39771a0a83d99b80b/2244e/opt_tsp_tailwindcss_thumbnail.jpg differ diff --git a/static/1cf349486ccb73d39771a0a83d99b80b/58556/opt_tsp_tailwindcss_thumbnail.webp b/static/1cf349486ccb73d39771a0a83d99b80b/58556/opt_tsp_tailwindcss_thumbnail.webp new file mode 100644 index 00000000..ee5e5bcf Binary files /dev/null and b/static/1cf349486ccb73d39771a0a83d99b80b/58556/opt_tsp_tailwindcss_thumbnail.webp differ diff --git a/static/1cf349486ccb73d39771a0a83d99b80b/61e93/opt_tsp_tailwindcss_thumbnail.webp b/static/1cf349486ccb73d39771a0a83d99b80b/61e93/opt_tsp_tailwindcss_thumbnail.webp new file mode 100644 index 00000000..ba1d1682 Binary files /dev/null and b/static/1cf349486ccb73d39771a0a83d99b80b/61e93/opt_tsp_tailwindcss_thumbnail.webp differ diff --git a/static/1cf349486ccb73d39771a0a83d99b80b/f836f/opt_tsp_tailwindcss_thumbnail.jpg b/static/1cf349486ccb73d39771a0a83d99b80b/f836f/opt_tsp_tailwindcss_thumbnail.jpg new file mode 100644 index 00000000..344e0a23 Binary files /dev/null and b/static/1cf349486ccb73d39771a0a83d99b80b/f836f/opt_tsp_tailwindcss_thumbnail.jpg differ diff --git a/static/29768be19e65f70fba4ba4a03a48b684/14b42/now-ui-dashboard-pro.jpg b/static/29768be19e65f70fba4ba4a03a48b684/14b42/now-ui-dashboard-pro.jpg new file mode 100644 index 00000000..9e670c68 Binary files /dev/null and b/static/29768be19e65f70fba4ba4a03a48b684/14b42/now-ui-dashboard-pro.jpg differ diff --git a/static/29768be19e65f70fba4ba4a03a48b684/1f5c5/now-ui-dashboard-pro.webp b/static/29768be19e65f70fba4ba4a03a48b684/1f5c5/now-ui-dashboard-pro.webp new file mode 100644 index 00000000..2bec2394 Binary files /dev/null and b/static/29768be19e65f70fba4ba4a03a48b684/1f5c5/now-ui-dashboard-pro.webp differ diff --git a/static/29768be19e65f70fba4ba4a03a48b684/2244e/now-ui-dashboard-pro.jpg b/static/29768be19e65f70fba4ba4a03a48b684/2244e/now-ui-dashboard-pro.jpg new file mode 100644 index 00000000..7e16d76d Binary files /dev/null and b/static/29768be19e65f70fba4ba4a03a48b684/2244e/now-ui-dashboard-pro.jpg differ diff --git a/static/29768be19e65f70fba4ba4a03a48b684/58556/now-ui-dashboard-pro.webp b/static/29768be19e65f70fba4ba4a03a48b684/58556/now-ui-dashboard-pro.webp new file mode 100644 index 00000000..4ea22129 Binary files /dev/null and b/static/29768be19e65f70fba4ba4a03a48b684/58556/now-ui-dashboard-pro.webp differ diff --git a/static/29768be19e65f70fba4ba4a03a48b684/61e93/now-ui-dashboard-pro.webp b/static/29768be19e65f70fba4ba4a03a48b684/61e93/now-ui-dashboard-pro.webp new file mode 100644 index 00000000..e232bc47 Binary files /dev/null and b/static/29768be19e65f70fba4ba4a03a48b684/61e93/now-ui-dashboard-pro.webp differ diff --git a/static/29768be19e65f70fba4ba4a03a48b684/f836f/now-ui-dashboard-pro.jpg b/static/29768be19e65f70fba4ba4a03a48b684/f836f/now-ui-dashboard-pro.jpg new file mode 100644 index 00000000..5b000242 Binary files /dev/null and b/static/29768be19e65f70fba4ba4a03a48b684/f836f/now-ui-dashboard-pro.jpg differ diff --git a/static/2db27cc54e4299b48f81a156b85db25b/14b42/mdb-standard.jpg b/static/2db27cc54e4299b48f81a156b85db25b/14b42/mdb-standard.jpg new file mode 100644 index 00000000..cb4bae5b Binary files /dev/null and b/static/2db27cc54e4299b48f81a156b85db25b/14b42/mdb-standard.jpg differ diff --git a/static/2db27cc54e4299b48f81a156b85db25b/1f5c5/mdb-standard.webp b/static/2db27cc54e4299b48f81a156b85db25b/1f5c5/mdb-standard.webp new file mode 100644 index 00000000..94dd80e8 Binary files /dev/null and b/static/2db27cc54e4299b48f81a156b85db25b/1f5c5/mdb-standard.webp differ diff --git a/static/2db27cc54e4299b48f81a156b85db25b/2244e/mdb-standard.jpg b/static/2db27cc54e4299b48f81a156b85db25b/2244e/mdb-standard.jpg new file mode 100644 index 00000000..57047d33 Binary files /dev/null and b/static/2db27cc54e4299b48f81a156b85db25b/2244e/mdb-standard.jpg differ diff --git a/static/2db27cc54e4299b48f81a156b85db25b/58556/mdb-standard.webp b/static/2db27cc54e4299b48f81a156b85db25b/58556/mdb-standard.webp new file mode 100644 index 00000000..dc58c66d Binary files /dev/null and b/static/2db27cc54e4299b48f81a156b85db25b/58556/mdb-standard.webp differ diff --git a/static/2db27cc54e4299b48f81a156b85db25b/61e93/mdb-standard.webp b/static/2db27cc54e4299b48f81a156b85db25b/61e93/mdb-standard.webp new file mode 100644 index 00000000..3bd278bf Binary files /dev/null and b/static/2db27cc54e4299b48f81a156b85db25b/61e93/mdb-standard.webp differ diff --git a/static/2db27cc54e4299b48f81a156b85db25b/f836f/mdb-standard.jpg b/static/2db27cc54e4299b48f81a156b85db25b/f836f/mdb-standard.jpg new file mode 100644 index 00000000..d61b07fd Binary files /dev/null and b/static/2db27cc54e4299b48f81a156b85db25b/f836f/mdb-standard.jpg differ diff --git a/static/3498e862831923782d45f5bb95dc6735/1f5c5/BannerMDB-mini.webp b/static/3498e862831923782d45f5bb95dc6735/1f5c5/BannerMDB-mini.webp new file mode 100644 index 00000000..2a117da4 Binary files /dev/null and b/static/3498e862831923782d45f5bb95dc6735/1f5c5/BannerMDB-mini.webp differ diff --git a/static/3498e862831923782d45f5bb95dc6735/2244e/BannerMDB-mini.jpg b/static/3498e862831923782d45f5bb95dc6735/2244e/BannerMDB-mini.jpg new file mode 100644 index 00000000..55583be6 Binary files /dev/null and b/static/3498e862831923782d45f5bb95dc6735/2244e/BannerMDB-mini.jpg differ diff --git a/static/3498e862831923782d45f5bb95dc6735/61e93/BannerMDB-mini.webp b/static/3498e862831923782d45f5bb95dc6735/61e93/BannerMDB-mini.webp new file mode 100644 index 00000000..749e45fc Binary files /dev/null and b/static/3498e862831923782d45f5bb95dc6735/61e93/BannerMDB-mini.webp differ diff --git a/static/3498e862831923782d45f5bb95dc6735/d72d1/BannerMDB-mini.webp b/static/3498e862831923782d45f5bb95dc6735/d72d1/BannerMDB-mini.webp new file mode 100644 index 00000000..92e280d2 Binary files /dev/null and b/static/3498e862831923782d45f5bb95dc6735/d72d1/BannerMDB-mini.webp differ diff --git a/static/3498e862831923782d45f5bb95dc6735/e15b6/BannerMDB-mini.jpg b/static/3498e862831923782d45f5bb95dc6735/e15b6/BannerMDB-mini.jpg new file mode 100644 index 00000000..a9fa700e Binary files /dev/null and b/static/3498e862831923782d45f5bb95dc6735/e15b6/BannerMDB-mini.jpg differ diff --git a/static/3498e862831923782d45f5bb95dc6735/f836f/BannerMDB-mini.jpg b/static/3498e862831923782d45f5bb95dc6735/f836f/BannerMDB-mini.jpg new file mode 100644 index 00000000..7bd77c2b Binary files /dev/null and b/static/3498e862831923782d45f5bb95dc6735/f836f/BannerMDB-mini.jpg differ diff --git a/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/14b42/opt_mdp_thumbnail.jpg b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/14b42/opt_mdp_thumbnail.jpg new file mode 100644 index 00000000..e956e5b9 Binary files /dev/null and b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/14b42/opt_mdp_thumbnail.jpg differ diff --git a/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/1f5c5/opt_mdp_thumbnail.webp b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/1f5c5/opt_mdp_thumbnail.webp new file mode 100644 index 00000000..869be396 Binary files /dev/null and b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/1f5c5/opt_mdp_thumbnail.webp differ diff --git a/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/2244e/opt_mdp_thumbnail.jpg b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/2244e/opt_mdp_thumbnail.jpg new file mode 100644 index 00000000..2f0b7d7f Binary files /dev/null and b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/2244e/opt_mdp_thumbnail.jpg differ diff --git a/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/58556/opt_mdp_thumbnail.webp b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/58556/opt_mdp_thumbnail.webp new file mode 100644 index 00000000..31457cbc Binary files /dev/null and b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/58556/opt_mdp_thumbnail.webp differ diff --git a/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/61e93/opt_mdp_thumbnail.webp b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/61e93/opt_mdp_thumbnail.webp new file mode 100644 index 00000000..35f08d7f Binary files /dev/null and b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/61e93/opt_mdp_thumbnail.webp differ diff --git a/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/f836f/opt_mdp_thumbnail.jpg b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/f836f/opt_mdp_thumbnail.jpg new file mode 100644 index 00000000..9ed4e5a0 Binary files /dev/null and b/static/3ae808fbce3f2fd9f8a3d5f67c111bd6/f836f/opt_mdp_thumbnail.jpg differ diff --git a/static/4460ca7f74838594b2823193cf5caeeb/14b42/material-kit-pro-react.jpg b/static/4460ca7f74838594b2823193cf5caeeb/14b42/material-kit-pro-react.jpg new file mode 100644 index 00000000..7b3f188b Binary files /dev/null and b/static/4460ca7f74838594b2823193cf5caeeb/14b42/material-kit-pro-react.jpg differ diff --git a/static/4460ca7f74838594b2823193cf5caeeb/1f5c5/material-kit-pro-react.webp b/static/4460ca7f74838594b2823193cf5caeeb/1f5c5/material-kit-pro-react.webp new file mode 100644 index 00000000..8449c2a6 Binary files /dev/null and b/static/4460ca7f74838594b2823193cf5caeeb/1f5c5/material-kit-pro-react.webp differ diff --git a/static/4460ca7f74838594b2823193cf5caeeb/2244e/material-kit-pro-react.jpg b/static/4460ca7f74838594b2823193cf5caeeb/2244e/material-kit-pro-react.jpg new file mode 100644 index 00000000..d7735a31 Binary files /dev/null and b/static/4460ca7f74838594b2823193cf5caeeb/2244e/material-kit-pro-react.jpg differ diff --git a/static/4460ca7f74838594b2823193cf5caeeb/58556/material-kit-pro-react.webp b/static/4460ca7f74838594b2823193cf5caeeb/58556/material-kit-pro-react.webp new file mode 100644 index 00000000..d8230fb8 Binary files /dev/null and b/static/4460ca7f74838594b2823193cf5caeeb/58556/material-kit-pro-react.webp differ diff --git a/static/4460ca7f74838594b2823193cf5caeeb/61e93/material-kit-pro-react.webp b/static/4460ca7f74838594b2823193cf5caeeb/61e93/material-kit-pro-react.webp new file mode 100644 index 00000000..4ad22aa6 Binary files /dev/null and b/static/4460ca7f74838594b2823193cf5caeeb/61e93/material-kit-pro-react.webp differ diff --git a/static/4460ca7f74838594b2823193cf5caeeb/f836f/material-kit-pro-react.jpg b/static/4460ca7f74838594b2823193cf5caeeb/f836f/material-kit-pro-react.jpg new file mode 100644 index 00000000..f718ba61 Binary files /dev/null and b/static/4460ca7f74838594b2823193cf5caeeb/f836f/material-kit-pro-react.jpg differ diff --git a/static/57c2567d31be1739b3b0922339feea7f/14b42/nextjs-material-kit-pro.jpg b/static/57c2567d31be1739b3b0922339feea7f/14b42/nextjs-material-kit-pro.jpg new file mode 100644 index 00000000..922b3934 Binary files /dev/null and b/static/57c2567d31be1739b3b0922339feea7f/14b42/nextjs-material-kit-pro.jpg differ diff --git a/static/57c2567d31be1739b3b0922339feea7f/1f5c5/nextjs-material-kit-pro.webp b/static/57c2567d31be1739b3b0922339feea7f/1f5c5/nextjs-material-kit-pro.webp new file mode 100644 index 00000000..5293883c Binary files /dev/null and b/static/57c2567d31be1739b3b0922339feea7f/1f5c5/nextjs-material-kit-pro.webp differ diff --git a/static/57c2567d31be1739b3b0922339feea7f/2244e/nextjs-material-kit-pro.jpg b/static/57c2567d31be1739b3b0922339feea7f/2244e/nextjs-material-kit-pro.jpg new file mode 100644 index 00000000..953d196c Binary files /dev/null and b/static/57c2567d31be1739b3b0922339feea7f/2244e/nextjs-material-kit-pro.jpg differ diff --git a/static/57c2567d31be1739b3b0922339feea7f/58556/nextjs-material-kit-pro.webp b/static/57c2567d31be1739b3b0922339feea7f/58556/nextjs-material-kit-pro.webp new file mode 100644 index 00000000..93526b47 Binary files /dev/null and b/static/57c2567d31be1739b3b0922339feea7f/58556/nextjs-material-kit-pro.webp differ diff --git a/static/57c2567d31be1739b3b0922339feea7f/61e93/nextjs-material-kit-pro.webp b/static/57c2567d31be1739b3b0922339feea7f/61e93/nextjs-material-kit-pro.webp new file mode 100644 index 00000000..21f78b0a Binary files /dev/null and b/static/57c2567d31be1739b3b0922339feea7f/61e93/nextjs-material-kit-pro.webp differ diff --git a/static/57c2567d31be1739b3b0922339feea7f/f836f/nextjs-material-kit-pro.jpg b/static/57c2567d31be1739b3b0922339feea7f/f836f/nextjs-material-kit-pro.jpg new file mode 100644 index 00000000..73e38d19 Binary files /dev/null and b/static/57c2567d31be1739b3b0922339feea7f/f836f/nextjs-material-kit-pro.jpg differ diff --git a/static/71c7c1b6e932db9fa9d8496ae3d2e562/14b42/modern-treasury.jpg b/static/71c7c1b6e932db9fa9d8496ae3d2e562/14b42/modern-treasury.jpg new file mode 100644 index 00000000..a1c51165 Binary files /dev/null and b/static/71c7c1b6e932db9fa9d8496ae3d2e562/14b42/modern-treasury.jpg differ diff --git a/static/71c7c1b6e932db9fa9d8496ae3d2e562/1f5c5/modern-treasury.webp b/static/71c7c1b6e932db9fa9d8496ae3d2e562/1f5c5/modern-treasury.webp new file mode 100644 index 00000000..4e59d7fb Binary files /dev/null and b/static/71c7c1b6e932db9fa9d8496ae3d2e562/1f5c5/modern-treasury.webp differ diff --git a/static/71c7c1b6e932db9fa9d8496ae3d2e562/2244e/modern-treasury.jpg b/static/71c7c1b6e932db9fa9d8496ae3d2e562/2244e/modern-treasury.jpg new file mode 100644 index 00000000..6ab79228 Binary files /dev/null and b/static/71c7c1b6e932db9fa9d8496ae3d2e562/2244e/modern-treasury.jpg differ diff --git a/static/71c7c1b6e932db9fa9d8496ae3d2e562/58556/modern-treasury.webp b/static/71c7c1b6e932db9fa9d8496ae3d2e562/58556/modern-treasury.webp new file mode 100644 index 00000000..aba0c2b3 Binary files /dev/null and b/static/71c7c1b6e932db9fa9d8496ae3d2e562/58556/modern-treasury.webp differ diff --git a/static/71c7c1b6e932db9fa9d8496ae3d2e562/61e93/modern-treasury.webp b/static/71c7c1b6e932db9fa9d8496ae3d2e562/61e93/modern-treasury.webp new file mode 100644 index 00000000..35570c44 Binary files /dev/null and b/static/71c7c1b6e932db9fa9d8496ae3d2e562/61e93/modern-treasury.webp differ diff --git a/static/71c7c1b6e932db9fa9d8496ae3d2e562/f836f/modern-treasury.jpg b/static/71c7c1b6e932db9fa9d8496ae3d2e562/f836f/modern-treasury.jpg new file mode 100644 index 00000000..f5ba880b Binary files /dev/null and b/static/71c7c1b6e932db9fa9d8496ae3d2e562/f836f/modern-treasury.jpg differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/09af0/BannerMDB.webp b/static/8b944b92d6ecf86a39ca0ab040027646/09af0/BannerMDB.webp new file mode 100644 index 00000000..d04aec35 Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/09af0/BannerMDB.webp differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/14b42/BannerMDB.jpg b/static/8b944b92d6ecf86a39ca0ab040027646/14b42/BannerMDB.jpg new file mode 100644 index 00000000..6d325eed Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/14b42/BannerMDB.jpg differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/1f5c5/BannerMDB.webp b/static/8b944b92d6ecf86a39ca0ab040027646/1f5c5/BannerMDB.webp new file mode 100644 index 00000000..2f794f7a Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/1f5c5/BannerMDB.webp differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/2244e/BannerMDB.jpg b/static/8b944b92d6ecf86a39ca0ab040027646/2244e/BannerMDB.jpg new file mode 100644 index 00000000..5c73b8b0 Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/2244e/BannerMDB.jpg differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/47498/BannerMDB.jpg b/static/8b944b92d6ecf86a39ca0ab040027646/47498/BannerMDB.jpg new file mode 100644 index 00000000..82072d86 Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/47498/BannerMDB.jpg differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/58556/BannerMDB.webp b/static/8b944b92d6ecf86a39ca0ab040027646/58556/BannerMDB.webp new file mode 100644 index 00000000..2d45fc45 Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/58556/BannerMDB.webp differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/61e93/BannerMDB.webp b/static/8b944b92d6ecf86a39ca0ab040027646/61e93/BannerMDB.webp new file mode 100644 index 00000000..29a2064d Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/61e93/BannerMDB.webp differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/99238/BannerMDB.webp b/static/8b944b92d6ecf86a39ca0ab040027646/99238/BannerMDB.webp new file mode 100644 index 00000000..9b38eda4 Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/99238/BannerMDB.webp differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/e962a/BannerMDB.jpg b/static/8b944b92d6ecf86a39ca0ab040027646/e962a/BannerMDB.jpg new file mode 100644 index 00000000..ab63ec1a Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/e962a/BannerMDB.jpg differ diff --git a/static/8b944b92d6ecf86a39ca0ab040027646/f836f/BannerMDB.jpg b/static/8b944b92d6ecf86a39ca0ab040027646/f836f/BannerMDB.jpg new file mode 100644 index 00000000..76cc5e2f Binary files /dev/null and b/static/8b944b92d6ecf86a39ca0ab040027646/f836f/BannerMDB.jpg differ diff --git a/static/9b7bb2df198486539795a294cbdefc5a/14b42/light-bootstrap-dashboard-react.jpg b/static/9b7bb2df198486539795a294cbdefc5a/14b42/light-bootstrap-dashboard-react.jpg new file mode 100644 index 00000000..0cc8d555 Binary files /dev/null and b/static/9b7bb2df198486539795a294cbdefc5a/14b42/light-bootstrap-dashboard-react.jpg differ diff --git a/static/9b7bb2df198486539795a294cbdefc5a/1f5c5/light-bootstrap-dashboard-react.webp b/static/9b7bb2df198486539795a294cbdefc5a/1f5c5/light-bootstrap-dashboard-react.webp new file mode 100644 index 00000000..83e4e6de Binary files /dev/null and b/static/9b7bb2df198486539795a294cbdefc5a/1f5c5/light-bootstrap-dashboard-react.webp differ diff --git a/static/9b7bb2df198486539795a294cbdefc5a/2244e/light-bootstrap-dashboard-react.jpg b/static/9b7bb2df198486539795a294cbdefc5a/2244e/light-bootstrap-dashboard-react.jpg new file mode 100644 index 00000000..6b5b3993 Binary files /dev/null and b/static/9b7bb2df198486539795a294cbdefc5a/2244e/light-bootstrap-dashboard-react.jpg differ diff --git a/static/9b7bb2df198486539795a294cbdefc5a/58556/light-bootstrap-dashboard-react.webp b/static/9b7bb2df198486539795a294cbdefc5a/58556/light-bootstrap-dashboard-react.webp new file mode 100644 index 00000000..357adaa9 Binary files /dev/null and b/static/9b7bb2df198486539795a294cbdefc5a/58556/light-bootstrap-dashboard-react.webp differ diff --git a/static/9b7bb2df198486539795a294cbdefc5a/61e93/light-bootstrap-dashboard-react.webp b/static/9b7bb2df198486539795a294cbdefc5a/61e93/light-bootstrap-dashboard-react.webp new file mode 100644 index 00000000..7be0fbc5 Binary files /dev/null and b/static/9b7bb2df198486539795a294cbdefc5a/61e93/light-bootstrap-dashboard-react.webp differ diff --git a/static/9b7bb2df198486539795a294cbdefc5a/f836f/light-bootstrap-dashboard-react.jpg b/static/9b7bb2df198486539795a294cbdefc5a/f836f/light-bootstrap-dashboard-react.jpg new file mode 100644 index 00000000..49ae9216 Binary files /dev/null and b/static/9b7bb2df198486539795a294cbdefc5a/f836f/light-bootstrap-dashboard-react.jpg differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/1f5c5/popper-logo.webp b/static/bd1f1d31fdb5043b5eae388b23717937/1f5c5/popper-logo.webp new file mode 100644 index 00000000..ca7cf5ac Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/1f5c5/popper-logo.webp differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/37117/popper-logo.webp b/static/bd1f1d31fdb5043b5eae388b23717937/37117/popper-logo.webp new file mode 100644 index 00000000..3f27f57a Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/37117/popper-logo.webp differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/497c6/popper-logo.png b/static/bd1f1d31fdb5043b5eae388b23717937/497c6/popper-logo.png new file mode 100644 index 00000000..4f418fe0 Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/497c6/popper-logo.png differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/5707d/popper-logo.png b/static/bd1f1d31fdb5043b5eae388b23717937/5707d/popper-logo.png new file mode 100644 index 00000000..1e6c98e7 Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/5707d/popper-logo.png differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/58556/popper-logo.webp b/static/bd1f1d31fdb5043b5eae388b23717937/58556/popper-logo.webp new file mode 100644 index 00000000..64626692 Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/58556/popper-logo.webp differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/61e93/popper-logo.webp b/static/bd1f1d31fdb5043b5eae388b23717937/61e93/popper-logo.webp new file mode 100644 index 00000000..d8c0db7f Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/61e93/popper-logo.webp differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/69585/popper-logo.png b/static/bd1f1d31fdb5043b5eae388b23717937/69585/popper-logo.png new file mode 100644 index 00000000..2ef7de2c Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/69585/popper-logo.png differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/7c22d/popper-logo.webp b/static/bd1f1d31fdb5043b5eae388b23717937/7c22d/popper-logo.webp new file mode 100644 index 00000000..d08b30d4 Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/7c22d/popper-logo.webp differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/99238/popper-logo.webp b/static/bd1f1d31fdb5043b5eae388b23717937/99238/popper-logo.webp new file mode 100644 index 00000000..b6538ce8 Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/99238/popper-logo.webp differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/ed396/popper-logo.png b/static/bd1f1d31fdb5043b5eae388b23717937/ed396/popper-logo.png new file mode 100644 index 00000000..08a40486 Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/ed396/popper-logo.png differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/ee604/popper-logo.png b/static/bd1f1d31fdb5043b5eae388b23717937/ee604/popper-logo.png new file mode 100644 index 00000000..4438d77d Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/ee604/popper-logo.png differ diff --git a/static/bd1f1d31fdb5043b5eae388b23717937/f3583/popper-logo.png b/static/bd1f1d31fdb5043b5eae388b23717937/f3583/popper-logo.png new file mode 100644 index 00000000..a1b16cb8 Binary files /dev/null and b/static/bd1f1d31fdb5043b5eae388b23717937/f3583/popper-logo.png differ diff --git a/static/celltrackingapps-9d67abee46cbd524d95edc8121acbc92.svg b/static/celltrackingapps-9d67abee46cbd524d95edc8121acbc92.svg new file mode 100644 index 00000000..56506a47 --- /dev/null +++ b/static/celltrackingapps-9d67abee46cbd524d95edc8121acbc92.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/d64f6c657872d1235898a7b28cc15c4d/14b42/usetiful.jpg b/static/d64f6c657872d1235898a7b28cc15c4d/14b42/usetiful.jpg new file mode 100644 index 00000000..3b8a0756 Binary files /dev/null and b/static/d64f6c657872d1235898a7b28cc15c4d/14b42/usetiful.jpg differ diff --git a/static/d64f6c657872d1235898a7b28cc15c4d/1f5c5/usetiful.webp b/static/d64f6c657872d1235898a7b28cc15c4d/1f5c5/usetiful.webp new file mode 100644 index 00000000..cbd65946 Binary files /dev/null and b/static/d64f6c657872d1235898a7b28cc15c4d/1f5c5/usetiful.webp differ diff --git a/static/d64f6c657872d1235898a7b28cc15c4d/2244e/usetiful.jpg b/static/d64f6c657872d1235898a7b28cc15c4d/2244e/usetiful.jpg new file mode 100644 index 00000000..d5706102 Binary files /dev/null and b/static/d64f6c657872d1235898a7b28cc15c4d/2244e/usetiful.jpg differ diff --git a/static/d64f6c657872d1235898a7b28cc15c4d/58556/usetiful.webp b/static/d64f6c657872d1235898a7b28cc15c4d/58556/usetiful.webp new file mode 100644 index 00000000..71d6d90f Binary files /dev/null and b/static/d64f6c657872d1235898a7b28cc15c4d/58556/usetiful.webp differ diff --git a/static/d64f6c657872d1235898a7b28cc15c4d/61e93/usetiful.webp b/static/d64f6c657872d1235898a7b28cc15c4d/61e93/usetiful.webp new file mode 100644 index 00000000..bdc90036 Binary files /dev/null and b/static/d64f6c657872d1235898a7b28cc15c4d/61e93/usetiful.webp differ diff --git a/static/d64f6c657872d1235898a7b28cc15c4d/f836f/usetiful.jpg b/static/d64f6c657872d1235898a7b28cc15c4d/f836f/usetiful.jpg new file mode 100644 index 00000000..fb3b3f1d Binary files /dev/null and b/static/d64f6c657872d1235898a7b28cc15c4d/f836f/usetiful.jpg differ diff --git a/static/dd247d2fa3f2291ab8c03b325f839b47/61e93/argon-dashboard-pro.webp b/static/dd247d2fa3f2291ab8c03b325f839b47/61e93/argon-dashboard-pro.webp new file mode 100644 index 00000000..1772f246 Binary files /dev/null and b/static/dd247d2fa3f2291ab8c03b325f839b47/61e93/argon-dashboard-pro.webp differ diff --git a/static/dd247d2fa3f2291ab8c03b325f839b47/b6bb8/argon-dashboard-pro.webp b/static/dd247d2fa3f2291ab8c03b325f839b47/b6bb8/argon-dashboard-pro.webp new file mode 100644 index 00000000..d0387b4a Binary files /dev/null and b/static/dd247d2fa3f2291ab8c03b325f839b47/b6bb8/argon-dashboard-pro.webp differ diff --git a/static/dd247d2fa3f2291ab8c03b325f839b47/e2788/argon-dashboard-pro.jpg b/static/dd247d2fa3f2291ab8c03b325f839b47/e2788/argon-dashboard-pro.jpg new file mode 100644 index 00000000..56f6450e Binary files /dev/null and b/static/dd247d2fa3f2291ab8c03b325f839b47/e2788/argon-dashboard-pro.jpg differ diff --git a/static/dd247d2fa3f2291ab8c03b325f839b47/f836f/argon-dashboard-pro.jpg b/static/dd247d2fa3f2291ab8c03b325f839b47/f836f/argon-dashboard-pro.jpg new file mode 100644 index 00000000..6fb89884 Binary files /dev/null and b/static/dd247d2fa3f2291ab8c03b325f839b47/f836f/argon-dashboard-pro.jpg differ diff --git a/static/df6d3aaefc2c51fe278e3acc568958f0/14b42/mdb-vue.jpg b/static/df6d3aaefc2c51fe278e3acc568958f0/14b42/mdb-vue.jpg new file mode 100644 index 00000000..d2ba8a3c Binary files /dev/null and b/static/df6d3aaefc2c51fe278e3acc568958f0/14b42/mdb-vue.jpg differ diff --git a/static/df6d3aaefc2c51fe278e3acc568958f0/1f5c5/mdb-vue.webp b/static/df6d3aaefc2c51fe278e3acc568958f0/1f5c5/mdb-vue.webp new file mode 100644 index 00000000..aceab3e9 Binary files /dev/null and b/static/df6d3aaefc2c51fe278e3acc568958f0/1f5c5/mdb-vue.webp differ diff --git a/static/df6d3aaefc2c51fe278e3acc568958f0/2244e/mdb-vue.jpg b/static/df6d3aaefc2c51fe278e3acc568958f0/2244e/mdb-vue.jpg new file mode 100644 index 00000000..549707f9 Binary files /dev/null and b/static/df6d3aaefc2c51fe278e3acc568958f0/2244e/mdb-vue.jpg differ diff --git a/static/df6d3aaefc2c51fe278e3acc568958f0/58556/mdb-vue.webp b/static/df6d3aaefc2c51fe278e3acc568958f0/58556/mdb-vue.webp new file mode 100644 index 00000000..24495d1d Binary files /dev/null and b/static/df6d3aaefc2c51fe278e3acc568958f0/58556/mdb-vue.webp differ diff --git a/static/df6d3aaefc2c51fe278e3acc568958f0/61e93/mdb-vue.webp b/static/df6d3aaefc2c51fe278e3acc568958f0/61e93/mdb-vue.webp new file mode 100644 index 00000000..a79f52aa Binary files /dev/null and b/static/df6d3aaefc2c51fe278e3acc568958f0/61e93/mdb-vue.webp differ diff --git a/static/df6d3aaefc2c51fe278e3acc568958f0/f836f/mdb-vue.jpg b/static/df6d3aaefc2c51fe278e3acc568958f0/f836f/mdb-vue.jpg new file mode 100644 index 00000000..827d1500 Binary files /dev/null and b/static/df6d3aaefc2c51fe278e3acc568958f0/f836f/mdb-vue.jpg differ diff --git a/static/e8966dab7a9bda34fd13edd5fb997ff2/1f5c5/popper-icon.webp b/static/e8966dab7a9bda34fd13edd5fb997ff2/1f5c5/popper-icon.webp new file mode 100644 index 00000000..5213cb57 Binary files /dev/null and b/static/e8966dab7a9bda34fd13edd5fb997ff2/1f5c5/popper-icon.webp differ diff --git a/static/e8966dab7a9bda34fd13edd5fb997ff2/497c6/popper-icon.png b/static/e8966dab7a9bda34fd13edd5fb997ff2/497c6/popper-icon.png new file mode 100644 index 00000000..751a43c9 Binary files /dev/null and b/static/e8966dab7a9bda34fd13edd5fb997ff2/497c6/popper-icon.png differ diff --git a/static/e8966dab7a9bda34fd13edd5fb997ff2/61e93/popper-icon.webp b/static/e8966dab7a9bda34fd13edd5fb997ff2/61e93/popper-icon.webp new file mode 100644 index 00000000..49157ecc Binary files /dev/null and b/static/e8966dab7a9bda34fd13edd5fb997ff2/61e93/popper-icon.webp differ diff --git a/static/e8966dab7a9bda34fd13edd5fb997ff2/69585/popper-icon.png b/static/e8966dab7a9bda34fd13edd5fb997ff2/69585/popper-icon.png new file mode 100644 index 00000000..de5db296 Binary files /dev/null and b/static/e8966dab7a9bda34fd13edd5fb997ff2/69585/popper-icon.png differ diff --git a/static/e8966dab7a9bda34fd13edd5fb997ff2/a3e81/popper-icon.webp b/static/e8966dab7a9bda34fd13edd5fb997ff2/a3e81/popper-icon.webp new file mode 100644 index 00000000..1a813fb6 Binary files /dev/null and b/static/e8966dab7a9bda34fd13edd5fb997ff2/a3e81/popper-icon.webp differ diff --git a/static/e8966dab7a9bda34fd13edd5fb997ff2/bc59e/popper-icon.png b/static/e8966dab7a9bda34fd13edd5fb997ff2/bc59e/popper-icon.png new file mode 100644 index 00000000..b6cf335e Binary files /dev/null and b/static/e8966dab7a9bda34fd13edd5fb997ff2/bc59e/popper-icon.png differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/1f5c5/dopt.webp b/static/fc93eda84a46a43ed37f8e4039ad63fd/1f5c5/dopt.webp new file mode 100644 index 00000000..c5d3f253 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/1f5c5/dopt.webp differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/37117/dopt.webp b/static/fc93eda84a46a43ed37f8e4039ad63fd/37117/dopt.webp new file mode 100644 index 00000000..9eb1ecdd Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/37117/dopt.webp differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/497c6/dopt.png b/static/fc93eda84a46a43ed37f8e4039ad63fd/497c6/dopt.png new file mode 100644 index 00000000..49e4a1f2 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/497c6/dopt.png differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/5707d/dopt.png b/static/fc93eda84a46a43ed37f8e4039ad63fd/5707d/dopt.png new file mode 100644 index 00000000..bdafef23 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/5707d/dopt.png differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/58556/dopt.webp b/static/fc93eda84a46a43ed37f8e4039ad63fd/58556/dopt.webp new file mode 100644 index 00000000..019d3d2d Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/58556/dopt.webp differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/61e93/dopt.webp b/static/fc93eda84a46a43ed37f8e4039ad63fd/61e93/dopt.webp new file mode 100644 index 00000000..e5b5d35a Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/61e93/dopt.webp differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/69585/dopt.png b/static/fc93eda84a46a43ed37f8e4039ad63fd/69585/dopt.png new file mode 100644 index 00000000..6fcb9eb5 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/69585/dopt.png differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/7c22d/dopt.webp b/static/fc93eda84a46a43ed37f8e4039ad63fd/7c22d/dopt.webp new file mode 100644 index 00000000..43389a20 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/7c22d/dopt.webp differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/99238/dopt.webp b/static/fc93eda84a46a43ed37f8e4039ad63fd/99238/dopt.webp new file mode 100644 index 00000000..e7ca3197 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/99238/dopt.webp differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/ed396/dopt.png b/static/fc93eda84a46a43ed37f8e4039ad63fd/ed396/dopt.png new file mode 100644 index 00000000..dbd3e080 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/ed396/dopt.png differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/ee604/dopt.png b/static/fc93eda84a46a43ed37f8e4039ad63fd/ee604/dopt.png new file mode 100644 index 00000000..3f64e622 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/ee604/dopt.png differ diff --git a/static/fc93eda84a46a43ed37f8e4039ad63fd/f3583/dopt.png b/static/fc93eda84a46a43ed37f8e4039ad63fd/f3583/dopt.png new file mode 100644 index 00000000..04075593 Binary files /dev/null and b/static/fc93eda84a46a43ed37f8e4039ad63fd/f3583/dopt.png differ diff --git a/static/luckiest-guy-latin-400-3ae5e1043bb7e5265e15c87f66d862d2.woff b/static/luckiest-guy-latin-400-3ae5e1043bb7e5265e15c87f66d862d2.woff new file mode 100644 index 00000000..6c1575f6 Binary files /dev/null and b/static/luckiest-guy-latin-400-3ae5e1043bb7e5265e15c87f66d862d2.woff differ diff --git a/static/luckiest-guy-latin-400-c4ae5565ab9ac437142d1c22ddc2cee0.woff2 b/static/luckiest-guy-latin-400-c4ae5565ab9ac437142d1c22ddc2cee0.woff2 new file mode 100644 index 00000000..4aa34348 Binary files /dev/null and b/static/luckiest-guy-latin-400-c4ae5565ab9ac437142d1c22ddc2cee0.woff2 differ diff --git a/static/popcorn-box-f16f5d64e675baca26519478e88e4961.svg b/static/popcorn-box-f16f5d64e675baca26519478e88e4961.svg new file mode 100644 index 00000000..ac84a427 --- /dev/null +++ b/static/popcorn-box-f16f5d64e675baca26519478e88e4961.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/popper-logo-394b4ea5914aad7fc580f418ed0cfb17.svg b/static/popper-logo-394b4ea5914aad7fc580f418ed0cfb17.svg new file mode 100644 index 00000000..ad8cd68d --- /dev/null +++ b/static/popper-logo-394b4ea5914aad7fc580f418ed0cfb17.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/static/popper-logo-outlined-fb38d0b34a253d52fc74cd9c4f3dcec3.svg b/static/popper-logo-outlined-fb38d0b34a253d52fc74cd9c4f3dcec3.svg new file mode 100644 index 00000000..e04940d0 --- /dev/null +++ b/static/popper-logo-outlined-fb38d0b34a253d52fc74cd9c4f3dcec3.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/popper-text-45fb69958c6fc80df98607583c280b4b.svg b/static/popper-text-45fb69958c6fc80df98607583c280b4b.svg new file mode 100644 index 00000000..7fbe951e --- /dev/null +++ b/static/popper-text-45fb69958c6fc80df98607583c280b4b.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/styles-407fe62976dc5310c43e.js b/styles-407fe62976dc5310c43e.js new file mode 100644 index 00000000..d1b1f3f2 --- /dev/null +++ b/styles-407fe62976dc5310c43e.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]); +//# sourceMappingURL=styles-407fe62976dc5310c43e.js.map \ No newline at end of file diff --git a/styles-407fe62976dc5310c43e.js.map b/styles-407fe62976dc5310c43e.js.map new file mode 100644 index 00000000..4aba90c4 --- /dev/null +++ b/styles-407fe62976dc5310c43e.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","file":"styles-407fe62976dc5310c43e.js","sourceRoot":""} \ No newline at end of file diff --git a/styles.5031b944c5a051c53008.css b/styles.5031b944c5a051c53008.css new file mode 100644 index 00000000..8af5af3f --- /dev/null +++ b/styles.5031b944c5a051c53008.css @@ -0,0 +1,4 @@ +#carbonads,.carbonplaceholder{background-color:#281e36;color:#fff;padding:15px;border-radius:10px;width:290px;height:170px;margin:15px auto}@media (min-width:360px){#carbonads,.carbonplaceholder{width:350px}}.carbonplaceholder *{opacity:0;animation:fade-in .2s 1s forwards}#carbonads+.carbonplaceholder{display:none}#carbonads a{border:none;margin-top:10px}.carbon-wrap{display:flex}.carbon-img{padding-right:10px}.carbon-img img{border-radius:3px}.carbon-poweredby{display:block;text-align:right;font-size:12px}.carbon-text{font-size:14px}.carbon-text a{color:#c83b50;border-bottom:2px solid rgba(200,59,80,.25)}.carbon-poweredby,.carbon-text{text-decoration:none;color:inherit}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} +/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:after,:before{box-sizing:border-box}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:Luckiest Guy;font-style:normal;font-display:swap;font-weight:400;src:local("Luckiest Guy Regular"),local("LuckiestGuy-Regular"),url(/static/luckiest-guy-latin-400-c4ae5565ab9ac437142d1c22ddc2cee0.woff2) format("woff2"),url(/static/luckiest-guy-latin-400-3ae5e1043bb7e5265e15c87f66d862d2.woff) format("woff")}body{line-height:1.6;background:#2f263c;color:#d2cbe4;font-family:-apple-system,Helvetica Neue,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,sans-serif}::selection{text-shadow:none;background:#8f51e6}h1,h2,h3{font-weight:400}.tippy-content{text-align:center}code[class*=language-],pre[class*=language-]{font-family:Consolas,Menlo,Monaco,Andale Mono WT,Andale Mono,Lucida Console,Lucida Sans Typewriter,DejaVu Sans Mono,Bitstream Vera Sans Mono,Liberation Mono,Nimbus Mono L,Courier New,Courier,monospace;line-height:1.5;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#8f51e6}pre[class*=language-]{padding:10px 15px;margin:1em -15px;overflow:auto;background:#281e36;color:#ffe69d;font-size:14px;border-radius:0}@media (min-width:600px){pre[class*=language-]{font-size:16px;border:1px solid hsla(0,0%,100%,.05);margin-left:0;margin-right:0;border-radius:10px}}:not(pre)>code[class*=language-]{color:#ff6b81;font-weight:700;white-space:pre-wrap}:not(pre)>code[class*=language-]::selection,:not(pre)>code[class*=language-] ::selection{text-shadow:none;background:#8f51e6;color:#fff}.token-line{min-height:1em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#95b2db}.token.keyword,.token.punctuation{color:#4edee5}.token.namespace{opacity:.7}.token.boolean,.token.number,.token.operator,.token.tag{color:#ed655e}.token.function,.token.property{color:#b886fd}.token.atrule-id,.token.selector,.token.tag-id{color:#f3ebff}.token.attr-name,code.language-javascript{color:#d6b9fe}.language-css .token.string,.language-scss .token.string,.style .token.string,.token.atrule,.token.attr-value,.token.control,.token.directive,.token.entity,.token.placeholder,.token.regex,.token.statement,.token.string,.token.unit,.token.url,.token.variable,code.language-css,code.language-scss{color:#ffb6b3}.token.dom{color:#a5c8ff}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted #f3ebff;text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#d6b9fe}.token.entity{cursor:help}pre>code.highlight{outline:.4em solid #aa75f5;outline-offset:.4em}.line-numbers .line-numbers-rows{border-right-color:#372f42}.line-numbers-rows>span:before{color:#372f42}.line-highlight{background:rgba(237,101,94,.2);background:linear-gradient(90deg,rgba(237,101,94,.2) 70%,rgba(237,101,94,0))}.gatsby-highlight-code-line{background-color:#1c1425;display:block;margin-right:-1em;margin-left:-1em;padding-right:1em;padding-left:.75em;border-left:.25em solid #ff6b81} + +/*! @docsearch/css 3.0.0-alpha.33 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,0.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,0.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,0.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,0.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,0.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,0.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,0.5),0 -4px 8px 0 rgba(0,0,0,0.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding-bottom:2px;position:relative;top:-1px;width:20px}@media (max-width:750px){.DocSearch-Button-Key,.DocSearch-Button-KeySeparator,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1 1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input:-ms-input-placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:focus{outline:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;-ms-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:-webkit-sticky;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"\BB "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding-bottom:1px;width:20px}@media (max-width:750px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}} \ No newline at end of file diff --git a/webpack-runtime-51bc8bf0f9144cef7395.js b/webpack-runtime-51bc8bf0f9144cef7395.js new file mode 100644 index 00000000..0fcaea70 --- /dev/null +++ b/webpack-runtime-51bc8bf0f9144cef7395.js @@ -0,0 +1,2 @@ +!function(e){function c(c){for(var d,r,t=c[0],a=c[1],p=c[2],m=0,i=[];m