├── .gitignore ├── bsconfig.json ├── package.json ├── LICENSE ├── README.md ├── src ├── ReactFela.rei └── ReactFela.re ├── lib └── js │ └── src │ └── ReactFela.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | .merlin 3 | lib/ 4 | node_modules 5 | -------------------------------------------------------------------------------- /bsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@astrada/bs-react-fela", 3 | "sources": ["src"], 4 | "bs-dependencies": ["reason-react"], 5 | "refmt": 3 6 | } 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@astrada/bs-react-fela", 3 | "version": "0.3.1", 4 | "description": "BuckleScript bindings for react-fela", 5 | "main": "src/ReactFela.re", 6 | "scripts": { 7 | "build": "bsb -make-world", 8 | "start": "bsb -make-world -w", 9 | "clean": "bsb -clean-world" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/astrada/bs-react-fela.git" 14 | }, 15 | "keywords": [ 16 | "bucklescript", 17 | "react", 18 | "fela", 19 | "reason" 20 | ], 21 | "author": "Alessandro Strada ", 22 | "license": "MIT", 23 | "bugs": { 24 | "url": "https://github.com/astrada/bs-react-fela/issues" 25 | }, 26 | "homepage": "https://github.com/astrada/bs-react-fela", 27 | "dependencies": { 28 | "fela": "^6.1.9", 29 | "react-fela": "^7.3.1" 30 | }, 31 | "devDependencies": { 32 | "bs-platform": "^4.0.3", 33 | "reason-react": "^0.5.0" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Alessandro Strada 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | bs-react-fela 2 | ============= 3 | 4 | Reason/BuckleScript bindings for 5 | [react-fela](https://github.com/rofrischmann/fela/tree/master/packages/react-fela). 6 | See also 7 | [bs-react-fela-examples](https://github.com/astrada/bs-react-fela-examples). 8 | 9 | From Fela [documentation](http://fela.js.org/): 10 | 11 | Fela is a small, high-performant and framework-agnostic toolbelt to handle 12 | state-driven styling in JavaScript. It is dynamic by design and renders your 13 | styles depending on your application state. 14 | 15 | It generates atomic CSS and supports all common CSS features such as media 16 | queries, pseudo classes, keyframes and font-faces. Fela ships with a powerful 17 | plugin API adding e.g. [vendor 18 | prefixing](http://fela.js.org/packages/fela-plugin-prefixer) or [fallback 19 | value](http://fela.js.org/packages/fela-plugin-fallback-value) support. 20 | 21 | Fela can be used with 22 | [React](https://github.com/rofrischmann/fela/tree/master/packages/react-fela) 23 | or with any other view library. It even supports [React 24 | Native](http://fela.js.org/docs/guides/UsageWithReactNative.html). 25 | 26 | ### Prerequisites 27 | 28 | yarn install 29 | 30 | ### How to compile 31 | 32 | yarn build 33 | 34 | ### How to use (in your projects) 35 | 36 | Run: 37 | 38 | yarn add --dev @astrada/bs-react-fela 39 | 40 | to add the library to your project dependencies. And add 41 | `@astrada/bs-react-fela` to `dependencies` node of your `bsconfig.json`. 42 | -------------------------------------------------------------------------------- /src/ReactFela.rei: -------------------------------------------------------------------------------- 1 | /** Bindings for react-fela: https://github.com/rofrischmann/fela/tree/master/packages/react-fela */ 2 | 3 | type rule('props, 'style) = 'props => 'style; 4 | 5 | type statelessComponent = 6 | ReasonReact.component( 7 | ReasonReact.stateless, 8 | ReasonReact.noRetainedProps, 9 | ReasonReact.actionless 10 | ); 11 | 12 | type baseElement = [ | `String(string) | `ReactClass(ReasonReact.reactClass)]; 13 | 14 | [@bs.module "react-fela"] 15 | external createReactClass : rule('props, 'style) => ReasonReact.reactClass = 16 | "createComponent"; 17 | 18 | [@bs.module "react-fela"] 19 | external createReactClassWithBaseElement : 20 | ( 21 | rule('props, 'style), 22 | [@bs.unwrap] [ | `String(string) | `ReactClass(ReasonReact.reactClass)] 23 | ) => 24 | ReasonReact.reactClass = 25 | "createComponent"; 26 | 27 | [@bs.module "react-fela"] 28 | external createReactClassWithBaseElementAndPassThroughProps : 29 | ( 30 | rule('props, 'style), 31 | [@bs.unwrap] [ | `String(string) | `ReactClass(ReasonReact.reactClass)], 32 | array(string) 33 | ) => 34 | ReasonReact.reactClass = 35 | "createComponent"; 36 | 37 | /** https://github.com/rofrischmann/fela/blob/master/packages/react-fela/docs/createComponent.md */ 38 | let createComponent: 39 | ( 40 | ~rule: rule('props, 'style), 41 | ~baseElement: baseElement=?, 42 | ~passThrough: array(string)=?, 43 | ~extend: 'props => 'newProps=?, 44 | ~props: 'props, 45 | 'children 46 | ) => 47 | statelessComponent; 48 | 49 | /** https://github.com/rofrischmann/fela/blob/master/packages/react-fela/docs/createComponentWithProxy.md */ 50 | let createComponentWithProxy: 51 | ( 52 | ~rule: rule('props, 'style), 53 | ~baseElement: baseElement=?, 54 | ~passThrough: array(string)=?, 55 | ~extend: 'props => 'newProps=?, 56 | ~props: 'props, 57 | 'children 58 | ) => 59 | statelessComponent; 60 | 61 | type makeWithTheme('theme, 'children) = 62 | (~theme: 'theme, 'children) => statelessComponent; 63 | 64 | /** https://github.com/rofrischmann/fela/blob/master/packages/react-fela/docs/withTheme.md */ 65 | let withTheme: 66 | ( 67 | ~component: statelessComponent, 68 | ~make: makeWithTheme('theme, 'children), 69 | 'children 70 | ) => 71 | statelessComponent; 72 | 73 | type connectRules('props, 'rules) = [ 74 | | `Object('rules) 75 | | `Function('props => 'rules) 76 | ]; 77 | 78 | /** https://github.com/rofrischmann/fela/blob/master/packages/react-fela/docs/connect.md */ 79 | let connect: 80 | ( 81 | ~rules: connectRules('props, 'rules), 82 | ~component: statelessComponent, 83 | ~make: (~styles: 'styles, 'children) => statelessComponent, 84 | ~props: 'props, 85 | 'children 86 | ) => 87 | statelessComponent; 88 | 89 | /** https://github.com/rofrischmann/fela/blob/master/packages/react-fela/docs/Provider.md */ 90 | module Provider: { 91 | type renderer; 92 | let defaultRenderer: renderer; 93 | let make: (~renderer: renderer=?, 'children) => statelessComponent; 94 | }; 95 | 96 | /** https://github.com/rofrischmann/fela/blob/master/packages/react-fela/docs/ThemeProvider.md */ 97 | module ThemeProvider: { 98 | let make: 99 | ( 100 | ~theme: 'theme, 101 | ~overwrite: bool=?, 102 | ReasonReact.reactElement 103 | ) => 104 | statelessComponent; 105 | }; 106 | -------------------------------------------------------------------------------- /lib/js/src/ReactFela.js: -------------------------------------------------------------------------------- 1 | // Generated by BUCKLESCRIPT VERSION 4.0.3, PLEASE EDIT WITH CARE 2 | 'use strict'; 3 | 4 | var Fela = require("fela"); 5 | var Curry = require("bs-platform/lib/js/curry.js"); 6 | var ReactFela = require("react-fela"); 7 | var ReasonReact = require("reason-react/lib/js/src/ReasonReact.js"); 8 | var Js_primitive = require("bs-platform/lib/js/js_primitive.js"); 9 | 10 | function createComponent(rule, baseElement, passThrough, extend, props, children) { 11 | var reactClass; 12 | if (passThrough !== undefined) { 13 | var be = baseElement !== undefined ? baseElement : /* `String */[ 14 | -976970511, 15 | "div" 16 | ]; 17 | reactClass = ReactFela.createComponent(rule, be[1], passThrough); 18 | } else { 19 | reactClass = baseElement !== undefined ? ReactFela.createComponent(rule, baseElement[1]) : ReactFela.createComponent(rule); 20 | } 21 | if (extend !== undefined) { 22 | return ReasonReact.wrapJsForReason(reactClass, Curry._1(extend, props), children); 23 | } else { 24 | return ReasonReact.wrapJsForReason(reactClass, props, children); 25 | } 26 | } 27 | 28 | function createComponentWithProxy(rule, baseElement, passThrough, extend, props, children) { 29 | var reactClass; 30 | if (passThrough !== undefined) { 31 | var be = baseElement !== undefined ? baseElement : /* `String */[ 32 | -976970511, 33 | "div" 34 | ]; 35 | reactClass = ReactFela.createComponentWithProxy(rule, be[1], passThrough); 36 | } else { 37 | reactClass = baseElement !== undefined ? ReactFela.createComponentWithProxy(rule, baseElement[1]) : ReactFela.createComponentWithProxy(rule); 38 | } 39 | if (extend !== undefined) { 40 | return ReasonReact.wrapJsForReason(reactClass, Curry._1(extend, props), children); 41 | } else { 42 | return ReasonReact.wrapJsForReason(reactClass, props, children); 43 | } 44 | } 45 | 46 | function withTheme(component, make, children) { 47 | var reactClass = ReasonReact.wrapReasonForJs(component, (function (jsProps) { 48 | return Curry._2(make, jsProps.theme, children); 49 | })); 50 | var reactClass$1 = ReactFela.withTheme(reactClass, undefined); 51 | return ReasonReact.wrapJsForReason(reactClass$1, { }, children); 52 | } 53 | 54 | function connect(rules, component, make, props, children) { 55 | var reactClass = ReasonReact.wrapReasonForJs(component, (function (jsProps) { 56 | return Curry._2(make, jsProps.styles, children); 57 | })); 58 | var makeReactClass = ReactFela.connect(rules[1]); 59 | var reactClass$1 = Curry._1(makeReactClass, reactClass); 60 | return ReasonReact.wrapJsForReason(reactClass$1, props, children); 61 | } 62 | 63 | var defaultRenderer = Fela.createRenderer(); 64 | 65 | function make($staropt$star, children) { 66 | var renderer = $staropt$star !== undefined ? Js_primitive.valFromOption($staropt$star) : defaultRenderer; 67 | return ReasonReact.wrapJsForReason(ReactFela.Provider, { 68 | renderer: renderer 69 | }, children); 70 | } 71 | 72 | var Provider = /* module */[ 73 | /* defaultRenderer */defaultRenderer, 74 | /* make */make 75 | ]; 76 | 77 | function make$1(theme, $staropt$star, children) { 78 | var overwrite = $staropt$star !== undefined ? $staropt$star : false; 79 | return ReasonReact.wrapJsForReason(ReactFela.ThemeProvider, { 80 | theme: theme, 81 | overwrite: overwrite 82 | }, children); 83 | } 84 | 85 | var ThemeProvider = /* module */[/* make */make$1]; 86 | 87 | exports.createComponent = createComponent; 88 | exports.createComponentWithProxy = createComponentWithProxy; 89 | exports.withTheme = withTheme; 90 | exports.connect = connect; 91 | exports.Provider = Provider; 92 | exports.ThemeProvider = ThemeProvider; 93 | /* defaultRenderer Not a pure module */ 94 | -------------------------------------------------------------------------------- /src/ReactFela.re: -------------------------------------------------------------------------------- 1 | type rule('props, 'style) = 'props => 'style; 2 | 3 | type statelessComponent = 4 | ReasonReact.component( 5 | ReasonReact.stateless, 6 | ReasonReact.noRetainedProps, 7 | ReasonReact.actionless 8 | ); 9 | 10 | type baseElement = [ | `String(string) | `ReactClass(ReasonReact.reactClass)]; 11 | 12 | [@bs.module "react-fela"] 13 | external createReactClass : rule('props, 'style) => ReasonReact.reactClass = 14 | "createComponent"; 15 | 16 | [@bs.module "react-fela"] 17 | external createReactClassWithBaseElement : 18 | ( 19 | rule('props, 'style), 20 | [@bs.unwrap] [ | `String(string) | `ReactClass(ReasonReact.reactClass)] 21 | ) => 22 | ReasonReact.reactClass = 23 | "createComponent"; 24 | 25 | [@bs.module "react-fela"] 26 | external createReactClassWithBaseElementAndPassThroughProps : 27 | ( 28 | rule('props, 'style), 29 | [@bs.unwrap] [ | `String(string) | `ReactClass(ReasonReact.reactClass)], 30 | array(string) 31 | ) => 32 | ReasonReact.reactClass = 33 | "createComponent"; 34 | 35 | let createComponent = 36 | (~rule, ~baseElement=?, ~passThrough=?, ~extend=?, ~props, children) => { 37 | let reactClass = 38 | switch (passThrough) { 39 | | Some(pt) => 40 | let be = 41 | switch (baseElement) { 42 | | Some(be) => be 43 | | None => `String("div") 44 | }; 45 | createReactClassWithBaseElementAndPassThroughProps(rule, be, pt); 46 | | None => 47 | switch (baseElement) { 48 | | Some(be) => createReactClassWithBaseElement(rule, be) 49 | | None => createReactClass(rule) 50 | } 51 | }; 52 | switch (extend) { 53 | | None => 54 | ReasonReact.wrapJsForReason(~reactClass, ~props, children); 55 | | Some(f) => 56 | ReasonReact.wrapJsForReason(~reactClass, ~props=f(props), children); 57 | }; 58 | }; 59 | 60 | [@bs.module "react-fela"] 61 | external createReactClassWithProxy : 62 | rule('props, 'style) => ReasonReact.reactClass = 63 | "createComponentWithProxy"; 64 | 65 | [@bs.module "react-fela"] 66 | external createReactClassWithProxyAndBaseElement : 67 | ( 68 | rule('props, 'style), 69 | [@bs.unwrap] [ | `String(string) | `ReactClass(ReasonReact.reactClass)] 70 | ) => 71 | ReasonReact.reactClass = 72 | "createComponentWithProxy"; 73 | 74 | [@bs.module "react-fela"] 75 | external createReactClassWithProxyBaseElementAndPassThroughProps : 76 | ( 77 | rule('props, 'style), 78 | [@bs.unwrap] [ | `String(string) | `ReactClass(ReasonReact.reactClass)], 79 | array(string) 80 | ) => 81 | ReasonReact.reactClass = 82 | "createComponentWithProxy"; 83 | 84 | let createComponentWithProxy = 85 | (~rule, ~baseElement=?, ~passThrough=?, ~extend=?, ~props, children) => { 86 | let reactClass = 87 | switch (passThrough) { 88 | | Some(pt) => 89 | let be = 90 | switch (baseElement) { 91 | | Some(be) => be 92 | | None => `String("div") 93 | }; 94 | createReactClassWithProxyBaseElementAndPassThroughProps(rule, be, pt); 95 | | None => 96 | switch (baseElement) { 97 | | Some(be) => createReactClassWithProxyAndBaseElement(rule, be) 98 | | None => createReactClassWithProxy(rule) 99 | } 100 | }; 101 | switch (extend) { 102 | | None => 103 | ReasonReact.wrapJsForReason(~reactClass, ~props, children); 104 | | Some(f) => 105 | ReasonReact.wrapJsForReason(~reactClass, ~props=f(props), children); 106 | }; 107 | }; 108 | 109 | [@bs.module "react-fela"] 110 | external withTheme_ : 111 | (ReasonReact.reactClass, Js.nullable(string)) => ReasonReact.reactClass = 112 | "withTheme"; 113 | 114 | type makeWithTheme('theme, 'children) = 115 | (~theme: 'theme, 'children) => statelessComponent; 116 | 117 | let withTheme = (~component, ~make, children) => { 118 | let reactClass = 119 | ReasonReact.wrapReasonForJs(~component, jsProps => 120 | make(~theme=jsProps##theme, children) 121 | ); 122 | let reactClass = withTheme_(reactClass, Js.Nullable.undefined); 123 | ReasonReact.wrapJsForReason(~reactClass, ~props=Js.Obj.empty(), children); 124 | }; 125 | 126 | type reactClassFactory = ReasonReact.reactClass => ReasonReact.reactClass; 127 | 128 | [@bs.module "react-fela"] 129 | external connect_ : 'rules => reactClassFactory = "connect"; 130 | 131 | type connectRules('props, 'rules) = [ 132 | | `Object('rules) 133 | | `Function('props => 'rules) 134 | ]; 135 | 136 | let connect = (~rules, ~component, ~make, ~props, children) => { 137 | let reactClass = 138 | ReasonReact.wrapReasonForJs(~component, jsProps => 139 | make(~styles=jsProps##styles, children) 140 | ); 141 | let makeReactClass = 142 | switch (rules) { 143 | | `Object(o) => connect_(o) 144 | | `Function(f) => connect_(f) 145 | }; 146 | let reactClass = makeReactClass(reactClass); 147 | ReasonReact.wrapJsForReason(~reactClass, ~props, children); 148 | }; 149 | 150 | module Provider = { 151 | type renderer; 152 | [@bs.module "react-fela"] 153 | external provider : ReasonReact.reactClass = "Provider"; 154 | [@bs.module "fela"] external createRenderer : unit => renderer = ""; 155 | let defaultRenderer = createRenderer(); 156 | let make = (~renderer=defaultRenderer, children) => 157 | ReasonReact.wrapJsForReason( 158 | ~reactClass=provider, 159 | ~props={"renderer": renderer}, 160 | children 161 | ); 162 | }; 163 | 164 | module ThemeProvider = { 165 | [@bs.module "react-fela"] 166 | external reactClass : ReasonReact.reactClass = "ThemeProvider"; 167 | let make = (~theme, ~overwrite=false, children) => 168 | ReasonReact.wrapJsForReason( 169 | ~reactClass, 170 | ~props={ 171 | "theme": theme, 172 | "overwrite": overwrite 173 | }, 174 | children 175 | ); 176 | }; 177 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | asap@~2.0.3: 6 | version "2.0.6" 7 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" 8 | 9 | bs-platform@^4.0.3: 10 | version "4.0.3" 11 | resolved "https://registry.yarnpkg.com/bs-platform/-/bs-platform-4.0.3.tgz#4510c1c915cc5b169b5717e5c0ada52d3f99ff98" 12 | 13 | core-js@^1.0.0: 14 | version "1.2.7" 15 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" 16 | 17 | css-in-js-utils@^2.0.0: 18 | version "2.0.0" 19 | resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.0.tgz#5af1dd70f4b06b331f48d22a3d86e0786c0b9435" 20 | dependencies: 21 | hyphenate-style-name "^1.0.2" 22 | 23 | encoding@^0.1.11: 24 | version "0.1.12" 25 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" 26 | dependencies: 27 | iconv-lite "~0.4.13" 28 | 29 | fast-loops@^1.0.0: 30 | version "1.0.0" 31 | resolved "https://registry.yarnpkg.com/fast-loops/-/fast-loops-1.0.0.tgz#2cdd7e0ff67343b2b5f5e627d855a50b4bed559a" 32 | 33 | fbjs@^0.8.16: 34 | version "0.8.16" 35 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" 36 | dependencies: 37 | core-js "^1.0.0" 38 | isomorphic-fetch "^2.1.1" 39 | loose-envify "^1.0.0" 40 | object-assign "^4.1.0" 41 | promise "^7.1.1" 42 | setimmediate "^1.0.5" 43 | ua-parser-js "^0.7.9" 44 | 45 | fbjs@^0.8.4: 46 | version "0.8.17" 47 | resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" 48 | dependencies: 49 | core-js "^1.0.0" 50 | isomorphic-fetch "^2.1.1" 51 | loose-envify "^1.0.0" 52 | object-assign "^4.1.0" 53 | promise "^7.1.1" 54 | setimmediate "^1.0.5" 55 | ua-parser-js "^0.7.18" 56 | 57 | fela-bindings@^2.3.1: 58 | version "2.3.1" 59 | resolved "https://registry.yarnpkg.com/fela-bindings/-/fela-bindings-2.3.1.tgz#adffafe5eb23f3ee7c79bdee1378d831c29d089f" 60 | dependencies: 61 | fast-loops "^1.0.0" 62 | fela-dom "^7.0.9" 63 | fela-tools "^5.1.7" 64 | react-addons-shallow-compare "^15.6.2" 65 | shallow-equal "^1.0.0" 66 | 67 | fela-dom@^7.0.9: 68 | version "7.0.9" 69 | resolved "https://registry.yarnpkg.com/fela-dom/-/fela-dom-7.0.9.tgz#ba57670ebaa3b02cecbc69eb219bc460a4a626ab" 70 | dependencies: 71 | css-in-js-utils "^2.0.0" 72 | fast-loops "^1.0.0" 73 | fela-utils "^8.0.8" 74 | 75 | fela-tools@^5.1.7: 76 | version "5.1.7" 77 | resolved "https://registry.yarnpkg.com/fela-tools/-/fela-tools-5.1.7.tgz#114f3a086da1f90ae787c460b44303e3b6a280a8" 78 | dependencies: 79 | css-in-js-utils "^2.0.0" 80 | fast-loops "^1.0.0" 81 | fela "^6.1.9" 82 | fela-utils "^8.0.8" 83 | 84 | fela-utils@^8.0.8: 85 | version "8.0.8" 86 | resolved "https://registry.yarnpkg.com/fela-utils/-/fela-utils-8.0.8.tgz#1ffb7b7263df619a998ad3d04beac1be19027887" 87 | dependencies: 88 | css-in-js-utils "^2.0.0" 89 | fast-loops "^1.0.0" 90 | string-hash "^1.1.3" 91 | 92 | fela@^6.1.9: 93 | version "6.1.9" 94 | resolved "https://registry.yarnpkg.com/fela/-/fela-6.1.9.tgz#9c79b69e796d3323da2adbabc04a98478789fc1a" 95 | dependencies: 96 | css-in-js-utils "^2.0.0" 97 | fast-loops "^1.0.0" 98 | fela-utils "^8.0.8" 99 | isobject "^3.0.1" 100 | 101 | hyphenate-style-name@^1.0.2: 102 | version "1.0.2" 103 | resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" 104 | 105 | iconv-lite@~0.4.13: 106 | version "0.4.19" 107 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 108 | 109 | is-stream@^1.0.1: 110 | version "1.1.0" 111 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 112 | 113 | isobject@^3.0.1: 114 | version "3.0.1" 115 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 116 | 117 | isomorphic-fetch@^2.1.1: 118 | version "2.2.1" 119 | resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" 120 | dependencies: 121 | node-fetch "^1.0.1" 122 | whatwg-fetch ">=0.10.0" 123 | 124 | js-tokens@^3.0.0: 125 | version "3.0.2" 126 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 127 | 128 | loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: 129 | version "1.3.1" 130 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 131 | dependencies: 132 | js-tokens "^3.0.0" 133 | 134 | node-fetch@^1.0.1: 135 | version "1.7.3" 136 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" 137 | dependencies: 138 | encoding "^0.1.11" 139 | is-stream "^1.0.1" 140 | 141 | object-assign@^4.1.0, object-assign@^4.1.1: 142 | version "4.1.1" 143 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 144 | 145 | promise@^7.1.1: 146 | version "7.3.1" 147 | resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" 148 | dependencies: 149 | asap "~2.0.3" 150 | 151 | prop-types@^15.5.8, prop-types@^15.6.0: 152 | version "15.6.0" 153 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" 154 | dependencies: 155 | fbjs "^0.8.16" 156 | loose-envify "^1.3.1" 157 | object-assign "^4.1.1" 158 | 159 | react-addons-shallow-compare@^15.6.2: 160 | version "15.6.2" 161 | resolved "https://registry.yarnpkg.com/react-addons-shallow-compare/-/react-addons-shallow-compare-15.6.2.tgz#198a00b91fc37623db64a28fd17b596ba362702f" 162 | dependencies: 163 | fbjs "^0.8.4" 164 | object-assign "^4.1.0" 165 | 166 | "react-dom@>=15.0.0 || >=16.0.0": 167 | version "16.2.0" 168 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.2.0.tgz#69003178601c0ca19b709b33a83369fe6124c044" 169 | dependencies: 170 | fbjs "^0.8.16" 171 | loose-envify "^1.1.0" 172 | object-assign "^4.1.1" 173 | prop-types "^15.6.0" 174 | 175 | react-fela@^7.3.1: 176 | version "7.3.1" 177 | resolved "https://registry.yarnpkg.com/react-fela/-/react-fela-7.3.1.tgz#af66265f219ecea62f24363e986895b604c35f42" 178 | dependencies: 179 | fela-bindings "^2.3.1" 180 | fela-dom "^7.0.9" 181 | prop-types "^15.5.8" 182 | 183 | "react@>=15.0.0 || >=16.0.0": 184 | version "16.2.0" 185 | resolved "https://registry.yarnpkg.com/react/-/react-16.2.0.tgz#a31bd2dab89bff65d42134fa187f24d054c273ba" 186 | dependencies: 187 | fbjs "^0.8.16" 188 | loose-envify "^1.1.0" 189 | object-assign "^4.1.1" 190 | prop-types "^15.6.0" 191 | 192 | reason-react@^0.5.0: 193 | version "0.5.3" 194 | resolved "https://registry.yarnpkg.com/reason-react/-/reason-react-0.5.3.tgz#10601809742fd991109ec9d69ad4baf2c3f17540" 195 | dependencies: 196 | react ">=15.0.0 || >=16.0.0" 197 | react-dom ">=15.0.0 || >=16.0.0" 198 | 199 | setimmediate@^1.0.5: 200 | version "1.0.5" 201 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 202 | 203 | shallow-equal@^1.0.0: 204 | version "1.0.0" 205 | resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.0.0.tgz#508d1838b3de590ab8757b011b25e430900945f7" 206 | 207 | string-hash@^1.1.3: 208 | version "1.1.3" 209 | resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" 210 | 211 | ua-parser-js@^0.7.18: 212 | version "0.7.18" 213 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed" 214 | 215 | ua-parser-js@^0.7.9: 216 | version "0.7.17" 217 | resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" 218 | 219 | whatwg-fetch@>=0.10.0: 220 | version "2.0.3" 221 | resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" 222 | --------------------------------------------------------------------------------