From 466fe72459542acc54e6e6fcd777df24d73614c2 Mon Sep 17 00:00:00 2001 From: Alex Windett Date: Wed, 11 Jan 2017 14:08:47 +0000 Subject: [PATCH 1/9] sorting stories alphabetically --- ui/.storybook/config.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ui/.storybook/config.js b/ui/.storybook/config.js index 404a63a1..61c63a83 100644 --- a/ui/.storybook/config.js +++ b/ui/.storybook/config.js @@ -3,7 +3,13 @@ const { configure } = require('@kadira/storybook'); const req = require.context('../src/components', true, /story.js$/) function loadStories() { - req.keys().forEach((filename) => req(filename)); + let stories = req.keys(); + stories = stories.sort(); + + stories.forEach( story => req(story)); + + // Fallback to stories/index.js file for anything that + // hasn't been moved require('../stories'); } From 8f2e140cbe2674ad7d4fbc4441c8d4cd3294c49a Mon Sep 17 00:00:00 2001 From: Alex Windett Date: Wed, 11 Jan 2017 14:22:28 +0000 Subject: [PATCH 2/9] moving stories to directory folders --- ui/src/components/checkbox/story.js | 18 ++ ui/src/components/close/story.js | 20 ++ ui/src/components/input/story.js | 35 +++ ui/src/components/modal/story.js | 17 ++ ui/src/components/notification/story.js | 34 +++ ui/src/components/pagination/story.js | 20 ++ ui/src/components/radio-group/story.js | 27 +++ ui/src/components/radio/story.js | 20 ++ ui/src/components/range-slider/story.js | 12 ++ ui/src/components/select-custom/story.js | 28 +++ ui/src/components/select/story.js | 26 +++ ui/src/components/tabs/story.js | 20 ++ ui/src/components/toggle/story.js | 30 +++ ui/src/components/tooltip/story.js | 29 +++ ui/src/components/widget/story.js | 24 +++ ui/stories/index.js | 261 ----------------------- 16 files changed, 360 insertions(+), 261 deletions(-) create mode 100644 ui/src/components/checkbox/story.js create mode 100644 ui/src/components/close/story.js create mode 100644 ui/src/components/input/story.js create mode 100644 ui/src/components/modal/story.js create mode 100644 ui/src/components/notification/story.js create mode 100644 ui/src/components/pagination/story.js create mode 100644 ui/src/components/radio-group/story.js create mode 100644 ui/src/components/radio/story.js create mode 100644 ui/src/components/range-slider/story.js create mode 100644 ui/src/components/select-custom/story.js create mode 100644 ui/src/components/select/story.js create mode 100644 ui/src/components/tabs/story.js create mode 100644 ui/src/components/toggle/story.js create mode 100644 ui/src/components/tooltip/story.js create mode 100644 ui/src/components/widget/story.js diff --git a/ui/src/components/checkbox/story.js b/ui/src/components/checkbox/story.js new file mode 100644 index 00000000..bdbebdab --- /dev/null +++ b/ui/src/components/checkbox/story.js @@ -0,0 +1,18 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Checkbox = require('./'); + +storiesOf('Checkbox', module) + .add('Default', () => ( + + )) + .add('Checked', () => ( + + )) + .add('Disabled', () => ( + + )); \ No newline at end of file diff --git a/ui/src/components/close/story.js b/ui/src/components/close/story.js new file mode 100644 index 00000000..2776d6e2 --- /dev/null +++ b/ui/src/components/close/story.js @@ -0,0 +1,20 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base = require('../base'); +const Close = require('./'); + +storiesOf('Close', module) + .add('Default', () => ( + + + + )); \ No newline at end of file diff --git a/ui/src/components/input/story.js b/ui/src/components/input/story.js new file mode 100644 index 00000000..af8538db --- /dev/null +++ b/ui/src/components/input/story.js @@ -0,0 +1,35 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base= require('../base'); +const Input = require('./'); + +storiesOf('Input', module) + .add('Default', () => ( + + + + )) + .add('type=email', () => ( + + + We'll never share your email with anyone else. + + + )) + .add('Error', () => ( + + + + )); \ No newline at end of file diff --git a/ui/src/components/modal/story.js b/ui/src/components/modal/story.js new file mode 100644 index 00000000..74a142fc --- /dev/null +++ b/ui/src/components/modal/story.js @@ -0,0 +1,17 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base= require('../base'); +const Modal = require('./'); + +storiesOf('Modal', module) + .add('Default', () => ( + + +

This is the Modal

+
+ + )); \ No newline at end of file diff --git a/ui/src/components/notification/story.js b/ui/src/components/notification/story.js new file mode 100644 index 00000000..5c126b90 --- /dev/null +++ b/ui/src/components/notification/story.js @@ -0,0 +1,34 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base= require('../base'); +const Notificaton = require('./'); + +storiesOf('Notificaton', module) + .add('Default', () => ( + + + This is the default content + + + )) + .add('Success', () => ( + + + This is a success notification that is closable + + + )) + .add('Alert', () => ( + + + This is the alert content + + + )); \ No newline at end of file diff --git a/ui/src/components/pagination/story.js b/ui/src/components/pagination/story.js new file mode 100644 index 00000000..284fb49e --- /dev/null +++ b/ui/src/components/pagination/story.js @@ -0,0 +1,20 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Pagination = require('./'); + +storiesOf('Pagination', module) + .add('Default', () => ( + + + « + Previous + + 1 + 2 + 3 + + )); \ No newline at end of file diff --git a/ui/src/components/radio-group/story.js b/ui/src/components/radio-group/story.js new file mode 100644 index 00000000..09d7b34f --- /dev/null +++ b/ui/src/components/radio-group/story.js @@ -0,0 +1,27 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base= require('../base'); +const RadioGroup = require('./'); +const Radio = require('./item'); + + +storiesOf('Radio Group', module) + .add('Default', () => ( + + + + Video killed the radio star + + + Video killed the radio star + + + Video killed the radio star + + + + )); \ No newline at end of file diff --git a/ui/src/components/radio/story.js b/ui/src/components/radio/story.js new file mode 100644 index 00000000..ed9697ad --- /dev/null +++ b/ui/src/components/radio/story.js @@ -0,0 +1,20 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Radio = require('./'); + +storiesOf('Radio', module) + .add('Default', () => ( + + Video killed the radio star + + )) + .add('Checked', () => ( + + )) + .add('Disabled', () => ( + + )); \ No newline at end of file diff --git a/ui/src/components/range-slider/story.js b/ui/src/components/range-slider/story.js new file mode 100644 index 00000000..21e479f5 --- /dev/null +++ b/ui/src/components/range-slider/story.js @@ -0,0 +1,12 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const RangeSlider = require('./'); + +storiesOf('Range Slider', module) + .add('Default', () => ( + + )); \ No newline at end of file diff --git a/ui/src/components/select-custom/story.js b/ui/src/components/select-custom/story.js new file mode 100644 index 00000000..7763f7fa --- /dev/null +++ b/ui/src/components/select-custom/story.js @@ -0,0 +1,28 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const { + selectData +} = require('../../shared/fake-data'); + +const SelectCustom = require('./'); + +storiesOf('Select Custom', module) + .add('Default', () => ( + + )) + .add('Multiple', () => ( + + )); \ No newline at end of file diff --git a/ui/src/components/select/story.js b/ui/src/components/select/story.js new file mode 100644 index 00000000..871941c3 --- /dev/null +++ b/ui/src/components/select/story.js @@ -0,0 +1,26 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Select = require('./'); + +storiesOf('Select', module) + .add('Default', () => ( + + )) + .add('multiple', () => ( + + )); \ No newline at end of file diff --git a/ui/src/components/tabs/story.js b/ui/src/components/tabs/story.js new file mode 100644 index 00000000..f23bb076 --- /dev/null +++ b/ui/src/components/tabs/story.js @@ -0,0 +1,20 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Tabs = require('./'); +const Tab = require('./tab'); + +storiesOf('Tabs', module) + .add('Default', () => ( + + +

Containers

+
+ +

User

+
+
+ )); \ No newline at end of file diff --git a/ui/src/components/toggle/story.js b/ui/src/components/toggle/story.js new file mode 100644 index 00000000..6af792bc --- /dev/null +++ b/ui/src/components/toggle/story.js @@ -0,0 +1,30 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Toggle = require('./'); + +storiesOf('Toggle', module) + .add('default', () => ( + + )) + .add('checked', () => ( + + )) + .add('no props', () => ( + + )); \ No newline at end of file diff --git a/ui/src/components/tooltip/story.js b/ui/src/components/tooltip/story.js new file mode 100644 index 00000000..260d6120 --- /dev/null +++ b/ui/src/components/tooltip/story.js @@ -0,0 +1,29 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Tooltip = require('./'); + +storiesOf('Tooltip', module) + .add('default', () => ( + +
  • One
  • +
  • Two
  • +
  • Three
  • +
    + )) + .add('custom position', () => { + const arrowPosition = { + left: '90%', + bottom: '100%' + }; + return ( + +
  • One
  • +
  • Two
  • +
  • Three
  • +
    + ); + }); \ No newline at end of file diff --git a/ui/src/components/widget/story.js b/ui/src/components/widget/story.js new file mode 100644 index 00000000..a2fbe982 --- /dev/null +++ b/ui/src/components/widget/story.js @@ -0,0 +1,24 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Widget = require('./'); + +storiesOf('Widget', module) + .add('single', () => ( + + england flag +

    Some text

    +
    + )); \ No newline at end of file diff --git a/ui/stories/index.js b/ui/stories/index.js index ed0100c8..f49080cb 100644 --- a/ui/stories/index.js +++ b/ui/stories/index.js @@ -8,10 +8,8 @@ const { const { Base, Container, - Checkbox, Row, Column, - Close, AddMetric: { AddMetricButton, AddMetricDescription, @@ -19,7 +17,6 @@ const { AddMetricTile, AddMetricTitle }, - Input, List: { ListItemDescription, ListItemHeader, @@ -39,27 +36,8 @@ const { MiniMetricSubtitle, MiniMetricView }, - Modal, - Notificaton, - Pagination, - RangeSlider, - Select, - SelectCustom, - Tabs, - Tab, - Toggle, - Tooltip, - Widget, - Radio, - RadioGroup } = require('../src/'); -const fakeData = require('../src/shared/fake-data'); - -const { - selectData -} = fakeData; - const styles = { base: { backgroundColor: '#FFEBEE' @@ -148,245 +126,6 @@ storiesOf('Add Metric', module) )); -storiesOf('Checkbox', module) - .add('Default', () => ( - - )) - .add('Checked', () => ( - - )) - .add('Disabled', () => ( - - )); - -storiesOf('Radio', module) - .add('Default', () => ( - - Video killed the radio star - - )) - .add('Checked', () => ( - - )) - .add('Disabled', () => ( - - )); - -storiesOf('Input', module) - .add('Default', () => ( - - - - )) - .add('type=email', () => ( - - - We'll never share your email with anyone else. - - - )) - .add('Error', () => ( - - - - )); - -storiesOf('Modal', module) - .add('Default', () => ( - -

    This is the Modal

    -
    - )); - -storiesOf('Notificaton', module) - .add('Default', () => ( - - - This is the default content - - - )) - .add('Success', () => ( - - - This is a success notification that is closable - - - )) - .add('Alert', () => ( - - - This is the alert content - - - )); - -storiesOf('Pagination', module) - .add('Default', () => ( - - - « - Previous - - 1 - 2 - 3 - - )); - -storiesOf('Radio Group', module) - .add('Default', () => ( - - - Video killed the radio star - - - Video killed the radio star - - - Video killed the radio star - - - )); - -storiesOf('RangeSlider', module) - .add('Default', () => ( - - )); - -storiesOf('Select', module) - .add('Default', () => ( - - )) - .add('multiple', () => ( - - )); - -storiesOf('Select Custom', module) - .add('Default', () => ( - - )) - .add('Multiple', () => ( - - )); - -storiesOf('Tabs', module) - .add('Default', () => ( - - -

    Containers

    -
    - -

    User

    -
    -
    - )); - -storiesOf('Close', module) - .add('Default', () => ( - - - - )); - -storiesOf('Toggle', module) - .add('default', () => ( - - )) - .add('checked', () => ( - - )) - .add('no props', () => ( - - )); - -storiesOf('Tooltip', module) - .add('default', () => ( - -
  • One
  • -
  • Two
  • -
  • Three
  • -
    - )) - .add('custom position', () => { - const arrowPosition = { - left: '90%', - bottom: '100%' - }; - return ( - -
  • One
  • -
  • Two
  • -
  • Three
  • -
    - ); - }); - -storiesOf('Widget', module) - .add('single', () => ( - - england flag -

    Some text

    -
    - )); - const minMetricData = [{ firstQuartile: 15, thirdQuartile: 15, From 68b418c7d2c3f6b10348f2e8287e40d43daefc77 Mon Sep 17 00:00:00 2001 From: Alex Windett Date: Wed, 11 Jan 2017 14:44:58 +0000 Subject: [PATCH 3/9] moving more components over to new storybook structure --- ui/src/components/add-metric/story.js | 52 +++ ui/src/components/list/mini-metric-data.js | 103 +++++ ui/src/components/list/story.js | 320 +++++++++++++++ ui/stories/index.js | 454 +-------------------- 4 files changed, 481 insertions(+), 448 deletions(-) create mode 100644 ui/src/components/add-metric/story.js create mode 100644 ui/src/components/list/mini-metric-data.js create mode 100644 ui/src/components/list/story.js diff --git a/ui/src/components/add-metric/story.js b/ui/src/components/add-metric/story.js new file mode 100644 index 00000000..1ec8043d --- /dev/null +++ b/ui/src/components/add-metric/story.js @@ -0,0 +1,52 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base = require('../base'); +const Row = require('../row'); +const Column = require('../column'); +const AddMetric = require('./'); + +const { + AddMetricButton, + AddMetricDescription, + AddMetricLink, + AddMetricTile, + AddMetricTitle +} = AddMetric; + +storiesOf('Add Metric', module) + .add('Add Metric', () => ( + + + + + Aggregated CPU usage + + CPU usages accross all of the CPU cores. + + Learn more + Add + + + + + )) + .add('Added Metric', () => ( + + + + + Aggregated CPU usage + + CPU usages accross all of the CPU cores. + + Learn more + Added + + + + + )); diff --git a/ui/src/components/list/mini-metric-data.js b/ui/src/components/list/mini-metric-data.js new file mode 100644 index 00000000..c1cdb615 --- /dev/null +++ b/ui/src/components/list/mini-metric-data.js @@ -0,0 +1,103 @@ +module.exports = [{ + firstQuartile: 15, + thirdQuartile: 15, + median: 15, + max: 15, + min: 15, +}, { + firstQuartile: 26, + thirdQuartile: 26, + median: 26, + max: 26, + min: 26, +}, { + firstQuartile: 17, + thirdQuartile: 17, + median: 17, + max: 17, + min: 17, +}, { + firstQuartile: 15, + thirdQuartile: 25, + median: 19, + max: 19, + min: 20, +}, { + firstQuartile: 19, + thirdQuartile: 25, + median: 21, + max: 20, + min: 25, +}, { + firstQuartile: 24, + thirdQuartile: 30, + median: 25, + max: 26, + min: 27, +}, { + firstQuartile: 28, + thirdQuartile: 34, + median: 30, + max: 30, + min: 30, +}, { + firstQuartile: 30, + thirdQuartile: 45, + median: 35, + max: 40, + min: 40, +}, { + firstQuartile: 20, + thirdQuartile: 55, + median: 45, + max: 44, + min: 44, +}, { + firstQuartile: 55, + thirdQuartile: 55, + median: 55, + max: 55, + min: 55, +}, { + firstQuartile: 57, + thirdQuartile: 56, + median: 57, + max: 58, + min: 57, +}, { + firstQuartile: 57, + thirdQuartile: 56, + median: 56, + max: 56, + min: 56, +}, { + firstQuartile: 60, + thirdQuartile: 56, + median: 60, + max: 60, + min: 60, +}, { + firstQuartile: 57, + thirdQuartile: 57, + median: 57, + max: 57, + min: 57, +}, { + firstQuartile: 57, + thirdQuartile: 55, + median: 55, + max: 55, + min: 55, +}, { + firstQuartile: 20, + thirdQuartile: 45, + median: 45, + max: 45, + min: 45, +}, { + firstQuartile: 15, + thirdQuartile: 40, + median: 30, + max: 49, + min: 30, +}]; \ No newline at end of file diff --git a/ui/src/components/list/story.js b/ui/src/components/list/story.js new file mode 100644 index 00000000..49da758f --- /dev/null +++ b/ui/src/components/list/story.js @@ -0,0 +1,320 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base = require('../base'); +const Row = require('../row'); +const Column = require('../column'); +const MiniMetricData = require('./mini-metric-data'); + +const { + MiniMetricGraph, + MiniMetricMeta, + MiniMetricTitle, + MiniMetricSubtitle, + MiniMetricView +} = require('../mini-metric'); + +const { + ListItemDescription, + ListItemHeader, + ListItem, + ListItemMeta, + ListItemOptions, + ListItemOutlet, + ListItemSubTitle, + ListItemTitle, + ListItemView, + ListItemGroupView +} = require('./'); + +storiesOf('List Item', module) + .add('default', () => ( + + + + + Nginx 01 + 4 instances + Flags + + + Metrics + + + + … + + + + )) + .add('collapsed', () => ( + + + + + Nginx 01 + 4 instances + Flags + + + Metrics + + + + … + + + + )) + .add('headed', () => ( + + + + + Nginx 01 + 4 instances + Flags + + + … + + + + + Flags + + + Metrics + + + + + )) + .add('headed collapsed', () => ( + + + + + Nginx 01 + 4 instances + Flags + + + … + + + + + Flags + + + Metrics + + + + + )) + .add('stacked', () => ( + + + + + Nginx 01 + 4 instances + Flags + + + Metrics + + + + … + + + + )) + .add('view-group', () => ( + + + + + Percona + 5 instances + Flags + + + + + + + + percona_database + + + Metrics + + + + + + + percona_database + 5 instances + Flags + + + Metrics + + + + + + + percona_database + 5 instances + + + Metrics + + + + + + + )) + .add('view-group with metrics', () => ( + + + + + Percona + 5 instances + Flags + + + + + + + + percona_database + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + + + + + percona_database + 5 instances + Flags + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + + + + + percona_database + 5 instances + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + Memory: 54% + (1280/3000 MB) + + + + + + + + + + + + )); \ No newline at end of file diff --git a/ui/stories/index.js b/ui/stories/index.js index f49080cb..085d7bd4 100644 --- a/ui/stories/index.js +++ b/ui/stories/index.js @@ -10,25 +10,6 @@ const { Container, Row, Column, - AddMetric: { - AddMetricButton, - AddMetricDescription, - AddMetricLink, - AddMetricTile, - AddMetricTitle - }, - List: { - ListItemDescription, - ListItemHeader, - ListItem, - ListItemMeta, - ListItemOptions, - ListItemOutlet, - ListItemSubTitle, - ListItemTitle, - ListItemView, - ListItemGroupView - }, MiniMetric: { MiniMetricGraph, MiniMetricMeta, @@ -38,6 +19,8 @@ const { }, } = require('../src/'); +const MiniMetricData = require('../src/components/list/mini-metric-data'); + const styles = { base: { backgroundColor: '#FFEBEE' @@ -92,144 +75,6 @@ storiesOf('Grid', module) )); -storiesOf('Add Metric', module) - .add('Add Metric', () => ( - - - - - Aggregated CPU usage - - CPU usages accross all of the CPU cores. - - Learn more - Add - - - - - )) - .add('Added Metric', () => ( - - - - - Aggregated CPU usage - - CPU usages accross all of the CPU cores. - - Learn more - Added - - - - - )); - -const minMetricData = [{ - firstQuartile: 15, - thirdQuartile: 15, - median: 15, - max: 15, - min: 15, -}, { - firstQuartile: 26, - thirdQuartile: 26, - median: 26, - max: 26, - min: 26, -}, { - firstQuartile: 17, - thirdQuartile: 17, - median: 17, - max: 17, - min: 17, -}, { - firstQuartile: 15, - thirdQuartile: 25, - median: 19, - max: 19, - min: 20, -}, { - firstQuartile: 19, - thirdQuartile: 25, - median: 21, - max: 20, - min: 25, -}, { - firstQuartile: 24, - thirdQuartile: 30, - median: 25, - max: 26, - min: 27, -}, { - firstQuartile: 28, - thirdQuartile: 34, - median: 30, - max: 30, - min: 30, -}, { - firstQuartile: 30, - thirdQuartile: 45, - median: 35, - max: 40, - min: 40, -}, { - firstQuartile: 20, - thirdQuartile: 55, - median: 45, - max: 44, - min: 44, -}, { - firstQuartile: 55, - thirdQuartile: 55, - median: 55, - max: 55, - min: 55, -}, { - firstQuartile: 57, - thirdQuartile: 56, - median: 57, - max: 58, - min: 57, -}, { - firstQuartile: 57, - thirdQuartile: 56, - median: 56, - max: 56, - min: 56, -}, { - firstQuartile: 60, - thirdQuartile: 56, - median: 60, - max: 60, - min: 60, -}, { - firstQuartile: 57, - thirdQuartile: 57, - median: 57, - max: 57, - min: 57, -}, { - firstQuartile: 57, - thirdQuartile: 55, - median: 55, - max: 55, - min: 55, -}, { - firstQuartile: 20, - thirdQuartile: 45, - median: 45, - max: 45, - min: 45, -}, { - firstQuartile: 15, - thirdQuartile: 40, - median: 30, - max: 49, - min: 30, -}]; - storiesOf('Metrics', module) .add('Mini Metric', () => ( @@ -240,7 +85,7 @@ storiesOf('Metrics', module) Memory: 54% (1280/3000 MB) - + @@ -249,7 +94,7 @@ storiesOf('Metrics', module) Memory: 54% (1280/3000 MB) - + @@ -258,298 +103,11 @@ storiesOf('Metrics', module) Memory: 54% (1280/3000 MB) - + )); -storiesOf('ListItem', module) - .add('default', () => ( - - - - - Nginx 01 - 4 instances - Flags - - - Metrics - - - - … - - - - )) - .add('collapsed', () => ( - - - - - Nginx 01 - 4 instances - Flags - - - Metrics - - - - … - - - - )) - .add('headed', () => ( - - - - - Nginx 01 - 4 instances - Flags - - - … - - - - - Flags - - - Metrics - - - - - )) - .add('headed collapsed', () => ( - - - - - Nginx 01 - 4 instances - Flags - - - … - - - - - Flags - - - Metrics - - - - - )) - .add('stacked', () => ( - - - - - Nginx 01 - 4 instances - Flags - - - Metrics - - - - … - - - - )) - .add('view-group', () => ( - - - - - Percona - 5 instances - Flags - - - - - - - - percona_database - - - Metrics - - - - - - - percona_database - 5 instances - Flags - - - Metrics - - - - - - - percona_database - 5 instances - - - Metrics - - - - - - - )) - .add('view-group with metrics', () => ( - - - - - Percona - 5 instances - Flags - - - - - - - - percona_database - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - - - - - percona_database - 5 instances - Flags - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - - - - - percona_database - 5 instances - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - Memory: 54% - (1280/3000 MB) - - - - - - - - - - - - )); + From 56d9a5ba463d02960066464dfd2b14d42663a358 Mon Sep 17 00:00:00 2001 From: Alex Windett Date: Wed, 11 Jan 2017 17:04:07 +0000 Subject: [PATCH 4/9] creating textarea component --- ui/src/components/textarea/index.js | 146 +++++++++++++++++++++++++++ ui/src/components/textarea/readme.md | 60 +++++++++++ ui/src/components/textarea/story.js | 24 +++++ ui/src/index.js | 1 + 4 files changed, 231 insertions(+) create mode 100644 ui/src/components/textarea/index.js create mode 100644 ui/src/components/textarea/readme.md create mode 100644 ui/src/components/textarea/story.js diff --git a/ui/src/components/textarea/index.js b/ui/src/components/textarea/index.js new file mode 100644 index 00000000..b7b0f0ad --- /dev/null +++ b/ui/src/components/textarea/index.js @@ -0,0 +1,146 @@ +const React = require('react'); + +const composers = require('../../shared/composers'); +const constants = require('../../shared/constants'); +const fns = require('../../shared/functions'); +const Styled = require('styled-components'); + +const { + boxes, + colors +} = constants; + +const { + remcalc +} = fns; + +const { + baseBox +} = composers; + +const { + default: styled +} = Styled; + +const Label = styled.label` + color: ${props => props.error ? colors.alert : colors.fonts.regular} +`; + +const InputField = styled.textarea` + background: ${colors.brandSecondary}; + color: ${props => props.error ? colors.alert : colors.fonts.semibold} + display: block; + font-size: 16px; + padding: ${remcalc('15 18')}; + visibility: visible; + width: 100%; + min-height: ${remcalc(96)}; + ${baseBox()}; + border-color: ${props => props.error ? colors.alert : ''}; + + &:focus { + border-color: ${boxes.border.checked}; + outline: none; + } +`; + +const Error = styled.span` + float: right; + color: ${colors.alert}; + font-size: ${remcalc(14)}; +`; + +const Textarea = ({ + autoComplete, + autoFocus, + children, + className, + disabled = false, + error, + form, + id, + inputMode, + label, + labelledby, + list, + name, + onChange, + pattern, + placeholder, + readOnly, + required, + selectionDirection, + spellCheck, + style, + tabIndex, + type, + value +}) => { + const _label = label || children; + const _children = label && children ? children : null; + const _error = error ? ({error}) : null; + + return ( +
    + + {_error} + + {_children} +
    + ); +}; + +Textarea.propTypes = { + autoComplete: React.PropTypes.string, + autoFocus: React.PropTypes.bool, + children: React.PropTypes.node, + className: React.PropTypes.string, + disabled: React.PropTypes.bool, + error: React.PropTypes.string, + form: React.PropTypes.string, + id: React.PropTypes.string, + inputMode: React.PropTypes.string, + label: React.PropTypes.string, + labelledby: React.PropTypes.string, + list: React.PropTypes.string, + name: React.PropTypes.string, + onChange: React.PropTypes.func, + pattern: React.PropTypes.string, + placeholder: React.PropTypes.string, + readOnly: React.PropTypes.bool, + required: React.PropTypes.bool, + selectionDirection: React.PropTypes.string, + spellCheck: React.PropTypes.bool, + style: React.PropTypes.object, + tabIndex: React.PropTypes.string, + type: React.PropTypes.string, + value: React.PropTypes.string +}; + +module.exports = Textarea; diff --git a/ui/src/components/textarea/readme.md b/ui/src/components/textarea/readme.md new file mode 100644 index 00000000..e199c638 --- /dev/null +++ b/ui/src/components/textarea/readme.md @@ -0,0 +1,60 @@ +# Input + +## demo + +```embed +const React = require('react'); +const ReactDOM = require('react-dom/server'); +const Base = require('../base'); +const Container = require('../container'); +const Row = require('../row'); +const Column = require('../column'); +const Input = require('./index.js'); + +nmodule.exports = ReactDOM.renderToString( + + + + + We'll never share your email with anyone else. + + + + + + + Password + + + + +); +``` + +## usage + +```js +const React = require('react'); +const Input = require('ui/input'); + +module.exports = () => { + return ( +
    + + We'll never share your email with anyone else. + + + Password + +
    + ); +} +``` diff --git a/ui/src/components/textarea/story.js b/ui/src/components/textarea/story.js new file mode 100644 index 00000000..d74a5ee3 --- /dev/null +++ b/ui/src/components/textarea/story.js @@ -0,0 +1,24 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base= require('../base'); +const Textarea = require('./'); + +storiesOf('Textarea', module) + .add('Default', () => ( + +