├── packages ├── cf-component-toast │ ├── README.md │ ├── src │ │ ├── ToastTheme.js │ │ └── index.js │ ├── package.json │ └── example │ │ └── basic │ │ └── component.js ├── example │ ├── .gitignore │ ├── .babelrc │ ├── index.html │ ├── source.js │ └── package.json ├── cf-util-http │ ├── src │ │ ├── index.js │ │ └── polyfillFetchInEdge.js │ ├── .npmignore │ └── package.json ├── cf-component-card │ ├── src │ │ ├── CardTheme.js │ │ ├── CardBlockTheme.js │ │ ├── CardContentTheme.js │ │ ├── CardControlTheme.js │ │ ├── CardDrawersTheme.js │ │ ├── CardSectionTheme.js │ │ ├── CardMessagesTheme.js │ │ ├── CardTitleTheme.js │ │ ├── CardFooterTheme.js │ │ ├── CardPropTypes.js │ │ ├── CardTitle.js │ │ ├── CardContent.js │ │ ├── CardFooter.js │ │ └── CardBlock.js │ ├── .npmignore │ ├── test │ │ ├── __snapshots__ │ │ │ ├── CardTitle.js.snap │ │ │ ├── CardContent.js.snap │ │ │ ├── CardBlock.js.snap │ │ │ ├── CardMessages.js.snap │ │ │ ├── CardFooter.js.snap │ │ │ ├── Card.js.snap │ │ │ └── CardToolbar.js.snap │ │ ├── Card.js │ │ ├── CardBlock.js │ │ ├── CardTitle.js │ │ ├── CardFooter.js │ │ ├── CardContent.js │ │ ├── CardToolbar.js │ │ ├── CardMessages.js │ │ ├── CardControl.js │ │ └── CardSection.js │ └── package.json ├── cf-component-icon │ ├── src │ │ ├── IconTheme.js │ │ ├── index.js │ │ └── reactsvgs │ │ │ ├── Download.js │ │ │ ├── Ok.js │ │ │ ├── Hamburger.js │ │ │ ├── Bolt.js │ │ │ ├── Filter.js │ │ │ ├── Pause.js │ │ │ ├── CaretUp.js │ │ │ ├── CaretDown.js │ │ │ ├── CaretLeft.js │ │ │ ├── CaretRight.js │ │ │ ├── OkSign.js │ │ │ ├── Remove.js │ │ │ ├── Plus.js │ │ │ ├── Chart.js │ │ │ ├── Door.js │ │ │ ├── Speech.js │ │ │ ├── Mail.js │ │ │ ├── Refresh.js │ │ │ ├── Wrench.js │ │ │ ├── File.js │ │ │ ├── Search.js │ │ │ ├── Upload.js │ │ │ ├── Network.js │ │ │ ├── InfoSign.js │ │ │ ├── Facebook.js │ │ │ └── Time.js │ ├── .npmignore │ └── package.json ├── cf-component-list │ ├── src │ │ ├── ListItemTheme.js │ │ ├── OrderedListTheme.js │ │ ├── UnorderedListTheme.js │ │ ├── ListItem.js │ │ ├── OrderedList.js │ │ └── UnorderedList.js │ ├── .npmignore │ ├── test │ │ ├── __snapshots__ │ │ │ ├── ListItem.js.snap │ │ │ ├── OrderedList.js.snap │ │ │ └── UnorderedList.js.snap │ │ ├── ListItem.js │ │ ├── OrderedList.js │ │ └── UnorderedList.js │ ├── example │ │ └── basic │ │ │ └── component.js │ └── package.json ├── cf-component-loading │ ├── src │ │ ├── LoadingTheme.js │ │ └── index.js │ ├── .npmignore │ ├── example │ │ └── basic │ │ │ └── component.js │ ├── test │ │ └── Loading.js │ ├── README.md │ ├── package.json │ └── CHANGELOG.md ├── cf-component-dropdown │ ├── src │ │ ├── DropdownLinkTheme.js │ │ ├── DropdownSeparatorTheme.js │ │ ├── DropdownTheme.js │ │ └── DropdownSeparator.js │ ├── .npmignore │ ├── test │ │ ├── __snapshots__ │ │ │ └── DropdownSeparator.js.snap │ │ └── DropdownSeparator.js │ └── package.json ├── cf-component-progress │ ├── src │ │ ├── ProgressTheme.js │ │ └── index.js │ ├── .npmignore │ ├── package.json │ └── test │ │ └── Progress.js ├── cf-component-link │ ├── src │ │ └── index.js │ ├── .npmignore │ └── package.json ├── cf-util-cache │ ├── src │ │ ├── index.js │ │ └── storage.js │ ├── .npmignore │ ├── README.md │ └── package.json ├── cf-builder-card │ ├── .npmignore │ ├── src │ │ ├── CardActionTypes.js │ │ ├── index.js │ │ ├── cardActions.js │ │ └── cardReducer.js │ ├── test │ │ └── cardActions.js │ └── package.json ├── cf-builder-table │ ├── .npmignore │ ├── src │ │ ├── TableActionTypes.js │ │ ├── index.js │ │ └── TableBuilderPropTypes.js │ ├── package.json │ └── CHANGELOG.md ├── cf-component-box │ ├── .npmignore │ ├── src │ │ ├── BoxTheme.js │ │ └── index.js │ ├── package.json │ └── test │ │ └── Box.js ├── cf-component-code │ ├── .npmignore │ ├── test │ │ ├── Code.js │ │ └── CodeBlock.js │ ├── src │ │ ├── CodeBlockTheme.js │ │ ├── CodeTheme.js │ │ └── index.js │ ├── example │ │ └── basic │ │ │ └── component.js │ ├── package.json │ └── README.md ├── cf-component-copyable-textarea │ ├── src │ │ ├── CopyableTextareaTheme.js │ │ └── index.js │ ├── .npmignore │ ├── example │ │ └── basic │ │ │ └── component.js │ └── package.json ├── cf-style-const │ ├── src │ │ └── index.js │ ├── package.json │ └── README.md ├── cf-builder-pagination │ ├── .npmignore │ ├── src │ │ └── index.js │ └── package.json ├── cf-util-http-poll │ ├── src │ │ └── index.js │ ├── .npmignore │ └── package.json ├── cf-util-markdown │ ├── src │ │ └── index.js │ ├── .npmignore │ └── package.json ├── cf-component-page │ ├── src │ │ ├── PageTheme.js │ │ ├── index.js │ │ ├── PageContent.js │ │ └── Page.js │ ├── .npmignore │ ├── test │ │ ├── Page.js │ │ ├── PageContent.js │ │ ├── __snapshots__ │ │ │ ├── PageContent.js.snap │ │ │ └── Page.js.snap │ │ └── PageHeader.js │ ├── example │ │ └── basic │ │ │ └── component.js │ ├── README.md │ └── package.json ├── cf-test-focus │ ├── .npmignore │ ├── src │ │ ├── index.js │ │ └── focus.js │ ├── package.json │ └── README.md ├── cf-test-store │ ├── .npmignore │ ├── src │ │ ├── index.js │ │ └── createMockStore.js │ ├── package.json │ └── README.md ├── cf-test-stub │ ├── .npmignore │ ├── src │ │ └── index.js │ ├── .eslintrc.yaml │ └── package.json ├── cf-test-www-api │ ├── .npmignore │ ├── src │ │ ├── index.js │ │ └── createApiResponse.js │ └── package.json ├── cf-util-adwords │ ├── .npmignore │ ├── src │ │ └── index.js │ ├── package.json │ └── README.md ├── cf-util-async │ ├── .npmignore │ ├── src │ │ ├── index.js │ │ └── series.js │ └── package.json ├── cf-util-logger │ ├── .npmignore │ ├── src │ │ ├── index.js │ │ └── createLogger.js │ ├── package.json │ └── README.md ├── cf-component-button │ ├── .npmignore │ ├── src │ │ ├── ButtonGroupTheme.js │ │ └── index.js │ └── package.json ├── cf-component-callout │ ├── .npmignore │ ├── example │ │ └── basic │ │ │ └── component.js │ ├── src │ │ ├── index.js │ │ └── CalloutTheme.js │ ├── README.md │ ├── package.json │ └── test │ │ └── Callout.js ├── cf-component-checkbox │ ├── .npmignore │ ├── src │ │ └── index.js │ ├── package.json │ └── test │ │ └── CheckboxGroup.js ├── cf-component-form │ ├── .npmignore │ ├── src │ │ ├── FormHeaderTheme.js │ │ ├── FormTheme.js │ │ ├── FormFooterTheme.js │ │ ├── FormLabelTheme.js │ │ ├── FormFieldErrorTheme.js │ │ ├── FormFieldsetTheme.js │ │ └── FormFooter.js │ ├── test │ │ ├── FormHeader.js │ │ ├── FormFooter.js │ │ ├── __snapshots__ │ │ │ ├── FormFooter.js.snap │ │ │ └── FormHeader.js.snap │ │ ├── FormFieldset.js │ │ └── FormLabel.js │ └── package.json ├── cf-component-header │ ├── .npmignore │ ├── README.md │ ├── src │ │ ├── index.js │ │ ├── NavItem.js │ │ └── NavList.js │ ├── test │ │ ├── NavItem.js │ │ ├── NavList.js │ │ ├── Hamburger.js │ │ ├── __snapshots__ │ │ │ ├── NavItem.js.snap │ │ │ └── NavList.js.snap │ │ └── Header.js │ ├── package.json │ └── example │ │ └── basic │ │ └── component.js ├── cf-component-heading │ ├── .npmignore │ ├── src │ │ ├── HeadingCaptionTheme.js │ │ ├── HeadingTheme.js │ │ └── index.js │ ├── example │ │ └── basic │ │ │ └── component.js │ ├── test │ │ ├── Heading.js │ │ ├── HeadingCaption.js │ │ └── __snapshots__ │ │ │ ├── HeadingCaption.js.snap │ │ │ └── Heading.js.snap │ ├── README.md │ └── package.json ├── cf-component-input │ ├── .npmignore │ ├── src │ │ └── index.js │ └── package.json ├── cf-component-label │ ├── .npmignore │ ├── src │ │ └── index.js │ ├── test │ │ └── Label.js │ ├── example │ │ └── basic │ │ │ └── component.js │ ├── README.md │ └── package.json ├── cf-component-logo │ ├── .npmignore │ ├── README.md │ ├── example │ │ └── basic │ │ │ └── component.js │ ├── src │ │ └── index.js │ ├── test │ │ ├── Logo.js │ │ └── __snapshots__ │ │ │ └── Logo.js.snap │ └── package.json ├── cf-component-modal │ ├── .npmignore │ ├── test │ │ ├── __snapshots__ │ │ │ ├── ModalBody.js.snap │ │ │ ├── ModalActions.js.snap │ │ │ ├── ModalFooter.js.snap │ │ │ ├── ModalHeader.js.snap │ │ │ └── ModalTitle.js.snap │ │ ├── ModalBody.js │ │ ├── ModalFooter.js │ │ ├── ModalHeader.js │ │ ├── ModalActions.js │ │ ├── ModalTitle.js │ │ └── ModalClose.js │ └── src │ │ ├── ModalBody.js │ │ ├── ModalActions.js │ │ ├── ModalHeader.js │ │ ├── index.js │ │ ├── ModalTitle.js │ │ ├── ModalClose.js │ │ └── ModalFooter.js ├── cf-component-radio │ ├── .npmignore │ ├── src │ │ ├── RadioGroupTheme.js │ │ ├── RadioTheme.js │ │ └── index.js │ ├── test │ │ ├── __snapshots__ │ │ │ └── RadioGroup.js.snap │ │ └── RadioGroup.js │ └── package.json ├── cf-component-select │ ├── .npmignore │ ├── src │ │ ├── SelectTheme.js │ │ ├── index.js │ │ ├── clearRenderer.js │ │ └── MenuHeader.js │ ├── test │ │ └── Select.js │ └── package.json ├── cf-component-table │ ├── .npmignore │ ├── test │ │ ├── __snapshots__ │ │ │ ├── TableBody.js.snap │ │ │ ├── TableFoot.js.snap │ │ │ ├── TableHead.js.snap │ │ │ ├── TableHeadCell.js.snap │ │ │ ├── TableCell.js.snap │ │ │ └── TableRow.js.snap │ │ ├── TableBody.js │ │ ├── TableFoot.js │ │ ├── TableHead.js │ │ └── TableHeadCell.js │ ├── src │ │ ├── TablePropTypes.js │ │ ├── index.js │ │ ├── TableBody.js │ │ ├── TableFoot.js │ │ └── TableHead.js │ ├── package.json │ └── CHANGELOG.md ├── cf-component-tabs │ ├── .npmignore │ ├── src │ │ ├── TabsPanelTheme.js │ │ └── TabsTheme.js │ ├── test │ │ ├── Tabs.js │ │ └── __snapshots__ │ │ │ ├── Tabs.js.snap │ │ │ └── TabsPanel.js.snap │ └── package.json ├── cf-component-text │ ├── .npmignore │ ├── src │ │ └── index.js │ └── package.json ├── cf-component-textarea │ ├── .npmignore │ ├── src │ │ └── index.js │ ├── test │ │ └── Textarea.js │ ├── package.json │ └── example │ │ └── basic │ │ └── component.js ├── cf-component-toggle │ ├── .npmignore │ ├── src │ │ └── index.js │ └── package.json ├── cf-component-tooltip │ ├── .npmignore │ ├── src │ │ ├── index.js │ │ └── createTooltip.js │ └── package.json ├── cf-style-container │ ├── .npmignore │ └── package.json ├── cf-util-http-file │ ├── .npmignore │ ├── src │ │ ├── index.js │ │ ├── uploadFile.js │ │ ├── downloadFile.js │ │ └── saveFile.js │ ├── package.json │ └── README.md ├── cf-util-route-handler │ ├── .npmignore │ ├── src │ │ ├── index.js │ │ └── routeHandler.js │ └── package.json ├── cf-component-dynamic-content │ ├── src │ │ ├── DynamicContentTheme.js │ │ └── index.js │ ├── .npmignore │ ├── test │ │ ├── __snapshots__ │ │ │ └── DynamicContent.js.snap │ │ └── DynamicContent.js │ ├── example │ │ └── basic │ │ │ └── component.js │ ├── package.json │ └── README.md ├── cf-component-notifications │ ├── .npmignore │ ├── test │ │ ├── __snapshots__ │ │ │ ├── NotificationList.js.snap │ │ │ └── NotificationGlobalContainer.js.snap │ │ ├── NotificationList.js │ │ └── NotificationGlobalContainer.js │ ├── src │ │ ├── index.js │ │ ├── NotificationList.js │ │ └── NotificationGlobalContainer.js │ └── package.json ├── cf-component-pagination │ ├── .npmignore │ ├── src │ │ ├── PaginationRootTheme.js │ │ ├── PaginationRoot.js │ │ ├── PaginationTheme.js │ │ └── PaginationMinimalTheme.js │ └── package.json └── cf-style-provider │ └── src │ ├── index.js │ └── felaTestContext.js ├── __mocks__ ├── styleMock.js └── fileMock.js ├── test_setup ├── setup-fetch.js └── patch-console.js ├── docs ├── 0899345ef86e0d3c7eea5d65979b478e.woff ├── 0d2e75ce5a2b0f517663d19442835a6e.png ├── 13174d6d2424fe9c949dd7d736a6ea70.ttf ├── 1e35a4df8c3a259f43b316f294b5a23a.ttf ├── 30db20e1d94e92f3fd23804f23a391e8.eot ├── 33241e91179b6354c3967d524233fd61.png ├── 41c53e29d4913287ce927ca784730a82.png ├── 495c8a0b139ad3df15ae263dc1a4b29c.png ├── 4dd10f5c895627e66e48aa7d9cdea302.ttf ├── 609106f9b9266299e1f7b2babc795051.woff ├── 761de25eeb76317ef3cd48523c4f9a73.woff ├── 79c228db32beb361a052be2aa9d228cc.eot ├── 7a8802a850b1ca52cf3a28bff2395d7b.png ├── 91b041a4c5a224f5fb47efc63c7c50fc.eot ├── 9b5e575d6b9ba775e8690da387b5ce16.eot ├── c0a3c8a65b929eaaaaf4baaa34f3e08c.woff ├── c46961532c69f055ee89467b0e879d82.ttf ├── cfa0fd1e616a0e029da0048ba2845ecd.woff ├── d1eb144b85e1ccf3c660398d393b9a70.woff ├── d512c6abf3c97617fb2a32f8e4edc68c.eot ├── e09d418ad96e2ded28c7d4a8064456f2.ttf ├── e1aa8d1603b7cf277f3f303a07ee2bf6.eot ├── e1acd09124e1720530a858614f584041.ttf ├── f03c8392e40eaa98a512c5854f1bdea8.png ├── fef6ff798b2121e53c12fd504aa672ab.png ├── 042da92f7b95a0474acdf22f3bc0fdf0.woff2 ├── 1a2908802bd075c63e618c0adb3e80e1.woff2 ├── a98432f2d7466790c46b5713912be2b6.woff2 ├── cadbf3f828eceacef0cc55d5d0bbc1ba.woff2 ├── e07569da810b1fb2fe9cc8062f10cef8.woff2 └── ed45204865ffe7e8c4698fab4860f896.woff2 ├── .gitignore ├── .travis.yml ├── .eslintrc ├── lerna.json ├── CODEOWNERS ├── .babelrc └── scripts └── build.sh /packages/cf-component-toast/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /__mocks__/styleMock.js: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /packages/example/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | index.js 3 | -------------------------------------------------------------------------------- /__mocks__/fileMock.js: -------------------------------------------------------------------------------- 1 | module.exports = 'test-file-stub'; 2 | -------------------------------------------------------------------------------- /packages/cf-util-http/src/index.js: -------------------------------------------------------------------------------- 1 | export * from './http'; 2 | -------------------------------------------------------------------------------- /test_setup/setup-fetch.js: -------------------------------------------------------------------------------- 1 | global.fetch = require('jest-fetch-mock'); 2 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-icon/src/IconTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardBlockTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardContentTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardControlTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardDrawersTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardSectionTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-list/src/ListItemTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-loading/src/LoadingTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardMessagesTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-dropdown/src/DropdownLinkTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-progress/src/ProgressTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-dropdown/src/DropdownSeparatorTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-component-link/src/index.js: -------------------------------------------------------------------------------- 1 | import Link from './Link'; 2 | 3 | export default Link; 4 | -------------------------------------------------------------------------------- /packages/cf-util-cache/src/index.js: -------------------------------------------------------------------------------- 1 | import cache from './cache'; 2 | 3 | export default cache; 4 | -------------------------------------------------------------------------------- /packages/cf-builder-card/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | -------------------------------------------------------------------------------- /packages/cf-builder-table/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | -------------------------------------------------------------------------------- /packages/cf-component-box/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | -------------------------------------------------------------------------------- /packages/cf-component-code/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | -------------------------------------------------------------------------------- /packages/cf-component-copyable-textarea/src/CopyableTextareaTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({}); 2 | -------------------------------------------------------------------------------- /packages/cf-style-const/src/index.js: -------------------------------------------------------------------------------- 1 | import variables from './variables'; 2 | 3 | export { variables }; 4 | -------------------------------------------------------------------------------- /packages/cf-builder-pagination/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | -------------------------------------------------------------------------------- /packages/cf-util-http-poll/src/index.js: -------------------------------------------------------------------------------- 1 | import httpPoll from './httpPoll'; 2 | 3 | export default httpPoll; 4 | -------------------------------------------------------------------------------- /packages/cf-util-markdown/src/index.js: -------------------------------------------------------------------------------- 1 | import markdown from './markdown'; 2 | 3 | export default markdown; 4 | -------------------------------------------------------------------------------- /packages/cf-component-copyable-textarea/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | -------------------------------------------------------------------------------- /packages/cf-component-dropdown/src/DropdownTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | textAlign: 'initial' 3 | }); 4 | -------------------------------------------------------------------------------- /packages/cf-component-page/src/PageTheme.js: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | paddingTop: 0, 3 | paddingBottom: 0 4 | }); 5 | -------------------------------------------------------------------------------- /packages/cf-test-focus/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-test-store/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-test-stub/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-test-www-api/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-util-adwords/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-util-adwords/src/index.js: -------------------------------------------------------------------------------- 1 | import trackAdwords from './trackAdwords'; 2 | 3 | export default trackAdwords; 4 | -------------------------------------------------------------------------------- /packages/cf-util-async/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-util-cache/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-util-http/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-util-logger/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-util-logger/src/index.js: -------------------------------------------------------------------------------- 1 | import createLogger from './createLogger'; 2 | 3 | export default createLogger; 4 | -------------------------------------------------------------------------------- /packages/cf-util-markdown/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/example/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["es2015", { "modules": false }], 4 | "react" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /packages/cf-component-button/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-callout/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-card/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-checkbox/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-dropdown/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-form/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-header/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-heading/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-input/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-label/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-link/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-list/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-loading/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-logo/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-modal/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-page/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-progress/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-radio/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-select/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-table/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-tabs/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-text/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-textarea/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-toggle/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-tooltip/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-style-container/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-test-store/src/index.js: -------------------------------------------------------------------------------- 1 | import createMockStore from './createMockStore'; 2 | 3 | export { createMockStore }; 4 | -------------------------------------------------------------------------------- /packages/cf-util-http-file/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-util-http-poll/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-util-route-handler/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-dynamic-content/src/DynamicContentTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | display: 'initial' 3 | }); 4 | -------------------------------------------------------------------------------- /packages/cf-component-notifications/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-pagination/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-test-stub/src/index.js: -------------------------------------------------------------------------------- 1 | import { createStub, stubMethod } from './stub'; 2 | 3 | export { createStub, stubMethod }; 4 | -------------------------------------------------------------------------------- /packages/cf-test-www-api/src/index.js: -------------------------------------------------------------------------------- 1 | import createApiResponse from './createApiResponse'; 2 | 3 | export { createApiResponse }; 4 | -------------------------------------------------------------------------------- /docs/0899345ef86e0d3c7eea5d65979b478e.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/0899345ef86e0d3c7eea5d65979b478e.woff -------------------------------------------------------------------------------- /docs/0d2e75ce5a2b0f517663d19442835a6e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/0d2e75ce5a2b0f517663d19442835a6e.png -------------------------------------------------------------------------------- /docs/13174d6d2424fe9c949dd7d736a6ea70.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/13174d6d2424fe9c949dd7d736a6ea70.ttf -------------------------------------------------------------------------------- /docs/1e35a4df8c3a259f43b316f294b5a23a.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/1e35a4df8c3a259f43b316f294b5a23a.ttf -------------------------------------------------------------------------------- /docs/30db20e1d94e92f3fd23804f23a391e8.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/30db20e1d94e92f3fd23804f23a391e8.eot -------------------------------------------------------------------------------- /docs/33241e91179b6354c3967d524233fd61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/33241e91179b6354c3967d524233fd61.png -------------------------------------------------------------------------------- /docs/41c53e29d4913287ce927ca784730a82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/41c53e29d4913287ce927ca784730a82.png -------------------------------------------------------------------------------- /docs/495c8a0b139ad3df15ae263dc1a4b29c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/495c8a0b139ad3df15ae263dc1a4b29c.png -------------------------------------------------------------------------------- /docs/4dd10f5c895627e66e48aa7d9cdea302.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/4dd10f5c895627e66e48aa7d9cdea302.ttf -------------------------------------------------------------------------------- /docs/609106f9b9266299e1f7b2babc795051.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/609106f9b9266299e1f7b2babc795051.woff -------------------------------------------------------------------------------- /docs/761de25eeb76317ef3cd48523c4f9a73.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/761de25eeb76317ef3cd48523c4f9a73.woff -------------------------------------------------------------------------------- /docs/79c228db32beb361a052be2aa9d228cc.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/79c228db32beb361a052be2aa9d228cc.eot -------------------------------------------------------------------------------- /docs/7a8802a850b1ca52cf3a28bff2395d7b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/7a8802a850b1ca52cf3a28bff2395d7b.png -------------------------------------------------------------------------------- /docs/91b041a4c5a224f5fb47efc63c7c50fc.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/91b041a4c5a224f5fb47efc63c7c50fc.eot -------------------------------------------------------------------------------- /docs/9b5e575d6b9ba775e8690da387b5ce16.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/9b5e575d6b9ba775e8690da387b5ce16.eot -------------------------------------------------------------------------------- /docs/c0a3c8a65b929eaaaaf4baaa34f3e08c.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/c0a3c8a65b929eaaaaf4baaa34f3e08c.woff -------------------------------------------------------------------------------- /docs/c46961532c69f055ee89467b0e879d82.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/c46961532c69f055ee89467b0e879d82.ttf -------------------------------------------------------------------------------- /docs/cfa0fd1e616a0e029da0048ba2845ecd.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/cfa0fd1e616a0e029da0048ba2845ecd.woff -------------------------------------------------------------------------------- /docs/d1eb144b85e1ccf3c660398d393b9a70.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/d1eb144b85e1ccf3c660398d393b9a70.woff -------------------------------------------------------------------------------- /docs/d512c6abf3c97617fb2a32f8e4edc68c.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/d512c6abf3c97617fb2a32f8e4edc68c.eot -------------------------------------------------------------------------------- /docs/e09d418ad96e2ded28c7d4a8064456f2.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/e09d418ad96e2ded28c7d4a8064456f2.ttf -------------------------------------------------------------------------------- /docs/e1aa8d1603b7cf277f3f303a07ee2bf6.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/e1aa8d1603b7cf277f3f303a07ee2bf6.eot -------------------------------------------------------------------------------- /docs/e1acd09124e1720530a858614f584041.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/e1acd09124e1720530a858614f584041.ttf -------------------------------------------------------------------------------- /docs/f03c8392e40eaa98a512c5854f1bdea8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/f03c8392e40eaa98a512c5854f1bdea8.png -------------------------------------------------------------------------------- /docs/fef6ff798b2121e53c12fd504aa672ab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/fef6ff798b2121e53c12fd504aa672ab.png -------------------------------------------------------------------------------- /packages/cf-component-dynamic-content/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | -------------------------------------------------------------------------------- /packages/cf-component-icon/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | src 4 | coverage 5 | test 6 | example 7 | karma.conf.js 8 | svgtoreact.sh -------------------------------------------------------------------------------- /packages/cf-component-tabs/src/TabsPanelTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | backgroundColor: baseTheme.colorWhite 3 | }); 4 | -------------------------------------------------------------------------------- /packages/cf-util-http/src/polyfillFetchInEdge.js: -------------------------------------------------------------------------------- 1 | if (navigator && /Edge/.test(navigator.userAgent)) { 2 | delete window.fetch; 3 | } 4 | -------------------------------------------------------------------------------- /docs/042da92f7b95a0474acdf22f3bc0fdf0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/042da92f7b95a0474acdf22f3bc0fdf0.woff2 -------------------------------------------------------------------------------- /docs/1a2908802bd075c63e618c0adb3e80e1.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/1a2908802bd075c63e618c0adb3e80e1.woff2 -------------------------------------------------------------------------------- /docs/a98432f2d7466790c46b5713912be2b6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/a98432f2d7466790c46b5713912be2b6.woff2 -------------------------------------------------------------------------------- /docs/cadbf3f828eceacef0cc55d5d0bbc1ba.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/cadbf3f828eceacef0cc55d5d0bbc1ba.woff2 -------------------------------------------------------------------------------- /docs/e07569da810b1fb2fe9cc8062f10cef8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/e07569da810b1fb2fe9cc8062f10cef8.woff2 -------------------------------------------------------------------------------- /docs/ed45204865ffe7e8c4698fab4860f896.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudflare/cf-ui/master/docs/ed45204865ffe7e8c4698fab4860f896.woff2 -------------------------------------------------------------------------------- /packages/cf-builder-pagination/src/index.js: -------------------------------------------------------------------------------- 1 | import PaginationBuilder from './PaginationBuilder'; 2 | 3 | export { PaginationBuilder }; 4 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardTitleTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | fontWeight: 400, 3 | marginBottom: '1rem' 4 | }); 5 | -------------------------------------------------------------------------------- /packages/cf-test-focus/src/index.js: -------------------------------------------------------------------------------- 1 | import { trackFocus, getCurrentFocus } from './focus'; 2 | 3 | export { trackFocus, getCurrentFocus }; 4 | -------------------------------------------------------------------------------- /packages/cf-builder-card/src/CardActionTypes.js: -------------------------------------------------------------------------------- 1 | export default { 2 | CF_BUILDER_CARD_DRAWER_TOGGLE: 'CF_BUILDER_CARD_DRAWER_TOGGLE' 3 | }; 4 | -------------------------------------------------------------------------------- /packages/cf-component-box/src/BoxTheme.js: -------------------------------------------------------------------------------- 1 | import propertiesSpec from './propertiesSpec'; 2 | 3 | export default () => { 4 | return {}; 5 | }; 6 | -------------------------------------------------------------------------------- /packages/cf-util-async/src/index.js: -------------------------------------------------------------------------------- 1 | import parallel from './parallel'; 2 | import series from './series'; 3 | 4 | export { parallel, series }; 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | lib 4 | coverage 5 | build 6 | packages/*/npm-debug.log.* 7 | es 8 | dist 9 | \.jest 10 | package-lock.json 11 | -------------------------------------------------------------------------------- /packages/cf-component-pagination/src/PaginationRootTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | content: '""', 3 | display: 'table', 4 | clear: 'both' 5 | }); 6 | -------------------------------------------------------------------------------- /packages/cf-component-tooltip/src/index.js: -------------------------------------------------------------------------------- 1 | import Tooltip from './Tooltip'; 2 | import TooltipRegion from './TooltipRegion'; 3 | 4 | export { Tooltip, TooltipRegion }; 5 | -------------------------------------------------------------------------------- /packages/cf-component-checkbox/src/index.js: -------------------------------------------------------------------------------- 1 | import Checkbox from './Checkbox'; 2 | import CheckboxGroup from './CheckboxGroup'; 3 | 4 | export { Checkbox, CheckboxGroup }; 5 | -------------------------------------------------------------------------------- /packages/cf-component-form/src/FormHeaderTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | padding: '1em', 3 | borderBottom: `1px solid ${baseTheme.colorGrayLight}` 4 | }); 5 | -------------------------------------------------------------------------------- /packages/cf-component-radio/src/RadioGroupTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | textAlign: 'left', 3 | display: 'inline-block', 4 | verticalAlign: 'middle' 5 | }); 6 | -------------------------------------------------------------------------------- /packages/cf-component-list/src/OrderedListTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | listStyleType: 'decimal', 3 | listStylePosition: 'outside', 4 | marginLeft: '3em' 5 | }); 6 | -------------------------------------------------------------------------------- /packages/cf-component-list/src/UnorderedListTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | listStyleType: 'disc', 3 | listStylePosition: 'outside', 4 | marginLeft: '3em' 5 | }); 6 | -------------------------------------------------------------------------------- /packages/cf-util-route-handler/src/index.js: -------------------------------------------------------------------------------- 1 | import { handleRoutes, routeTo, __resetRouteHandler } from './routeHandler'; 2 | 3 | export { handleRoutes, routeTo, __resetRouteHandler }; 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "6" 4 | before_script: 5 | - yarn run bootstrap 6 | script: 7 | - yarn run build 8 | - yarn run lint 9 | - yarn test -- --runInBand -------------------------------------------------------------------------------- /packages/cf-component-form/src/FormTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | border: `1px solid ${baseTheme.colorGrayLight}`, 3 | boxShadow: '0 1px 1px rgba(0, 0, 0, 0.05)' 4 | }); 5 | -------------------------------------------------------------------------------- /packages/cf-component-logo/README.md: -------------------------------------------------------------------------------- 1 | # cf-component-logo 2 | 3 | > Cloudflare Logo Component 4 | 5 | ## Installation 6 | 7 | ```sh 8 | $ npm install cf-component-logo 9 | ``` 10 | -------------------------------------------------------------------------------- /packages/cf-component-form/src/FormFooterTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | padding: '1em', 3 | borderTop: `1px solid ${baseTheme.colorGrayLight}`, 4 | textAlign: 'right' 5 | }); 6 | -------------------------------------------------------------------------------- /packages/cf-component-toast/src/ToastTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | padding: '0.5rem 0.8rem', 3 | marginBottom: '1rem', 4 | borderWidth: 1, 5 | borderStyle: 'solid' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cf-test-store/src/createMockStore.js: -------------------------------------------------------------------------------- 1 | import configureStore from 'redux-mock-store'; 2 | import thunk from 'redux-thunk'; 3 | 4 | export default state => configureStore([thunk])(state); 5 | -------------------------------------------------------------------------------- /packages/cf-component-card/src/CardFooterTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | fontSize: '0.8rem', 3 | color: baseTheme.colorGray, 4 | lineHeight: '1.3', 5 | marginTop: '1.5em' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cf-component-header/README.md: -------------------------------------------------------------------------------- 1 | # cf-component-header 2 | 3 | > Cloudflare Header Component 4 | 5 | ## Installation 6 | 7 | ```sh 8 | $ npm install cf-component-header 9 | ``` 10 | -------------------------------------------------------------------------------- /packages/cf-component-button/src/ButtonGroupTheme.js: -------------------------------------------------------------------------------- 1 | export default () => ({ 2 | position: 'relative', 3 | display: 'inline-block', 4 | verticalAlign: 'middle', 5 | whiteSpace: 'nowrap' 6 | }); 7 | -------------------------------------------------------------------------------- /packages/cf-builder-table/src/TableActionTypes.js: -------------------------------------------------------------------------------- 1 | export default { 2 | CF_BUILDER_TABLE_FLASH_ROW_ON: 'CF_BUILDER_TABLE_FLASH_ROW_ON', 3 | CF_BUILDER_TABLE_FLASH_ROW_OFF: 'CF_BUILDER_TABLE_FLASH_ROW_OFF' 4 | }; 5 | -------------------------------------------------------------------------------- /packages/cf-component-logo/example/basic/component.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Logo } from 'cf-component-logo'; 3 | 4 | const ViewComponent = () => ; 5 | 6 | export default ViewComponent; 7 | -------------------------------------------------------------------------------- /packages/cf-component-select/src/SelectTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | flex: 'initial', 3 | margin: 'initial', 4 | width: 'initial', 5 | display: 'initial', 6 | verticalAlign: 'initial' 7 | }); 8 | -------------------------------------------------------------------------------- /packages/cf-component-logo/src/index.js: -------------------------------------------------------------------------------- 1 | import Logo from './Logo'; 2 | import logoSvg from '../assets/logo.svg'; 3 | import logoSvgMobile from '../assets/logo_mobile.svg'; 4 | 5 | export { Logo, logoSvg, logoSvgMobile }; 6 | -------------------------------------------------------------------------------- /packages/cf-util-http-file/src/index.js: -------------------------------------------------------------------------------- 1 | import uploadFile from './uploadFile'; 2 | import saveFile from './saveFile'; 3 | import downloadFile from './downloadFile'; 4 | 5 | export { uploadFile, saveFile, downloadFile }; 6 | -------------------------------------------------------------------------------- /packages/cf-component-tabs/src/TabsTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | marginTop: '1.5rem', 3 | marginBottom: '1.5rem', 4 | borderStyle: 'solid', 5 | borderColor: baseTheme.color.smoke, 6 | borderWidth: 1 7 | }); 8 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/__snapshots__/ModalBody.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |
7 | ModalBody 8 |
9 | `; 10 | -------------------------------------------------------------------------------- /packages/cf-component-header/src/index.js: -------------------------------------------------------------------------------- 1 | import Header from './Header'; 2 | import Hamburger from './Hamburger'; 3 | import NavList from './NavList'; 4 | import NavItem from './NavItem'; 5 | 6 | export { Header, Hamburger, NavItem, NavList }; 7 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parser" : "babel-eslint", 3 | "plugins": [ 4 | "prettier", 5 | "react" 6 | ], 7 | "rules": { 8 | "prettier/prettier": ["error", {"singleQuote": true}], 9 | "react/prop-types": 2 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/__snapshots__/ModalActions.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |
7 | ModalActions 8 |
9 | `; 10 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/__snapshots__/ModalFooter.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |
7 | ModalFooter 8 |
9 | `; 10 | -------------------------------------------------------------------------------- /packages/cf-util-logger/src/createLogger.js: -------------------------------------------------------------------------------- 1 | import debug from 'debug'; 2 | 3 | export default function createLogger(name) { 4 | const logger = debug(name); 5 | 6 | return function(message) { 7 | logger(message); 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/__snapshots__/ModalHeader.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |
7 | ModalHeader 8 |
9 | `; 10 | -------------------------------------------------------------------------------- /packages/cf-component-heading/src/HeadingCaptionTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | marginLeft: '.5em', 3 | color: baseTheme.colorGray, 4 | fontSize: '80%', 5 | fontColor: baseTheme.fontColor, 6 | fontWeight: baseTheme.fontWeight 7 | }); 8 | -------------------------------------------------------------------------------- /packages/cf-component-notifications/test/__snapshots__/NotificationList.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |
7 | NotificationList 8 |
9 | `; 10 | -------------------------------------------------------------------------------- /packages/cf-util-cache/README.md: -------------------------------------------------------------------------------- 1 | # cf-util-cache 2 | 3 | > Cloudflare Cache Util 4 | 5 | ## Installation 6 | 7 | ```sh 8 | $ npm install cf-util-cache 9 | ``` 10 | 11 | ## Usage 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/cf-component-box/src/index.js: -------------------------------------------------------------------------------- 1 | import { applyTheme } from 'cf-style-container'; 2 | import BoxUnstyled from './Box'; 3 | import BoxTheme from './BoxTheme'; 4 | 5 | const Box = applyTheme(BoxUnstyled, BoxTheme); 6 | 7 | export { BoxUnstyled, Box, BoxTheme }; 8 | -------------------------------------------------------------------------------- /packages/cf-component-form/src/FormLabelTheme.js: -------------------------------------------------------------------------------- 1 | import { em } from 'polished'; 2 | 3 | export default baseTheme => ({ 4 | fontSize: em('13px', baseTheme.fontSize), 5 | display: 'block', 6 | marginBottom: '0.2em', 7 | color: baseTheme.colorGrayDark 8 | }); 9 | -------------------------------------------------------------------------------- /packages/cf-component-icon/src/index.js: -------------------------------------------------------------------------------- 1 | import IconUnstyled from './Icon'; 2 | import IconTheme from './IconTheme'; 3 | 4 | import { applyTheme } from 'cf-style-container'; 5 | 6 | const Icon = applyTheme(IconUnstyled, IconTheme); 7 | 8 | export { Icon, IconUnstyled, IconTheme }; 9 | -------------------------------------------------------------------------------- /packages/cf-component-loading/example/basic/component.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Loading } from 'cf-component-loading'; 3 | 4 | const LoadingComponent = () => ( 5 |
6 | 7 |
8 | ); 9 | 10 | export default LoadingComponent; 11 | -------------------------------------------------------------------------------- /packages/cf-component-text/src/index.js: -------------------------------------------------------------------------------- 1 | import TextUnstyled from './Text'; 2 | import TextTheme from './TextTheme'; 3 | 4 | import { applyTheme } from 'cf-style-container'; 5 | 6 | const Text = applyTheme(TextUnstyled, TextTheme); 7 | 8 | export { Text, TextUnstyled, TextTheme }; 9 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "lerna": "2.0.0-beta.38", 3 | "version": "independent", 4 | "commands": { 5 | "publish": { 6 | "ignore": [ 7 | "example/**", 8 | "test/**" 9 | ] 10 | } 11 | }, 12 | "packages": [ 13 | "packages/*" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/cf-component-input/src/index.js: -------------------------------------------------------------------------------- 1 | import InputUnstyled from './Input'; 2 | import InputTheme from './InputTheme'; 3 | import { applyTheme } from 'cf-style-container'; 4 | 5 | const Input = applyTheme(InputUnstyled, InputTheme); 6 | 7 | export { Input, InputUnstyled, InputTheme }; 8 | -------------------------------------------------------------------------------- /packages/cf-component-callout/example/basic/component.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Callout } from 'cf-component-callout'; 3 | 4 | const CalloutComponent = () => ( 5 | 6 | ); 7 | 8 | export default CalloutComponent; 9 | -------------------------------------------------------------------------------- /packages/cf-component-label/src/index.js: -------------------------------------------------------------------------------- 1 | import LabelUnstyled from './Label'; 2 | import LabelTheme from './LabelTheme'; 3 | 4 | import { applyTheme } from 'cf-style-container'; 5 | 6 | const Label = applyTheme(LabelUnstyled, LabelTheme); 7 | 8 | export { Label, LabelTheme, LabelUnstyled }; 9 | -------------------------------------------------------------------------------- /packages/cf-component-list/test/__snapshots__/ListItem.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |
  • 7 | ListItem 8 |
  • 9 | `; 10 | 11 | exports[`should render 2`] = ` 12 | " 13 | 14 | " 15 | `; 16 | -------------------------------------------------------------------------------- /packages/cf-component-toast/src/index.js: -------------------------------------------------------------------------------- 1 | import { applyTheme } from 'cf-style-container'; 2 | 3 | import ToastUnstyled from './Toast'; 4 | import ToastTheme from './ToastTheme'; 5 | 6 | const Toast = applyTheme(ToastUnstyled, ToastTheme); 7 | 8 | export { Toast, ToastUnstyled, ToastTheme }; 9 | -------------------------------------------------------------------------------- /packages/cf-builder-card/src/index.js: -------------------------------------------------------------------------------- 1 | import cardActions from './cardActions'; 2 | import CardActionTypes from './CardActionTypes'; 3 | import CardBuilder from './CardBuilder'; 4 | import cardReducer from './cardReducer'; 5 | 6 | export { cardActions, CardActionTypes, CardBuilder, cardReducer }; 7 | -------------------------------------------------------------------------------- /packages/cf-component-notifications/src/index.js: -------------------------------------------------------------------------------- 1 | import NotificationList from './NotificationList'; 2 | import Notification from './Notification'; 3 | import NotificationGlobalContainer from './NotificationGlobalContainer'; 4 | 5 | export { NotificationList, Notification, NotificationGlobalContainer }; 6 | -------------------------------------------------------------------------------- /packages/cf-component-notifications/test/__snapshots__/NotificationGlobalContainer.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |
    7 | NotificationGlobalContainer 8 |
    9 | `; 10 | -------------------------------------------------------------------------------- /packages/cf-util-http-file/src/uploadFile.js: -------------------------------------------------------------------------------- 1 | import { post as httpPost } from 'cf-util-http'; 2 | 3 | export default function uploadFile(url, file, callback) { 4 | const formData = new FormData(); 5 | formData.append('file', file); 6 | return httpPost(url, { body: formData }, callback); 7 | } 8 | -------------------------------------------------------------------------------- /packages/cf-component-select/src/index.js: -------------------------------------------------------------------------------- 1 | import { applyTheme } from 'cf-style-container'; 2 | 3 | import SelectUnstyled from './Select'; 4 | import SelectTheme from './SelectTheme'; 5 | 6 | const Select = applyTheme(SelectUnstyled, SelectTheme); 7 | 8 | export { Select, SelectUnstyled, SelectTheme }; 9 | -------------------------------------------------------------------------------- /packages/cf-component-callout/src/index.js: -------------------------------------------------------------------------------- 1 | import { applyTheme } from 'cf-style-container'; 2 | 3 | import CalloutUnstyled from './Callout'; 4 | import CalloutTheme from './CalloutTheme'; 5 | 6 | const Callout = applyTheme(CalloutUnstyled, CalloutTheme); 7 | 8 | export { Callout, CalloutUnstyled, CalloutTheme }; 9 | -------------------------------------------------------------------------------- /packages/cf-component-loading/src/index.js: -------------------------------------------------------------------------------- 1 | import LoadingUnstyled from './Loading'; 2 | import LoadingTheme from './LoadingTheme'; 3 | 4 | import { applyTheme } from 'cf-style-container'; 5 | 6 | const Loading = applyTheme(LoadingUnstyled, LoadingTheme); 7 | 8 | export { Loading, LoadingUnstyled, LoadingTheme }; 9 | -------------------------------------------------------------------------------- /packages/cf-component-toggle/src/index.js: -------------------------------------------------------------------------------- 1 | import { applyTheme } from 'cf-style-container'; 2 | 3 | import ToggleUnstyled from './Toggle'; 4 | import ToggleTheme from './ToggleTheme'; 5 | 6 | const Toggle = applyTheme(ToggleUnstyled, ToggleTheme); 7 | 8 | export { Toggle as default, ToggleUnstyled, ToggleTheme }; 9 | -------------------------------------------------------------------------------- /packages/cf-style-provider/src/index.js: -------------------------------------------------------------------------------- 1 | import createRenderer from './createRenderer'; 2 | import StyleProvider from './StyleProvider'; 3 | import felaTestContext from './felaTestContext'; 4 | import felaSnapshot from './felaSnapshot'; 5 | 6 | export { createRenderer, StyleProvider, felaTestContext, felaSnapshot }; 7 | -------------------------------------------------------------------------------- /packages/cf-component-progress/src/index.js: -------------------------------------------------------------------------------- 1 | import ProgressUnstyled from './Progress'; 2 | import ProgressTheme from './ProgressTheme'; 3 | 4 | import { applyTheme } from 'cf-style-container'; 5 | 6 | const Progress = applyTheme(ProgressUnstyled, ProgressTheme); 7 | 8 | export { Progress, ProgressUnstyled, ProgressTheme }; 9 | -------------------------------------------------------------------------------- /packages/cf-component-textarea/src/index.js: -------------------------------------------------------------------------------- 1 | import { applyTheme } from 'cf-style-container'; 2 | 3 | import TextareaUnstyled from './Textarea'; 4 | import TextareaTheme from './TextareaTheme'; 5 | 6 | const Textarea = applyTheme(TextareaUnstyled, TextareaTheme); 7 | 8 | export { Textarea, TextareaUnstyled, TextareaTheme }; 9 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Lines starting with '#' are comments. 2 | # Each line is a file pattern followed by one or more owners. 3 | # See https://github.com/blog/2392-introducing-code-owners for more info 4 | 5 | # These owners will be the default owners for everything in the repo. 6 | * @tajo @sejoker @hturan @jculvey @marksteyn @manatarms 7 | -------------------------------------------------------------------------------- /packages/example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Basic example of cf-ui usage including Fela 6 | 7 | 8 |

    cf-component-button

    9 |
    10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["es2015", { "modules": false }], 4 | "react" 5 | ], 6 | "plugins": [ 7 | "transform-object-rest-spread", 8 | "polished" 9 | ], 10 | "env": { 11 | "commonjs": { 12 | "plugins": [ 13 | "transform-es2015-modules-commonjs" 14 | ] 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/cf-builder-card/src/cardActions.js: -------------------------------------------------------------------------------- 1 | import ActionTypes from './CardActionTypes'; 2 | 3 | const toggleDrawer = function(cardName, drawerId) { 4 | return { 5 | type: ActionTypes.CF_BUILDER_CARD_DRAWER_TOGGLE, 6 | cardName: cardName, 7 | drawerId: drawerId 8 | }; 9 | }; 10 | 11 | export default { toggleDrawer }; 12 | -------------------------------------------------------------------------------- /packages/cf-component-header/src/NavItem.js: -------------------------------------------------------------------------------- 1 | import { createComponent } from 'cf-style-container'; 2 | 3 | const NavItem = createComponent( 4 | () => ({ 5 | display: 'inline-block', 6 | verticalAlign: 'middle', 7 | padding: '0.5rem', 8 | fontSize: '0.933rem' 9 | }), 10 | 'li' 11 | ); 12 | 13 | export default NavItem; 14 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/ModalBody.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import { ModalBody } from '../../cf-component-modal/src/index'; 4 | 5 | test('should render', function() { 6 | const component = renderer.create(ModalBody); 7 | expect(component.toJSON()).toMatchSnapshot(); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/ModalFooter.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import { ModalFooter } from '../../cf-component-modal/src/index'; 4 | 5 | test('should render', () => { 6 | const component = renderer.create(ModalFooter); 7 | expect(component.toJSON()).toMatchSnapshot(); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/ModalHeader.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import { ModalHeader } from '../../cf-component-modal/src/index'; 4 | 5 | test('should render', () => { 6 | const component = renderer.create(ModalHeader); 7 | expect(component.toJSON()).toMatchSnapshot(); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/ModalActions.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | import { ModalActions } from '../../cf-component-modal/src/index'; 4 | 5 | test('should render', () => { 6 | const component = renderer.create(ModalActions); 7 | expect(component.toJSON()).toMatchSnapshot(); 8 | }); 9 | -------------------------------------------------------------------------------- /packages/cf-component-radio/src/RadioTheme.js: -------------------------------------------------------------------------------- 1 | export default baseTheme => ({ 2 | cursor: 'pointer', 3 | display: 'block', 4 | minHeight: '1em', 5 | padding: '0 0 0 2em', 6 | margin: 'initial', 7 | 8 | '&:first-child': { 9 | marginTop: 'initial' 10 | }, 11 | 12 | '&:hover input': { 13 | borderColor: baseTheme.color.deepsea 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /packages/cf-component-card/test/__snapshots__/CardTitle.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |

    7 | CardTitle 8 |

    9 | `; 10 | 11 | exports[`should render 2`] = ` 12 | " 13 | .a { 14 | font-weight: 400 15 | } 16 | 17 | .b { 18 | margin-bottom: 1rem 19 | } 20 | " 21 | `; 22 | -------------------------------------------------------------------------------- /packages/cf-component-modal/test/__snapshots__/ModalTitle.js.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`should render 1`] = ` 4 |
    7 |

    10 | ModalTitle 11 |

    12 |
    13 | `; 14 | 15 | exports[`should render 2`] = ` 16 | " 17 | 18 | " 19 | `; 20 | -------------------------------------------------------------------------------- /packages/cf-component-tooltip/src/createTooltip.js: -------------------------------------------------------------------------------- 1 | import Tooltip from 'tether-tooltip'; 2 | 3 | export default function createTooltip(el, content, position) { 4 | const instance = new Tooltip({ 5 | target: el, 6 | classes: '', 7 | content, 8 | position 9 | }); 10 | 11 | return function destroyTooltip() { 12 | instance.destroy(); 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /packages/cf-component-dynamic-content/src/index.js: -------------------------------------------------------------------------------- 1 | import { applyTheme } from 'cf-style-container'; 2 | 3 | import DynamicContentUnstyled from './DynamicContent'; 4 | import DynamicContentTheme from './DynamicContentTheme'; 5 | 6 | const DynamicContent = applyTheme(DynamicContentUnstyled, DynamicContentTheme); 7 | 8 | export { DynamicContent, DynamicContentUnstyled, DynamicContentTheme }; 9 | -------------------------------------------------------------------------------- /packages/cf-component-card/test/Card.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { felaSnapshot } from 'cf-style-provider'; 3 | import { Card } from '../../cf-component-card/src/index'; 4 | 5 | test('should render', () => { 6 | const snapshot = felaSnapshot(Card); 7 | expect(snapshot.component).toMatchSnapshot(); 8 | expect(snapshot.styles).toMatchSnapshot(); 9 | }); 10 | -------------------------------------------------------------------------------- /packages/cf-component-select/test/Select.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { felaSnapshot } from 'cf-style-provider'; 3 | import { Select } from '../../cf-component-select/src/index'; 4 | 5 | test('should render', () => { 6 | const snapshot = felaSnapshot(