├── .nvmrc
├── cms
├── log
│ └── .keep
├── tmp
│ └── .keep
├── vendor
│ └── .keep
├── test
│ ├── fixtures
│ │ ├── .keep
│ │ ├── files
│ │ │ └── .keep
│ │ ├── projects.yml
│ │ └── users.yml
│ ├── mailers
│ │ └── .keep
│ ├── models
│ │ ├── .keep
│ │ ├── user_test.rb
│ │ └── project_test.rb
│ ├── controllers
│ │ └── .keep
│ ├── integration
│ │ └── .keep
│ └── test_helper.rb
├── .ruby-gemset
├── .ruby-version
├── app
│ ├── graph
│ │ ├── mutations
│ │ │ └── .gitkeep
│ │ ├── queries
│ │ │ └── .gitkeep
│ │ ├── app_schema.rb
│ │ ├── types
│ │ │ ├── json_type.rb
│ │ │ ├── project_type.rb
│ │ │ ├── user_type.rb
│ │ │ ├── auth_user_type.rb
│ │ │ └── root_query_type.rb
│ │ └── concerns
│ │ │ └── field_generator.rb
│ ├── models
│ │ ├── concerns
│ │ │ └── .keep
│ │ ├── project.rb
│ │ ├── application_record.rb
│ │ └── user.rb
│ ├── controllers
│ │ ├── concerns
│ │ │ └── .keep
│ │ ├── application_controller.rb
│ │ └── graphql_controller.rb
│ ├── views
│ │ └── layouts
│ │ │ ├── mailer.text.erb
│ │ │ └── mailer.html.erb
│ ├── jobs
│ │ └── application_job.rb
│ ├── channels
│ │ └── application_cable
│ │ │ ├── channel.rb
│ │ │ └── connection.rb
│ └── mailers
│ │ └── application_mailer.rb
├── README.md
├── public
│ └── robots.txt
├── bin
│ ├── bundle
│ ├── rake
│ ├── rails
│ ├── spring
│ ├── update
│ └── setup
├── config
│ ├── boot.rb
│ ├── spring.rb
│ ├── environment.rb
│ ├── initializers
│ │ ├── mime_types.rb
│ │ ├── application_controller_renderer.rb
│ │ ├── filter_parameter_logging.rb
│ │ ├── backtrace_silencers.rb
│ │ ├── wrap_parameters.rb
│ │ ├── cors.rb
│ │ └── inflections.rb
│ ├── cable.yml
│ ├── routes.rb
│ ├── locales
│ │ └── en.yml
│ └── secrets.yml
├── config.ru
├── Rakefile
├── db
│ ├── migrate
│ │ ├── 20170809224732_add_fields_to_user.rb
│ │ └── 20170810223903_create_projects.rb
│ └── seeds.rb
├── lib
│ └── tasks
│ │ └── graphql.rake
├── .gitignore
└── Gemfile
├── .eslintignore
├── config
├── testing
│ ├── __mocks__
│ │ ├── styleMock.js
│ │ └── fileMock.js
│ └── templates
│ │ └── _index.prod.html
├── generators
│ ├── component
│ │ ├── export.ts.hbs
│ │ ├── types.ts.hbs
│ │ ├── import.ts.hbs
│ │ ├── styles.ts.hbs
│ │ ├── stateless.tsx.hbs
│ │ └── es6class.tsx.hbs
│ ├── container
│ │ ├── export.js.hbs
│ │ ├── reducer.export.js.hbs
│ │ ├── types.export.ts.hbs
│ │ ├── state-type.js.hbs
│ │ ├── reducer.export-state.js.hbs
│ │ ├── reducer.import.js.hbs
│ │ ├── import.js.hbs
│ │ ├── types.import.ts.hbs
│ │ ├── state.import.js.hbs
│ │ ├── styles.js.hbs
│ │ ├── state.js.hbs
│ │ ├── actions.js.hbs
│ │ ├── reducer.js.hbs
│ │ ├── constants.js.hbs
│ │ ├── types.ts.hbs
│ │ ├── actionCreators.js.hbs
│ │ ├── presentation.js.hbs
│ │ └── selectors.js.hbs
│ ├── utils
│ │ ├── safeString.js
│ │ └── index.js
│ └── cli.js
├── .storybook
│ ├── addons.js
│ ├── config.js
│ ├── stories
│ │ ├── index.js
│ │ └── components
│ │ │ ├── LoadingIndicator.js
│ │ │ ├── Pic.js
│ │ │ ├── Image.js
│ │ │ ├── Toast.js
│ │ │ └── Notification.js
│ └── webpack.config.js
├── types
│ └── require.d.ts
└── ignoreAssets.js
├── packages
└── ui
│ ├── src
│ ├── Anchor
│ │ ├── types.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── anchorMocks.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── Footer
│ │ ├── types.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── footerMocks.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── Hero
│ │ ├── types.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── heroMocks.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── index.tsx
│ │ └── styles.ts
│ ├── Article
│ │ ├── types.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── articleMocks.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── Markdown
│ │ ├── types.ts
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── LoadingIndicator
│ │ ├── types.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── loadingIndicatorMocks.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── Heading
│ │ ├── types.ts
│ │ ├── styleUtils.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── headingProps.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── Image
│ │ ├── types.ts
│ │ ├── index.tsx
│ │ ├── styles.ts
│ │ └── __tests__
│ │ │ └── __mocks__
│ │ │ └── imageMocks.mock.ts
│ ├── Avatar
│ │ ├── types.ts
│ │ ├── maps.ts
│ │ ├── default.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── avatarMocks.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── index.tsx
│ │ └── styles.ts
│ ├── theming
│ │ ├── index.ts
│ │ ├── types.ts
│ │ ├── colorMap.ts
│ │ └── globalCss.ts
│ ├── Headline
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── headlineProps.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── types.ts
│ │ ├── styleUtils.ts
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── Paragraph
│ │ ├── types.ts
│ │ ├── styleUtils.ts
│ │ ├── index.tsx
│ │ └── styles.ts
│ ├── Box
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── boxMocks.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── index.tsx
│ │ ├── maps.ts
│ │ ├── styles.ts
│ │ └── types.ts
│ ├── Header
│ │ ├── types.ts
│ │ ├── header.tsx
│ │ ├── styles.ts
│ │ └── utils.ts
│ ├── utils
│ │ ├── index.ts
│ │ └── remStringFromPx.ts
│ ├── Notification
│ │ ├── types.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── notificationMocks.mock.ts
│ │ │ └── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── Toast
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── toast.mock.ts
│ │ │ └── index.test.tsx
│ │ ├── types.ts
│ │ └── styles.ts
│ ├── WithAnimation
│ │ ├── types.ts
│ │ ├── index.tsx
│ │ └── animation.ts
│ ├── SvgIcon
│ │ ├── types.ts
│ │ └── index.tsx
│ ├── Button
│ │ ├── maps.ts
│ │ ├── types.ts
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── buttonMocks.mock.ts
│ │ │ └── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ ├── styles.ts
│ │ └── index.tsx
│ ├── Section
│ │ ├── __tests__
│ │ │ ├── __mocks__
│ │ │ │ └── sectionMocks.mock.ts
│ │ │ ├── __snapshots__
│ │ │ │ └── index.test.tsx.snap
│ │ │ └── index.test.tsx
│ │ ├── styles.ts
│ │ └── index.tsx
│ └── index.ts
│ ├── tsconfig.json
│ └── package.json
├── src
├── client
│ ├── components
│ │ ├── Menu
│ │ │ ├── types.ts
│ │ │ ├── styles.ts
│ │ │ └── index.tsx
│ │ ├── Burger
│ │ │ ├── types.ts
│ │ │ ├── button.ts
│ │ │ ├── span.ts
│ │ │ └── index.tsx
│ │ ├── CaseStudy
│ │ │ ├── types.ts
│ │ │ ├── relative.ts
│ │ │ ├── __tests__
│ │ │ │ └── __mocks__
│ │ │ │ │ └── caseStudy.mock.js
│ │ │ └── overlay.ts
│ │ ├── Html
│ │ │ └── types.ts
│ │ ├── Navigation
│ │ │ ├── types.ts
│ │ │ ├── styles.ts
│ │ │ └── index.tsx
│ │ ├── PageIntro
│ │ │ ├── types.ts
│ │ │ ├── hr.ts
│ │ │ ├── styles.ts
│ │ │ └── index.tsx
│ │ ├── CaseStudies
│ │ │ ├── types.ts
│ │ │ ├── index.tsx
│ │ │ └── __tests__
│ │ │ │ ├── index.test.js
│ │ │ │ └── __mocks__
│ │ │ │ └── caseStudies.mock.js
│ │ ├── index.ts
│ │ └── Footer
│ │ │ └── index.tsx
│ ├── features
│ │ ├── Layout
│ │ │ ├── types.ts
│ │ │ ├── constants.ts
│ │ │ ├── main.ts
│ │ │ ├── div.ts
│ │ │ ├── __tests__
│ │ │ │ ├── __snapshots__
│ │ │ │ │ ├── index.test.tsx.snap
│ │ │ │ │ ├── div.test.tsx.snap
│ │ │ │ │ └── main.test.tsx.snap
│ │ │ │ ├── div.test.tsx
│ │ │ │ ├── main.test.tsx
│ │ │ │ ├── actionCreators.test.ts
│ │ │ │ ├── reducer.test.ts
│ │ │ │ ├── index.test.tsx
│ │ │ │ └── selectors.test.ts
│ │ │ ├── state.ts
│ │ │ ├── styles.ts
│ │ │ ├── actions.ts
│ │ │ ├── actionCreators.ts
│ │ │ ├── selectors.ts
│ │ │ ├── reducer.ts
│ │ │ └── presentation.tsx
│ │ ├── Project
│ │ │ ├── types.ts
│ │ │ ├── project.graphql.ts
│ │ │ ├── withGraphql.ts
│ │ │ ├── index.tsx
│ │ │ ├── __tests__
│ │ │ │ └── index.test.tsx
│ │ │ └── presentation.tsx
│ │ ├── Portfolio
│ │ │ ├── types.ts
│ │ │ ├── projects.graphql.ts
│ │ │ ├── withGraphql.ts
│ │ │ ├── presentation.tsx
│ │ │ ├── __tests__
│ │ │ │ └── index.test.js
│ │ │ └── index.tsx
│ │ ├── NavigationMenu
│ │ │ ├── li.ts
│ │ │ ├── ul.ts
│ │ │ ├── constants.ts
│ │ │ ├── actions.ts
│ │ │ ├── actionCreators.ts
│ │ │ ├── __tests__
│ │ │ │ ├── actionCreators.test.ts
│ │ │ │ ├── selectors.test.ts
│ │ │ │ └── reducer.test.ts
│ │ │ ├── types.ts
│ │ │ ├── reducer.ts
│ │ │ ├── state.ts
│ │ │ ├── navLink.tsx
│ │ │ ├── selectors.ts
│ │ │ ├── nav.ts
│ │ │ ├── presentation.tsx
│ │ │ └── index.tsx
│ │ ├── Clients
│ │ │ ├── types.ts
│ │ │ ├── clientBox.ts
│ │ │ ├── styles.ts
│ │ │ ├── clients.graphql.ts
│ │ │ ├── withGraphql.ts
│ │ │ ├── client.tsx
│ │ │ ├── index.tsx
│ │ │ └── presentation.tsx
│ │ ├── Home
│ │ │ ├── wrapper.ts
│ │ │ ├── styles.ts
│ │ │ ├── __tests__
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── wrapper.test.tsx.snap
│ │ │ │ ├── wrapper.test.tsx
│ │ │ │ ├── actionCreators.test.ts
│ │ │ │ └── index.test.tsx
│ │ │ ├── sectionIsVisible.ts
│ │ │ ├── types.ts
│ │ │ ├── constants.ts
│ │ │ ├── actions.ts
│ │ │ ├── selectors.ts
│ │ │ ├── reducer.ts
│ │ │ ├── actionCreators.ts
│ │ │ └── state.ts
│ │ ├── Contact
│ │ │ ├── index.tsx
│ │ │ └── presentation.tsx
│ │ └── index.ts
│ ├── logic.ts
│ ├── theming
│ │ ├── index.ts
│ │ ├── types.ts
│ │ └── colorMap.ts
│ ├── shared
│ │ ├── constants.ts
│ │ ├── actionCreators.ts
│ │ └── actions.ts
│ ├── apolloClient.ts
│ ├── test
│ │ └── mockstore.ts
│ ├── reducers.ts
│ ├── state.ts
│ ├── index.tsx
│ ├── types.ts
│ └── routes.tsx
└── server
│ ├── graph
│ ├── mutations
│ │ ├── index.ts
│ │ └── contact
│ │ │ ├── index.ts
│ │ │ └── create.ts
│ ├── queries
│ │ ├── client
│ │ │ ├── index.ts
│ │ │ ├── clients.ts
│ │ │ └── client.ts
│ │ ├── index.ts
│ │ └── project
│ │ │ ├── index.ts
│ │ │ ├── projects.ts
│ │ │ └── project.ts
│ ├── types
│ │ ├── index.ts
│ │ ├── contact.ts
│ │ ├── contact-input.ts
│ │ ├── client.ts
│ │ └── project.ts
│ └── index.ts
│ ├── db
│ ├── models
│ │ ├── index.ts
│ │ ├── client.ts
│ │ ├── contact.ts
│ │ └── project.ts
│ └── utils
│ │ └── uuid.ts
│ └── graphqlEntry.ts
├── Procfile
├── netlify.toml
├── .gitignore
├── server.js
├── CHANGELOG.md
├── .travis.yml
├── .env
├── README.md
├── index.html
├── .babelrc
├── tsconfig.json
├── devServer.js
└── LICENSE
/.nvmrc:
--------------------------------------------------------------------------------
1 | 6.9.5
--------------------------------------------------------------------------------
/cms/log/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/tmp/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/vendor/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/test/fixtures/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/test/mailers/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/test/models/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/.ruby-gemset:
--------------------------------------------------------------------------------
1 | myapp
2 |
--------------------------------------------------------------------------------
/cms/test/controllers/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/test/integration/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/.ruby-version:
--------------------------------------------------------------------------------
1 | ruby-2.4.1
2 |
--------------------------------------------------------------------------------
/cms/app/graph/mutations/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/app/graph/queries/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/app/models/concerns/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/test/fixtures/files/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | **/*.ts
2 | **/*.tsx
3 |
--------------------------------------------------------------------------------
/cms/app/controllers/concerns/.keep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cms/app/views/layouts/mailer.text.erb:
--------------------------------------------------------------------------------
1 | <%= yield %>
2 |
--------------------------------------------------------------------------------
/config/testing/__mocks__/styleMock.js:
--------------------------------------------------------------------------------
1 | module.exports = {};
--------------------------------------------------------------------------------
/packages/ui/src/Anchor/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/packages/ui/src/Footer/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/packages/ui/src/Hero/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/packages/ui/src/Article/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/packages/ui/src/Markdown/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/src/client/components/Menu/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/src/client/features/Layout/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/src/client/features/Project/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/cms/app/models/project.rb:
--------------------------------------------------------------------------------
1 | class Project < ApplicationRecord
2 | end
3 |
--------------------------------------------------------------------------------
/config/generators/component/export.ts.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | {{ properCase name }},
--------------------------------------------------------------------------------
/config/generators/component/types.ts.hbs:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/config/generators/container/export.js.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | {{ properCase name }},
--------------------------------------------------------------------------------
/config/testing/__mocks__/fileMock.js:
--------------------------------------------------------------------------------
1 | module.exports = 'test-file-stub';
--------------------------------------------------------------------------------
/packages/ui/src/LoadingIndicator/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/src/client/components/Burger/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/src/client/components/CaseStudy/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/src/client/components/Html/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './index';
2 |
--------------------------------------------------------------------------------
/src/client/components/Navigation/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/src/client/components/PageIntro/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/packages/ui/src/Heading/types.ts:
--------------------------------------------------------------------------------
1 | export { Props, Tag } from './index';
2 |
--------------------------------------------------------------------------------
/packages/ui/src/Image/types.ts:
--------------------------------------------------------------------------------
1 | export { Props, ImageSize } from './index';
2 |
--------------------------------------------------------------------------------
/src/client/components/CaseStudies/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
--------------------------------------------------------------------------------
/cms/app/jobs/application_job.rb:
--------------------------------------------------------------------------------
1 | class ApplicationJob < ActiveJob::Base
2 | end
3 |
--------------------------------------------------------------------------------
/config/generators/container/reducer.export.js.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | {{ camelCase name }},
--------------------------------------------------------------------------------
/config/generators/container/types.export.ts.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | {{ properCase name }}Types,
--------------------------------------------------------------------------------
/packages/ui/src/Avatar/types.ts:
--------------------------------------------------------------------------------
1 | export { Props, ImageSize } from './index';
2 |
--------------------------------------------------------------------------------
/packages/ui/src/LoadingIndicator/__tests__/__mocks__/loadingIndicatorMocks.mock.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/client/features/Portfolio/types.ts:
--------------------------------------------------------------------------------
1 | export { Props, Project } from './';
2 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | # Procfile for heroku
2 | web: cross-env NODE_ENV=server node server.js
3 |
--------------------------------------------------------------------------------
/netlify.toml:
--------------------------------------------------------------------------------
1 | [build]
2 | command = "npm run deploy"
3 | publish = "build/public"
4 |
--------------------------------------------------------------------------------
/src/client/logic.ts:
--------------------------------------------------------------------------------
1 |
2 | const rootLogic = [];
3 |
4 | export default rootLogic;
5 |
--------------------------------------------------------------------------------
/cms/README.md:
--------------------------------------------------------------------------------
1 | # The Agency CMS
2 | A content management system, built using GraphQL on Rails
3 |
--------------------------------------------------------------------------------
/config/generators/container/state-type.js.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | {{ camelCase name }}: {{ properCase name }}State;
--------------------------------------------------------------------------------
/src/client/theming/index.ts:
--------------------------------------------------------------------------------
1 | import colorMap from './colorMap';
2 |
3 | export default colorMap;
4 |
--------------------------------------------------------------------------------
/packages/ui/src/theming/index.ts:
--------------------------------------------------------------------------------
1 | import colorMap from './colorMap';
2 |
3 | export default colorMap;
4 |
--------------------------------------------------------------------------------
/cms/app/controllers/application_controller.rb:
--------------------------------------------------------------------------------
1 | class ApplicationController < ActionController::API
2 | end
3 |
--------------------------------------------------------------------------------
/config/generators/container/reducer.export-state.js.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | {{ camelCase name }}: {{ camelCase name }}State,
3 |
--------------------------------------------------------------------------------
/packages/ui/src/Footer/__tests__/__mocks__/footerMocks.mock.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | color: '#0b0b0b',
3 | };
4 |
--------------------------------------------------------------------------------
/packages/ui/src/Headline/__tests__/__mocks__/headlineProps.mock.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | color: '#fff',
3 | };
4 |
--------------------------------------------------------------------------------
/packages/ui/src/Paragraph/types.ts:
--------------------------------------------------------------------------------
1 | export { Props, ParagraphSize, Margin, SizeMap, MarginSizeMap } from './index';
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | build
3 | dist
4 | npm-debug.log
5 | .vscode
6 | coverage
7 | yarn-error.log
8 | .DS_STORE
9 |
--------------------------------------------------------------------------------
/cms/public/robots.txt:
--------------------------------------------------------------------------------
1 | # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
2 |
--------------------------------------------------------------------------------
/src/server/graph/mutations/index.ts:
--------------------------------------------------------------------------------
1 | import contact from './contact';
2 |
3 | export default {
4 | ...contact,
5 | };
6 |
--------------------------------------------------------------------------------
/cms/app/models/application_record.rb:
--------------------------------------------------------------------------------
1 | class ApplicationRecord < ActiveRecord::Base
2 | self.abstract_class = true
3 | end
4 |
--------------------------------------------------------------------------------
/packages/ui/src/Box/__tests__/__mocks__/boxMocks.mock.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | pad: 'medium',
3 | size: 'large',
4 | };
5 |
--------------------------------------------------------------------------------
/packages/ui/src/Header/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 | export { Props as HeaderComponentProps } from './header';
3 |
--------------------------------------------------------------------------------
/packages/ui/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | import remStringFromPx from './remStringFromPx';
2 |
3 | export default remStringFromPx;
4 |
--------------------------------------------------------------------------------
/src/server/graph/mutations/contact/index.ts:
--------------------------------------------------------------------------------
1 | import create from './create';
2 |
3 | export default {
4 | create,
5 | };
6 |
--------------------------------------------------------------------------------
/cms/app/graph/app_schema.rb:
--------------------------------------------------------------------------------
1 | AppSchema = GraphQL::Schema.define(
2 | query: RootQueryType,
3 | # mutation: RootMutationType
4 | )
--------------------------------------------------------------------------------
/config/generators/container/reducer.import.js.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | import {{ camelCase name }} from 'features/{{ properCase name }}/reducer';
--------------------------------------------------------------------------------
/packages/ui/src/Avatar/maps.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | thumb: 50,
3 | small: 100,
4 | medium: 150,
5 | large: 250,
6 | };
7 |
--------------------------------------------------------------------------------
/packages/ui/src/Hero/__tests__/__mocks__/heroMocks.mock.ts:
--------------------------------------------------------------------------------
1 | export const heroProps = {
2 | backgroundColor: 'ff6600',
3 | };
4 |
--------------------------------------------------------------------------------
/packages/ui/src/Notification/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 | export type Status = 'none' | 'ok' | 'warning' | 'error';
3 |
--------------------------------------------------------------------------------
/packages/ui/src/Toast/__tests__/__mocks__/toast.mock.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | status: 'ok',
3 | onClose: jest.fn(),
4 | };
5 |
--------------------------------------------------------------------------------
/packages/ui/src/Toast/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
3 | export type Status = 'ok' | 'warning' | 'error' | 'none';
4 |
--------------------------------------------------------------------------------
/server.js:
--------------------------------------------------------------------------------
1 | require('babel-core/register');
2 | require('./config/ignoreAssets');
3 | var app = require('./build/src/server/index.jsx');
4 |
--------------------------------------------------------------------------------
/src/client/shared/constants.ts:
--------------------------------------------------------------------------------
1 | export type DEFAULT_ACTION_TYPE = '';
2 | export const DEFAULT_ACTION_TYPE: DEFAULT_ACTION_TYPE = '';
3 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | ## 1.0.1
4 | - Add jest snapshot / enzyme testing
5 | - Introduce changelog, contributing.md and roadmap.md
--------------------------------------------------------------------------------
/cms/app/channels/application_cable/channel.rb:
--------------------------------------------------------------------------------
1 | module ApplicationCable
2 | class Channel < ActionCable::Channel::Base
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/config/generators/component/import.ts.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | import {{ properCase name }} from '{{ getPath path 'components' }}{{ properCase name }}';
3 |
--------------------------------------------------------------------------------
/config/generators/container/import.js.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | import {{ properCase name }} from '{{ getPath path 'features' }}{{ properCase name }}';
3 |
--------------------------------------------------------------------------------
/config/generators/container/types.import.ts.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | import * as {{ properCase name }}Types from './features/{{ properCase name }}/types';
--------------------------------------------------------------------------------
/packages/ui/src/WithAnimation/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
3 | export type AnimationType = 'fadeIn' | 'fadeInUp' | 'fadeUp';
4 |
--------------------------------------------------------------------------------
/src/client/features/NavigationMenu/li.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export default styled.li`
4 | display: block;
5 | `;
6 |
--------------------------------------------------------------------------------
/cms/app/channels/application_cable/connection.rb:
--------------------------------------------------------------------------------
1 | module ApplicationCable
2 | class Connection < ActionCable::Connection::Base
3 | end
4 | end
5 |
--------------------------------------------------------------------------------
/packages/ui/src/SvgIcon/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 | export interface SvgProps extends React.SVGProps {
3 | viewBox?: string;
4 | }
5 |
--------------------------------------------------------------------------------
/cms/app/mailers/application_mailer.rb:
--------------------------------------------------------------------------------
1 | class ApplicationMailer < ActionMailer::Base
2 | default from: 'from@example.com'
3 | layout 'mailer'
4 | end
5 |
--------------------------------------------------------------------------------
/cms/bin/bundle:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env ruby
2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3 | load Gem.bin_path('bundler', 'bundle')
4 |
--------------------------------------------------------------------------------
/cms/config/boot.rb:
--------------------------------------------------------------------------------
1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2 |
3 | require 'bundler/setup' # Set up gems listed in the Gemfile.
4 |
--------------------------------------------------------------------------------
/cms/config/spring.rb:
--------------------------------------------------------------------------------
1 | %w(
2 | .ruby-version
3 | .rbenv-vars
4 | tmp/restart.txt
5 | tmp/caching-dev.txt
6 | ).each { |path| Spring.watch(path) }
7 |
--------------------------------------------------------------------------------
/packages/ui/src/Button/maps.ts:
--------------------------------------------------------------------------------
1 | export const sizeMap = {
2 | xsmall: 10,
3 | small: 12,
4 | medium: 16,
5 | large: 20,
6 | xlarge: 24,
7 | };
8 |
--------------------------------------------------------------------------------
/cms/config.ru:
--------------------------------------------------------------------------------
1 | # This file is used by Rack-based servers to start the application.
2 |
3 | require_relative 'config/environment'
4 |
5 | run Rails.application
6 |
--------------------------------------------------------------------------------
/src/client/features/Layout/constants.ts:
--------------------------------------------------------------------------------
1 | export type SET_MOBILE_TYPE = 'LAYOUT/SET_MOBILE';
2 | export const SET_MOBILE: SET_MOBILE_TYPE = 'LAYOUT/SET_MOBILE';
3 |
--------------------------------------------------------------------------------
/packages/ui/src/Article/__tests__/__mocks__/articleMocks.mock.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | pad: 'medium',
3 | size: 'large',
4 | backgroundColor: '#f5f5f5',
5 | };
6 |
--------------------------------------------------------------------------------
/packages/ui/src/Button/types.ts:
--------------------------------------------------------------------------------
1 | import { Props } from './';
2 |
3 | export { Props };
4 | export type Size = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
5 |
--------------------------------------------------------------------------------
/packages/ui/src/Section/__tests__/__mocks__/sectionMocks.mock.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | pad: 'medium',
3 | size: 'large',
4 | backgroundColor: '#f5f5f5',
5 | };
6 |
--------------------------------------------------------------------------------
/src/client/components/Menu/styles.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export default styled.div`
4 | height: 100px;
5 | width: 200px;
6 | `;
7 |
--------------------------------------------------------------------------------
/cms/config/environment.rb:
--------------------------------------------------------------------------------
1 | # Load the Rails application.
2 | require_relative 'application'
3 |
4 | # Initialize the Rails application.
5 | Rails.application.initialize!
6 |
--------------------------------------------------------------------------------
/config/generators/component/styles.ts.hbs:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export default styled.div`
4 | height: 100px;
5 | width: 200px;
6 | `;
7 |
--------------------------------------------------------------------------------
/packages/ui/src/Markdown/styles.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export default styled.div`
4 | box-sizing: border-box;
5 | display: block;
6 | `;
7 |
--------------------------------------------------------------------------------
/src/client/features/Clients/types.ts:
--------------------------------------------------------------------------------
1 | export { Props } from './';
2 |
3 | export interface Client {
4 | image: string;
5 | name: string;
6 | url: string;
7 | }
8 |
--------------------------------------------------------------------------------
/src/client/features/Layout/main.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import styles from './styles';
3 |
4 | export default styled.main`
5 | ${styles}
6 | `;
7 |
--------------------------------------------------------------------------------
/cms/test/models/user_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class UserTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/packages/ui/src/Avatar/default.ts:
--------------------------------------------------------------------------------
1 | // tslint:disable
2 | export default 'https://cloud.githubusercontent.com/assets/13810084/23538009/f9e348ae-ff9d-11e6-9f7a-485e8247a026.png';
--------------------------------------------------------------------------------
/src/server/graph/queries/client/index.ts:
--------------------------------------------------------------------------------
1 | import client from './client';
2 | import clients from './clients';
3 |
4 | export default {
5 | client,
6 | clients,
7 | };
8 |
--------------------------------------------------------------------------------
/src/server/graph/queries/index.ts:
--------------------------------------------------------------------------------
1 | import projects from './project';
2 | import clients from './client';
3 |
4 | export default {
5 | ...projects,
6 | ...clients,
7 | };
8 |
--------------------------------------------------------------------------------
/cms/test/models/project_test.rb:
--------------------------------------------------------------------------------
1 | require 'test_helper'
2 |
3 | class ProjectTest < ActiveSupport::TestCase
4 | # test "the truth" do
5 | # assert true
6 | # end
7 | end
8 |
--------------------------------------------------------------------------------
/src/client/features/Layout/div.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import { divStyles } from './styles';
3 |
4 | export default styled.main`
5 | ${divStyles}
6 | `;
7 |
--------------------------------------------------------------------------------
/src/server/db/models/index.ts:
--------------------------------------------------------------------------------
1 | import ClientModel from './client';
2 | import ProjectModel from './project';
3 |
4 | export default {
5 | ClientModel,
6 | ProjectModel,
7 | };
8 |
--------------------------------------------------------------------------------
/src/server/graph/queries/project/index.ts:
--------------------------------------------------------------------------------
1 | import project from './project';
2 | import projects from './projects';
3 |
4 | export default {
5 | project,
6 | projects,
7 | };
8 |
--------------------------------------------------------------------------------
/config/generators/container/state.import.js.hbs:
--------------------------------------------------------------------------------
1 | $1
2 | import { initialState as {{ camelCase name }}State, State as {{ properCase name }}State } from 'features/{{ properCase name }}/state';
--------------------------------------------------------------------------------
/packages/ui/src/Avatar/__tests__/__mocks__/avatarMocks.mock.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | src: 'https://avatars3.githubusercontent.com/u/19292575',
3 | name: 'Abhishek Ghosh',
4 | };
5 |
--------------------------------------------------------------------------------
/src/client/features/Home/wrapper.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import wrapperStyles from './styles';
3 |
4 | export default styled.div`
5 | ${wrapperStyles}
6 | `;
7 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "6.9.5"
4 | script: npm run test
5 | notifications:
6 | slack: scalable-react:HPFuyoipfw9RROPGrZrczz1m
7 | email:
8 | on_failure: always
--------------------------------------------------------------------------------
/config/.storybook/addons.js:
--------------------------------------------------------------------------------
1 | // To get default addons (actions and links)
2 | import '@kadira/storybook/addons';
3 | // To add the knobs addon
4 | import '@kadira/storybook-addon-knobs/register'
5 |
--------------------------------------------------------------------------------
/src/client/features/Home/styles.ts:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components';
2 |
3 | export default css`
4 | margin-top: -100px;
5 | padding-top: 100px;
6 | background-color: #03A9F4;
7 | `;
8 |
--------------------------------------------------------------------------------
/src/client/features/NavigationMenu/ul.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export default styled.ul`
4 | display: inline-block;
5 | line-height: 1;
6 | list-style: none;
7 | `;
8 |
--------------------------------------------------------------------------------
/packages/ui/src/Button/__tests__/__mocks__/buttonMocks.mock.ts:
--------------------------------------------------------------------------------
1 | export const buttonProps = {
2 | color: 'blue',
3 | backgroundColor: '#ffffff',
4 | borderColor: '#000000',
5 | size: 300,
6 | };
7 |
--------------------------------------------------------------------------------
/src/client/components/Burger/button.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export default styled.button`
4 | padding: 20px;
5 | background-color: transparent;
6 | border: none;
7 | `;
8 |
--------------------------------------------------------------------------------
/src/client/components/Burger/span.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export default styled.span`
4 | height: 18px;
5 | width: 24px;
6 | fill: #666;
7 | cursor: pointer;
8 | `;
9 |
--------------------------------------------------------------------------------
/.env:
--------------------------------------------------------------------------------
1 | # Environment variables for database connection.
2 | DB="the-agency-db"
3 | PORT=1338
4 | DEBUG=false
5 | API_URL="http://localhost:3000/graphql"
6 | MONGODB_URI="mongodb://localhost:27017/the-agency-db"
7 |
--------------------------------------------------------------------------------
/cms/config/initializers/mime_types.rb:
--------------------------------------------------------------------------------
1 | # Be sure to restart your server when you modify this file.
2 |
3 | # Add new mime types for use in respond_to blocks:
4 | # Mime::Type.register "text/richtext", :rtf
5 |
--------------------------------------------------------------------------------
/src/client/features/Clients/clientBox.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 | import { Box } from 'ui';
3 | import styles from './styles';
4 |
5 | export default styled(Box)`
6 | ${styles}
7 | `;
8 |
--------------------------------------------------------------------------------
/packages/ui/src/Section/styles.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | import {
4 | BoxStyles,
5 | } from '../Box/styles';
6 |
7 | export default styled.section`
8 | ${BoxStyles}
9 | `;
10 |
--------------------------------------------------------------------------------
/src/client/features/Clients/styles.ts:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components';
2 |
3 | export default css`
4 | max-width: 50%;
5 | @media screen and (max-width: 720px) {
6 | max-width: 100%;
7 | }
8 | `;
9 |
--------------------------------------------------------------------------------
/src/client/features/Layout/__tests__/__snapshots__/index.test.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Layout Container should render with default props 1`] = `
extends Action { 9 | type: string; 10 | payload?: P; 11 | } 12 | -------------------------------------------------------------------------------- /cms/app/views/layouts/mailer.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 8 | 9 | 10 | 11 | <%= yield %> 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/client/features/Contact/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import Presentation from './presentation'; 3 | 4 | class Contact extends React.Component extends Action {
11 | type: string;
12 | payload?: P;
13 | }
14 |
15 | export interface FormControlEventTarget extends EventTarget {
16 | value: string;
17 | }
18 |
19 | export {
20 | /* GENERATOR-EXPORT */
21 | ClientsTypes,
22 | ProjectTypes,
23 | PortfolioTypes,
24 | NavigationMenuTypes,
25 | HomeTypes,
26 | LayoutTypes,
27 | };
28 |
--------------------------------------------------------------------------------
/packages/ui/src/Heading/__tests__/__mocks__/headingProps.mock.ts:
--------------------------------------------------------------------------------
1 | import { Margin, HeadingProps } from '../../types';
2 | const margin: Margin = 'none';
3 |
4 | export const h2Props: HeadingProps = {
5 | tag: 'h2',
6 | upcase: false,
7 | truncate: true,
8 | textAlign: 'left',
9 | color: '#333',
10 | margin,
11 | };
12 |
13 | export const h3Props: HeadingProps = {
14 | tag: 'h3',
15 | upcase: false,
16 | truncate: true,
17 | textAlign: 'left',
18 | color: '#333',
19 | margin,
20 | };
21 |
22 | export const h4Props: HeadingProps = {
23 | tag: 'h4',
24 | upcase: false,
25 | truncate: true,
26 | textAlign: 'left',
27 | color: '#333',
28 | margin,
29 | };
30 |
31 | export const h5Props: HeadingProps = {
32 | tag: 'h5',
33 | upcase: false,
34 | truncate: true,
35 | textAlign: 'left',
36 | color: '#333',
37 | margin,
38 | };
39 |
--------------------------------------------------------------------------------
/src/client/components/Navigation/styles.ts:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components';
2 | import { Header, Heading as HeadingComponent } from 'ui';
3 | import { Props } from './types';
4 |
5 | const headingStyles = css`
6 | padding: 20px;
7 | text-shadow: 1px 1px #0a0a0a;
8 | `;
9 |
10 | export const Heading = styled(HeadingComponent)`${headingStyles}`;
11 |
12 | interface OwnProps extends Props {
13 | isDocked: boolean;
14 | }
15 |
16 | export function styles(props: OwnProps) {
17 | let color = props.isDocked ? '#666' : '#ffffff';
18 | return css`
19 | h3 {
20 | color: ${color};
21 | opacity: 0.8;
22 | transition: opacity 200ms cubic-bezier(.55,.055,.675,.19);
23 | &:hover {
24 | ppacity: 1.0;
25 | }
26 | }
27 | `;
28 | }
29 |
30 | export default styled(Header)`
31 | ${(props: OwnProps) => styles(props)}
32 | `;
--------------------------------------------------------------------------------
/src/client/features/Home/constants.ts:
--------------------------------------------------------------------------------
1 | export type LOAD_INITIATION_TYPE = 'HOME/LOAD_INITIATION';
2 | export const LOAD_INITIATION: LOAD_INITIATION_TYPE = 'HOME/LOAD_INITIATION';
3 |
4 | export type LOAD_SUCCESS_TYPE = 'HOME/LOAD_SUCCESS';
5 | export const LOAD_SUCCESS: LOAD_SUCCESS_TYPE = 'HOME/LOAD_SUCCESS';
6 |
7 | export type LOAD_FAILURE_TYPE = 'HOME/LOAD_FAILURE';
8 | export const LOAD_FAILURE: LOAD_FAILURE_TYPE = 'HOME/LOAD_FAILURE';
9 |
10 | export type LOAD_CANCEL_TYPE = 'HOME/LOAD_CANCEL';
11 | export const LOAD_CANCEL: LOAD_CANCEL_TYPE = 'HOME/LOAD_CANCEL';
12 |
13 | export type TOGGLE_SECTION_TYPE = 'HOME/TOGGLE_SECTION';
14 | export const TOGGLE_SECTION: TOGGLE_SECTION_TYPE = 'HOME/TOGGLE_SECTION';
15 |
16 | export type ActionType = LOAD_INITIATION_TYPE
17 | | LOAD_SUCCESS_TYPE
18 | | LOAD_FAILURE_TYPE
19 | | LOAD_CANCEL_TYPE
20 | | TOGGLE_SECTION_TYPE;
21 |
--------------------------------------------------------------------------------
/src/client/features/NavigationMenu/nav.ts:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components';
2 | import { StateProps } from './types';
3 |
4 | function navStyles({ isVisible }: StateProps) {
5 | const visibility = isVisible ? 'visibile' : 'hidden';
6 | const overflow = isVisible ? 'hidden' : '';
7 | const opacity = isVisible ? 1.0 : 0.0;
8 | return css`
9 | visibility: ${visibility};
10 | opacity: ${opacity};
11 | overflow: ${overflow};
12 | `;
13 | }
14 |
15 | export default styled.nav`
16 | ${(props: StateProps) => navStyles(props)}
17 | background-color: #121212;
18 | bottom: 0;
19 | left: 0;
20 | position: fixed;
21 | cursor: pointer;
22 | right: 0;
23 | top: 0;
24 | will-change: opacity, visibility;
25 | transition: opacity 200ms cubic-bezier(.55,.055,.675,.19),visibility 200ms cubic-bezier(.55,.055,.675,.19);
26 | z-index: 1000;
27 | `;
28 |
--------------------------------------------------------------------------------
/packages/ui/src/Headline/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { HeadlineStyled } from './styles';
3 | import { Margin } from '../Paragraph/types';
4 | import { HeadlineSize, FontWeight } from './types';
5 |
6 | export interface Props {
7 | color?: string;
8 | textAlign?: string;
9 | fontSize?: HeadlineSize;
10 | fontWeight?: FontWeight;
11 | margin?: Margin;
12 | }
13 |
14 | class Headline extends React.Component {error} {error}
35 |
41 |
32 | {children}
33 |
34 | );
35 | case 'h3':
36 | return (
37 |
38 | {children}
39 |
40 | );
41 | case 'h4':
42 | return (
43 |
44 | {children}
45 |
46 | );
47 | case 'h5':
48 | return (
49 |
50 | {children}
51 |
52 | );
53 | default:
54 | return (
55 |
56 | {children}
57 |
58 | );
59 | }
60 | }
61 | }
62 |
63 | export default Heading;
64 |
--------------------------------------------------------------------------------
/packages/ui/src/Anchor/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import { withRouter, InjectedRouter } from 'react-router';
3 | import Component from './styles';
4 |
5 | const MethodTypePush = 'push';
6 | const MethodTypeReplace = 'replace';
7 | type Method = 'push' | 'replace';
8 | export interface Props extends React.Props