├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── pages └── index.js ├── public └── favicon.ico └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env.local 29 | .env.development.local 30 | .env.test.local 31 | .env.production.local 32 | 33 | # vercel 34 | .vercel 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Vercel, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Title Site 2 | 3 | This is the website for [title](https://github.com/vercel/title). It correctly capitalizes your titles as per [The Chicago Manual of Style](http://www.chicagomanualofstyle.org/home.html). Furthermore, all of Vercel's product names are capitalized properly as well. 4 | 5 | ## Contributing 6 | 7 | 1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device 8 | 2. Install the dependencies: `yarn` 9 | 3. Run the development environment: `yarn dev` 10 | 11 | After that, you can use the site in the browser at `http://localhost:3000`. 12 | 13 | ## Author 14 | 15 | Leo Lamprecht ([@leo](https://x.com/leo)) - [Vercel](https://vercel.com) 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "title-site", 3 | "description": "A website for capitalizing your titles", 4 | "version": "2.1.4", 5 | "private": true, 6 | "license": "MIT", 7 | "repository": "vercel/title-site", 8 | "scripts": { 9 | "dev": "next", 10 | "start": "next start", 11 | "build": "next build" 12 | }, 13 | "dependencies": { 14 | "next": "^12.1.0", 15 | "react": "^17.0.2", 16 | "react-dom": "^17.0.2", 17 | "react-input-autosize": "^3.0.0", 18 | "title": "^3.5.2" 19 | }, 20 | "prettier": { 21 | "arrowParens": "always", 22 | "singleQuote": true, 23 | "tabWidth": 2, 24 | "trailingComma": "none", 25 | "semi": false 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /pages/index.js: -------------------------------------------------------------------------------- 1 | import Head from 'next/head' 2 | import { useState, useRef, useEffect } from 'react' 3 | import toTitle from 'title' 4 | import AutosizeInput from 'react-input-autosize' 5 | 6 | const Index = () => { 7 | const [selectAll, setSelectAll] = useState(false) 8 | const [inputValue, setInputValue] = useState('') 9 | const [selection, setSelection] = useState(null) 10 | const handler = useRef(null) 11 | 12 | useEffect(() => { 13 | setSelection({ 14 | selectionStart: 0, 15 | selectionEnd: handler.current.input.value.length 16 | }) 17 | }, [selectAll]) 18 | 19 | useEffect(() => { 20 | if (selection) { 21 | const { selectionStart, selectionEnd } = selection 22 | handler.current.input.selectionStart = selectionStart 23 | handler.current.input.selectionEnd = selectionEnd 24 | } 25 | }, [selection, inputValue]) 26 | 27 | useEffect(() => { 28 | handler.current.focus() 29 | }, []) 30 | 31 | return ( 32 |
33 | 34 | Capitalize Your Title 35 | 36 | 37 | 38 |
39 |

Capitalize Your Title

40 | 41 |

42 | Enter your title below to get it capitalized properly according to{' '} 43 | 44 | The Chicago Manual of Style 45 | 46 | : 47 |

48 | 49 | { 59 | const { value, selectionStart, selectionEnd } = event.target 60 | setSelection({ selectionStart, selectionEnd }) 61 | setInputValue(toTitle(value)) 62 | setSelectAll(false) 63 | }} 64 | onPaste={(event) => { 65 | const { selectionStart, selectionEnd } = event.target 66 | if ( 67 | selectionEnd === -1 || 68 | (selectionStart === 0 && selectionEnd === inputValue.length) 69 | ) { 70 | setSelectAll(true) 71 | } 72 | }} 73 | /> 74 |
75 | 76 | 91 | 92 | 149 | 150 | 229 |
230 | ) 231 | } 232 | 233 | export default Index 234 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vercel/title-site/fcc2977abd3a22383ef15c661ec5cc77f52fa2f7/public/favicon.ico -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@next/env@12.1.0": 6 | version "12.1.0" 7 | resolved "https://registry.yarnpkg.com/@next/env/-/env-12.1.0.tgz#73713399399b34aa5a01771fb73272b55b22c314" 8 | integrity sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ== 9 | 10 | "@next/swc-android-arm64@12.1.0": 11 | version "12.1.0" 12 | resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz#865ba3a9afc204ff2bdeea49dd64d58705007a39" 13 | integrity sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA== 14 | 15 | "@next/swc-darwin-arm64@12.1.0": 16 | version "12.1.0" 17 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz#08e8b411b8accd095009ed12efbc2f1d4d547135" 18 | integrity sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg== 19 | 20 | "@next/swc-darwin-x64@12.1.0": 21 | version "12.1.0" 22 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz#fcd684497a76e8feaca88db3c394480ff0b007cd" 23 | integrity sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug== 24 | 25 | "@next/swc-linux-arm-gnueabihf@12.1.0": 26 | version "12.1.0" 27 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz#9ec6380a27938a5799aaa6035c205b3c478468a7" 28 | integrity sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog== 29 | 30 | "@next/swc-linux-arm64-gnu@12.1.0": 31 | version "12.1.0" 32 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz#7f4196dff1049cea479607c75b81033ae2dbd093" 33 | integrity sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q== 34 | 35 | "@next/swc-linux-arm64-musl@12.1.0": 36 | version "12.1.0" 37 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz#b445f767569cdc2dddee785ca495e1a88c025566" 38 | integrity sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA== 39 | 40 | "@next/swc-linux-x64-gnu@12.1.0": 41 | version "12.1.0" 42 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz#67610e9be4fbc987de7535f1bcb17e45fe12f90e" 43 | integrity sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A== 44 | 45 | "@next/swc-linux-x64-musl@12.1.0": 46 | version "12.1.0" 47 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz#ea19a23db08a9f2e34ac30401f774cf7d1669d31" 48 | integrity sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw== 49 | 50 | "@next/swc-win32-arm64-msvc@12.1.0": 51 | version "12.1.0" 52 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz#eadf054fc412085659b98e145435bbba200b5283" 53 | integrity sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw== 54 | 55 | "@next/swc-win32-ia32-msvc@12.1.0": 56 | version "12.1.0" 57 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz#68faeae10c89f698bf9d28759172b74c9c21bda1" 58 | integrity sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q== 59 | 60 | "@next/swc-win32-x64-msvc@12.1.0": 61 | version "12.1.0" 62 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz#d27e7e76c87a460a4da99c5bfdb1618dcd6cd064" 63 | integrity sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg== 64 | 65 | ansi-styles@^3.1.0: 66 | version "3.2.1" 67 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 68 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 69 | dependencies: 70 | color-convert "^1.9.0" 71 | 72 | arch@^2.1.0: 73 | version "2.2.0" 74 | resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" 75 | integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== 76 | 77 | arg@1.0.0: 78 | version "1.0.0" 79 | resolved "https://registry.yarnpkg.com/arg/-/arg-1.0.0.tgz#444d885a4e25b121640b55155ef7cd03975d6050" 80 | integrity sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw== 81 | 82 | caniuse-lite@^1.0.30001283: 83 | version "1.0.30001312" 84 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" 85 | integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== 86 | 87 | chalk@2.3.0: 88 | version "2.3.0" 89 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" 90 | integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== 91 | dependencies: 92 | ansi-styles "^3.1.0" 93 | escape-string-regexp "^1.0.5" 94 | supports-color "^4.0.0" 95 | 96 | clipboardy@1.2.2: 97 | version "1.2.2" 98 | resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.2.tgz#2ce320b9ed9be1514f79878b53ff9765420903e2" 99 | integrity sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw== 100 | dependencies: 101 | arch "^2.1.0" 102 | execa "^0.8.0" 103 | 104 | color-convert@^1.9.0: 105 | version "1.9.3" 106 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 107 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 108 | dependencies: 109 | color-name "1.1.3" 110 | 111 | color-name@1.1.3: 112 | version "1.1.3" 113 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 114 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 115 | 116 | cross-spawn@^5.0.1: 117 | version "5.1.0" 118 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 119 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 120 | dependencies: 121 | lru-cache "^4.0.1" 122 | shebang-command "^1.2.0" 123 | which "^1.2.9" 124 | 125 | escape-string-regexp@^1.0.5: 126 | version "1.0.5" 127 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 128 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 129 | 130 | execa@^0.8.0: 131 | version "0.8.0" 132 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" 133 | integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= 134 | dependencies: 135 | cross-spawn "^5.0.1" 136 | get-stream "^3.0.0" 137 | is-stream "^1.1.0" 138 | npm-run-path "^2.0.0" 139 | p-finally "^1.0.0" 140 | signal-exit "^3.0.0" 141 | strip-eof "^1.0.0" 142 | 143 | get-stream@^3.0.0: 144 | version "3.0.0" 145 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 146 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 147 | 148 | has-flag@^2.0.0: 149 | version "2.0.0" 150 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 151 | integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= 152 | 153 | is-stream@^1.1.0: 154 | version "1.1.0" 155 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 156 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 157 | 158 | isexe@^2.0.0: 159 | version "2.0.0" 160 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 161 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 162 | 163 | "js-tokens@^3.0.0 || ^4.0.0": 164 | version "4.0.0" 165 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 166 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 167 | 168 | loose-envify@^1.1.0, loose-envify@^1.4.0: 169 | version "1.4.0" 170 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 171 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 172 | dependencies: 173 | js-tokens "^3.0.0 || ^4.0.0" 174 | 175 | lru-cache@^4.0.1: 176 | version "4.1.5" 177 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 178 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 179 | dependencies: 180 | pseudomap "^1.0.2" 181 | yallist "^2.1.2" 182 | 183 | nanoid@^3.1.30: 184 | version "3.3.8" 185 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" 186 | integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== 187 | 188 | next@^12.1.0: 189 | version "12.1.0" 190 | resolved "https://registry.yarnpkg.com/next/-/next-12.1.0.tgz#c33d753b644be92fc58e06e5a214f143da61dd5d" 191 | integrity sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q== 192 | dependencies: 193 | "@next/env" "12.1.0" 194 | caniuse-lite "^1.0.30001283" 195 | postcss "8.4.5" 196 | styled-jsx "5.0.0" 197 | use-subscription "1.5.1" 198 | optionalDependencies: 199 | "@next/swc-android-arm64" "12.1.0" 200 | "@next/swc-darwin-arm64" "12.1.0" 201 | "@next/swc-darwin-x64" "12.1.0" 202 | "@next/swc-linux-arm-gnueabihf" "12.1.0" 203 | "@next/swc-linux-arm64-gnu" "12.1.0" 204 | "@next/swc-linux-arm64-musl" "12.1.0" 205 | "@next/swc-linux-x64-gnu" "12.1.0" 206 | "@next/swc-linux-x64-musl" "12.1.0" 207 | "@next/swc-win32-arm64-msvc" "12.1.0" 208 | "@next/swc-win32-ia32-msvc" "12.1.0" 209 | "@next/swc-win32-x64-msvc" "12.1.0" 210 | 211 | npm-run-path@^2.0.0: 212 | version "2.0.2" 213 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 214 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 215 | dependencies: 216 | path-key "^2.0.0" 217 | 218 | object-assign@^4.1.1: 219 | version "4.1.1" 220 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 221 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 222 | 223 | p-finally@^1.0.0: 224 | version "1.0.0" 225 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 226 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 227 | 228 | path-key@^2.0.0: 229 | version "2.0.1" 230 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 231 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 232 | 233 | picocolors@^1.0.0: 234 | version "1.0.0" 235 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 236 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 237 | 238 | postcss@8.4.5: 239 | version "8.4.5" 240 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" 241 | integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== 242 | dependencies: 243 | nanoid "^3.1.30" 244 | picocolors "^1.0.0" 245 | source-map-js "^1.0.1" 246 | 247 | prop-types@^15.5.8: 248 | version "15.7.2" 249 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" 250 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 251 | dependencies: 252 | loose-envify "^1.4.0" 253 | object-assign "^4.1.1" 254 | react-is "^16.8.1" 255 | 256 | pseudomap@^1.0.2: 257 | version "1.0.2" 258 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 259 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 260 | 261 | react-dom@^17.0.2: 262 | version "17.0.2" 263 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" 264 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== 265 | dependencies: 266 | loose-envify "^1.1.0" 267 | object-assign "^4.1.1" 268 | scheduler "^0.20.2" 269 | 270 | react-input-autosize@^3.0.0: 271 | version "3.0.0" 272 | resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-3.0.0.tgz#6b5898c790d4478d69420b55441fcc31d5c50a85" 273 | integrity sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg== 274 | dependencies: 275 | prop-types "^15.5.8" 276 | 277 | react-is@^16.8.1: 278 | version "16.13.1" 279 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" 280 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 281 | 282 | react@^17.0.2: 283 | version "17.0.2" 284 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" 285 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== 286 | dependencies: 287 | loose-envify "^1.1.0" 288 | object-assign "^4.1.1" 289 | 290 | scheduler@^0.20.2: 291 | version "0.20.2" 292 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" 293 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== 294 | dependencies: 295 | loose-envify "^1.1.0" 296 | object-assign "^4.1.1" 297 | 298 | shebang-command@^1.2.0: 299 | version "1.2.0" 300 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 301 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 302 | dependencies: 303 | shebang-regex "^1.0.0" 304 | 305 | shebang-regex@^1.0.0: 306 | version "1.0.0" 307 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 308 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 309 | 310 | signal-exit@^3.0.0: 311 | version "3.0.3" 312 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 313 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 314 | 315 | source-map-js@^1.0.1: 316 | version "1.0.2" 317 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 318 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 319 | 320 | strip-eof@^1.0.0: 321 | version "1.0.0" 322 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 323 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 324 | 325 | styled-jsx@5.0.0: 326 | version "5.0.0" 327 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.0.tgz#816b4b92e07b1786c6b7111821750e0ba4d26e77" 328 | integrity sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA== 329 | 330 | supports-color@^4.0.0: 331 | version "4.5.0" 332 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" 333 | integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= 334 | dependencies: 335 | has-flag "^2.0.0" 336 | 337 | title@^3.5.2: 338 | version "3.5.2" 339 | resolved "https://registry.yarnpkg.com/title/-/title-3.5.2.tgz#21596db334a55239d93b68525315b12da09624a9" 340 | integrity sha512-PD9x2repsKvhDr/aE8mz9JlcyGKbTPOhIRraioVi9gc8AZEVok875UPFnWHFs97ddIomPC/oThpENPx3HhV5kg== 341 | dependencies: 342 | arg "1.0.0" 343 | chalk "2.3.0" 344 | clipboardy "1.2.2" 345 | titleize "1.0.0" 346 | 347 | titleize@1.0.0: 348 | version "1.0.0" 349 | resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" 350 | integrity sha1-fTUHIgYYMLpmF2MeDP0+oIOY2Vo= 351 | 352 | use-subscription@1.5.1: 353 | version "1.5.1" 354 | resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1" 355 | integrity sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA== 356 | dependencies: 357 | object-assign "^4.1.1" 358 | 359 | which@^1.2.9: 360 | version "1.3.1" 361 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 362 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 363 | dependencies: 364 | isexe "^2.0.0" 365 | 366 | yallist@^2.1.2: 367 | version "2.1.2" 368 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 369 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 370 | --------------------------------------------------------------------------------