From 088ffd90a4e9d2d9555eaef2f190254c7d57d6d4 Mon Sep 17 00:00:00 2001 From: paul Date: Thu, 3 Oct 2024 19:04:04 +0530 Subject: [PATCH] added landing page --- .../assets/images/background/dots.svg | 9622 +++++++++++++++++ landingpages/landingpage/assets/logo/logo.png | Bin 0 -> 21435 bytes landingpages/landingpage/css/index.css | 345 + .../landingpage/css/tailwind-build.css | 1 + landingpages/landingpage/css/tailwind.css | 10 + landingpages/landingpage/index.html | 734 ++ landingpages/landingpage/index.js | 155 + landingpages/landingpage/scripts/utils.js | 141 + landingpages/landingpage/tailwind.config.js | 21 + landingpages/landingpage/widget/background.js | 1 + landingpages/landingpage/widget/content.js | 2 + .../landingpage/widget/content.js.LICENSE.txt | 79 + .../landingpage/widget/icons/icon128.png | Bin 0 -> 2501 bytes .../landingpage/widget/icons/icon16.png | Bin 0 -> 191 bytes .../landingpage/widget/icons/icon32.png | Bin 0 -> 422 bytes .../landingpage/widget/icons/icon48.png | Bin 0 -> 667 bytes landingpages/landingpage/widget/index.html | 1 + landingpages/landingpage/widget/manifest.json | 30 + landingpages/tailwind.config.js | 6 +- landingpages/tailwind/tailwind-runtime.css | 719 +- 20 files changed, 11826 insertions(+), 41 deletions(-) create mode 100644 landingpages/landingpage/assets/images/background/dots.svg create mode 100644 landingpages/landingpage/assets/logo/logo.png create mode 100644 landingpages/landingpage/css/index.css create mode 100644 landingpages/landingpage/css/tailwind-build.css create mode 100644 landingpages/landingpage/css/tailwind.css create mode 100644 landingpages/landingpage/index.html create mode 100644 landingpages/landingpage/index.js create mode 100644 landingpages/landingpage/scripts/utils.js create mode 100644 landingpages/landingpage/tailwind.config.js create mode 100644 landingpages/landingpage/widget/background.js create mode 100644 landingpages/landingpage/widget/content.js create mode 100644 landingpages/landingpage/widget/content.js.LICENSE.txt create mode 100644 landingpages/landingpage/widget/icons/icon128.png create mode 100644 landingpages/landingpage/widget/icons/icon16.png create mode 100644 landingpages/landingpage/widget/icons/icon32.png create mode 100644 landingpages/landingpage/widget/icons/icon48.png create mode 100644 landingpages/landingpage/widget/index.html create mode 100644 landingpages/landingpage/widget/manifest.json diff --git a/landingpages/landingpage/assets/images/background/dots.svg b/landingpages/landingpage/assets/images/background/dots.svg new file mode 100644 index 0000000..77e70ba --- /dev/null +++ b/landingpages/landingpage/assets/images/background/dots.svg @@ -0,0 +1,9622 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/landingpages/landingpage/assets/logo/logo.png b/landingpages/landingpage/assets/logo/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8565f71528060a2ea5e8b96351c7e78bfdce1674 GIT binary patch literal 21435 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 literal 0 HcmV?d00001 diff --git a/landingpages/landingpage/css/index.css b/landingpages/landingpage/css/index.css new file mode 100644 index 0000000..d462104 --- /dev/null +++ b/landingpages/landingpage/css/index.css @@ -0,0 +1,345 @@ +@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400..700&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Fondamento&family=chivo&family=Bellota&family=Battambang&family=Archivo+Black&family=Didact+Gothic&family=Sedgwick+Ave&family=Rowdies'); +/* @import url('https://fonts.googleapis.com/css2?family=Chivo'); +@import url('https://fonts.googleapis.com/css2?family=Bellota'); +@import url('https://fonts.googleapis.com/css2?family=Battambang'); +@import url('https://fonts.googleapis.com/css2?family=Archivo+Black'); +@import url('https://fonts.googleapis.com/css2?family=Didact+Gothic'); +@import url('https://fonts.googleapis.com/css2?family=Rowdies'); */ + + +:root{ + + --bg-color: #fff; + + --btn-color: #fdfdfd;/* button color*/ + --btn-bg: #000;/* button bg color*/ + + --primary-text-color: #000; + --header-link-hover: #000; + --input-hover-bd-color: #000; +} + + +html { + scroll-behavior: smooth; + font-family: "Ubuntu", sans-serif; +} + + +.fondamento-family{ + font-family: "Fondamento", handwriting; + font-weight: 700; +} + +.chivo-family{ + font-family: "Chivo", sans-serif; +} + + +.bellota-family{ + font-family: "Bellota", system-ui; + font-weight: 600; +} + +.battambang-family{ + font-family: "Battambang", system-ui; + font-weight: 500; +} + +.archivo-black-family{ + font-family: "Archivo Black", sans-serif; + font-weight: 400; + line-height: 1.3; +} + +.didact-gothic-family{ + font-family: "Didact Gothic", sans-serif; + text-decoration: underline; + font-style: italic; +} + +.sedgwick-ave-family{ + font-family: "Sedgwick Ave", handwriting; + font-weight: 500; + line-height: 1.5; +} + +.rowdies-family{ + font-family: "Rowdies", system-ui; + font-weight: 400; +} + + +header{ + /* background-color: #fff; + color: #000; */ + color: #4b4b4b; +} + + +header > .collapsible-header{ + display: flex; + gap: 1rem; + width: 100%; + background-color: inherit; + place-content: center; + overflow: hidden; + transition: width 0.3s ease; +} + +.animated-collapse{ + transition: width 0.3s ease; +} + + +.header-links { + display: flex; + align-items: center; + min-width: fit-content; + border-radius: 5px; + padding: 5px 10px; + transition: background-color 0.5s, color 0.5s; +} + + +.header-links:hover { + color: #000000; + /* background-color: var(--header-link-hover); */ +} + +.primary-text-color{ + color: var(--primary-text-color); +} + + +.signup-img-section{ + background-image: url("../assets/images/home/darkbg.png"); + background-position: center; /* Center the image */ + background-repeat: no-repeat; /* Do not repeat the image */ + background-size: cover; +} + +.edge-gradient{ + background: rgb(28, 28, 28); + background: linear-gradient(83deg, #ffffff 0%, #ffffff00 20%, #ffffff00 80%, rgb(255, 255, 255) 100%); +} + +.scroller{ + /* width: max-content; + flex-wrap: nowrap; */ + animation: scroll 40s forwards linear infinite; + } + + .scroller[data-direction="right"] { + animation-direction: reverse; + } + + .scroller[data-direction="left"] { + animation-direction: forwards; + } + + .scroller[data-direction="left"] { + animation-direction: forwards; + } + + .scroller[data-speed="fast"]{ + animation-duration: 30s; + } + + .scroller[data-speed="slow"]{ + animation-duration: 80s; + } + +.opacity-0{ + opacity: 0 !important; +} + +.opacity-100{ + opacity: 100 !important; +} + +.btn{ + padding: 10px 15px; + width: max-content; + border-radius: 5px; + color: var(--btn-color); + background-color: var(--btn-bg); + justify-content: center; + align-items: center; + display: flex; + cursor: pointer; +} + +.btn:hover{ + +} + +.btn:disabled{ + cursor: default; +} + +.input{ + padding: 10px; + background-color: transparent; + border-radius: 5px; + /* outline: none; */ + min-width: 100px; + border: 1px solid #818080; + /* transition: border 0.3s; */ +} + +.input:active, .input:focus, .input:focus-within{ + border: 1px solid var(--input-hover-bd-color) !important; +} + +.carousel-container { + overflow: hidden; + white-space: nowrap; + width: 100%; + max-width: 800px; +} + +.carousel { + display: inline-block; + animation: scroll 10s linear infinite; +} + +.carousel-img { + display: inline-block; + margin: 0 20px; +} + +@keyframes scroll { + 0% { + transform: translateX(0); + } + 100% { + transform: translateX(-50%); + } +} + +.footer-link{ + color: #434242; + transition: color 0.3s; +} + +.footer-link:hover{ + color: #0b0b0b; +} + +/* Navigation dots styling */ +.dots-container { + text-align: center; + margin-top: 20px; +} + +.dot { + height: 10px; + width: 10px; + background-color: #bbb; + border-radius: 50%; + display: inline-block; + margin: 0 5px; + cursor: pointer; +} + +.dots-container .active, +.dot:hover { + background-color: #717171; +} + +/* Next & previous buttons */ +.prev, +.next { + cursor: pointer; + position: absolute; + top: 50%; + width: auto; + padding: 16px; + margin-top: -22px; + color: white; + font-weight: bold; + font-size: 18px; + transition: 0.6s ease; + border-radius: 0 3px 3px 0; + user-select: none; + z-index: 10; +} + +/* Position the "next button" to the right */ +.next { + right: 0px; + border-radius: 3px 0 0 3px; +} + +/* On hover, add a black background color with a little bit see-through */ +.prev:hover, +.next:hover { + background-color: rgba(0, 0, 0, 0.8); +} + + + +/* Style for the collapsible content such as faq commonly known as: accordion */ + +.faq{ + background-color: #fff; + color: #000000; + border: 1px solid #000; +} + +.faq-accordion { + background-color: inherit; + color: #000000; + cursor: pointer; + padding: 15px 18px; + width: 100%; + border: none; + text-align: left; + outline: none; + transition: height 0.4s; +} + +.faq .content { + padding: 0px 18px; + color: #232323; + height: max-content; + overflow: hidden; + background-color: transparent; + text-align: justify; + max-height: 0px; + transition: max-height 0.4s, padding 0.4s; +} + +.faq-accordion .active, +.faq-accordion:hover { + /* background-color: #2e2c2c; */ +} + +@media not all and (min-width: 1024px) { + header .collapsible-header { + position: fixed; + right: 0px; + flex-direction: column; + opacity: 0; + height: 100vh; + min-height: 100vh; + height: 100dvh; + width: 0vw; + justify-content: space-between; + padding: 5px; + padding-top: 5%; + padding-bottom: 5%; + place-items: end; + background-color: #e4e4e4; + color: #111111; + overflow-y: auto; + box-shadow: 3px 0px 3px 2px #9f9f9f; + } + + .header-links{ + color: #0c0c0c; + } + +} \ No newline at end of file diff --git a/landingpages/landingpage/css/tailwind-build.css b/landingpages/landingpage/css/tailwind-build.css new file mode 100644 index 0000000..7da1607 --- /dev/null +++ b/landingpages/landingpage/css/tailwind-build.css @@ -0,0 +1 @@ +/*! tailwindcss v3.4.10 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-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}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.tw-fixed{position:fixed}.tw-absolute{position:absolute}.tw-relative{position:relative}.tw-sticky{position:sticky}.tw-left-0{left:0}.tw-left-1\/2,.tw-left-\[50\%\]{left:50%}.tw-right-3{right:.75rem}.tw-top-0{top:0}.tw-top-2{top:.5rem}.tw-top-20{top:5rem}.tw-top-3{top:.75rem}.tw-top-\[50\%\]{top:50%}.tw-z-20{z-index:20}.tw-z-50{z-index:50}.tw-z-\[10000\]{z-index:10000}.tw-m-auto{margin:auto}.tw-mx-2{margin-left:.5rem;margin-right:.5rem}.tw-mx-4{margin-left:1rem;margin-right:1rem}.tw-ml-auto{margin-left:auto}.tw-mt-10{margin-top:2.5rem}.tw-mt-2{margin-top:.5rem}.tw-mt-3{margin-top:.75rem}.tw-mt-4{margin-top:1rem}.tw-mt-5{margin-top:1.25rem}.tw-mt-8{margin-top:2rem}.tw-mt-\[5\%\]{margin-top:5%}.tw-mt-auto{margin-top:auto}.tw-flex{display:flex}.\!tw-hidden{display:none!important}.tw-hidden{display:none}.tw-h-10{height:2.5rem}.tw-h-8{height:2rem}.tw-h-\[100px\]{height:100px}.tw-h-\[150px\]{height:150px}.tw-h-\[40px\]{height:40px}.tw-h-\[50px\]{height:50px}.tw-h-\[60px\]{height:60px}.tw-h-\[80px\]{height:80px}.tw-h-\[90vh\]{height:90vh}.tw-h-fit{height:fit-content}.tw-h-full{height:100%}.tw-max-h-\[120px\]{max-height:120px}.tw-max-h-\[800px\]{max-height:800px}.tw-max-h-\[90\%\]{max-height:90%}.tw-max-h-full{max-height:100%}.tw-min-h-\[100px\]{min-height:100px}.tw-min-h-\[100vh\]{min-height:100vh}.tw-min-h-\[300px\]{min-height:300px}.tw-min-h-\[50vh\]{min-height:50vh}.tw-min-h-\[550px\]{min-height:550px}.tw-min-h-\[60vh\]{min-height:60vh}.tw-min-h-\[70vh\]{min-height:70vh}.tw-min-h-\[80px\]{min-height:80px}.tw-min-h-full{min-height:100%}.\!tw-w-full{width:100%!important}.tw-w-8{width:2rem}.tw-w-\[1000px\]{width:1000px}.tw-w-\[250px\]{width:250px}.tw-w-\[380px\]{width:380px}.tw-w-\[40px\]{width:40px}.tw-w-\[50px\]{width:50px}.tw-w-\[80px\]{width:80px}.tw-w-full{width:100%}.tw-w-max{width:max-content}.tw-min-w-\[80px\]{min-width:80px}.tw-min-w-full{min-width:100%}.tw-max-w-\[100vw\]{max-width:100vw}.tw-max-w-\[120px\]{max-width:120px}.tw-max-w-\[30\%\]{max-width:30%}.tw-max-w-\[450px\]{max-width:450px}.tw-max-w-\[50\%\]{max-width:50%}.tw-max-w-\[750px\]{max-width:750px}.tw-max-w-\[80vw\]{max-width:80vw}.tw-max-w-\[850px\]{max-width:850px}.tw--translate-x-1\/2,.tw--translate-x-\[50\%\]{--tw-translate-x:-50%}.tw--translate-x-1\/2,.tw--translate-x-\[50\%\],.tw--translate-y-\[50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw--translate-y-\[50\%\]{--tw-translate-y:-50%}.tw-scale-0{--tw-scale-x:0;--tw-scale-y:0}.tw-scale-0,.tw-scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-scale-100{--tw-scale-x:1;--tw-scale-y:1}.tw-cursor-move{cursor:move}.tw-cursor-pointer{cursor:pointer}.\!tw-select-none{-webkit-user-select:none!important;user-select:none!important}.tw-select-none{-webkit-user-select:none;user-select:none}.tw-flex-col{flex-direction:column}.tw-flex-wrap{flex-wrap:wrap}.tw-place-content-center{place-content:center}.tw-place-content-end{place-content:end}.tw-place-content-around{place-content:space-around}.tw-place-items-start{place-items:start}.tw-place-items-center{place-items:center}.tw-items-center{align-items:center}.tw-justify-between{justify-content:space-between}.tw-gap-1{gap:.25rem}.tw-gap-10{gap:2.5rem}.tw-gap-2{gap:.5rem}.tw-gap-3{gap:.75rem}.tw-gap-4{gap:1rem}.tw-gap-5{gap:1.25rem}.tw-gap-6{gap:1.5rem}.tw-gap-8{gap:2rem}.tw-gap-\[10\%\]{gap:10%}.tw-gap-\[200px\]{gap:200px}.tw-gap-\[20px\]{gap:20px}.tw-space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.tw-overflow-hidden{overflow:hidden}.tw-overflow-clip{overflow:clip}.tw-overflow-y-auto{overflow-y:auto}.tw-whitespace-break-spaces{white-space:break-spaces}.tw-text-wrap{text-wrap:wrap}.tw-rounded-full{border-radius:9999px}.tw-rounded-lg{border-radius:.5rem}.tw-rounded-md{border-radius:.375rem}.tw-rounded-xl{border-radius:.75rem}.\!tw-border-\[1px\]{border-width:1px!important}.tw-border-2{border-width:2px}.tw-border-\[1px\]{border-width:1px}.\!tw-border-solid{border-style:solid!important}.tw-border-solid{border-style:solid}.\!tw-border-black{--tw-border-opacity:1!important;border-color:rgb(0 0 0/var(--tw-border-opacity))!important}.tw-border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity))}.tw-border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.tw-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.\!tw-bg-gray-100{--tw-bg-opacity:1!important;background-color:rgb(243 244 246/var(--tw-bg-opacity))!important}.\!tw-bg-purple-500{--tw-bg-opacity:1!important;background-color:rgb(168 85 247/var(--tw-bg-opacity))!important}.\!tw-bg-transparent{background-color:initial!important}.tw-bg-\[\#000000af\]{background-color:rgba(0,0,0,.6862745098039216)}.tw-bg-\[\#7e22ce85\]{background-color:rgba(126,34,206,.5215686274509804)}.tw-bg-\[\#f0f0f0ef\]{background-color:hsla(0,0%,94.1%,.9372549019607843)}.tw-bg-\[\#ffe27a\]{--tw-bg-opacity:1;background-color:rgb(255 226 122/var(--tw-bg-opacity))}.tw-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.tw-bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity))}.tw-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.tw-bg-transparent{background-color:initial}.tw-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.tw-bg-opacity-0{--tw-bg-opacity:0}.tw-object-contain{object-fit:contain}.tw-object-cover{object-fit:cover}.tw-p-1{padding:.25rem}.tw-p-2{padding:.5rem}.tw-p-3{padding:.75rem}.tw-p-4{padding:1rem}.tw-p-6{padding:1.5rem}.tw-p-8{padding:2rem}.tw-p-\[2\%\]{padding:2%}.tw-p-\[4px\]{padding:4px}.tw-p-\[5\%\]{padding:5%}.tw-px-2{padding-left:.5rem;padding-right:.5rem}.tw-px-3{padding-left:.75rem;padding-right:.75rem}.tw-px-\[10\%\]{padding-left:10%;padding-right:10%}.tw-px-\[5\%\]{padding-left:5%;padding-right:5%}.tw-py-2{padding-top:.5rem;padding-bottom:.5rem}.tw-text-center{text-align:center}.\!tw-text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.\!tw-text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.tw-text-2xl{font-size:1.5rem;line-height:2rem}.tw-text-3xl{font-size:1.875rem;line-height:2.25rem}.tw-text-4xl{font-size:2.25rem;line-height:2.5rem}.tw-text-5xl{font-size:3rem;line-height:1}.tw-text-6xl{font-size:3.75rem;line-height:1}.tw-text-\[18px\]{font-size:18px}.tw-text-base{font-size:1rem;line-height:1.5rem}.tw-text-lg{font-size:1.125rem;line-height:1.75rem}.tw-text-xl{font-size:1.25rem;line-height:1.75rem}.\!tw-font-semibold{font-weight:600!important}.tw-font-medium{font-weight:500}.tw-font-semibold{font-weight:600}.tw-uppercase{text-transform:uppercase}.tw-italic{font-style:italic}.tw-ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tw-leading-\[80px\]{line-height:80px}.tw-leading-relaxed{line-height:1.625}.\!tw-text-black{--tw-text-opacity:1!important;color:rgb(0 0 0/var(--tw-text-opacity))!important}.\!tw-text-blue-500{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity))!important}.\!tw-text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity))!important}.tw-text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.tw-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.tw-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.tw-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.tw-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.tw-text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity))}.tw-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.tw-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.tw-text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity))}.tw-underline{text-decoration-line:underline}.\!tw-no-underline{text-decoration-line:none!important}.tw-opacity-0{opacity:0}.tw-opacity-100{opacity:1}.tw-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.tw-shadow-lg,.tw-shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.tw-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.tw-shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.tw-shadow-primary{--tw-shadow-color:#fff;--tw-shadow:var(--tw-shadow-colored)}.tw-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tw-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tw-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tw-duration-300{transition-duration:.3s}.tw-duration-500{transition-duration:.5s}.tw-duration-\[0\.3s\]{transition-duration:.3s}.hover\:tw-scale-x-\[1\.02\]:hover{--tw-scale-x:1.02}.hover\:tw-scale-x-\[1\.02\]:hover,.hover\:tw-scale-x-\[1\.03\]:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:tw-scale-x-\[1\.03\]:hover{--tw-scale-x:1.03}.hover\:\!tw-bg-gray-100:hover{--tw-bg-opacity:1!important;background-color:rgb(243 244 246/var(--tw-bg-opacity))!important}.hover\:\!tw-bg-gray-300:hover{--tw-bg-opacity:1!important;background-color:rgb(209 213 219/var(--tw-bg-opacity))!important}.hover\:\!tw-bg-white:hover{--tw-bg-opacity:1!important;background-color:rgb(255 255 255/var(--tw-bg-opacity))!important}.hover\:tw-bg-black:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.hover\:\!tw-text-black:hover{--tw-text-opacity:1!important;color:rgb(0 0 0/var(--tw-text-opacity))!important}.hover\:tw-text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:tw-bg-\[\#16171A\]:is(.tw-dark *){--tw-bg-opacity:1;background-color:rgb(22 23 26/var(--tw-bg-opacity))}.dark\:tw-bg-\[\#80808085\]:is(.tw-dark *){background-color:hsla(0,0%,50.2%,.5215686274509804)}@media not all and (min-width:1280px){.max-xl\:tw-place-items-center{place-items:center}}@media not all and (min-width:1024px){.max-lg\:tw-fixed{position:fixed}.max-lg\:tw-mt-10{margin-top:2.5rem}.max-lg\:tw-mt-\[30px\]{margin-top:30px}.max-lg\:tw-hidden{display:none}.max-lg\:tw-h-\[60px\]{height:60px}.max-lg\:tw-h-\[80px\]{height:80px}.max-lg\:tw-h-auto{height:auto}.max-lg\:tw-max-h-fit{max-height:fit-content}.max-lg\:tw-min-h-\[250px\]{min-height:250px}.max-lg\:tw-min-h-\[400px\]{min-height:400px}.max-lg\:tw-min-h-\[60px\]{min-height:60px}.max-lg\:tw-min-h-\[60vh\]{min-height:60vh}.max-lg\:tw-w-\[340px\]{width:340px}.max-lg\:tw-w-\[60px\]{width:60px}.max-lg\:tw-w-\[80px\]{width:80px}.max-lg\:tw-w-full{width:100%}.max-lg\:tw-min-w-\[320px\]{min-width:320px}.max-lg\:tw-min-w-\[60px\]{min-width:60px}.max-lg\:tw-max-w-\[320px\]{max-width:320px}.max-lg\:tw-max-w-full{max-width:100%}.max-lg\:tw-flex-col{flex-direction:column}.max-lg\:tw-place-content-center{place-content:center}.max-lg\:tw-place-items-end{place-items:end}.max-lg\:tw-place-items-center{place-items:center}.max-lg\:tw-gap-16{gap:4rem}.max-lg\:tw-gap-5{gap:1.25rem}.max-lg\:tw-p-2{padding:.5rem}.max-lg\:tw-p-4{padding:1rem}.max-lg\:tw-px-2{padding-left:.5rem;padding-right:.5rem}.max-lg\:tw-px-4{padding-left:1rem;padding-right:1rem}.max-lg\:tw-text-2xl{font-size:1.5rem;line-height:2rem}.max-lg\:tw-text-4xl{font-size:2.25rem;line-height:2.5rem}.max-lg\:tw-font-normal{font-weight:400}.max-lg\:tw-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}}@media not all and (min-width:768px){.max-md\:tw-mt-\[50px\]{margin-top:50px}.max-md\:tw-w-full{width:100%}.max-md\:tw-max-w-\[100vw\]{max-width:100vw}.max-md\:tw-flex-col{flex-direction:column}.max-md\:tw-place-content-center{place-content:center}.max-md\:tw-px-2{padding-left:.5rem;padding-right:.5rem}.max-md\:tw-text-2xl{font-size:1.5rem;line-height:2rem}.max-md\:tw-text-3xl{font-size:1.875rem;line-height:2.25rem}.max-md\:tw-text-lg{font-size:1.125rem;line-height:1.75rem}.max-md\:tw-text-sm{font-size:.875rem;line-height:1.25rem}.max-md\:tw-text-xl{font-size:1.25rem;line-height:1.75rem}.max-md\:tw-leading-snug{line-height:1.375}.max-md\:tw-opacity-0{opacity:0}}@media (min-width:1024px){.lg\:tw-sticky{position:sticky}.lg\:tw-top-\[20\%\]{top:20%}.lg\:tw-mx-auto{margin-left:auto;margin-right:auto}.lg\:tw-hidden{display:none}.lg\:tw-place-items-center{place-items:center}.lg\:tw-justify-around{justify-content:space-around}.lg\:tw-p-6{padding:1.5rem}} \ No newline at end of file diff --git a/landingpages/landingpage/css/tailwind.css b/landingpages/landingpage/css/tailwind.css new file mode 100644 index 0000000..674c029 --- /dev/null +++ b/landingpages/landingpage/css/tailwind.css @@ -0,0 +1,10 @@ +@config "../tailwind.config.js"; + +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer components{ +} + + \ No newline at end of file diff --git a/landingpages/landingpage/index.html b/landingpages/landingpage/index.html new file mode 100644 index 0000000..33bac57 --- /dev/null +++ b/landingpages/landingpage/index.html @@ -0,0 +1,734 @@ + + + + + + PyUIBuilder - A Drag and Drop builder for python GUIs + + + + + + + + + + + + + + + + + + + + + + +
+ + logo + + + +
+ +
+ + +
+ +
+
+ +
+
+ +
+ + +
+ +
+
+
+ +
+
+
+ Build Python UI's using + +
+ Drag and Drop editor +
+ +
+ +
+
+ Tired of writing code to build you python GUIs, well now you can easily +
+ +
+ + Start for free + + +
+
+
+ + +
+ + +
+ +
+ +
+ + +
+ +
+
+ +
+ +

+ Add personality to your
website +
+ with fonts +

+ +
+
+
+
+ + +
+

+ Pick and test 1000+ google fonts +

+
+ +
+
+ + +
+

+ Test on any website or landing page +

+
+ +
+
+ + +
+

+ Easily change specific text fonts with the highlighter feature +

+
+ +
+
+ + +
+

+ Set font weight and line height +

+
+ +
+
+ + +
+

+ set Italics, underline and more +

+
+ +
+
+ + +
+

+ Easily copy the code for the fonts +

+
+ +
+ +
+
+ +
+ +
+
+
+
+ + + +
+

Choose your plan

+
+
+

+ $0 +

+

+ Free to use forever, but for added features and to support open-source development, consider buying a lifetime license. +

+
+
    +
  • + + Access to web-based editor +
  • +
  • + + Commercial use +
  • +
  • + + Downloadable UI builder exe for local development +
  • +
  • + + Support for PySlide/PyQt +
  • +
  • + + Preview live +
  • +
  • + + Save and load files +
  • +
  • + + Load plugins locally +
  • +
  • + + Load local UI templates +
  • +
  • + + Dark theme +
  • +
  • + + Priority support +
  • +
  • + + Early access to new features +
  • + +
+
+ +
+
+ Limited time offer +
+
+ Hobby +
+

+ + $129 + $29 + + Forever +

+

+ Support open-source development 🚀. Plus, get added benefits. +

+
+
    +
  • + + Access to web-based editor +
  • +
  • + + Downloadable UI builder exe for local development +
  • +
  • + + Preview live +
  • +
  • + + Save and load files +
  • +
  • + + Load plugins locally +
  • +
  • + + Load local UI templates +
  • +
  • + + Dark theme +
  • +
  • + + Priority support +
  • +
  • + + Early access to new features +
  • +
  • + + Support for PySlide/PyQt +
  • +
  • + + Commercial use +
  • + +
+ + + Buy License + + +
+ + {/* Paid Plan */} +
+
+ Limited time offer +
+
+ Commercial +
+

+ + $180 + $49 + + Forever +

+

+ Support open-source development 🚀. Plus, get added benefits. +

+
+
    +
  • + + Access to web-based editor +
  • +
  • + + Downloadable UI builder exe for local development +
  • +
  • + + Preview live +
  • +
  • + + Save and load files +
  • +
  • + + Load plugins locally +
  • +
  • + + Load local UI templates +
  • +
  • + + Dark theme +
  • +
  • + + Priority support +
  • +
  • + + Early access to new features +
  • +
  • + + Support for PySlide/PyQt +
  • +
  • + + Commercial use +
  • + +
+ + + Buy License + + +
+
+
+ +
+

+ Faq +

+
+
+
+ Is the source code available? + +
+
+ Yes, this is an open-source project, you can visit the + source code on + Github +
+
+ +
+
+ Can I try the extension for free? + +
+
+ Yes, the chrome extension is free to use forever, however to support + open-source development, some features are only available to premium users. +
+
+ +
+
+ Is Safari, Edge and Firefox addons available? + +
+
+ The Safari, Edge and firefox addons will be available for premium users when released. + If you purchase a license, you'll be notified when its released. +
+
+ +
+
+ Where can I find the upcoming features? + +
+
+ You can find the upcoming features on the + Roadmap +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/landingpages/landingpage/index.js b/landingpages/landingpage/index.js new file mode 100644 index 0000000..9eb6501 --- /dev/null +++ b/landingpages/landingpage/index.js @@ -0,0 +1,155 @@ +// initialization + +const RESPONSIVE_WIDTH = 1024 + +let headerWhiteBg = false +let isHeaderCollapsed = window.innerWidth < RESPONSIVE_WIDTH +const collapseBtn = document.getElementById("collapse-btn") +const collapseHeaderItems = document.getElementById("collapsed-header-items") + + + +function onHeaderClickOutside(e) { + + if (!collapseHeaderItems.contains(e.target)) { + toggleHeader() + } + +} + + +function toggleHeader() { + if (isHeaderCollapsed) { + // collapseHeaderItems.classList.remove("max-md:tw-opacity-0") + collapseHeaderItems.classList.add("opacity-100",) + collapseHeaderItems.style.width = "60vw" + collapseBtn.classList.remove("bi-list") + collapseBtn.classList.add("bi-x", "max-lg:tw-fixed") + isHeaderCollapsed = false + + setTimeout(() => window.addEventListener("click", onHeaderClickOutside), 1) + + } else { + collapseHeaderItems.classList.remove("opacity-100") + collapseHeaderItems.style.width = "0vw" + collapseBtn.classList.remove("bi-x", "max-lg:tw-fixed") + collapseBtn.classList.add("bi-list") + isHeaderCollapsed = true + window.removeEventListener("click", onHeaderClickOutside) + + } +} + +function responsive() { + if (window.innerWidth > RESPONSIVE_WIDTH) { + collapseHeaderItems.style.width = "" + + } else { + isHeaderCollapsed = true + } +} + +window.addEventListener("resize", responsive) + + +/** + * Animations + */ + +gsap.registerPlugin(ScrollTrigger) + + +gsap.to(".reveal-up", { + opacity: 0, + y: "100%", +}) + +const slideShowContainer = document.querySelector("#slideshow") + +gsap.fromTo(".slide-in", { + y: "100%" +}, { + y: "0%", + duration: 1, +}) + + +const videoBg = document.querySelector("#video-container-bg") +const videoContainer = document.querySelector("#video-container") + +function openVideo(){ + videoBg.classList.remove("tw-scale-0", "tw-opacity-0") + videoBg.classList.add("tw-scale-100", "tw-opacity-100") + videoContainer.classList.remove("tw-scale-0") + videoContainer.classList.add("tw-scale-100") + + document.body.classList.add("modal-open") +} + +function closeVideo(){ + videoContainer.classList.add("tw-scale-0") + videoContainer.classList.remove("tw-scale-100") + + setTimeout(() => { + videoBg.classList.remove("tw-scale-100", "tw-opacity-100") + videoBg.classList.add("tw-scale-0", "tw-opacity-0") + }, 400) + + + document.body.classList.remove("modal-open") + +} + +const faqAccordion = document.querySelectorAll('.faq-accordion') + +faqAccordion.forEach(function (btn) { + btn.addEventListener('click', function () { + this.classList.toggle('active') + + // Toggle 'rotate' class to rotate the arrow + let content = this.nextElementSibling + + // content.classList.toggle('!tw-hidden') + if (content.style.maxHeight === '200px') { + content.style.maxHeight = '0px' + content.style.padding = '0px 18px' + + } else { + content.style.maxHeight = '200px' + content.style.padding = '20px 18px' + } + }) +}) + + + +// ------------- reveal section animations --------------- + +const sections = gsap.utils.toArray("section") + +sections.forEach((sec) => { + + const revealUptimeline = gsap.timeline({paused: true, + scrollTrigger: { + trigger: sec, + start: "10% 80%", // top of trigger hits the top of viewport + end: "20% 90%", + // markers: true, + // scrub: 1, + }}) + + revealUptimeline.to(sec.querySelectorAll(".reveal-up"), { + opacity: 1, + duration: 0.8, + y: "0%", + stagger: 0.2, + }) + + +}) + + + +const reviewContainer = document.querySelector(".review-container") +const reviewSlideShow = new SlideShow(reviewContainer, true, 10000) + diff --git a/landingpages/landingpage/scripts/utils.js b/landingpages/landingpage/scripts/utils.js new file mode 100644 index 0000000..5e6adbd --- /dev/null +++ b/landingpages/landingpage/scripts/utils.js @@ -0,0 +1,141 @@ +class SlideShow{ + + constructor(slideContainer, autoNext=true, timeout=6000){ + + this.slideContainer = slideContainer + this.autoNext = autoNext + + this.slideIndex = 0 + this.timeout = null + + this.timeoutTime = timeout + + const dots = this.slideContainer.querySelectorAll('.dot') + + dots.forEach((dot, index) => { + dot.addEventListener('click', () => { + this.showSlides(index) + }) + }) + + const nextBtn = this.slideContainer.querySelector(".next") + const previousBtn = this.slideContainer.querySelector(".prev") + + if (nextBtn && previousBtn){ + + nextBtn.addEventListener("click", () => {this.plusSlides(1)}) + previousBtn.addEventListener("click", () => {this.plusSlides(-1)}) + + } + + this.plusSlides = this.plusSlides.bind(this) + this.currentSlide = this.currentSlide.bind(this) + this.showSlides = this.showSlides.bind(this) + + this.showSlides(this.slideIndex) + + } + + plusSlides(i) { + this.showSlides(this.slideIndex + i) + } + + currentSlide(i) { + this.showSlides(this.slideIndex + i) + } + + showSlides(n){ + let slides = this.slideContainer.querySelectorAll(".slides") + let dots = this.slideContainer.querySelectorAll(".dot") + + this.slideIndex = n + + if (n >= slides.length) { + this.slideIndex = 0 + } + if (n < 0) { + this.slideIndex = slides.length -1 + } + for (let i = 0; i < slides.length; i++) { + slides[i].style.display = "none" + } + for (let i = 0; i < dots.length; i++) { + dots[i].className = dots[i].className.replace("active", "") + } + + slides[this.slideIndex].style.display = "block" + dots[this.slideIndex].className += " active" + + if (this.autoNext){ + + clearTimeout(this.timeout) + + this.timeout = setTimeout(() => this.plusSlides(1), this.timeoutTime) + } + } + +} + + +class Modal{ + + /** + * + * @param {HTMLElement} modal + */ + constructor(modal, title, description){ + + this.modal = modal + + const closeBtn = modal.querySelector("#modal-close") + + this.show = this.show.bind(this) + this.close = this.close.bind(this) + this.updateModal = this.updateModal.bind(this) + this.updateButton = this.updateButton.bind(this) + this.showModalInput = this.showModalInput.bind(this) + this.hideModalInput = this.hideModalInput.bind(this) + + this.updateModal(title, description) + closeBtn.addEventListener("click", this.close) + + } + + close(){ + this.modal.classList.add("tw-hidden") + } + + show(){ + this.modal.classList.remove("tw-hidden") + } + + showModalInput(){ + const input = this.modal.querySelector("#modal-input") + input.classList.remove("tw-hidden") + } + + hideModalInput(){ + const input = this.modal.querySelector("#modal-input") + input.classList.add("tw-hidden") + } + + updateButton(text, link){ + + const actionBtn = this.modal.querySelector("#modal-action-btn") + actionBtn.textContent = text + if (link){ + actionBtn.setAttribute("href", link) + }else{ + actionBtn.removeAttribute("href") + } + actionBtn.addEventListener("click", this.close) + } + + updateModal(title, description){ + + this.modal.querySelector("#modal-title").textContent = title + this.modal.querySelector("#modal-description").textContent = description + + } + +} \ No newline at end of file diff --git a/landingpages/landingpage/tailwind.config.js b/landingpages/landingpage/tailwind.config.js new file mode 100644 index 0000000..57f9df6 --- /dev/null +++ b/landingpages/landingpage/tailwind.config.js @@ -0,0 +1,21 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + prefix: 'tw-', + important: false, + content: [ + "landing-page/**/*.{html, jsx, js}", + "landing-page/**/*.js", + "landing-page/**/*.html", + ], + darkMode: 'class', + theme: { + extend: { + colors: { + primary: '#fff', + secondary: "#000", + } + }, + }, + plugins: [], +} + diff --git a/landingpages/landingpage/widget/background.js b/landingpages/landingpage/widget/background.js new file mode 100644 index 0000000..7bbc636 --- /dev/null +++ b/landingpages/landingpage/widget/background.js @@ -0,0 +1 @@ +(()=>{chrome.runtime.onInstalled.addListener((()=>{}));let e=!1;function r(){const e=document.getElementById("font-selector-root"),r=document.getElementById("font-tester-script");e&&e.remove(),r&&r.remove()}chrome.action.onClicked.addListener((t=>{e?chrome.scripting.executeScript({target:{tabId:t.id},function:r},(()=>{chrome.runtime.lastError?console.error(chrome.runtime.lastError.message):e=!1})):chrome.scripting.executeScript({target:{tabId:t.id},files:["content.js"]},(r=>{chrome.runtime.lastError?console.error(chrome.runtime.lastError.message):e=!0}))})),chrome.runtime.onMessage.addListener(((t,o,n)=>{"widgetClosed"===t.action&&(e=!1,chrome.scripting.executeScript({target:{tabId:o.tab?.id},function:r},(()=>{chrome.runtime.lastError?console.error(chrome.runtime.lastError.message):e=!1})))}))})(); \ No newline at end of file diff --git a/landingpages/landingpage/widget/content.js b/landingpages/landingpage/widget/content.js new file mode 100644 index 0000000..0ccf0d0 --- /dev/null +++ b/landingpages/landingpage/widget/content.js @@ -0,0 +1,2 @@ +/*! For license information please see content.js.LICENSE.txt */ +(()=>{var e,t,n={805:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(601),a=n.n(r),o=n(314),i=n.n(o)()(a());i.push([e.id,"/* :host {\n font-size: 16px; \n font-family: sans-serif;\n} */\n\n:host { font-size: initial }\n\n/* width */\n#font-selector-shadow-dom ::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n}\n \n /* Track */\n#font-selector-shadow-dom ::-webkit-scrollbar-track {\n background: transparent; \n }\n \n /* Handle */\n#font-selector-shadow-dom ::-webkit-scrollbar-thumb {\n background: #c2c2c2; \n border-radius: 5px;\n }\n \n /* Handle on hover */\n#font-selector-shadow-dom ::-webkit-scrollbar-thumb:hover {\n background: #555; \n}\n\n.ant-message {\n z-index: 14000 !important; /* Ensure high zIndex and use !important to override defaults */\n}",""]);const l=i},342:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(601),a=n.n(r),o=n(314),i=n.n(o)()(a());i.push([e.id,"/*\n! tailwindcss v3.4.10 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */ /* 3 */\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n.tw-relative {\n position: relative;\n}\n.tw-sticky {\n position: sticky;\n}\n.tw-left-0 {\n left: 0px;\n}\n.tw-top-2 {\n top: 0.5rem;\n}\n.tw-z-\\[10000\\] {\n z-index: 10000;\n}\n.tw-m-auto {\n margin: auto;\n}\n.tw-mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.tw-mt-5 {\n margin-top: 1.25rem;\n}\n.tw-mt-8 {\n margin-top: 2rem;\n}\n.tw-flex {\n display: flex;\n}\n.tw-h-10 {\n height: 2.5rem;\n}\n.tw-h-8 {\n height: 2rem;\n}\n.tw-h-\\[100px\\] {\n height: 100px;\n}\n.tw-h-\\[150px\\] {\n height: 150px;\n}\n.tw-h-fit {\n height: fit-content;\n}\n.tw-h-full {\n height: 100%;\n}\n.tw-max-h-\\[120px\\] {\n max-height: 120px;\n}\n.tw-min-h-\\[100px\\] {\n min-height: 100px;\n}\n.tw-w-8 {\n width: 2rem;\n}\n.tw-w-full {\n width: 100%;\n}\n.tw-cursor-move {\n cursor: move;\n}\n.tw-cursor-pointer {\n cursor: pointer;\n}\n.\\!tw-select-none {\n -webkit-user-select: none !important;\n user-select: none !important;\n}\n.tw-select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n.tw-flex-col {\n flex-direction: column;\n}\n.tw-place-content-center {\n place-content: center;\n}\n.tw-place-content-end {\n place-content: end;\n}\n.tw-place-items-center {\n place-items: center;\n}\n.tw-items-center {\n align-items: center;\n}\n.tw-justify-between {\n justify-content: space-between;\n}\n.tw-gap-1 {\n gap: 0.25rem;\n}\n.tw-gap-2 {\n gap: 0.5rem;\n}\n.tw-gap-3 {\n gap: 0.75rem;\n}\n.tw-overflow-hidden {\n overflow: hidden;\n}\n.tw-overflow-y-auto {\n overflow-y: auto;\n}\n.tw-whitespace-break-spaces {\n white-space: break-spaces;\n}\n.tw-text-wrap {\n text-wrap: wrap;\n}\n.tw-rounded-lg {\n border-radius: 0.5rem;\n}\n.tw-rounded-md {\n border-radius: 0.375rem;\n}\n.tw-rounded-xl {\n border-radius: 0.75rem;\n}\n.\\!tw-bg-gray-100 {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity)) !important;\n}\n.\\!tw-bg-purple-500 {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(168 85 247 / var(--tw-bg-opacity)) !important;\n}\n.tw-bg-\\[\\#f0f0f0ef\\] {\n background-color: #f0f0f0ef;\n}\n.tw-bg-\\[\\#f4f4f4\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(244 244 244 / var(--tw-bg-opacity));\n}\n.tw-bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.tw-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.tw-p-1 {\n padding: 0.25rem;\n}\n.tw-p-2 {\n padding: 0.5rem;\n}\n.tw-p-3 {\n padding: 0.75rem;\n}\n.tw-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.tw-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.\\!tw-text-4xl {\n font-size: 2.25rem !important;\n line-height: 2.5rem !important;\n}\n.\\!tw-text-lg {\n font-size: 1.125rem !important;\n line-height: 1.75rem !important;\n}\n.tw-text-\\[18px\\] {\n font-size: 18px;\n}\n.tw-text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.tw-text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.\\!tw-font-semibold {\n font-weight: 600 !important;\n}\n.tw-font-medium {\n font-weight: 500;\n}\n.\\!tw-text-black {\n --tw-text-opacity: 1 !important;\n color: rgb(0 0 0 / var(--tw-text-opacity)) !important;\n}\n.\\!tw-text-blue-500 {\n --tw-text-opacity: 1 !important;\n color: rgb(59 130 246 / var(--tw-text-opacity)) !important;\n}\n.\\!tw-text-white {\n --tw-text-opacity: 1 !important;\n color: rgb(255 255 255 / var(--tw-text-opacity)) !important;\n}\n.tw-text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n.tw-text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity));\n}\n.tw-text-purple-500 {\n --tw-text-opacity: 1;\n color: rgb(168 85 247 / var(--tw-text-opacity));\n}\n.\\!tw-no-underline {\n text-decoration-line: none !important;\n}\n.tw-shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.hover\\:\\!tw-bg-gray-100:hover {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity)) !important;\n}\n.hover\\:\\!tw-bg-gray-300:hover {\n --tw-bg-opacity: 1 !important;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity)) !important;\n}\n.hover\\:tw-bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity));\n}\n.hover\\:\\!tw-text-black:hover {\n --tw-text-opacity: 1 !important;\n color: rgb(0 0 0 / var(--tw-text-opacity)) !important;\n}\n\n ",""]);const l=i},314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,a,o){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var l=0;l0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=o),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),a&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=a):u[4]="".concat(a)),t.push(u))}},t}},601:e=>{"use strict";e.exports=function(e){return e[1]}},787:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.server_context"),u=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),y=Symbol.for("react.lazy");Symbol.for("react.offscreen");function p(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case a:case i:case o:case f:case d:return e;default:switch(e=e&&e.$$typeof){case c:case s:case u:case y:case m:case l:return e;default:return t}}case r:return t}}}Symbol.for("react.module.reference"),t.ForwardRef=u,t.isFragment=function(e){return p(e)===a},t.isMemo=function(e){return p(e)===m}},351:(e,t,n)=>{"use strict";e.exports=n(787)},551:(e,t,n)=>{"use strict";var r=n(540),a=n(982);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n