├── .prettierrc
├── dist
├── assets
│ ├── icons
│ │ ├── css.png
│ │ ├── html.png
│ │ ├── twitch.png
│ │ ├── twitter.png
│ │ └── youtube.png
│ ├── images
│ │ ├── logo.png
│ │ └── icons.png
│ └── fonts
│ │ ├── FiraCode
│ │ ├── static
│ │ │ ├── FiraCode-Bold.ttf
│ │ │ ├── FiraCode-Light.ttf
│ │ │ ├── FiraCode-Medium.ttf
│ │ │ ├── FiraCode-Regular.ttf
│ │ │ └── FiraCode-SemiBold.ttf
│ │ └── FiraCode-VariableFont_wght.ttf
│ │ └── PressStart2P
│ │ └── PressStart2P-Regular.ttf
├── Styles
│ ├── Settings
│ │ ├── Colors
│ │ │ ├── palette.js
│ │ │ └── index.js
│ │ ├── index.js
│ │ └── Gaps
│ │ │ └── index.js
│ ├── Generic
│ │ ├── index.js
│ │ └── Reset
│ │ │ └── index.js
│ ├── Tools
│ │ ├── Frame
│ │ │ └── index.js
│ │ ├── BoxShadow
│ │ │ └── index.js
│ │ ├── TextShadow
│ │ │ └── index.js
│ │ └── Cursor
│ │ │ └── index.js
│ ├── Elements
│ │ ├── Text
│ │ │ └── index.js
│ │ ├── Form
│ │ │ └── index.js
│ │ ├── index.js
│ │ └── Base
│ │ │ └── index.js
│ └── index.js
├── components
│ ├── Loading
│ │ └── index.js
│ ├── Line
│ │ └── index.js
│ ├── Action
│ │ └── index.js
│ ├── Field
│ │ ├── index.js
│ │ ├── Textarea
│ │ │ ├── styles.js
│ │ │ └── index.js
│ │ ├── Fieldset
│ │ │ └── index.js
│ │ ├── Select
│ │ │ └── styles.js
│ │ ├── Email
│ │ │ └── index.js
│ │ ├── Text
│ │ │ └── index.js
│ │ └── Checkbox
│ │ │ └── index.js
│ ├── Timer
│ │ ├── index.js
│ │ └── styles.js
│ ├── VideoPlayer
│ │ ├── Fullscreen
│ │ │ ├── index.js
│ │ │ └── styles.js
│ │ ├── PlayAndPause
│ │ │ └── index.js
│ │ ├── VideoPlayerTimer
│ │ │ ├── index.js
│ │ │ └── styles.js
│ │ ├── VideoPlayerProgressBar
│ │ │ └── index.js
│ │ ├── Audio
│ │ │ └── index.js
│ │ ├── VideoDescription
│ │ │ └── index.js
│ │ └── PlaybackRate
│ │ │ └── index.js
│ ├── FiredLabs
│ │ └── index.js
│ ├── Countdown
│ │ └── styles.js
│ ├── ActionCard
│ │ ├── index.js
│ │ └── styles.js
│ ├── ListActionImage
│ │ ├── styles.js
│ │ └── index.js
│ ├── ListTags
│ │ ├── index.js
│ │ └── styles.js
│ ├── ContentDay
│ │ └── Option
│ │ │ └── index.js
│ ├── ListCovers
│ │ ├── index.js
│ │ └── styles.js
│ ├── Container
│ │ └── index.js
│ ├── FloatingButton
│ │ └── index.js
│ ├── Tag
│ │ └── index.js
│ ├── TitleLive
│ │ ├── index.js
│ │ └── styles.js
│ ├── Cover
│ │ └── styles.js
│ ├── Icons
│ │ └── index.js
│ ├── Modal
│ │ └── index.js
│ ├── Profile
│ │ └── index.js
│ ├── ListContentDay
│ │ └── index.js
│ └── ProgressBar
│ │ └── index.js
└── index.js
├── src
├── lib
│ ├── assets
│ │ ├── icons
│ │ │ ├── css.png
│ │ │ ├── html.png
│ │ │ ├── twitch.png
│ │ │ ├── twitter.png
│ │ │ └── youtube.png
│ │ ├── images
│ │ │ ├── icons.png
│ │ │ └── logo.png
│ │ └── fonts
│ │ │ ├── FiraCode
│ │ │ ├── static
│ │ │ │ ├── FiraCode-Bold.ttf
│ │ │ │ ├── FiraCode-Light.ttf
│ │ │ │ ├── FiraCode-Medium.ttf
│ │ │ │ ├── FiraCode-Regular.ttf
│ │ │ │ └── FiraCode-SemiBold.ttf
│ │ │ └── FiraCode-VariableFont_wght.ttf
│ │ │ └── PressStart2P
│ │ │ └── PressStart2P-Regular.ttf
│ ├── index.js
│ ├── Styles
│ │ ├── Generic
│ │ │ ├── index.js
│ │ │ └── Reset
│ │ │ │ └── index.js
│ │ ├── Tools
│ │ │ ├── index.js
│ │ │ ├── Frame
│ │ │ │ └── index.js
│ │ │ ├── BoxShadow
│ │ │ │ └── index.js
│ │ │ ├── TextShadow
│ │ │ │ └── index.js
│ │ │ ├── Cursor
│ │ │ │ └── index.js
│ │ │ └── Typograph
│ │ │ │ └── index.js
│ │ ├── Settings
│ │ │ ├── index.js
│ │ │ ├── Gaps
│ │ │ │ └── index.js
│ │ │ └── Colors
│ │ │ │ ├── palette.js
│ │ │ │ └── index.js
│ │ ├── index.js
│ │ └── Elements
│ │ │ ├── index.js
│ │ │ ├── Text
│ │ │ └── index.js
│ │ │ ├── Form
│ │ │ └── index.js
│ │ │ └── Base
│ │ │ └── index.js
│ └── components
│ │ ├── Action
│ │ └── index.js
│ │ ├── Line
│ │ └── index.js
│ │ ├── Field
│ │ ├── Textarea
│ │ │ ├── styles.js
│ │ │ └── index.js
│ │ ├── index.js
│ │ ├── Select
│ │ │ ├── styles.js
│ │ │ └── index.js
│ │ ├── Fieldset
│ │ │ ├── index.js
│ │ │ └── styles.js
│ │ ├── styles.js
│ │ ├── Email
│ │ │ └── index.js
│ │ ├── Text
│ │ │ └── index.js
│ │ └── Checkbox
│ │ │ └── index.js
│ │ ├── FiredLabs
│ │ └── index.js
│ │ ├── ListCovers
│ │ ├── styles.js
│ │ └── index.js
│ │ ├── ListTags
│ │ ├── styles.js
│ │ └── index.js
│ │ ├── Countdown
│ │ └── styles.js
│ │ ├── VideoPlayer
│ │ ├── Fullscreen
│ │ │ ├── styles.js
│ │ │ └── index.js
│ │ ├── PlayAndPause
│ │ │ ├── index.js
│ │ │ └── styles.js
│ │ ├── VideoPlayerTimer
│ │ │ ├── styles.js
│ │ │ └── index.js
│ │ ├── VideoDescription
│ │ │ ├── styles.js
│ │ │ └── index.js
│ │ ├── Audio
│ │ │ └── index.js
│ │ ├── VideoPlayerProgressBar
│ │ │ ├── index.js
│ │ │ └── styles.js
│ │ ├── IconPlayer
│ │ │ └── index.js
│ │ ├── PlaybackRate
│ │ │ ├── index.js
│ │ │ └── style.js
│ │ ├── Controls
│ │ │ └── styles.js
│ │ └── styles.js
│ │ ├── Loading
│ │ ├── index.js
│ │ └── styles.js
│ │ ├── ListActionImage
│ │ ├── styles.js
│ │ └── index.js
│ │ ├── Image
│ │ └── index.js
│ │ ├── Timer
│ │ ├── index.js
│ │ └── styles.js
│ │ ├── ActionCard
│ │ ├── styles.js
│ │ └── index.js
│ │ ├── Icons
│ │ └── index.js
│ │ ├── Container
│ │ └── index.js
│ │ ├── Cover
│ │ ├── styles.js
│ │ └── index.js
│ │ ├── TitleLive
│ │ ├── styles.js
│ │ └── index.js
│ │ ├── Tag
│ │ └── index.js
│ │ ├── ContentDay
│ │ ├── Option
│ │ │ ├── index.js
│ │ │ └── styles.js
│ │ └── index.js
│ │ ├── FloatingButton
│ │ └── index.js
│ │ ├── Live
│ │ └── index.js
│ │ ├── Form
│ │ └── index.js
│ │ ├── Heading
│ │ └── index.js
│ │ ├── Modal
│ │ ├── index.js
│ │ └── styles.js
│ │ ├── ListContentDay
│ │ ├── index.js
│ │ └── styles.js
│ │ ├── Profile
│ │ ├── index.js
│ │ └── styles.js
│ │ ├── Description
│ │ └── index.js
│ │ ├── Title
│ │ └── index.js
│ │ ├── Section
│ │ └── index.js
│ │ ├── ActionImage
│ │ ├── styles.js
│ │ └── index.js
│ │ ├── Box
│ │ ├── index.js
│ │ └── styles.js
│ │ ├── ProgressBar
│ │ ├── index.js
│ │ └── styles.js
│ │ └── Table
│ │ └── styles.js
└── stories
│ ├── assets
│ ├── alura.png
│ ├── negros.png
│ ├── thumb.png
│ ├── marcobruno.png
│ └── curso-html-css.png
│ ├── FiredLabs.stories.js
│ ├── Live.stories.js
│ ├── Loading.stories.js
│ ├── Timer.stories.js
│ ├── VideoPlayer
│ └── Elements
│ │ ├── Fullscreen.stories.js
│ │ ├── PlayAndPause.stories.js
│ │ ├── Audio.stories.js
│ │ ├── VideoPlayerTimer.stories.js
│ │ ├── VideoDescription.stories.js
│ │ ├── VideoPlayerProgressBar.stories.js
│ │ ├── PlaybackRate.stories.js
│ │ ├── Playlist.stories.js
│ │ └── Controls.stories.js
│ ├── ActionCard.stories.js
│ ├── FloatingButton.stories.js
│ ├── Action.stories.js
│ ├── Field
│ ├── Textarea.stories.js
│ ├── Select.stories.js
│ ├── Text.stories.js
│ ├── Fieldset.stories.js
│ ├── Email.stories.js
│ └── Checkbox.stories.js
│ ├── Countdown.stories.js
│ ├── ListTags.stories.js
│ ├── Table.stories.js
│ ├── TitleLive.stories.js
│ ├── components
│ └── Wrapper
│ │ └── index.js
│ ├── Tag.stories.js
│ ├── Form.stories.js
│ ├── Image.stories.js
│ ├── Profile.stories.js
│ ├── Modal.stories.js
│ ├── Description.stories.js
│ ├── Icons.stories.js
│ ├── Container.stories.js
│ ├── ProgressBar.stories.js
│ ├── Cover.stories.js
│ ├── Heading.stories.js
│ ├── ListCovers.stories.js
│ ├── ActionImage.stories.js
│ ├── Button.stories.js
│ ├── Title.stories.js
│ ├── Box.stories.js
│ └── Section.stories.js
├── .vscode
└── settings.json
├── babel.config.js
├── .storybook
├── preview-head.html
├── main.js
└── preview.js
├── .gitignore
├── .eslintrc
└── README.md
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "singleQuote": true,
3 | "trailingComma": "none",
4 | "semi": false
5 | }
--------------------------------------------------------------------------------
/dist/assets/icons/css.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/icons/css.png
--------------------------------------------------------------------------------
/dist/assets/icons/html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/icons/html.png
--------------------------------------------------------------------------------
/dist/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/images/logo.png
--------------------------------------------------------------------------------
/dist/assets/icons/twitch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/icons/twitch.png
--------------------------------------------------------------------------------
/dist/assets/icons/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/icons/twitter.png
--------------------------------------------------------------------------------
/dist/assets/icons/youtube.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/icons/youtube.png
--------------------------------------------------------------------------------
/dist/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/images/icons.png
--------------------------------------------------------------------------------
/src/lib/assets/icons/css.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/icons/css.png
--------------------------------------------------------------------------------
/src/lib/assets/icons/html.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/icons/html.png
--------------------------------------------------------------------------------
/src/stories/assets/alura.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/stories/assets/alura.png
--------------------------------------------------------------------------------
/src/stories/assets/negros.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/stories/assets/negros.png
--------------------------------------------------------------------------------
/src/stories/assets/thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/stories/assets/thumb.png
--------------------------------------------------------------------------------
/src/lib/assets/icons/twitch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/icons/twitch.png
--------------------------------------------------------------------------------
/src/lib/assets/icons/twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/icons/twitter.png
--------------------------------------------------------------------------------
/src/lib/assets/icons/youtube.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/icons/youtube.png
--------------------------------------------------------------------------------
/src/lib/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/images/icons.png
--------------------------------------------------------------------------------
/src/lib/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/images/logo.png
--------------------------------------------------------------------------------
/src/stories/assets/marcobruno.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/stories/assets/marcobruno.png
--------------------------------------------------------------------------------
/src/lib/index.js:
--------------------------------------------------------------------------------
1 | export * from './Styles'
2 | export * from './components'
3 | export * from './Styles/Settings/Colors/palette'
4 |
--------------------------------------------------------------------------------
/src/stories/assets/curso-html-css.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/stories/assets/curso-html-css.png
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.codeActionsOnSave": {
3 | "source.fixAll": true
4 | },
5 | "editor.formatOnSave": true
6 | }
--------------------------------------------------------------------------------
/dist/assets/fonts/FiraCode/static/FiraCode-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/fonts/FiraCode/static/FiraCode-Bold.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/FiraCode/static/FiraCode-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/fonts/FiraCode/static/FiraCode-Light.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/FiraCode/static/FiraCode-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/fonts/FiraCode/static/FiraCode-Medium.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/FiraCode/static/FiraCode-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/fonts/FiraCode/static/FiraCode-Regular.ttf
--------------------------------------------------------------------------------
/src/lib/Styles/Generic/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Reset from './Reset'
3 |
4 | const Generic = () =>
5 |
6 | export default Generic
7 |
--------------------------------------------------------------------------------
/src/lib/assets/fonts/FiraCode/static/FiraCode-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/fonts/FiraCode/static/FiraCode-Bold.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/FiraCode/FiraCode-VariableFont_wght.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/fonts/FiraCode/FiraCode-VariableFont_wght.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/FiraCode/static/FiraCode-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/fonts/FiraCode/static/FiraCode-SemiBold.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/PressStart2P/PressStart2P-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/dist/assets/fonts/PressStart2P/PressStart2P-Regular.ttf
--------------------------------------------------------------------------------
/src/lib/assets/fonts/FiraCode/static/FiraCode-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/fonts/FiraCode/static/FiraCode-Light.ttf
--------------------------------------------------------------------------------
/src/lib/assets/fonts/FiraCode/static/FiraCode-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/fonts/FiraCode/static/FiraCode-Medium.ttf
--------------------------------------------------------------------------------
/src/lib/assets/fonts/FiraCode/static/FiraCode-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/fonts/FiraCode/static/FiraCode-Regular.ttf
--------------------------------------------------------------------------------
/src/lib/assets/fonts/FiraCode/static/FiraCode-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/fonts/FiraCode/static/FiraCode-SemiBold.ttf
--------------------------------------------------------------------------------
/src/lib/assets/fonts/PressStart2P/PressStart2P-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/fonts/PressStart2P/PressStart2P-Regular.ttf
--------------------------------------------------------------------------------
/src/lib/Styles/Tools/index.js:
--------------------------------------------------------------------------------
1 | export * from './Typograph'
2 | export * from './BoxShadow'
3 | export * from './TextShadow'
4 | export * from './Frame'
5 | export * from './Cursor'
6 |
--------------------------------------------------------------------------------
/src/lib/assets/fonts/FiraCode/FiraCode-VariableFont_wght.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/firedlabs/design-system/HEAD/src/lib/assets/fonts/FiraCode/FiraCode-VariableFont_wght.ttf
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = function (api) {
2 | api.cache(true);
3 |
4 | const presets = ["@babel/preset-env", "@babel/preset-react"];
5 |
6 | return {
7 | presets,
8 | };
9 | };
10 |
--------------------------------------------------------------------------------
/src/lib/components/Action/index.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Link } from '../../Styles/Tools'
3 |
4 | const Action = styled.a`
5 | ${Link};
6 | `
7 |
8 | export default Action
9 |
--------------------------------------------------------------------------------
/.storybook/preview-head.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/lib/components/Line/index.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | const Line = styled.hr`
4 | border: 0.5rem dashed var(--color-third);
5 | margin: var(--gap-big) 0;
6 | `
7 |
8 | export default Line
9 |
--------------------------------------------------------------------------------
/src/lib/components/Field/Textarea/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Input } from '../styles'
3 |
4 | export const TextareaStyles = styled(Input).attrs({ as: 'textarea' })`
5 | height: 300px;
6 | `
7 |
--------------------------------------------------------------------------------
/src/lib/Styles/Tools/Frame/index.js:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components'
2 |
3 | export const Container = css`
4 | display: block;
5 | width: 95%;
6 | max-width: 1340px;
7 | margin-right: auto;
8 | margin-left: auto;
9 | `
10 |
--------------------------------------------------------------------------------
/src/lib/components/FiredLabs/index.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import logo from '../../assets/images/logo.png'
3 |
4 | const FiredLabs = styled.img.attrs({ src: logo, alt: 'Logo da FiredLabs' })``
5 |
6 | export default FiredLabs
7 |
--------------------------------------------------------------------------------
/src/lib/components/ListCovers/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | export const Item = styled.li`
4 | margin-right: var(--gap-big);
5 | `
6 |
7 | export const ListCoversStyle = styled.ol`
8 | display: flex;
9 | `
10 |
--------------------------------------------------------------------------------
/src/stories/FiredLabs.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { FiredLabs } from '../lib'
3 |
4 | export default {
5 | title: 'Components/FiredLabs',
6 | component: FiredLabs
7 | }
8 |
9 | export const Default = () =>
10 |
--------------------------------------------------------------------------------
/src/lib/Styles/Settings/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Gaps from './Gaps'
3 | import Colors from './Colors'
4 |
5 | const Settings = () => (
6 | <>
7 |
8 |
9 | >
10 | )
11 |
12 | export default Settings
13 |
--------------------------------------------------------------------------------
/.storybook/main.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
3 | addons: [
4 | '@storybook/addon-links',
5 | '@storybook/addon-essentials',
6 | '@storybook/preset-create-react-app'
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/src/lib/Styles/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Settings from './Settings'
3 | import Generic from './Generic'
4 | import Elements from './Elements'
5 |
6 | export const Styles = () => (
7 | <>
8 |
9 |
10 |
11 | >
12 | )
13 |
--------------------------------------------------------------------------------
/src/lib/Styles/Elements/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Base from './Base'
3 | import Form from './Form'
4 | import Text from './Text'
5 |
6 | const Elements = () => (
7 | <>
8 |
9 |
10 |
11 | >
12 | )
13 |
14 | export default Elements
15 |
--------------------------------------------------------------------------------
/.storybook/preview.js:
--------------------------------------------------------------------------------
1 | import { Styles } from '../src/lib'
2 |
3 | export const parameters = {
4 | actions: { argTypesRegex: '^on[A-Z].*' },
5 | layout: 'centered'
6 | }
7 |
8 | export const decorators = [
9 | (Story) => (
10 | <>
11 |
12 |
13 | >
14 | )
15 | ]
16 |
--------------------------------------------------------------------------------
/src/lib/Styles/Elements/Text/index.js:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components'
2 | import { Cursor } from '../../Tools'
3 |
4 | const Text = createGlobalStyle`
5 | a {
6 | text-decoration: none;
7 | }
8 | a:hover {
9 | ${Cursor.hover};
10 | }
11 | `
12 |
13 | export default Text
14 |
--------------------------------------------------------------------------------
/src/lib/Styles/Elements/Form/index.js:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components'
2 | import { Cursor } from '../../Tools'
3 |
4 | const Form = createGlobalStyle`
5 | button {
6 | border: none;
7 |
8 | &:hover {
9 | ${Cursor.hover};
10 | }
11 | }
12 | `
13 |
14 | export default Form
15 |
--------------------------------------------------------------------------------
/src/lib/components/ListTags/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 |
3 | export const Item = styled.li`
4 | margin: var(--gap-smallest) calc(var(--gap-smallest) / 2) 0;
5 | `
6 |
7 | export const ListTagsStyle = styled.ul`
8 | display: flex;
9 | flex-wrap: wrap;
10 | align-items: center;
11 | `
12 |
--------------------------------------------------------------------------------
/src/stories/Live.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Live } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Live',
6 | component: Live
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | children: 'Live'
14 | }
15 |
--------------------------------------------------------------------------------
/src/lib/Styles/Settings/Gaps/index.js:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components'
2 |
3 | const Gaps = createGlobalStyle`
4 | :root {
5 | --gap-smallest: 1rem;
6 | --gap-small: 1.5rem;
7 | --gap-medium: 2rem;
8 | --gap-big: 4rem;
9 | --gap-biggest: 8rem;
10 | }
11 | `
12 |
13 | export default Gaps
14 |
--------------------------------------------------------------------------------
/src/lib/Styles/Tools/BoxShadow/index.js:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components'
2 |
3 | const small = css`
4 | box-shadow: 0.5rem 0.5rem 0px var(--color-black-first);
5 | `
6 |
7 | const medium = css`
8 | box-shadow: 1rem 1rem 0px var(--color-black-first);
9 | `
10 |
11 | export const BoxShadow = {
12 | small,
13 | medium
14 | }
15 |
--------------------------------------------------------------------------------
/src/stories/Loading.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Loading } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Loading',
6 | component: Loading
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | active: true
14 | }
15 |
--------------------------------------------------------------------------------
/src/stories/Timer.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Timer } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Timer',
6 | component: Timer
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | time: '00',
14 | label: 'DIAS'
15 | }
16 |
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/Fullscreen.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Fullscreen } from '../../../lib'
3 |
4 | export default {
5 | title: 'Components/VideoPlayer/Elements/Fullscreen',
6 | component: Fullscreen
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 |
--------------------------------------------------------------------------------
/src/lib/components/Countdown/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { TimerStyles } from '../Timer/styles'
3 |
4 | export const CountdownStyles = styled.div`
5 | display: flex;
6 | justify-content: center;
7 | align-items: center;
8 |
9 | & > ${TimerStyles}:not(:last-child) {
10 | margin-right: var(--gap-big);
11 | }
12 | `
13 |
--------------------------------------------------------------------------------
/src/stories/ActionCard.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { ActionCard } from '../lib'
3 |
4 | export default {
5 | title: 'Components/ActionCard',
6 | component: ActionCard
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | children: 'Usuários'
14 | }
15 |
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/PlayAndPause.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { PlayAndPause } from '../../../lib'
3 |
4 | export default {
5 | title: 'Components/VideoPlayer/Elements/PlayAndPause',
6 | component: PlayAndPause
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 |
--------------------------------------------------------------------------------
/src/stories/FloatingButton.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { FloatingButton } from '../lib'
3 |
4 | export default {
5 | title: 'Components/FloatingButton',
6 | component: FloatingButton
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | children: '+'
14 | }
15 |
--------------------------------------------------------------------------------
/src/lib/components/Field/index.js:
--------------------------------------------------------------------------------
1 | import Email from './Email'
2 | import Text from './Text'
3 | import Textarea from './Textarea'
4 | import Select from './Select'
5 | import Checkbox from './Checkbox'
6 | import Fieldset from './Fieldset'
7 |
8 | const Field = {
9 | Email,
10 | Text,
11 | Textarea,
12 | Select,
13 | Checkbox,
14 | Fieldset
15 | }
16 |
17 | export default Field
18 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/Fullscreen/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { IconPlayerWrapper, IconPlayer } from '../IconPlayer'
3 |
4 | export const IconFullcreen = styled(IconPlayer).attrs(({ active }) => ({
5 | icon: active ? 'nofullscreen' : 'fullscreen'
6 | }))`
7 | opacity: 1;
8 | `
9 |
10 | export const FullscreenStyle = styled(IconPlayerWrapper)``
11 |
--------------------------------------------------------------------------------
/src/lib/Styles/Settings/Colors/palette.js:
--------------------------------------------------------------------------------
1 | export const palette = {
2 | colorFirst: '#F25A70',
3 | colorSecond: '#7C5E99',
4 | colorThird: '#FFF',
5 |
6 | colorBlackFirst: '#000',
7 | colorBlackSecond: '#1E1E1E',
8 | colorBlackThird: '#3A4042',
9 | colorBlackFourth: '#828282',
10 |
11 | colorError: '#BA1F33',
12 | colorWarning: '#CEB02A',
13 | colorSuccess: '#62C370'
14 | }
15 |
--------------------------------------------------------------------------------
/src/lib/components/Field/Select/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Cursor } from '../../../Styles/Tools'
3 | import { Input } from '../styles'
4 |
5 | export const Option = styled.option``
6 |
7 | export const SelectStyle = styled(Input).attrs({ as: 'select' })`
8 | ${Cursor.hover};
9 |
10 | &:read-only {
11 | background-color: var(--color-third);
12 | }
13 | `
14 |
--------------------------------------------------------------------------------
/src/stories/Action.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Action } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Action',
6 | component: Action
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | children: 'https://twitch.tv/marcobrunodev',
14 | href: 'https://twitch.tv/marcobrunodev'
15 | }
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/src/lib/components/Loading/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { LoadingStyle, Square } from './styles'
4 |
5 | function Loading({ active }) {
6 | return (
7 |
8 |
9 |
10 | )
11 | }
12 |
13 | Loading.propTypes = {
14 | active: PropTypes.bool.isRequired
15 | }
16 |
17 | export default Loading
18 |
--------------------------------------------------------------------------------
/src/lib/components/ListActionImage/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { ActionImageStyle } from '../ActionImage/styles'
3 |
4 | const ListActionImageStyle = styled.ul`
5 | display: flex;
6 | flex-wrap: wrap;
7 | justify-content: center;
8 |
9 | & > ${ActionImageStyle} {
10 | margin: 0 var(--gap-small) calc(var(--gap-small) * 2);
11 | }
12 | `
13 |
14 | export default ListActionImageStyle
15 |
--------------------------------------------------------------------------------
/src/stories/Field/Textarea.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Field } from '../../lib'
3 |
4 | export default {
5 | title: 'Components/Field/Textarea',
6 | component: Field.Textarea,
7 | parameters: {
8 | layout: 'padded'
9 | }
10 | }
11 |
12 | const Template = (args) =>
13 |
14 | export const Default = Template.bind({})
15 | Default.args = {
16 | label: 'Descrição'
17 | }
18 |
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/Audio.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Audio } from '../../../lib'
3 |
4 | export default {
5 | title: 'Components/VideoPlayer/Elements/Audio',
6 | component: Audio
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | mute: false,
14 | onClick: () => {},
15 | handleVolume: () => {},
16 | volume: 50
17 | }
18 |
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/VideoPlayerTimer.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { VideoPlayerTimer } from '../../../lib'
3 |
4 | export default {
5 | title: 'Components/VideoPlayer/Elements/VideoPlayerTimer',
6 | component: VideoPlayerTimer
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | currentTime: 130,
14 | duration: 320
15 | }
16 |
--------------------------------------------------------------------------------
/src/lib/components/Image/index.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { palette } from '../../index'
3 |
4 | const changeBorderColor = ({ borderColor }) =>
5 | borderColor &&
6 | css`
7 | border-color: ${palette[borderColor]};
8 | `
9 |
10 | const Image = styled.img`
11 | box-sizing: border-box;
12 | width: 100%;
13 | border: 1rem solid var(--color-first);
14 | ${changeBorderColor};
15 | `
16 |
17 | export default Image
18 |
--------------------------------------------------------------------------------
/src/stories/Field/Select.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Field } from '../../lib'
3 |
4 | export default {
5 | title: 'Components/Field/Select',
6 | component: Field.Select,
7 | parameters: {
8 | layout: 'padded'
9 | }
10 | }
11 |
12 | const Template = (args) =>
13 |
14 | export const Default = Template.bind({})
15 | Default.args = {
16 | label: 'Tipos',
17 | name: 'types',
18 | options: ['admin', 'streamer']
19 | }
20 |
--------------------------------------------------------------------------------
/src/lib/components/Timer/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Label, Time, TimerStyles } from './styles'
4 |
5 | Timer.propTypes = {
6 | time: PropTypes.number.isRequired,
7 | label: PropTypes.string.isRequired
8 | }
9 |
10 | function Timer({ time, label }) {
11 | return (
12 |
13 |
14 |
15 |
16 | )
17 | }
18 |
19 | export default Timer
20 |
--------------------------------------------------------------------------------
/src/stories/Field/Text.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Field } from '../../lib'
3 |
4 | export default {
5 | title: 'Components/Field/Text',
6 | component: Field.Text,
7 | parameters: {
8 | layout: 'padded'
9 | }
10 | }
11 |
12 | const Template = (args) =>
13 |
14 | export const Default = Template.bind({})
15 | Default.args = {
16 | label: 'Login',
17 | placeholder: 'Seu nick aqui',
18 | type: 'text',
19 | readOnly: false
20 | }
21 |
--------------------------------------------------------------------------------
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es2021": true
5 | },
6 | "extends": [
7 | "plugin:react/recommended",
8 | "standard"
9 | ],
10 | "parserOptions": {
11 | "ecmaFeatures": {
12 | "jsx": true
13 | },
14 | "ecmaVersion": 12,
15 | "sourceType": "module"
16 | },
17 | "plugins": [
18 | "react"
19 | ],
20 | "rules": {
21 | "space-before-function-paren": 0
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/dist/Styles/Settings/Colors/palette.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.palette = void 0;
7 | var palette = {
8 | colorFirst: '#F25A70',
9 | colorSecond: '#7C5E99',
10 | colorThird: '#FFF',
11 | colorBlackFirst: '#000',
12 | colorBlackSecond: '#1E1E1E',
13 | colorBlackThird: '#3A4042',
14 | colorBlackFourth: '#828282',
15 | colorError: '#BA1F33',
16 | colorWarning: '#CEB02A',
17 | colorSuccess: '#62C370'
18 | };
19 | exports.palette = palette;
--------------------------------------------------------------------------------
/src/lib/components/ActionCard/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { BoxStyles } from '../Box/styles'
3 |
4 | export const ActionCardStyles = styled(BoxStyles)`
5 | display: flex;
6 | justify-content: center;
7 | align-items: center;
8 | color: var(--color-third);
9 | width: 280px;
10 | height: 280px;
11 | font-family: 'Press Start 2P', sans-serif;
12 | font-size: 25px;
13 | line-height: 30px;
14 | text-align: center;
15 |
16 | &:hover {
17 | transform: scale(1.05);
18 | }
19 | `
20 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/PlayAndPause/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { PlayAndPauseStyle, Play, Pause } from './styles'
4 |
5 | function PlayAndPause({ play, onClick }) {
6 | return (
7 |
8 |
9 |
10 |
11 | )
12 | }
13 |
14 | PlayAndPause.propTypes = {
15 | play: PropTypes.bool.isRequired,
16 | onClick: PropTypes.func.isRequired
17 | }
18 |
19 | export default PlayAndPause
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Design System da FiredLabs
2 |
3 | ## Início rápido
4 |
5 | Instale usando o `npm`:
6 |
7 | ```bash
8 | npm i @firedlabs/desing-system
9 | ```
10 |
11 | Instale as dependências e execute documentação (storybook) para conhecer os components:
12 |
13 | ```bash
14 | npm i
15 | npm run storybook
16 | ```
17 |
18 | Exemplo de como usar no seu projeto:
19 |
20 | ```javascript
21 | import { Button } from '@firedlabs/design-system'
22 |
23 | function Page() {
24 | return
25 | }
26 |
27 | export default Page
28 | ```
29 |
--------------------------------------------------------------------------------
/src/lib/components/Icons/index.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import html from '../../assets/icons/html.png'
3 | import css from '../../assets/icons/css.png'
4 | import twitter from '../../assets/icons/twitter.png'
5 | import twitch from '../../assets/icons/twitch.png'
6 | import youtube from '../../assets/icons/youtube.png'
7 |
8 | const icons = { html, css, twitter, twitch, youtube }
9 |
10 | const Icons = styled.img.attrs(({ name }) => ({ src: icons[name] }))`
11 | image-rendering: crisp-edges;
12 | `
13 |
14 | export default Icons
15 |
--------------------------------------------------------------------------------
/src/stories/Countdown.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Countdown } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Countdown',
6 | component: Countdown
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | paramLastDate: '2022-12-22T12:26:00'
14 | }
15 |
16 | export const MinSec = Template.bind({})
17 | MinSec.args = {
18 | paramLastDate: '2022-12-22T12:26:00',
19 | day: false,
20 | hrs: false,
21 | min: true,
22 | sec: true
23 | }
24 |
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/VideoDescription.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { VideoDescription } from '../../../lib'
3 |
4 | export default {
5 | title: 'Components/VideoPlayer/Elements/VideoDescription',
6 | component: VideoDescription
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | num: '#01',
14 | poster:
15 | 'https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217',
16 | title: 'Video feliz dos bixinhos'
17 | }
18 |
--------------------------------------------------------------------------------
/dist/Styles/Generic/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _Reset = _interopRequireDefault(require("./Reset"));
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | var Generic = function Generic() {
15 | return /*#__PURE__*/_react.default.createElement(_Reset.default, null);
16 | };
17 |
18 | var _default = Generic;
19 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/Container/index.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Container as TooolsContainer } from '../../Styles/Tools'
3 | import { ContentDayStyle } from '../ContentDay/styles'
4 | import ListContentDayStyle from '../ListContentDay/styles'
5 |
6 | const Container = styled.div`
7 | ${TooolsContainer};
8 |
9 | & > ${ListContentDayStyle} {
10 | @media (max-width: 1290px) {
11 | flex-direction: column;
12 |
13 | & > ${ContentDayStyle} {
14 | width: 100%;
15 | }
16 | }
17 | }
18 | `
19 |
20 | export default Container
21 |
--------------------------------------------------------------------------------
/src/stories/Field/Fieldset.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Field } from '../../lib'
3 |
4 | export default {
5 | title: 'Components/Field/Fieldset',
6 | component: Field.Fieldset,
7 | parameters: {
8 | layout: 'padded'
9 | }
10 | }
11 |
12 | const Template = (args) => (
13 |
14 | Exemplo
15 |
16 | )
17 |
18 | export const Default = Template.bind({})
19 |
20 | export const WithLegend = Template.bind({})
21 | WithLegend.args = {
22 | legend: 'Exemple de Legend'
23 | }
24 |
--------------------------------------------------------------------------------
/src/lib/components/Field/Fieldset/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { FieldsetStyle, Legend, Wrapper } from './styles'
4 |
5 | function Fieldset({ legend, children }) {
6 | return (
7 |
8 | {legend && }
9 | {children}
10 |
11 | )
12 | }
13 |
14 | Fieldset.defaultProps = {
15 | legend: ''
16 | }
17 |
18 | Fieldset.propTypes = {
19 | legend: PropTypes.string,
20 | children: PropTypes.element
21 | }
22 |
23 | export default Fieldset
24 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/Fullscreen/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { FullscreenStyle, IconFullcreen } from './styles'
4 |
5 | function Fullscreen({ onClick, active }) {
6 | return (
7 |
8 |
9 |
10 | )
11 | }
12 |
13 | Fullscreen.defaultProps = {
14 | active: false
15 | }
16 |
17 | Fullscreen.propTypes = {
18 | onClick: PropTypes.func.isRequired,
19 | active: PropTypes.bool
20 | }
21 |
22 | export default Fullscreen
23 |
--------------------------------------------------------------------------------
/src/lib/components/Cover/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Body2 } from '../../Styles/Tools'
3 | import ProgressBarStyle from '../ProgressBar/styles'
4 |
5 | export const Title = styled.h3`
6 | ${Body2};
7 | color: var(--color-third);
8 | margin: var(--gap-small) calc(var(--gap-smallest) / 2) 0;
9 | `
10 |
11 | export const CoverStyle = styled.article`
12 | display: flex;
13 | flex-direction: column;
14 | align-items: center;
15 | text-align: center;
16 |
17 | & > ${ProgressBarStyle} {
18 | border-top: none;
19 | width: 68.5%;
20 | }
21 | `
22 |
--------------------------------------------------------------------------------
/src/stories/ListTags.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { ListTags } from '../lib'
3 |
4 | export default {
5 | title: 'Components/ListTags',
6 | component: ListTags
7 | }
8 |
9 | const tags = [
10 | {
11 | children: 'video',
12 | backgroundColor: 'colorThird',
13 | color: 'colorBlackFirst'
14 | },
15 | {
16 | children: 'pdf',
17 | backgroundColor: 'colorThird',
18 | color: 'colorBlackFirst'
19 | }
20 | ]
21 |
22 | const Template = (args) =>
23 |
24 | export const Default = Template.bind({})
25 | Default.args = {
26 | tags
27 | }
28 |
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/VideoPlayerProgressBar.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { VideoPlayerProgressBar } from '../../../lib'
3 | import Wrapper from '../../components/Wrapper'
4 |
5 | export default {
6 | title: 'Components/VideoPlayer/Elements/VideoPlayerProgressBar',
7 | component: VideoPlayerProgressBar
8 | }
9 |
10 | const Template = (args) =>
11 |
12 | export const Default = (args) => (
13 | {Template.bind({})(args)}
14 | )
15 | Default.args = {
16 | max: 320,
17 | value: 100,
18 | buffer: 180
19 | }
20 |
--------------------------------------------------------------------------------
/src/lib/components/TitleLive/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import Image from '../Image'
3 | import { Title as toolsTitle, TextShadow } from '../../Styles/Tools'
4 |
5 | export const Title = styled.h2`
6 | ${toolsTitle};
7 | color: var(--color-third);
8 | ${TextShadow.colorSize('colorSecond', 'small')};
9 | `
10 |
11 | export const Content = styled.div``
12 |
13 | export const TitleLiveStyle = styled.div`
14 | display: flex;
15 | align-items: center;
16 |
17 | & > ${Image} {
18 | width: 6rem;
19 | border-width: 0.4rem;
20 | margin-right: var(--gap-medium);
21 | }
22 | `
23 |
--------------------------------------------------------------------------------
/src/stories/Table.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Table } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Table',
6 | component: Table
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | columns: ['', 'Login', 'Twitter'],
14 | data: [
15 | [
16 | 'https://static-cdn.jtvnw.net/jtv_user_pictures/d7f7a6aa-4376-4ebe-9c72-0a7edb0e9761-profile_image-300x300.png',
17 | 'marcobrunodev',
18 | { content: 'twitter', href: 'https://twitter.com/marcobrunodev' }
19 | ]
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/src/lib/Styles/Tools/TextShadow/index.js:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components'
2 | import { palette } from '../../Settings/Colors/palette'
3 |
4 | const sizes = {
5 | small: '0.5rem 0.5rem 0px',
6 | medium: '1rem 1rem 0px'
7 | }
8 |
9 | const small = css`
10 | text-shadow: ${sizes.small} var(--color-black-first);
11 | `
12 |
13 | const medium = css`
14 | text-shadow: ${sizes.medium} var(--color-black-first);
15 | `
16 |
17 | const colorSize = (color, size) => css`
18 | text-shadow: ${sizes[size]} ${palette[color]};
19 | `
20 |
21 | export const TextShadow = {
22 | small,
23 | medium,
24 | colorSize
25 | }
26 |
--------------------------------------------------------------------------------
/src/lib/components/Tag/index.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 | import styled from 'styled-components'
3 | import { Caption } from '../../Styles/Tools'
4 |
5 | const Tag = styled.span`
6 | ${Caption};
7 | padding: calc(var(--gap-smallest) / 2);
8 | background-color: var(--color-third);
9 | color: var(--color-black-first);
10 | `
11 |
12 | Tag.defaultProps = {
13 | backgroundColor: 'colorThird',
14 | color: 'colorBlackFirst'
15 | }
16 |
17 | Tag.propTypes = {
18 | children: PropTypes.string.isRequired,
19 | backgroundColor: PropTypes.string,
20 | color: PropTypes.string
21 | }
22 |
23 | export default Tag
24 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/PlayAndPause/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { IconPlayer, IconPlayerWrapper } from '../IconPlayer'
3 |
4 | export const Play = styled(IconPlayer).attrs({ icon: 'play' })``
5 | export const Pause = styled(IconPlayer).attrs({ icon: 'pause' })``
6 |
7 | export const PlayAndPauseStyle = styled(IconPlayerWrapper)`
8 | ${({ play }) =>
9 | play
10 | ? css`
11 | & > ${Pause} {
12 | opacity: 1;
13 | }
14 | `
15 | : css`
16 | & > ${Play} {
17 | opacity: 1;
18 | }
19 | `}
20 | `
21 |
--------------------------------------------------------------------------------
/src/lib/components/ActionCard/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { ActionCardStyles } from './styles'
4 |
5 | function ActionCard({ as, to, children, href }) {
6 | return (
7 |
8 | {children}
9 |
10 | )
11 | }
12 |
13 | ActionCard.defaultProps = {
14 | href: '#',
15 | as: 'a',
16 | to: ''
17 | }
18 |
19 | ActionCard.propTypes = {
20 | children: PropTypes.string.isRequired,
21 | as: PropTypes.string,
22 | to: PropTypes.string,
23 | href: PropTypes.string
24 | }
25 |
26 | export default ActionCard
27 |
--------------------------------------------------------------------------------
/src/stories/Field/Email.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Field } from '../../lib'
3 |
4 | export default {
5 | title: 'Components/Field/Email',
6 | component: Field.Email,
7 | parameters: {
8 | layout: 'padded'
9 | }
10 | }
11 |
12 | const Template = (args) =>
13 |
14 | export const Default = Template.bind({})
15 | Default.args = {
16 | label: 'Email',
17 | placeholder: 'seu_email@gmail.com',
18 | readOnly: false
19 | }
20 |
21 | export const ReadOnly = Template.bind({})
22 | ReadOnly.args = {
23 | label: 'Email',
24 | placeholder: 'seu_email@gmail.com',
25 | readOnly: true
26 | }
27 |
--------------------------------------------------------------------------------
/src/lib/components/ContentDay/Option/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { OptionStyle, Label, Description } from './styles'
4 |
5 | function Option({ label, description, length, color }) {
6 | return (
7 |
8 |
9 | {description}
10 |
11 | )
12 | }
13 |
14 | Option.propTypes = {
15 | label: PropTypes.string.isRequired,
16 | description: PropTypes.string.isRequired,
17 | length: PropTypes.number.isRequired,
18 | color: PropTypes.string
19 | }
20 |
21 | export default Option
22 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/VideoPlayerTimer/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { transparentize } from 'polished'
3 | import { Caption } from '../../../Styles/Tools'
4 | import { palette } from '../../../Styles/Settings/Colors/palette'
5 |
6 | const VideoPlayerTimerStyles = styled.p`
7 | ${Caption};
8 | text-align: center;
9 | color: var(--color-third);
10 | background-color: ${transparentize(0.7, palette.colorSecond)};
11 | padding: calc(var(--gap-smallest) / 2);
12 | position: absolute;
13 | top: 50%;
14 | left: 50%;
15 | transform: translate(-50%, -50%);
16 | `
17 |
18 | export default VideoPlayerTimerStyles
19 |
--------------------------------------------------------------------------------
/src/stories/TitleLive.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { TitleLive } from '../lib'
3 | import marco from './assets/marcobruno.png'
4 |
5 | export default {
6 | title: 'Components/TitleLive',
7 | component: TitleLive
8 | }
9 |
10 | const Template = (args) =>
11 |
12 | export const Default = Template.bind({})
13 | Default.args = {
14 | src: marco,
15 | alt: 'Foto do Marco Bruno',
16 | title: 'marcobrunodev',
17 | isLive: false
18 | }
19 |
20 | export const LiveOn = Template.bind({})
21 | LiveOn.args = {
22 | src: marco,
23 | alt: 'Foto do Marco Bruno',
24 | title: 'marcobrunodev',
25 | isLive: true
26 | }
27 |
--------------------------------------------------------------------------------
/src/lib/components/FloatingButton/index.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Body1, BoxShadow } from '../../Styles/Tools'
3 |
4 | const FloatingButton = styled.button`
5 | ${Body1};
6 | font-weight: bold;
7 | font-size: 4rem;
8 | display: flex;
9 | justify-content: center;
10 | align-items: center;
11 | background-color: var(--color-first);
12 | color: var(--color-third);
13 | min-height: 50px;
14 | min-width: 50px;
15 | ${BoxShadow.small};
16 | position: fixed;
17 | bottom: var(--gap-biggest);
18 | right: var(--gap-biggest);
19 |
20 | &:hover {
21 | transform: scale(1.2);
22 | }
23 | `
24 |
25 | export default FloatingButton
26 |
--------------------------------------------------------------------------------
/src/stories/components/Wrapper/index.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 |
3 | const center = ({ center }) =>
4 | center &&
5 | css`
6 | width: 100vw;
7 | height: 100vh;
8 | display: flex;
9 | place-items: center center;
10 | position: relative;
11 | `
12 |
13 | const bottom = ({ bottom }) =>
14 | bottom &&
15 | css`
16 | box-sizing: border-box;
17 | width: 100vw;
18 | height: 80vh;
19 | display: flex;
20 | justify-content: center;
21 | align-items: flex-end;
22 | position: relative;
23 | `
24 |
25 | const Wrapper = styled.div`
26 | width: 60%;
27 |
28 | ${center};
29 | ${bottom}
30 | `
31 |
32 | export default Wrapper
33 |
--------------------------------------------------------------------------------
/src/lib/components/ListTags/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import Tag from '../Tag'
4 | import { ListTagsStyle, Item } from './styles'
5 |
6 | function ListTags({ tags }) {
7 | return (
8 |
9 | {tags.map((tag) => (
10 | -
11 |
12 |
13 | ))}
14 |
15 | )
16 | }
17 |
18 | ListTags.propTypes = {
19 | tags: PropTypes.arrayOf(
20 | PropTypes.shape({
21 | children: PropTypes.string.isRequired,
22 | backgroundColor: PropTypes.string,
23 | color: PropTypes.string
24 | })
25 | )
26 | }
27 |
28 | export default ListTags
29 |
--------------------------------------------------------------------------------
/src/stories/Tag.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { palette, Tag } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Tag',
6 | component: Tag,
7 | argTypes: {
8 | backgroundColor: {
9 | control: {
10 | type: 'select',
11 | options: Object.keys(palette)
12 | }
13 | },
14 | color: {
15 | control: {
16 | type: 'select',
17 | options: Object.keys(palette)
18 | }
19 | }
20 | }
21 | }
22 |
23 | const Template = (args) =>
24 |
25 | export const Default = Template.bind({})
26 | Default.args = {
27 | children: 'video',
28 | backgroundColor: 'colorThird',
29 | color: 'colorBlackFirst'
30 | }
31 |
--------------------------------------------------------------------------------
/src/lib/Styles/Elements/Base/index.js:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components'
2 | import { Cursor } from '../../Tools'
3 |
4 | const Base = createGlobalStyle`
5 | html, body {
6 | ${Cursor.standard};
7 | font-family: 'Fira Code', sans-serif;
8 | font-size: 10px;
9 | min-width: 290px;
10 | background-color: var(--color-black-second);
11 |
12 | @media(max-width: 834px) {
13 | font-size: 7px
14 | }
15 |
16 | @media(max-width: 510px) {
17 | font-size: 6px;
18 | }
19 |
20 | @media(max-width: 430px) {
21 | font-size: 5px;
22 | }
23 |
24 | @media(max-width: 360px) {
25 | font-size: 4px;
26 | }
27 | }
28 | `
29 |
30 | export default Base
31 |
--------------------------------------------------------------------------------
/src/lib/components/Live/index.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { Body2 } from '../../Styles/Tools'
3 |
4 | const hasActive = ({ active }) =>
5 | active &&
6 | css`
7 | opacity: 1;
8 | `
9 |
10 | const Live = styled.p`
11 | display: flex;
12 | align-items: center;
13 | ${Body2};
14 | color: var(--color-error);
15 | opacity: 0;
16 | transition: opacity 200ms linear;
17 |
18 | &:before {
19 | content: '';
20 | display: inline-block;
21 | width: 2.4rem;
22 | height: 2.4rem;
23 | border-radius: 50%;
24 | background-color: var(--color-error);
25 | margin-right: var(--gap-small);
26 | }
27 |
28 | ${hasActive};
29 | `
30 |
31 | export default Live
32 |
--------------------------------------------------------------------------------
/src/stories/Form.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Form, Field, Button } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Form',
6 | component: Form,
7 | parameters: {
8 | layout: 'padded'
9 | }
10 | }
11 |
12 | const children = (
13 | <>
14 |
15 |
16 |
17 |
20 | >
21 | )
22 |
23 | const Template = (args) =>
24 |
25 | export const Default = Template.bind({})
26 | Default.args = {
27 | children,
28 | small: false,
29 | medium: false,
30 | big: false,
31 | biggest: false
32 | }
33 |
--------------------------------------------------------------------------------
/src/lib/components/ListCovers/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import Cover from '../Cover'
4 | import { ListCoversStyle, Item } from './styles'
5 |
6 | function ListCovers({ covers }) {
7 | return (
8 |
9 | {covers.map((cover) => (
10 | -
11 |
12 |
13 | ))}
14 |
15 | )
16 | }
17 |
18 | const cover = {
19 | src: PropTypes.string.isRequired,
20 | alt: PropTypes.string.isRequired,
21 | title: PropTypes.string.isRequired
22 | }
23 |
24 | ListCovers.propTypes = {
25 | covers: PropTypes.arrayOf(PropTypes.shape(cover))
26 | }
27 |
28 | export default ListCovers
29 |
--------------------------------------------------------------------------------
/src/stories/Field/Checkbox.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Field } from '../../lib'
3 |
4 | export default {
5 | title: 'Components/Field/Checkbox',
6 | component: Field.Checkbox
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | children: 'Follow',
14 | small: false,
15 | active: false,
16 | name: 'foollow',
17 | register: () => {},
18 | value: '',
19 | onClick: () => {}
20 | }
21 |
22 | export const Small = Template.bind({})
23 | Small.args = {
24 | children: 'Follow',
25 | small: true,
26 | active: false,
27 | name: 'foollow',
28 | register: () => {},
29 | value: '',
30 | onClick: () => {}
31 | }
32 |
--------------------------------------------------------------------------------
/src/stories/Image.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import marco from './assets/marcobruno.png'
3 | import { Image, palette } from '../lib'
4 | import Wrapper from './components/Wrapper'
5 |
6 | export default {
7 | title: 'Components/Image',
8 | component: Image,
9 | argTypes: {
10 | borderColor: {
11 | control: {
12 | type: 'select',
13 | options: Object.keys(palette)
14 | }
15 | }
16 | },
17 | parameters: {
18 | layout: 'padded'
19 | }
20 | }
21 |
22 | const Template = (args) => (
23 |
24 |
25 |
26 | )
27 |
28 | export const Default = Template.bind({})
29 | Default.args = {
30 | borderColor: 'colorFirst'
31 | }
32 |
--------------------------------------------------------------------------------
/src/lib/Styles/Settings/Colors/index.js:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components'
2 | import { palette } from './palette'
3 |
4 | const Colors = createGlobalStyle`
5 | :root {
6 | --color-first: ${palette.colorFirst};
7 | --color-second: ${palette.colorSecond};
8 | --color-third: ${palette.colorThird};
9 |
10 | --color-black-first: ${palette.colorBlackFirst};
11 | --color-black-second: ${palette.colorBlackSecond};
12 | --color-black-third: ${palette.colorBlackThird};
13 | --color-black-fourth: ${palette.colorBlackFourth};
14 |
15 | --color-error: ${palette.colorError};
16 | --color-warning: ${palette.colorWarning};
17 | --color-success: ${palette.colorSuccess};
18 | }
19 | `
20 |
21 | export default Colors
22 |
--------------------------------------------------------------------------------
/src/lib/components/Timer/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Subtitle, BoxShadow, Body2 } from '../../Styles/Tools'
3 |
4 | export const Time = styled.dd`
5 | display: flex;
6 | justify-content: center;
7 | align-items: center;
8 | color: var(--color-black-first);
9 | ${Subtitle};
10 | padding: var(--gap-medium) var(--gap-smallest);
11 | background-color: var(--color-third);
12 | ${BoxShadow.small};
13 | margin-bottom: calc(var(--gap-smallest) / 2);
14 | `
15 |
16 | export const Label = styled.dt`
17 | ${Body2};
18 | text-transform: uppercase;
19 | color: var(--color-black-first);
20 | `
21 |
22 | export const TimerStyles = styled.dl`
23 | display: flex;
24 | flex-direction: column;
25 | align-items: center;
26 | `
27 |
--------------------------------------------------------------------------------
/dist/Styles/Settings/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _Gaps = _interopRequireDefault(require("./Gaps"));
11 |
12 | var _Colors = _interopRequireDefault(require("./Colors"));
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | var Settings = function Settings() {
17 | return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Gaps.default, null), /*#__PURE__*/_react.default.createElement(_Colors.default, null));
18 | };
19 |
20 | var _default = Settings;
21 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/Form/index.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { BoxStyles } from '../Box/styles'
3 |
4 | const hasSmall = ({ small }) =>
5 | small &&
6 | css`
7 | margin-bottom: var(--gap-small);
8 | `
9 |
10 | const hasMedium = ({ medium }) =>
11 | medium &&
12 | css`
13 | margin-bottom: var(--gap-medium);
14 | `
15 |
16 | const hasBig = ({ big }) =>
17 | big &&
18 | css`
19 | margin-bottom: var(--gap-big);
20 | `
21 |
22 | const hasBiggest = ({ biggest }) =>
23 | biggest &&
24 | css`
25 | margin-bottom: var(--gap-biggest);
26 | `
27 |
28 | const Form = styled(BoxStyles).attrs({ as: 'form' })`
29 | ${hasSmall};
30 | ${hasMedium};
31 | ${hasBig};
32 | ${hasBiggest};
33 | `
34 |
35 | export default Form
36 |
--------------------------------------------------------------------------------
/src/stories/Profile.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Profile } from '../lib'
3 | import marco from './assets/marcobruno.png'
4 |
5 | export default {
6 | title: 'Components/Profile',
7 | component: Profile,
8 | parameters: {
9 | layout: 'padded'
10 | }
11 | }
12 |
13 | const Template = (args) =>
14 |
15 | export const Default = Template.bind({})
16 | Default.args = {
17 | name: 'Marco Bruno',
18 | socialMedias: [
19 | {
20 | name: 'twitter',
21 | url: 'https://twitter.com/marcobrunodev'
22 | },
23 | {
24 | name: 'twitch',
25 | url: 'https://twitch.tv/marcobrunodev'
26 | },
27 | {
28 | name: 'youtube',
29 | url: 'https://youtube.com/collabcode'
30 | }
31 | ]
32 | }
33 |
--------------------------------------------------------------------------------
/src/lib/components/Field/Fieldset/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Body1 } from '../../../Styles/Tools'
3 | import { CheckboxStyle } from '../Checkbox/styles'
4 |
5 | export const Legend = styled.legend`
6 | ${Body1};
7 | font-weight: bold;
8 | color: var(--color-third);
9 | margin-left: 1rem;
10 | `
11 |
12 | export const Wrapper = styled.div`
13 | display: flex;
14 | justify-content: center;
15 | flex-wrap: wrap;
16 |
17 | & > ${CheckboxStyle} {
18 | margin: 0 var(--gap-small) var(--gap-medium);
19 | }
20 | `
21 |
22 | export const FieldsetStyle = styled.fieldset`
23 | display: flex;
24 | flex-direction: column;
25 | border: 0.5rem dashed var(--color-third);
26 | padding-top: var(--gap-medium);
27 | margin-bottom: var(--gap-small);
28 | `
29 |
--------------------------------------------------------------------------------
/dist/Styles/Tools/Frame/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.Container = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | function _templateObject() {
11 | var data = _taggedTemplateLiteral(["\n display: block;\n width: 95%;\n max-width: 1340px;\n margin-right: auto;\n margin-left: auto;\n"]);
12 |
13 | _templateObject = function _templateObject() {
14 | return data;
15 | };
16 |
17 | return data;
18 | }
19 |
20 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
21 |
22 | var Container = (0, _styledComponents.css)(_templateObject());
23 | exports.Container = Container;
--------------------------------------------------------------------------------
/src/lib/components/Field/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Body1 } from '../../Styles/Tools'
3 |
4 | export const Content = styled.span`
5 | margin-bottom: var(--gap-smallest);
6 | color: var(--color-third);
7 | font-weight: bold;
8 | `
9 |
10 | export const Input = styled.input`
11 | ${Body1};
12 | box-sizing: border-box;
13 | background-color: var(--color-third);
14 | color: var(--color-black-first);
15 | padding: var(--gap-small);
16 | border: none;
17 | width: 100%;
18 |
19 | &:read-only {
20 | background-color: var(--color-black-fourth);
21 | }
22 | `
23 |
24 | export const Label = styled.label`
25 | ${Body1};
26 | box-sizing: border-box;
27 | display: flex;
28 | flex-direction: column;
29 | margin-bottom: var(--gap-small);
30 | width: 100%;
31 | `
32 |
--------------------------------------------------------------------------------
/src/stories/Modal.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Modal, Button, Line, Field } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Modal',
6 | componet: Modal,
7 | parameters: {
8 | layout: 'fullscreen'
9 | },
10 | argTypes: {
11 | onClick: { action: 'clicked' }
12 | }
13 | }
14 |
15 | const Template = (args) =>
16 |
17 | const children = (
18 | <>
19 |
22 |
23 |
24 |
25 |
26 |
27 | >
28 | )
29 |
30 | export const Default = Template.bind({})
31 | Default.args = {
32 | title: 'Confirme sua matrícula',
33 | children,
34 | active: true,
35 | actionClose: () => {}
36 | }
37 |
--------------------------------------------------------------------------------
/dist/components/Loading/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function Loading(_ref) {
17 | var active = _ref.active;
18 | return /*#__PURE__*/_react.default.createElement(_styles.LoadingStyle, {
19 | active: active
20 | }, /*#__PURE__*/_react.default.createElement(_styles.Square, null));
21 | }
22 |
23 | Loading.propTypes = {
24 | active: _propTypes.default.bool.isRequired
25 | };
26 | var _default = Loading;
27 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/VideoDescription/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Body2, Cursor, Subtitle } from '../../../Styles/Tools'
3 |
4 | export const Number = styled.strong`
5 | display: block;
6 | ${Subtitle};
7 | margin-bottom: var(--gap-smallest);
8 | `
9 |
10 | export const Title = styled.figcaption`
11 | ${Body2};
12 | color: var(--color-third);
13 | `
14 |
15 | export const MiniThumb = styled.img`
16 | box-sizing: border-box;
17 | height: 10rem;
18 | border: 0.5rem solid var(--color-first);
19 | margin-right: var(--gap-small);
20 | `
21 |
22 | export const VideoDescriptionStyle = styled.figure`
23 | display: flex;
24 | align-items: flex-start;
25 | ${Cursor.hover};
26 | transform-origin: center left;
27 |
28 | &:hover {
29 | transform: scale(1.05);
30 | }
31 | `
32 |
--------------------------------------------------------------------------------
/src/lib/components/TitleLive/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import Live from '../Live'
4 | import Image from '../Image'
5 | import { TitleLiveStyle, Content, Title } from './styles'
6 |
7 | function TitleLive({ src, alt, title, isLive }) {
8 | return (
9 |
10 |
11 |
12 | Live
13 | {title}
14 |
15 |
16 | )
17 | }
18 |
19 | TitleLive.defaultProps = {
20 | isLive: false
21 | }
22 |
23 | TitleLive.propTypes = {
24 | src: PropTypes.string.isRequired,
25 | alt: PropTypes.string.isRequired,
26 | title: PropTypes.string.isRequired,
27 | isLive: PropTypes.bool
28 | }
29 |
30 | export default TitleLive
31 |
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/PlaybackRate.stories.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react'
2 | import Wrapper from '../../components/Wrapper'
3 | import { PlaybackRate } from '../../../lib'
4 |
5 | export default {
6 | title: 'Components/VideoPlayer/Elements/PlaybackRate',
7 | component: PlaybackRate
8 | }
9 |
10 | const Template = (args) => {
11 | const [active, setActive] = useState(false)
12 |
13 | const toggleVelocity = () => {
14 | setActive((old) => !old)
15 | }
16 |
17 | return (
18 |
19 |
24 |
25 | )
26 | }
27 | const velocities = ['0.25', '0.5', '0.75', '1', '1.25', '1.5', '1.75', '2']
28 |
29 | export const Default = Template.bind({})
30 | Default.args = {
31 | velocities
32 | }
33 |
--------------------------------------------------------------------------------
/dist/Styles/Elements/Text/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | var _Tools = require("../../Tools");
11 |
12 | function _templateObject() {
13 | var data = _taggedTemplateLiteral(["\n a {\n text-decoration: none;\n }\n a:hover {\n ", ";\n }\n"]);
14 |
15 | _templateObject = function _templateObject() {
16 | return data;
17 | };
18 |
19 | return data;
20 | }
21 |
22 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23 |
24 | var Text = (0, _styledComponents.createGlobalStyle)(_templateObject(), _Tools.Cursor.hover);
25 | var _default = Text;
26 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/Styles/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.Styles = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _Settings = _interopRequireDefault(require("./Settings"));
11 |
12 | var _Generic = _interopRequireDefault(require("./Generic"));
13 |
14 | var _Elements = _interopRequireDefault(require("./Elements"));
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | var Styles = function Styles() {
19 | return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Settings.default, null), /*#__PURE__*/_react.default.createElement(_Generic.default, null), /*#__PURE__*/_react.default.createElement(_Elements.default, null));
20 | };
21 |
22 | exports.Styles = Styles;
--------------------------------------------------------------------------------
/dist/Styles/Elements/Form/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | var _Tools = require("../../Tools");
11 |
12 | function _templateObject() {
13 | var data = _taggedTemplateLiteral(["\n button {\n border: none;\n\n &:hover {\n ", ";\n }\n }\n"]);
14 |
15 | _templateObject = function _templateObject() {
16 | return data;
17 | };
18 |
19 | return data;
20 | }
21 |
22 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23 |
24 | var Form = (0, _styledComponents.createGlobalStyle)(_templateObject(), _Tools.Cursor.hover);
25 | var _default = Form;
26 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/Styles/Settings/Gaps/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | function _templateObject() {
11 | var data = _taggedTemplateLiteral(["\n :root {\n --gap-smallest: 1rem;\n --gap-small: 1.5rem;\n --gap-medium: 2rem;\n --gap-big: 4rem;\n --gap-biggest: 8rem; \n }\n"]);
12 |
13 | _templateObject = function _templateObject() {
14 | return data;
15 | };
16 |
17 | return data;
18 | }
19 |
20 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
21 |
22 | var Gaps = (0, _styledComponents.createGlobalStyle)(_templateObject());
23 | var _default = Gaps;
24 | exports.default = _default;
--------------------------------------------------------------------------------
/src/stories/Description.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Description } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Description',
6 | component: Description
7 | }
8 |
9 | const Template = (args) =>
10 | const children = (
11 | <>
12 | Será uma semana de conteúdo com uma aula nova todos os dias, começando no
13 | dia 08/02/2021. As aula serão liberadas às{' '}
14 | 06:32 da madrugada na FiredLabs e terá plantão de dúvidas
15 | ao vivo às 17:33 na{' '}
16 | twitch.tv/marcobrunodev todos
17 | os dias durante a semana do curso.
18 | >
19 | )
20 |
21 | export const Default = Template.bind({})
22 | Default.args = {
23 | children,
24 | small: true,
25 | medium: false,
26 | big: false,
27 | biggest: false
28 | }
29 |
--------------------------------------------------------------------------------
/dist/Styles/Elements/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _Base = _interopRequireDefault(require("./Base"));
11 |
12 | var _Form = _interopRequireDefault(require("./Form"));
13 |
14 | var _Text = _interopRequireDefault(require("./Text"));
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | var Elements = function Elements() {
19 | return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Base.default, null), /*#__PURE__*/_react.default.createElement(_Form.default, null), /*#__PURE__*/_react.default.createElement(_Text.default, null));
20 | };
21 |
22 | var _default = Elements;
23 | exports.default = _default;
--------------------------------------------------------------------------------
/src/stories/Icons.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Icons } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Icons',
6 | component: Icons,
7 | argTypes: {
8 | name: {
9 | control: {
10 | type: 'select',
11 | options: ['html', 'css', 'twitter', 'twitch', 'youtube']
12 | }
13 | }
14 | }
15 | }
16 |
17 | const Template = (args) =>
18 |
19 | export const Html = Template.bind({})
20 | Html.args = {
21 | name: 'html'
22 | }
23 |
24 | export const Css = Template.bind({})
25 | Css.args = {
26 | name: 'css'
27 | }
28 |
29 | export const Twitter = Template.bind({})
30 | Twitter.args = {
31 | name: 'twitter'
32 | }
33 |
34 | export const Twitch = Template.bind({})
35 | Twitch.args = {
36 | name: 'twitch'
37 | }
38 |
39 | export const Youtube = Template.bind({})
40 | Youtube.args = {
41 | name: 'youtube'
42 | }
43 |
--------------------------------------------------------------------------------
/src/stories/Container.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Container, Description } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Container',
6 | component: Container
7 | }
8 |
9 | export const Default = () => (
10 |
11 |
12 | Hoje, instrutor e desenvolvedor FrontEnd/UX pela CollabCode, Marco já
13 | trabalhou nas mais diversas áreas. Foi palhaço, entrou na área de TI como
14 | desenvolvedor HMI/PLC e gosta de ir descobrindo seu caminho conforme o
15 | percorre. Marco também tem uma crescente presença em comunidades de UX e
16 | Front-end, trabalhando para uní-las, palestra em empresas e eventos como o
17 | WebBR, escreve em diversos blogs como o da Caelum, o Pinceladas da Web e
18 | seu Medium, quando não está jogando Airsoft ou trocando ideias com amigos.
19 |
20 |
21 | )
22 |
--------------------------------------------------------------------------------
/src/lib/components/Field/Email/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Label, Content, Input } from '../styles'
4 |
5 | function Email({ name, label, placeholder, readOnly, register }) {
6 | return (
7 |
17 | )
18 | }
19 |
20 | Email.defaultProps = {
21 | label: 'Email',
22 | name: 'email',
23 | placeholder: 'seu_email@gmail.com',
24 | readOnly: false,
25 | register: () => {}
26 | }
27 |
28 | Email.propTypes = {
29 | label: PropTypes.string,
30 | name: PropTypes.string,
31 | placeholder: PropTypes.string,
32 | readOnly: PropTypes.string,
33 | register: PropTypes.func
34 | }
35 |
36 | export default Email
37 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/VideoPlayerTimer/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import VideoPlayerTimerStyle from './styles'
4 |
5 | function VideoPlayerTimer({ currentTime, duration }) {
6 | const formatTimer = (time) => {
7 | const date = new Date(0)
8 | date.setSeconds(time)
9 | const formatNum = date.toISOString().substr(11, 8)
10 |
11 | return /^00/.test(formatNum) ? formatNum.replace('00:', '') : formatNum
12 | }
13 |
14 | return (
15 |
16 | {`${formatTimer(currentTime)} / ${formatTimer(duration)}`}
17 |
18 | )
19 | }
20 |
21 | VideoPlayerTimer.propTypes = {
22 | currentTime: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
23 | .isRequired,
24 | duration: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired
25 | }
26 |
27 | export default VideoPlayerTimer
28 |
--------------------------------------------------------------------------------
/src/lib/components/Field/Textarea/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Content, Label } from '../styles'
4 | import { TextareaStyles } from './styles'
5 |
6 | function Textarea({ name, label, placeholder, readOnly, register }) {
7 | return (
8 |
17 | )
18 | }
19 |
20 | Textarea.defaultProps = {
21 | name: '',
22 | label: '',
23 | placeholder: '',
24 | readOnly: false,
25 | register: () => {}
26 | }
27 |
28 | Textarea.propTypes = {
29 | name: PropTypes.string,
30 | label: PropTypes.string,
31 | placeholder: PropTypes.string,
32 | readOnly: PropTypes.bool,
33 | register: PropTypes.func
34 | }
35 |
36 | export default Textarea
37 |
--------------------------------------------------------------------------------
/dist/components/Line/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11 |
12 | function _templateObject() {
13 | var data = _taggedTemplateLiteral(["\n border: 0.5rem dashed var(--color-third);\n margin: var(--gap-big) 0;\n"]);
14 |
15 | _templateObject = function _templateObject() {
16 | return data;
17 | };
18 |
19 | return data;
20 | }
21 |
22 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23 |
24 | var Line = _styledComponents.default.hr(_templateObject());
25 |
26 | var _default = Line;
27 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/Field/Text/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Label, Content, Input } from '../styles'
4 |
5 | function Text({ name, type, label, placeholder, readOnly, register }) {
6 | return (
7 |
17 | )
18 | }
19 |
20 | Text.defaultProps = {
21 | name: '',
22 | type: 'text',
23 | label: '',
24 | placeholder: '',
25 | readOnly: false,
26 | register: () => {}
27 | }
28 |
29 | Text.propTypes = {
30 | name: PropTypes.string,
31 | type: PropTypes.string,
32 | label: PropTypes.string,
33 | placeholder: PropTypes.string,
34 | readOnly: PropTypes.bool,
35 | register: PropTypes.func
36 | }
37 |
38 | export default Text
39 |
--------------------------------------------------------------------------------
/src/lib/components/Heading/index.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { Heading as toolsHeading, TextShadow } from '../../Styles/Tools'
3 |
4 | const hasSmall = ({ small }) =>
5 | small &&
6 | css`
7 | margin-bottom: var(--gap-small);
8 | `
9 |
10 | const hasMedium = ({ medium }) =>
11 | medium &&
12 | css`
13 | margin-bottom: var(--gap-medium);
14 | `
15 |
16 | const hasBig = ({ big }) =>
17 | big &&
18 | css`
19 | margin-bottom: var(--gap-big);
20 | `
21 |
22 | const hasBiggest = ({ biggest }) =>
23 | biggest &&
24 | css`
25 | margin-bottom: var(--gap-biggest);
26 | `
27 |
28 | const Heading = styled.h1`
29 | ${toolsHeading};
30 | color: var(--color-third);
31 | ${TextShadow.small};
32 | text-align: center;
33 | margin-bottom: var(--gap-smallest);
34 |
35 | ${hasSmall};
36 | ${hasMedium};
37 | ${hasBig};
38 | ${hasBiggest};
39 | `
40 |
41 | export default Heading
42 |
--------------------------------------------------------------------------------
/src/lib/components/Modal/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import Heading from '../Heading'
4 | import Action from '../Action'
5 | import { ModalStyle, Box } from './styles'
6 |
7 | function Modal({ title, children, active, actionClose }) {
8 | const handleClick = (event) => {
9 | if (event.target.tagName === 'SECTION') {
10 | actionClose()
11 | }
12 | }
13 |
14 | return (
15 |
16 | {title}
17 |
18 | {children}
19 |
20 |
21 | Fechar
22 |
23 |
24 | )
25 | }
26 |
27 | Modal.propTypes = {
28 | title: PropTypes.string.isRequired,
29 | children: PropTypes.element.isRequired,
30 | active: PropTypes.bool.isRequired,
31 | actionClose: PropTypes.func.isRequired
32 | }
33 |
34 | export default Modal
35 |
--------------------------------------------------------------------------------
/dist/components/Action/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _Tools = require("../../Styles/Tools");
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject() {
15 | var data = _taggedTemplateLiteral(["\n ", ";\n"]);
16 |
17 | _templateObject = function _templateObject() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25 |
26 | var Action = _styledComponents.default.a(_templateObject(), _Tools.Link);
27 |
28 | var _default = Action;
29 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/Field/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _Email = _interopRequireDefault(require("./Email"));
9 |
10 | var _Text = _interopRequireDefault(require("./Text"));
11 |
12 | var _Textarea = _interopRequireDefault(require("./Textarea"));
13 |
14 | var _Select = _interopRequireDefault(require("./Select"));
15 |
16 | var _Checkbox = _interopRequireDefault(require("./Checkbox"));
17 |
18 | var _Fieldset = _interopRequireDefault(require("./Fieldset"));
19 |
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21 |
22 | var Field = {
23 | Email: _Email.default,
24 | Text: _Text.default,
25 | Textarea: _Textarea.default,
26 | Select: _Select.default,
27 | Checkbox: _Checkbox.default,
28 | Fieldset: _Fieldset.default
29 | };
30 | var _default = Field;
31 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/Timer/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | Timer.propTypes = {
17 | time: _propTypes.default.number.isRequired,
18 | label: _propTypes.default.string.isRequired
19 | };
20 |
21 | function Timer(_ref) {
22 | var time = _ref.time,
23 | label = _ref.label;
24 | return /*#__PURE__*/_react.default.createElement(_styles.TimerStyles, null, /*#__PURE__*/_react.default.createElement(_styles.Time, null, time), /*#__PURE__*/_react.default.createElement(_styles.Label, null, label));
25 | }
26 |
27 | var _default = Timer;
28 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/Audio/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { AudioStyle, AudioIcon, Mute, VolumeBar, InputRange } from './styles'
4 |
5 | function Audio({ mute, onClick, handleVolume, volume }) {
6 | const handleClick = (event) => {
7 | event.stopPropagation()
8 | }
9 |
10 | return (
11 |
12 |
13 |
14 |
15 |
20 |
21 |
22 |
23 | )
24 | }
25 |
26 | Audio.propTypes = {
27 | mute: PropTypes.bool.isRequired,
28 | onClick: PropTypes.func.isRequired,
29 | handleVolume: PropTypes.func.isRequired,
30 | volume: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired
31 | }
32 |
33 | export default Audio
34 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/VideoPlayerProgressBar/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Bar, VideoPlayerProgressBarStyle, InputRange, Buffer } from './styles'
4 |
5 | function VideoPlayerProgressBar({ max, value, onChange, buffer }) {
6 | const progress = (value / max) * 100
7 | const progressBuffer = (buffer / max) * 100
8 |
9 | return (
10 |
11 |
12 |
13 |
14 |
15 | )
16 | }
17 |
18 | VideoPlayerProgressBar.defaultProps = {
19 | max: 100,
20 | value: 0
21 | }
22 |
23 | VideoPlayerProgressBar.propTypes = {
24 | max: PropTypes.number,
25 | value: PropTypes.number,
26 | onChange: PropTypes.func.isRequired,
27 | buffer: PropTypes.number.isRequired
28 | }
29 |
30 | export default VideoPlayerProgressBar
31 |
--------------------------------------------------------------------------------
/dist/components/Field/Textarea/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.TextareaStyles = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _styles = require("../styles");
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject() {
15 | var data = _taggedTemplateLiteral(["\n height: 300px;\n"]);
16 |
17 | _templateObject = function _templateObject() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25 |
26 | var TextareaStyles = (0, _styledComponents.default)(_styles.Input).attrs({
27 | as: 'textarea'
28 | })(_templateObject());
29 | exports.TextareaStyles = TextareaStyles;
--------------------------------------------------------------------------------
/src/stories/ProgressBar.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { palette, ProgressBar } from '../lib'
3 |
4 | const colors = {
5 | control: {
6 | type: 'select',
7 | options: Object.keys(palette)
8 | }
9 | }
10 |
11 | export default {
12 | title: 'Components/ProgressBar',
13 | component: ProgressBar,
14 | parameters: {
15 | layout: 'padded'
16 | },
17 | argTypes: {
18 | boxShadow: {
19 | control: {
20 | type: 'select',
21 | options: [false, 'small']
22 | }
23 | },
24 | borderColor: colors,
25 | color: colors,
26 | barColor: colors,
27 | backgroundColor: colors
28 | }
29 | }
30 |
31 | const Template = (args) =>
32 |
33 | export const Default = Template.bind({})
34 | Default.args = {
35 | valueNow: 60,
36 | valueMax: 100,
37 | boxShadow: false,
38 | borderColor: 'colorSecond',
39 | color: 'colorBlackFirst',
40 | barColor: 'colorSuccess',
41 | backgroundColor: 'colorThird'
42 | }
43 |
--------------------------------------------------------------------------------
/src/lib/components/ListContentDay/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import ContentDay from '../ContentDay'
4 | import ListContentDayStyle from './styles'
5 |
6 | function ListContentDay({ days }) {
7 | return (
8 |
9 | {days.map((day) => (
10 |
11 | ))}
12 |
13 | )
14 | }
15 |
16 | const contentDay = {
17 | title: PropTypes.string.isRequired,
18 | goal: PropTypes.string.isRequired,
19 | options: PropTypes.arrayOf(
20 | PropTypes.shape({
21 | label: PropTypes.string.isRequired,
22 | description: PropTypes.string.isRequired,
23 | length: PropTypes.number.isRequired
24 | })
25 | ),
26 | color: PropTypes.string,
27 | fontColor: PropTypes.string
28 | }
29 |
30 | ListContentDay.propTypes = {
31 | days: PropTypes.arrayOf(PropTypes.shape(contentDay))
32 | }
33 |
34 | export default ListContentDay
35 |
--------------------------------------------------------------------------------
/src/lib/components/Profile/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Action, Nav, ProfileStyle } from './styles'
4 | import Title from '../Title'
5 | import Image from '../Image'
6 | import Icons from '../Icons'
7 |
8 | function Profile({ name, avatar, socialMedias }) {
9 | return (
10 |
11 | {name}
12 |
13 |
20 |
21 | )
22 | }
23 |
24 | Profile.propTypes = {
25 | name: PropTypes.string.isRequired,
26 | avatar: PropTypes.string.isRequired,
27 | socialMedias: PropTypes.arrayOf(
28 | PropTypes.shape({
29 | name: PropTypes.string.isRequired,
30 | url: PropTypes.string.isRequired
31 | }).isRequired
32 | )
33 | }
34 |
35 | export default Profile
36 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/VideoDescription/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { VideoDescriptionStyle, MiniThumb, Title, Number } from './styles'
4 |
5 | function VideoDescription({ id, key, poster, title, num, onClick, type }) {
6 | return (
7 |
8 |
9 |
10 |
11 | {num}
12 | {title}
13 |
14 |
15 | )
16 | }
17 |
18 | VideoDescription.defaultProps = {
19 | onClick: () => {}
20 | }
21 |
22 | VideoDescription.propTypes = {
23 | poster: PropTypes.string.isRequired,
24 | title: PropTypes.string.isRequired,
25 | num: PropTypes.string.isRequired,
26 | id: PropTypes.string.isRequired,
27 | key: PropTypes.string.isRequired,
28 | type: PropTypes.string.isRequired,
29 | onClick: PropTypes.func
30 | }
31 |
32 | export default VideoDescription
33 |
--------------------------------------------------------------------------------
/dist/components/Field/Fieldset/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function Fieldset(_ref) {
17 | var legend = _ref.legend,
18 | children = _ref.children;
19 | return /*#__PURE__*/_react.default.createElement(_styles.FieldsetStyle, null, legend && /*#__PURE__*/_react.default.createElement(_styles.Legend, null, legend), /*#__PURE__*/_react.default.createElement(_styles.Wrapper, null, children));
20 | }
21 |
22 | Fieldset.defaultProps = {
23 | legend: ''
24 | };
25 | Fieldset.propTypes = {
26 | legend: _propTypes.default.string,
27 | children: _propTypes.default.element
28 | };
29 | var _default = Fieldset;
30 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/Fullscreen/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function Fullscreen(_ref) {
17 | var onClick = _ref.onClick,
18 | active = _ref.active;
19 | return /*#__PURE__*/_react.default.createElement(_styles.FullscreenStyle, {
20 | onClick: onClick
21 | }, /*#__PURE__*/_react.default.createElement(_styles.IconFullcreen, {
22 | active: active
23 | }));
24 | }
25 |
26 | Fullscreen.defaultProps = {
27 | active: false
28 | };
29 | Fullscreen.propTypes = {
30 | onClick: _propTypes.default.func.isRequired,
31 | active: _propTypes.default.bool
32 | };
33 | var _default = Fullscreen;
34 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/PlayAndPause/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function PlayAndPause(_ref) {
17 | var play = _ref.play,
18 | onClick = _ref.onClick;
19 | return /*#__PURE__*/_react.default.createElement(_styles.PlayAndPauseStyle, {
20 | play: play,
21 | onClick: onClick
22 | }, /*#__PURE__*/_react.default.createElement(_styles.Play, null), /*#__PURE__*/_react.default.createElement(_styles.Pause, null));
23 | }
24 |
25 | PlayAndPause.propTypes = {
26 | play: _propTypes.default.bool.isRequired,
27 | onClick: _propTypes.default.func.isRequired
28 | };
29 | var _default = PlayAndPause;
30 | exports.default = _default;
--------------------------------------------------------------------------------
/src/stories/Cover.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Cover } from '../lib'
3 | import curso from './assets/curso-html-css.png'
4 |
5 | const tags = [
6 | {
7 | children: 'video',
8 | backgroundColor: 'colorThird',
9 | color: 'colorBlackFirst'
10 | },
11 | {
12 | children: 'pdf',
13 | backgroundColor: 'colorThird',
14 | color: 'colorBlackFirst'
15 | }
16 | ]
17 |
18 | const progress = {
19 | valueNow: 40,
20 | valueMax: 164
21 | }
22 |
23 | export default {
24 | title: 'Components/Cover',
25 | component: Cover
26 | }
27 |
28 | const Template = (args) =>
29 |
30 | export const Default = Template.bind({})
31 | Default.args = {
32 | src: curso,
33 | alt: 'Curso feliz de HTML e CSS',
34 | title: 'Curso feliz de HTML e CSS',
35 | tags
36 | }
37 |
38 | export const WithProgressBar = Template.bind({})
39 | WithProgressBar.args = {
40 | src: curso,
41 | alt: 'Curso feliz de HTML e CSS',
42 | title: 'Curso feliz de HTML e CSS',
43 | tags,
44 | progress
45 | }
46 |
--------------------------------------------------------------------------------
/dist/components/FiredLabs/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _logo = _interopRequireDefault(require("../../assets/images/logo.png"));
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject() {
15 | var data = _taggedTemplateLiteral([""]);
16 |
17 | _templateObject = function _templateObject() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25 |
26 | var FiredLabs = _styledComponents.default.img.attrs({
27 | src: _logo.default,
28 | alt: 'Logo da FiredLabs'
29 | })(_templateObject());
30 |
31 | var _default = FiredLabs;
32 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/Field/Checkbox/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Check, CheckboxStyle, Content, Icon } from './styles'
4 |
5 | function Checkbox({ children, active, name, register, value, onClick, small }) {
6 | return (
7 |
8 |
14 |
15 | {children}
16 |
17 | )
18 | }
19 |
20 | Checkbox.defaultProps = {
21 | active: false,
22 | onClick: () => {},
23 | value: '',
24 | small: false
25 | }
26 |
27 | Checkbox.propTypes = {
28 | children: PropTypes.string.isRequired,
29 | name: PropTypes.string.isRequired,
30 | register: PropTypes.func.isRequired,
31 | value: PropTypes.string,
32 | onClick: PropTypes.func,
33 | active: PropTypes.bool,
34 | small: PropTypes.bool
35 | }
36 |
37 | export default Checkbox
38 |
--------------------------------------------------------------------------------
/src/lib/components/ListContentDay/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { ContentDayStyle } from '../ContentDay/styles'
3 |
4 | const isOdd = ({ length }) =>
5 | length % 2 === 1 &&
6 | css`
7 | &:last-child {
8 | width: 100%;
9 | min-width: 100%;
10 | }
11 | `
12 |
13 | const ListContentDayStyle = styled.div`
14 | display: flex;
15 | flex-wrap: wrap;
16 | justify-content: space-between;
17 |
18 | & > ${ContentDayStyle} {
19 | width: calc(50% - var(--gap-biggest) / 2);
20 | margin-bottom: var(--gap-biggest);
21 | min-width: 560px;
22 | flex-shrink: 0;
23 |
24 | &:nth-child(odd) {
25 | margin-right: var(--gap-biggest);
26 | }
27 |
28 | ${isOdd};
29 | }
30 |
31 | @media (max-width: 1225px) {
32 | flex-direction: column;
33 |
34 | & > ${ContentDayStyle} {
35 | width: 100%;
36 | min-width: 100%;
37 |
38 | :nth-child(odd) {
39 | margin-right: 0;
40 | }
41 | }
42 | }
43 | `
44 |
45 | export default ListContentDayStyle
46 |
--------------------------------------------------------------------------------
/src/lib/components/Description/index.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { Body1, Link } from '../../Styles/Tools'
3 |
4 | const hasDark = ({ dark }) =>
5 | dark &&
6 | css`
7 | color: var(--color-black-first);
8 | `
9 | const hasSmall = ({ small }) =>
10 | small &&
11 | css`
12 | margin-bottom: var(--gap-small);
13 | `
14 |
15 | const hasMedium = ({ medium }) =>
16 | medium &&
17 | css`
18 | margin-bottom: var(--gap-medium);
19 | `
20 |
21 | const hasBig = ({ big }) =>
22 | big &&
23 | css`
24 | margin-bottom: var(--gap-big);
25 | `
26 |
27 | const hasBiggest = ({ biggest }) =>
28 | biggest &&
29 | css`
30 | margin-bottom: var(--gap-biggest);
31 | `
32 |
33 | const Description = styled.p`
34 | ${Body1};
35 | color: var(--color-third);
36 | ${hasDark};
37 |
38 | & > strong {
39 | font-weight: bold;
40 | }
41 |
42 | & > a {
43 | ${Link}
44 | }
45 |
46 | ${hasSmall};
47 | ${hasMedium};
48 | ${hasBig};
49 | ${hasBiggest};
50 | `
51 |
52 | export default Description
53 |
--------------------------------------------------------------------------------
/dist/components/Countdown/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.CountdownStyles = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _styles = require("../Timer/styles");
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject() {
15 | var data = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n\n & > ", ":not(:last-child) {\n margin-right: var(--gap-big);\n }\n"]);
16 |
17 | _templateObject = function _templateObject() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25 |
26 | var CountdownStyles = _styledComponents.default.div(_templateObject(), _styles.TimerStyles);
27 |
28 | exports.CountdownStyles = CountdownStyles;
--------------------------------------------------------------------------------
/dist/components/ActionCard/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function ActionCard(_ref) {
17 | var as = _ref.as,
18 | to = _ref.to,
19 | children = _ref.children,
20 | href = _ref.href;
21 | return /*#__PURE__*/_react.default.createElement(_styles.ActionCardStyles, {
22 | as: as,
23 | to: to,
24 | href: href
25 | }, children);
26 | }
27 |
28 | ActionCard.defaultProps = {
29 | href: '#',
30 | as: 'a',
31 | to: ''
32 | };
33 | ActionCard.propTypes = {
34 | children: _propTypes.default.string.isRequired,
35 | as: _propTypes.default.string,
36 | to: _propTypes.default.string,
37 | href: _propTypes.default.string
38 | };
39 | var _default = ActionCard;
40 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/Styles/Tools/Cursor/index.js:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components'
2 |
3 | const standard = css`
4 | cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABFklEQVRYR9WXURLDIAhE6/0PbSdOtUpcd1Gnpv1KGpTHBpCE1/cXq+vrMph7dGvXZTtpfW10DCA5jrH1H0Jhs5E0hnZdCR+vb5S8Nn8mQCeS9BdSalYJqMBjAGzq59xAESN7VFVUgV8AZB/dZBR7QTFDCqGquvUBVVoEtgIwpQRzmANSFHgWQKExHdIrPeuMvQNDarXe6nC/AutgV3JW+6bgqQLeV8FekRtgV+ToDKEKnACYKsfZjjkam7a0ZpYTytwmgainpC3HvwBocgKOxqRjehoR9DFKNFYtOwCGYCszobeCbl26N6yyQ6g8X/Wex/rBPsNEV6qAMaJPMynIHQCoSqS9JSMmwef51LflTgCRszU7DvAGiV6mHWfsaVUAAAAASUVORK5CYII=),
5 | auto;
6 | `
7 |
8 | const hover = css`
9 | cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC)
10 | 14 0,
11 | pointer;
12 | `
13 |
14 | export const Cursor = {
15 | standard,
16 | hover
17 | }
18 |
--------------------------------------------------------------------------------
/dist/components/ListActionImage/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _styles = require("../ActionImage/styles");
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject() {
15 | var data = _taggedTemplateLiteral(["\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n\n & > ", " {\n margin: 0 var(--gap-small) calc(var(--gap-small) * 2);\n }\n"]);
16 |
17 | _templateObject = function _templateObject() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25 |
26 | var ListActionImageStyle = _styledComponents.default.ul(_templateObject(), _styles.ActionImageStyle);
27 |
28 | var _default = ListActionImageStyle;
29 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/ListActionImage/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import ActionImage from '../ActionImage'
4 | import ListActionImageStyle from './styles'
5 |
6 | function ListActionImage({ items, size }) {
7 | return (
8 |
9 | {items.map(({ href, src, alt, isPadding, backgroundColor, target }) => (
10 |
20 | ))}
21 |
22 | )
23 | }
24 |
25 | const actionImage = {
26 | src: PropTypes.string.isRequired,
27 | alt: PropTypes.string.isRequired,
28 | href: PropTypes.string.isRequired
29 | }
30 |
31 | ListActionImage.defaultProps = {
32 | size: 'small'
33 | }
34 |
35 | ListActionImage.propTypes = {
36 | items: PropTypes.arrayOf(PropTypes.shape(actionImage)).isRequired,
37 | size: PropTypes.string
38 | }
39 |
40 | export default ListActionImage
41 |
--------------------------------------------------------------------------------
/src/lib/components/Title/index.js:
--------------------------------------------------------------------------------
1 | import { Title as toolsTitle } from '../../Styles/Tools/index'
2 | import styled, { css } from 'styled-components'
3 |
4 | const hasDark = ({ dark }) =>
5 | dark &&
6 | css`
7 | color: var(--color-black-first);
8 | `
9 |
10 | const hasSmall = ({ small }) =>
11 | small &&
12 | css`
13 | margin-bottom: var(--gap-small);
14 | `
15 |
16 | const hasMedium = ({ medium }) =>
17 | medium &&
18 | css`
19 | margin-bottom: var(--gap-medium);
20 | `
21 |
22 | const hasBig = ({ big }) =>
23 | big &&
24 | css`
25 | margin-bottom: var(--gap-big);
26 | `
27 |
28 | const hasBiggest = ({ biggest }) =>
29 | biggest &&
30 | css`
31 | margin-bottom: var(--gap-biggest);
32 | `
33 |
34 | const hasCenter = () => ({ center }) =>
35 | center &&
36 | css`
37 | text-align: center;
38 | `
39 |
40 | const Title = styled.h2`
41 | ${toolsTitle};
42 | color: var(--color-third);
43 | margin-bottom: var(--gap-smallest);
44 |
45 | ${hasDark};
46 | ${hasSmall};
47 | ${hasMedium};
48 | ${hasBig};
49 | ${hasBiggest};
50 | ${hasCenter}
51 | `
52 |
53 | export default Title
54 |
--------------------------------------------------------------------------------
/dist/Styles/Tools/BoxShadow/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.BoxShadow = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | function _templateObject2() {
11 | var data = _taggedTemplateLiteral(["\n box-shadow: 1rem 1rem 0px var(--color-black-first);\n"]);
12 |
13 | _templateObject2 = function _templateObject2() {
14 | return data;
15 | };
16 |
17 | return data;
18 | }
19 |
20 | function _templateObject() {
21 | var data = _taggedTemplateLiteral(["\n box-shadow: 0.5rem 0.5rem 0px var(--color-black-first);\n"]);
22 |
23 | _templateObject = function _templateObject() {
24 | return data;
25 | };
26 |
27 | return data;
28 | }
29 |
30 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
31 |
32 | var small = (0, _styledComponents.css)(_templateObject());
33 | var medium = (0, _styledComponents.css)(_templateObject2());
34 | var BoxShadow = {
35 | small: small,
36 | medium: medium
37 | };
38 | exports.BoxShadow = BoxShadow;
--------------------------------------------------------------------------------
/dist/components/ListTags/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _Tag = _interopRequireDefault(require("../Tag"));
13 |
14 | var _styles = require("./styles");
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | function ListTags(_ref) {
19 | var tags = _ref.tags;
20 | return /*#__PURE__*/_react.default.createElement(_styles.ListTagsStyle, null, tags.map(function (tag) {
21 | return /*#__PURE__*/_react.default.createElement(_styles.Item, {
22 | key: tag
23 | }, /*#__PURE__*/_react.default.createElement(_Tag.default, tag));
24 | }));
25 | }
26 |
27 | ListTags.propTypes = {
28 | tags: _propTypes.default.arrayOf(_propTypes.default.shape({
29 | children: _propTypes.default.string.isRequired,
30 | backgroundColor: _propTypes.default.string,
31 | color: _propTypes.default.string
32 | }))
33 | };
34 | var _default = ListTags;
35 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/ContentDay/Option/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function Option(_ref) {
17 | var label = _ref.label,
18 | description = _ref.description,
19 | length = _ref.length,
20 | color = _ref.color;
21 | return /*#__PURE__*/_react.default.createElement(_styles.OptionStyle, {
22 | length: length,
23 | color: color
24 | }, /*#__PURE__*/_react.default.createElement(_styles.Label, null, label), /*#__PURE__*/_react.default.createElement(_styles.Description, null, description));
25 | }
26 |
27 | Option.propTypes = {
28 | label: _propTypes.default.string.isRequired,
29 | description: _propTypes.default.string.isRequired,
30 | length: _propTypes.default.number.isRequired,
31 | color: _propTypes.default.string
32 | };
33 | var _default = Option;
34 | exports.default = _default;
--------------------------------------------------------------------------------
/src/stories/Heading.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Heading } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Heading',
6 | component: Heading
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | children: 'Curso Feliz de HTML e CSS',
14 | medium: false,
15 | big: false,
16 | biggest: false
17 | }
18 |
19 | export const Small = Template.bind({})
20 | Small.args = {
21 | children: 'Curso Feliz de HTML e CSS',
22 | small: true,
23 | medium: false,
24 | big: false,
25 | biggest: false
26 | }
27 |
28 | export const Medium = Template.bind({})
29 | Medium.args = {
30 | children: 'Curso Feliz de HTML e CSS',
31 | small: false,
32 | medium: true,
33 | big: false,
34 | biggest: false
35 | }
36 |
37 | export const Big = Template.bind({})
38 | Big.args = {
39 | children: 'Curso Feliz de HTML e CSS',
40 | small: false,
41 | medium: false,
42 | big: true,
43 | biggest: false
44 | }
45 |
46 | export const Biggest = Template.bind({})
47 | Biggest.args = {
48 | children: 'Curso Feliz de HTML e CSS',
49 | small: false,
50 | medium: false,
51 | big: false,
52 | biggest: true
53 | }
54 |
--------------------------------------------------------------------------------
/dist/Styles/Elements/Base/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | var _Tools = require("../../Tools");
11 |
12 | function _templateObject() {
13 | var data = _taggedTemplateLiteral(["\n html, body {\n ", ";\n font-family: 'Fira Code', sans-serif;\n font-size: 10px;\n min-width: 290px;\n background-color: var(--color-black-second);\n\n @media(max-width: 834px) {\n font-size: 7px\n }\n\n @media(max-width: 510px) {\n font-size: 6px;\n }\n\n @media(max-width: 430px) {\n font-size: 5px;\n }\n\n @media(max-width: 360px) {\n font-size: 4px;\n }\n }\n"]);
14 |
15 | _templateObject = function _templateObject() {
16 | return data;
17 | };
18 |
19 | return data;
20 | }
21 |
22 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23 |
24 | var Base = (0, _styledComponents.createGlobalStyle)(_templateObject(), _Tools.Cursor.standard);
25 | var _default = Base;
26 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/ActionCard/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.ActionCardStyles = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _styles = require("../Box/styles");
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject() {
15 | var data = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--color-third);\n width: 280px;\n height: 280px;\n font-family: 'Press Start 2P', sans-serif;\n font-size: 25px;\n line-height: 30px;\n text-align: center;\n\n &:hover {\n transform: scale(1.05);\n }\n"]);
16 |
17 | _templateObject = function _templateObject() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25 |
26 | var ActionCardStyles = (0, _styledComponents.default)(_styles.BoxStyles)(_templateObject());
27 | exports.ActionCardStyles = ActionCardStyles;
--------------------------------------------------------------------------------
/dist/components/ListCovers/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _Cover = _interopRequireDefault(require("../Cover"));
13 |
14 | var _styles = require("./styles");
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | function ListCovers(_ref) {
19 | var covers = _ref.covers;
20 | return /*#__PURE__*/_react.default.createElement(_styles.ListCoversStyle, null, covers.map(function (cover) {
21 | return /*#__PURE__*/_react.default.createElement(_styles.Item, {
22 | key: cover.title
23 | }, /*#__PURE__*/_react.default.createElement(_Cover.default, cover));
24 | }));
25 | }
26 |
27 | var cover = {
28 | src: _propTypes.default.string.isRequired,
29 | alt: _propTypes.default.string.isRequired,
30 | title: _propTypes.default.string.isRequired
31 | };
32 | ListCovers.propTypes = {
33 | covers: _propTypes.default.arrayOf(_propTypes.default.shape(cover))
34 | };
35 | var _default = ListCovers;
36 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/ListCovers/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.ListCoversStyle = exports.Item = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11 |
12 | function _templateObject2() {
13 | var data = _taggedTemplateLiteral(["\n display: flex;\n"]);
14 |
15 | _templateObject2 = function _templateObject2() {
16 | return data;
17 | };
18 |
19 | return data;
20 | }
21 |
22 | function _templateObject() {
23 | var data = _taggedTemplateLiteral(["\n margin-right: var(--gap-big);\n"]);
24 |
25 | _templateObject = function _templateObject() {
26 | return data;
27 | };
28 |
29 | return data;
30 | }
31 |
32 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
33 |
34 | var Item = _styledComponents.default.li(_templateObject());
35 |
36 | exports.Item = Item;
37 |
38 | var ListCoversStyle = _styledComponents.default.ol(_templateObject2());
39 |
40 | exports.ListCoversStyle = ListCoversStyle;
--------------------------------------------------------------------------------
/src/stories/ListCovers.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { ListCovers } from '../lib'
3 | import curso from './assets/curso-html-css.png'
4 |
5 | const tags = [
6 | {
7 | children: 'video',
8 | backgroundColor: 'colorThird',
9 | color: 'colorBlackFirst'
10 | },
11 | {
12 | children: 'pdf',
13 | backgroundColor: 'colorThird',
14 | color: 'colorBlackFirst'
15 | }
16 | ]
17 |
18 | const progress = {
19 | valueNow: 40,
20 | valueMax: 164
21 | }
22 |
23 | export default {
24 | title: 'Components/ListCover',
25 | component: ListCovers
26 | }
27 |
28 | const Template = (args) =>
29 |
30 | export const Default = Template.bind({})
31 | Default.args = {
32 | covers: [
33 | {
34 | src: curso,
35 | alt: 'Curso feliz de HTML e CSS',
36 | title: 'Curso feliz de HTML e CSS',
37 | tags,
38 | progress
39 | },
40 | {
41 | src: curso,
42 | alt: 'Curso feliz de HTML e CSS',
43 | title: 'Curso feliz de HTML e CSS',
44 | tags,
45 | progress
46 | },
47 | {
48 | src: curso,
49 | alt: 'Curso feliz de HTML e CSS',
50 | title: 'Curso feliz de HTML e CSS',
51 | tags,
52 | progress
53 | }
54 | ]
55 | }
56 |
--------------------------------------------------------------------------------
/src/lib/components/Cover/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import Box from '../Box'
4 | import ListTags from '../ListTags'
5 | import ProgressBar from '../ProgressBar'
6 | import { CoverStyle, Title } from './styles'
7 |
8 | function Cover({ src, alt, title, tags, progress }) {
9 | const hasProgress = () => progress &&
10 |
11 | return (
12 |
13 |
14 | {hasProgress()}
15 | {title}
16 |
17 |
18 | )
19 | }
20 |
21 | const progress = PropTypes.objectOf({
22 | valueNow: PropTypes.number.isRequired,
23 | valueMax: PropTypes.number.isRequired
24 | })
25 |
26 | Cover.defaultProps = {
27 | progress: false
28 | }
29 |
30 | Cover.propTypes = {
31 | src: PropTypes.string.isRequired,
32 | alt: PropTypes.string.isRequired,
33 | title: PropTypes.string.isRequired,
34 | tags: PropTypes.arrayOf(
35 | PropTypes.shape({
36 | children: PropTypes.string.isRequired,
37 | backgroundColor: PropTypes.string,
38 | color: PropTypes.string
39 | })
40 | ),
41 | progress
42 | }
43 |
44 | export default Cover
45 |
--------------------------------------------------------------------------------
/src/lib/components/Profile/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import Icons from '../Icons'
3 | import Image from '../Image'
4 | import Title from '../Title'
5 |
6 | export const Action = styled.a`
7 | width: 18.2%;
8 |
9 | &:not(:last-child) {
10 | margin-right: 40px;
11 | }
12 |
13 | &:hover {
14 | transform: scale(1.1);
15 | }
16 | `
17 |
18 | export const Nav = styled.nav`
19 | display: flex;
20 | justify-content: center;
21 | align-items: center;
22 | `
23 |
24 | export const ProfileStyle = styled.article`
25 | display: flex;
26 | flex-direction: column;
27 | align-items: center;
28 | width: 100%;
29 | max-width: 340px;
30 |
31 | & > ${Title} {
32 | text-align: center;
33 | color: var(--color-first);
34 | font-size: 30px;
35 | width: 100%;
36 | transform: translateX(2px);
37 | }
38 |
39 | & > ${Title}, & > ${Image} {
40 | margin-bottom: 10px;
41 | }
42 |
43 | & > ${Image} {
44 | max-width: 330px;
45 | }
46 |
47 | & ${Icons} {
48 | width: 100%;
49 | }
50 |
51 | @media (max-width: 375px) {
52 | & > ${Title} {
53 | font-size: 26px;
54 | }
55 | }
56 |
57 | @media (max-width: 320px) {
58 | & > ${Title} {
59 | font-size: 22px;
60 | }
61 | }
62 | `
63 |
--------------------------------------------------------------------------------
/dist/components/Container/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _Tools = require("../../Styles/Tools");
11 |
12 | var _styles = require("../ContentDay/styles");
13 |
14 | var _styles2 = _interopRequireDefault(require("../ListContentDay/styles"));
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | function _templateObject() {
19 | var data = _taggedTemplateLiteral(["\n ", ";\n\n & > ", " {\n @media (max-width: 1290px) {\n flex-direction: column;\n\n & > ", " {\n width: 100%;\n }\n }\n }\n"]);
20 |
21 | _templateObject = function _templateObject() {
22 | return data;
23 | };
24 |
25 | return data;
26 | }
27 |
28 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
29 |
30 | var Container = _styledComponents.default.div(_templateObject(), _Tools.Container, _styles2.default, _styles.ContentDayStyle);
31 |
32 | var _default = Container;
33 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/Styles/Tools/Typograph/index.js:
--------------------------------------------------------------------------------
1 | import { css } from 'styled-components'
2 |
3 | export const Heading = css`
4 | font-family: 'Press Start 2P', sans-serif;
5 | font-size: 4rem;
6 | line-height: 6rem;
7 | `
8 |
9 | export const Title = css`
10 | font-family: 'Press Start 2P', sans-serif;
11 | font-size: 3rem;
12 | line-height: 3.5rem;
13 | `
14 |
15 | export const Subtitle = css`
16 | font-family: 'Press Start 2P', sans-serif;
17 | font-size: 2.5rem;
18 | line-height: 3rem;
19 | `
20 |
21 | export const Body1 = css`
22 | font-family: 'Fira Code', sans-serif;
23 | font-size: max(3rem, 20px);
24 | line-height: max(4.2rem, 28px);
25 | font-weight: 300;
26 | `
27 |
28 | export const Body2 = css`
29 | font-family: 'Fira Code', sans-serif;
30 | font-size: max(2rem, 15px);
31 | line-height: max(2.6rem, 20px);
32 | font-weight: 500;
33 | `
34 |
35 | export const Caption = css`
36 | font-family: 'Fira Code', sans-serif;
37 | font-size: max(1.8rem, 12px);
38 | line-height: max(2.4rem, 18px);
39 | `
40 |
41 | export const Link = css`
42 | font-family: 'Fira Code', sans-serif;
43 | color: var(--color-first);
44 | font-weight: bold;
45 | text-decoration: underline;
46 | text-underline-offset: 0.4em;
47 | text-decoration-thickness: 0.1em;
48 | `
49 |
--------------------------------------------------------------------------------
/src/lib/components/Field/Select/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Label, Content } from '../styles'
4 | import { Option, SelectStyle } from './styles'
5 |
6 | function Select({
7 | name,
8 | label,
9 | value,
10 | onChange,
11 | defaultValue,
12 | options,
13 | register
14 | }) {
15 | return (
16 |
31 | )
32 | }
33 |
34 | Select.defaultProps = {
35 | label: '',
36 | value: '',
37 | onChange: () => {},
38 | defaultValue: '',
39 | name: '',
40 | options: [''],
41 | register: () => {}
42 | }
43 |
44 | Select.propTypes = {
45 | label: PropTypes.string,
46 | name: PropTypes.string,
47 | value: PropTypes.string,
48 | onChange: PropTypes.func,
49 | defaultValue: PropTypes.string,
50 | options: PropTypes.arrayOf(PropTypes.string),
51 | register: PropTypes.func
52 | }
53 |
54 | export default Select
55 |
--------------------------------------------------------------------------------
/src/lib/components/Section/index.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { palette } from '../../index'
3 |
4 | const hasSmallest = ({ smallest }) =>
5 | smallest &&
6 | css`
7 | padding-top: var(--gap-smallest);
8 | padding-bottom: var(--gap-smallest);
9 | `
10 |
11 | const hasMedium = ({ medium }) =>
12 | medium &&
13 | css`
14 | padding-top: var(--gap-medium);
15 | padding-bottom: var(--gap-medium);
16 | `
17 |
18 | const hasBig = ({ big }) =>
19 | big &&
20 | css`
21 | padding-top: var(--gap-big);
22 | padding-bottom: var(--gap-big);
23 | `
24 |
25 | const hasBiggest = ({ biggest }) =>
26 | biggest &&
27 | css`
28 | padding-top: var(--gap-biggest);
29 | padding-bottom: var(--gap-biggest);
30 | `
31 |
32 | const Section = styled.section`
33 | box-sizing: border-box;
34 | width: 100%;
35 | background-color: ${({ backgroundColor }) =>
36 | backgroundColor ? palette[backgroundColor] : 'var(--color-first)'};
37 | border-bottom: 1rem solid
38 | ${({ borderColor }) =>
39 | borderColor ? palette[borderColor] : 'var(--color-black-first)'};
40 | padding: var(--gap-small) var(--gap-medium);
41 |
42 | ${hasSmallest};
43 | ${hasMedium};
44 | ${hasBig};
45 | ${hasBiggest};
46 | `
47 |
48 | export default Section
49 |
--------------------------------------------------------------------------------
/dist/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 |
7 | var _Styles = require("./Styles");
8 |
9 | Object.keys(_Styles).forEach(function (key) {
10 | if (key === "default" || key === "__esModule") return;
11 | if (key in exports && exports[key] === _Styles[key]) return;
12 | Object.defineProperty(exports, key, {
13 | enumerable: true,
14 | get: function get() {
15 | return _Styles[key];
16 | }
17 | });
18 | });
19 |
20 | var _components = require("./components");
21 |
22 | Object.keys(_components).forEach(function (key) {
23 | if (key === "default" || key === "__esModule") return;
24 | if (key in exports && exports[key] === _components[key]) return;
25 | Object.defineProperty(exports, key, {
26 | enumerable: true,
27 | get: function get() {
28 | return _components[key];
29 | }
30 | });
31 | });
32 |
33 | var _palette = require("./Styles/Settings/Colors/palette");
34 |
35 | Object.keys(_palette).forEach(function (key) {
36 | if (key === "default" || key === "__esModule") return;
37 | if (key in exports && exports[key] === _palette[key]) return;
38 | Object.defineProperty(exports, key, {
39 | enumerable: true,
40 | get: function get() {
41 | return _palette[key];
42 | }
43 | });
44 | });
--------------------------------------------------------------------------------
/dist/components/ListTags/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.ListTagsStyle = exports.Item = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11 |
12 | function _templateObject2() {
13 | var data = _taggedTemplateLiteral(["\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n"]);
14 |
15 | _templateObject2 = function _templateObject2() {
16 | return data;
17 | };
18 |
19 | return data;
20 | }
21 |
22 | function _templateObject() {
23 | var data = _taggedTemplateLiteral(["\n margin: var(--gap-smallest) calc(var(--gap-smallest) / 2) 0;\n"]);
24 |
25 | _templateObject = function _templateObject() {
26 | return data;
27 | };
28 |
29 | return data;
30 | }
31 |
32 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
33 |
34 | var Item = _styledComponents.default.li(_templateObject());
35 |
36 | exports.Item = Item;
37 |
38 | var ListTagsStyle = _styledComponents.default.ul(_templateObject2());
39 |
40 | exports.ListTagsStyle = ListTagsStyle;
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/Playlist.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Playlist } from '../../../lib'
3 | import Wrapper from '../../components/Wrapper'
4 |
5 | export default {
6 | title: 'Components/VideoPlayer/Elements/Playlist',
7 | component: Playlist
8 | }
9 |
10 | const Template = (args) => (
11 |
12 |
13 |
14 | )
15 |
16 | export const Default = Template.bind({})
17 | Default.args = {
18 | lessons: [
19 | {
20 | title: 'Aula 00',
21 | videos: [
22 | {
23 | poster:
24 | 'https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217',
25 | title: 'Video aula 00'
26 | }
27 | ]
28 | },
29 | {
30 | title: 'Aula 01',
31 | videos: [
32 | {
33 | poster:
34 | 'https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217',
35 | title: 'Video aula 01'
36 | }
37 | ]
38 | },
39 | {
40 | title: 'Aula 02',
41 | videos: [
42 | {
43 | poster:
44 | 'https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217',
45 | title: 'Video aula 02'
46 | }
47 | ]
48 | }
49 | ],
50 | playlistOpen: true
51 | }
52 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/IconPlayer/index.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import sprite from '../../../assets/images/icons.png'
3 | import { Cursor } from '../../../Styles/Tools'
4 |
5 | const positionIcons = {
6 | audio: '0 -16px',
7 | mute: '-16px -16px',
8 | play: '0 0',
9 | pause: '-16px 0',
10 | fullscreen: '0 -32px',
11 | nofullscreen: '-16px -32px',
12 | playbackRate: '0 -48px',
13 | playlist: '-16px -48px'
14 | }
15 |
16 | export const IconPlayer = styled.span`
17 | background: url(${sprite}) no-repeat;
18 | background-position: ${({ icon }) => positionIcons[icon]};
19 | position: absolute;
20 | top: 0;
21 | left: 0;
22 | width: var(--wh);
23 | height: var(--wh);
24 | opacity: 0;
25 | transform-origin: left top;
26 | transform: scale(var(--scale));
27 | image-rendering: crisp-edges;
28 | image-rendering: pixelated;
29 | ${Cursor.hover};
30 | transition: opacity 100ms linear, transform 100ms linear;
31 | `
32 |
33 | export const IconPlayerWrapper = styled.div`
34 | --wh: 16px;
35 | --scale: 2;
36 | position: relative;
37 | width: calc(var(--wh) * var(--scale));
38 | height: calc(var(--wh) * var(--scale));
39 | transform-origin: center center;
40 | transition: transform 100ms linear;
41 |
42 | &:hover,
43 | &:focus {
44 | transform: scale(1.2);
45 | }
46 | `
47 |
--------------------------------------------------------------------------------
/dist/components/FloatingButton/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _Tools = require("../../Styles/Tools");
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject() {
15 | var data = _taggedTemplateLiteral(["\n ", ";\n font-weight: bold;\n font-size: 4rem;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: var(--color-first);\n color: var(--color-third);\n min-height: 50px;\n min-width: 50px;\n ", ";\n position: fixed;\n bottom: var(--gap-biggest);\n right: var(--gap-biggest);\n\n &:hover {\n transform: scale(1.2);\n }\n"]);
16 |
17 | _templateObject = function _templateObject() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25 |
26 | var FloatingButton = _styledComponents.default.button(_templateObject(), _Tools.Body1, _Tools.BoxShadow.small);
27 |
28 | var _default = FloatingButton;
29 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/VideoPlayerTimer/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = _interopRequireDefault(require("./styles"));
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function VideoPlayerTimer(_ref) {
17 | var currentTime = _ref.currentTime,
18 | duration = _ref.duration;
19 |
20 | var formatTimer = function formatTimer(time) {
21 | var date = new Date(0);
22 | date.setSeconds(time);
23 | var formatNum = date.toISOString().substr(11, 8);
24 | return /^00/.test(formatNum) ? formatNum.replace('00:', '') : formatNum;
25 | };
26 |
27 | return /*#__PURE__*/_react.default.createElement(_styles.default, null, "".concat(formatTimer(currentTime), " / ").concat(formatTimer(duration)));
28 | }
29 |
30 | VideoPlayerTimer.propTypes = {
31 | currentTime: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
32 | duration: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired
33 | };
34 | var _default = VideoPlayerTimer;
35 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/PlaybackRate/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import {
4 | PlaybackRateStyle,
5 | IconWrapper,
6 | IconPlaybackRate,
7 | Velocity,
8 | Action
9 | } from './style'
10 |
11 | function PlaybackRate({
12 | showVelocity,
13 | velocities,
14 | changeActiveVelocity,
15 | velocityActive,
16 | toggleVelocity
17 | }) {
18 | return (
19 |
20 |
21 | {velocities.map((velocity) => (
22 |
27 | {velocity}
28 |
29 | ))}
30 |
31 |
32 |
33 |
34 |
35 |
36 | )
37 | }
38 |
39 | PlaybackRate.defaultProps = {
40 | velocityActive: 1,
41 | showVelocity: false
42 | }
43 |
44 | PlaybackRate.propTypes = {
45 | velocityActive: PropTypes.string,
46 | changeActiveVelocity: PropTypes.func.isRequired,
47 | velocities: PropTypes.arrayOf(PropTypes.string).isRequired,
48 | toggleVelocity: PropTypes.func.isRequired,
49 | showVelocity: PropTypes.bool.isRequired
50 | }
51 |
52 | export default PlaybackRate
53 |
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/VideoPlayerTimer/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _polished = require("polished");
11 |
12 | var _Tools = require("../../../Styles/Tools");
13 |
14 | var _palette = require("../../../Styles/Settings/Colors/palette");
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | function _templateObject() {
19 | var data = _taggedTemplateLiteral(["\n ", ";\n text-align: center;\n color: var(--color-third);\n background-color: ", ";\n padding: calc(var(--gap-smallest) / 2);\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"]);
20 |
21 | _templateObject = function _templateObject() {
22 | return data;
23 | };
24 |
25 | return data;
26 | }
27 |
28 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
29 |
30 | var VideoPlayerTimerStyles = _styledComponents.default.p(_templateObject(), _Tools.Caption, (0, _polished.transparentize)(0.7, _palette.palette.colorSecond));
31 |
32 | var _default = VideoPlayerTimerStyles;
33 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/ActionImage/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { palette } from '../../Styles/Settings/Colors/palette'
3 | import { BoxShadow } from '../../Styles/Tools'
4 |
5 | const optionsSize = {
6 | small: '15rem',
7 | medium: '22rem',
8 | big: '30rem'
9 | }
10 |
11 | const changeSize = ({ size }) =>
12 | size &&
13 | css`
14 | width: ${optionsSize[size]};
15 | height: ${optionsSize[size]};
16 | `
17 |
18 | const changeColor = ({ backgroundColor }) =>
19 | backgroundColor &&
20 | css`
21 | background-color: ${palette[backgroundColor]};
22 | `
23 |
24 | export const Image = styled.img`
25 | height: 100%;
26 | object-fit: cover;
27 | `
28 |
29 | const clearPadding = ({ isPadding }) =>
30 | !isPadding &&
31 | css`
32 | padding: 0;
33 | `
34 |
35 | const changeBoxShadow = ({ boxShadow }) =>
36 | boxShadow === 'small' &&
37 | css`
38 | ${BoxShadow.small}
39 | `
40 |
41 | export const ActionImageStyle = styled.a`
42 | box-sizing: border-box;
43 | display: inline-block;
44 | width: ${optionsSize.small};
45 | height: ${optionsSize.small};
46 | ${BoxShadow.medium};
47 | background-color: var(--color-first);
48 | ${changeColor};
49 | padding: var(--gap-small);
50 |
51 | &:hover {
52 | transform: scale(1.1);
53 | }
54 |
55 | ${clearPadding};
56 | ${changeSize};
57 | ${changeBoxShadow}
58 | `
59 |
--------------------------------------------------------------------------------
/dist/components/Tag/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _propTypes = _interopRequireDefault(require("prop-types"));
9 |
10 | var _styledComponents = _interopRequireDefault(require("styled-components"));
11 |
12 | var _Tools = require("../../Styles/Tools");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function _templateObject() {
17 | var data = _taggedTemplateLiteral(["\n ", ";\n padding: calc(var(--gap-smallest) / 2);\n background-color: var(--color-third);\n color: var(--color-black-first);\n"]);
18 |
19 | _templateObject = function _templateObject() {
20 | return data;
21 | };
22 |
23 | return data;
24 | }
25 |
26 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
27 |
28 | var Tag = _styledComponents.default.span(_templateObject(), _Tools.Caption);
29 |
30 | Tag.defaultProps = {
31 | backgroundColor: 'colorThird',
32 | color: 'colorBlackFirst'
33 | };
34 | Tag.propTypes = {
35 | children: _propTypes.default.string.isRequired,
36 | backgroundColor: _propTypes.default.string,
37 | color: _propTypes.default.string
38 | };
39 | var _default = Tag;
40 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/Styles/Settings/Colors/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | var _palette = require("./palette");
11 |
12 | function _templateObject() {
13 | var data = _taggedTemplateLiteral(["\n :root {\n --color-first: ", ";\n --color-second: ", ";\n --color-third: ", ";\n\n --color-black-first: ", ";\n --color-black-second: ", ";\n --color-black-third: ", ";\n --color-black-fourth: ", ";\n\n --color-error: ", ";\n --color-warning: ", ";\n --color-success: ", ";\n }\n"]);
14 |
15 | _templateObject = function _templateObject() {
16 | return data;
17 | };
18 |
19 | return data;
20 | }
21 |
22 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
23 |
24 | var Colors = (0, _styledComponents.createGlobalStyle)(_templateObject(), _palette.palette.colorFirst, _palette.palette.colorSecond, _palette.palette.colorThird, _palette.palette.colorBlackFirst, _palette.palette.colorBlackSecond, _palette.palette.colorBlackThird, _palette.palette.colorBlackFourth, _palette.palette.colorError, _palette.palette.colorWarning, _palette.palette.colorSuccess);
25 | var _default = Colors;
26 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/VideoPlayerProgressBar/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { Cursor } from '../../../Styles/Tools'
3 |
4 | const GenericBar = css`
5 | position: absolute;
6 | top: 0;
7 | left: -100%;
8 | width: 100%;
9 | height: 100%;
10 | transform-origin: left center;
11 | transform: translateX(${({ value }) => `${value}%`});
12 | `
13 |
14 | export const Buffer = styled.span`
15 | ${GenericBar};
16 | z-index: 1;
17 | background-color: var(--color-third);
18 | `
19 |
20 | export const Bar = styled.label.attrs({ htmlFor: 'progress' })`
21 | ${GenericBar};
22 | z-index: 2;
23 | background-color: var(--color-first);
24 | `
25 |
26 | export const InputRange = styled.input.attrs({
27 | type: 'range',
28 | step: 0.1,
29 | id: 'progress'
30 | })`
31 | width: 100%;
32 | flex-shrink: 0;
33 | position: absolute;
34 | top: 0;
35 | right: 0;
36 | z-index: 3;
37 | opacity: 0;
38 | transform: translateY(-42%);
39 | ${Cursor.hover}
40 | `
41 |
42 | export const VideoPlayerProgressBarStyle = styled.div`
43 | position: absolute;
44 | top: 0;
45 | left: 0;
46 | width: 100%;
47 | height: 0.6rem;
48 | transform-origin: center center;
49 | transform: translateY(-100%);
50 | background-color: var(--color-second);
51 |
52 | &:hover,
53 | &:focus {
54 | ${Cursor.hover};
55 | transform: scaleY(2) translateY(-50%);
56 | }
57 | `
58 |
--------------------------------------------------------------------------------
/src/lib/components/ActionImage/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { Image, ActionImageStyle } from './styles'
4 | import { palette } from '../../Styles/Settings/Colors/palette'
5 |
6 | function ActionImage({
7 | href,
8 | src,
9 | alt,
10 | target,
11 | backgroundColor,
12 | size,
13 | isPadding,
14 | boxShadow,
15 | as,
16 | to
17 | }) {
18 | return (
19 |
29 |
30 |
31 | )
32 | }
33 |
34 | ActionImage.defaultProps = {
35 | href: '#',
36 | backgroundColor: palette.colorFirst,
37 | size: 'small',
38 | isPadding: true,
39 | boxShadow: false,
40 | as: 'a',
41 | to: '',
42 | target: '_self'
43 | }
44 |
45 | ActionImage.propTypes = {
46 | src: PropTypes.string.isRequired,
47 | alt: PropTypes.string.isRequired,
48 | href: PropTypes.string,
49 | isPadding: PropTypes.bool,
50 | backgroundColor: PropTypes.string,
51 | size: PropTypes.string,
52 | boxShadow: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
53 | as: PropTypes.string,
54 | to: PropTypes.string,
55 | target: PropTypes.string
56 | }
57 |
58 | export default ActionImage
59 |
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/Controls/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { transparentize } from 'polished'
3 | import { palette } from '../../../Styles/Settings/Colors/palette'
4 | import { Cursor } from '../../../Styles/Tools'
5 | import { WrapperLesson } from '../Playlist/styles'
6 |
7 | const wrappers = css`
8 | display: flex;
9 | position: relative;
10 | z-index: 2;
11 |
12 | & > *:not(:last-child) {
13 | margin-right: var(--gap-medium);
14 | }
15 | `
16 |
17 | export const Left = styled.div`
18 | ${wrappers};
19 | `
20 |
21 | export const Right = styled.div`
22 | ${wrappers};
23 | `
24 |
25 | export const ControlsStyle = styled.menu`
26 | --height-controls: 50px;
27 | display: flex;
28 | box-sizing: border-box;
29 | padding-left: var(--gap-small);
30 | padding-right: var(--gap-small);
31 | justify-content: space-between;
32 | align-items: center;
33 | position: absolute;
34 | bottom: 0;
35 | z-index: 20;
36 | width: 100%;
37 | height: var(--height-controls);
38 | background-color: ${transparentize(0.4, palette.colorSecond)};
39 | transition: transform 100ms linear;
40 | transform: ${({ show }) => (show ? 'translateY(0)' : 'translateY(100%)')};
41 |
42 | &:hover,
43 | &:focus {
44 | transform: translate(0);
45 | ${Cursor.standard};
46 | }
47 |
48 | & ${WrapperLesson} {
49 | height: calc(100vh - var(--height-controls));
50 | }
51 | `
52 |
--------------------------------------------------------------------------------
/dist/components/Field/Select/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.SelectStyle = exports.Option = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _Tools = require("../../../Styles/Tools");
11 |
12 | var _styles = require("../styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function _templateObject2() {
17 | var data = _taggedTemplateLiteral(["\n ", ";\n\n &:read-only {\n background-color: var(--color-third);\n }\n"]);
18 |
19 | _templateObject2 = function _templateObject2() {
20 | return data;
21 | };
22 |
23 | return data;
24 | }
25 |
26 | function _templateObject() {
27 | var data = _taggedTemplateLiteral([""]);
28 |
29 | _templateObject = function _templateObject() {
30 | return data;
31 | };
32 |
33 | return data;
34 | }
35 |
36 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
37 |
38 | var Option = _styledComponents.default.option(_templateObject());
39 |
40 | exports.Option = Option;
41 | var SelectStyle = (0, _styledComponents.default)(_styles.Input).attrs({
42 | as: 'select'
43 | })(_templateObject2(), _Tools.Cursor.hover);
44 | exports.SelectStyle = SelectStyle;
--------------------------------------------------------------------------------
/src/stories/VideoPlayer/Elements/Controls.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Controls } from '../../../lib'
3 |
4 | export default {
5 | title: 'Components/VideoPlayer/Elements/Controls',
6 | component: Controls,
7 | parameters: {
8 | layout: 'fullscreen'
9 | }
10 | }
11 |
12 | const velocities = ['0.25', '0.5', '0.75', '1', '1.25', '1.5', '1.75', '2']
13 |
14 | const Template = (args) =>
15 |
16 | export const Default = Template.bind({})
17 | Default.args = {
18 | velocities,
19 | duration: 600,
20 | progress: 200,
21 | buffer: 360,
22 | lessons: [
23 | {
24 | title: 'Aula 00',
25 | videos: [
26 | {
27 | poster:
28 | 'https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217',
29 | title: 'Video aula 00'
30 | }
31 | ]
32 | },
33 | {
34 | title: 'Aula 01',
35 | videos: [
36 | {
37 | poster:
38 | 'https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217',
39 | title: 'Video aula 01'
40 | }
41 | ]
42 | },
43 | {
44 | title: 'Aula 02',
45 | videos: [
46 | {
47 | poster:
48 | 'https://peach.blender.org/wp-content/uploads/title_anouncement.jpg?x11217',
49 | title: 'Video aula 02'
50 | }
51 | ]
52 | }
53 | ],
54 | lessonActive: 'Aula 02'
55 | }
56 |
--------------------------------------------------------------------------------
/src/lib/components/Box/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import { BoxStyles, Content, Image } from './styles'
4 |
5 | function Box({
6 | light,
7 | children,
8 | src,
9 | alt,
10 | as,
11 | borderColor,
12 | backgroundColor,
13 | color
14 | }) {
15 | const isImage = src && alt
16 | const isContent = !!children
17 | const hasContent = () =>
18 | isContent && {children}
19 | const hasImage = () => isImage &&
20 |
21 | return (
22 |
29 | {hasContent() || hasImage()}
30 |
31 | )
32 | }
33 |
34 | Box.defaultProps = {
35 | as: 'article',
36 | light: false,
37 | children: false,
38 | src: false,
39 | alt: false,
40 | borderColor: 'colorThird',
41 | backgroundColor: 'colorBlackSecond'
42 | }
43 |
44 | Box.propTypes = {
45 | as: PropTypes.string,
46 | light: PropTypes.bool,
47 | children: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
48 | src: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
49 | alt: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
50 | borderColor: PropTypes.string,
51 | backgroundColor: PropTypes.string,
52 | color: PropTypes.string
53 | }
54 |
55 | export default Box
56 |
--------------------------------------------------------------------------------
/src/stories/ActionImage.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { ActionImage, palette } from '../lib'
3 | import alura from './assets/alura.png'
4 | import negros from './assets/negros.png'
5 |
6 | export default {
7 | title: 'Components/ActionImage',
8 | component: ActionImage,
9 | argTypes: {
10 | backgroundColor: {
11 | control: {
12 | type: 'select',
13 | options: Object.keys(palette)
14 | }
15 | },
16 | size: {
17 | control: {
18 | type: 'select',
19 | options: ['small', 'medium', 'big']
20 | }
21 | },
22 | boxShadow: {
23 | control: {
24 | type: 'select',
25 | options: [false, 'small']
26 | }
27 | }
28 | }
29 | }
30 |
31 | const Template = (args) =>
32 |
33 | export const Default = Template.bind({})
34 | Default.args = {
35 | href: 'https://alura.com.br',
36 | alt: 'Logo da Alura',
37 | backgroundColor: 'colorFirst',
38 | isPadding: false
39 | }
40 |
41 | export const ChangeColor = Template.bind({})
42 | ChangeColor.args = {
43 | href: 'https://alura.com.br',
44 | alt: 'Logo da Alura',
45 | backgroundColor: 'colorThird',
46 | src: negros
47 | }
48 |
49 | export const ChangeBoxShadow = Template.bind({})
50 | ChangeBoxShadow.args = {
51 | href: 'https://alura.com.br',
52 | alt: 'Logo da Alura',
53 | backgroundColor: 'colorThird',
54 | src: negros,
55 | boxShadow: 'small'
56 | }
57 |
--------------------------------------------------------------------------------
/src/lib/components/Loading/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { keyframes } from 'styled-components'
2 | import { BoxShadow } from '../../Styles/Tools'
3 |
4 | const jump = keyframes`
5 | 0% {
6 | transform: translateY(0);
7 | }
8 | 50% {
9 | transform: translateY(-2rem);
10 | }
11 | `
12 |
13 | export const Square = styled.div`
14 | position: absolute;
15 | background-color: inherit;
16 | width: var(--wh);
17 | height: var(--wh);
18 | animation: ${jump} var(--duration) cubic-bezier(0, 0.5, 0.5, 1) infinite;
19 | animation-delay: calc(var(--duration) * -0.25);
20 | ${BoxShadow.small};
21 | `
22 |
23 | export const LoadingStyle = styled.div`
24 | --wh: 2rem;
25 | --duration: 1000ms;
26 |
27 | position: absolute;
28 | background-color: var(--color-third);
29 | opacity: ${({ active }) => (active ? '1' : '0')};
30 |
31 | &:before,
32 | &:after {
33 | content: '';
34 | display: block;
35 | width: var(--wh);
36 | height: var(--wh);
37 | background-color: inherit;
38 | position: absolute;
39 | top: 0;
40 | left: 0;
41 | ${BoxShadow.small};
42 | }
43 |
44 | &:before {
45 | animation: ${jump} var(--duration) cubic-bezier(0, 0.5, 0.5, 1) infinite;
46 | left: calc(var(--wh) * -1.5);
47 | }
48 |
49 | &:after {
50 | animation: ${jump} var(--duration) cubic-bezier(0, 0.5, 0.5, 1) infinite;
51 | animation-delay: calc(var(--duration) * -0.5);
52 | left: calc(var(--wh) * 1.5);
53 | }
54 | `
55 |
--------------------------------------------------------------------------------
/src/lib/Styles/Generic/Reset/index.js:
--------------------------------------------------------------------------------
1 | import { createGlobalStyle } from 'styled-components'
2 |
3 | const Reset = createGlobalStyle`
4 | /* http://meyerweb.com/eric/tools/css/reset/
5 | v2.0 | 20110126
6 | License: none (public domain)
7 | */
8 |
9 | html, body, div, span, applet, object, iframe,
10 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
11 | a, abbr, acronym, address, big, cite, code,
12 | del, dfn, em, img, ins, kbd, q, s, samp,
13 | small, strike, strong, sub, sup, tt, var,
14 | b, u, i, center,
15 | dl, dt, dd, ol, ul, li,
16 | fieldset, form, label, legend,
17 | table, caption, tbody, tfoot, thead, tr, th, td,
18 | article, aside, canvas, details, embed,
19 | figure, figcaption, footer, header, hgroup,
20 | menu, nav, output, ruby, section, summary,
21 | time, mark, audio, video {
22 | margin: 0;
23 | padding: 0;
24 | border: 0;
25 | font-size: 100%;
26 | font: inherit;
27 | vertical-align: baseline;
28 | }
29 | /* HTML5 display-role reset for older browsers */
30 | article, aside, details, figcaption, figure,
31 | footer, header, hgroup, menu, nav, section {
32 | display: block;
33 | }
34 | body {
35 | line-height: 1;
36 | }
37 | ol, ul {
38 | list-style: none;
39 | }
40 | blockquote, q {
41 | quotes: none;
42 | }
43 | blockquote:before, blockquote:after,
44 | q:before, q:after {
45 | content: '';
46 | content: none;
47 | }
48 | table {
49 | border-collapse: collapse;
50 | border-spacing: 0;
51 | }
52 | `
53 |
54 | export default Reset
55 |
--------------------------------------------------------------------------------
/src/lib/components/ProgressBar/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import ProgressBarStyle from './styles'
4 |
5 | function ProgressBar({
6 | valueNow,
7 | valueMax,
8 | boxShadow,
9 | borderColor,
10 | color,
11 | barColor,
12 | backgroundColor
13 | }) {
14 | const valueMin = 0
15 | const currentPercentage = Math.floor((valueNow / (valueMax - valueMin)) * 100)
16 |
17 | return (
18 |
30 | {currentPercentage + '%'}
31 |
32 | )
33 | }
34 |
35 | ProgressBar.defaultProps = {
36 | boxShadow: false,
37 | borderColor: 'colorSecond',
38 | color: 'colorBlackFirst',
39 | barColor: 'colorSuccess',
40 | backgroundColor: 'colorThird'
41 | }
42 |
43 | ProgressBar.propTypes = {
44 | valueNow: PropTypes.number.isRequired,
45 | valueMax: PropTypes.number.isRequired,
46 | boxShadow: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),
47 | borderColor: PropTypes.string,
48 | color: PropTypes.string,
49 | barColor: PropTypes.string,
50 | backgroundColor: PropTypes.string
51 | }
52 |
53 | export default ProgressBar
54 |
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/Fullscreen/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.FullscreenStyle = exports.IconFullcreen = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _IconPlayer = require("../IconPlayer");
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject2() {
15 | var data = _taggedTemplateLiteral([""]);
16 |
17 | _templateObject2 = function _templateObject2() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _templateObject() {
25 | var data = _taggedTemplateLiteral(["\n opacity: 1;\n"]);
26 |
27 | _templateObject = function _templateObject() {
28 | return data;
29 | };
30 |
31 | return data;
32 | }
33 |
34 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
35 |
36 | var IconFullcreen = (0, _styledComponents.default)(_IconPlayer.IconPlayer).attrs(function (_ref) {
37 | var active = _ref.active;
38 | return {
39 | icon: active ? 'nofullscreen' : 'fullscreen'
40 | };
41 | })(_templateObject());
42 | exports.IconFullcreen = IconFullcreen;
43 | var FullscreenStyle = (0, _styledComponents.default)(_IconPlayer.IconPlayerWrapper)(_templateObject2());
44 | exports.FullscreenStyle = FullscreenStyle;
--------------------------------------------------------------------------------
/src/stories/Button.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Button, palette } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Button',
6 | component: Button,
7 | argTypes: {
8 | backgroundColor: {
9 | control: {
10 | type: 'select',
11 | options: Object.keys(palette)
12 | }
13 | },
14 | color: {
15 | control: {
16 | type: 'select',
17 | options: Object.keys(palette)
18 | }
19 | }
20 | }
21 | }
22 |
23 | const Template = (args) =>
24 |
25 | export const Default = Template.bind({})
26 | Default.args = {
27 | children: 'Matrícula 100% free',
28 | backgroundColor: 'colorFirst',
29 | color: 'colorThird',
30 | medium: false,
31 | small: false,
32 | loading: false
33 | }
34 |
35 | export const Loading = Template.bind({})
36 | Loading.args = {
37 | children: 'Matrícula 100% free',
38 | backgroundColor: 'colorFirst',
39 | color: 'colorThird',
40 | medium: false,
41 | small: false,
42 | loading: true
43 | }
44 |
45 | export const Medium = Template.bind({})
46 | Medium.args = {
47 | children: 'Version medium',
48 | backgroundColor: 'colorFirst',
49 | color: 'colorThird',
50 | medium: true,
51 | small: false,
52 | loading: false
53 | }
54 |
55 | export const Small = Template.bind({})
56 | Small.args = {
57 | children: 'Version medium',
58 | backgroundColor: 'colorFirst',
59 | color: 'colorThird',
60 | medium: false,
61 | small: true,
62 | loading: false
63 | }
64 |
--------------------------------------------------------------------------------
/src/lib/components/Modal/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { transparentize } from 'polished'
3 | import { palette } from '../../Styles/Settings/Colors/palette'
4 | import Action from '../Action'
5 | import { Body2 } from '../../Styles/Tools'
6 | import { BoxStyles } from '../Box/styles'
7 |
8 | export const Box = styled(BoxStyles)`
9 | display: flex;
10 | flex-direction: column;
11 | margin-bottom: var(--gap-medium);
12 | max-width: 900px;
13 | `
14 |
15 | const isOpen = ({ active }) =>
16 | active &&
17 | css`
18 | transform: scale(1);
19 | opacity: 1;
20 | `
21 |
22 | export const ModalStyle = styled.section`
23 | position: fixed;
24 | top: 0;
25 | left: 0;
26 | right: 0;
27 | z-index: 100;
28 | display: flex;
29 | flex-direction: column;
30 | align-items: center;
31 | justify-content: center;
32 | box-sizing: border-box;
33 | background-color: ${transparentize(0.05, palette.colorSecond)};
34 | border: 1rem solid var(--color-black-first);
35 | height: 100vh;
36 | padding: var(--gap-medium);
37 | transform-origin: center center;
38 | transform: scale(0);
39 | opacity: 0;
40 | transition: transform 400ms ease-in-out, opacity 300ms ease-in-out;
41 |
42 | & > ${Action} {
43 | ${Body2};
44 | color: var(--color-third);
45 | background-color: var(--color-black-fourth);
46 | padding: var(--gap-smallest);
47 |
48 | &:hover {
49 | transform: translateY(-0.5rem) scale(1.1);
50 | }
51 | }
52 |
53 | ${isOpen}
54 | `
55 |
--------------------------------------------------------------------------------
/dist/components/TitleLive/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _Live = _interopRequireDefault(require("../Live"));
13 |
14 | var _Image = _interopRequireDefault(require("../Image"));
15 |
16 | var _styles = require("./styles");
17 |
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19 |
20 | function TitleLive(_ref) {
21 | var src = _ref.src,
22 | alt = _ref.alt,
23 | title = _ref.title,
24 | isLive = _ref.isLive;
25 | return /*#__PURE__*/_react.default.createElement(_styles.TitleLiveStyle, null, /*#__PURE__*/_react.default.createElement(_Image.default, {
26 | src: src,
27 | alt: alt,
28 | borderColor: "colorSecond"
29 | }), /*#__PURE__*/_react.default.createElement(_styles.Content, null, /*#__PURE__*/_react.default.createElement(_Live.default, {
30 | active: isLive
31 | }, "Live"), /*#__PURE__*/_react.default.createElement(_styles.Title, null, title)));
32 | }
33 |
34 | TitleLive.defaultProps = {
35 | isLive: false
36 | };
37 | TitleLive.propTypes = {
38 | src: _propTypes.default.string.isRequired,
39 | alt: _propTypes.default.string.isRequired,
40 | title: _propTypes.default.string.isRequired,
41 | isLive: _propTypes.default.bool
42 | };
43 | var _default = TitleLive;
44 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/Table/styles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components'
2 | import { Body1, Cursor, Subtitle } from '../../Styles/Tools'
3 |
4 | import { BoxStyles } from '../Box/styles'
5 | import Image from '../Image'
6 |
7 | export const TableLink = styled.a`
8 | color: var(--color-first);
9 | text-decoration: underline;
10 |
11 | &:hover {
12 | ${Cursor.hover};
13 | }
14 | `
15 |
16 | export const TableData = styled.td`
17 | padding: var(--gap-smallest) 0;
18 | vertical-align: middle;
19 | text-overflow: ellipsis;
20 | overflow: hidden;
21 | white-space: nowrap;
22 | max-width: 150px;
23 |
24 | & > ${Image} {
25 | width: 40px;
26 | height: 40px;
27 | border-width: 2px;
28 | vertical-align: middle;
29 |
30 | &:hover {
31 | border-color: var(--color-warning);
32 | ${Cursor.hover};
33 | }
34 | }
35 | `
36 |
37 | export const Th = styled.th`
38 | padding: var(--gap-small) 0;
39 | border-bottom: 4px solid var(--color-first);
40 | `
41 |
42 | export const TableRow = styled.tr`
43 | &:not(:last-child) {
44 | border-bottom: 1px solid var(--color-third);
45 | }
46 | `
47 |
48 | export const TableBody = styled.tbody`
49 | ${Body1};
50 | text-align: center;
51 | color: var(--color-third);
52 | `
53 |
54 | export const TableHead = styled.thead`
55 | ${Subtitle};
56 | color: var(--color-warning);
57 | font-weight: bold;
58 | `
59 |
60 | export const TableStyle = styled(BoxStyles).attrs({ as: 'table' })`
61 | width: 90vw;
62 | margin: 0 auto var(--gap-big);
63 | `
64 |
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/VideoPlayerProgressBar/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function VideoPlayerProgressBar(_ref) {
17 | var max = _ref.max,
18 | value = _ref.value,
19 | onChange = _ref.onChange,
20 | buffer = _ref.buffer;
21 | var progress = value / max * 100;
22 | var progressBuffer = buffer / max * 100;
23 | return /*#__PURE__*/_react.default.createElement(_styles.VideoPlayerProgressBarStyle, null, /*#__PURE__*/_react.default.createElement(_styles.InputRange, {
24 | max: max,
25 | value: value,
26 | onChange: onChange
27 | }), /*#__PURE__*/_react.default.createElement(_styles.Bar, {
28 | max: max,
29 | value: progress
30 | }), /*#__PURE__*/_react.default.createElement(_styles.Buffer, {
31 | value: progressBuffer
32 | }));
33 | }
34 |
35 | VideoPlayerProgressBar.defaultProps = {
36 | max: 100,
37 | value: 0
38 | };
39 | VideoPlayerProgressBar.propTypes = {
40 | max: _propTypes.default.number,
41 | value: _propTypes.default.number,
42 | onChange: _propTypes.default.func.isRequired,
43 | buffer: _propTypes.default.number.isRequired
44 | };
45 | var _default = VideoPlayerProgressBar;
46 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/ContentDay/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import {
4 | ContentDayStyle,
5 | Title,
6 | Goal,
7 | WrapperOptions,
8 | LabelGoal
9 | } from './styles'
10 | import Option from './Option'
11 |
12 | function ContentDay({ title, goal, options, color, fontColor }) {
13 | const hasOptions = () =>
14 | options &&
15 | options.map(
16 | ({ label, description }) =>
17 | label &&
18 | description && (
19 |
25 | )
26 | )
27 |
28 | return (
29 |
30 | {title}
31 |
32 | Objetivo:
33 | {goal}
34 |
35 | {hasOptions()}
36 |
37 | )
38 | }
39 |
40 | ContentDay.defaultProps = {
41 | options: [],
42 | color: 'colorThird',
43 | fontColor: 'colorBlackFirst'
44 | }
45 |
46 | ContentDay.propTypes = {
47 | title: PropTypes.string.isRequired,
48 | goal: PropTypes.string.isRequired,
49 | options: PropTypes.arrayOf(
50 | PropTypes.shape({
51 | label: PropTypes.string.isRequired,
52 | description: PropTypes.string.isRequired,
53 | length: PropTypes.number.isRequired
54 | })
55 | ),
56 | color: PropTypes.string,
57 | fontColor: PropTypes.string
58 | }
59 |
60 | export default ContentDay
61 |
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/Audio/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function Audio(_ref) {
17 | var mute = _ref.mute,
18 | onClick = _ref.onClick,
19 | handleVolume = _ref.handleVolume,
20 | volume = _ref.volume;
21 |
22 | var handleClick = function handleClick(event) {
23 | event.stopPropagation();
24 | };
25 |
26 | return /*#__PURE__*/_react.default.createElement(_styles.AudioStyle, {
27 | mute: mute,
28 | onClick: onClick
29 | }, /*#__PURE__*/_react.default.createElement(_styles.AudioIcon, null), /*#__PURE__*/_react.default.createElement(_styles.Mute, null), /*#__PURE__*/_react.default.createElement(_styles.InputRange, {
30 | value: volume,
31 | onClick: handleClick,
32 | onChange: handleVolume
33 | }), /*#__PURE__*/_react.default.createElement(_styles.VolumeBar, {
34 | volume: volume
35 | }));
36 | }
37 |
38 | Audio.propTypes = {
39 | mute: _propTypes.default.bool.isRequired,
40 | onClick: _propTypes.default.func.isRequired,
41 | handleVolume: _propTypes.default.func.isRequired,
42 | volume: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired
43 | };
44 | var _default = Audio;
45 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/Cover/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.CoverStyle = exports.Title = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _Tools = require("../../Styles/Tools");
11 |
12 | var _styles = _interopRequireDefault(require("../ProgressBar/styles"));
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function _templateObject2() {
17 | var data = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n\n & > ", " {\n border-top: none;\n width: 68.5%;\n }\n"]);
18 |
19 | _templateObject2 = function _templateObject2() {
20 | return data;
21 | };
22 |
23 | return data;
24 | }
25 |
26 | function _templateObject() {
27 | var data = _taggedTemplateLiteral(["\n ", ";\n color: var(--color-third);\n margin: var(--gap-small) calc(var(--gap-smallest) / 2) 0;\n"]);
28 |
29 | _templateObject = function _templateObject() {
30 | return data;
31 | };
32 |
33 | return data;
34 | }
35 |
36 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
37 |
38 | var Title = _styledComponents.default.h3(_templateObject(), _Tools.Body2);
39 |
40 | exports.Title = Title;
41 |
42 | var CoverStyle = _styledComponents.default.article(_templateObject2(), _styles.default);
43 |
44 | exports.CoverStyle = CoverStyle;
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/PlaybackRate/style.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { BoxStyles } from '../../Box/styles'
3 | import { IconPlayer, IconPlayerWrapper } from '../IconPlayer'
4 | import { Cursor, Body2 } from '../../../Styles/Tools'
5 |
6 | export const Action = styled.span`
7 | display: block;
8 | ${Body2};
9 | padding: var(--gap-smallest) 0;
10 | color: var(--color-third);
11 | color: ${({ active }) => active && 'var(--color-warning)'};
12 | transition: transform 100ms linear;
13 |
14 | &:hover {
15 | color: var(--color-warning);
16 | transform: scale(1.08);
17 | ${Cursor.hover};
18 | }
19 | `
20 |
21 | const animationShow = ({ showVelocity }) =>
22 | showVelocity &&
23 | css`
24 | opacity: 1;
25 | transform: var(--translateY) translateX(25%);
26 | `
27 |
28 | export const Velocity = styled(BoxStyles)`
29 | --translateY: translateY(calc((100% + var(--gap-big)) * -1));
30 |
31 | width: auto;
32 | position: absolute;
33 | top: 0;
34 | right: 0;
35 | opacity: 0;
36 | transform: translateX(120%) var(--translateY);
37 | padding: 0 var(--gap-smallest);
38 | transition: transform 150ms ease-in-out, opacity 100ms ease-in-out;
39 |
40 | &:hover {
41 | transform: var(--translateY) translateX(25%);
42 | }
43 |
44 | ${animationShow}
45 | `
46 |
47 | export const IconPlaybackRate = styled(IconPlayer).attrs({
48 | icon: 'playbackRate'
49 | })`
50 | opacity: 1;
51 | `
52 |
53 | export const IconWrapper = styled(IconPlayerWrapper)``
54 |
55 | export const PlaybackRateStyle = styled.div`
56 | position: relative;
57 | `
58 |
--------------------------------------------------------------------------------
/dist/components/Icons/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _html = _interopRequireDefault(require("../../assets/icons/html.png"));
11 |
12 | var _css = _interopRequireDefault(require("../../assets/icons/css.png"));
13 |
14 | var _twitter = _interopRequireDefault(require("../../assets/icons/twitter.png"));
15 |
16 | var _twitch = _interopRequireDefault(require("../../assets/icons/twitch.png"));
17 |
18 | var _youtube = _interopRequireDefault(require("../../assets/icons/youtube.png"));
19 |
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21 |
22 | function _templateObject() {
23 | var data = _taggedTemplateLiteral(["\n image-rendering: crisp-edges;\n"]);
24 |
25 | _templateObject = function _templateObject() {
26 | return data;
27 | };
28 |
29 | return data;
30 | }
31 |
32 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
33 |
34 | var icons = {
35 | html: _html.default,
36 | css: _css.default,
37 | twitter: _twitter.default,
38 | twitch: _twitch.default,
39 | youtube: _youtube.default
40 | };
41 |
42 | var Icons = _styledComponents.default.img.attrs(function (_ref) {
43 | var name = _ref.name;
44 | return {
45 | src: icons[name]
46 | };
47 | })(_templateObject());
48 |
49 | var _default = Icons;
50 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/Modal/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _Heading = _interopRequireDefault(require("../Heading"));
13 |
14 | var _Action = _interopRequireDefault(require("../Action"));
15 |
16 | var _styles = require("./styles");
17 |
18 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19 |
20 | function Modal(_ref) {
21 | var title = _ref.title,
22 | children = _ref.children,
23 | active = _ref.active,
24 | actionClose = _ref.actionClose;
25 |
26 | var handleClick = function handleClick(event) {
27 | if (event.target.tagName === 'SECTION') {
28 | actionClose();
29 | }
30 | };
31 |
32 | return /*#__PURE__*/_react.default.createElement(_styles.ModalStyle, {
33 | active: active,
34 | onClick: handleClick
35 | }, /*#__PURE__*/_react.default.createElement(_Heading.default, null, title), /*#__PURE__*/_react.default.createElement(_styles.Box, null, children), /*#__PURE__*/_react.default.createElement(_Action.default, {
36 | as: "button",
37 | onClick: actionClose
38 | }, "Fechar"));
39 | }
40 |
41 | Modal.propTypes = {
42 | title: _propTypes.default.string.isRequired,
43 | children: _propTypes.default.element.isRequired,
44 | active: _propTypes.default.bool.isRequired,
45 | actionClose: _propTypes.default.func.isRequired
46 | };
47 | var _default = Modal;
48 | exports.default = _default;
--------------------------------------------------------------------------------
/src/stories/Title.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Title } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Title',
6 | component: Title
7 | }
8 |
9 | const Template = (args) =>
10 |
11 | export const Default = Template.bind({})
12 | Default.args = {
13 | children: 'Matrícula acaba em...',
14 | dark: false,
15 | small: true,
16 | medium: false,
17 | big: false,
18 | biggest: false,
19 | center: false
20 | }
21 |
22 | export const Dark = Template.bind({})
23 | Dark.args = {
24 | children: 'Matrícula acaba em...',
25 | dark: true,
26 | small: true,
27 | medium: false,
28 | big: false,
29 | biggest: false,
30 | center: false
31 | }
32 |
33 | export const Small = Template.bind({})
34 | Small.args = {
35 | children: 'Matrícula acaba em...',
36 | dark: false,
37 | small: true,
38 | medium: false,
39 | big: false,
40 | biggest: false,
41 | center: false
42 | }
43 |
44 | export const Medium = Template.bind({})
45 | Medium.args = {
46 | children: 'Matrícula acaba em...',
47 | dark: false,
48 | small: false,
49 | medium: true,
50 | big: false,
51 | biggest: false,
52 | center: false
53 | }
54 |
55 | export const Big = Template.bind({})
56 | Big.args = {
57 | children: 'Matrícula acaba em...',
58 | dark: false,
59 | small: false,
60 | medium: false,
61 | big: true,
62 | biggest: false,
63 | center: false
64 | }
65 |
66 | export const Biggest = Template.bind({})
67 | Biggest.args = {
68 | children: 'Matrícula acaba em...',
69 | dark: false,
70 | small: false,
71 | medium: false,
72 | big: false,
73 | biggest: true,
74 | center: false
75 | }
76 |
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/VideoDescription/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function VideoDescription(_ref) {
17 | var id = _ref.id,
18 | key = _ref.key,
19 | poster = _ref.poster,
20 | title = _ref.title,
21 | num = _ref.num,
22 | onClick = _ref.onClick,
23 | type = _ref.type;
24 | return /*#__PURE__*/_react.default.createElement(_styles.VideoDescriptionStyle, {
25 | onClick: onClick,
26 | id: id,
27 | key: key,
28 | "data-type": type
29 | }, /*#__PURE__*/_react.default.createElement(_styles.MiniThumb, {
30 | src: poster,
31 | alt: title
32 | }), /*#__PURE__*/_react.default.createElement(_styles.Title, null, /*#__PURE__*/_react.default.createElement(_styles.Number, null, num), title));
33 | }
34 |
35 | VideoDescription.defaultProps = {
36 | onClick: function onClick() {}
37 | };
38 | VideoDescription.propTypes = {
39 | poster: _propTypes.default.string.isRequired,
40 | title: _propTypes.default.string.isRequired,
41 | num: _propTypes.default.string.isRequired,
42 | id: _propTypes.default.string.isRequired,
43 | key: _propTypes.default.string.isRequired,
44 | type: _propTypes.default.string.isRequired,
45 | onClick: _propTypes.default.func
46 | };
47 | var _default = VideoDescription;
48 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/ContentDay/Option/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { transparentize } from 'polished'
3 | import { Subtitle } from '../../../Styles/Tools'
4 | import { palette } from '../../../Styles/Settings/Colors/palette'
5 |
6 | export const Description = styled.span`
7 | color: var(--color-warning);
8 | `
9 |
10 | export const Label = styled.strong`
11 | margin-bottom: var(--gap-big);
12 | `
13 |
14 | const hasMoreThanOne = ({ length }) =>
15 | length > 1 &&
16 | css`
17 | display: inline-flex;
18 | width: 50%;
19 | `
20 |
21 | const changeColor = ({ color }) =>
22 | color &&
23 | css`
24 | border-color: ${transparentize(0.6, palette[color])};
25 | `
26 |
27 | const isOdd = ({ length }) =>
28 | length % 2 === 1 &&
29 | css`
30 | &:first-child {
31 | width: 100%;
32 | }
33 |
34 | &:nth-child(odd):not(:first-child) {
35 | border-left: var(--border);
36 | ${changeColor};
37 | }
38 |
39 | &:nth-child(even):not(:first-child) {
40 | border-left: none;
41 | }
42 | `
43 |
44 | export const OptionStyle = styled.dd`
45 | --border: 0.5rem solid ${transparentize(0.6, palette.colorThird)};
46 |
47 | box-sizing: border-box;
48 | display: flex;
49 | flex-direction: column;
50 | justify-content: space-between;
51 | align-items: center;
52 | ${Subtitle};
53 | border-top: var(--border);
54 | width: 100%;
55 | flex-shrink: 0;
56 | padding: var(--gap-medium);
57 | text-align: center;
58 |
59 | &:nth-child(even):not(:first-child) {
60 | border-left: var(--border);
61 | ${changeColor};
62 | }
63 |
64 | ${hasMoreThanOne};
65 | ${isOdd};
66 | ${changeColor};
67 | `
68 |
--------------------------------------------------------------------------------
/dist/components/ListActionImage/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _ActionImage = _interopRequireDefault(require("../ActionImage"));
13 |
14 | var _styles = _interopRequireDefault(require("./styles"));
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | function ListActionImage(_ref) {
19 | var items = _ref.items,
20 | size = _ref.size;
21 | return /*#__PURE__*/_react.default.createElement(_styles.default, null, items.map(function (_ref2) {
22 | var href = _ref2.href,
23 | src = _ref2.src,
24 | alt = _ref2.alt,
25 | isPadding = _ref2.isPadding,
26 | backgroundColor = _ref2.backgroundColor,
27 | target = _ref2.target;
28 | return /*#__PURE__*/_react.default.createElement(_ActionImage.default, {
29 | key: href,
30 | src: src,
31 | alt: alt,
32 | href: href,
33 | size: size,
34 | isPadding: isPadding,
35 | backgroundColor: backgroundColor,
36 | target: target
37 | });
38 | }));
39 | }
40 |
41 | var actionImage = {
42 | src: _propTypes.default.string.isRequired,
43 | alt: _propTypes.default.string.isRequired,
44 | href: _propTypes.default.string.isRequired
45 | };
46 | ListActionImage.defaultProps = {
47 | size: 'small'
48 | };
49 | ListActionImage.propTypes = {
50 | items: _propTypes.default.arrayOf(_propTypes.default.shape(actionImage)).isRequired,
51 | size: _propTypes.default.string
52 | };
53 | var _default = ListActionImage;
54 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/Styles/Tools/TextShadow/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.TextShadow = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | var _palette = require("../../Settings/Colors/palette");
11 |
12 | function _templateObject3() {
13 | var data = _taggedTemplateLiteral(["\n text-shadow: ", " ", ";\n"]);
14 |
15 | _templateObject3 = function _templateObject3() {
16 | return data;
17 | };
18 |
19 | return data;
20 | }
21 |
22 | function _templateObject2() {
23 | var data = _taggedTemplateLiteral(["\n text-shadow: ", " var(--color-black-first);\n"]);
24 |
25 | _templateObject2 = function _templateObject2() {
26 | return data;
27 | };
28 |
29 | return data;
30 | }
31 |
32 | function _templateObject() {
33 | var data = _taggedTemplateLiteral(["\n text-shadow: ", " var(--color-black-first);\n"]);
34 |
35 | _templateObject = function _templateObject() {
36 | return data;
37 | };
38 |
39 | return data;
40 | }
41 |
42 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
43 |
44 | var sizes = {
45 | small: '0.5rem 0.5rem 0px',
46 | medium: '1rem 1rem 0px'
47 | };
48 | var small = (0, _styledComponents.css)(_templateObject(), sizes.small);
49 | var medium = (0, _styledComponents.css)(_templateObject2(), sizes.medium);
50 |
51 | var colorSize = function colorSize(color, size) {
52 | return (0, _styledComponents.css)(_templateObject3(), sizes[size], _palette.palette[color]);
53 | };
54 |
55 | var TextShadow = {
56 | small: small,
57 | medium: medium,
58 | colorSize: colorSize
59 | };
60 | exports.TextShadow = TextShadow;
--------------------------------------------------------------------------------
/src/stories/Box.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Box, palette } from '../lib'
3 | import thumb from './assets/thumb.png'
4 |
5 | const colors = {
6 | control: {
7 | type: 'select',
8 | options: Object.keys(palette)
9 | }
10 | }
11 |
12 | export default {
13 | title: 'Components/Box',
14 | component: Box,
15 | parameters: {
16 | layout: 'padded'
17 | },
18 | argTypes: {
19 | borderColor: colors,
20 | backgroundColor: colors,
21 | color: colors
22 | }
23 | }
24 |
25 | const Template = (args) =>
26 |
27 | export const Default = Template.bind({})
28 | Default.args = {
29 | light: false
30 | }
31 |
32 | export const Light = Template.bind({})
33 | Light.args = {
34 | light: true
35 | }
36 |
37 | export const Image = Template.bind({})
38 | Image.args = {
39 | light: false,
40 | src: thumb,
41 | alt: 'Inscrição abertas para o curso de HTML e CSS'
42 | }
43 | Image.parameters = {
44 | layout: 'centered'
45 | }
46 |
47 | const children = (
48 | <>
49 | Será uma semana de conteúdo com uma aula nova todos os dias, começando no
50 | dia 08/02/2021. As aula serão liberadas às{' '}
51 | 06:32 da madrugada na FiredLabs e terá plantão de dúvidas
52 | ao vivo às 17:33 na{' '}
53 | twitch.tv/marcobrunodev todos
54 | os dias durante a semana do curso.
55 | >
56 | )
57 |
58 | export const Content = Template.bind({})
59 | Content.args = {
60 | light: false,
61 | children
62 | }
63 |
64 | export const ChangeColors = Template.bind({})
65 | ChangeColors.args = {
66 | light: false,
67 | children,
68 | borderColor: 'colorSecond',
69 | backgroundColor: 'colorThird',
70 | color: 'colorFirst'
71 | }
72 |
--------------------------------------------------------------------------------
/src/stories/Section.stories.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Section, palette } from '../lib'
3 |
4 | export default {
5 | title: 'Components/Section',
6 | component: Section,
7 | parameters: {
8 | layout: 'fullscreen'
9 | },
10 | argTypes: {
11 | backgroundColor: {
12 | control: {
13 | type: 'select',
14 | options: Object.keys(palette)
15 | }
16 | },
17 | borderColor: {
18 | control: {
19 | type: 'select',
20 | options: Object.keys(palette)
21 | }
22 | }
23 | }
24 | }
25 |
26 | const Template = (args) =>
27 |
28 | export const Default = Template.bind({})
29 | Default.args = {
30 | backgroundColor: 'colorFirst',
31 | borderColor: 'colorBlackFirst',
32 | smallest: false,
33 | medium: false,
34 | big: false,
35 | biggest: false
36 | }
37 |
38 | export const Smallest = Template.bind({})
39 | Smallest.args = {
40 | backgroundColor: 'colorFirst',
41 | borderColor: 'colorBlackFirst',
42 | smallest: true,
43 | medium: false,
44 | big: false,
45 | biggest: false
46 | }
47 |
48 | export const Medium = Template.bind({})
49 | Medium.args = {
50 | backgroundColor: 'colorFirst',
51 | borderColor: 'colorBlackFirst',
52 | smallest: false,
53 | medium: true,
54 | big: false,
55 | biggest: false
56 | }
57 |
58 | export const Big = Template.bind({})
59 | Big.args = {
60 | backgroundColor: 'colorFirst',
61 | borderColor: 'colorBlackFirst',
62 | smallest: false,
63 | medium: false,
64 | big: true,
65 | biggest: false
66 | }
67 |
68 | export const Biggest = Template.bind({})
69 | Biggest.args = {
70 | backgroundColor: 'colorFirst',
71 | borderColor: 'colorBlackFirst',
72 | smallest: false,
73 | medium: false,
74 | big: false,
75 | biggest: true
76 | }
77 |
--------------------------------------------------------------------------------
/dist/components/Field/Email/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("../styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17 |
18 | function Email(_ref) {
19 | var name = _ref.name,
20 | label = _ref.label,
21 | placeholder = _ref.placeholder,
22 | readOnly = _ref.readOnly,
23 | register = _ref.register;
24 | return /*#__PURE__*/_react.default.createElement(_styles.Label, null, /*#__PURE__*/_react.default.createElement(_styles.Content, null, label), /*#__PURE__*/_react.default.createElement(_styles.Input, _extends({
25 | type: "email",
26 | name: name,
27 | placeholder: placeholder,
28 | readOnly: readOnly
29 | }, register(name))));
30 | }
31 |
32 | Email.defaultProps = {
33 | label: 'Email',
34 | name: 'email',
35 | placeholder: 'seu_email@gmail.com',
36 | readOnly: false,
37 | register: function register() {}
38 | };
39 | Email.propTypes = {
40 | label: _propTypes.default.string,
41 | name: _propTypes.default.string,
42 | placeholder: _propTypes.default.string,
43 | readOnly: _propTypes.default.string,
44 | register: _propTypes.default.func
45 | };
46 | var _default = Email;
47 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/Field/Textarea/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("../styles");
13 |
14 | var _styles2 = require("./styles");
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19 |
20 | function Textarea(_ref) {
21 | var name = _ref.name,
22 | label = _ref.label,
23 | placeholder = _ref.placeholder,
24 | readOnly = _ref.readOnly,
25 | register = _ref.register;
26 | return /*#__PURE__*/_react.default.createElement(_styles.Label, null, /*#__PURE__*/_react.default.createElement(_styles.Content, null, label), /*#__PURE__*/_react.default.createElement(_styles2.TextareaStyles, _extends({
27 | name: name,
28 | placeholder: placeholder,
29 | readOnly: readOnly
30 | }, register(name))));
31 | }
32 |
33 | Textarea.defaultProps = {
34 | name: '',
35 | label: '',
36 | placeholder: '',
37 | readOnly: false,
38 | register: function register() {}
39 | };
40 | Textarea.propTypes = {
41 | name: _propTypes.default.string,
42 | label: _propTypes.default.string,
43 | placeholder: _propTypes.default.string,
44 | readOnly: _propTypes.default.bool,
45 | register: _propTypes.default.func
46 | };
47 | var _default = Textarea;
48 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/Profile/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | var _Title = _interopRequireDefault(require("../Title"));
15 |
16 | var _Image = _interopRequireDefault(require("../Image"));
17 |
18 | var _Icons = _interopRequireDefault(require("../Icons"));
19 |
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21 |
22 | function Profile(_ref) {
23 | var name = _ref.name,
24 | avatar = _ref.avatar,
25 | socialMedias = _ref.socialMedias;
26 | return /*#__PURE__*/_react.default.createElement(_styles.ProfileStyle, null, /*#__PURE__*/_react.default.createElement(_Title.default, null, name), /*#__PURE__*/_react.default.createElement(_Image.default, {
27 | src: avatar,
28 | alt: name
29 | }), /*#__PURE__*/_react.default.createElement(_styles.Nav, null, socialMedias.map(function (_ref2) {
30 | var name = _ref2.name,
31 | url = _ref2.url;
32 | return /*#__PURE__*/_react.default.createElement(_styles.Action, {
33 | key: url,
34 | href: url
35 | }, /*#__PURE__*/_react.default.createElement(_Icons.default, {
36 | name: name
37 | }));
38 | })));
39 | }
40 |
41 | Profile.propTypes = {
42 | name: _propTypes.default.string.isRequired,
43 | avatar: _propTypes.default.string.isRequired,
44 | socialMedias: _propTypes.default.arrayOf(_propTypes.default.shape({
45 | name: _propTypes.default.string.isRequired,
46 | url: _propTypes.default.string.isRequired
47 | }).isRequired)
48 | };
49 | var _default = Profile;
50 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/Box/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { palette } from '../../Styles/Settings/Colors/palette'
3 | import { BoxShadow, Body1 } from '../../Styles/Tools'
4 |
5 | const hasImage = ({ image }) =>
6 | image &&
7 | css`
8 | display: inline-flex;
9 | padding: 0;
10 | `
11 |
12 | const changeColor = ({ color }) =>
13 | color &&
14 | css`
15 | color: ${palette[color]};
16 | `
17 |
18 | export const Content = styled.p`
19 | ${Body1};
20 | color: var(--color-third);
21 | ${changeColor};
22 |
23 | & > strong {
24 | font-weight: bold;
25 | }
26 |
27 | & > a {
28 | color: var(--color-first);
29 | font-weight: bold;
30 | text-underline-offset: var(--gap-smallest);
31 | text-decoration-thickness: 3px;
32 | }
33 | `
34 |
35 | const hasLight = ({ light }) =>
36 | light &&
37 | css`
38 | background-color: var(--color-black-fourth);
39 |
40 | & > ${Content} {
41 | color: var(--color-black-first);
42 |
43 | & > a {
44 | color: var(--color-third);
45 | }
46 | }
47 | `
48 |
49 | const changeBorderColor = ({ borderColor }) =>
50 | borderColor &&
51 | css`
52 | border-color: ${palette[borderColor]};
53 | `
54 |
55 | const changeBackgroundColor = ({ backgroundColor }) =>
56 | backgroundColor &&
57 | css`
58 | background-color: ${palette[backgroundColor]};
59 | `
60 |
61 | export const Image = styled.img`
62 | width: 100%;
63 | `
64 |
65 | export const BoxStyles = styled.article`
66 | box-sizing: border-box;
67 | width: 100%;
68 | ${BoxShadow.medium};
69 | border: 0.5rem solid var(--color-third);
70 | padding: var(--gap-medium);
71 | background-color: var(--color-black-second);
72 |
73 | ${hasImage};
74 | ${changeBorderColor};
75 | ${changeBackgroundColor};
76 | ${hasLight};
77 | `
78 |
--------------------------------------------------------------------------------
/dist/components/Field/Text/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("../styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17 |
18 | function Text(_ref) {
19 | var name = _ref.name,
20 | type = _ref.type,
21 | label = _ref.label,
22 | placeholder = _ref.placeholder,
23 | readOnly = _ref.readOnly,
24 | register = _ref.register;
25 | return /*#__PURE__*/_react.default.createElement(_styles.Label, null, /*#__PURE__*/_react.default.createElement(_styles.Content, null, label), /*#__PURE__*/_react.default.createElement(_styles.Input, _extends({
26 | name: name,
27 | type: type,
28 | placeholder: placeholder,
29 | readOnly: readOnly
30 | }, register(name))));
31 | }
32 |
33 | Text.defaultProps = {
34 | name: '',
35 | type: 'text',
36 | label: '',
37 | placeholder: '',
38 | readOnly: false,
39 | register: function register() {}
40 | };
41 | Text.propTypes = {
42 | name: _propTypes.default.string,
43 | type: _propTypes.default.string,
44 | label: _propTypes.default.string,
45 | placeholder: _propTypes.default.string,
46 | readOnly: _propTypes.default.bool,
47 | register: _propTypes.default.func
48 | };
49 | var _default = Text;
50 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/ListContentDay/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _ContentDay = _interopRequireDefault(require("../ContentDay"));
13 |
14 | var _styles = _interopRequireDefault(require("./styles"));
15 |
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 |
18 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
19 |
20 | function ListContentDay(_ref) {
21 | var days = _ref.days;
22 | return /*#__PURE__*/_react.default.createElement(_styles.default, {
23 | length: days.length
24 | }, days.map(function (day) {
25 | return /*#__PURE__*/_react.default.createElement(_ContentDay.default, _extends({
26 | key: day.title
27 | }, day));
28 | }));
29 | }
30 |
31 | var contentDay = {
32 | title: _propTypes.default.string.isRequired,
33 | goal: _propTypes.default.string.isRequired,
34 | options: _propTypes.default.arrayOf(_propTypes.default.shape({
35 | label: _propTypes.default.string.isRequired,
36 | description: _propTypes.default.string.isRequired,
37 | length: _propTypes.default.number.isRequired
38 | })),
39 | color: _propTypes.default.string,
40 | fontColor: _propTypes.default.string
41 | };
42 | ListContentDay.propTypes = {
43 | days: _propTypes.default.arrayOf(_propTypes.default.shape(contentDay))
44 | };
45 | var _default = ListContentDay;
46 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/VideoPlayer/PlaybackRate/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _style = require("./style");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function PlaybackRate(_ref) {
17 | var showVelocity = _ref.showVelocity,
18 | velocities = _ref.velocities,
19 | changeActiveVelocity = _ref.changeActiveVelocity,
20 | velocityActive = _ref.velocityActive,
21 | toggleVelocity = _ref.toggleVelocity;
22 | return /*#__PURE__*/_react.default.createElement(_style.PlaybackRateStyle, null, /*#__PURE__*/_react.default.createElement(_style.Velocity, {
23 | showVelocity: showVelocity
24 | }, velocities.map(function (velocity) {
25 | return /*#__PURE__*/_react.default.createElement(_style.Action, {
26 | key: velocity,
27 | onClick: changeActiveVelocity,
28 | active: velocity === velocityActive
29 | }, velocity);
30 | })), /*#__PURE__*/_react.default.createElement(_style.IconWrapper, null, /*#__PURE__*/_react.default.createElement(_style.IconPlaybackRate, {
31 | onClick: toggleVelocity
32 | })));
33 | }
34 |
35 | PlaybackRate.defaultProps = {
36 | velocityActive: 1,
37 | showVelocity: false
38 | };
39 | PlaybackRate.propTypes = {
40 | velocityActive: _propTypes.default.string,
41 | changeActiveVelocity: _propTypes.default.func.isRequired,
42 | velocities: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
43 | toggleVelocity: _propTypes.default.func.isRequired,
44 | showVelocity: _propTypes.default.bool.isRequired
45 | };
46 | var _default = PlaybackRate;
47 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/Styles/Generic/Reset/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | function _templateObject() {
11 | var data = _taggedTemplateLiteral(["\n/* http://meyerweb.com/eric/tools/css/reset/ \n v2.0 | 20110126\n License: none (public domain)\n*/\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, embed, \nfigure, figcaption, footer, header, hgroup, \nmenu, nav, output, ruby, section, summary,\ntime, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n/* HTML5 display-role reset for older browsers */\narticle, aside, details, figcaption, figure, \nfooter, header, hgroup, menu, nav, section {\n display: block;\n}\nbody {\n line-height: 1;\n}\nol, ul {\n list-style: none;\n}\nblockquote, q {\n quotes: none;\n}\nblockquote:before, blockquote:after,\nq:before, q:after {\n content: '';\n content: none;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n"]);
12 |
13 | _templateObject = function _templateObject() {
14 | return data;
15 | };
16 |
17 | return data;
18 | }
19 |
20 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
21 |
22 | var Reset = (0, _styledComponents.createGlobalStyle)(_templateObject());
23 | var _default = Reset;
24 | exports.default = _default;
--------------------------------------------------------------------------------
/src/lib/components/VideoPlayer/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import sprite from '../../assets/images/icons.png'
3 | import { Cursor, BoxShadow } from '../../Styles/Tools'
4 |
5 | export const BigPlay = styled.button`
6 | display: flex;
7 | justify-content: center;
8 | align-items: center;
9 | position: absolute;
10 | width: 90px;
11 | height: 90px;
12 | background-color: var(--color-first);
13 | filter: grayscale(1);
14 | transition: opacity 100ms linear;
15 | opacity: ${({ active }) => (active ? '1' : '0')};
16 | transition: opacity 200ms linear;
17 | ${BoxShadow.small}
18 |
19 | &:after {
20 | content: '';
21 | background: url(${sprite}) 0 0 no-repeat;
22 | width: 16px;
23 | height: 16px;
24 | transform: scale(3);
25 | image-rendering: crisp-edges;
26 | image-rendering: pixelated;
27 | }
28 |
29 | &:hover {
30 | ${Cursor.hover};
31 | transform: scale(1.1);
32 | }
33 | `
34 |
35 | export const Source = styled.source``
36 |
37 | export const Video = styled.video`
38 | min-width: 100%;
39 | max-height: 100%;
40 | `
41 |
42 | const hasBox = ({ box }) =>
43 | box &&
44 | css`
45 | position: relative;
46 | box-sizing: border-box;
47 | width: 100%;
48 | ${BoxShadow.medium};
49 | border: 0.5rem solid var(--color-third);
50 | background-color: var(--color-black-second);
51 |
52 | & > ${Video} {
53 | width: auto;
54 | }
55 | `
56 |
57 | export const Wrapper = styled.figure`
58 | position: fixed;
59 | left: 0;
60 | right: 0;
61 | top: 0;
62 | bottom: 0;
63 | display: flex;
64 | justify-content: center;
65 | align-items: center;
66 | overflow: hidden;
67 | background-color: var(--color-black-first);
68 | ${({ showCursor }) => !showCursor && 'cursor: none;'};
69 |
70 | &:hover > ${BigPlay} {
71 | filter: grayscale(0);
72 | }
73 |
74 | ${hasBox}
75 | `
76 |
--------------------------------------------------------------------------------
/dist/components/TitleLive/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.TitleLiveStyle = exports.Content = exports.Title = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _Image = _interopRequireDefault(require("../Image"));
11 |
12 | var _Tools = require("../../Styles/Tools");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function _templateObject3() {
17 | var data = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n\n & > ", " {\n width: 6rem;\n border-width: 0.4rem;\n margin-right: var(--gap-medium);\n }\n"]);
18 |
19 | _templateObject3 = function _templateObject3() {
20 | return data;
21 | };
22 |
23 | return data;
24 | }
25 |
26 | function _templateObject2() {
27 | var data = _taggedTemplateLiteral([""]);
28 |
29 | _templateObject2 = function _templateObject2() {
30 | return data;
31 | };
32 |
33 | return data;
34 | }
35 |
36 | function _templateObject() {
37 | var data = _taggedTemplateLiteral(["\n ", ";\n color: var(--color-third);\n ", ";\n"]);
38 |
39 | _templateObject = function _templateObject() {
40 | return data;
41 | };
42 |
43 | return data;
44 | }
45 |
46 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
47 |
48 | var Title = _styledComponents.default.h2(_templateObject(), _Tools.Title, _Tools.TextShadow.colorSize('colorSecond', 'small'));
49 |
50 | exports.Title = Title;
51 |
52 | var Content = _styledComponents.default.div(_templateObject2());
53 |
54 | exports.Content = Content;
55 |
56 | var TitleLiveStyle = _styledComponents.default.div(_templateObject3(), _Image.default);
57 |
58 | exports.TitleLiveStyle = TitleLiveStyle;
--------------------------------------------------------------------------------
/dist/Styles/Tools/Cursor/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.Cursor = void 0;
7 |
8 | var _styledComponents = require("styled-components");
9 |
10 | function _templateObject2() {
11 | var data = _taggedTemplateLiteral(["\n cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC)\n 14 0,\n pointer;\n"]);
12 |
13 | _templateObject2 = function _templateObject2() {
14 | return data;
15 | };
16 |
17 | return data;
18 | }
19 |
20 | function _templateObject() {
21 | var data = _taggedTemplateLiteral(["\n cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABFklEQVRYR9WXURLDIAhE6/0PbSdOtUpcd1Gnpv1KGpTHBpCE1/cXq+vrMph7dGvXZTtpfW10DCA5jrH1H0Jhs5E0hnZdCR+vb5S8Nn8mQCeS9BdSalYJqMBjAGzq59xAESN7VFVUgV8AZB/dZBR7QTFDCqGquvUBVVoEtgIwpQRzmANSFHgWQKExHdIrPeuMvQNDarXe6nC/AutgV3JW+6bgqQLeV8FekRtgV+ToDKEKnACYKsfZjjkam7a0ZpYTytwmgainpC3HvwBocgKOxqRjehoR9DFKNFYtOwCGYCszobeCbl26N6yyQ6g8X/Wex/rBPsNEV6qAMaJPMynIHQCoSqS9JSMmwef51LflTgCRszU7DvAGiV6mHWfsaVUAAAAASUVORK5CYII=),\n auto;\n"]);
22 |
23 | _templateObject = function _templateObject() {
24 | return data;
25 | };
26 |
27 | return data;
28 | }
29 |
30 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
31 |
32 | var standard = (0, _styledComponents.css)(_templateObject());
33 | var hover = (0, _styledComponents.css)(_templateObject2());
34 | var Cursor = {
35 | standard: standard,
36 | hover: hover
37 | };
38 | exports.Cursor = Cursor;
--------------------------------------------------------------------------------
/dist/components/ProgressBar/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = _interopRequireDefault(require("./styles"));
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function ProgressBar(_ref) {
17 | var valueNow = _ref.valueNow,
18 | valueMax = _ref.valueMax,
19 | boxShadow = _ref.boxShadow,
20 | borderColor = _ref.borderColor,
21 | color = _ref.color,
22 | barColor = _ref.barColor,
23 | backgroundColor = _ref.backgroundColor;
24 | var valueMin = 0;
25 | var currentPercentage = Math.floor(valueNow / (valueMax - valueMin) * 100);
26 | return /*#__PURE__*/_react.default.createElement(_styles.default, {
27 | role: "progressbar",
28 | "aria-valuenow": valueNow,
29 | "aria-valuemin": valueMin,
30 | "aria-valuemax": valueMax,
31 | currentPercentage: currentPercentage,
32 | boxShadow: boxShadow,
33 | borderColor: borderColor,
34 | color: color,
35 | barColor: barColor,
36 | backgroundColor: backgroundColor
37 | }, currentPercentage + '%');
38 | }
39 |
40 | ProgressBar.defaultProps = {
41 | boxShadow: false,
42 | borderColor: 'colorSecond',
43 | color: 'colorBlackFirst',
44 | barColor: 'colorSuccess',
45 | backgroundColor: 'colorThird'
46 | };
47 | ProgressBar.propTypes = {
48 | valueNow: _propTypes.default.number.isRequired,
49 | valueMax: _propTypes.default.number.isRequired,
50 | boxShadow: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),
51 | borderColor: _propTypes.default.string,
52 | color: _propTypes.default.string,
53 | barColor: _propTypes.default.string,
54 | backgroundColor: _propTypes.default.string
55 | };
56 | var _default = ProgressBar;
57 | exports.default = _default;
--------------------------------------------------------------------------------
/dist/components/Timer/styles.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.TimerStyles = exports.Label = exports.Time = void 0;
7 |
8 | var _styledComponents = _interopRequireDefault(require("styled-components"));
9 |
10 | var _Tools = require("../../Styles/Tools");
11 |
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13 |
14 | function _templateObject3() {
15 | var data = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: center;\n"]);
16 |
17 | _templateObject3 = function _templateObject3() {
18 | return data;
19 | };
20 |
21 | return data;
22 | }
23 |
24 | function _templateObject2() {
25 | var data = _taggedTemplateLiteral(["\n ", ";\n text-transform: uppercase;\n color: var(--color-black-first);\n"]);
26 |
27 | _templateObject2 = function _templateObject2() {
28 | return data;
29 | };
30 |
31 | return data;
32 | }
33 |
34 | function _templateObject() {
35 | var data = _taggedTemplateLiteral(["\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--color-black-first);\n ", ";\n padding: var(--gap-medium) var(--gap-smallest);\n background-color: var(--color-third);\n ", ";\n margin-bottom: calc(var(--gap-smallest) / 2);\n"]);
36 |
37 | _templateObject = function _templateObject() {
38 | return data;
39 | };
40 |
41 | return data;
42 | }
43 |
44 | function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
45 |
46 | var Time = _styledComponents.default.dd(_templateObject(), _Tools.Subtitle, _Tools.BoxShadow.small);
47 |
48 | exports.Time = Time;
49 |
50 | var Label = _styledComponents.default.dt(_templateObject2(), _Tools.Body2);
51 |
52 | exports.Label = Label;
53 |
54 | var TimerStyles = _styledComponents.default.dl(_templateObject3());
55 |
56 | exports.TimerStyles = TimerStyles;
--------------------------------------------------------------------------------
/src/lib/components/ProgressBar/styles.js:
--------------------------------------------------------------------------------
1 | import styled, { css } from 'styled-components'
2 | import { palette } from '../../Styles/Settings/Colors/palette'
3 | import { Body2, BoxShadow } from '../../Styles/Tools'
4 |
5 | const sizeBar = css`
6 | transform: scaleX(${({ currentPercentage }) => currentPercentage / 100});
7 | `
8 |
9 | const changeBoxShadow = ({ boxShadow }) =>
10 | boxShadow === 'small' &&
11 | css`
12 | ${BoxShadow.small}
13 | `
14 |
15 | const changeBorderColor = ({ borderColor }) =>
16 | borderColor &&
17 | css`
18 | border-color: ${palette[borderColor]};
19 | `
20 |
21 | const changeColor = ({ color }) =>
22 | color &&
23 | css`
24 | color: ${palette[color]};
25 | `
26 |
27 | const changeBackgroundColor = ({ backgroundColor }) =>
28 | backgroundColor &&
29 | css`
30 | background-color: ${palette[backgroundColor]};
31 | `
32 |
33 | const changeBarColor = ({ barColor }) =>
34 | barColor &&
35 | css`
36 | background-color: ${palette[barColor]};
37 | `
38 |
39 | const ProgressBarStyle = styled.div`
40 | display: flex;
41 | justify-content: center;
42 | box-sizing: border-box;
43 | ${Body2}
44 | border: 0.5rem solid var(--color-second);
45 | background-color: var(--color-third);
46 | width: 100%;
47 | padding: calc(var(--gap-smallest) / 2) var(--gap-small);
48 | position: relative;
49 | overflow: hidden;
50 | ${BoxShadow.medium};
51 |
52 | ${changeBoxShadow};
53 | ${changeBorderColor};
54 | ${changeBackgroundColor};
55 |
56 | &:before {
57 | content: '';
58 | position: absolute;
59 | top: 0;
60 | left: 0;
61 | background-color: var(--color-success);
62 | width: 100%;
63 | height: 100%;
64 | transform-origin: left center;
65 | ${sizeBar};
66 | ${changeBarColor};
67 | }
68 |
69 | &:after {
70 | content: '${({ currentPercentage }) => currentPercentage + '%'}';
71 | position: absolute;
72 | z-index: 1;
73 | ${changeColor};
74 | }
75 | `
76 |
77 | export default ProgressBarStyle
78 |
--------------------------------------------------------------------------------
/dist/components/Field/Checkbox/index.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | Object.defineProperty(exports, "__esModule", {
4 | value: true
5 | });
6 | exports.default = void 0;
7 |
8 | var _react = _interopRequireDefault(require("react"));
9 |
10 | var _propTypes = _interopRequireDefault(require("prop-types"));
11 |
12 | var _styles = require("./styles");
13 |
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15 |
16 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17 |
18 | function Checkbox(_ref) {
19 | var children = _ref.children,
20 | active = _ref.active,
21 | name = _ref.name,
22 | register = _ref.register,
23 | value = _ref.value,
24 | onClick = _ref.onClick,
25 | small = _ref.small;
26 | return /*#__PURE__*/_react.default.createElement(_styles.CheckboxStyle, {
27 | active: active,
28 | onClick: onClick
29 | }, /*#__PURE__*/_react.default.createElement(_styles.Check, _extends({}, register(name), {
30 | name: name,
31 | value: value,
32 | defaultChecked: active
33 | })), /*#__PURE__*/_react.default.createElement(_styles.Icon, null), /*#__PURE__*/_react.default.createElement(_styles.Content, {
34 | small: small
35 | }, children));
36 | }
37 |
38 | Checkbox.defaultProps = {
39 | active: false,
40 | onClick: function onClick() {},
41 | value: '',
42 | small: false
43 | };
44 | Checkbox.propTypes = {
45 | children: _propTypes.default.string.isRequired,
46 | name: _propTypes.default.string.isRequired,
47 | register: _propTypes.default.func.isRequired,
48 | value: _propTypes.default.string,
49 | onClick: _propTypes.default.func,
50 | active: _propTypes.default.bool,
51 | small: _propTypes.default.bool
52 | };
53 | var _default = Checkbox;
54 | exports.default = _default;
--------------------------------------------------------------------------------