From 2a802c15f58ed0596f10565806009bcde475a9f0 Mon Sep 17 00:00:00 2001 From: Logan McCaul Date: Tue, 3 Dec 2019 14:18:50 -0600 Subject: [PATCH] feat: add back nestedfilterablemultiselect --- package.json | 2 +- src/components/GroupLabel/GroupLabel-story.js | 29 + src/components/GroupLabel/GroupLabel.js | 44 + src/components/GroupLabel/index.js | 1 + src/components/ListBox/ListBox.js | 104 + src/components/ListBox/ListBoxField.js | 31 + src/components/ListBox/ListBoxMenu.js | 22 + src/components/ListBox/ListBoxMenuIcon.js | 58 + src/components/ListBox/ListBoxMenuItem.js | 46 + src/components/ListBox/ListBoxPropTypes.js | 3 + src/components/ListBox/ListBoxSelection.js | 91 + src/components/ListBox/README.md | 14 + src/components/ListBox/index.js | 15 + src/components/ListBox/test-helpers.js | 80 + .../MultiSelect/MultiSelect-story.js | 382 ++ .../MultiSelect/MultiSelectPropTypes.js | 32 + .../NestedFilterableMultiselect.js | 764 ++++ .../NestedFilterableMultiselect-test.js | 1673 ++++++++ .../NestedFilterableMultiselect-test.js.snap | 3478 +++++++++++++++++ src/components/MultiSelect/index.js | 1 + .../tools/__tests__/sorting-test.js | 230 ++ src/components/MultiSelect/tools/filter.js | 68 + .../MultiSelect/tools/groupedByCategory.js | 24 + .../MultiSelect/tools/itemToString.js | 18 + src/components/MultiSelect/tools/sorting.js | 100 + 25 files changed, 7309 insertions(+), 1 deletion(-) create mode 100755 src/components/GroupLabel/GroupLabel-story.js create mode 100755 src/components/GroupLabel/GroupLabel.js create mode 100755 src/components/GroupLabel/index.js create mode 100755 src/components/ListBox/ListBox.js create mode 100755 src/components/ListBox/ListBoxField.js create mode 100755 src/components/ListBox/ListBoxMenu.js create mode 100755 src/components/ListBox/ListBoxMenuIcon.js create mode 100755 src/components/ListBox/ListBoxMenuItem.js create mode 100755 src/components/ListBox/ListBoxPropTypes.js create mode 100755 src/components/ListBox/ListBoxSelection.js create mode 100755 src/components/ListBox/README.md create mode 100755 src/components/ListBox/index.js create mode 100755 src/components/ListBox/test-helpers.js create mode 100644 src/components/MultiSelect/MultiSelect-story.js create mode 100644 src/components/MultiSelect/MultiSelectPropTypes.js create mode 100644 src/components/MultiSelect/NestedFilterableMultiselect.js create mode 100644 src/components/MultiSelect/__tests__/NestedFilterableMultiselect-test.js create mode 100644 src/components/MultiSelect/__tests__/__snapshots__/NestedFilterableMultiselect-test.js.snap create mode 100644 src/components/MultiSelect/index.js create mode 100644 src/components/MultiSelect/tools/__tests__/sorting-test.js create mode 100644 src/components/MultiSelect/tools/filter.js create mode 100644 src/components/MultiSelect/tools/groupedByCategory.js create mode 100644 src/components/MultiSelect/tools/itemToString.js create mode 100644 src/components/MultiSelect/tools/sorting.js diff --git a/package.json b/package.json index 6886035..21885dd 100644 --- a/package.json +++ b/package.json @@ -163,5 +163,5 @@ "enzyme-to-json/serializer" ] }, - "version": "2.0.0" + "version": "2.0.1" } diff --git a/src/components/GroupLabel/GroupLabel-story.js b/src/components/GroupLabel/GroupLabel-story.js new file mode 100755 index 0000000..61057e6 --- /dev/null +++ b/src/components/GroupLabel/GroupLabel-story.js @@ -0,0 +1,29 @@ +import React from 'react'; +import { storiesOf } from '@storybook/react'; +import { withInfo } from '@storybook/addon-info'; +import GroupLabel from './GroupLabel'; +import { Tooltip } from 'carbon-components-react'; + +const additionalProps = { + className: 'some-class', +}; + +storiesOf('GroupLabel', module) + .add( + 'Default', + withInfo({ + text: 'Group label.', + })(() => Label) + ) + .add( + 'With tooltip', + withInfo({ + text: 'Form label with tooltip.', + })(() => ( + + + This is the content of the tooltip. + + + )) + ); diff --git a/src/components/GroupLabel/GroupLabel.js b/src/components/GroupLabel/GroupLabel.js new file mode 100755 index 0000000..6298e1c --- /dev/null +++ b/src/components/GroupLabel/GroupLabel.js @@ -0,0 +1,44 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import classnames from 'classnames'; + +const categoryLabel = { + color: '#5A6872', + fontSize: '12px', + fontWeight: '600', + letterSpacing: '0.2px', + margin: '8px 16px', +}; + +const GroupLabel = ({ className, children, id, ...other }) => { + const classNames = classnames('bx--group-label', className); + + return ( + + ); +}; + +GroupLabel.propTypes = { + /** + * Specify the content of the form label + */ + children: PropTypes.node, + + /** + * Provide a custom className to be applied to the containing