├── .nvmrc ├── src ├── Maps │ └── .gitkeep ├── AnchorButton │ └── .gitkeep ├── ScrollToTop │ ├── ScrollToTop.test.js │ └── ScrollToTop.js ├── utils │ └── isClient.js ├── styleConstants.js ├── StoryCard │ ├── StoryFooter.css │ ├── StoryCard.css │ ├── StoryLink.js │ ├── StoryCard.js │ ├── StoryLink.css │ ├── StoryCard.test.js │ └── StoryFooter.js ├── Icon │ └── Icon.js ├── Slider │ ├── RcSlider.js │ ├── SliderTooltip.js │ ├── Slider.js │ └── SliderBox.css ├── Hero │ ├── CollectionHero.js │ ├── Hero.js │ └── Hero.css ├── Pie │ ├── Pie.css │ └── Pie.js ├── Logo │ ├── LogoStandard.js │ └── LogoAnimated.js ├── Dropdown │ ├── Dropdown.styles.css │ ├── Dropdown.test.js │ └── Dropdown.js ├── Button │ ├── Button.js │ ├── Button.test.js │ └── Button.styles.css ├── Sankey │ ├── Sankey.css │ └── Sankey.js ├── Navigation │ ├── NavRouterLink.css │ ├── NavSubMenu.js │ ├── NavRouterLink.js │ ├── Header.css │ ├── Header.js │ ├── Nav.js │ └── Nav.css ├── BarChart │ └── BarChart.js ├── Footer │ ├── Footer.js │ └── Footer.css ├── Tag │ └── Tag.js ├── Media │ └── Media.js ├── Scatterplot │ └── Scatterplot.js ├── index.js ├── AreaChart │ ├── AreaChart.test.js │ └── AreaChart.js ├── ChartData │ └── ChartData.js ├── RechartsPie │ ├── RechartsPie.js │ └── RechartsPie.test.js ├── LeafletMap │ ├── LeafletMap.js │ └── LeafletMap.test.js ├── constants.css ├── Share │ └── ShareCollection.js ├── Chart │ └── Chart.js └── global.styles.css ├── index.js ├── lib ├── ScrollToTop │ ├── ScrollToTop.test.js │ ├── ScrollToTop.css │ └── ScrollToTop.js ├── utils │ └── isClient.js ├── StoryCard │ ├── StoryFooter.css │ ├── StoryCard.css │ ├── StoryLink.css │ ├── StoryCard.js │ ├── StoryLink.js │ ├── StoryCard.test.js │ └── StoryFooter.js ├── styleConstants.js ├── Pie │ ├── Pie.css │ └── Pie.js ├── Dropdown │ ├── Dropdown.styles.css │ ├── Dropdown.test.js │ └── Dropdown.js ├── Sankey │ ├── Sankey.css │ └── Sankey.js ├── Navigation │ ├── NavRouterLink.css │ ├── Header.css │ ├── NavSubMenu.js │ ├── NavRouterLink.js │ ├── Nav.css │ └── Header.js ├── Button │ ├── Button.styles.css │ ├── Button.test.js │ └── Button.js ├── Icon │ └── Icon.js ├── Hero │ ├── Hero.css │ ├── CollectionHero.js │ └── Hero.js ├── Logo │ ├── LogoStandard.js │ ├── Logo.js │ └── LogoAnimated.js ├── Slider │ ├── RcSlider.js │ ├── SliderBox.css │ ├── Slider.js │ └── SliderTooltip.js ├── Footer │ ├── Footer.css │ └── Footer.js ├── constants.css ├── Scatterplot │ └── Scatterplot.js ├── BarChart │ └── BarChart.js ├── AreaChart │ ├── AreaChart.test.js │ └── AreaChart.js ├── Media │ └── Media.js ├── Tag │ └── Tag.js ├── RechartsPie │ ├── RechartsPie.test.js │ └── RechartsPie.js ├── LeafletMap │ ├── LeafletMap.test.js │ └── LeafletMap.js ├── StamenMap │ ├── StamenMap.test.js │ └── StamenMap.js ├── global.styles.css ├── ChartData │ └── ChartData.js ├── DropdownMenu │ └── DropdownMenu.js ├── Share │ └── ShareCollection.js └── index.js ├── .gitignore ├── .npmignore ├── .babelrc ├── .storybook ├── head.html ├── addons.js ├── config.js └── webpack.config.js ├── assets ├── data-pattern-trans.png ├── civic-logo-animated.svg └── civic-logo.svg ├── dist ├── 2273e3d8ad9264b7daa5bdbf8e6b47f8.png ├── 4f0283c6ce28e888000e978e537a6a56.png └── a6137456ed160d7606981aa57c559898.png ├── mocha.options ├── .editorconfig ├── stories ├── Footer.story.js ├── Scatterplot.story.js ├── BarChart.story.js ├── ScrollToTop.story.js ├── Button.story.js ├── Hero.story.js ├── Sankey.story.js ├── StoryFooter.story.js ├── AreaChart.story.js ├── Editable.story.js ├── Dropdown.story.js ├── Header.story.js ├── Slider.story.js ├── RechartsPie.story.js ├── index.js ├── shared.js ├── StoryLink.story.js ├── Welcome.js ├── Pie.story.js ├── StoryCard.story.js └── LeafletMap.story.js ├── mocha.conf.js ├── README.md ├── .eslintrc └── package.json /.nvmrc: -------------------------------------------------------------------------------- 1 | 6.9.5 2 | -------------------------------------------------------------------------------- /src/Maps/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/AnchorButton/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | // require('./dist/index.js'); -------------------------------------------------------------------------------- /src/ScrollToTop/ScrollToTop.test.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib/ScrollToTop/ScrollToTop.test.js: -------------------------------------------------------------------------------- 1 | "use strict"; -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | .DS_Store 4 | .dev 5 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | .DS_Store 4 | .dev 5 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["react", "es2015", "stage-1"], 3 | } -------------------------------------------------------------------------------- /lib/ScrollToTop/ScrollToTop.css: -------------------------------------------------------------------------------- 1 | .RemoveUnderline { 2 | border-bottom: none; 3 | } 4 | -------------------------------------------------------------------------------- /src/utils/isClient.js: -------------------------------------------------------------------------------- 1 | const isClient = typeof document !== 'undefined'; 2 | 3 | export default isClient; -------------------------------------------------------------------------------- /.storybook/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/data-pattern-trans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackoregon/component-library/HEAD/assets/data-pattern-trans.png -------------------------------------------------------------------------------- /dist/2273e3d8ad9264b7daa5bdbf8e6b47f8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackoregon/component-library/HEAD/dist/2273e3d8ad9264b7daa5bdbf8e6b47f8.png -------------------------------------------------------------------------------- /dist/4f0283c6ce28e888000e978e537a6a56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackoregon/component-library/HEAD/dist/4f0283c6ce28e888000e978e537a6a56.png -------------------------------------------------------------------------------- /dist/a6137456ed160d7606981aa57c559898.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackoregon/component-library/HEAD/dist/a6137456ed160d7606981aa57c559898.png -------------------------------------------------------------------------------- /.storybook/addons.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable import/no-extraneous-dependencies */ 2 | import '@kadira/storybook/addons'; 3 | import '@kadira/storybook-addon-knobs/register'; -------------------------------------------------------------------------------- /lib/utils/isClient.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | var isClient = typeof document !== 'undefined'; 7 | 8 | exports.default = isClient; -------------------------------------------------------------------------------- /mocha.options: -------------------------------------------------------------------------------- 1 | --require mocha-clean 2 | --require babel-register 3 | --require ignore-styles 4 | --require source-map-support/register 5 | --colors 6 | --recursive 7 | --require ./mocha.conf.js 8 | --ui bdd -------------------------------------------------------------------------------- /src/styleConstants.js: -------------------------------------------------------------------------------- 1 | export const ICONS = { 2 | eye: 'fa fa-eye', 3 | link: 'fa fa-link', 4 | check: 'fa fa-check', 5 | download: 'fa fa-cloud-download', 6 | hamburger: 'fa fa-bars fa-2x', 7 | }; 8 | -------------------------------------------------------------------------------- /lib/StoryCard/StoryFooter.css: -------------------------------------------------------------------------------- 1 | .footerlinks { 2 | padding: 24px; 3 | display: flex; 4 | flex-direction: row; 5 | justify-content: center; 6 | } 7 | 8 | .footerlinks div:first-child { 9 | margin-right: 32px; 10 | } 11 | -------------------------------------------------------------------------------- /src/StoryCard/StoryFooter.css: -------------------------------------------------------------------------------- 1 | .footerlinks { 2 | padding: 24px; 3 | display: flex; 4 | flex-direction: row; 5 | justify-content: center; 6 | } 7 | 8 | .footerlinks div:first-child { 9 | margin-right: 32px; 10 | } 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /lib/styleConstants.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | Object.defineProperty(exports, "__esModule", { 4 | value: true 5 | }); 6 | var ICONS = exports.ICONS = { 7 | eye: 'fa fa-eye', 8 | link: 'fa fa-link', 9 | check: 'fa fa-check', 10 | download: 'fa fa-cloud-download', 11 | hamburger: 'fa fa-bars fa-2x' 12 | }; -------------------------------------------------------------------------------- /.storybook/config.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable import/no-extraneous-dependencies */ 2 | import { configure, setAddon } from '@kadira/storybook'; 3 | import infoAddon from '@kadira/react-storybook-addon-info'; 4 | 5 | setAddon(infoAddon); 6 | 7 | function loadStories() { 8 | require('../stories'); 9 | } 10 | 11 | configure(loadStories, module); 12 | -------------------------------------------------------------------------------- /src/Icon/Icon.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const Icon = ({ className, handleClick }) => ( 4 |