├── .babelrc ├── .bowerrc ├── .editorconfig ├── .eslintrc ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── dist ├── react-atellier.js └── react-atellier.js.map ├── karma.conf.js ├── package.json ├── spec ├── Atellier.spec.jsx ├── ComponentList.spec.jsx ├── ComponentProperties.spec.jsx ├── FieldType.spec.jsx ├── PropTypesIdentifier.spec.jsx ├── Sidebar.spec.jsx ├── Toggle.spec.jsx └── Workspace.spec.jsx ├── src ├── Atellier.js ├── ComponentList.js ├── ComponentProperties.js ├── FieldType.js ├── PropertiesContainer.js ├── Sidebar.js ├── Stage.js ├── Toggle.js ├── Workspace.js ├── fonts │ ├── ProximaNova-Light.otf │ ├── ProximaNova-LightItalic.otf │ ├── ProximaNova-RegItalic.otf │ ├── ProximaNova-Regular.otf │ ├── ProximaNova-SboldItalic.otf │ ├── ProximaNova-Semibold.otf │ ├── QuattrocentoSans-Bold.otf │ └── SciFly-Sans.ttf ├── images │ ├── arrow.png │ ├── magnifying-glass.png │ └── x.png ├── index.js ├── structural │ └── PropTypesIdentifier.js └── styles │ ├── _atellier.less │ ├── _base.less │ ├── _colors.less │ ├── _componentList.less │ ├── _componentProperties.less │ ├── _default.less │ ├── _fieldType.less │ ├── _fonts.less │ ├── _forms.less │ ├── _mixins.less │ ├── _sidebar.less │ ├── _stage.less │ ├── _toggle.less │ ├── _workspace.less │ └── atellier.less └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "react", "stage-0"], 3 | "plugins": ["transform-object-assign"] 4 | } 5 | -------------------------------------------------------------------------------- /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "postinstall": "npm run rename-css-bower-dependencies" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_style = space 3 | indent_size = 2 4 | charset = utf-8 5 | trim_trailing_whitespace = true 6 | insert_final_newline = true 7 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | // I want to use babel-eslint for parsing! 3 | "parser": "babel-eslint", 4 | 5 | "env": { 6 | "browser": true, 7 | "node": true, 8 | "jasmine": true 9 | }, 10 | 11 | // To give you an idea how to override rule options: 12 | "rules": { 13 | "quotes": [2, "single"], 14 | "strict": [2, "never"], 15 | "eol-last": [0], 16 | "no-mixed-requires": [0], 17 | "no-underscore-dangle": [0], 18 | "no-use-before-define": [2, "nofunc"], 19 | 20 | "no-alert": 0, 21 | 22 | // react 23 | "react/display-name": 0, 24 | "react/jsx-boolean-value": 1, 25 | "react/jsx-quotes": 1, 26 | "react/jsx-no-undef": 1, 27 | "react/jsx-sort-props": 0, 28 | "react/jsx-sort-prop-types": 1, 29 | "react/jsx-uses-react": 1, 30 | "react/jsx-uses-vars": 1, 31 | "react/no-did-mount-set-state": 1, 32 | "react/no-did-update-set-state": 1, 33 | "react/no-multi-comp": 0, 34 | "react/no-unknown-property": 1, 35 | "react/prop-types": 0, 36 | "react/react-in-jsx-scope": 1, 37 | "react/self-closing-comp": 1, 38 | "react/wrap-multilines": 1 39 | }, 40 | 41 | "ecmaFeatures": { 42 | "jsx": true 43 | }, 44 | 45 | "plugins": [ 46 | "react" 47 | ] 48 | } 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | coverage 2 | node_modules 3 | bower_components 4 | .DS_Store 5 | *.log* 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "5.4.0" 4 | addons: 5 | code_climate: 6 | repo_token: 187f47140fa21d5c088c3934b9fcc21574b9924e5d2fb4ab50268902dbbe4eaa 7 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Atellier 2 | 3 | We'd love for you to contribute to our source code and to make Atellier even better than it is today! 4 | Here are the guidelines we'd like you to follow: 5 | 6 | - [Got a Question or Issue](#issue) 7 | - [Feature Requests](#feature) 8 | - [Submission Guidelines](#submit) 9 | - [Coding Rules](#rules) 10 | - [Git Commit Guidelines](#commit) 11 | 12 | ## Got a Question or Issue? 13 | If you got a question, find a bug or an issue in the source code or a mistake in the documentation, you can help us by 14 | submitting an issue to our [GitHub Repository](https://github.com/scup/Atellier/issues). Even better you can submit a Pull Request 15 | with a fix. 16 | 17 | **Please see the Submission Guidelines below**. 18 | 19 | ## Want a Feature? 20 | You can request a new feature by submitting an issue to our [GitHub Repository](https://github.com/scup/Atellier/issues). If you would like to implement 21 | a new feature then consider what kind of change it is: 22 | 23 | * **Major Changes** that you wish to contribute to the project should be discussed first in issue on our 24 | [GitHub Repository](https://github.com/scup/Atellier/issues) so that we can better coordinate our efforts, prevent 25 | duplication of work, and help you to craft the change so that it is successfully accepted into the 26 | project. 27 | * **Small Changes** can be crafted and submitted to the [GitHub Repository](https://github.com/scup/Atellier/pulls) as a Pull Request. 28 | 29 | 30 | ## Submission Guidelines 31 | 32 | ### Submitting an Issue 33 | Before you submit your issue search the archive, maybe your question was already answered. 34 | 35 | If your issue appears to be a bug, and hasn't been reported, open a new issue. 36 | Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues. 37 | Providing the following information will increase the chances of your issue being dealt with quickly: 38 | 39 | * **Overview of the Issue** - if an error is being thrown a non-minified stack trace helps 40 | * **Motivation for or Use Case** - explain why this is a bug for you 41 | * **Atellier Version(s)** - is it a regression? 42 | * **Browsers and Operating System** - is this a problem with all browsers or only IE8? 43 | * **Reproduce the Error** - provide a live example (using [Codepen](http://codepen.io/), [Plunker](https://plnkr.co/) or 44 | [JSFiddle](https://jsfiddle.net/) or an unambiguous set of steps. 45 | * **Related Issues** - has a similar issue been reported before? 46 | * **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point to what might be 47 | causing the problem (line of code or commit) 48 | 49 | Here is a great example of a well defined issue: https://github.com/scup/Atellier/issues/1 50 | 51 | **If you get help, help others. Good karma rulez!** 52 | 53 | ### Submitting a Pull Request 54 | Before you submit your pull request consider the following guidelines: 55 | 56 | * Search [GitHub](https://github.com/scup/Atellier/pulls) for an open or closed Pull Request that relates to your 57 | submission. You don't want to duplicate effort. 58 | * Make your changes in a new git branch, using [git-flow](http://nvie.com/posts/a-successful-git-branching-model/): 59 | * ***feature*** 60 | 61 | ```shell 62 | git checkout -b feature/my-feature-description development 63 | ``` 64 | 65 | * ***hotfix*** 66 | 67 | ```shell 68 | git checkout -b hotfix/my-hot-fix-description master 69 | ``` 70 | 71 | * ***release*** 72 | 73 | ```shell 74 | git checkout -b release/my-release-1.0.0 development 75 | ``` 76 | 77 | * ***Create your patch, INCLUDING APPROPRIATE TEST CASES.*** 78 | 79 | ```shell 80 | git checkout -b feature/my-feature-description development 81 | ``` 82 | 83 | * Run the full Atellier test suite, and ensure that all tests pass. 84 | * Commit your changes using a descriptive commit message that follows our 85 | [Git Commit Guidelines](#commit) for future change logs. 86 | ```shell 87 | git commit -a 88 | ``` 89 | Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files. 90 | 91 | * Build your changes locally to ensure all the tests pass: 92 | 93 | ```shell 94 | npm test && npm build 95 | ``` 96 | 97 | * Push your branch to GitHub: 98 | 99 | ```shell 100 | git push origin feature/my-feature-description 101 | ``` 102 | 103 | * In GitHub, send a pull request to `Atellier:master`. 104 | * If we suggest changes then: 105 | * Make the required updates. 106 | * Re-run the Atellier test suite to ensure tests are still passing. 107 | * Commit your changes to your branch (e.g. `feature/my-feature`). 108 | * Push the changes to your GitHub repository (this will update your Pull Request). 109 | 110 | If the PR gets too outdated we may ask you to rebase and force push to update the PR: 111 | 112 | ```shell 113 | git rebase development -i 114 | git push origin feature/my-feature -f 115 | ``` 116 | 117 | *WARNING. Squashing or reverting commits and forced push thereafter may remove GitHub comments 118 | on code that were previously made by you and others in your commits.* 119 | 120 | That's it! Thank you for your contribution! 121 | 122 | #### After your pull request is merged 123 | 124 | After your pull request is merged, you can safely delete your branch and pull the changes 125 | from the main (upstream) repository: 126 | 127 | * Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows: 128 | 129 | ```shell 130 | git push origin --delete my-fix-branch 131 | ``` 132 | 133 | * Check out the master branch: 134 | 135 | ```shell 136 | git checkout master -f 137 | ``` 138 | 139 | * Delete the local branch: 140 | 141 | ```shell 142 | git branch -D my-fix-branch 143 | ``` 144 | 145 | * Update your master with the latest upstream version: 146 | 147 | ```shell 148 | git pull --ff upstream master 149 | ``` 150 | 151 | ## Coding Rules 152 | To ensure consistency throughout the source code, keep these rules in mind as you are working: 153 | 154 | * All features or bug fixes **must be tested**. 155 | * All public API methods **must be documented**. 156 | * With the exceptions listed below, we follow the rules contained in dotfile `.eslint` [ESLint](http://eslint.org/): 157 | * Wrap all code at **120 characters**. 158 | * We **don't go crazy with type annotations** for private internal APIs unless it's an internal API 159 | that is used throughout Atellier. The best guidance is to do what makes the most sense. 160 | 161 | ## Git Commit Guidelines 162 | 163 | We have very precise rules over how our git commit messages can be formatted. This leads to **more 164 | readable messages** that are easy to follow when looking through the **project history**. But also, 165 | we use the git commit messages to **generate the Atellier change log**. 166 | 167 | ### Commit Message Format 168 | Each commit message consists of a **header**, a **body** and a **footer**. The header has a special 169 | format that includes a **type**, a **scope** and a **subject**: 170 | 171 | ``` 172 | (): 173 | 174 | 175 | 176 |