hippo-fw 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (535) hide show
  1. checksums.yaml +7 -0
  2. data/.dir-locals.el +8 -0
  3. data/.eslintrc.js +7 -0
  4. data/.flowconfig +2 -0
  5. data/.gitignore +22 -0
  6. data/.jshintrc +3 -0
  7. data/.rubocop.yml +9 -0
  8. data/.ruby-version +1 -0
  9. data/.travis.yml +24 -0
  10. data/Gemfile +17 -0
  11. data/Guardfile +19 -0
  12. data/LICENSE-MIT.txt +21 -0
  13. data/README.md +36 -0
  14. data/Rakefile +39 -0
  15. data/bin/hippo +5 -0
  16. data/client/extension.js +0 -0
  17. data/client/hippo/__mocks__/config.js +17 -0
  18. data/client/hippo/access/index.js +4 -0
  19. data/client/hippo/access/login-dialog.jsx +38 -0
  20. data/client/hippo/access/styles.scss +0 -0
  21. data/client/hippo/boot.jsx +41 -0
  22. data/client/hippo/components/asset.jsx +81 -0
  23. data/client/hippo/components/asset.scss +15 -0
  24. data/client/hippo/components/calendar/Calendar.jsx +25 -0
  25. data/client/hippo/components/calendar/index.js +3 -0
  26. data/client/hippo/components/calendar/styles.scss +3 -0
  27. data/client/hippo/components/data-list.jsx +105 -0
  28. data/client/hippo/components/data-table.jsx +243 -0
  29. data/client/hippo/components/data-table/header-cell.jsx +94 -0
  30. data/client/hippo/components/data-table/table-styles.scss +34 -0
  31. data/client/hippo/components/enabled.js.erb +5 -0
  32. data/client/hippo/components/field-validation.js +7 -0
  33. data/client/hippo/components/form.jsx +65 -0
  34. data/client/hippo/components/form/field-prop-type.js +16 -0
  35. data/client/hippo/components/form/fields.jsx +76 -0
  36. data/client/hippo/components/form/fields/checkbox-wrapper.jsx +21 -0
  37. data/client/hippo/components/form/fields/date-wrapper.jsx +49 -0
  38. data/client/hippo/components/form/fields/form-field.scss +4 -0
  39. data/client/hippo/components/form/fields/select-wrapper.jsx +31 -0
  40. data/client/hippo/components/form/fields/text-wrapper.jsx +20 -0
  41. data/client/hippo/components/form/model.js +95 -0
  42. data/client/hippo/components/form/validations.js +0 -0
  43. data/client/hippo/components/form/wrapper.jsx +40 -0
  44. data/client/hippo/components/grid/config.json +3 -0
  45. data/client/hippo/components/grid/editors.scss +78 -0
  46. data/client/hippo/components/grid/index.js +2 -0
  47. data/client/hippo/components/grid/row-editor.scss +74 -0
  48. data/client/hippo/components/grid/styles.scss +118 -0
  49. data/client/hippo/components/icon.jsx +70 -0
  50. data/client/hippo/components/index.js +3 -0
  51. data/client/hippo/components/modal/index.js +1 -0
  52. data/client/hippo/components/modal/styles.scss +12 -0
  53. data/client/hippo/components/network-activity-overlay.jsx +127 -0
  54. data/client/hippo/components/network-activity-overlay.scss +52 -0
  55. data/client/hippo/components/query-builder.jsx +157 -0
  56. data/client/hippo/components/record-finder.jsx +95 -0
  57. data/client/hippo/components/record-finder/config.json +3 -0
  58. data/client/hippo/components/record-finder/query-layer.jsx +74 -0
  59. data/client/hippo/components/record-finder/record-finder.scss +12 -0
  60. data/client/hippo/components/request-spinner/index.js +1 -0
  61. data/client/hippo/components/screen.jsx +34 -0
  62. data/client/hippo/components/select-field/index.js +2 -0
  63. data/client/hippo/components/select-field/styles.scss +27 -0
  64. data/client/hippo/components/shared/AssetsListing.jsx +23 -0
  65. data/client/hippo/components/shared/Checkbox.jsx +49 -0
  66. data/client/hippo/components/shared/CountBadge.jsx +13 -0
  67. data/client/hippo/components/shared/DateTime.jsx +58 -0
  68. data/client/hippo/components/shared/DisplayValue.jsx +15 -0
  69. data/client/hippo/components/shared/ErrorDisplay.jsx +37 -0
  70. data/client/hippo/components/shared/FieldMixin.jsx +254 -0
  71. data/client/hippo/components/shared/FieldSet.jsx +52 -0
  72. data/client/hippo/components/shared/FieldWrapper.jsx +94 -0
  73. data/client/hippo/components/shared/FormGroup.jsx +41 -0
  74. data/client/hippo/components/shared/GenericField.jsx +7 -0
  75. data/client/hippo/components/shared/IconButton.jsx +13 -0
  76. data/client/hippo/components/shared/ImageAsset.jsx +78 -0
  77. data/client/hippo/components/shared/IndeterminateCheckbox.jsx +31 -0
  78. data/client/hippo/components/shared/Input.jsx +16 -0
  79. data/client/hippo/components/shared/InputFieldMixin.jsx +78 -0
  80. data/client/hippo/components/shared/JobProgress.jsx +46 -0
  81. data/client/hippo/components/shared/NumberInput.jsx +37 -0
  82. data/client/hippo/components/shared/PanelHeader.jsx +15 -0
  83. data/client/hippo/components/shared/RadioField.jsx +33 -0
  84. data/client/hippo/components/shared/ResizeSensor.jsx +18 -0
  85. data/client/hippo/components/shared/ScreenWrapper.jsx +17 -0
  86. data/client/hippo/components/shared/TextArea.jsx +19 -0
  87. data/client/hippo/components/shared/Throbber.jsx +8 -0
  88. data/client/hippo/components/shared/ToggleField.jsx +2 -0
  89. data/client/hippo/components/shared/Tooltip.jsx +23 -0
  90. data/client/hippo/components/shared/fields.scss +58 -0
  91. data/client/hippo/components/shared/fieldset.scss +27 -0
  92. data/client/hippo/components/shared/image-asset.scss +53 -0
  93. data/client/hippo/components/shared/index.js +5 -0
  94. data/client/hippo/components/shared/overlay.scss +83 -0
  95. data/client/hippo/components/shared/resize-sensor.scss +30 -0
  96. data/client/hippo/components/shared/styles.scss +64 -0
  97. data/client/hippo/components/shared/throbber.scss +53 -0
  98. data/client/hippo/components/toolbar/changes-notification.scss +63 -0
  99. data/client/hippo/components/toolbar/index.js +3 -0
  100. data/client/hippo/components/toolbar/styles.scss +74 -0
  101. data/client/hippo/components/warning-notification.jsx +14 -0
  102. data/client/hippo/config.js +72 -0
  103. data/client/hippo/extensions/EarlyExtensions.js.erb +3 -0
  104. data/client/hippo/extensions/LateLoaded.js.erb +4 -0
  105. data/client/hippo/extensions/base.js +23 -0
  106. data/client/hippo/extensions/hippo.js +11 -0
  107. data/client/hippo/extensions/index.js +47 -0
  108. data/client/hippo/extensions/namespace-available.js.erb +3 -0
  109. data/client/hippo/fonts/fontawesome-webfont.woff +0 -0
  110. data/client/hippo/fonts/fontawesome-webfont.woff2 +0 -0
  111. data/client/hippo/index.js +1 -0
  112. data/client/hippo/index.scss.erb +31 -0
  113. data/client/hippo/lib/__mocks__/loader.js +11 -0
  114. data/client/hippo/lib/__mocks__/request-assets.js +6 -0
  115. data/client/hippo/lib/all.js +14 -0
  116. data/client/hippo/lib/bootstrap.js +45 -0
  117. data/client/hippo/lib/index.js.erb +6 -0
  118. data/client/hippo/lib/loader.js +67 -0
  119. data/client/hippo/lib/request-assets.js +38 -0
  120. data/client/hippo/lib/smooth-scroll.js +68 -0
  121. data/client/hippo/lib/util.js +101 -0
  122. data/client/hippo/models/PubSub.js +208 -0
  123. data/client/hippo/models/__mocks__/sync.js +17 -0
  124. data/client/hippo/models/asset.js +104 -0
  125. data/client/hippo/models/base.js +142 -0
  126. data/client/hippo/models/collection.js +58 -0
  127. data/client/hippo/models/decorators.js +72 -0
  128. data/client/hippo/models/index.js +10 -0
  129. data/client/hippo/models/query.js +116 -0
  130. data/client/hippo/models/query/array-result.js +188 -0
  131. data/client/hippo/models/query/clause.js +52 -0
  132. data/client/hippo/models/query/field.js +63 -0
  133. data/client/hippo/models/query/info.js +43 -0
  134. data/client/hippo/models/query/operator.js +21 -0
  135. data/client/hippo/models/query/result.js +21 -0
  136. data/client/hippo/models/query/types.js +5 -0
  137. data/client/hippo/models/sync.js +135 -0
  138. data/client/hippo/models/system-setting.js +26 -0
  139. data/client/hippo/react/DefaultComponentNotFound.jsx +23 -0
  140. data/client/hippo/react/Root.jsx +24 -0
  141. data/client/hippo/react/index.js +7 -0
  142. data/client/hippo/react/viewport-root.jsx +44 -0
  143. data/client/hippo/screens/all.js.erb +3 -0
  144. data/client/hippo/screens/definition.js +67 -0
  145. data/client/hippo/screens/group.js +35 -0
  146. data/client/hippo/screens/index.js +34 -0
  147. data/client/hippo/screens/instance.js +99 -0
  148. data/client/hippo/screens/mixins/index.js +0 -0
  149. data/client/hippo/screens/register.js.erb +14 -0
  150. data/client/hippo/screens/styles.scss +8 -0
  151. data/client/hippo/screens/system-settings.jsx +92 -0
  152. data/client/hippo/screens/system-settings/mailer-config.jsx +53 -0
  153. data/client/hippo/screens/system-settings/system-settings.scss +8 -0
  154. data/client/hippo/screens/user-management.jsx +67 -0
  155. data/client/hippo/screens/user-management/edit-form.jsx +94 -0
  156. data/client/hippo/screens/user-management/index.scss +7 -0
  157. data/client/hippo/styles/fonts.scss +23 -0
  158. data/client/hippo/styles/fonts/_animated.scss +34 -0
  159. data/client/hippo/styles/fonts/_bordered-pulled.scss +25 -0
  160. data/client/hippo/styles/fonts/_core.scss +12 -0
  161. data/client/hippo/styles/fonts/_fixed-width.scss +6 -0
  162. data/client/hippo/styles/fonts/_icons.scss +789 -0
  163. data/client/hippo/styles/fonts/_larger.scss +13 -0
  164. data/client/hippo/styles/fonts/_list.scss +19 -0
  165. data/client/hippo/styles/fonts/_mixins.scss +60 -0
  166. data/client/hippo/styles/fonts/_path.scss +10 -0
  167. data/client/hippo/styles/fonts/_rotated-flipped.scss +20 -0
  168. data/client/hippo/styles/fonts/_screen-reader.scss +5 -0
  169. data/client/hippo/styles/fonts/_stacked.scss +20 -0
  170. data/client/hippo/styles/fonts/_variables.scss +800 -0
  171. data/client/hippo/styles/fonts/font-awesome.scss +18 -0
  172. data/client/hippo/styles/fonts/index.scss +2 -0
  173. data/client/hippo/styles/global.scss +3 -0
  174. data/client/hippo/styles/global/fancy-header.scss +14 -0
  175. data/client/hippo/styles/global/mixins.scss +5 -0
  176. data/client/hippo/styles/global/styles.scss +6 -0
  177. data/client/hippo/styles/variables.scss +28 -0
  178. data/client/hippo/testing/index.js +6 -0
  179. data/client/hippo/testing/matchers.js +14 -0
  180. data/client/hippo/testing/mocks/fetch.js +54 -0
  181. data/client/hippo/testing/screens.js +64 -0
  182. data/client/hippo/testing/utils.js +1 -0
  183. data/client/hippo/user.js +93 -0
  184. data/client/hippo/workspace/content.jsx +22 -0
  185. data/client/hippo/workspace/foo.js +0 -0
  186. data/client/hippo/workspace/index.jsx +85 -0
  187. data/client/hippo/workspace/menu-group.jsx +39 -0
  188. data/client/hippo/workspace/menu-option.jsx +41 -0
  189. data/client/hippo/workspace/menu.jsx +71 -0
  190. data/client/hippo/workspace/navbar.jsx +46 -0
  191. data/client/hippo/workspace/screen.jsx +50 -0
  192. data/client/hippo/workspace/styles.scss +61 -0
  193. data/client/hippo/workspace/styles/forms.scss +4 -0
  194. data/client/hippo/workspace/styles/header.scss +69 -0
  195. data/client/hippo/workspace/styles/keybindings.scss +6 -0
  196. data/client/hippo/workspace/styles/layout.scss +230 -0
  197. data/client/hippo/workspace/styles/screens.scss +15 -0
  198. data/client/hippo/workspace/styles/tabs.scss +141 -0
  199. data/client/hippo/workspace/tabs.jsx +60 -0
  200. data/client/hippo/workspace/viewport.jsx +82 -0
  201. data/client/images/hippo/ajax-loader.gif +0 -0
  202. data/client/images/hippo/logo-sm.png +0 -0
  203. data/coffeelint.json +49 -0
  204. data/command-reference-files/initial/.babelrc +20 -0
  205. data/command-reference-files/initial/.eslintrc.js +7 -0
  206. data/command-reference-files/initial/.gitignore +4 -0
  207. data/command-reference-files/initial/.rubocop.yml +9 -0
  208. data/command-reference-files/initial/Gemfile +9 -0
  209. data/command-reference-files/initial/Guardfile +13 -0
  210. data/command-reference-files/initial/Rakefile +2 -0
  211. data/command-reference-files/initial/client/appy-app/components/.gitkeep +0 -0
  212. data/command-reference-files/initial/client/appy-app/extension.js +32 -0
  213. data/command-reference-files/initial/client/appy-app/index.js +6 -0
  214. data/command-reference-files/initial/client/appy-app/models/.gitkeep +0 -0
  215. data/command-reference-files/initial/client/appy-app/models/base.js +11 -0
  216. data/command-reference-files/initial/client/appy-app/screens/.gitkeep +0 -0
  217. data/command-reference-files/initial/client/appy-app/styles.scss +1 -0
  218. data/command-reference-files/initial/config.ru +7 -0
  219. data/command-reference-files/initial/config/database.yml +11 -0
  220. data/command-reference-files/initial/config/initialize.rb +10 -0
  221. data/command-reference-files/initial/config/jest.config.json +19 -0
  222. data/command-reference-files/initial/config/jest/babel-transform.js +47 -0
  223. data/command-reference-files/initial/config/routes.rb +4 -0
  224. data/command-reference-files/initial/config/screens.rb +10 -0
  225. data/command-reference-files/initial/config/webpack.config.js +106 -0
  226. data/command-reference-files/initial/db/.gitkeep +0 -0
  227. data/command-reference-files/initial/lib/appy-app.rb +15 -0
  228. data/command-reference-files/initial/lib/appy-app/extension.rb +22 -0
  229. data/command-reference-files/initial/lib/appy-app/model.rb +11 -0
  230. data/command-reference-files/initial/lib/appy-app/version.rb +3 -0
  231. data/command-reference-files/initial/package.json +6 -0
  232. data/command-reference-files/initial/spec/client/.eslintrc.js +20 -0
  233. data/command-reference-files/initial/spec/client/setup.js +17 -0
  234. data/command-reference-files/initial/spec/server/spec_helper.rb +8 -0
  235. data/command-reference-files/initial/views/index.html +69 -0
  236. data/command-reference-files/model/client/appy-app/models/test_test.js +12 -0
  237. data/command-reference-files/model/config/routes.rb +4 -0
  238. data/command-reference-files/model/db/migrate/20150218032025_create_test_tests.rb +10 -0
  239. data/command-reference-files/model/lib/appy-app/model.rb +12 -0
  240. data/command-reference-files/model/lib/appy-app/models/test_test.rb +7 -0
  241. data/command-reference-files/model/spec/client/models/test_test.spec.js +8 -0
  242. data/command-reference-files/model/spec/fixtures/appy-app/test_test.yml +11 -0
  243. data/command-reference-files/model/spec/server/test_test_spec.rb +10 -0
  244. data/command-reference-files/screen/client/appy-app/extension.js +32 -0
  245. data/command-reference-files/screen/client/appy-app/screens/ready-set-go.jsx +22 -0
  246. data/command-reference-files/screen/config/screens.rb +19 -0
  247. data/command-reference-files/screen/spec/client/screens/ready-set-go.spec.jsx +12 -0
  248. data/config.ru +5 -0
  249. data/config/database.yml +9 -0
  250. data/config/jest.config.json +27 -0
  251. data/config/jest/babel-transform.js +47 -0
  252. data/config/jest/style-mock.js +2 -0
  253. data/config/jest/yaml-transform.js +19 -0
  254. data/config/routes.rb +28 -0
  255. data/config/screens.rb +42 -0
  256. data/config/webpack.config.js +105 -0
  257. data/db/migrate/01_create_system_settings.rb +10 -0
  258. data/db/migrate/02_create_assets.rb +13 -0
  259. data/db/migrate/20140615031600_create_users.rb +12 -0
  260. data/db/seed.rb +1 -0
  261. data/docs/command.md +114 -0
  262. data/docs/model.md +217 -0
  263. data/docs/react.md +137 -0
  264. data/docs/todo-example-part-1.md +69 -0
  265. data/docs/welcome.md +0 -0
  266. data/hippo-fw.gemspec +79 -0
  267. data/lib/generators/hippo/migrations/install_generator.rb +42 -0
  268. data/lib/hippo-fw.rb +1 -0
  269. data/lib/hippo.rb +34 -0
  270. data/lib/hippo/access.rb +49 -0
  271. data/lib/hippo/access/authentication_provider.rb +79 -0
  272. data/lib/hippo/access/config/database.yml +9 -0
  273. data/lib/hippo/access/config/routes.rb +20 -0
  274. data/lib/hippo/access/locked_fields.rb +43 -0
  275. data/lib/hippo/access/public/files/1nty/7ebo/n7k0/8b2ac0bbd97f401951fe40546f977200.png +0 -0
  276. data/lib/hippo/access/public/files/6hgp/eiw1/8dua/ba944287e36e101713a9c1ad793353b8.png +0 -0
  277. data/lib/hippo/access/public/files/94bd/9agc/2ua3/33800e285d7145760650ac88d1c558fb.png +0 -0
  278. data/lib/hippo/access/public/files/cr1e/vfwc/fvrh/0e7fe6ef12d622bfb93e024883c2f81c.png +0 -0
  279. data/lib/hippo/access/public/files/kezo/fm8j/u6xl/dfc47658aedd8e546abff63366a7285d.png +0 -0
  280. data/lib/hippo/access/public/files/n5c4/uovf/jec6/7ee9a3519e2b60430e095160a23f1d77.png +0 -0
  281. data/lib/hippo/access/role.rb +86 -0
  282. data/lib/hippo/access/role_collection.rb +88 -0
  283. data/lib/hippo/access/roles/administrator.rb +32 -0
  284. data/lib/hippo/access/roles/basic_user.rb +13 -0
  285. data/lib/hippo/access/roles/support.rb +15 -0
  286. data/lib/hippo/access/test_fixture_extensions.rb +16 -0
  287. data/lib/hippo/access/track_modifications.rb +79 -0
  288. data/lib/hippo/access/version.rb +5 -0
  289. data/lib/hippo/api.rb +23 -0
  290. data/lib/hippo/api/cable.rb +57 -0
  291. data/lib/hippo/api/controller_base.rb +299 -0
  292. data/lib/hippo/api/default_routes.rb +38 -0
  293. data/lib/hippo/api/error_formatter.rb +37 -0
  294. data/lib/hippo/api/formatted_reply.rb +62 -0
  295. data/lib/hippo/api/generic_controller.rb +35 -0
  296. data/lib/hippo/api/handlers/asset.rb +38 -0
  297. data/lib/hippo/api/handlers/print.rb +15 -0
  298. data/lib/hippo/api/handlers/user_session.rb +42 -0
  299. data/lib/hippo/api/helper_methods.rb +58 -0
  300. data/lib/hippo/api/pub_sub.rb +36 -0
  301. data/lib/hippo/api/request_wrapper.rb +105 -0
  302. data/lib/hippo/api/root.rb +70 -0
  303. data/lib/hippo/api/routing.rb +111 -0
  304. data/lib/hippo/api/sprockets_extension.rb +105 -0
  305. data/lib/hippo/api/to_json.rb +7 -0
  306. data/lib/hippo/api/updates.rb +37 -0
  307. data/lib/hippo/asset.rb +18 -0
  308. data/lib/hippo/capistrano.rb +30 -0
  309. data/lib/hippo/cli.rb +50 -0
  310. data/lib/hippo/command.rb +43 -0
  311. data/lib/hippo/command/app.rb +90 -0
  312. data/lib/hippo/command/client_config.rb +69 -0
  313. data/lib/hippo/command/client_model_update.rb +65 -0
  314. data/lib/hippo/command/console.rb +23 -0
  315. data/lib/hippo/command/db.rb +36 -0
  316. data/lib/hippo/command/db.usage +1 -0
  317. data/lib/hippo/command/generate.rb +24 -0
  318. data/lib/hippo/command/generate_component.rb +28 -0
  319. data/lib/hippo/command/generate_component.usage +11 -0
  320. data/lib/hippo/command/generate_migration.rb +33 -0
  321. data/lib/hippo/command/generate_model.rb +91 -0
  322. data/lib/hippo/command/generate_model.usage +45 -0
  323. data/lib/hippo/command/generate_screen.rb +40 -0
  324. data/lib/hippo/command/generate_screen.usage +8 -0
  325. data/lib/hippo/command/guard.rb +18 -0
  326. data/lib/hippo/command/jest.rb +40 -0
  327. data/lib/hippo/command/migration_support.rb +29 -0
  328. data/lib/hippo/command/model_attribute.rb +193 -0
  329. data/lib/hippo/command/named_command.rb +33 -0
  330. data/lib/hippo/command/puma.rb +56 -0
  331. data/lib/hippo/command/server.rb +19 -0
  332. data/lib/hippo/command/server.usage +3 -0
  333. data/lib/hippo/command/update.rb +13 -0
  334. data/lib/hippo/command/update_model.rb +127 -0
  335. data/lib/hippo/command/update_model.usage +2 -0
  336. data/lib/hippo/command/webpack.rb +57 -0
  337. data/lib/hippo/command/webpack_view.rb +32 -0
  338. data/lib/hippo/concerns/all.rb +15 -0
  339. data/lib/hippo/concerns/api_path.rb +21 -0
  340. data/lib/hippo/concerns/asset_uploader.rb +38 -0
  341. data/lib/hippo/concerns/association_extensions.rb +94 -0
  342. data/lib/hippo/concerns/attr_accessor_with_default.rb +68 -0
  343. data/lib/hippo/concerns/code_identifier.rb +43 -0
  344. data/lib/hippo/concerns/export_associations.rb +52 -0
  345. data/lib/hippo/concerns/export_join_tables.rb +39 -0
  346. data/lib/hippo/concerns/export_methods.rb +104 -0
  347. data/lib/hippo/concerns/export_scope.rb +64 -0
  348. data/lib/hippo/concerns/exported_limit_evaluator.rb +17 -0
  349. data/lib/hippo/concerns/pub_sub.rb +127 -0
  350. data/lib/hippo/concerns/queries.rb +24 -0
  351. data/lib/hippo/concerns/random_identifier.rb +37 -0
  352. data/lib/hippo/concerns/sanitize_fields.rb +32 -0
  353. data/lib/hippo/concerns/set_attribute_data.rb +125 -0
  354. data/lib/hippo/concerns/sorting_expressions.rb +34 -0
  355. data/lib/hippo/configuration.rb +143 -0
  356. data/lib/hippo/db.rb +57 -0
  357. data/lib/hippo/db/migrations.rb +32 -0
  358. data/lib/hippo/environment.rb +22 -0
  359. data/lib/hippo/extension.rb +112 -0
  360. data/lib/hippo/extension/definition.rb +90 -0
  361. data/lib/hippo/guard_tasks.rb +62 -0
  362. data/lib/hippo/hippo_guard_plugin.rb +80 -0
  363. data/lib/hippo/job.rb +82 -0
  364. data/lib/hippo/job/failure_logger.rb +33 -0
  365. data/lib/hippo/logger.rb +64 -0
  366. data/lib/hippo/mailer.rb +28 -0
  367. data/lib/hippo/model.rb +24 -0
  368. data/lib/hippo/multi_server_boot.rb +26 -0
  369. data/lib/hippo/numbers.rb +72 -0
  370. data/lib/hippo/rails_engine.rb +5 -0
  371. data/lib/hippo/rake_tasks.rb +69 -0
  372. data/lib/hippo/redis.rb +13 -0
  373. data/lib/hippo/reloadable_sinatra.rb +24 -0
  374. data/lib/hippo/reloadable_view.rb +13 -0
  375. data/lib/hippo/screen.rb +152 -0
  376. data/lib/hippo/spec_helper.rb +141 -0
  377. data/lib/hippo/strings.rb +56 -0
  378. data/lib/hippo/system_settings.rb +72 -0
  379. data/lib/hippo/templates/base.rb +44 -0
  380. data/lib/hippo/templates/latex.rb +101 -0
  381. data/lib/hippo/templates/liquid.rb +28 -0
  382. data/lib/hippo/user.rb +152 -0
  383. data/lib/hippo/validators/all.rb +2 -0
  384. data/lib/hippo/validators/email.rb +17 -0
  385. data/lib/hippo/validators/set.rb +18 -0
  386. data/lib/hippo/version.rb +5 -0
  387. data/lib/hippo/workspace.rb +4 -0
  388. data/lib/hippo/workspace/config/screens.rb +6 -0
  389. data/package.json +82 -0
  390. data/spec/client/.eslintrc.js +20 -0
  391. data/spec/client/access/login-dialog.spec.jsx +28 -0
  392. data/spec/client/components/__snapshots__/asset.spec.jsx.snap +48 -0
  393. data/spec/client/components/__snapshots__/network-activity-overlay.spec.jsx.snap +35 -0
  394. data/spec/client/components/__snapshots__/query-builder.spec.jsx.snap +82 -0
  395. data/spec/client/components/asset.spec.jsx +16 -0
  396. data/spec/client/components/data-list.spec.jsx +36 -0
  397. data/spec/client/components/data-table.spec.jsx +55 -0
  398. data/spec/client/components/form.spec.jsx +63 -0
  399. data/spec/client/components/network-activity-overlay.spec.jsx +30 -0
  400. data/spec/client/components/query-builder.spec.jsx +45 -0
  401. data/spec/client/components/record-finder.spec.jsx +45 -0
  402. data/spec/client/extension/base.spec.js +15 -0
  403. data/spec/client/lib/util.spec.js +48 -0
  404. data/spec/client/models/asset.spec.js +50 -0
  405. data/spec/client/models/base.spec.js +95 -0
  406. data/spec/client/models/collection.spec.js +51 -0
  407. data/spec/client/models/query.spec.js +243 -0
  408. data/spec/client/models/sync.spec.js +42 -0
  409. data/spec/client/models/system-setting.spec.js +19 -0
  410. data/spec/client/screens/__snapshots__/system-settings.spec.jsx.snap +364 -0
  411. data/spec/client/screens/__snapshots__/tabs.spec.jsx.snap +127 -0
  412. data/spec/client/screens/definition.spec.js +24 -0
  413. data/spec/client/screens/group.spec.js +33 -0
  414. data/spec/client/screens/instance.spec.js +61 -0
  415. data/spec/client/screens/system-settings.spec.jsx +22 -0
  416. data/spec/client/screens/tabs.spec.jsx +36 -0
  417. data/spec/client/screens/user-management.spec.jsx +48 -0
  418. data/spec/client/setup.js +12 -0
  419. data/spec/client/test-logo.json +41 -0
  420. data/spec/client/test-models.js +94 -0
  421. data/spec/client/user.spec.js +19 -0
  422. data/spec/client/workspace/__snapshots__/menu.spec.jsx.snap +380 -0
  423. data/spec/client/workspace/menu.spec.jsx +52 -0
  424. data/spec/factories/user.rb +11 -0
  425. data/spec/fixtures/logo.png +0 -0
  426. data/spec/fixtures/system_settings.yml +8 -0
  427. data/spec/fixtures/test_printer.tex +22 -0
  428. data/spec/fixtures/user.yml +2 -0
  429. data/spec/hippo/components/grid/GridSpec.coffee +56 -0
  430. data/spec/hippo/components/grid/PopoverEditorSpec.coffee +47 -0
  431. data/spec/hippo/components/grid/RowEditorSpec.coffee +98 -0
  432. data/spec/hippo/components/select-field/SelectFieldSpec.coffee +106 -0
  433. data/spec/hippo/components/shared/NetworkActivityOverlaySpec.coffee +34 -0
  434. data/spec/hippo/helpers/.gitkeep +0 -0
  435. data/spec/hippo/helpers/hippo-helpers.coffee +5 -0
  436. data/spec/hippo/helpers/jasmine-matchers.js +1580 -0
  437. data/spec/hippo/helpers/mock-ajax.js +573 -0
  438. data/spec/hippo/models/AssociationMapSpec.coffee +85 -0
  439. data/spec/hippo/models/AssociationProxySpec.coffee +76 -0
  440. data/spec/hippo/models/BaseSpec.coffee +155 -0
  441. data/spec/hippo/models/CollectionSpec.coffee +32 -0
  442. data/spec/hippo/models/EnumMapSpec.coffee +26 -0
  443. data/spec/hippo/models/PubSubSpec.coffee +71 -0
  444. data/spec/hippo/models/QuerySpec.coffee +19 -0
  445. data/spec/hippo/models/SyncSpec.coffee +28 -0
  446. data/spec/hippo/models/UserSpec.coffee +17 -0
  447. data/spec/hippo/react/mixins/DataSpec.coffee +74 -0
  448. data/spec/hippo/screens/DefinitionsSpec.coffee +33 -0
  449. data/spec/hippo/views/BaseSpec.coffee +147 -0
  450. data/spec/hippo/views/FormBindingsSpec.coffee +32 -0
  451. data/spec/server/api/controller_base_spec.rb +101 -0
  452. data/spec/server/assertions.rb +11 -0
  453. data/spec/server/asset_spec.rb +42 -0
  454. data/spec/server/command_spec.rb +73 -0
  455. data/spec/server/concerns/api_path_spec.rb +20 -0
  456. data/spec/server/concerns/association_extensions_spec.rb +24 -0
  457. data/spec/server/concerns/attr_accessor_with_default_spec.rb +63 -0
  458. data/spec/server/concerns/export_methods_spec.rb +34 -0
  459. data/spec/server/concerns/export_scope_spec.rb +14 -0
  460. data/spec/server/concerns/exported_limits_spec.rb +51 -0
  461. data/spec/server/concerns/pub_sub_spec.rb +132 -0
  462. data/spec/server/concerns/set_attribute_data_spec.rb +76 -0
  463. data/spec/server/concerns/sorting_expressions_spec.rb +34 -0
  464. data/spec/server/concerns/track_modifications_spec.rb +18 -0
  465. data/spec/server/configuration_spec.rb +26 -0
  466. data/spec/server/job_spec.rb +54 -0
  467. data/spec/server/mailer_spec.rb +33 -0
  468. data/spec/server/numbers_spec.rb +25 -0
  469. data/spec/server/print/form_spec.rb +29 -0
  470. data/spec/server/spec_helper.rb +74 -0
  471. data/spec/server/strings_spec.rb +41 -0
  472. data/spec/server/system_settings_spec.rb +39 -0
  473. data/tasks/migrations.rake +22 -0
  474. data/tasks/publish.rake +8 -0
  475. data/templates/.babelrc +20 -0
  476. data/templates/.gitignore +4 -0
  477. data/templates/Gemfile +9 -0
  478. data/templates/Guardfile +13 -0
  479. data/templates/Rakefile +2 -0
  480. data/templates/client/components/.gitkeep +0 -0
  481. data/templates/client/components/BaseComponent.coffee +9 -0
  482. data/templates/client/components/Component.cjsx +4 -0
  483. data/templates/client/components/template.html +3 -0
  484. data/templates/client/extension.js +32 -0
  485. data/templates/client/index.js +6 -0
  486. data/templates/client/models/base.js +11 -0
  487. data/templates/client/models/model.js +17 -0
  488. data/templates/client/screens/screen.jsx +22 -0
  489. data/templates/client/styles.scss +1 -0
  490. data/templates/config.ru +7 -0
  491. data/templates/config/database.yml +11 -0
  492. data/templates/config/initialize.rb +10 -0
  493. data/templates/config/jest.config.json +19 -0
  494. data/templates/config/jest/babel-transform.js +47 -0
  495. data/templates/config/routes.rb +4 -0
  496. data/templates/config/screen.rb +9 -0
  497. data/templates/config/screens.rb +10 -0
  498. data/templates/config/webpack.config.js +106 -0
  499. data/templates/db/create_table_migration.rb +19 -0
  500. data/templates/gitignore +4 -0
  501. data/templates/js/config-data.js +10 -0
  502. data/templates/js/jest.config.json +11 -0
  503. data/templates/js/root-view.html +71 -0
  504. data/templates/js/screen-definitions.js +22 -0
  505. data/templates/lib/namespace.rb +15 -0
  506. data/templates/lib/namespace/base_model.rb +11 -0
  507. data/templates/lib/namespace/extension.rb +22 -0
  508. data/templates/lib/namespace/model.rb +7 -0
  509. data/templates/lib/namespace/version.rb +3 -0
  510. data/templates/public/.gitkeep +0 -0
  511. data/templates/spec/client/components/ComponentSpec.coffee +5 -0
  512. data/templates/spec/client/models/model.spec.js +8 -0
  513. data/templates/spec/client/screen.spec.jsx +12 -0
  514. data/templates/spec/client/setup.js +17 -0
  515. data/templates/spec/fixtures/namespace/model.yml +16 -0
  516. data/templates/spec/server/model_spec.rb +10 -0
  517. data/templates/spec/server/spec_helper.rb +8 -0
  518. data/test.js +7 -0
  519. data/views/hippo_root_view.erb +68 -0
  520. data/views/index.html +71 -0
  521. data/yard_ext/all.rb +9 -0
  522. data/yard_ext/code_identifier_handler.rb +33 -0
  523. data/yard_ext/concern_meta_methods.rb +60 -0
  524. data/yard_ext/config_options.rb +27 -0
  525. data/yard_ext/exported_scope.rb +4 -0
  526. data/yard_ext/immutable_handler.rb +17 -0
  527. data/yard_ext/json_attr_accessor.rb +22 -0
  528. data/yard_ext/locked_fields_handler.rb +21 -0
  529. data/yard_ext/templates/default/layout/html/layout.erb +20 -0
  530. data/yard_ext/templates/default/method_details/html/github_link.erb +1 -0
  531. data/yard_ext/templates/default/method_details/setup.rb +3 -0
  532. data/yard_ext/validators.rb +1 -0
  533. data/yard_ext/visible_id_handler.rb +38 -0
  534. data/yarn.lock +6562 -0
  535. metadata +1182 -0
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import { action } from 'mobx';
3
+ import { observer } from 'mobx-react';
4
+ import { Row } from 'react-flexbox-grid';
5
+ import Heading from 'grommet/components/Heading';
6
+
7
+ import { Form, Field, FieldDefinitions, nonBlank, validEmail } from 'hippo/components/form';
8
+
9
+ @observer
10
+ export default class MailerConfig extends React.PureComponent {
11
+
12
+ fields = new FieldDefinitions({
13
+ user_name: nonBlank,
14
+ password: nonBlank,
15
+ address: nonBlank,
16
+ from_email: validEmail,
17
+ from_name: nonBlank,
18
+ })
19
+
20
+ @action.bound
21
+ onSave() {
22
+ if (!this.props.settings.smtp) { this.props.settings.smtp = {}; }
23
+ this.fields.persistTo(this.props.settings.smtp);
24
+ }
25
+
26
+ componentWillMount() {
27
+ this.props.registerForSave(this);
28
+ this.fields.set(this.props.settings.smtp || {});
29
+ }
30
+
31
+ componentWillReceiveProps(nextProps) {
32
+ this.fields.set(nextProps.settings.smtp || {});
33
+ }
34
+
35
+
36
+ render() {
37
+ return (
38
+ <div className="section">
39
+ <Heading tag="h3">Email settings</Heading>
40
+ <Form fields={this.fields}>
41
+ <Row className="section">
42
+ <Field md={4} xs={6} name="user_name" />
43
+ <Field md={4} xs={6} name="password" type="password" />
44
+ <Field md={4} xs={6} name="address" label="Server Address" />
45
+ <Field md={4} xs={6} name="from_email" label="From Email" />
46
+ <Field md={4} xs={6} name="from_name" label="From Name" />
47
+ </Row>
48
+ </Form>
49
+ </div>
50
+ );
51
+ }
52
+
53
+ }
@@ -0,0 +1,8 @@
1
+ .screen[data-screen-id="system-settings"] {
2
+
3
+ .section {
4
+ margin-top: 1rem;
5
+ }
6
+
7
+
8
+ }
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { isNil, toInteger } from 'lodash';
4
+ import { observable, action, computed } from 'mobx';
5
+ import { observer } from 'mobx-react';
6
+
7
+ import Heading from 'grommet/components/Heading';
8
+
9
+ import Screen from 'hippo/components/screen';
10
+ import DataTable from 'hippo/components/data-table';
11
+ import { UserModel } from 'hippo/user';
12
+ import Query from 'hippo/models/query';
13
+
14
+ import Editor from './user-management/edit-form';
15
+
16
+ @observer
17
+ export default class UserManagement extends React.PureComponent {
18
+
19
+ @observable editingId;
20
+
21
+ static contextTypes = {
22
+ router: PropTypes.object,
23
+ }
24
+
25
+ @action.bound
26
+ onRowEdit(index) {
27
+ let id = '';
28
+ if (!isNil(index)) {
29
+ const row = this.query.results.rows[index];
30
+ id = row[this.query.info.identifierField.dataIndex];
31
+ }
32
+ this.editingId = id;
33
+ }
34
+
35
+ @observable query = new Query({
36
+ src: UserModel,
37
+ autoFetch: true,
38
+ fields: [
39
+ { id: 'id', visible: false },
40
+ { id: 'role_names', visible: false, defaultValue: [] },
41
+ { id: 'login', width: 150, flexGrow: 0 },
42
+ 'name', 'email',
43
+ ],
44
+ })
45
+
46
+ @computed get editingRowIndex() {
47
+ if (isNil(this.editingId)) return undefined;
48
+ const field = this.query.info.identifierField;
49
+ const id = (field.isNumeric) ? toInteger(this.editingId) : this.editingId;
50
+ return this.query.results.searchFieldValues(field, id).index;
51
+ }
52
+
53
+ render() {
54
+ return (
55
+ <Screen {...this.props}>
56
+ <Heading>Manage User</Heading>
57
+ <DataTable
58
+ canCreate
59
+ query={this.query}
60
+ editRowIndex={this.editingRowIndex}
61
+ onEdit={this.onRowEdit}
62
+ editor={Editor}
63
+ />
64
+ </Screen>
65
+ );
66
+ }
67
+ }
@@ -0,0 +1,94 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Row, Col } from 'react-flexbox-grid';
4
+ import { isNil, forIn, get, pick, mapValues, keys, extend } from 'lodash';
5
+
6
+ import { observer } from 'mobx-react';
7
+ import { action, observable, computed } from 'mobx';
8
+
9
+ import Button from 'grommet/components/Button';
10
+ import Warning from 'hippo/components/warning-notification';
11
+
12
+ import Query from 'hippo/models/query';
13
+
14
+ import { Form, Field, FieldDefinitions, nonBlank, validEmail, booleanValue, field } from 'hippo/components/form';
15
+
16
+ @observer
17
+ export default class EditForm extends React.PureComponent {
18
+
19
+ static propTypes = {
20
+ query: PropTypes.instanceOf(Query).isRequired,
21
+ rowIndex: PropTypes.number.isRequired,
22
+ onComplete: PropTypes.func.isRequired,
23
+ }
24
+
25
+ static desiredHeight = 400
26
+
27
+ fields = new FieldDefinitions({
28
+ is_admin: booleanValue,
29
+ login: nonBlank,
30
+ name: nonBlank,
31
+ email: validEmail,
32
+ password: field,
33
+ })
34
+
35
+ constructor(props) {
36
+ super(props);
37
+
38
+ this.user = this.props.query.results.modelForRow(this.props.rowIndex);
39
+ }
40
+
41
+ componentDidMount() {
42
+ this.fields.setFromModel(this.user);
43
+ }
44
+
45
+ @action.bound
46
+ onSave() {
47
+ this.fields.persistTo(this.user);
48
+ this.user.save().then(this.onSaved);
49
+ }
50
+
51
+ @action.bound
52
+ onSaved(user) {
53
+ if (user.errors) {
54
+ this.errorMessage = user.lastServerMessage;
55
+ } else {
56
+ this.props.onComplete();
57
+ }
58
+ }
59
+
60
+ @action.bound
61
+ onCancel() {
62
+ this.props.onComplete();
63
+ }
64
+
65
+
66
+ render() {
67
+ const { fields } = this;
68
+
69
+ return (
70
+ <Form tag="div" className="user-edit-form" fields={fields}>
71
+ <Warning message={this.errorMessage} />
72
+ <Row middle='sm'>
73
+ <Field md={4} xs={6} name="login" />
74
+ <Field md={4} xs={6} name="name" />
75
+ <Field md={4} xs={6} name="email" />
76
+ <Field md={4} xs={6} type="password" name="password" />
77
+ <Field md={4} xs={6} type="checkbox" name="is_admin" />
78
+ </Row>
79
+ <Row>
80
+ <Col md={4} xs={6}>
81
+ <Row middle="xs" around="xs">
82
+ <Button label="Cancel" onClick={this.onCancel} accent />
83
+ <Button
84
+ label="Save"
85
+ onClick={fields.isValid ? this.onSave : null}
86
+ primary
87
+ />
88
+ </Row>
89
+ </Col>
90
+ </Row>
91
+ </Form>
92
+ );
93
+ }
94
+ }
@@ -0,0 +1,7 @@
1
+ #hippo-root {
2
+
3
+ .grid-popover-editor {
4
+ width: 350px;
5
+ }
6
+
7
+ }
@@ -0,0 +1,23 @@
1
+ $fa-css-prefix: "icon";
2
+
3
+ $hippo-icon-font: 'FontAwesome';
4
+
5
+ @import "./fonts/font-awesome";
6
+
7
+ button, a.btn, [role=button] {
8
+ .icon:not(.flush) {
9
+ margin-right: 0.5em;
10
+ }
11
+ &.icon:before{
12
+ font-family: $hippo-icon-font;
13
+ }
14
+ }
15
+
16
+
17
+ // replace glyphicons with fa
18
+ .glyphicon {
19
+ @extend .icon;
20
+ &.glyphicon-ok:before { content: $fa-var-check; }
21
+ &.glyphicon-warning-sign:before { content: $fa-var-exclamation-triangle; }
22
+ &.glyphicon-error:before { content: $fa-var-exclamation; }
23
+ }
@@ -0,0 +1,34 @@
1
+ // Spinning Icons
2
+ // --------------------------
3
+
4
+ .#{$fa-css-prefix}-spin {
5
+ -webkit-animation: fa-spin 2s infinite linear;
6
+ animation: fa-spin 2s infinite linear;
7
+ }
8
+
9
+ .#{$fa-css-prefix}-pulse {
10
+ -webkit-animation: fa-spin 1s infinite steps(8);
11
+ animation: fa-spin 1s infinite steps(8);
12
+ }
13
+
14
+ @-webkit-keyframes fa-spin {
15
+ 0% {
16
+ -webkit-transform: rotate(0deg);
17
+ transform: rotate(0deg);
18
+ }
19
+ 100% {
20
+ -webkit-transform: rotate(359deg);
21
+ transform: rotate(359deg);
22
+ }
23
+ }
24
+
25
+ @keyframes fa-spin {
26
+ 0% {
27
+ -webkit-transform: rotate(0deg);
28
+ transform: rotate(0deg);
29
+ }
30
+ 100% {
31
+ -webkit-transform: rotate(359deg);
32
+ transform: rotate(359deg);
33
+ }
34
+ }
@@ -0,0 +1,25 @@
1
+ // Bordered & Pulled
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-border {
5
+ padding: .2em .25em .15em;
6
+ border: solid .08em $fa-border-color;
7
+ border-radius: .1em;
8
+ }
9
+
10
+ .#{$fa-css-prefix}-pull-left { float: left; }
11
+ .#{$fa-css-prefix}-pull-right { float: right; }
12
+
13
+ .#{$fa-css-prefix} {
14
+ &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15
+ &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16
+ }
17
+
18
+ /* Deprecated as of 4.4.0 */
19
+ .pull-right { float: right; }
20
+ .pull-left { float: left; }
21
+
22
+ .#{$fa-css-prefix} {
23
+ &.pull-left { margin-right: .3em; }
24
+ &.pull-right { margin-left: .3em; }
25
+ }
@@ -0,0 +1,12 @@
1
+ // Base Class Definition
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix} {
5
+ display: inline-block;
6
+ font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7
+ font-size: inherit; // can't have font-size inherit on line above, so need to override
8
+ text-rendering: auto; // optimizelegibility throws things off #1094
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+
12
+ }
@@ -0,0 +1,6 @@
1
+ // Fixed Width Icons
2
+ // -------------------------
3
+ .#{$fa-css-prefix}-fw {
4
+ width: (18em / 14);
5
+ text-align: center;
6
+ }
@@ -0,0 +1,789 @@
1
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
2
+ readers do not read off random characters that represent icons */
3
+
4
+ .#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }
5
+ .#{$fa-css-prefix}-music:before { content: $fa-var-music; }
6
+ .#{$fa-css-prefix}-search:before { content: $fa-var-search; }
7
+ .#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }
8
+ .#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }
9
+ .#{$fa-css-prefix}-star:before { content: $fa-var-star; }
10
+ .#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }
11
+ .#{$fa-css-prefix}-user:before { content: $fa-var-user; }
12
+ .#{$fa-css-prefix}-film:before { content: $fa-var-film; }
13
+ .#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }
14
+ .#{$fa-css-prefix}-th:before { content: $fa-var-th; }
15
+ .#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }
16
+ .#{$fa-css-prefix}-check:before { content: $fa-var-check; }
17
+ .#{$fa-css-prefix}-remove:before,
18
+ .#{$fa-css-prefix}-close:before,
19
+ .#{$fa-css-prefix}-times:before { content: $fa-var-times; }
20
+ .#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }
21
+ .#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }
22
+ .#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }
23
+ .#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }
24
+ .#{$fa-css-prefix}-gear:before,
25
+ .#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }
26
+ .#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }
27
+ .#{$fa-css-prefix}-home:before { content: $fa-var-home; }
28
+ .#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }
29
+ .#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }
30
+ .#{$fa-css-prefix}-road:before { content: $fa-var-road; }
31
+ .#{$fa-css-prefix}-download:before { content: $fa-var-download; }
32
+ .#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }
33
+ .#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }
34
+ .#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }
35
+ .#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }
36
+ .#{$fa-css-prefix}-rotate-right:before,
37
+ .#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }
38
+ .#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }
39
+ .#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }
40
+ .#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }
41
+ .#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }
42
+ .#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }
43
+ .#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }
44
+ .#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }
45
+ .#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }
46
+ .#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }
47
+ .#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }
48
+ .#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }
49
+ .#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }
50
+ .#{$fa-css-prefix}-book:before { content: $fa-var-book; }
51
+ .#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }
52
+ .#{$fa-css-prefix}-print:before { content: $fa-var-print; }
53
+ .#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }
54
+ .#{$fa-css-prefix}-font:before { content: $fa-var-font; }
55
+ .#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }
56
+ .#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }
57
+ .#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }
58
+ .#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }
59
+ .#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }
60
+ .#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }
61
+ .#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }
62
+ .#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }
63
+ .#{$fa-css-prefix}-list:before { content: $fa-var-list; }
64
+ .#{$fa-css-prefix}-dedent:before,
65
+ .#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }
66
+ .#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }
67
+ .#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }
68
+ .#{$fa-css-prefix}-photo:before,
69
+ .#{$fa-css-prefix}-image:before,
70
+ .#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }
71
+ .#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }
72
+ .#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }
73
+ .#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }
74
+ .#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }
75
+ .#{$fa-css-prefix}-edit:before,
76
+ .#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }
77
+ .#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }
78
+ .#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }
79
+ .#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }
80
+ .#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }
81
+ .#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }
82
+ .#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }
83
+ .#{$fa-css-prefix}-play:before { content: $fa-var-play; }
84
+ .#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }
85
+ .#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }
86
+ .#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }
87
+ .#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }
88
+ .#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }
89
+ .#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }
90
+ .#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }
91
+ .#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }
92
+ .#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }
93
+ .#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }
94
+ .#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }
95
+ .#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }
96
+ .#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }
97
+ .#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }
98
+ .#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }
99
+ .#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }
100
+ .#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }
101
+ .#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }
102
+ .#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }
103
+ .#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }
104
+ .#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }
105
+ .#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }
106
+ .#{$fa-css-prefix}-mail-forward:before,
107
+ .#{$fa-css-prefix}-share:before { content: $fa-var-share; }
108
+ .#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }
109
+ .#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }
110
+ .#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }
111
+ .#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }
112
+ .#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }
113
+ .#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }
114
+ .#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }
115
+ .#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }
116
+ .#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }
117
+ .#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }
118
+ .#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }
119
+ .#{$fa-css-prefix}-warning:before,
120
+ .#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }
121
+ .#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }
122
+ .#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }
123
+ .#{$fa-css-prefix}-random:before { content: $fa-var-random; }
124
+ .#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }
125
+ .#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }
126
+ .#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }
127
+ .#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }
128
+ .#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }
129
+ .#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }
130
+ .#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }
131
+ .#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }
132
+ .#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }
133
+ .#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }
134
+ .#{$fa-css-prefix}-bar-chart-o:before,
135
+ .#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; }
136
+ .#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }
137
+ .#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }
138
+ .#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }
139
+ .#{$fa-css-prefix}-key:before { content: $fa-var-key; }
140
+ .#{$fa-css-prefix}-gears:before,
141
+ .#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }
142
+ .#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }
143
+ .#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }
144
+ .#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }
145
+ .#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }
146
+ .#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }
147
+ .#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }
148
+ .#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }
149
+ .#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }
150
+ .#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }
151
+ .#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }
152
+ .#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }
153
+ .#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }
154
+ .#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }
155
+ .#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }
156
+ .#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }
157
+ .#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }
158
+ .#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }
159
+ .#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }
160
+ .#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }
161
+ .#{$fa-css-prefix}-facebook-f:before,
162
+ .#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }
163
+ .#{$fa-css-prefix}-github:before { content: $fa-var-github; }
164
+ .#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }
165
+ .#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }
166
+ .#{$fa-css-prefix}-feed:before,
167
+ .#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }
168
+ .#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }
169
+ .#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }
170
+ .#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }
171
+ .#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }
172
+ .#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }
173
+ .#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }
174
+ .#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }
175
+ .#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }
176
+ .#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }
177
+ .#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }
178
+ .#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }
179
+ .#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }
180
+ .#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }
181
+ .#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }
182
+ .#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }
183
+ .#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }
184
+ .#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }
185
+ .#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }
186
+ .#{$fa-css-prefix}-group:before,
187
+ .#{$fa-css-prefix}-users:before { content: $fa-var-users; }
188
+ .#{$fa-css-prefix}-chain:before,
189
+ .#{$fa-css-prefix}-link:before { content: $fa-var-link; }
190
+ .#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }
191
+ .#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }
192
+ .#{$fa-css-prefix}-cut:before,
193
+ .#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }
194
+ .#{$fa-css-prefix}-copy:before,
195
+ .#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }
196
+ .#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }
197
+ .#{$fa-css-prefix}-save:before,
198
+ .#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }
199
+ .#{$fa-css-prefix}-square:before { content: $fa-var-square; }
200
+ .#{$fa-css-prefix}-navicon:before,
201
+ .#{$fa-css-prefix}-reorder:before,
202
+ .#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }
203
+ .#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }
204
+ .#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }
205
+ .#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }
206
+ .#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }
207
+ .#{$fa-css-prefix}-table:before { content: $fa-var-table; }
208
+ .#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }
209
+ .#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }
210
+ .#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }
211
+ .#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }
212
+ .#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }
213
+ .#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }
214
+ .#{$fa-css-prefix}-money:before { content: $fa-var-money; }
215
+ .#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }
216
+ .#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }
217
+ .#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }
218
+ .#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }
219
+ .#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }
220
+ .#{$fa-css-prefix}-unsorted:before,
221
+ .#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }
222
+ .#{$fa-css-prefix}-sort-down:before,
223
+ .#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }
224
+ .#{$fa-css-prefix}-sort-up:before,
225
+ .#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }
226
+ .#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }
227
+ .#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }
228
+ .#{$fa-css-prefix}-rotate-left:before,
229
+ .#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }
230
+ .#{$fa-css-prefix}-legal:before,
231
+ .#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }
232
+ .#{$fa-css-prefix}-dashboard:before,
233
+ .#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }
234
+ .#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }
235
+ .#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }
236
+ .#{$fa-css-prefix}-flash:before,
237
+ .#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }
238
+ .#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }
239
+ .#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }
240
+ .#{$fa-css-prefix}-paste:before,
241
+ .#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }
242
+ .#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }
243
+ .#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }
244
+ .#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }
245
+ .#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }
246
+ .#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }
247
+ .#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }
248
+ .#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }
249
+ .#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }
250
+ .#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }
251
+ .#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }
252
+ .#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }
253
+ .#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }
254
+ .#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }
255
+ .#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }
256
+ .#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }
257
+ .#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }
258
+ .#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }
259
+ .#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }
260
+ .#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }
261
+ .#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }
262
+ .#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }
263
+ .#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }
264
+ .#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }
265
+ .#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }
266
+ .#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }
267
+ .#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }
268
+ .#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }
269
+ .#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }
270
+ .#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }
271
+ .#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }
272
+ .#{$fa-css-prefix}-mobile-phone:before,
273
+ .#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }
274
+ .#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }
275
+ .#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }
276
+ .#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }
277
+ .#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }
278
+ .#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }
279
+ .#{$fa-css-prefix}-mail-reply:before,
280
+ .#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }
281
+ .#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }
282
+ .#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }
283
+ .#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }
284
+ .#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }
285
+ .#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }
286
+ .#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }
287
+ .#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }
288
+ .#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }
289
+ .#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }
290
+ .#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }
291
+ .#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }
292
+ .#{$fa-css-prefix}-code:before { content: $fa-var-code; }
293
+ .#{$fa-css-prefix}-mail-reply-all:before,
294
+ .#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }
295
+ .#{$fa-css-prefix}-star-half-empty:before,
296
+ .#{$fa-css-prefix}-star-half-full:before,
297
+ .#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }
298
+ .#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }
299
+ .#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }
300
+ .#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }
301
+ .#{$fa-css-prefix}-unlink:before,
302
+ .#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }
303
+ .#{$fa-css-prefix}-question:before { content: $fa-var-question; }
304
+ .#{$fa-css-prefix}-info:before { content: $fa-var-info; }
305
+ .#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }
306
+ .#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }
307
+ .#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }
308
+ .#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }
309
+ .#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }
310
+ .#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }
311
+ .#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }
312
+ .#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }
313
+ .#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }
314
+ .#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }
315
+ .#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }
316
+ .#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }
317
+ .#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }
318
+ .#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }
319
+ .#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }
320
+ .#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }
321
+ .#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }
322
+ .#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }
323
+ .#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }
324
+ .#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }
325
+ .#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }
326
+ .#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }
327
+ .#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }
328
+ .#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }
329
+ .#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }
330
+ .#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }
331
+ .#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }
332
+ .#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }
333
+ .#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }
334
+ .#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }
335
+ .#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }
336
+ .#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }
337
+ .#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }
338
+ .#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }
339
+ .#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }
340
+ .#{$fa-css-prefix}-toggle-down:before,
341
+ .#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }
342
+ .#{$fa-css-prefix}-toggle-up:before,
343
+ .#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }
344
+ .#{$fa-css-prefix}-toggle-right:before,
345
+ .#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }
346
+ .#{$fa-css-prefix}-euro:before,
347
+ .#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }
348
+ .#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }
349
+ .#{$fa-css-prefix}-dollar:before,
350
+ .#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }
351
+ .#{$fa-css-prefix}-rupee:before,
352
+ .#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }
353
+ .#{$fa-css-prefix}-cny:before,
354
+ .#{$fa-css-prefix}-rmb:before,
355
+ .#{$fa-css-prefix}-yen:before,
356
+ .#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }
357
+ .#{$fa-css-prefix}-ruble:before,
358
+ .#{$fa-css-prefix}-rouble:before,
359
+ .#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }
360
+ .#{$fa-css-prefix}-won:before,
361
+ .#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }
362
+ .#{$fa-css-prefix}-bitcoin:before,
363
+ .#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }
364
+ .#{$fa-css-prefix}-file:before { content: $fa-var-file; }
365
+ .#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }
366
+ .#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }
367
+ .#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }
368
+ .#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }
369
+ .#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }
370
+ .#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }
371
+ .#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }
372
+ .#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }
373
+ .#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }
374
+ .#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }
375
+ .#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }
376
+ .#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }
377
+ .#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }
378
+ .#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }
379
+ .#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }
380
+ .#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }
381
+ .#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }
382
+ .#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }
383
+ .#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }
384
+ .#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }
385
+ .#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }
386
+ .#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }
387
+ .#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }
388
+ .#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }
389
+ .#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }
390
+ .#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }
391
+ .#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }
392
+ .#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }
393
+ .#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }
394
+ .#{$fa-css-prefix}-android:before { content: $fa-var-android; }
395
+ .#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }
396
+ .#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }
397
+ .#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }
398
+ .#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }
399
+ .#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }
400
+ .#{$fa-css-prefix}-female:before { content: $fa-var-female; }
401
+ .#{$fa-css-prefix}-male:before { content: $fa-var-male; }
402
+ .#{$fa-css-prefix}-gittip:before,
403
+ .#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; }
404
+ .#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }
405
+ .#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }
406
+ .#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }
407
+ .#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }
408
+ .#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }
409
+ .#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }
410
+ .#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }
411
+ .#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }
412
+ .#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }
413
+ .#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }
414
+ .#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }
415
+ .#{$fa-css-prefix}-toggle-left:before,
416
+ .#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }
417
+ .#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }
418
+ .#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }
419
+ .#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }
420
+ .#{$fa-css-prefix}-turkish-lira:before,
421
+ .#{$fa-css-prefix}-try:before { content: $fa-var-try; }
422
+ .#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }
423
+ .#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; }
424
+ .#{$fa-css-prefix}-slack:before { content: $fa-var-slack; }
425
+ .#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; }
426
+ .#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; }
427
+ .#{$fa-css-prefix}-openid:before { content: $fa-var-openid; }
428
+ .#{$fa-css-prefix}-institution:before,
429
+ .#{$fa-css-prefix}-bank:before,
430
+ .#{$fa-css-prefix}-university:before { content: $fa-var-university; }
431
+ .#{$fa-css-prefix}-mortar-board:before,
432
+ .#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; }
433
+ .#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; }
434
+ .#{$fa-css-prefix}-google:before { content: $fa-var-google; }
435
+ .#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; }
436
+ .#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; }
437
+ .#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; }
438
+ .#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; }
439
+ .#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; }
440
+ .#{$fa-css-prefix}-digg:before { content: $fa-var-digg; }
441
+ .#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; }
442
+ .#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; }
443
+ .#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; }
444
+ .#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; }
445
+ .#{$fa-css-prefix}-language:before { content: $fa-var-language; }
446
+ .#{$fa-css-prefix}-fax:before { content: $fa-var-fax; }
447
+ .#{$fa-css-prefix}-building:before { content: $fa-var-building; }
448
+ .#{$fa-css-prefix}-child:before { content: $fa-var-child; }
449
+ .#{$fa-css-prefix}-paw:before { content: $fa-var-paw; }
450
+ .#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; }
451
+ .#{$fa-css-prefix}-cube:before { content: $fa-var-cube; }
452
+ .#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; }
453
+ .#{$fa-css-prefix}-behance:before { content: $fa-var-behance; }
454
+ .#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; }
455
+ .#{$fa-css-prefix}-steam:before { content: $fa-var-steam; }
456
+ .#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; }
457
+ .#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; }
458
+ .#{$fa-css-prefix}-automobile:before,
459
+ .#{$fa-css-prefix}-car:before { content: $fa-var-car; }
460
+ .#{$fa-css-prefix}-cab:before,
461
+ .#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; }
462
+ .#{$fa-css-prefix}-tree:before { content: $fa-var-tree; }
463
+ .#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; }
464
+ .#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; }
465
+ .#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; }
466
+ .#{$fa-css-prefix}-database:before { content: $fa-var-database; }
467
+ .#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; }
468
+ .#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; }
469
+ .#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; }
470
+ .#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; }
471
+ .#{$fa-css-prefix}-file-photo-o:before,
472
+ .#{$fa-css-prefix}-file-picture-o:before,
473
+ .#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; }
474
+ .#{$fa-css-prefix}-file-zip-o:before,
475
+ .#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; }
476
+ .#{$fa-css-prefix}-file-sound-o:before,
477
+ .#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; }
478
+ .#{$fa-css-prefix}-file-movie-o:before,
479
+ .#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; }
480
+ .#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; }
481
+ .#{$fa-css-prefix}-vine:before { content: $fa-var-vine; }
482
+ .#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; }
483
+ .#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; }
484
+ .#{$fa-css-prefix}-life-bouy:before,
485
+ .#{$fa-css-prefix}-life-buoy:before,
486
+ .#{$fa-css-prefix}-life-saver:before,
487
+ .#{$fa-css-prefix}-support:before,
488
+ .#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; }
489
+ .#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; }
490
+ .#{$fa-css-prefix}-ra:before,
491
+ .#{$fa-css-prefix}-resistance:before,
492
+ .#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; }
493
+ .#{$fa-css-prefix}-ge:before,
494
+ .#{$fa-css-prefix}-empire:before { content: $fa-var-empire; }
495
+ .#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; }
496
+ .#{$fa-css-prefix}-git:before { content: $fa-var-git; }
497
+ .#{$fa-css-prefix}-y-combinator-square:before,
498
+ .#{$fa-css-prefix}-yc-square:before,
499
+ .#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; }
500
+ .#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; }
501
+ .#{$fa-css-prefix}-qq:before { content: $fa-var-qq; }
502
+ .#{$fa-css-prefix}-wechat:before,
503
+ .#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; }
504
+ .#{$fa-css-prefix}-send:before,
505
+ .#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; }
506
+ .#{$fa-css-prefix}-send-o:before,
507
+ .#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; }
508
+ .#{$fa-css-prefix}-history:before { content: $fa-var-history; }
509
+ .#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; }
510
+ .#{$fa-css-prefix}-header:before { content: $fa-var-header; }
511
+ .#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; }
512
+ .#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; }
513
+ .#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; }
514
+ .#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; }
515
+ .#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; }
516
+ .#{$fa-css-prefix}-soccer-ball-o:before,
517
+ .#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; }
518
+ .#{$fa-css-prefix}-tty:before { content: $fa-var-tty; }
519
+ .#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; }
520
+ .#{$fa-css-prefix}-plug:before { content: $fa-var-plug; }
521
+ .#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; }
522
+ .#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; }
523
+ .#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; }
524
+ .#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; }
525
+ .#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; }
526
+ .#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; }
527
+ .#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; }
528
+ .#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; }
529
+ .#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; }
530
+ .#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; }
531
+ .#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; }
532
+ .#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; }
533
+ .#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; }
534
+ .#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; }
535
+ .#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; }
536
+ .#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; }
537
+ .#{$fa-css-prefix}-trash:before { content: $fa-var-trash; }
538
+ .#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; }
539
+ .#{$fa-css-prefix}-at:before { content: $fa-var-at; }
540
+ .#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; }
541
+ .#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; }
542
+ .#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; }
543
+ .#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; }
544
+ .#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; }
545
+ .#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; }
546
+ .#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; }
547
+ .#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; }
548
+ .#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; }
549
+ .#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; }
550
+ .#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; }
551
+ .#{$fa-css-prefix}-bus:before { content: $fa-var-bus; }
552
+ .#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; }
553
+ .#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; }
554
+ .#{$fa-css-prefix}-cc:before { content: $fa-var-cc; }
555
+ .#{$fa-css-prefix}-shekel:before,
556
+ .#{$fa-css-prefix}-sheqel:before,
557
+ .#{$fa-css-prefix}-ils:before { content: $fa-var-ils; }
558
+ .#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; }
559
+ .#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; }
560
+ .#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; }
561
+ .#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; }
562
+ .#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; }
563
+ .#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; }
564
+ .#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; }
565
+ .#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; }
566
+ .#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; }
567
+ .#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; }
568
+ .#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; }
569
+ .#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; }
570
+ .#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; }
571
+ .#{$fa-css-prefix}-ship:before { content: $fa-var-ship; }
572
+ .#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; }
573
+ .#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; }
574
+ .#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; }
575
+ .#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; }
576
+ .#{$fa-css-prefix}-venus:before { content: $fa-var-venus; }
577
+ .#{$fa-css-prefix}-mars:before { content: $fa-var-mars; }
578
+ .#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; }
579
+ .#{$fa-css-prefix}-intersex:before,
580
+ .#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; }
581
+ .#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; }
582
+ .#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; }
583
+ .#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; }
584
+ .#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; }
585
+ .#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; }
586
+ .#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; }
587
+ .#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; }
588
+ .#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; }
589
+ .#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; }
590
+ .#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; }
591
+ .#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; }
592
+ .#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; }
593
+ .#{$fa-css-prefix}-server:before { content: $fa-var-server; }
594
+ .#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; }
595
+ .#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; }
596
+ .#{$fa-css-prefix}-hotel:before,
597
+ .#{$fa-css-prefix}-bed:before { content: $fa-var-bed; }
598
+ .#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; }
599
+ .#{$fa-css-prefix}-train:before { content: $fa-var-train; }
600
+ .#{$fa-css-prefix}-subway:before { content: $fa-var-subway; }
601
+ .#{$fa-css-prefix}-medium:before { content: $fa-var-medium; }
602
+ .#{$fa-css-prefix}-yc:before,
603
+ .#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; }
604
+ .#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; }
605
+ .#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; }
606
+ .#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; }
607
+ .#{$fa-css-prefix}-battery-4:before,
608
+ .#{$fa-css-prefix}-battery:before,
609
+ .#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; }
610
+ .#{$fa-css-prefix}-battery-3:before,
611
+ .#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; }
612
+ .#{$fa-css-prefix}-battery-2:before,
613
+ .#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; }
614
+ .#{$fa-css-prefix}-battery-1:before,
615
+ .#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; }
616
+ .#{$fa-css-prefix}-battery-0:before,
617
+ .#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; }
618
+ .#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; }
619
+ .#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; }
620
+ .#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; }
621
+ .#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; }
622
+ .#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; }
623
+ .#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; }
624
+ .#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; }
625
+ .#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; }
626
+ .#{$fa-css-prefix}-clone:before { content: $fa-var-clone; }
627
+ .#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; }
628
+ .#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; }
629
+ .#{$fa-css-prefix}-hourglass-1:before,
630
+ .#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; }
631
+ .#{$fa-css-prefix}-hourglass-2:before,
632
+ .#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; }
633
+ .#{$fa-css-prefix}-hourglass-3:before,
634
+ .#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; }
635
+ .#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; }
636
+ .#{$fa-css-prefix}-hand-grab-o:before,
637
+ .#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; }
638
+ .#{$fa-css-prefix}-hand-stop-o:before,
639
+ .#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; }
640
+ .#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; }
641
+ .#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; }
642
+ .#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; }
643
+ .#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; }
644
+ .#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; }
645
+ .#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; }
646
+ .#{$fa-css-prefix}-registered:before { content: $fa-var-registered; }
647
+ .#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; }
648
+ .#{$fa-css-prefix}-gg:before { content: $fa-var-gg; }
649
+ .#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; }
650
+ .#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; }
651
+ .#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; }
652
+ .#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; }
653
+ .#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; }
654
+ .#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; }
655
+ .#{$fa-css-prefix}-safari:before { content: $fa-var-safari; }
656
+ .#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; }
657
+ .#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; }
658
+ .#{$fa-css-prefix}-opera:before { content: $fa-var-opera; }
659
+ .#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; }
660
+ .#{$fa-css-prefix}-tv:before,
661
+ .#{$fa-css-prefix}-television:before { content: $fa-var-television; }
662
+ .#{$fa-css-prefix}-contao:before { content: $fa-var-contao; }
663
+ .#{$fa-css-prefix}-500px:before { content: $fa-var-500px; }
664
+ .#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; }
665
+ .#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; }
666
+ .#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; }
667
+ .#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; }
668
+ .#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; }
669
+ .#{$fa-css-prefix}-industry:before { content: $fa-var-industry; }
670
+ .#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; }
671
+ .#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; }
672
+ .#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; }
673
+ .#{$fa-css-prefix}-map:before { content: $fa-var-map; }
674
+ .#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; }
675
+ .#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; }
676
+ .#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; }
677
+ .#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; }
678
+ .#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; }
679
+ .#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; }
680
+ .#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; }
681
+ .#{$fa-css-prefix}-edge:before { content: $fa-var-edge; }
682
+ .#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; }
683
+ .#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; }
684
+ .#{$fa-css-prefix}-modx:before { content: $fa-var-modx; }
685
+ .#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; }
686
+ .#{$fa-css-prefix}-usb:before { content: $fa-var-usb; }
687
+ .#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; }
688
+ .#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; }
689
+ .#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; }
690
+ .#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; }
691
+ .#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; }
692
+ .#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; }
693
+ .#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; }
694
+ .#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; }
695
+ .#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; }
696
+ .#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; }
697
+ .#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; }
698
+ .#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; }
699
+ .#{$fa-css-prefix}-percent:before { content: $fa-var-percent; }
700
+ .#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; }
701
+ .#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; }
702
+ .#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; }
703
+ .#{$fa-css-prefix}-envira:before { content: $fa-var-envira; }
704
+ .#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; }
705
+ .#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; }
706
+ .#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; }
707
+ .#{$fa-css-prefix}-blind:before { content: $fa-var-blind; }
708
+ .#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; }
709
+ .#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; }
710
+ .#{$fa-css-prefix}-braille:before { content: $fa-var-braille; }
711
+ .#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; }
712
+ .#{$fa-css-prefix}-asl-interpreting:before,
713
+ .#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; }
714
+ .#{$fa-css-prefix}-deafness:before,
715
+ .#{$fa-css-prefix}-hard-of-hearing:before,
716
+ .#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; }
717
+ .#{$fa-css-prefix}-glide:before { content: $fa-var-glide; }
718
+ .#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; }
719
+ .#{$fa-css-prefix}-signing:before,
720
+ .#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; }
721
+ .#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; }
722
+ .#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; }
723
+ .#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; }
724
+ .#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; }
725
+ .#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; }
726
+ .#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; }
727
+ .#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; }
728
+ .#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; }
729
+ .#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; }
730
+ .#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; }
731
+ .#{$fa-css-prefix}-google-plus-circle:before,
732
+ .#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; }
733
+ .#{$fa-css-prefix}-fa:before,
734
+ .#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; }
735
+ .#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; }
736
+ .#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; }
737
+ .#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; }
738
+ .#{$fa-css-prefix}-linode:before { content: $fa-var-linode; }
739
+ .#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; }
740
+ .#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; }
741
+ .#{$fa-css-prefix}-vcard:before,
742
+ .#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; }
743
+ .#{$fa-css-prefix}-vcard-o:before,
744
+ .#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; }
745
+ .#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; }
746
+ .#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; }
747
+ .#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; }
748
+ .#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; }
749
+ .#{$fa-css-prefix}-drivers-license:before,
750
+ .#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; }
751
+ .#{$fa-css-prefix}-drivers-license-o:before,
752
+ .#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; }
753
+ .#{$fa-css-prefix}-quora:before { content: $fa-var-quora; }
754
+ .#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; }
755
+ .#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; }
756
+ .#{$fa-css-prefix}-thermometer-4:before,
757
+ .#{$fa-css-prefix}-thermometer:before,
758
+ .#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; }
759
+ .#{$fa-css-prefix}-thermometer-3:before,
760
+ .#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; }
761
+ .#{$fa-css-prefix}-thermometer-2:before,
762
+ .#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; }
763
+ .#{$fa-css-prefix}-thermometer-1:before,
764
+ .#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; }
765
+ .#{$fa-css-prefix}-thermometer-0:before,
766
+ .#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; }
767
+ .#{$fa-css-prefix}-shower:before { content: $fa-var-shower; }
768
+ .#{$fa-css-prefix}-bathtub:before,
769
+ .#{$fa-css-prefix}-s15:before,
770
+ .#{$fa-css-prefix}-bath:before { content: $fa-var-bath; }
771
+ .#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; }
772
+ .#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; }
773
+ .#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; }
774
+ .#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; }
775
+ .#{$fa-css-prefix}-times-rectangle:before,
776
+ .#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; }
777
+ .#{$fa-css-prefix}-times-rectangle-o:before,
778
+ .#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; }
779
+ .#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; }
780
+ .#{$fa-css-prefix}-grav:before { content: $fa-var-grav; }
781
+ .#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; }
782
+ .#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; }
783
+ .#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; }
784
+ .#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; }
785
+ .#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; }
786
+ .#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; }
787
+ .#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; }
788
+ .#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; }
789
+ .#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; }