diff --git a/.jshintrc b/.jshintrc index 27c028d099..dcb645fe05 100644 --- a/.jshintrc +++ b/.jshintrc @@ -12,10 +12,7 @@ "newcap": false, "noempty": true, "nonstandard": true, - "onecase": true, "sub": true, - "regexdash": true, - "trailing": true, "undef": true, "unused": "vars" } diff --git a/.mailmap b/.mailmap index 4d3c4e9079..a0d4d60764 100644 --- a/.mailmap +++ b/.mailmap @@ -1,3 +1,5 @@ +Andres Suarez +Ben Alpert Ben Newman Bill Fisher Cheng Lou @@ -18,8 +20,10 @@ Harry Hull Hendrik Swanepoel Ingvar Stepanyan Irae Carvalho +Ivan Vergiliev Jaime Mingo James Brantly +Jan Hancic Jan Kassens Jason Bonta Jason Trill @@ -51,6 +55,7 @@ Pieter Vanderwerff Ray Richard Feldman Richard Livesey +Rob Arnold Sander Spies Sebastian Markbåge Stoyan Stefanov diff --git a/AUTHORS b/AUTHORS index 78fd51845c..25c859840f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,21 +1,29 @@ Adam Krebs +Adam Mark Adam Solove Alan deLevie Alex Zelenskiy Alexander Solovyov +Alexey Raspopov +Andre Z Sanchez Andreas Svensson +Andres Suarez Andrew Davey +Andrew Rasmussen Andrew Zich Andrey Popp <8mayday@gmail.com> Anthony van der Hoorn +Areeb Malik Ayman Osman -Ben Alpert +Ben Alpert +Ben Foxall Ben Newman Ben Ripkens Bill Fisher Bob Eagan Bojan Mihelac Brandon Bloom +Brandon Tilley Brian Cooke Brian Kim Brian Reavis @@ -23,12 +31,17 @@ Brian Rue Cam Spiers Cassus Adam Banko Cat Chen +Charles Marsh Cheng Lou +Chris Sciolla +Christian Alfoni Christian Roman Christoph Pojer Christopher Monsanto Clay Allsopp Connor McSheffrey +Cotton Hou +Dan Abramov Dan Schafer Daniel Gasienica Daniel Lo Nigro @@ -39,6 +52,7 @@ Daryl Lau David Hellsing David Hu Devon Blandin +Dmitrii Abramov Dmitry Mazuro Dustin Getz Enguerran @@ -48,15 +62,18 @@ Eric Schoffstall Evan Coonrod Fabio M. Costa Felipe Oliveira Carvalho +Felix Gnass Felix Kling Fernando Correia François-Xavier Bois Fred Zhao G Scott Olson +Garren Smith Geert Pasteels Geert-Jan Brits George A Sisco III Gilbert +Glen Mailer Greg Hurrell Greg Roodt Guangqiang Dong @@ -70,25 +87,36 @@ Ingvar Stepanyan Irae Carvalho Isaac Salier-Hellendag Ivan Kozik +Ivan Vergiliev +Jacob Gable +Jacob Greenleaf Jaime Mingo Jakub Malinowski James Brantly James Ide +James Seppi Jamie Wong Jamison Dance +Jan Hancic Jan Kassens Jared Forsyth Jason Bonta Jason Trill Jean Lauliac +Jed Watson Jeff Barczewski Jeff Carpenter +Jeff Chan Jeff Morrison Jeff Welch Jeffrey Lin +Jesse Skinner Jignesh Kakadiya +Jim OBrien +Jimmy Jea Jing Chen Johannes Baiter +Johannes Emerich John Watson Jon Beebe Jonas Enlund @@ -100,15 +128,18 @@ Josh Duck Josh Yudaken Joshua Ma Julen Ruiz Aizpuru +Julien Bordellier Jun Wu Juraj Dudak Justin Jaffray Karl Mikkelsen +Karpich Dmitry Keito Uchiyama Kit Randel Kunal Mehta Kyle Mathews Laurence Rowe +Lee Byron Levi McCallum Lily Logan Allen @@ -116,6 +147,9 @@ Luigy Leon Marcin Kwiatkowski Marcin Szczepanski Mariano Desanze +Mark Anderson +Mark Hintz +Mark IJbema Mark Richardson Marshall Roch Martin Andert @@ -124,15 +158,29 @@ Mathieu M-Gosselin Matt Harrison Matthew Dapena-Tretter Matti Nelimarkka +Max F. Albrecht <1@178.is> +Michael Chan +Michael Randers-Pehrson Michal Srb +Mike D Pilsbury +Miorel Palii Mouad Debbar Nadeesha Cabral +Naman Goel Nate Hunzaker +Nathan White Nicholas Bergson-Shilcock +Nick Fitzgerald Nick Gavalas +Nick Merwin Nick Thompson +Nick Williams Niklas Boström +Oleg +Oleksii Markhovskyi +Oliver Zeigermann Owen Coutts +Pablo Lacerda de Miranda Pascal Hartig Paul O’Shannessy Paul Seiffert @@ -147,32 +195,49 @@ Ray Richard D. Worth Richard Feldman Richard Livesey +Rick Beerendonk +Rob Arnold Ryan Seddon Sahat Yalkabov +Sam Selikoff Sander Spies Sean Kinsey Sebastian Markbåge +Sergey Generalov +Shane O'Sullivan Shaun Trennery +Sheraz +Shripad K Simon Højberg +Simon Welsh Stefan Dombrowski Stephen Murphy Stoyan Stefanov Sundeep Malladi +Sunny Juneja Sven Helmberger +Sébastien Lorber Thomas Aylott Thomas Boyt Thomas Shaddox Thomas Shafer +ThomasCrvsr Timothy Yung Tom Haggie +Tom Hauburger +Tom MacWright Tom Occhino Ville Immonen Vjeux Volkan Unsal Wayne Larsen +WickyNilliams Wincent Colaiuta +XuefengWu Yuriy Dybskiy Yuval Dekel Zach Bruggeman +cutbko davidxi imagentleman +jon madison diff --git a/CHANGELOG.md b/CHANGELOG.md index 49795d8eb5..d792d6de7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,99 @@ +## 0.12.0 (October 28, 2014) + +### React Core + +#### Breaking Changes + +* `key` and `ref` moved off props object, now accessible on the element directly +* React is now BSD licensed with accompanying Patents grant +* Default prop resolution has moved to Element creation time instead of mount time, making them effectively static +* `React.__internals` is removed - it was exposed for DevTools which no longer needs access +* Composite Component functions can no longer be called directly - they must be wrapped with `React.createFactory` first. This is handled for you when using JSX. + +#### New Features + +* Spread operator (`{...}`) introduced to deprecate `this.transferPropsTo` +* Added support for more HTML attributes: `acceptCharset`, `classID`, `manifest` + +#### Deprecations + +* `React.renderComponent` --> `React.render` +* `React.renderComponentToString` --> `React.renderToString` +* `React.renderComponentToStaticMarkup` --> `React.renderToStaticMarkup` +* `React.isValidComponent` --> `React.isValidElement` +* `React.PropTypes.component` --> `React.PropTypes.element` +* `React.PropTypes.renderable` --> `React.PropTypes.node` +* **DEPRECATED** `React.isValidClass` +* **DEPRECATED** `instance.transferPropsTo` +* **DEPRECATED** Returning `false` from event handlers to preventDefault +* **DEPRECATED** Convenience Constructor usage as function, instead wrap with `React.createFactory` +* **DEPRECATED** use of `key={null}` to assign implicit keys + +#### Bug Fixes + +* Better handling of events and updates in nested results, fixing value restoration in "layered" controlled components +* Correctly treat `event.getModifierState` as case sensitive +* Improved normalization of `event.charCode` +* Better error stacks when involving autobound methods +* Removed DevTools message when the DevTools are installed +* Correctly detect required language features across browsers +* Fixed support for some HTML attributes: + * `list` updates correctly now + * `scrollLeft`, `scrollTop` removed, these should not be specified as props +* Improved error messages + +### React With Addons + +#### New Features + +* `React.addons.batchedUpdates` added to API for hooking into update cycle + +#### Breaking Changes + +* `React.addons.update` uses `assign` instead of `copyProperties` which does `hasOwnProperty` checks. Properties on prototypes will no longer be updated correctly. + +#### Bug Fixes + +* Fixed some issues with CSS Transitions + +### JSX + +#### Breaking Changes + +* Enforced convention: lower case tag names are always treated as HTML tags, upper case tag names are always treated as composite components +* JSX no longer transforms to simple function calls + +#### New Features + +* `@jsx React.DOM` no longer required +* spread (`{...}`) operator introduced to allow easier use of props + +#### Bug Fixes + +* JSXTransformer: Make sourcemaps an option when using APIs directly (eg, for react-rails) + + +## 0.11.2 (September 16, 2014) + +### React Core + +#### New Features + +* Added support for `` element and associated `open` attribute +* Added support for `` element and associated `media` and `sizes` attributes +* Added `React.createElement` API in preparation for React v0.12 + * `React.createDescriptor` has been deprecated as a result + +### JSX + +* `` is now parsed into `React.DOM.picture` + +### React Tools + +* Update `esprima` and `jstransform` for correctness fixes +* The `jsx` executable now exposes a `--strip-types` flag which can be used to remove TypeScript-like type annotations + * This option is also exposed to `require('react-tools').transform` as `stripTypes` + ## 0.11.1 (July 24, 2014) ### React Core diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2286a521aa..59dd933aec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -67,4 +67,4 @@ Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe ## License -By contributing to React, you agree that your contributions will be licensed under the [Apache License Version 2.0 (APLv2)](LICENSE). +By contributing to React, you agree that your contributions will be licensed under its BSD license.. diff --git a/Gruntfile.js b/Gruntfile.js index 80ee672cac..b531f8b09c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -99,7 +99,7 @@ module.exports = function(grunt) { 'populist:test' ]); grunt.registerTask('build:npm-react', ['version-check', 'jsx:normal', 'npm-react:release']); - grunt.registerTask('build:gem-react-source', ['build', 'gem-react-source:release']) + grunt.registerTask('build:gem-react-source', ['build', 'gem-react-source:release']); grunt.registerTask('webdriver-phantomjs', webdriverPhantomJSTask); diff --git a/LICENSE b/LICENSE index 261eeb9e9f..8ed181d9ee 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,31 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +BSD License - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +For React software - 1. Definitions. +Copyright (c) 2013-2014, Facebook, Inc. +All rights reserved. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSE-docs b/LICENSE-docs new file mode 100644 index 0000000000..230507deda --- /dev/null +++ b/LICENSE-docs @@ -0,0 +1,393 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/LICENSE-examples b/LICENSE-examples new file mode 100644 index 0000000000..87f537d434 --- /dev/null +++ b/LICENSE-examples @@ -0,0 +1,9 @@ +The examples provided by Facebook are for non-commercial testing and evaluation +purposes only. Facebook reserves all rights not expressly granted. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/PATENTS b/PATENTS new file mode 100644 index 0000000000..222748e9a4 --- /dev/null +++ b/PATENTS @@ -0,0 +1,23 @@ +Additional Grant of Patent Rights + +"Software" means the React software distributed by Facebook, Inc. + +Facebook hereby grants you a perpetual, worldwide, royalty-free, non-exclusive, +irrevocable (subject to the termination provision below) license under any +rights in any patent claims owned by Facebook, to make, have made, use, sell, +offer to sell, import, and otherwise transfer the Software. For avoidance of +doubt, no license is granted under Facebook’s rights in any patent claims that +are infringed by (i) modifications to the Software made by you or a third party, +or (ii) the Software in combination with any software or other technology +provided by you or a third party. + +The license granted hereunder will terminate, automatically and without notice, +for anyone that makes any claim (including by filing any lawsuit, assertion or +other action) alleging (a) direct, indirect, or contributory infringement or +inducement to infringe any patent: (i) by Facebook or any of its subsidiaries or +affiliates, whether or not such claim is related to the Software, (ii) by any +party if such claim arises in whole or in part from any software, product or +service of Facebook or any of its subsidiaries or affiliates, whether or not +such claim is related to the Software, or (iii) by any party relating to the +Software; or (b) that any right in any patent claim of Facebook is invalid or +unenforceable. diff --git a/README.md b/README.md index 169423f2ca..855b1135fb 100644 --- a/README.md +++ b/README.md @@ -13,14 +13,13 @@ React is a JavaScript library for building user interfaces. We have several examples [on the website](http://facebook.github.io/react/). Here is the first one to get you started: ```js -/** @jsx React.DOM */ var HelloMessage = React.createClass({ render: function() { return
Hello {this.props.name}
; } }); -React.renderComponent( +React.render( , document.getElementById('container') ); @@ -32,16 +31,16 @@ You'll notice that we used an HTML-like syntax; [we call it JSX](http://facebook ## Installation -The fastest way to get started is to serve JavaScript from the CDN (also available on [CDNJS](http://cdnjs.com/#react)): +The fastest way to get started is to serve JavaScript from the CDN (also available on [cdnjs](https://cdnjs.com/libraries/react) and [jsdelivr](http://www.jsdelivr.com/#!react)): ```html - + - + ``` -We've also built a [starter kit](http://facebook.github.io/react/downloads/react-0.11.1.zip) which might be useful if this is your first time using React. It includes a webpage with an example of using React with live code. +We've also built a [starter kit](http://facebook.github.io/react/downloads/react-0.12.0.zip) which might be useful if this is your first time using React. It includes a webpage with an example of using React with live code. If you'd like to use [bower](http://bower.io), it's as easy as: @@ -93,6 +92,14 @@ grunt lint grunt clean ``` +### License + +React is [BSD licensed](./LICENSE). We also provide an additional [patent grant](./PATENTS). + +React documentation is [Creative Commons licensed](./LICENSE-docs). + +Examples provided in this repository and in the documentation are [separately licensed](./LICENSE-examples). + ### More… There's only so much we can cram in here. To read more about the community and guidelines for submitting pull requests, please read the [Contributing document](CONTRIBUTING.md). diff --git a/docs/Rakefile b/docs/Rakefile index 44a3e11475..6a7454bad1 100644 --- a/docs/Rakefile +++ b/docs/Rakefile @@ -4,12 +4,12 @@ require('yaml') desc "generate js from jsx" task :js do - system "../bin/jsx _js js" + system "../bin/jsx --harmony _js js" end desc "watch js" task :watch do - Process.spawn "../bin/jsx --watch _js js" + Process.spawn "../bin/jsx --watch --harmony _js js" Process.waitall end diff --git a/docs/_config.yml b/docs/_config.yml index 75ca27e233..ae5ffcad65 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -34,4 +34,4 @@ sass: sass_dir: _css gems: - jekyll-redirect-from -react_version: 0.11.1 +react_version: 0.11.2 diff --git a/docs/_data/acknowledgements.yml b/docs/_data/acknowledgements.yml index 89f112ef2b..bb47de4a1a 100644 --- a/docs/_data/acknowledgements.yml +++ b/docs/_data/acknowledgements.yml @@ -1,22 +1,30 @@ --- - - Adam Krebs + - Adam Mark - Adam Solove - Alan deLevie - Alex Zelenskiy - Alexander Solovyov + - Alexey Raspopov + - Andre Z Sanchez - Andreas Svensson + - Andres Suarez - Andrew Davey + - Andrew Rasmussen - Andrew Zich - Andrey Popp - Anthony van der Hoorn + - Areeb Malik - Ayman Osman - Ben Alpert + - Ben Foxall - Ben Newman - Ben Ripkens - Bill Fisher - Bob Eagan - Bojan Mihelac - Brandon Bloom + - Brandon Tilley - Brian Cooke - Brian Kim - Brian Reavis @@ -24,12 +32,17 @@ - Cam Spiers - Cassus Adam Banko - Cat Chen + - Charles Marsh - Cheng Lou + - Chris Sciolla + - Christian Alfoni - Christian Roman - Christoph Pojer - Christopher Monsanto - Clay Allsopp - Connor McSheffrey + - Cotton Hou + - Dan Abramov - Dan Schafer - Daniel Gasienica - Daniel Lo Nigro @@ -40,6 +53,7 @@ - David Hellsing - David Hu - Devon Blandin + - Dmitrii Abramov - Dmitry Mazuro - Dustin Getz - Enguerran @@ -49,21 +63,24 @@ - Evan Coonrod - Fabio M. Costa - Felipe Oliveira Carvalho + - Felix Gnass - Felix Kling - Fernando Correia - François-Xavier Bois - Fred Zhao - G Scott Olson + - Garren Smith - Geert Pasteels - Geert-Jan Brits - George A Sisco III - Gilbert + - Glen Mailer - Greg Hurrell -- - Greg Roodt + - Greg Roodt - Guangqiang Dong - Guido Bouman - Harry Hull - - Harshad Sabne +- - Harshad Sabne - Hendrik Swanepoel - Hugo Jobling - Ian Obermiller @@ -71,25 +88,36 @@ - Irae Carvalho - Isaac Salier-Hellendag - Ivan Kozik + - Ivan Vergiliev + - Jacob Gable + - Jacob Greenleaf - Jaime Mingo - Jakub Malinowski - James Brantly - James Ide + - James Seppi - Jamie Wong - Jamison Dance + - Jan Hancic - Jan Kassens - Jared Forsyth - Jason Bonta - Jason Trill - Jean Lauliac + - Jed Watson - Jeff Barczewski - Jeff Carpenter + - Jeff Chan - Jeff Morrison - Jeff Welch - Jeffrey Lin + - Jesse Skinner - Jignesh Kakadiya + - Jim OBrien + - Jimmy Jea - Jing Chen - Johannes Baiter + - Johannes Emerich - John Watson - Jon Beebe - Jonas Enlund @@ -101,15 +129,18 @@ - Josh Yudaken - Joshua Ma - Julen Ruiz Aizpuru + - Julien Bordellier - Jun Wu - Juraj Dudak - Justin Jaffray - Karl Mikkelsen + - Karpich Dmitry - Keito Uchiyama - Kit Randel - Kunal Mehta - Kyle Mathews - Laurence Rowe + - Lee Byron - Levi McCallum - Lily - Logan Allen @@ -117,23 +148,40 @@ - Marcin Kwiatkowski - Marcin Szczepanski - Mariano Desanze + - Mark Anderson + - Mark Hintz + - Mark IJbema - Mark Richardson - Marshall Roch -- - Martin Andert + - Martin Andert - Martin Konicek - Mathieu M-Gosselin - Matt Harrison - Matthew Dapena-Tretter - Matti Nelimarkka + - Max F. Albrecht + - Michael Chan +- - Michael Randers-Pehrson - Michal Srb + - Mike D Pilsbury + - Miorel Palii - Mouad Debbar - Nadeesha Cabral + - Naman Goel - Nate Hunzaker + - Nathan White - Nicholas Bergson-Shilcock + - Nick Fitzgerald - Nick Gavalas + - Nick Merwin - Nick Thompson + - Nick Williams - Niklas Boström + - Oleg + - Oleksii Markhovskyi + - Oliver Zeigermann - Owen Coutts + - Pablo Lacerda de Miranda - Pascal Hartig - Paul O’Shannessy - Paul Seiffert @@ -148,32 +196,49 @@ - Richard D. Worth - Richard Feldman - Richard Livesey + - Rick Beerendonk + - Rob Arnold - Ryan Seddon - Sahat Yalkabov + - Sam Selikoff - Sander Spies - Sean Kinsey - Sebastian Markbåge + - Sergey Generalov + - Shane O'Sullivan - Shaun Trennery + - Sheraz + - Shripad K - Simon Højberg + - Simon Welsh - Stefan Dombrowski - Stephen Murphy - Stoyan Stefanov - Sundeep Malladi + - Sunny Juneja - Sven Helmberger + - Sébastien Lorber - Thomas Aylott - Thomas Boyt - Thomas Shaddox - Thomas Shafer + - ThomasCrvsr - Timothy Yung - Tom Haggie + - Tom Hauburger + - Tom MacWright - Tom Occhino - Ville Immonen - Vjeux - Volkan Unsal - Wayne Larsen + - WickyNilliams - Wincent Colaiuta + - XuefengWu - Yuriy Dybskiy - Yuval Dekel - Zach Bruggeman + - cutbko - davidxi - imagentleman + - jon madison diff --git a/docs/_data/nav_docs.yml b/docs/_data/nav_docs.yml index e7c71b68d5..8b4acecef5 100644 --- a/docs/_data/nav_docs.yml +++ b/docs/_data/nav_docs.yml @@ -23,6 +23,8 @@ subitems: - id: jsx-in-depth title: JSX in Depth + - id: jsx-spread + title: JSX Spread Attributes - id: jsx-gotchas title: JSX Gotchas - id: interactivity-and-dynamic-uis @@ -31,6 +33,8 @@ title: Multiple Components - id: reusable-components title: Reusable Components + - id: transferring-props + title: Transferring Props - id: forms title: Forms - id: working-with-the-browser @@ -77,6 +81,8 @@ title: Special Non-DOM Attributes - id: reconciliation title: Reconciliation + - id: glossary + title: React (Virtual) DOM Terminology - title: Flux items: - id: flux-overview diff --git a/docs/_js/examples/hello.js b/docs/_js/examples/hello.js index 040a04ac45..61a5e7322b 100644 --- a/docs/_js/examples/hello.js +++ b/docs/_js/examples/hello.js @@ -1,19 +1,14 @@ -/** - * @jsx React.DOM - */ +var HELLO_COMPONENT = ` +var HelloMessage = React.createClass({ + render: function() { + return
Hello {this.props.name}
; + } +}); -var HELLO_COMPONENT = "\ -/** @jsx React.DOM */\n\ -var HelloMessage = React.createClass({\n\ - render: function() {\n\ - return
Hello {this.props.name}
;\n\ - }\n\ -});\n\ -\n\ -React.renderComponent(, mountNode);\ -"; +React.render(, mountNode); +`; -React.renderComponent( +React.render( , document.getElementById('helloExample') ); diff --git a/docs/_js/examples/markdown.js b/docs/_js/examples/markdown.js index 7ea69a6147..cc43db497a 100644 --- a/docs/_js/examples/markdown.js +++ b/docs/_js/examples/markdown.js @@ -1,43 +1,37 @@ -/** - * @jsx React.DOM - */ +var MARKDOWN_COMPONENT = ` +var converter = new Showdown.converter(); -var MARKDOWN_COMPONENT = "\ -/** @jsx React.DOM */\n\ -\n\ -var converter = new Showdown.converter();\n\ -\n\ -var MarkdownEditor = React.createClass({\n\ - getInitialState: function() {\n\ - return {value: 'Type some *markdown* here!'};\n\ - },\n\ - handleChange: function() {\n\ - this.setState({value: this.refs.textarea.getDOMNode().value});\n\ - },\n\ - render: function() {\n\ - return (\n\ -
\n\ -

Input

\n\ - \n\ -

Output

\n\ - \n\ -
\n\ - );\n\ - }\n\ -});\n\ -\n\ -React.renderComponent(, mountNode);\ -"; +var MarkdownEditor = React.createClass({ + getInitialState: function() { + return {value: 'Type some *markdown* here!'}; + }, + handleChange: function() { + this.setState({value: this.refs.textarea.getDOMNode().value}); + }, + render: function() { + return ( +
+

Input

+