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,13 @@
1
+ // Icon Sizes
2
+ // -------------------------
3
+
4
+ /* makes the font 33% larger relative to the icon container */
5
+ .#{$fa-css-prefix}-lg {
6
+ font-size: (4em / 3);
7
+ line-height: (3em / 4);
8
+ vertical-align: -15%;
9
+ }
10
+ .#{$fa-css-prefix}-2x { font-size: 2em; }
11
+ .#{$fa-css-prefix}-3x { font-size: 3em; }
12
+ .#{$fa-css-prefix}-4x { font-size: 4em; }
13
+ .#{$fa-css-prefix}-5x { font-size: 5em; }
@@ -0,0 +1,19 @@
1
+ // List Icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-ul {
5
+ padding-left: 0;
6
+ margin-left: $fa-li-width;
7
+ list-style-type: none;
8
+ > li { position: relative; }
9
+ }
10
+ .#{$fa-css-prefix}-li {
11
+ position: absolute;
12
+ left: -$fa-li-width;
13
+ width: $fa-li-width;
14
+ top: (2em / 14);
15
+ text-align: center;
16
+ &.#{$fa-css-prefix}-lg {
17
+ left: -$fa-li-width + (4em / 14);
18
+ }
19
+ }
@@ -0,0 +1,60 @@
1
+ // Mixins
2
+ // --------------------------
3
+
4
+ @mixin fa-icon() {
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
+ }
13
+
14
+ @mixin fa-icon-rotate($degrees, $rotation) {
15
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16
+ -webkit-transform: rotate($degrees);
17
+ -ms-transform: rotate($degrees);
18
+ transform: rotate($degrees);
19
+ }
20
+
21
+ @mixin fa-icon-flip($horiz, $vert, $rotation) {
22
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23
+ -webkit-transform: scale($horiz, $vert);
24
+ -ms-transform: scale($horiz, $vert);
25
+ transform: scale($horiz, $vert);
26
+ }
27
+
28
+
29
+ // Only display content to screen readers. A la Bootstrap 4.
30
+ //
31
+ // See: http://a11yproject.com/posts/how-to-hide-content/
32
+
33
+ @mixin sr-only {
34
+ position: absolute;
35
+ width: 1px;
36
+ height: 1px;
37
+ padding: 0;
38
+ margin: -1px;
39
+ overflow: hidden;
40
+ clip: rect(0,0,0,0);
41
+ border: 0;
42
+ }
43
+
44
+ // Use in conjunction with .sr-only to only display content when it's focused.
45
+ //
46
+ // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47
+ //
48
+ // Credit: HTML5 Boilerplate
49
+
50
+ @mixin sr-only-focusable {
51
+ &:active,
52
+ &:focus {
53
+ position: static;
54
+ width: auto;
55
+ height: auto;
56
+ margin: 0;
57
+ overflow: visible;
58
+ clip: auto;
59
+ }
60
+ }
@@ -0,0 +1,10 @@
1
+ /* FONT PATH
2
+ * -------------------------- */
3
+
4
+ @font-face {
5
+ font-family: 'FontAwesome';
6
+ font-weight: normal;
7
+ font-style: normal;
8
+ src: url(font-path('hippo/fonts/fontawesome-webfont.woff2')) format('woff2'),
9
+ url(font-path('hippo/fonts/fontawesome-webfont.woff')) format('woff');
10
+ }
@@ -0,0 +1,20 @@
1
+ // Rotated & Flipped Icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5
+ .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6
+ .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7
+
8
+ .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9
+ .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10
+
11
+ // Hook for IE8-9
12
+ // -------------------------
13
+
14
+ :root .#{$fa-css-prefix}-rotate-90,
15
+ :root .#{$fa-css-prefix}-rotate-180,
16
+ :root .#{$fa-css-prefix}-rotate-270,
17
+ :root .#{$fa-css-prefix}-flip-horizontal,
18
+ :root .#{$fa-css-prefix}-flip-vertical {
19
+ filter: none;
20
+ }
@@ -0,0 +1,5 @@
1
+ // Screen Readers
2
+ // -------------------------
3
+
4
+ .sr-only { @include sr-only(); }
5
+ .sr-only-focusable { @include sr-only-focusable(); }
@@ -0,0 +1,20 @@
1
+ // Stacked Icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-stack {
5
+ position: relative;
6
+ display: inline-block;
7
+ width: 2em;
8
+ height: 2em;
9
+ line-height: 2em;
10
+ vertical-align: middle;
11
+ }
12
+ .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13
+ position: absolute;
14
+ left: 0;
15
+ width: 100%;
16
+ text-align: center;
17
+ }
18
+ .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19
+ .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20
+ .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
@@ -0,0 +1,800 @@
1
+ // Variables
2
+ // --------------------------
3
+
4
+ $fa-font-path: "../fonts" !default;
5
+ $fa-font-size-base: 14px !default;
6
+ $fa-line-height-base: 1 !default;
7
+ //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly
8
+ $fa-css-prefix: fa !default;
9
+ $fa-version: "4.7.0" !default;
10
+ $fa-border-color: #eee !default;
11
+ $fa-inverse: #fff !default;
12
+ $fa-li-width: (30em / 14) !default;
13
+
14
+ $fa-var-500px: "\f26e";
15
+ $fa-var-address-book: "\f2b9";
16
+ $fa-var-address-book-o: "\f2ba";
17
+ $fa-var-address-card: "\f2bb";
18
+ $fa-var-address-card-o: "\f2bc";
19
+ $fa-var-adjust: "\f042";
20
+ $fa-var-adn: "\f170";
21
+ $fa-var-align-center: "\f037";
22
+ $fa-var-align-justify: "\f039";
23
+ $fa-var-align-left: "\f036";
24
+ $fa-var-align-right: "\f038";
25
+ $fa-var-amazon: "\f270";
26
+ $fa-var-ambulance: "\f0f9";
27
+ $fa-var-american-sign-language-interpreting: "\f2a3";
28
+ $fa-var-anchor: "\f13d";
29
+ $fa-var-android: "\f17b";
30
+ $fa-var-angellist: "\f209";
31
+ $fa-var-angle-double-down: "\f103";
32
+ $fa-var-angle-double-left: "\f100";
33
+ $fa-var-angle-double-right: "\f101";
34
+ $fa-var-angle-double-up: "\f102";
35
+ $fa-var-angle-down: "\f107";
36
+ $fa-var-angle-left: "\f104";
37
+ $fa-var-angle-right: "\f105";
38
+ $fa-var-angle-up: "\f106";
39
+ $fa-var-apple: "\f179";
40
+ $fa-var-archive: "\f187";
41
+ $fa-var-area-chart: "\f1fe";
42
+ $fa-var-arrow-circle-down: "\f0ab";
43
+ $fa-var-arrow-circle-left: "\f0a8";
44
+ $fa-var-arrow-circle-o-down: "\f01a";
45
+ $fa-var-arrow-circle-o-left: "\f190";
46
+ $fa-var-arrow-circle-o-right: "\f18e";
47
+ $fa-var-arrow-circle-o-up: "\f01b";
48
+ $fa-var-arrow-circle-right: "\f0a9";
49
+ $fa-var-arrow-circle-up: "\f0aa";
50
+ $fa-var-arrow-down: "\f063";
51
+ $fa-var-arrow-left: "\f060";
52
+ $fa-var-arrow-right: "\f061";
53
+ $fa-var-arrow-up: "\f062";
54
+ $fa-var-arrows: "\f047";
55
+ $fa-var-arrows-alt: "\f0b2";
56
+ $fa-var-arrows-h: "\f07e";
57
+ $fa-var-arrows-v: "\f07d";
58
+ $fa-var-asl-interpreting: "\f2a3";
59
+ $fa-var-assistive-listening-systems: "\f2a2";
60
+ $fa-var-asterisk: "\f069";
61
+ $fa-var-at: "\f1fa";
62
+ $fa-var-audio-description: "\f29e";
63
+ $fa-var-automobile: "\f1b9";
64
+ $fa-var-backward: "\f04a";
65
+ $fa-var-balance-scale: "\f24e";
66
+ $fa-var-ban: "\f05e";
67
+ $fa-var-bandcamp: "\f2d5";
68
+ $fa-var-bank: "\f19c";
69
+ $fa-var-bar-chart: "\f080";
70
+ $fa-var-bar-chart-o: "\f080";
71
+ $fa-var-barcode: "\f02a";
72
+ $fa-var-bars: "\f0c9";
73
+ $fa-var-bath: "\f2cd";
74
+ $fa-var-bathtub: "\f2cd";
75
+ $fa-var-battery: "\f240";
76
+ $fa-var-battery-0: "\f244";
77
+ $fa-var-battery-1: "\f243";
78
+ $fa-var-battery-2: "\f242";
79
+ $fa-var-battery-3: "\f241";
80
+ $fa-var-battery-4: "\f240";
81
+ $fa-var-battery-empty: "\f244";
82
+ $fa-var-battery-full: "\f240";
83
+ $fa-var-battery-half: "\f242";
84
+ $fa-var-battery-quarter: "\f243";
85
+ $fa-var-battery-three-quarters: "\f241";
86
+ $fa-var-bed: "\f236";
87
+ $fa-var-beer: "\f0fc";
88
+ $fa-var-behance: "\f1b4";
89
+ $fa-var-behance-square: "\f1b5";
90
+ $fa-var-bell: "\f0f3";
91
+ $fa-var-bell-o: "\f0a2";
92
+ $fa-var-bell-slash: "\f1f6";
93
+ $fa-var-bell-slash-o: "\f1f7";
94
+ $fa-var-bicycle: "\f206";
95
+ $fa-var-binoculars: "\f1e5";
96
+ $fa-var-birthday-cake: "\f1fd";
97
+ $fa-var-bitbucket: "\f171";
98
+ $fa-var-bitbucket-square: "\f172";
99
+ $fa-var-bitcoin: "\f15a";
100
+ $fa-var-black-tie: "\f27e";
101
+ $fa-var-blind: "\f29d";
102
+ $fa-var-bluetooth: "\f293";
103
+ $fa-var-bluetooth-b: "\f294";
104
+ $fa-var-bold: "\f032";
105
+ $fa-var-bolt: "\f0e7";
106
+ $fa-var-bomb: "\f1e2";
107
+ $fa-var-book: "\f02d";
108
+ $fa-var-bookmark: "\f02e";
109
+ $fa-var-bookmark-o: "\f097";
110
+ $fa-var-braille: "\f2a1";
111
+ $fa-var-briefcase: "\f0b1";
112
+ $fa-var-btc: "\f15a";
113
+ $fa-var-bug: "\f188";
114
+ $fa-var-building: "\f1ad";
115
+ $fa-var-building-o: "\f0f7";
116
+ $fa-var-bullhorn: "\f0a1";
117
+ $fa-var-bullseye: "\f140";
118
+ $fa-var-bus: "\f207";
119
+ $fa-var-buysellads: "\f20d";
120
+ $fa-var-cab: "\f1ba";
121
+ $fa-var-calculator: "\f1ec";
122
+ $fa-var-calendar: "\f073";
123
+ $fa-var-calendar-check-o: "\f274";
124
+ $fa-var-calendar-minus-o: "\f272";
125
+ $fa-var-calendar-o: "\f133";
126
+ $fa-var-calendar-plus-o: "\f271";
127
+ $fa-var-calendar-times-o: "\f273";
128
+ $fa-var-camera: "\f030";
129
+ $fa-var-camera-retro: "\f083";
130
+ $fa-var-car: "\f1b9";
131
+ $fa-var-caret-down: "\f0d7";
132
+ $fa-var-caret-left: "\f0d9";
133
+ $fa-var-caret-right: "\f0da";
134
+ $fa-var-caret-square-o-down: "\f150";
135
+ $fa-var-caret-square-o-left: "\f191";
136
+ $fa-var-caret-square-o-right: "\f152";
137
+ $fa-var-caret-square-o-up: "\f151";
138
+ $fa-var-caret-up: "\f0d8";
139
+ $fa-var-cart-arrow-down: "\f218";
140
+ $fa-var-cart-plus: "\f217";
141
+ $fa-var-cc: "\f20a";
142
+ $fa-var-cc-amex: "\f1f3";
143
+ $fa-var-cc-diners-club: "\f24c";
144
+ $fa-var-cc-discover: "\f1f2";
145
+ $fa-var-cc-jcb: "\f24b";
146
+ $fa-var-cc-mastercard: "\f1f1";
147
+ $fa-var-cc-paypal: "\f1f4";
148
+ $fa-var-cc-stripe: "\f1f5";
149
+ $fa-var-cc-visa: "\f1f0";
150
+ $fa-var-certificate: "\f0a3";
151
+ $fa-var-chain: "\f0c1";
152
+ $fa-var-chain-broken: "\f127";
153
+ $fa-var-check: "\f00c";
154
+ $fa-var-check-circle: "\f058";
155
+ $fa-var-check-circle-o: "\f05d";
156
+ $fa-var-check-square: "\f14a";
157
+ $fa-var-check-square-o: "\f046";
158
+ $fa-var-chevron-circle-down: "\f13a";
159
+ $fa-var-chevron-circle-left: "\f137";
160
+ $fa-var-chevron-circle-right: "\f138";
161
+ $fa-var-chevron-circle-up: "\f139";
162
+ $fa-var-chevron-down: "\f078";
163
+ $fa-var-chevron-left: "\f053";
164
+ $fa-var-chevron-right: "\f054";
165
+ $fa-var-chevron-up: "\f077";
166
+ $fa-var-child: "\f1ae";
167
+ $fa-var-chrome: "\f268";
168
+ $fa-var-circle: "\f111";
169
+ $fa-var-circle-o: "\f10c";
170
+ $fa-var-circle-o-notch: "\f1ce";
171
+ $fa-var-circle-thin: "\f1db";
172
+ $fa-var-clipboard: "\f0ea";
173
+ $fa-var-clock-o: "\f017";
174
+ $fa-var-clone: "\f24d";
175
+ $fa-var-close: "\f00d";
176
+ $fa-var-cloud: "\f0c2";
177
+ $fa-var-cloud-download: "\f0ed";
178
+ $fa-var-cloud-upload: "\f0ee";
179
+ $fa-var-cny: "\f157";
180
+ $fa-var-code: "\f121";
181
+ $fa-var-code-fork: "\f126";
182
+ $fa-var-codepen: "\f1cb";
183
+ $fa-var-codiepie: "\f284";
184
+ $fa-var-coffee: "\f0f4";
185
+ $fa-var-cog: "\f013";
186
+ $fa-var-cogs: "\f085";
187
+ $fa-var-columns: "\f0db";
188
+ $fa-var-comment: "\f075";
189
+ $fa-var-comment-o: "\f0e5";
190
+ $fa-var-commenting: "\f27a";
191
+ $fa-var-commenting-o: "\f27b";
192
+ $fa-var-comments: "\f086";
193
+ $fa-var-comments-o: "\f0e6";
194
+ $fa-var-compass: "\f14e";
195
+ $fa-var-compress: "\f066";
196
+ $fa-var-connectdevelop: "\f20e";
197
+ $fa-var-contao: "\f26d";
198
+ $fa-var-copy: "\f0c5";
199
+ $fa-var-copyright: "\f1f9";
200
+ $fa-var-creative-commons: "\f25e";
201
+ $fa-var-credit-card: "\f09d";
202
+ $fa-var-credit-card-alt: "\f283";
203
+ $fa-var-crop: "\f125";
204
+ $fa-var-crosshairs: "\f05b";
205
+ $fa-var-css3: "\f13c";
206
+ $fa-var-cube: "\f1b2";
207
+ $fa-var-cubes: "\f1b3";
208
+ $fa-var-cut: "\f0c4";
209
+ $fa-var-cutlery: "\f0f5";
210
+ $fa-var-dashboard: "\f0e4";
211
+ $fa-var-dashcube: "\f210";
212
+ $fa-var-database: "\f1c0";
213
+ $fa-var-deaf: "\f2a4";
214
+ $fa-var-deafness: "\f2a4";
215
+ $fa-var-dedent: "\f03b";
216
+ $fa-var-delicious: "\f1a5";
217
+ $fa-var-desktop: "\f108";
218
+ $fa-var-deviantart: "\f1bd";
219
+ $fa-var-diamond: "\f219";
220
+ $fa-var-digg: "\f1a6";
221
+ $fa-var-dollar: "\f155";
222
+ $fa-var-dot-circle-o: "\f192";
223
+ $fa-var-download: "\f019";
224
+ $fa-var-dribbble: "\f17d";
225
+ $fa-var-drivers-license: "\f2c2";
226
+ $fa-var-drivers-license-o: "\f2c3";
227
+ $fa-var-dropbox: "\f16b";
228
+ $fa-var-drupal: "\f1a9";
229
+ $fa-var-edge: "\f282";
230
+ $fa-var-edit: "\f044";
231
+ $fa-var-eercast: "\f2da";
232
+ $fa-var-eject: "\f052";
233
+ $fa-var-ellipsis-h: "\f141";
234
+ $fa-var-ellipsis-v: "\f142";
235
+ $fa-var-empire: "\f1d1";
236
+ $fa-var-envelope: "\f0e0";
237
+ $fa-var-envelope-o: "\f003";
238
+ $fa-var-envelope-open: "\f2b6";
239
+ $fa-var-envelope-open-o: "\f2b7";
240
+ $fa-var-envelope-square: "\f199";
241
+ $fa-var-envira: "\f299";
242
+ $fa-var-eraser: "\f12d";
243
+ $fa-var-etsy: "\f2d7";
244
+ $fa-var-eur: "\f153";
245
+ $fa-var-euro: "\f153";
246
+ $fa-var-exchange: "\f0ec";
247
+ $fa-var-exclamation: "\f12a";
248
+ $fa-var-exclamation-circle: "\f06a";
249
+ $fa-var-exclamation-triangle: "\f071";
250
+ $fa-var-expand: "\f065";
251
+ $fa-var-expeditedssl: "\f23e";
252
+ $fa-var-external-link: "\f08e";
253
+ $fa-var-external-link-square: "\f14c";
254
+ $fa-var-eye: "\f06e";
255
+ $fa-var-eye-slash: "\f070";
256
+ $fa-var-eyedropper: "\f1fb";
257
+ $fa-var-fa: "\f2b4";
258
+ $fa-var-facebook: "\f09a";
259
+ $fa-var-facebook-f: "\f09a";
260
+ $fa-var-facebook-official: "\f230";
261
+ $fa-var-facebook-square: "\f082";
262
+ $fa-var-fast-backward: "\f049";
263
+ $fa-var-fast-forward: "\f050";
264
+ $fa-var-fax: "\f1ac";
265
+ $fa-var-feed: "\f09e";
266
+ $fa-var-female: "\f182";
267
+ $fa-var-fighter-jet: "\f0fb";
268
+ $fa-var-file: "\f15b";
269
+ $fa-var-file-archive-o: "\f1c6";
270
+ $fa-var-file-audio-o: "\f1c7";
271
+ $fa-var-file-code-o: "\f1c9";
272
+ $fa-var-file-excel-o: "\f1c3";
273
+ $fa-var-file-image-o: "\f1c5";
274
+ $fa-var-file-movie-o: "\f1c8";
275
+ $fa-var-file-o: "\f016";
276
+ $fa-var-file-pdf-o: "\f1c1";
277
+ $fa-var-file-photo-o: "\f1c5";
278
+ $fa-var-file-picture-o: "\f1c5";
279
+ $fa-var-file-powerpoint-o: "\f1c4";
280
+ $fa-var-file-sound-o: "\f1c7";
281
+ $fa-var-file-text: "\f15c";
282
+ $fa-var-file-text-o: "\f0f6";
283
+ $fa-var-file-video-o: "\f1c8";
284
+ $fa-var-file-word-o: "\f1c2";
285
+ $fa-var-file-zip-o: "\f1c6";
286
+ $fa-var-files-o: "\f0c5";
287
+ $fa-var-film: "\f008";
288
+ $fa-var-filter: "\f0b0";
289
+ $fa-var-fire: "\f06d";
290
+ $fa-var-fire-extinguisher: "\f134";
291
+ $fa-var-firefox: "\f269";
292
+ $fa-var-first-order: "\f2b0";
293
+ $fa-var-flag: "\f024";
294
+ $fa-var-flag-checkered: "\f11e";
295
+ $fa-var-flag-o: "\f11d";
296
+ $fa-var-flash: "\f0e7";
297
+ $fa-var-flask: "\f0c3";
298
+ $fa-var-flickr: "\f16e";
299
+ $fa-var-floppy-o: "\f0c7";
300
+ $fa-var-folder: "\f07b";
301
+ $fa-var-folder-o: "\f114";
302
+ $fa-var-folder-open: "\f07c";
303
+ $fa-var-folder-open-o: "\f115";
304
+ $fa-var-font: "\f031";
305
+ $fa-var-font-awesome: "\f2b4";
306
+ $fa-var-fonticons: "\f280";
307
+ $fa-var-fort-awesome: "\f286";
308
+ $fa-var-forumbee: "\f211";
309
+ $fa-var-forward: "\f04e";
310
+ $fa-var-foursquare: "\f180";
311
+ $fa-var-free-code-camp: "\f2c5";
312
+ $fa-var-frown-o: "\f119";
313
+ $fa-var-futbol-o: "\f1e3";
314
+ $fa-var-gamepad: "\f11b";
315
+ $fa-var-gavel: "\f0e3";
316
+ $fa-var-gbp: "\f154";
317
+ $fa-var-ge: "\f1d1";
318
+ $fa-var-gear: "\f013";
319
+ $fa-var-gears: "\f085";
320
+ $fa-var-genderless: "\f22d";
321
+ $fa-var-get-pocket: "\f265";
322
+ $fa-var-gg: "\f260";
323
+ $fa-var-gg-circle: "\f261";
324
+ $fa-var-gift: "\f06b";
325
+ $fa-var-git: "\f1d3";
326
+ $fa-var-git-square: "\f1d2";
327
+ $fa-var-github: "\f09b";
328
+ $fa-var-github-alt: "\f113";
329
+ $fa-var-github-square: "\f092";
330
+ $fa-var-gitlab: "\f296";
331
+ $fa-var-gittip: "\f184";
332
+ $fa-var-glass: "\f000";
333
+ $fa-var-glide: "\f2a5";
334
+ $fa-var-glide-g: "\f2a6";
335
+ $fa-var-globe: "\f0ac";
336
+ $fa-var-google: "\f1a0";
337
+ $fa-var-google-plus: "\f0d5";
338
+ $fa-var-google-plus-circle: "\f2b3";
339
+ $fa-var-google-plus-official: "\f2b3";
340
+ $fa-var-google-plus-square: "\f0d4";
341
+ $fa-var-google-wallet: "\f1ee";
342
+ $fa-var-graduation-cap: "\f19d";
343
+ $fa-var-gratipay: "\f184";
344
+ $fa-var-grav: "\f2d6";
345
+ $fa-var-group: "\f0c0";
346
+ $fa-var-h-square: "\f0fd";
347
+ $fa-var-hacker-news: "\f1d4";
348
+ $fa-var-hand-grab-o: "\f255";
349
+ $fa-var-hand-lizard-o: "\f258";
350
+ $fa-var-hand-o-down: "\f0a7";
351
+ $fa-var-hand-o-left: "\f0a5";
352
+ $fa-var-hand-o-right: "\f0a4";
353
+ $fa-var-hand-o-up: "\f0a6";
354
+ $fa-var-hand-paper-o: "\f256";
355
+ $fa-var-hand-peace-o: "\f25b";
356
+ $fa-var-hand-pointer-o: "\f25a";
357
+ $fa-var-hand-rock-o: "\f255";
358
+ $fa-var-hand-scissors-o: "\f257";
359
+ $fa-var-hand-spock-o: "\f259";
360
+ $fa-var-hand-stop-o: "\f256";
361
+ $fa-var-handshake-o: "\f2b5";
362
+ $fa-var-hard-of-hearing: "\f2a4";
363
+ $fa-var-hashtag: "\f292";
364
+ $fa-var-hdd-o: "\f0a0";
365
+ $fa-var-header: "\f1dc";
366
+ $fa-var-headphones: "\f025";
367
+ $fa-var-heart: "\f004";
368
+ $fa-var-heart-o: "\f08a";
369
+ $fa-var-heartbeat: "\f21e";
370
+ $fa-var-history: "\f1da";
371
+ $fa-var-home: "\f015";
372
+ $fa-var-hospital-o: "\f0f8";
373
+ $fa-var-hotel: "\f236";
374
+ $fa-var-hourglass: "\f254";
375
+ $fa-var-hourglass-1: "\f251";
376
+ $fa-var-hourglass-2: "\f252";
377
+ $fa-var-hourglass-3: "\f253";
378
+ $fa-var-hourglass-end: "\f253";
379
+ $fa-var-hourglass-half: "\f252";
380
+ $fa-var-hourglass-o: "\f250";
381
+ $fa-var-hourglass-start: "\f251";
382
+ $fa-var-houzz: "\f27c";
383
+ $fa-var-html5: "\f13b";
384
+ $fa-var-i-cursor: "\f246";
385
+ $fa-var-id-badge: "\f2c1";
386
+ $fa-var-id-card: "\f2c2";
387
+ $fa-var-id-card-o: "\f2c3";
388
+ $fa-var-ils: "\f20b";
389
+ $fa-var-image: "\f03e";
390
+ $fa-var-imdb: "\f2d8";
391
+ $fa-var-inbox: "\f01c";
392
+ $fa-var-indent: "\f03c";
393
+ $fa-var-industry: "\f275";
394
+ $fa-var-info: "\f129";
395
+ $fa-var-info-circle: "\f05a";
396
+ $fa-var-inr: "\f156";
397
+ $fa-var-instagram: "\f16d";
398
+ $fa-var-institution: "\f19c";
399
+ $fa-var-internet-explorer: "\f26b";
400
+ $fa-var-intersex: "\f224";
401
+ $fa-var-ioxhost: "\f208";
402
+ $fa-var-italic: "\f033";
403
+ $fa-var-joomla: "\f1aa";
404
+ $fa-var-jpy: "\f157";
405
+ $fa-var-jsfiddle: "\f1cc";
406
+ $fa-var-key: "\f084";
407
+ $fa-var-keyboard-o: "\f11c";
408
+ $fa-var-krw: "\f159";
409
+ $fa-var-language: "\f1ab";
410
+ $fa-var-laptop: "\f109";
411
+ $fa-var-lastfm: "\f202";
412
+ $fa-var-lastfm-square: "\f203";
413
+ $fa-var-leaf: "\f06c";
414
+ $fa-var-leanpub: "\f212";
415
+ $fa-var-legal: "\f0e3";
416
+ $fa-var-lemon-o: "\f094";
417
+ $fa-var-level-down: "\f149";
418
+ $fa-var-level-up: "\f148";
419
+ $fa-var-life-bouy: "\f1cd";
420
+ $fa-var-life-buoy: "\f1cd";
421
+ $fa-var-life-ring: "\f1cd";
422
+ $fa-var-life-saver: "\f1cd";
423
+ $fa-var-lightbulb-o: "\f0eb";
424
+ $fa-var-line-chart: "\f201";
425
+ $fa-var-link: "\f0c1";
426
+ $fa-var-linkedin: "\f0e1";
427
+ $fa-var-linkedin-square: "\f08c";
428
+ $fa-var-linode: "\f2b8";
429
+ $fa-var-linux: "\f17c";
430
+ $fa-var-list: "\f03a";
431
+ $fa-var-list-alt: "\f022";
432
+ $fa-var-list-ol: "\f0cb";
433
+ $fa-var-list-ul: "\f0ca";
434
+ $fa-var-location-arrow: "\f124";
435
+ $fa-var-lock: "\f023";
436
+ $fa-var-long-arrow-down: "\f175";
437
+ $fa-var-long-arrow-left: "\f177";
438
+ $fa-var-long-arrow-right: "\f178";
439
+ $fa-var-long-arrow-up: "\f176";
440
+ $fa-var-low-vision: "\f2a8";
441
+ $fa-var-magic: "\f0d0";
442
+ $fa-var-magnet: "\f076";
443
+ $fa-var-mail-forward: "\f064";
444
+ $fa-var-mail-reply: "\f112";
445
+ $fa-var-mail-reply-all: "\f122";
446
+ $fa-var-male: "\f183";
447
+ $fa-var-map: "\f279";
448
+ $fa-var-map-marker: "\f041";
449
+ $fa-var-map-o: "\f278";
450
+ $fa-var-map-pin: "\f276";
451
+ $fa-var-map-signs: "\f277";
452
+ $fa-var-mars: "\f222";
453
+ $fa-var-mars-double: "\f227";
454
+ $fa-var-mars-stroke: "\f229";
455
+ $fa-var-mars-stroke-h: "\f22b";
456
+ $fa-var-mars-stroke-v: "\f22a";
457
+ $fa-var-maxcdn: "\f136";
458
+ $fa-var-meanpath: "\f20c";
459
+ $fa-var-medium: "\f23a";
460
+ $fa-var-medkit: "\f0fa";
461
+ $fa-var-meetup: "\f2e0";
462
+ $fa-var-meh-o: "\f11a";
463
+ $fa-var-mercury: "\f223";
464
+ $fa-var-microchip: "\f2db";
465
+ $fa-var-microphone: "\f130";
466
+ $fa-var-microphone-slash: "\f131";
467
+ $fa-var-minus: "\f068";
468
+ $fa-var-minus-circle: "\f056";
469
+ $fa-var-minus-square: "\f146";
470
+ $fa-var-minus-square-o: "\f147";
471
+ $fa-var-mixcloud: "\f289";
472
+ $fa-var-mobile: "\f10b";
473
+ $fa-var-mobile-phone: "\f10b";
474
+ $fa-var-modx: "\f285";
475
+ $fa-var-money: "\f0d6";
476
+ $fa-var-moon-o: "\f186";
477
+ $fa-var-mortar-board: "\f19d";
478
+ $fa-var-motorcycle: "\f21c";
479
+ $fa-var-mouse-pointer: "\f245";
480
+ $fa-var-music: "\f001";
481
+ $fa-var-navicon: "\f0c9";
482
+ $fa-var-neuter: "\f22c";
483
+ $fa-var-newspaper-o: "\f1ea";
484
+ $fa-var-object-group: "\f247";
485
+ $fa-var-object-ungroup: "\f248";
486
+ $fa-var-odnoklassniki: "\f263";
487
+ $fa-var-odnoklassniki-square: "\f264";
488
+ $fa-var-opencart: "\f23d";
489
+ $fa-var-openid: "\f19b";
490
+ $fa-var-opera: "\f26a";
491
+ $fa-var-optin-monster: "\f23c";
492
+ $fa-var-outdent: "\f03b";
493
+ $fa-var-pagelines: "\f18c";
494
+ $fa-var-paint-brush: "\f1fc";
495
+ $fa-var-paper-plane: "\f1d8";
496
+ $fa-var-paper-plane-o: "\f1d9";
497
+ $fa-var-paperclip: "\f0c6";
498
+ $fa-var-paragraph: "\f1dd";
499
+ $fa-var-paste: "\f0ea";
500
+ $fa-var-pause: "\f04c";
501
+ $fa-var-pause-circle: "\f28b";
502
+ $fa-var-pause-circle-o: "\f28c";
503
+ $fa-var-paw: "\f1b0";
504
+ $fa-var-paypal: "\f1ed";
505
+ $fa-var-pencil: "\f040";
506
+ $fa-var-pencil-square: "\f14b";
507
+ $fa-var-pencil-square-o: "\f044";
508
+ $fa-var-percent: "\f295";
509
+ $fa-var-phone: "\f095";
510
+ $fa-var-phone-square: "\f098";
511
+ $fa-var-photo: "\f03e";
512
+ $fa-var-picture-o: "\f03e";
513
+ $fa-var-pie-chart: "\f200";
514
+ $fa-var-pied-piper: "\f2ae";
515
+ $fa-var-pied-piper-alt: "\f1a8";
516
+ $fa-var-pied-piper-pp: "\f1a7";
517
+ $fa-var-pinterest: "\f0d2";
518
+ $fa-var-pinterest-p: "\f231";
519
+ $fa-var-pinterest-square: "\f0d3";
520
+ $fa-var-plane: "\f072";
521
+ $fa-var-play: "\f04b";
522
+ $fa-var-play-circle: "\f144";
523
+ $fa-var-play-circle-o: "\f01d";
524
+ $fa-var-plug: "\f1e6";
525
+ $fa-var-plus: "\f067";
526
+ $fa-var-plus-circle: "\f055";
527
+ $fa-var-plus-square: "\f0fe";
528
+ $fa-var-plus-square-o: "\f196";
529
+ $fa-var-podcast: "\f2ce";
530
+ $fa-var-power-off: "\f011";
531
+ $fa-var-print: "\f02f";
532
+ $fa-var-product-hunt: "\f288";
533
+ $fa-var-puzzle-piece: "\f12e";
534
+ $fa-var-qq: "\f1d6";
535
+ $fa-var-qrcode: "\f029";
536
+ $fa-var-question: "\f128";
537
+ $fa-var-question-circle: "\f059";
538
+ $fa-var-question-circle-o: "\f29c";
539
+ $fa-var-quora: "\f2c4";
540
+ $fa-var-quote-left: "\f10d";
541
+ $fa-var-quote-right: "\f10e";
542
+ $fa-var-ra: "\f1d0";
543
+ $fa-var-random: "\f074";
544
+ $fa-var-ravelry: "\f2d9";
545
+ $fa-var-rebel: "\f1d0";
546
+ $fa-var-recycle: "\f1b8";
547
+ $fa-var-reddit: "\f1a1";
548
+ $fa-var-reddit-alien: "\f281";
549
+ $fa-var-reddit-square: "\f1a2";
550
+ $fa-var-refresh: "\f021";
551
+ $fa-var-registered: "\f25d";
552
+ $fa-var-remove: "\f00d";
553
+ $fa-var-renren: "\f18b";
554
+ $fa-var-reorder: "\f0c9";
555
+ $fa-var-repeat: "\f01e";
556
+ $fa-var-reply: "\f112";
557
+ $fa-var-reply-all: "\f122";
558
+ $fa-var-resistance: "\f1d0";
559
+ $fa-var-retweet: "\f079";
560
+ $fa-var-rmb: "\f157";
561
+ $fa-var-road: "\f018";
562
+ $fa-var-rocket: "\f135";
563
+ $fa-var-rotate-left: "\f0e2";
564
+ $fa-var-rotate-right: "\f01e";
565
+ $fa-var-rouble: "\f158";
566
+ $fa-var-rss: "\f09e";
567
+ $fa-var-rss-square: "\f143";
568
+ $fa-var-rub: "\f158";
569
+ $fa-var-ruble: "\f158";
570
+ $fa-var-rupee: "\f156";
571
+ $fa-var-s15: "\f2cd";
572
+ $fa-var-safari: "\f267";
573
+ $fa-var-save: "\f0c7";
574
+ $fa-var-scissors: "\f0c4";
575
+ $fa-var-scribd: "\f28a";
576
+ $fa-var-search: "\f002";
577
+ $fa-var-search-minus: "\f010";
578
+ $fa-var-search-plus: "\f00e";
579
+ $fa-var-sellsy: "\f213";
580
+ $fa-var-send: "\f1d8";
581
+ $fa-var-send-o: "\f1d9";
582
+ $fa-var-server: "\f233";
583
+ $fa-var-share: "\f064";
584
+ $fa-var-share-alt: "\f1e0";
585
+ $fa-var-share-alt-square: "\f1e1";
586
+ $fa-var-share-square: "\f14d";
587
+ $fa-var-share-square-o: "\f045";
588
+ $fa-var-shekel: "\f20b";
589
+ $fa-var-sheqel: "\f20b";
590
+ $fa-var-shield: "\f132";
591
+ $fa-var-ship: "\f21a";
592
+ $fa-var-shirtsinbulk: "\f214";
593
+ $fa-var-shopping-bag: "\f290";
594
+ $fa-var-shopping-basket: "\f291";
595
+ $fa-var-shopping-cart: "\f07a";
596
+ $fa-var-shower: "\f2cc";
597
+ $fa-var-sign-in: "\f090";
598
+ $fa-var-sign-language: "\f2a7";
599
+ $fa-var-sign-out: "\f08b";
600
+ $fa-var-signal: "\f012";
601
+ $fa-var-signing: "\f2a7";
602
+ $fa-var-simplybuilt: "\f215";
603
+ $fa-var-sitemap: "\f0e8";
604
+ $fa-var-skyatlas: "\f216";
605
+ $fa-var-skype: "\f17e";
606
+ $fa-var-slack: "\f198";
607
+ $fa-var-sliders: "\f1de";
608
+ $fa-var-slideshare: "\f1e7";
609
+ $fa-var-smile-o: "\f118";
610
+ $fa-var-snapchat: "\f2ab";
611
+ $fa-var-snapchat-ghost: "\f2ac";
612
+ $fa-var-snapchat-square: "\f2ad";
613
+ $fa-var-snowflake-o: "\f2dc";
614
+ $fa-var-soccer-ball-o: "\f1e3";
615
+ $fa-var-sort: "\f0dc";
616
+ $fa-var-sort-alpha-asc: "\f15d";
617
+ $fa-var-sort-alpha-desc: "\f15e";
618
+ $fa-var-sort-amount-asc: "\f160";
619
+ $fa-var-sort-amount-desc: "\f161";
620
+ $fa-var-sort-asc: "\f0de";
621
+ $fa-var-sort-desc: "\f0dd";
622
+ $fa-var-sort-down: "\f0dd";
623
+ $fa-var-sort-numeric-asc: "\f162";
624
+ $fa-var-sort-numeric-desc: "\f163";
625
+ $fa-var-sort-up: "\f0de";
626
+ $fa-var-soundcloud: "\f1be";
627
+ $fa-var-space-shuttle: "\f197";
628
+ $fa-var-spinner: "\f110";
629
+ $fa-var-spoon: "\f1b1";
630
+ $fa-var-spotify: "\f1bc";
631
+ $fa-var-square: "\f0c8";
632
+ $fa-var-square-o: "\f096";
633
+ $fa-var-stack-exchange: "\f18d";
634
+ $fa-var-stack-overflow: "\f16c";
635
+ $fa-var-star: "\f005";
636
+ $fa-var-star-half: "\f089";
637
+ $fa-var-star-half-empty: "\f123";
638
+ $fa-var-star-half-full: "\f123";
639
+ $fa-var-star-half-o: "\f123";
640
+ $fa-var-star-o: "\f006";
641
+ $fa-var-steam: "\f1b6";
642
+ $fa-var-steam-square: "\f1b7";
643
+ $fa-var-step-backward: "\f048";
644
+ $fa-var-step-forward: "\f051";
645
+ $fa-var-stethoscope: "\f0f1";
646
+ $fa-var-sticky-note: "\f249";
647
+ $fa-var-sticky-note-o: "\f24a";
648
+ $fa-var-stop: "\f04d";
649
+ $fa-var-stop-circle: "\f28d";
650
+ $fa-var-stop-circle-o: "\f28e";
651
+ $fa-var-street-view: "\f21d";
652
+ $fa-var-strikethrough: "\f0cc";
653
+ $fa-var-stumbleupon: "\f1a4";
654
+ $fa-var-stumbleupon-circle: "\f1a3";
655
+ $fa-var-subscript: "\f12c";
656
+ $fa-var-subway: "\f239";
657
+ $fa-var-suitcase: "\f0f2";
658
+ $fa-var-sun-o: "\f185";
659
+ $fa-var-superpowers: "\f2dd";
660
+ $fa-var-superscript: "\f12b";
661
+ $fa-var-support: "\f1cd";
662
+ $fa-var-table: "\f0ce";
663
+ $fa-var-tablet: "\f10a";
664
+ $fa-var-tachometer: "\f0e4";
665
+ $fa-var-tag: "\f02b";
666
+ $fa-var-tags: "\f02c";
667
+ $fa-var-tasks: "\f0ae";
668
+ $fa-var-taxi: "\f1ba";
669
+ $fa-var-telegram: "\f2c6";
670
+ $fa-var-television: "\f26c";
671
+ $fa-var-tencent-weibo: "\f1d5";
672
+ $fa-var-terminal: "\f120";
673
+ $fa-var-text-height: "\f034";
674
+ $fa-var-text-width: "\f035";
675
+ $fa-var-th: "\f00a";
676
+ $fa-var-th-large: "\f009";
677
+ $fa-var-th-list: "\f00b";
678
+ $fa-var-themeisle: "\f2b2";
679
+ $fa-var-thermometer: "\f2c7";
680
+ $fa-var-thermometer-0: "\f2cb";
681
+ $fa-var-thermometer-1: "\f2ca";
682
+ $fa-var-thermometer-2: "\f2c9";
683
+ $fa-var-thermometer-3: "\f2c8";
684
+ $fa-var-thermometer-4: "\f2c7";
685
+ $fa-var-thermometer-empty: "\f2cb";
686
+ $fa-var-thermometer-full: "\f2c7";
687
+ $fa-var-thermometer-half: "\f2c9";
688
+ $fa-var-thermometer-quarter: "\f2ca";
689
+ $fa-var-thermometer-three-quarters: "\f2c8";
690
+ $fa-var-thumb-tack: "\f08d";
691
+ $fa-var-thumbs-down: "\f165";
692
+ $fa-var-thumbs-o-down: "\f088";
693
+ $fa-var-thumbs-o-up: "\f087";
694
+ $fa-var-thumbs-up: "\f164";
695
+ $fa-var-ticket: "\f145";
696
+ $fa-var-times: "\f00d";
697
+ $fa-var-times-circle: "\f057";
698
+ $fa-var-times-circle-o: "\f05c";
699
+ $fa-var-times-rectangle: "\f2d3";
700
+ $fa-var-times-rectangle-o: "\f2d4";
701
+ $fa-var-tint: "\f043";
702
+ $fa-var-toggle-down: "\f150";
703
+ $fa-var-toggle-left: "\f191";
704
+ $fa-var-toggle-off: "\f204";
705
+ $fa-var-toggle-on: "\f205";
706
+ $fa-var-toggle-right: "\f152";
707
+ $fa-var-toggle-up: "\f151";
708
+ $fa-var-trademark: "\f25c";
709
+ $fa-var-train: "\f238";
710
+ $fa-var-transgender: "\f224";
711
+ $fa-var-transgender-alt: "\f225";
712
+ $fa-var-trash: "\f1f8";
713
+ $fa-var-trash-o: "\f014";
714
+ $fa-var-tree: "\f1bb";
715
+ $fa-var-trello: "\f181";
716
+ $fa-var-tripadvisor: "\f262";
717
+ $fa-var-trophy: "\f091";
718
+ $fa-var-truck: "\f0d1";
719
+ $fa-var-try: "\f195";
720
+ $fa-var-tty: "\f1e4";
721
+ $fa-var-tumblr: "\f173";
722
+ $fa-var-tumblr-square: "\f174";
723
+ $fa-var-turkish-lira: "\f195";
724
+ $fa-var-tv: "\f26c";
725
+ $fa-var-twitch: "\f1e8";
726
+ $fa-var-twitter: "\f099";
727
+ $fa-var-twitter-square: "\f081";
728
+ $fa-var-umbrella: "\f0e9";
729
+ $fa-var-underline: "\f0cd";
730
+ $fa-var-undo: "\f0e2";
731
+ $fa-var-universal-access: "\f29a";
732
+ $fa-var-university: "\f19c";
733
+ $fa-var-unlink: "\f127";
734
+ $fa-var-unlock: "\f09c";
735
+ $fa-var-unlock-alt: "\f13e";
736
+ $fa-var-unsorted: "\f0dc";
737
+ $fa-var-upload: "\f093";
738
+ $fa-var-usb: "\f287";
739
+ $fa-var-usd: "\f155";
740
+ $fa-var-user: "\f007";
741
+ $fa-var-user-circle: "\f2bd";
742
+ $fa-var-user-circle-o: "\f2be";
743
+ $fa-var-user-md: "\f0f0";
744
+ $fa-var-user-o: "\f2c0";
745
+ $fa-var-user-plus: "\f234";
746
+ $fa-var-user-secret: "\f21b";
747
+ $fa-var-user-times: "\f235";
748
+ $fa-var-users: "\f0c0";
749
+ $fa-var-vcard: "\f2bb";
750
+ $fa-var-vcard-o: "\f2bc";
751
+ $fa-var-venus: "\f221";
752
+ $fa-var-venus-double: "\f226";
753
+ $fa-var-venus-mars: "\f228";
754
+ $fa-var-viacoin: "\f237";
755
+ $fa-var-viadeo: "\f2a9";
756
+ $fa-var-viadeo-square: "\f2aa";
757
+ $fa-var-video-camera: "\f03d";
758
+ $fa-var-vimeo: "\f27d";
759
+ $fa-var-vimeo-square: "\f194";
760
+ $fa-var-vine: "\f1ca";
761
+ $fa-var-vk: "\f189";
762
+ $fa-var-volume-control-phone: "\f2a0";
763
+ $fa-var-volume-down: "\f027";
764
+ $fa-var-volume-off: "\f026";
765
+ $fa-var-volume-up: "\f028";
766
+ $fa-var-warning: "\f071";
767
+ $fa-var-wechat: "\f1d7";
768
+ $fa-var-weibo: "\f18a";
769
+ $fa-var-weixin: "\f1d7";
770
+ $fa-var-whatsapp: "\f232";
771
+ $fa-var-wheelchair: "\f193";
772
+ $fa-var-wheelchair-alt: "\f29b";
773
+ $fa-var-wifi: "\f1eb";
774
+ $fa-var-wikipedia-w: "\f266";
775
+ $fa-var-window-close: "\f2d3";
776
+ $fa-var-window-close-o: "\f2d4";
777
+ $fa-var-window-maximize: "\f2d0";
778
+ $fa-var-window-minimize: "\f2d1";
779
+ $fa-var-window-restore: "\f2d2";
780
+ $fa-var-windows: "\f17a";
781
+ $fa-var-won: "\f159";
782
+ $fa-var-wordpress: "\f19a";
783
+ $fa-var-wpbeginner: "\f297";
784
+ $fa-var-wpexplorer: "\f2de";
785
+ $fa-var-wpforms: "\f298";
786
+ $fa-var-wrench: "\f0ad";
787
+ $fa-var-xing: "\f168";
788
+ $fa-var-xing-square: "\f169";
789
+ $fa-var-y-combinator: "\f23b";
790
+ $fa-var-y-combinator-square: "\f1d4";
791
+ $fa-var-yahoo: "\f19e";
792
+ $fa-var-yc: "\f23b";
793
+ $fa-var-yc-square: "\f1d4";
794
+ $fa-var-yelp: "\f1e9";
795
+ $fa-var-yen: "\f157";
796
+ $fa-var-yoast: "\f2b1";
797
+ $fa-var-youtube: "\f167";
798
+ $fa-var-youtube-play: "\f16a";
799
+ $fa-var-youtube-square: "\f166";
800
+