├── .babelrc ├── .gitignore ├── .idea ├── glhd-tailwindcss-plugins.iml ├── inspectionProfiles │ └── Project_Default.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── README.md ├── docs ├── .gitkeep ├── asset-manifest.json ├── favicon.ico ├── index.html ├── manifest.json ├── service-worker.js └── static │ ├── css │ ├── main.690a2011.css │ ├── main.690a2011.css.map │ ├── main.c17080f1.css │ └── main.c17080f1.css.map │ ├── js │ ├── 0.5e8108f9.chunk.js │ ├── 0.5e8108f9.chunk.js.map │ ├── 1.96fcb364.chunk.js │ ├── 1.96fcb364.chunk.js.map │ ├── main.17cd2f95.js │ ├── main.17cd2f95.js.map │ ├── main.a25c486c.js │ ├── main.a25c486c.js.map │ ├── main.af775860.js │ └── main.af775860.js.map │ └── media │ └── logo.5d5d9eef.svg ├── lerna.json ├── package.json ├── packages ├── docs │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── postcss.config.js │ ├── public │ │ └── index.html │ ├── src │ │ ├── components │ │ │ ├── App.js │ │ │ ├── Content.js │ │ │ └── Sidebar.js │ │ ├── index.js │ │ ├── pages │ │ │ ├── Overview.js │ │ │ └── Transitions.js │ │ ├── registerServiceWorker.js │ │ └── tailwind.css │ ├── tailwind.js │ └── yarn.lock └── glhd-tailwindcss-transitions │ ├── .npmignore │ ├── README.md │ ├── package.json │ └── src │ ├── defaultConfig.js │ ├── index.js │ └── plugin.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "env", 5 | { 6 | "targets": { 7 | "node": "6.9.0" 8 | } 9 | } 10 | ] 11 | ] 12 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | yarn-error.log 4 | lerna-debug.log 5 | 6 | .idea/**/workspace.xml 7 | .idea/**/tasks.xml 8 | .idea/dictionaries 9 | .idea/**/dataSources/ 10 | .idea/**/dataSources.ids 11 | .idea/**/dataSources.local.xml 12 | .idea/**/sqlDataSources.xml 13 | .idea/**/dynamic.xml 14 | .idea/**/uiDesigner.xml 15 | *.iws -------------------------------------------------------------------------------- /.idea/glhd-tailwindcss-plugins.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # A Collection of Tailwind Plugins 2 | 3 | [Documentation (work in progress)](https://glhd.github.io/tailwindcss-plugins/) 4 | 5 | ## Transitions 6 | 7 | Installation: 8 | 9 | ```bash 10 | yarn add glhd-tailwindcss-transitions 11 | ``` 12 | 13 | Usage: 14 | 15 | ```js 16 | // In your tailwind config 17 | { 18 | plugins: [ 19 | require('glhd-tailwindcss-transitions')(), 20 | ], 21 | } 22 | ``` 23 | 24 | 25 | By default, the plugin provides the following utilities: 26 | 27 | ```css 28 | .transition { 29 | transition-duration: .25s; 30 | } 31 | 32 | .transition-slower { 33 | transition-duration: .75s; 34 | } 35 | 36 | .transition-slow { 37 | transition-duration: .5s; 38 | } 39 | 40 | .transition-fast { 41 | transition-duration: .15s; 42 | } 43 | 44 | .transition-faster { 45 | transition-duration: .075s; 46 | } 47 | 48 | .transition { 49 | transition-property: all; 50 | } 51 | 52 | .transition-property-all { 53 | transition-property: all; 54 | } 55 | 56 | .transition-property-none { 57 | transition-property: none; 58 | } 59 | 60 | .transition-property-bg { 61 | transition-property: background; 62 | } 63 | 64 | .transition-property-opacity { 65 | transition-property: opacity; 66 | } 67 | 68 | .transition-property-color { 69 | transition-property: color; 70 | } 71 | 72 | .transition-property-shadow { 73 | transition-property: box-shadow; 74 | } 75 | 76 | .transition { 77 | transition-timing-function: ease-in-out; 78 | } 79 | 80 | .transition-timing-linear { 81 | transition-timing-function: linear; 82 | } 83 | 84 | .transition-timing-ease { 85 | transition-timing-function: ease; 86 | } 87 | 88 | .transition-timing-ease-in { 89 | transition-timing-function: ease-in; 90 | } 91 | 92 | .transition-timing-ease-out { 93 | transition-timing-function: ease-out; 94 | } 95 | 96 | .transition-timing-ease-in-out { 97 | transition-timing-function: ease-in-out; 98 | } 99 | 100 | .transition { 101 | transition-delay: .1s; 102 | } 103 | 104 | .transition-delay-long { 105 | transition-delay: .2s; 106 | } 107 | 108 | .transition-delay-longer { 109 | transition-delay: .3s; 110 | } 111 | 112 | .transition-delay-longest { 113 | transition-delay: .4s; 114 | } 115 | 116 | .transition-delay-none { 117 | transition-delay: 0s; 118 | } 119 | ``` 120 | 121 | Configuration: 122 | 123 | You can configure the `.transition` prefix, Tailwind variants, and utility options by passing a configuration object to the plugin. 124 | 125 | [See the default config](packages/glhd-tailwindcss-transitions/src/defaultConfig.js) for 126 | all options. You can either set these in your main Tailwind config file, or pass them into the plugin when you add it to Tailwind. 127 | 128 | 129 | -------------------------------------------------------------------------------- /docs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glhd/tailwindcss-plugins/4e2869d3d4dc369d07e80c91b00175d953f73a90/docs/.gitkeep -------------------------------------------------------------------------------- /docs/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "main.css": "static/css/main.690a2011.css", 3 | "main.css.map": "static/css/main.690a2011.css.map", 4 | "main.js": "static/js/main.17cd2f95.js", 5 | "main.js.map": "static/js/main.17cd2f95.js.map", 6 | "static/js/0.5e8108f9.chunk.js": "static/js/0.5e8108f9.chunk.js", 7 | "static/js/0.5e8108f9.chunk.js.map": "static/js/0.5e8108f9.chunk.js.map", 8 | "static/js/1.96fcb364.chunk.js": "static/js/1.96fcb364.chunk.js", 9 | "static/js/1.96fcb364.chunk.js.map": "static/js/1.96fcb364.chunk.js.map" 10 | } -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glhd/tailwindcss-plugins/4e2869d3d4dc369d07e80c91b00175d953f73a90/docs/favicon.ico -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | Tailwind CSS Plugins
-------------------------------------------------------------------------------- /docs/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /docs/service-worker.js: -------------------------------------------------------------------------------- 1 | "use strict";var precacheConfig=[["/tailwindcss-plugins/index.html","46fed48e13485a860ba68a02ec0ae8c1"],["/tailwindcss-plugins/static/css/main.690a2011.css","c618515c1e1879dce200eda42d735d7a"],["/tailwindcss-plugins/static/js/0.5e8108f9.chunk.js","84bc97a89fa917732c0fe94c6d0c2dce"],["/tailwindcss-plugins/static/js/1.96fcb364.chunk.js","db581b4836405f80739c64b5089b4788"],["/tailwindcss-plugins/static/js/main.17cd2f95.js","94be832f32591a494349a603d74db46c"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,t){var n=new URL(e);return"/"===n.pathname.slice(-1)&&(n.pathname+=t),n.toString()},cleanResponse=function(t){return t.redirected?("body"in t?Promise.resolve(t.body):t.blob()).then(function(e){return new Response(e,{headers:t.headers,status:t.status,statusText:t.statusText})}):Promise.resolve(t)},createCacheKey=function(e,t,n,r){var s=new URL(e);return r&&s.pathname.match(r)||(s.search+=(s.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(n)),s.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var n=new URL(t).pathname;return e.some(function(e){return n.match(e)})},stripIgnoredUrlParameters=function(e,n){var t=new URL(e);return t.hash="",t.search=t.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(t){return n.every(function(e){return!e.test(t[0])})}).map(function(e){return e.join("=")}).join("&"),t.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],n=e[1],r=new URL(t,self.location),s=createCacheKey(r,hashParamName,n,/\.\w{8}\./);return[r.toString(),s]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(r){return setOfCachedUrls(r).then(function(n){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(t){if(!n.has(t)){var e=new Request(t,{credentials:"same-origin"});return fetch(e).then(function(e){if(!e.ok)throw new Error("Request for "+t+" returned a response with status "+e.status);return cleanResponse(e).then(function(e){return r.put(t,e)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var n=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(t){return t.keys().then(function(e){return Promise.all(e.map(function(e){if(!n.has(e.url))return t.delete(e)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(t){if("GET"===t.request.method){var e,n=stripIgnoredUrlParameters(t.request.url,ignoreUrlParametersMatching),r="index.html";(e=urlsToCacheKeys.has(n))||(n=addDirectoryIndex(n,r),e=urlsToCacheKeys.has(n));var s="/tailwindcss-plugins/index.html";!e&&"navigate"===t.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],t.request.url)&&(n=new URL(s,self.location).toString(),e=urlsToCacheKeys.has(n)),e&&t.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(n)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(e){return console.warn('Couldn\'t serve response for "%s" from cache: %O',t.request.url,e),fetch(t.request)}))}}); -------------------------------------------------------------------------------- /docs/static/css/main.c17080f1.css: -------------------------------------------------------------------------------- 1 | body{margin:0;padding:0;font-family:sans-serif}.App{text-align:center}.App-logo{-webkit-animation:App-logo-spin infinite 20s linear;animation:App-logo-spin infinite 20s linear;height:80px}.App-header{background-color:#222;height:150px;padding:20px;color:#fff}.App-title{font-size:1.5em}.App-intro{font-size:large}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} 2 | /*# sourceMappingURL=main.c17080f1.css.map*/ -------------------------------------------------------------------------------- /docs/static/css/main.c17080f1.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["index.css","App.css"],"names":[],"mappings":"AAAA,KACE,SACA,UACA,sBAAwB,CCH1B,KACE,iBAAmB,CAGrB,UACE,oDACQ,4CACR,WAAa,CAGf,YACE,sBACA,aACA,aACA,UAAa,CAGf,WACE,eAAiB,CAGnB,WACE,eAAiB,CAGnB,iCACE,GAAO,+BAAiC,sBAAwB,CAChE,GAAK,gCAAmC,uBAA0B,CAAE,CAGtE,yBACE,GAAO,+BAAiC,sBAAwB,CAChE,GAAK,gCAAmC,uBAA0B,CAAE","file":"static/css/main.c17080f1.css","sourcesContent":["body {\n margin: 0;\n padding: 0;\n font-family: sans-serif;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.css",".App {\n text-align: center;\n}\n\n.App-logo {\n -webkit-animation: App-logo-spin infinite 20s linear;\n animation: App-logo-spin infinite 20s linear;\n height: 80px;\n}\n\n.App-header {\n background-color: #222;\n height: 150px;\n padding: 20px;\n color: white;\n}\n\n.App-title {\n font-size: 1.5em;\n}\n\n.App-intro {\n font-size: large;\n}\n\n@-webkit-keyframes App-logo-spin {\n from { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n\n@keyframes App-logo-spin {\n from { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/App.css"],"sourceRoot":""} -------------------------------------------------------------------------------- /docs/static/js/0.5e8108f9.chunk.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([0],{29:function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(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 i(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)}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),l=n.n(o),s=function(){function e(e,t){for(var n=0;n (\n\t
\n\t\t{ children }\n\t
\n);\n\nconst Demo = ({ className, label }) => (\n\t
\n\t\t{ label }\n\t
\n);\n\nexport default class Transitions extends Component {\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t

CSS Transitions

\n\t\t\t\t\n\t\t\t\t

Speed

\n\t\t\t\t\n\t\t\t\t

Hover to view transition

\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t

Property

\n\t\t\t\t\n\t\t\t\t

Hover to view transition

\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t

Timing

\n\t\t\t\t\n\t\t\t\t

Hover to view transition

\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t

Delay

\n\t\t\t\t\n\t\t\t\t

Hover to view transition

\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/Transitions.js"],"sourceRoot":""} -------------------------------------------------------------------------------- /docs/static/js/1.96fcb364.chunk.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([1],{28:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(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 u(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)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(0),c=n.n(i),a=function(){function e(e,t){for(var n=0;n\n\t\t\t\tDocs are a work in progress.\n\t\t\t\n\t\t);\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/Overview.js"],"sourceRoot":""} -------------------------------------------------------------------------------- /docs/static/js/main.af775860.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/tailwindcss-plugins/",t(t.s=5)}([function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,l,u=r(e),s=1;ss){for(var t=0,n=i.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function m(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function y(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var g={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(g.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],b=function(e){return e&&DataView.prototype.isPrototypeOf(e)},w=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},g.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var C=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var k=[301,302,303,307,308];y.redirect=function(e,t){if(-1===k.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=y,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),a=new XMLHttpRequest;a.onload=function(){var e={status:a.status,statusText:a.statusText,headers:m(a.getAllResponseHeaders()||"")};e.url="responseURL"in a?a.responseURL:e.headers.get("X-Request-URL");var t="response"in a?a.response:a.responseText;n(new y(t,e))},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request failed"))},a.open(o.method,o.url,!0),"include"===o.credentials&&(a.withCredentials=!0),"responseType"in a&&g.blob&&(a.responseType="blob"),o.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=n.n(r),a=n(14),i=n.n(a),l=n(24),u=(n.n(l),n(25));i.a.render(o.a.createElement(u.a,null),document.getElementById("root"))},function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;rM.length&&M.push(e)}function d(e,t,n,o){var a=typeof e;"undefined"!==a&&"boolean"!==a||(e=null);var i=!1;if(null===e)i=!0;else switch(a){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case k:case x:case E:case T:i=!0}}if(i)return n(o,e,""===t?"."+h(e,0):t),1;if(i=0,t=""===t?".":t+":",Array.isArray(e))for(var l=0;lthis.eventPool.length&&this.eventPool.push(e)}function z(e){e.eventPool=[],e.getPooled=H,e.release=B}function V(e,t,n,r){return j.call(this,e,t,n,r)}function K(e,t,n,r){return j.call(this,e,t,n,r)}function W(e,t){switch(e){case"topKeyUp":return-1!==dr.indexOf(t.keyCode);case"topKeyDown":return 229!==t.keyCode;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function q(e){return e=e.detail,"object"===typeof e&&"data"in e?e.data:null}function $(e,t){switch(e){case"topCompositionEnd":return q(t);case"topKeyPress":return 32!==t.which?null:(xr=!0,Cr);case"topTextInput":return e=t.data,e===Cr&&xr?null:e;default:return null}}function Q(e,t){if(Er)return"topCompositionEnd"===e||!hr&&W(e,t)?(e=U(),cr._root=null,cr._startText=null,cr._fallbackText=null,Er=!1,e):null;switch(e){case"topPaste":return null;case"topKeyPress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1zr.length&&zr.push(e)}}}function Ae(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function De(e){if($r[e])return $r[e];if(!qr[e])return e;var t,n=qr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Qr)return $r[e]=n[t];return""}function Me(e){return Object.prototype.hasOwnProperty.call(e,Zr)||(e[Zr]=Xr++,Yr[e[Zr]]={}),Yr[e[Zr]]}function Fe(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ue(e,t){var n=Fe(e);e=0;for(var r;n;){if(3===n.nodeType){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Fe(n)}}function Le(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)}function je(e,t){if(oo||null==to||to!==En())return null;var n=to;return"selectionStart"in n&&Le(n)?n={start:n.selectionStart,end:n.selectionEnd}:window.getSelection?(n=window.getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}):n=void 0,ro&&Tn(ro,n)?null:(ro=n,e=j.getPooled(eo.select,no,e,t),e.type="select",e.target=to,D(e),e)}function He(e,t,n,r){return j.call(this,e,t,n,r)}function Be(e,t,n,r){return j.call(this,e,t,n,r)}function ze(e,t,n,r){return j.call(this,e,t,n,r)}function Ve(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,32<=e||13===e?e:0}function Ke(e,t,n,r){return j.call(this,e,t,n,r)}function We(e,t,n,r){return j.call(this,e,t,n,r)}function qe(e,t,n,r){return j.call(this,e,t,n,r)}function $e(e,t,n,r){return j.call(this,e,t,n,r)}function Qe(e,t,n,r){return j.call(this,e,t,n,r)}function Ge(e){0>po||(e.current=fo[po],fo[po]=null,po--)}function Ye(e,t){po++,fo[po]=e.current,e.current=t}function Xe(e){return Je(e)?yo:ho.current}function Ze(e,t){var n=e.type.contextTypes;if(!n)return Pn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Je(e){return 2===e.tag&&null!=e.type.childContextTypes}function et(e){Je(e)&&(Ge(mo,e),Ge(ho,e))}function tt(e,t,n){null!=ho.cursor&&r("168"),Ye(ho,t,e),Ye(mo,n,e)}function nt(e,t){var n=e.stateNode,o=e.type.childContextTypes;if("function"!==typeof n.getChildContext)return t;n=n.getChildContext();for(var a in n)a in o||r("108",Ce(e)||"Unknown",a);return Cn({},t,n)}function rt(e){if(!Je(e))return!1;var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Pn,yo=ho.current,Ye(ho,t,e),Ye(mo,mo.current,e),!0}function ot(e,t){var n=e.stateNode;if(n||r("169"),t){var o=nt(e,yo);n.__reactInternalMemoizedMergedChildContext=o,Ge(mo,e),Ge(ho,e),Ye(ho,o,e)}else Ge(mo,e);Ye(mo,t,e)}function at(e,t,n){this.tag=e,this.key=t,this.stateNode=this.type=null,this.sibling=this.child=this.return=null,this.index=0,this.memoizedState=this.updateQueue=this.memoizedProps=this.pendingProps=this.ref=null,this.internalContextTag=n,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.expirationTime=0,this.alternate=null}function it(e,t,n){var r=e.alternate;return null===r?(r=new at(e.tag,e.key,e.internalContextTag),r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.effectTag=0,r.nextEffect=null,r.firstEffect=null,r.lastEffect=null),r.expirationTime=n,r.pendingProps=t,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function lt(e,t,n){var o=void 0,a=e.type,i=e.key;return"function"===typeof a?(o=a.prototype&&a.prototype.isReactComponent?new at(2,i,t):new at(0,i,t),o.type=a,o.pendingProps=e.props):"string"===typeof a?(o=new at(5,i,t),o.type=a,o.pendingProps=e.props):"object"===typeof a&&null!==a&&"number"===typeof a.tag?(o=a,o.pendingProps=e.props):r("130",null==a?a:typeof a,""),o.expirationTime=n,o}function ut(e,t,n,r){return t=new at(10,r,t),t.pendingProps=e,t.expirationTime=n,t}function st(e,t,n){return t=new at(6,null,t),t.pendingProps=e,t.expirationTime=n,t}function ct(e,t,n){return t=new at(7,e.key,t),t.type=e.handler,t.pendingProps=e,t.expirationTime=n,t}function ft(e,t,n){return e=new at(9,null,t),e.expirationTime=n,e}function pt(e,t,n){return t=new at(4,e.key,t),t.pendingProps=e.children||[],t.expirationTime=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function dt(e){return function(t){try{return e(t)}catch(e){}}}function ht(e){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);go=dt(function(e){return t.onCommitFiberRoot(n,e)}),vo=dt(function(e){return t.onCommitFiberUnmount(n,e)})}catch(e){}return!0}function mt(e){"function"===typeof go&&go(e)}function yt(e){"function"===typeof vo&&vo(e)}function gt(e){return{baseState:e,expirationTime:0,first:null,last:null,callbackList:null,hasForceUpdate:!1,isInitialized:!1}}function vt(e,t){null===e.last?e.first=e.last=t:(e.last.next=t,e.last=t),(0===e.expirationTime||e.expirationTime>t.expirationTime)&&(e.expirationTime=t.expirationTime)}function bt(e,t){var n=e.alternate,r=e.updateQueue;null===r&&(r=e.updateQueue=gt(null)),null!==n?null===(e=n.updateQueue)&&(e=n.updateQueue=gt(null)):e=null,e=e!==r?e:null,null===e?vt(r,t):null===r.last||null===e.last?(vt(r,t),vt(e,t)):(vt(r,t),e.last=t)}function wt(e,t,n,r){return e=e.partialState,"function"===typeof e?e.call(t,n,r):e}function Ct(e,t,n,r,o,a){null!==e&&e.updateQueue===n&&(n=t.updateQueue={baseState:n.baseState,expirationTime:n.expirationTime,first:n.first,last:n.last,isInitialized:n.isInitialized,callbackList:null,hasForceUpdate:!1}),n.expirationTime=0,n.isInitialized?e=n.baseState:(e=n.baseState=t.memoizedState,n.isInitialized=!0);for(var i=!0,l=n.first,u=!1;null!==l;){var s=l.expirationTime;if(s>a){var c=n.expirationTime;(0===c||c>s)&&(n.expirationTime=s),u||(u=!0,n.baseState=e)}else u||(n.first=l.next,null===n.first&&(n.last=null)),l.isReplace?(e=wt(l,r,e,o),i=!0):(s=wt(l,r,e,o))&&(e=i?Cn({},e,s):Cn(e,s),i=!1),l.isForced&&(n.hasForceUpdate=!0),null!==l.callback&&(s=n.callbackList,null===s&&(s=n.callbackList=[]),s.push(l));l=l.next}return null!==n.callbackList?t.effectTag|=32:null!==n.first||n.hasForceUpdate||(t.updateQueue=null),u||(n.baseState=e),e}function kt(e,t){var n=e.callbackList;if(null!==n)for(e.callbackList=null,e=0;ep?(d=f,f=null):d=f.sibling;var g=m(r,f,l[p],u);if(null===g){null===f&&(f=d);break}e&&f&&null===g.alternate&&t(r,f),a=i(g,a,p),null===c?s=g:c.sibling=g,c=g,f=d}if(p===l.length)return n(r,f),s;if(null===f){for(;pd?(g=p,p=null):g=p.sibling;var b=m(a,p,v.value,s);if(null===b){p||(p=g);break}e&&p&&null===b.alternate&&t(a,p),l=i(b,l,d),null===f?c=b:f.sibling=b,f=b,p=g}if(v.done)return n(a,p),c;if(null===p){for(;!v.done;d++,v=u.next())null!==(v=h(a,v.value,s))&&(l=i(v,l,d),null===f?c=v:f.sibling=v,f=v);return c}for(p=o(a,p);!v.done;d++,v=u.next())null!==(v=y(p,a,d,v.value,s))&&(e&&null!==v.alternate&&p.delete(null===v.key?d:v.key),l=i(v,l,d),null===f?c=v:f.sibling=v,f=v);return e&&p.forEach(function(e){return t(a,e)}),c}return function(e,o,i,u){"object"===typeof i&&null!==i&&i.type===Eo&&null===i.key&&(i=i.props.children);var s="object"===typeof i&&null!==i;if(s)switch(i.$$typeof){case wo:e:{var c=i.key;for(s=o;null!==s;){if(s.key===c){if(10===s.tag?i.type===Eo:s.type===i.type){n(e,s.sibling),o=a(s,i.type===Eo?i.props.children:i.props,u),o.ref=Tt(s,i),o.return=e,e=o;break e}n(e,s);break}t(e,s),s=s.sibling}i.type===Eo?(o=ut(i.props.children,e.internalContextTag,u,i.key),o.return=e,e=o):(u=lt(i,e.internalContextTag,u),u.ref=Tt(o,i),u.return=e,e=u)}return l(e);case Co:e:{for(s=i.key;null!==o;){if(o.key===s){if(7===o.tag){n(e,o.sibling),o=a(o,i,u),o.return=e,e=o;break e}n(e,o);break}t(e,o),o=o.sibling}o=ct(i,e.internalContextTag,u),o.return=e,e=o}return l(e);case ko:e:{if(null!==o){if(9===o.tag){n(e,o.sibling),o=a(o,null,u),o.type=i.value,o.return=e,e=o;break e}n(e,o)}o=ft(i,e.internalContextTag,u),o.type=i.value,o.return=e,e=o}return l(e);case xo:e:{for(s=i.key;null!==o;){if(o.key===s){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(e,o.sibling),o=a(o,i.children||[],u),o.return=e,e=o;break e}n(e,o);break}t(e,o),o=o.sibling}o=pt(i,e.internalContextTag,u),o.return=e,e=o}return l(e)}if("string"===typeof i||"number"===typeof i)return i=""+i,null!==o&&6===o.tag?(n(e,o.sibling),o=a(o,i,u)):(n(e,o),o=st(i,e.internalContextTag,u)),o.return=e,e=o,l(e);if(_o(i))return g(e,o,i,u);if(Et(i))return v(e,o,i,u);if(s&&_t(e,i),"undefined"===typeof i)switch(e.tag){case 2:case 1:u=e.type,r("152",u.displayName||u.name||"Component")}return n(e,o)}}function Pt(e,t,n,o,a){function i(e,t,n){var r=t.expirationTime;t.child=null===e?Po(t,null,n,r):So(t,e.child,n,r)}function l(e,t){var n=t.ref;null===n||e&&e.ref===n||(t.effectTag|=128)}function u(e,t,n,r){if(l(e,t),!n)return r&&ot(t,!1),c(e,t);n=t.stateNode,Br.current=t;var o=n.render();return t.effectTag|=1,i(e,t,o),t.memoizedState=n.state,t.memoizedProps=n.props,r&&ot(t,!0),t.child}function s(e){var t=e.stateNode;t.pendingContext?tt(e,t.pendingContext,t.pendingContext!==t.context):t.context&&tt(e,t.context,!1),y(e,t.containerInfo)}function c(e,t){if(null!==e&&t.child!==e.child&&r("153"),null!==t.child){e=t.child;var n=it(e,e.pendingProps,e.expirationTime);for(t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,n=n.sibling=it(e,e.pendingProps,e.expirationTime),n.return=t;n.sibling=null}return t.child}function f(e,t){switch(t.tag){case 3:s(t);break;case 2:rt(t);break;case 4:y(t,t.stateNode.containerInfo)}return null}var p=e.shouldSetTextContent,d=e.useSyncScheduling,h=e.shouldDeprioritizeSubtree,m=t.pushHostContext,y=t.pushHostContainer,g=n.enterHydrationState,v=n.resetHydrationState,b=n.tryToClaimNextHydratableInstance;e=xt(o,a,function(e,t){e.memoizedProps=t},function(e,t){e.memoizedState=t});var w=e.adoptClassInstance,C=e.constructClassInstance,k=e.mountClassInstance,x=e.updateClassInstance;return{beginWork:function(e,t,n){if(0===t.expirationTime||t.expirationTime>n)return f(e,t);switch(t.tag){case 0:null!==e&&r("155");var o=t.type,a=t.pendingProps,E=Xe(t);return E=Ze(t,E),o=o(a,E),t.effectTag|=1,"object"===typeof o&&null!==o&&"function"===typeof o.render?(t.tag=2,a=rt(t),w(t,o),k(t,n),t=u(e,t,!0,a)):(t.tag=1,i(e,t,o),t.memoizedProps=a,t=t.child),t;case 1:e:{if(a=t.type,n=t.pendingProps,o=t.memoizedProps,mo.current)null===n&&(n=o);else if(null===n||o===n){t=c(e,t);break e}o=Xe(t),o=Ze(t,o),a=a(n,o),t.effectTag|=1,i(e,t,a),t.memoizedProps=n,t=t.child}return t;case 2:return a=rt(t),o=void 0,null===e?t.stateNode?r("153"):(C(t,t.pendingProps),k(t,n),o=!0):o=x(e,t,n),u(e,t,o,a);case 3:return s(t),a=t.updateQueue,null!==a?(o=t.memoizedState,a=Ct(e,t,a,null,null,n),o===a?(v(),t=c(e,t)):(o=a.element,E=t.stateNode,(null===e||null===e.child)&&E.hydrate&&g(t)?(t.effectTag|=2,t.child=Po(t,null,o,n)):(v(),i(e,t,o)),t.memoizedState=a,t=t.child)):(v(),t=c(e,t)),t;case 5:m(t),null===e&&b(t),a=t.type;var T=t.memoizedProps;return o=t.pendingProps,null===o&&null===(o=T)&&r("154"),E=null!==e?e.memoizedProps:null,mo.current||null!==o&&T!==o?(T=o.children,p(a,o)?T=null:E&&p(a,E)&&(t.effectTag|=16),l(e,t),2147483647!==n&&!d&&h(a,o)?(t.expirationTime=2147483647,t=null):(i(e,t,T),t.memoizedProps=o,t=t.child)):t=c(e,t),t;case 6:return null===e&&b(t),e=t.pendingProps,null===e&&(e=t.memoizedProps),t.memoizedProps=e,null;case 8:t.tag=7;case 7:return a=t.pendingProps,mo.current?null===a&&null===(a=e&&e.memoizedProps)&&r("154"):null!==a&&t.memoizedProps!==a||(a=t.memoizedProps),o=a.children,t.stateNode=null===e?Po(t,t.stateNode,o,n):So(t,t.stateNode,o,n),t.memoizedProps=a,t.stateNode;case 9:return null;case 4:e:{if(y(t,t.stateNode.containerInfo),a=t.pendingProps,mo.current)null===a&&null==(a=e&&e.memoizedProps)&&r("154");else if(null===a||t.memoizedProps===a){t=c(e,t);break e}null===e?t.child=So(t,null,a,n):i(e,t,a),t.memoizedProps=a,t=t.child}return t;case 10:e:{if(n=t.pendingProps,mo.current)null===n&&(n=t.memoizedProps);else if(null===n||t.memoizedProps===n){t=c(e,t);break e}i(e,t,n),t.memoizedProps=n,t=t.child}return t;default:r("156")}},beginFailedWork:function(e,t,n){switch(t.tag){case 2:rt(t);break;case 3:s(t);break;default:r("157")}return t.effectTag|=64,null===e?t.child=null:t.child!==e.child&&(t.child=e.child),0===t.expirationTime||t.expirationTime>n?f(e,t):(t.firstEffect=null,t.lastEffect=null,t.child=null===e?Po(t,null,null,n):So(t,e.child,null,n),2===t.tag&&(e=t.stateNode,t.memoizedProps=e.props,t.memoizedState=e.state),t.child)}}}function Ot(e,t,n){function o(e){e.effectTag|=4}var a=e.createInstance,i=e.createTextInstance,l=e.appendInitialChild,u=e.finalizeInitialChildren,s=e.prepareUpdate,c=e.persistence,f=t.getRootHostContainer,p=t.popHostContext,d=t.getHostContext,h=t.popHostContainer,m=n.prepareToHydrateHostInstance,y=n.prepareToHydrateHostTextInstance,g=n.popHydrationState,v=void 0,b=void 0,w=void 0;return e.mutation?(v=function(){},b=function(e,t,n){(t.updateQueue=n)&&o(t)},w=function(e,t,n,r){n!==r&&o(t)}):r(c?"235":"236"),{completeWork:function(e,t,n){var c=t.pendingProps;switch(null===c?c=t.memoizedProps:2147483647===t.expirationTime&&2147483647!==n||(t.pendingProps=null),t.tag){case 1:return null;case 2:return et(t),null;case 3:return h(t),Ge(mo,t),Ge(ho,t),c=t.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==e&&null!==e.child||(g(t),t.effectTag&=-3),v(t),null;case 5:p(t),n=f();var C=t.type;if(null!==e&&null!=t.stateNode){var k=e.memoizedProps,x=t.stateNode,E=d();x=s(x,C,k,c,n,E),b(e,t,x,C,k,c,n),e.ref!==t.ref&&(t.effectTag|=128)}else{if(!c)return null===t.stateNode&&r("166"),null;if(e=d(),g(t))m(t,n,e)&&o(t);else{e=a(C,c,n,e,t);e:for(k=t.child;null!==k;){if(5===k.tag||6===k.tag)l(e,k.stateNode);else if(4!==k.tag&&null!==k.child){k.child.return=k,k=k.child;continue}if(k===t)break;for(;null===k.sibling;){if(null===k.return||k.return===t)break e;k=k.return}k.sibling.return=k.return,k=k.sibling}u(e,C,c,n)&&o(t),t.stateNode=e}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)w(e,t,e.memoizedProps,c);else{if("string"!==typeof c)return null===t.stateNode&&r("166"),null;e=f(),n=d(),g(t)?y(t)&&o(t):t.stateNode=i(c,e,n,t)}return null;case 7:(c=t.memoizedProps)||r("165"),t.tag=8,C=[];e:for((k=t.stateNode)&&(k.return=t);null!==k;){if(5===k.tag||6===k.tag||4===k.tag)r("247");else if(9===k.tag)C.push(k.type);else if(null!==k.child){k.child.return=k,k=k.child;continue}for(;null===k.sibling;){if(null===k.return||k.return===t)break e;k=k.return}k.sibling.return=k.return,k=k.sibling}return k=c.handler,c=k(c.props,C),t.child=So(t,null!==e?e.child:null,c,n),t.child;case 8:return t.tag=7,null;case 9:case 10:return null;case 4:return h(t),v(t),null;case 0:r("167");default:r("156")}}}}function Nt(e,t){function n(e){var n=e.ref;if(null!==n)try{n(null)}catch(n){t(e,n)}}function o(e){switch("function"===typeof yt&&yt(e),e.tag){case 2:n(e);var r=e.stateNode;if("function"===typeof r.componentWillUnmount)try{r.props=e.memoizedProps,r.state=e.memoizedState,r.componentWillUnmount()}catch(n){t(e,n)}break;case 5:n(e);break;case 7:a(e.stateNode);break;case 4:s&&l(e)}}function a(e){for(var t=e;;)if(o(t),null===t.child||s&&4===t.tag){if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return}t.sibling.return=t.return,t=t.sibling}else t.child.return=t,t=t.child}function i(e){return 5===e.tag||3===e.tag||4===e.tag}function l(e){for(var t=e,n=!1,i=void 0,l=void 0;;){if(!n){n=t.return;e:for(;;){switch(null===n&&r("160"),n.tag){case 5:i=n.stateNode,l=!1;break e;case 3:case 4:i=n.stateNode.containerInfo,l=!0;break e}n=n.return}n=!0}if(5===t.tag||6===t.tag)a(t),l?b(i,t.stateNode):v(i,t.stateNode);else if(4===t.tag?i=t.stateNode.containerInfo:o(t),null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return;t=t.return,4===t.tag&&(n=!1)}t.sibling.return=t.return,t=t.sibling}}var u=e.getPublicInstance,s=e.mutation;e=e.persistence,s||r(e?"235":"236");var c=s.commitMount,f=s.commitUpdate,p=s.resetTextContent,d=s.commitTextUpdate,h=s.appendChild,m=s.appendChildToContainer,y=s.insertBefore,g=s.insertInContainerBefore,v=s.removeChild,b=s.removeChildFromContainer;return{commitResetTextContent:function(e){p(e.stateNode)},commitPlacement:function(e){e:{for(var t=e.return;null!==t;){if(i(t)){var n=t;break e}t=t.return}r("160"),n=void 0}var o=t=void 0;switch(n.tag){case 5:t=n.stateNode,o=!1;break;case 3:case 4:t=n.stateNode.containerInfo,o=!0;break;default:r("161")}16&n.effectTag&&(p(t),n.effectTag&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||i(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag;){if(2&n.effectTag)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.effectTag)){n=n.stateNode;break e}}for(var a=e;;){if(5===a.tag||6===a.tag)n?o?g(t,a.stateNode,n):y(t,a.stateNode,n):o?m(t,a.stateNode):h(t,a.stateNode);else if(4!==a.tag&&null!==a.child){a.child.return=a,a=a.child;continue}if(a===e)break;for(;null===a.sibling;){if(null===a.return||a.return===e)return;a=a.return}a.sibling.return=a.return,a=a.sibling}},commitDeletion:function(e){l(e),e.return=null,e.child=null,e.alternate&&(e.alternate.child=null,e.alternate.return=null)},commitWork:function(e,t){switch(t.tag){case 2:break;case 5:var n=t.stateNode;if(null!=n){var o=t.memoizedProps;e=null!==e?e.memoizedProps:o;var a=t.type,i=t.updateQueue;t.updateQueue=null,null!==i&&f(n,i,a,e,o,t)}break;case 6:null===t.stateNode&&r("162"),n=t.memoizedProps,d(t.stateNode,null!==e?e.memoizedProps:n,n);break;case 3:break;default:r("163")}},commitLifeCycles:function(e,t){switch(t.tag){case 2:var n=t.stateNode;if(4&t.effectTag)if(null===e)n.props=t.memoizedProps,n.state=t.memoizedState,n.componentDidMount();else{var o=e.memoizedProps;e=e.memoizedState,n.props=t.memoizedProps,n.state=t.memoizedState,n.componentDidUpdate(o,e)}t=t.updateQueue,null!==t&&kt(t,n);break;case 3:n=t.updateQueue,null!==n&&kt(n,null!==t.child?t.child.stateNode:null);break;case 5:n=t.stateNode,null===e&&4&t.effectTag&&c(n,t.type,t.memoizedProps,t);break;case 6:case 4:break;default:r("163")}},commitAttachRef:function(e){var t=e.ref;if(null!==t){var n=e.stateNode;switch(e.tag){case 5:t(u(n));break;default:t(n)}}},commitDetachRef:function(e){null!==(e=e.ref)&&e(null)}}}function It(e){function t(e){return e===Oo&&r("174"),e}var n=e.getChildHostContext,o=e.getRootHostContext,a={current:Oo},i={current:Oo},l={current:Oo};return{getHostContext:function(){return t(a.current)},getRootHostContainer:function(){return t(l.current)},popHostContainer:function(e){Ge(a,e),Ge(i,e),Ge(l,e)},popHostContext:function(e){i.current===e&&(Ge(a,e),Ge(i,e))},pushHostContainer:function(e,t){Ye(l,t,e),t=o(t),Ye(i,e,e),Ye(a,t,e)},pushHostContext:function(e){var r=t(l.current),o=t(a.current);r=n(o,e.type,r),o!==r&&(Ye(i,e,e),Ye(a,r,e))},resetHostContainer:function(){a.current=Oo,l.current=Oo}}}function Rt(e){function t(e,t){var n=new at(5,null,0);n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function n(e,t){switch(e.tag){case 5:return null!==(t=i(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=l(t,e.pendingProps))&&(e.stateNode=t,!0);default:return!1}}function o(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag;)e=e.return;p=e}var a=e.shouldSetTextContent;if(!(e=e.hydration))return{enterHydrationState:function(){return!1},resetHydrationState:function(){},tryToClaimNextHydratableInstance:function(){},prepareToHydrateHostInstance:function(){r("175")},prepareToHydrateHostTextInstance:function(){r("176")},popHydrationState:function(){return!1}};var i=e.canHydrateInstance,l=e.canHydrateTextInstance,u=e.getNextHydratableSibling,s=e.getFirstHydratableChild,c=e.hydrateInstance,f=e.hydrateTextInstance,p=null,d=null,h=!1;return{enterHydrationState:function(e){return d=s(e.stateNode.containerInfo),p=e,h=!0},resetHydrationState:function(){d=p=null,h=!1},tryToClaimNextHydratableInstance:function(e){if(h){var r=d;if(r){if(!n(e,r)){if(!(r=u(r))||!n(e,r))return e.effectTag|=2,h=!1,void(p=e);t(p,d)}p=e,d=s(r)}else e.effectTag|=2,h=!1,p=e}},prepareToHydrateHostInstance:function(e,t,n){return t=c(e.stateNode,e.type,e.memoizedProps,t,n,e),e.updateQueue=t,null!==t},prepareToHydrateHostTextInstance:function(e){return f(e.stateNode,e.memoizedProps,e)},popHydrationState:function(e){if(e!==p)return!1;if(!h)return o(e),h=!0,!1;var n=e.type;if(5!==e.tag||"head"!==n&&"body"!==n&&!a(n,e.memoizedProps))for(n=d;n;)t(e,n),n=u(n);return o(e),d=p?u(e.stateNode):null,!0}}}function At(e){function t(e){ae=G=!0;var t=e.stateNode;if(t.current===e&&r("177"),t.isReadyForCommit=!1,Br.current=null,1i.expirationTime)&&(a=i.expirationTime),i=i.sibling;o.expirationTime=a}if(null!==t)return t;if(null!==n&&(null===n.firstEffect&&(n.firstEffect=e.firstEffect),null!==e.lastEffect&&(null!==n.lastEffect&&(n.lastEffect.nextEffect=e.firstEffect),n.lastEffect=e.lastEffect),1e))if(Z<=$)for(;null!==Y;)Y=s(Y)?a(Y):o(Y);else for(;null!==Y&&!k();)Y=s(Y)?a(Y):o(Y)}else if(!(0===Z||Z>e))if(Z<=$)for(;null!==Y;)Y=o(Y);else for(;null!==Y&&!k();)Y=o(Y)}function l(e,t){if(G&&r("243"),G=!0,e.isReadyForCommit=!1,e!==X||t!==Z||null===Y){for(;-1t)&&(e.expirationTime=t),null!==e.alternate&&(0===e.alternate.expirationTime||e.alternate.expirationTime>t)&&(e.alternate.expirationTime=t),null===e.return){if(3!==e.tag)break;var n=e.stateNode;!G&&n===X&&twe&&r("185"),null===o.nextScheduledRoot)o.remainingExpirationTime=a,null===ue?(le=ue=o,o.nextScheduledRoot=o):(ue=ue.nextScheduledRoot=o,ue.nextScheduledRoot=le);else{var i=o.remainingExpirationTime;(0===i||ase)return;z(ce)}var t=H()-q;se=e,ce=B(b,{timeout:10*(e-2)-t})}function v(){var e=0,t=null;if(null!==ue)for(var n=ue,o=le;null!==o;){var a=o.remainingExpirationTime;if(0===a){if((null===n||null===ue)&&r("244"),o===o.nextScheduledRoot){le=ue=o.nextScheduledRoot=null;break}if(o===le)le=a=o.nextScheduledRoot,ue.nextScheduledRoot=a,o.nextScheduledRoot=null;else{if(o===ue){ue=n,ue.nextScheduledRoot=le,o.nextScheduledRoot=null;break}n.nextScheduledRoot=o.nextScheduledRoot,o.nextScheduledRoot=null}o=n.nextScheduledRoot}else{if((0===e||axe)&&(he=!0)}function x(e){null===pe&&r("246"),pe.remainingExpirationTime=0,me||(me=!0,ye=e)}var E=It(e),T=Rt(e),_=E.popHostContainer,S=E.popHostContext,P=E.resetHostContainer,O=Pt(e,E,T,d,p),N=O.beginWork,I=O.beginFailedWork,R=Ot(e,E,T).completeWork;E=Nt(e,u);var A=E.commitResetTextContent,D=E.commitPlacement,M=E.commitDeletion,F=E.commitWork,U=E.commitLifeCycles,L=E.commitAttachRef,j=E.commitDetachRef,H=e.now,B=e.scheduleDeferredCallback,z=e.cancelDeferredCallback,V=e.useSyncScheduling,K=e.prepareForCommit,W=e.resetAfterCommit,q=H(),$=2,Q=0,G=!1,Y=null,X=null,Z=0,J=null,ee=null,te=null,ne=null,re=null,oe=!1,ae=!1,ie=!1,le=null,ue=null,se=0,ce=-1,fe=!1,pe=null,de=0,he=!1,me=!1,ye=null,ge=null,ve=!1,be=!1,we=1e3,ke=0,xe=1;return{computeAsyncExpiration:f,computeExpirationForFiber:p,scheduleWork:d,batchedUpdates:function(e,t){var n=ve;ve=!0;try{return e(t)}finally{(ve=n)||fe||w(1,null)}},unbatchedUpdates:function(e){if(ve&&!be){be=!0;try{return e()}finally{be=!1}}return e()},flushSync:function(e){var t=ve;ve=!0;try{e:{var n=Q;Q=1;try{var o=e();break e}finally{Q=n}o=void 0}return o}finally{ve=t,fe&&r("187"),w(1,null)}},deferredUpdates:function(e){var t=Q;Q=f();try{return e()}finally{Q=t}}}}function Dt(e){function t(e){return e=_e(e),null===e?null:e.stateNode}var n=e.getPublicInstance;e=At(e);var o=e.computeAsyncExpiration,a=e.computeExpirationForFiber,i=e.scheduleWork;return{createContainer:function(e,t){var n=new at(3,null,0);return e={current:n,containerInfo:e,pendingChildren:null,remainingExpirationTime:0,isReadyForCommit:!1,finishedWork:null,context:null,pendingContext:null,hydrate:t,nextScheduledRoot:null},n.stateNode=e},updateContainer:function(e,t,n,l){var u=t.current;if(n){n=n._reactInternalFiber;var s;e:{for(2===ke(n)&&2===n.tag||r("170"),s=n;3!==s.tag;){if(Je(s)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break e}(s=s.return)||r("171")}s=s.stateNode.context}n=Je(n)?nt(n,s):s}else n=Pn;null===t.context?t.context=n:t.pendingContext=n,t=l,t=void 0===t?null:t,l=null!=e&&null!=e.type&&null!=e.type.prototype&&!0===e.type.prototype.unstable_isAsyncReactComponent?o():a(u),bt(u,{expirationTime:l,partialState:{element:e},callback:t,isReplace:!1,isForced:!1,nextCallback:null,next:null}),i(u,l)},batchedUpdates:e.batchedUpdates,unbatchedUpdates:e.unbatchedUpdates,deferredUpdates:e.deferredUpdates,flushSync:e.flushSync,getPublicRootInstance:function(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return n(e.child.stateNode);default:return e.child.stateNode}},findHostInstance:t,findHostInstanceWithNoPortals:function(e){return e=Se(e),null===e?null:e.stateNode},injectIntoDevTools:function(e){var n=e.findFiberByHostInstance;return ht(Cn({},e,{findHostInstanceByFiber:function(e){return t(e)},findFiberByHostInstance:function(e){return n?n(e):null}}))}}}function Mt(e,t,n){var r=3n||r.hasOverloadedBooleanValue&&!1===n?jt(e,t):r.mustUseProperty?e[r.propertyName]=n:(t=r.attributeName,(o=r.attributeNamespace)?e.setAttributeNS(o,t,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&!0===n?e.setAttribute(t,""):e.setAttribute(t,""+n))}else Lt(e,t,a(t,n)?n:null)}function Lt(e,t,n){Ft(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))}function jt(e,t){var n=i(t);n?(t=n.mutationMethod)?t(e,void 0):n.mustUseProperty?e[n.propertyName]=!n.hasBooleanValue&&"":e.removeAttribute(n.attributeName):e.removeAttribute(t)}function Ht(e,t){var n=t.value,r=t.checked;return Cn({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked})}function Bt(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function zt(e,t){null!=(t=t.checked)&&Ut(e,"checked",t)}function Vt(e,t){zt(e,t);var n=t.value;null!=n?0===n&&""===e.value?e.value="0":"number"===t.type?(t=parseFloat(e.value)||0,(n!=t||n==t&&e.value!=n)&&(e.value=""+n)):e.value!==""+n&&(e.value=""+n):(null==t.value&&null!=t.defaultValue&&e.defaultValue!==""+t.defaultValue&&(e.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked))}function Kt(e,t){switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":e.value="",e.value=e.defaultValue;break;default:e.value=e.value}t=e.name,""!==t&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!e.defaultChecked,""!==t&&(e.name=t)}function Wt(e){var t="";return bn.Children.forEach(e,function(e){null==e||"string"!==typeof e&&"number"!==typeof e||(t+=e)}),t}function qt(e,t){return e=Cn({children:void 0},t),(t=Wt(t.children))&&(e.children=t),e}function $t(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o=t.length||r("93"),t=t[0]),n=""+t),null==n&&(n="")),e._wrapperState={initialValue:""+n}}function Xt(e,t){var n=t.value;null!=n&&(n=""+n,n!==e.value&&(e.value=n),null==t.defaultValue&&(e.defaultValue=n)),null!=t.defaultValue&&(e.defaultValue=t.defaultValue)}function Zt(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}function Jt(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function en(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?Jt(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}function tn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}function nn(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=n,a=t[n];o=null==a||"boolean"===typeof a||""===a?"":r||"number"!==typeof a||0===a||Jo.hasOwnProperty(o)&&Jo[o]?(""+a).trim():a+"px","float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}function rn(e,t,n){t&&(ta[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e,n()),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"===typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!==typeof t.style&&r("62",n()))}function on(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function an(e,t){e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument;var n=Me(e);t=Yn[t];for(var r=0;r<\/script>",e=e.removeChild(e.firstChild)):e="string"===typeof t.is?n.createElement(e,{is:t.is}):n.createElement(e):e=n.createElementNS(r,e),e}function un(e,t){return(9===t.nodeType?t:t.ownerDocument).createTextNode(e)}function sn(e,t,n,r){var o=on(t,n);switch(t){case"iframe":case"object":Ne("topLoad","load",e);var a=n;break;case"video":case"audio":for(a in oa)oa.hasOwnProperty(a)&&Ne(a,oa[a],e);a=n;break;case"source":Ne("topError","error",e),a=n;break;case"img":case"image":Ne("topError","error",e),Ne("topLoad","load",e),a=n;break;case"form":Ne("topReset","reset",e),Ne("topSubmit","submit",e),a=n;break;case"details":Ne("topToggle","toggle",e),a=n;break;case"input":Bt(e,n),a=Ht(e,n),Ne("topInvalid","invalid",e),an(r,"onChange");break;case"option":a=qt(e,n);break;case"select":Qt(e,n),a=Cn({},n,{value:void 0}),Ne("topInvalid","invalid",e),an(r,"onChange");break;case"textarea":Yt(e,n),a=Gt(e,n),Ne("topInvalid","invalid",e),an(r,"onChange");break;default:a=n}rn(t,a,ra);var i,l=a;for(i in l)if(l.hasOwnProperty(i)){var u=l[i];"style"===i?nn(e,u,ra):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&Zo(e,u):"children"===i?"string"===typeof u?("textarea"!==t||""!==u)&&tn(e,u):"number"===typeof u&&tn(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(Gn.hasOwnProperty(i)?null!=u&&an(r,i):o?Lt(e,i,u):null!=u&&Ut(e,i,u))}switch(t){case"input":ae(e),Kt(e,n);break;case"textarea":ae(e),Zt(e,n);break;case"option":null!=n.value&&e.setAttribute("value",n.value);break;case"select":e.multiple=!!n.multiple,t=n.value,null!=t?$t(e,!!n.multiple,t,!1):null!=n.defaultValue&&$t(e,!!n.multiple,n.defaultValue,!0);break;default:"function"===typeof a.onClick&&(e.onclick=kn)}}function cn(e,t,n,r,o){var a=null;switch(t){case"input":n=Ht(e,n),r=Ht(e,r),a=[];break;case"option":n=qt(e,n),r=qt(e,r),a=[];break;case"select":n=Cn({},n,{value:void 0}),r=Cn({},r,{value:void 0}),a=[];break;case"textarea":n=Gt(e,n),r=Gt(e,r),a=[];break;default:"function"!==typeof n.onClick&&"function"===typeof r.onClick&&(e.onclick=kn)}rn(t,r,ra);var i,l;e=null;for(i in n)if(!r.hasOwnProperty(i)&&n.hasOwnProperty(i)&&null!=n[i])if("style"===i)for(l in t=n[i])t.hasOwnProperty(l)&&(e||(e={}),e[l]="");else"dangerouslySetInnerHTML"!==i&&"children"!==i&&"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(Gn.hasOwnProperty(i)?a||(a=[]):(a=a||[]).push(i,null));for(i in r){var u=r[i];if(t=null!=n?n[i]:void 0,r.hasOwnProperty(i)&&u!==t&&(null!=u||null!=t))if("style"===i)if(t){for(l in t)!t.hasOwnProperty(l)||u&&u.hasOwnProperty(l)||(e||(e={}),e[l]="");for(l in u)u.hasOwnProperty(l)&&t[l]!==u[l]&&(e||(e={}),e[l]=u[l])}else e||(a||(a=[]),a.push(i,e)),e=u;else"dangerouslySetInnerHTML"===i?(u=u?u.__html:void 0,t=t?t.__html:void 0,null!=u&&t!==u&&(a=a||[]).push(i,""+u)):"children"===i?t===u||"string"!==typeof u&&"number"!==typeof u||(a=a||[]).push(i,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&(Gn.hasOwnProperty(i)?(null!=u&&an(o,i),a||t===u||(a=[])):(a=a||[]).push(i,u))}return e&&(a=a||[]).push("style",e),a}function fn(e,t,n,r,o){"input"===n&&"radio"===o.type&&null!=o.name&&zt(e,o),on(n,r),r=on(n,o);for(var a=0;a=u.hasBooleanValue+u.hasNumericValue+u.hasOverloadedBooleanValue||r("50",l),i.hasOwnProperty(l)&&(u.attributeName=i[l]),a.hasOwnProperty(l)&&(u.attributeNamespace=a[l]),e.hasOwnProperty(l)&&(u.mutationMethod=e[l]),In[l]=u}}},In={},Rn=Nn,An=Rn.MUST_USE_PROPERTY,Dn=Rn.HAS_BOOLEAN_VALUE,Mn=Rn.HAS_NUMERIC_VALUE,Fn=Rn.HAS_POSITIVE_NUMERIC_VALUE,Un=Rn.HAS_OVERLOADED_BOOLEAN_VALUE,Ln=Rn.HAS_STRING_BOOLEAN_VALUE,jn={Properties:{allowFullScreen:Dn,async:Dn,autoFocus:Dn,autoPlay:Dn,capture:Un,checked:An|Dn,cols:Fn,contentEditable:Ln,controls:Dn,default:Dn,defer:Dn,disabled:Dn,download:Un,draggable:Ln,formNoValidate:Dn,hidden:Dn,loop:Dn,multiple:An|Dn,muted:An|Dn,noValidate:Dn,open:Dn,playsInline:Dn,readOnly:Dn,required:Dn,reversed:Dn,rows:Fn,rowSpan:Mn,scoped:Dn,seamless:Dn,selected:An|Dn,size:Fn,start:Mn,span:Fn,spellCheck:Ln,style:0,tabIndex:0,itemScope:Dn,acceptCharset:0,className:0,htmlFor:0,httpEquiv:0,value:Ln},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}},Hn=Rn.HAS_STRING_BOOLEAN_VALUE,Bn={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},zn={Properties:{autoReverse:Hn,externalResourcesRequired:Hn,preserveAlpha:Hn},DOMAttributeNames:{autoReverse:"autoReverse",externalResourcesRequired:"externalResourcesRequired",preserveAlpha:"preserveAlpha"},DOMAttributeNamespaces:{xlinkActuate:Bn.xlink,xlinkArcrole:Bn.xlink,xlinkHref:Bn.xlink,xlinkRole:Bn.xlink,xlinkShow:Bn.xlink,xlinkTitle:Bn.xlink,xlinkType:Bn.xlink,xmlBase:Bn.xml,xmlLang:Bn.xml,xmlSpace:Bn.xml}},Vn=/[\-\:]([a-z])/g;"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode x-height xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xmlns:xlink xml:lang xml:space".split(" ").forEach(function(e){var t=e.replace(Vn,l);zn.Properties[t]=0,zn.DOMAttributeNames[t]=e}),Rn.injectDOMPropertyConfig(jn),Rn.injectDOMPropertyConfig(zn);var Kn={_caughtError:null,_hasCaughtError:!1,_rethrowError:null,_hasRethrowError:!1,injection:{injectErrorUtils:function(e){"function"!==typeof e.invokeGuardedCallback&&r("197"),u=e.invokeGuardedCallback}},invokeGuardedCallback:function(e,t,n,r,o,a,i,l,s){u.apply(Kn,arguments)},invokeGuardedCallbackAndCatchFirstError:function(e,t,n,r,o,a,i,l,u){if(Kn.invokeGuardedCallback.apply(this,arguments),Kn.hasCaughtError()){var s=Kn.clearCaughtError();Kn._hasRethrowError||(Kn._hasRethrowError=!0,Kn._rethrowError=s)}},rethrowCaughtError:function(){return s.apply(Kn,arguments)},hasCaughtError:function(){return Kn._hasCaughtError},clearCaughtError:function(){if(Kn._hasCaughtError){var e=Kn._caughtError;return Kn._caughtError=null,Kn._hasCaughtError=!1,e}r("198")}},Wn=null,qn={},$n=[],Qn={},Gn={},Yn={},Xn=Object.freeze({plugins:$n,eventNameDispatchConfigs:Qn,registrationNameModules:Gn,registrationNameDependencies:Yn,possibleRegistrationNames:null,injectEventPluginOrder:p,injectEventPluginsByName:d}),Zn=null,Jn=null,er=null,tr=null,nr={injectEventPluginOrder:p,injectEventPluginsByName:d},rr=Object.freeze({injection:nr,getListener:w,extractEvents:C,enqueueEvents:k,processEventQueue:x}),or=Math.random().toString(36).slice(2),ar="__reactInternalInstance$"+or,ir="__reactEventHandlers$"+or,lr=Object.freeze({precacheFiberNode:function(e,t){t[ar]=e},getClosestInstanceFromNode:E,getInstanceFromNode:function(e){return e=e[ar],!e||5!==e.tag&&6!==e.tag?null:e},getNodeFromInstance:T,getFiberCurrentPropsFromNode:_,updateFiberProps:function(e,t){e[ir]=t}}),ur=Object.freeze({accumulateTwoPhaseDispatches:D,accumulateTwoPhaseDispatchesSkipTarget:function(e){y(e,I)},accumulateEnterLeaveDispatches:M,accumulateDirectDispatches:function(e){y(e,A)}}),sr=null,cr={_root:null,_startText:null,_fallbackText:null},fr="dispatchConfig _targetInst nativeEvent isDefaultPrevented isPropagationStopped _dispatchListeners _dispatchInstances".split(" "),pr={type:null,target:null,currentTarget:kn.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};Cn(j.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=kn.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=kn.thatReturnsTrue)},persist:function(){this.isPersistent=kn.thatReturnsTrue},isPersistent:kn.thatReturnsFalse,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;for(t=0;t=parseInt(gr.version(),10))}var vr,br=yr,wr=wn.canUseDOM&&(!hr||mr&&8=mr),Cr=String.fromCharCode(32),kr={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"topBlur topCompositionEnd topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"topBlur topCompositionStart topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"topBlur topCompositionUpdate topKeyDown topKeyPress topKeyUp topMouseDown".split(" ")}},xr=!1,Er=!1,Tr={eventTypes:kr,extractEvents:function(e,t,n,r){var o;if(hr)e:{switch(e){case"topCompositionStart":var a=kr.compositionStart;break e;case"topCompositionEnd":a=kr.compositionEnd;break e;case"topCompositionUpdate":a=kr.compositionUpdate;break e}a=void 0}else Er?W(e,n)&&(a=kr.compositionEnd):"topKeyDown"===e&&229===n.keyCode&&(a=kr.compositionStart);return a?(wr&&(Er||a!==kr.compositionStart?a===kr.compositionEnd&&Er&&(o=U()):(cr._root=r,cr._startText=L(),Er=!0)),a=V.getPooled(a,t,n,r),o?a.data=o:null!==(o=q(n))&&(a.data=o),D(a),o=a):o=null,(e=br?$(e,n):Q(e,n))?(t=K.getPooled(kr.beforeInput,t,n,r),t.data=e,D(t)):t=null,[o,t]}},_r=null,Sr=null,Pr=null,Or={injectFiberControlledHostComponent:function(e){_r=e}},Nr=Object.freeze({injection:Or,enqueueStateRestore:Y,restoreStateIfNeeded:X}),Ir=!1,Rr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};wn.canUseDOM&&(vr=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""));var Ar={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"topBlur topChange topClick topFocus topInput topKeyDown topKeyUp topSelectionChange".split(" ")}},Dr=null,Mr=null,Fr=!1;wn.canUseDOM&&(Fr=ne("input")&&(!document.documentMode||9=document.documentMode,eo={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"topBlur topContextMenu topFocus topKeyDown topKeyUp topMouseDown topMouseUp topSelectionChange".split(" ")}},to=null,no=null,ro=null,oo=!1,ao={eventTypes:eo,extractEvents:function(e,t,n,r){var o,a=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(o=!a)){e:{a=Me(a),o=Yn.onSelect;for(var i=0;i=zo-e){if(!(-1!==Ho&&Ho<=e))return void(Bo||(Bo=!0,requestAnimationFrame(qo)));Uo.didTimeout=!0}else Uo.didTimeout=!1;Ho=-1,e=Lo,Lo=null,null!==e&&e(Uo)}},!1);var qo=function(e){Bo=!1;var t=e-zo+Ko;tt&&(t=8),Ko=t"+t+"",t=Xo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}}),Jo={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ea=["Webkit","ms","Moz","O"];Object.keys(Jo).forEach(function(e){ea.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jo[t]=Jo[e]})});var ta=Cn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),na=Yo.html,ra=kn.thatReturns(""),oa={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},aa=Object.freeze({createElement:ln,createTextNode:un,setInitialProperties:sn,diffProperties:cn,updateProperties:fn,diffHydratedProperties:pn,diffHydratedText:dn,warnForUnmatchedText:function(){},warnForDeletedHydratableElement:function(){},warnForDeletedHydratableText:function(){},warnForInsertedHydratedElement:function(){},warnForInsertedHydratedText:function(){},restoreControlledState:function(e,t,n){switch(t){case"input":if(Vt(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;tr&&(o=r,r=e,e=o),o=Ue(n,e);var a=Ue(n,r);if(o&&a&&(1!==t.rangeCount||t.anchorNode!==o.node||t.anchorOffset!==o.offset||t.focusNode!==a.node||t.focusOffset!==a.offset)){var i=document.createRange();i.setStart(o.node,o.offset),t.removeAllRanges(),e>r?(t.addRange(i),t.extend(a.node,a.offset)):(i.setEnd(a.node,a.offset),t.addRange(i))}}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(Sn(n),n=0;n 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "lerna": "2.9.0", 3 | "packages": [ 4 | "packages/*" 5 | ], 6 | "version": "0.3.0", 7 | "npmClient": "yarn", 8 | "useWorkspaces": true 9 | } 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "prepublish": "yarn run build", 5 | "build": "lerna exec --parallel -- yarn run build", 6 | "bootstrap": "lerna bootstrap", 7 | "canary": "yarn run build && lerna publish --canary", 8 | "publish": "yarn run build && lerna publish", 9 | "docs": "yarn run build && cp -rf packages/docs/build/* docs/" 10 | }, 11 | "devDependencies": { 12 | "babel-cli": "^6.26.0", 13 | "babel-preset-env": "^1.6.1", 14 | "lerna": "^2.9.0", 15 | "tailwindcss": "^0.5.1" 16 | }, 17 | "workspaces": [ 18 | "packages/*" 19 | ], 20 | "dependencies": { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/docs/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | /src/generated.css 12 | 13 | # misc 14 | .DS_Store 15 | .env.local 16 | .env.development.local 17 | .env.test.local 18 | .env.production.local 19 | 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | -------------------------------------------------------------------------------- /packages/docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glhd-tailwindcss-docs", 3 | "version": "0.3.0", 4 | "homepage": "https://glhd.github.io/tailwindcss-plugins/", 5 | "private": true, 6 | "dependencies": { 7 | "autoprefixer": "^8.1.0", 8 | "concurrently": "^3.5.1", 9 | "postcss-cli": "^5.0.0", 10 | "react": "^16.2.0", 11 | "react-dom": "^16.2.0", 12 | "react-hot-loader": "^4.0.0", 13 | "react-loadable": "^5.3.1", 14 | "react-router-dom": "^4.2.2", 15 | "react-scripts": "1.1.1" 16 | }, 17 | "scripts": { 18 | "dev": "concurrently 'yarn run watch' 'yarn run start'", 19 | "start": "react-scripts start", 20 | "build": "yarn run tailwind && react-scripts build", 21 | "tailwind": "../../node_modules/.bin/tailwind build ./src/tailwind.css -c ./tailwind.js -o ./src/generated.css", 22 | "watch": "postcss src/tailwind.css -o src/generated.css -w --verbose" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/docs/postcss.config.js: -------------------------------------------------------------------------------- 1 | 2 | const tailwindcss = require('tailwindcss'); 3 | const autoprefixer = require('autoprefixer'); 4 | 5 | module.exports = { 6 | plugins: [ 7 | tailwindcss('./tailwind.js'), 8 | autoprefixer, 9 | ] 10 | }; -------------------------------------------------------------------------------- /packages/docs/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | Tailwind CSS Plugins 10 | 11 | 12 | 15 |
16 | 17 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/components/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { HashRouter as Router, Link, Route } from 'react-router-dom'; 3 | import Loadable from 'react-loadable'; 4 | import Sidebar from './Sidebar'; 5 | import Content from './Content'; 6 | 7 | const load = (name) => Loadable({ 8 | loader: () => import(`../pages/${name}`), 9 | loading: () =>
Loading…
, 10 | }); 11 | 12 | export default class App extends Component { 13 | render() { 14 | return ( 15 | 16 |
17 | 18 | 19 |
20 |
21 | ); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/docs/src/components/Content.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { Link, Route } from 'react-router-dom'; 3 | import Loadable from 'react-loadable'; 4 | 5 | const load = (name) => Loadable({ 6 | loader: () => import(`../pages/${name}`), 7 | loading: () =>
Loading…
, 8 | }); 9 | 10 | export default class Content extends Component { 11 | render() { 12 | return ( 13 |
14 | { /* */ } 15 | 16 |
17 | ); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/docs/src/components/Sidebar.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import { NavLink } from 'react-router-dom'; 3 | 4 | const activeClassName = 'font-bold text-black cursor-default no-underline'; 5 | const NavItem = (props) => ; 6 | 7 | export default class Sidebar extends Component { 8 | render() { 9 | return ( 10 |
11 | { /* Home */ } 12 | Transitions 13 | 14 | 15 | Github 16 | 17 | 18 |
19 | 20 |
21 | Coming soon: Bootstrap-compatible component plugins. 22 |
23 |
24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /packages/docs/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './components/App'; 4 | import './generated.css'; 5 | 6 | ReactDOM.render(, document.getElementById('root')); 7 | 8 | if (module.hot) { 9 | module.hot.accept(); 10 | } 11 | -------------------------------------------------------------------------------- /packages/docs/src/pages/Overview.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | 3 | export default class Overview extends Component { 4 | render() { 5 | return ( 6 |
7 | Docs are a work in progress. 8 |
9 | ); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/docs/src/pages/Transitions.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | 3 | const Container = ({ children }) => ( 4 |
5 | { children } 6 |
7 | ); 8 | 9 | const Demo = ({ className, label }) => ( 10 |
11 | { label } 12 |
13 | ); 14 | 15 | export default class Transitions extends Component { 16 | render() { 17 | return ( 18 |
19 |

CSS Transitions

20 | 21 |

Speed

22 | 23 |

Hover to view transition

24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |

Property

34 | 35 |

Hover to view transition

36 | 37 | 38 | 39 | 40 | 41 | 42 | 44 | 45 | 46 | 47 |

Timing

48 | 49 |

Hover to view transition

50 | 51 | 52 | 53 | 55 | 56 | 57 | 58 | 60 | 61 | 62 |

Delay

63 | 64 |

Hover to view transition

65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 |
73 | ); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /packages/docs/src/registerServiceWorker.js: -------------------------------------------------------------------------------- 1 | // In production, we register a service worker to serve assets from local cache. 2 | 3 | // This lets the app load faster on subsequent visits in production, and gives 4 | // it offline capabilities. However, it also means that developers (and users) 5 | // will only see deployed updates on the "N+1" visit to a page, since previously 6 | // cached resources are updated in the background. 7 | 8 | // To learn more about the benefits of this model, read https://goo.gl/KwvDNy. 9 | // This link also includes instructions on opting out of this behavior. 10 | 11 | const isLocalhost = Boolean( 12 | window.location.hostname === 'localhost' || 13 | // [::1] is the IPv6 localhost address. 14 | window.location.hostname === '[::1]' || 15 | // 127.0.0.1/8 is considered localhost for IPv4. 16 | window.location.hostname.match( 17 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 18 | ) 19 | ); 20 | 21 | export default function register() { 22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 23 | // The URL constructor is available in all browsers that support SW. 24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location); 25 | if (publicUrl.origin !== window.location.origin) { 26 | // Our service worker won't work if PUBLIC_URL is on a different origin 27 | // from what our page is served on. This might happen if a CDN is used to 28 | // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 29 | return; 30 | } 31 | 32 | window.addEventListener('load', () => { 33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 34 | 35 | if (isLocalhost) { 36 | // This is running on localhost. Lets check if a service worker still exists or not. 37 | checkValidServiceWorker(swUrl); 38 | 39 | // Add some additional logging to localhost, pointing developers to the 40 | // service worker/PWA documentation. 41 | navigator.serviceWorker.ready.then(() => { 42 | console.log( 43 | 'This web app is being served cache-first by a service ' + 44 | 'worker. To learn more, visit https://goo.gl/SC7cgQ' 45 | ); 46 | }); 47 | } else { 48 | // Is not local host. Just register service worker 49 | registerValidSW(swUrl); 50 | } 51 | }); 52 | } 53 | } 54 | 55 | function registerValidSW(swUrl) { 56 | navigator.serviceWorker 57 | .register(swUrl) 58 | .then(registration => { 59 | registration.onupdatefound = () => { 60 | const installingWorker = registration.installing; 61 | installingWorker.onstatechange = () => { 62 | if (installingWorker.state === 'installed') { 63 | if (navigator.serviceWorker.controller) { 64 | // At this point, the old content will have been purged and 65 | // the fresh content will have been added to the cache. 66 | // It's the perfect time to display a "New content is 67 | // available; please refresh." message in your web app. 68 | console.log('New content is available; please refresh.'); 69 | } else { 70 | // At this point, everything has been precached. 71 | // It's the perfect time to display a 72 | // "Content is cached for offline use." message. 73 | console.log('Content is cached for offline use.'); 74 | } 75 | } 76 | }; 77 | }; 78 | }) 79 | .catch(error => { 80 | console.error('Error during service worker registration:', error); 81 | }); 82 | } 83 | 84 | function checkValidServiceWorker(swUrl) { 85 | // Check if the service worker can be found. If it can't reload the page. 86 | fetch(swUrl) 87 | .then(response => { 88 | // Ensure service worker exists, and that we really are getting a JS file. 89 | if ( 90 | response.status === 404 || 91 | response.headers.get('content-type').indexOf('javascript') === -1 92 | ) { 93 | // No service worker found. Probably a different app. Reload the page. 94 | navigator.serviceWorker.ready.then(registration => { 95 | registration.unregister().then(() => { 96 | window.location.reload(); 97 | }); 98 | }); 99 | } else { 100 | // Service worker found. Proceed as normal. 101 | registerValidSW(swUrl); 102 | } 103 | }) 104 | .catch(() => { 105 | console.log( 106 | 'No internet connection found. App is running in offline mode.' 107 | ); 108 | }); 109 | } 110 | 111 | export function unregister() { 112 | if ('serviceWorker' in navigator) { 113 | navigator.serviceWorker.ready.then(registration => { 114 | registration.unregister(); 115 | }); 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /packages/docs/src/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind preflight; 2 | @tailwind components; 3 | @tailwind utilities; -------------------------------------------------------------------------------- /packages/docs/tailwind.js: -------------------------------------------------------------------------------- 1 | 2 | const transitionsPlugin = require('glhd-tailwindcss-transitions').default; 3 | const defaultConfig = require('tailwindcss/defaultConfig')(); 4 | 5 | defaultConfig.plugins.push(transitionsPlugin()); 6 | defaultConfig.modules = 'all'; 7 | 8 | module.exports = defaultConfig; -------------------------------------------------------------------------------- /packages/glhd-tailwindcss-transitions/.npmignore: -------------------------------------------------------------------------------- 1 | src/ 2 | README.md -------------------------------------------------------------------------------- /packages/glhd-tailwindcss-transitions/README.md: -------------------------------------------------------------------------------- 1 | # A Collection of Tailwind Plugins 2 | 3 | [Documentation (work in progress)](https://glhd.github.io/tailwindcss-plugins/) 4 | 5 | ## Transitions 6 | 7 | Installation: 8 | 9 | ```bash 10 | yarn add glhd-tailwindcss-transitions 11 | ``` 12 | 13 | Usage: 14 | 15 | ```js 16 | // In your tailwind config 17 | { 18 | plugins: [ 19 | require('glhd-tailwindcss-transitions')(), 20 | ], 21 | } 22 | ``` 23 | 24 | 25 | By default, the plugin provides the following utilities: 26 | 27 | ```css 28 | .transition { 29 | transition-duration: .25s; 30 | } 31 | 32 | .transition-slower { 33 | transition-duration: .75s; 34 | } 35 | 36 | .transition-slow { 37 | transition-duration: .5s; 38 | } 39 | 40 | .transition-fast { 41 | transition-duration: .15s; 42 | } 43 | 44 | .transition-faster { 45 | transition-duration: .075s; 46 | } 47 | 48 | .transition { 49 | transition-property: all; 50 | } 51 | 52 | .transition-property-all { 53 | transition-property: all; 54 | } 55 | 56 | .transition-property-none { 57 | transition-property: none; 58 | } 59 | 60 | .transition-property-bg { 61 | transition-property: background; 62 | } 63 | 64 | .transition-property-opacity { 65 | transition-property: opacity; 66 | } 67 | 68 | .transition-property-color { 69 | transition-property: color; 70 | } 71 | 72 | .transition-property-shadow { 73 | transition-property: box-shadow; 74 | } 75 | 76 | .transition { 77 | transition-timing-function: ease-in-out; 78 | } 79 | 80 | .transition-timing-linear { 81 | transition-timing-function: linear; 82 | } 83 | 84 | .transition-timing-ease { 85 | transition-timing-function: ease; 86 | } 87 | 88 | .transition-timing-ease-in { 89 | transition-timing-function: ease-in; 90 | } 91 | 92 | .transition-timing-ease-out { 93 | transition-timing-function: ease-out; 94 | } 95 | 96 | .transition-timing-ease-in-out { 97 | transition-timing-function: ease-in-out; 98 | } 99 | 100 | .transition { 101 | transition-delay: .1s; 102 | } 103 | 104 | .transition-delay-long { 105 | transition-delay: .2s; 106 | } 107 | 108 | .transition-delay-longer { 109 | transition-delay: .3s; 110 | } 111 | 112 | .transition-delay-longest { 113 | transition-delay: .4s; 114 | } 115 | 116 | .transition-delay-none { 117 | transition-delay: 0s; 118 | } 119 | ``` 120 | 121 | Configuration: 122 | 123 | You can configure the `.transition` prefix, Tailwind variants, and utility options by passing a configuration object to the plugin. 124 | 125 | [See the default config](packages/glhd-tailwindcss-transitions/src/defaultConfig.js) for 126 | all options. You can either set these in your main Tailwind config file, or pass them into the plugin when you add it to Tailwind. 127 | 128 | 129 | -------------------------------------------------------------------------------- /packages/glhd-tailwindcss-transitions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glhd-tailwindcss-transitions", 3 | "version": "0.3.0", 4 | "main": "dist/index.js", 5 | "repository": "https://github.com/glhd/tailwindcss-plugins", 6 | "author": "Chris Morrell", 7 | "license": "MIT", 8 | "private": false, 9 | "scripts": { 10 | "prepublish": "cp -f ../../README.md ./README.md", 11 | "build": "babel src -d dist" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/glhd-tailwindcss-transitions/src/defaultConfig.js: -------------------------------------------------------------------------------- 1 | export default { 2 | transitionPrefix: '.transition', 3 | transitionVariants: [], 4 | transitionDuration: { 5 | 'default': '.25s', 6 | 'slower': '.75s', 7 | 'slow': '.5s', 8 | 'fast': '.15s', 9 | 'faster': '.075s', 10 | }, 11 | transitionProperty: { 12 | 'default': 'all', 13 | 'all': 'all', 14 | 'none': 'none', 15 | 'bg': 'background', 16 | 'opacity': 'opacity', 17 | 'color': 'color', 18 | 'shadow': 'box-shadow', 19 | }, 20 | transitionTimingFunction: { 21 | 'default': 'ease-in-out', 22 | 'linear': 'linear', 23 | 'ease': 'ease', 24 | 'ease-in': 'ease-in', 25 | 'ease-out': 'ease-out', 26 | 'ease-in-out': 'ease-in-out', 27 | }, 28 | transitionDelay: { 29 | 'default': '.1s', 30 | 'long': '.2s', 31 | 'longer': '.3s', 32 | 'longest': '.4s', 33 | 'none': '0s', 34 | }, 35 | }; 36 | -------------------------------------------------------------------------------- /packages/glhd-tailwindcss-transitions/src/index.js: -------------------------------------------------------------------------------- 1 | 2 | import plugin from './plugin'; 3 | import defaultConfig from './defaultConfig'; 4 | 5 | module.exports = plugin; 6 | module.exports.default = plugin; 7 | module.exports.defaultConfig = defaultConfig; 8 | -------------------------------------------------------------------------------- /packages/glhd-tailwindcss-transitions/src/plugin.js: -------------------------------------------------------------------------------- 1 | 2 | import defaultConfig from './defaultConfig'; 3 | 4 | export default (options = {}) => ({ addUtilities, config: userConfig }) => { 5 | const config = (name) => { 6 | return (name in options) 7 | ? options[name] 8 | : userConfig(name, defaultConfig[name]); 9 | }; 10 | 11 | const variants = config('transitionVariants'); 12 | const prefix = config('transitionPrefix'); 13 | 14 | const className = (key, modifier = '') => ('default' === key) 15 | ? prefix 16 | : `${prefix}${modifier}-${key}`; 17 | 18 | // Duration 19 | addUtilities(Object.entries(config('transitionDuration')).map(([key, value]) => { 20 | return { 21 | [className(key)]: { 22 | 'transition-duration': value, 23 | } 24 | }; 25 | }), variants); 26 | 27 | // Property 28 | addUtilities(Object.entries(config('transitionProperty')).map(([key, value]) => { 29 | return { 30 | [className(key, '-property')]: { 31 | 'transition-property': value, 32 | } 33 | }; 34 | }), variants); 35 | 36 | // Timing Function 37 | addUtilities(Object.entries(config('transitionTimingFunction')).map(([key, value]) => { 38 | return { 39 | [className(key, '-timing')]: { 40 | 'transition-timing-function': value, 41 | } 42 | }; 43 | }), variants); 44 | 45 | // Delay 46 | addUtilities(Object.entries(config('transitionDelay')).map(([key, value]) => { 47 | return { 48 | [className(key, '-delay')]: { 49 | 'transition-delay': value, 50 | } 51 | }; 52 | }), variants); 53 | }; 54 | --------------------------------------------------------------------------------