├── .babelrc
├── .bowerrc
├── .eslintrc.js
├── .gitignore
├── Dockerfile
├── Jenkinsfile
├── LICENSE
├── README.md
├── demo
    ├── .babelrc
    ├── CodeBlock.jsx
    ├── CodeExample.jsx
    ├── ComponentDoc.jsx
    ├── ComponentInfo.jsx
    ├── app
    │   ├── home.jsx
    │   ├── main.js
    │   └── test.scss
    ├── controls
    │   ├── AppBar
    │   │   └── AppBarFixedDemo.jsx
    │   ├── AppBarDemo.jsx
    │   ├── AutoCompleteDemo.jsx
    │   ├── ButtonDemo.Jsx
    │   ├── CheckboxDemo.jsx
    │   ├── DatePickerDemo.jsx
    │   ├── DialogDemo.jsx
    │   ├── DrawerDemo.jsx
    │   ├── EditorDemo.jsx
    │   ├── Grouping
    │   │   └── GroupingDemo.jsx
    │   ├── IconsDemo.jsx
    │   ├── InputDemo.jsx
    │   ├── List
    │   │   ├── ListDemo.jsx
    │   │   ├── ListItemCheckboxDemo.jsx
    │   │   └── ListItemSelectDemo.jsx
    │   ├── MenuDemo.jsx
    │   ├── Picker
    │   │   ├── RadioDemo.jsx
    │   │   └── SelectButtonDemo.jsx
    │   ├── PickerDemo.jsx
    │   ├── ProgressDemo.jsx
    │   ├── RadioDemo.jsx
    │   ├── SnackbarDemo.jsx
    │   ├── TabsDemo.jsx
    │   ├── Toggle
    │   │   ├── CheckboxDemo.jsx
    │   │   └── SwitchDemo.jsx
    │   ├── ToggleDemo.jsx
    │   ├── Toolbar
    │   │   ├── PrimaryToolBarDemo.jsx
    │   │   └── SecondaryToolbarDemo.jsx
    │   ├── ToolbarDemo.jsx
    │   ├── drawer
    │   │   └── DrawerLeftTemporary.jsx
    │   └── popover
    │   │   ├── ExampleSimple.jsx
    │   │   └── PopoverDemo.jsx
    ├── index.html
    └── webpack.config.js
├── dist
    ├── css
    │   ├── chamel-base.cmp.css
    │   ├── chamel-base.css
    │   ├── chamel-human.cmp.css
    │   ├── chamel-human.css
    │   ├── chamel-material.cmp.css
    │   ├── chamel-material.css
    │   ├── chamel-modern.cmp.css
    │   └── chamel-modern.css
    ├── fonts
    │   ├── FontAwesome.otf
    │   ├── Material-Design-Iconic-Font.eot
    │   ├── Material-Design-Iconic-Font.svg
    │   ├── Material-Design-Iconic-Font.ttf
    │   ├── Material-Design-Iconic-Font.woff
    │   ├── Material-Design-Iconic-Font.woff2
    │   ├── fontawesome-webfont.eot
    │   ├── fontawesome-webfont.svg
    │   ├── fontawesome-webfont.ttf
    │   ├── fontawesome-webfont.woff
    │   └── fontawesome-webfont.woff2
    └── js
    │   └── chamel.js
├── docker-compose.yml
├── fonts
    ├── FontAwesome.otf
    ├── MaterialIcons-Regular.eot
    ├── MaterialIcons-Regular.ttf
    ├── MaterialIcons-Regular.woff
    ├── MaterialIcons-Regular.woff2
    ├── fontawesome-webfont.eot
    ├── fontawesome-webfont.svg
    ├── fontawesome-webfont.ttf
    ├── fontawesome-webfont.woff
    └── fontawesome-webfont.woff2
├── index.html
├── package-lock.json
├── package.json
├── prettier.config.js
├── src
    ├── AppBar
    │   ├── AppBar.js
    │   ├── AppBarRightToolbar.js
    │   ├── IconButton.js
    │   ├── SelectButton.js
    │   ├── index.js
    │   ├── theme-human.scss
    │   ├── theme-material.scss
    │   └── theme.scss
    ├── AutoComplete
    │   ├── AutoComplete.js
    │   └── index.js
    ├── Button
    │   ├── Button.js
    │   ├── FlatButton.js
    │   ├── FloatingButton.js
    │   ├── IconButton.js
    │   ├── RaisedButton.js
    │   ├── index.js
    │   ├── theme-human.scss
    │   ├── theme-material.scss
    │   └── theme.scss
    ├── ColorPicker
    │   ├── ColorPicker.jsx
    │   └── index.js
    ├── DatePicker
    │   ├── Calendar.jsx
    │   ├── CalendarMonth.jsx
    │   ├── CalendarToolbar.jsx
    │   ├── DateDisplay.jsx
    │   ├── DatePicker.jsx
    │   ├── DatePickerDialog.jsx
    │   ├── DayButton.jsx
    │   └── index.js
    ├── Dialog
    │   ├── Dialog.js
    │   ├── Page.js
    │   ├── index.js
    │   └── theme.scss
    ├── Drawer
    │   ├── Drawer.js
    │   ├── index.js
    │   ├── theme-material.scss
    │   └── theme.scss
    ├── DropDownIcon.jsx
    ├── Editor
    │   ├── ContentHtml.js
    │   ├── ContentRte.jsx
    │   ├── ContentSource.js
    │   ├── ContentSrc.jsx
    │   ├── Editor.js
    │   ├── EditorToolbar.js
    │   ├── index.js
    │   ├── theme-material.scss
    │   └── theme.scss
    ├── EnhancedTextarea
    │   ├── EnhancedTextarea.jsx
    │   └── index.js
    ├── FontIcon
    │   ├── FontIcon.js
    │   └── index.js
    ├── Grid
    │   ├── Column.js
    │   ├── Container.js
    │   ├── Row.js
    │   ├── index.js
    │   └── theme.scss
    ├── Grouping
    │   ├── Chip.js
    │   └── theme-material.scss
    ├── Input
    │   ├── RichText.js
    │   ├── TextField.js
    │   ├── index.js
    │   └── theme.scss
    ├── List
    │   ├── List.js
    │   ├── ListDivider.js
    │   ├── ListItem.js
    │   ├── ListItemCheckbox.js
    │   ├── index.js
    │   └── theme.scss
    ├── Menu
    │   ├── LinkMenuItem.jsx
    │   ├── Menu.jsx
    │   ├── MenuItem.jsx
    │   ├── NestedMenuItem.jsx
    │   ├── SubheaderMenuItem.jsx
    │   ├── index.js
    │   ├── theme-material.scss
    │   └── theme.scss
    ├── Overlay
    │   ├── Overlay.js
    │   ├── index.js
    │   └── theme.scss
    ├── Paper
    │   ├── Paper.js
    │   ├── index.js
    │   └── theme.scss
    ├── Picker
    │   ├── ColorPicker.js
    │   ├── DatePicker.js
    │   ├── RadioButton.js
    │   ├── RadioPicker.js
    │   ├── SelectButton.js
    │   ├── SelectField.js
    │   ├── TimePicker.js
    │   ├── index.js
    │   └── theme.scss
    ├── Popover
    │   ├── Popover.jsx
    │   ├── index.js
    │   └── theme.scss
    ├── Progress
    │   ├── CircularProgress.jsx
    │   ├── LinearProgress.jsx
    │   ├── Progress.js
    │   ├── index.js
    │   └── theme.scss
    ├── RadioButton
    │   ├── RadioButton.jsx
    │   └── index.js
    ├── RadioButtonGroup
    │   ├── RadioButtonGroup.jsx
    │   └── index.js
    ├── Snackbar
    │   ├── Snackbar.jsx
    │   ├── index.js
    │   └── theme.scss
    ├── Table
    │   ├── TableHeader.jsx
    │   ├── TableRows.jsx
    │   └── TableRowsItem.jsx
    ├── Tabs
    │   ├── Tab.js
    │   ├── Tabs.js
    │   ├── index.js
    │   └── theme.scss
    ├── TextFieldRich
    │   ├── TextFieldRich.jsx
    │   └── index.js
    ├── Toggle
    │   ├── Checkbox.js
    │   ├── Switch.js
    │   └── theme.scss
    ├── Toolbar
    │   ├── Toolbar.jsx
    │   ├── ToolbarGroup.jsx
    │   ├── index.js
    │   └── theme.scss
    ├── Tooltip
    │   ├── Tooltip.jsx
    │   └── index.js
    ├── icons
    │   ├── font
    │   │   ├── AccessTimeIcon.js
    │   │   ├── AccessibilityIcon.js
    │   │   ├── AccountIcon.js
    │   │   ├── AddCircleIcon.js
    │   │   ├── AddIcon.js
    │   │   ├── AnnouncementIcon.js
    │   │   ├── AppsIcon.js
    │   │   ├── ArrowBackIcon.js
    │   │   ├── ArrowDownIcon.js
    │   │   ├── ArrowDropDownCircleIcon.js
    │   │   ├── ArrowDropDownIcon.js
    │   │   ├── ArrowDropUpIcon.js
    │   │   ├── ArrowForwardIcon.js
    │   │   ├── ArrowRightIcon.js
    │   │   ├── ArrowUpIcon.js
    │   │   ├── AttachFileIcon.js
    │   │   ├── AttachmentIcon.js
    │   │   ├── BoldIcon.js
    │   │   ├── BorderColorIcon.js
    │   │   ├── BuildIcon.js
    │   │   ├── CancelIcon.js
    │   │   ├── CheckCircleIcon.js
    │   │   ├── CheckIcon.js
    │   │   ├── ChevronLeftIcon.js
    │   │   ├── ChevronRightIcon.js
    │   │   ├── CloseIcon.js
    │   │   ├── CodeIcon.js
    │   │   ├── CommentIcon.js
    │   │   ├── ContactsIcon.js
    │   │   ├── ContentPaste.js
    │   │   ├── CreateIcon.js
    │   │   ├── DashboardIcon.js
    │   │   ├── DateRangeIcon.js
    │   │   ├── DeleteIcon.js
    │   │   ├── EditIcon.js
    │   │   ├── EmailIcon.js
    │   │   ├── ExpandLessIcon.js
    │   │   ├── ExpandMoreIcon.js
    │   │   ├── FilterListIcon.js
    │   │   ├── FindPageIcon.js
    │   │   ├── FirstPageIcon.js
    │   │   ├── FlagIcon.js
    │   │   ├── FullScreenExitIcon.js
    │   │   ├── FullScreenIcon.js
    │   │   ├── GroupIcon.js
    │   │   ├── InboxIcon.js
    │   │   ├── ItalicIcon.js
    │   │   ├── LabelIcon.js
    │   │   ├── LastPageIcon.js
    │   │   ├── LibraryBooksIcon.js
    │   │   ├── LinkIcon.js
    │   │   ├── ListBulletedIcon.js
    │   │   ├── ListNumberedIcon.js
    │   │   ├── LocalOfferIcon.js
    │   │   ├── MenuIcon.js
    │   │   ├── MergeIcon.js
    │   │   ├── MoreHorizIcon.js
    │   │   ├── MoreVertIcon.js
    │   │   ├── NoteIcon.js
    │   │   ├── PersonAddIcon.js
    │   │   ├── PhotoCameraIcon.js
    │   │   ├── PhotoIcon.js
    │   │   ├── PrintIcon.js
    │   │   ├── RefreshIcon.js
    │   │   ├── SaveIcon.js
    │   │   ├── SearchIcon.js
    │   │   ├── SendIcon.js
    │   │   ├── SettingsApplication.js
    │   │   ├── SettingsIcon.js
    │   │   ├── ShuffleIcon.js
    │   │   ├── StreetViewIcon.js
    │   │   ├── StyleIcon.js
    │   │   ├── SubArrowLeftIcon.js
    │   │   ├── SubArrowRightIcon.js
    │   │   ├── SwapHorizIcon.js
    │   │   ├── TitleIcon.js
    │   │   ├── TransformIcon.js
    │   │   ├── UnderlinedIcon.js
    │   │   ├── ViewListIcon.js
    │   │   ├── WebIcon.js
    │   │   ├── WorkIcon.js
    │   │   ├── font-awesome
    │   │   │   ├── _animated.scss
    │   │   │   ├── _bordered-pulled.scss
    │   │   │   ├── _core.scss
    │   │   │   ├── _fixed-width.scss
    │   │   │   ├── _icons.scss
    │   │   │   ├── _larger.scss
    │   │   │   ├── _list.scss
    │   │   │   ├── _mixins.scss
    │   │   │   ├── _path.scss
    │   │   │   ├── _rotated-flipped.scss
    │   │   │   ├── _stacked.scss
    │   │   │   ├── _variables.scss
    │   │   │   └── font-awesome.scss
    │   │   ├── font-material
    │   │   │   ├── MaterialIcons-Regular.eot
    │   │   │   ├── MaterialIcons-Regular.ijmap
    │   │   │   ├── MaterialIcons-Regular.svg
    │   │   │   ├── MaterialIcons-Regular.ttf
    │   │   │   ├── MaterialIcons-Regular.woff
    │   │   │   ├── MaterialIcons-Regular.woff2
    │   │   │   └── codepoints
    │   │   ├── index.js
    │   │   ├── theme-material.scss
    │   │   └── theme.scss
    │   └── svg
    │   │   ├── base.js
    │   │   ├── human.js
    │   │   ├── material.js
    │   │   └── modern.js
    ├── index.js
    ├── main.js
    ├── mixins
    │   ├── ClickAwayable.jsx
    │   ├── CustomEventTrigger.jsx
    │   ├── WindowListenable.jsx
    │   └── classable.jsx
    ├── ripples
    │   ├── CircleRipple.jsx
    │   ├── FocusRipple.jsx
    │   ├── TouchRipple.jsx
    │   ├── theme-material.scss
    │   └── theme.scss
    ├── styles
    │   ├── ChamelThemeProvider.js
    │   ├── ChamelThemeService.js
    │   ├── components
    │   │   ├── _card.scss
    │   │   ├── _checkbox.scss
    │   │   ├── _colorpicker.scss
    │   │   ├── _components.scss
    │   │   ├── _dialog-window.scss
    │   │   ├── _dialog.scss
    │   │   ├── _drop-down-icon.scss
    │   │   ├── _drop-down-menu.scss
    │   │   ├── _editor.scss
    │   │   ├── _enhanced-button.scss
    │   │   ├── _enhanced-switch.scss
    │   │   ├── _enhanced-textarea.scss
    │   │   ├── _flat-button.scss
    │   │   ├── _floating-action-button.scss
    │   │   ├── _font-icon.scss
    │   │   ├── _icon-button.scss
    │   │   ├── _icon.scss
    │   │   ├── _ink-bar.scss
    │   │   ├── _input.scss
    │   │   ├── _left-nav.scss
    │   │   ├── _menu-item.scss
    │   │   ├── _menu.scss
    │   │   ├── _overlay.scss
    │   │   ├── _paper.scss
    │   │   ├── _popover.scss
    │   │   ├── _progress.scss
    │   │   ├── _radio-button.scss
    │   │   ├── _raised-button.scss
    │   │   ├── _slider.scss
    │   │   ├── _snackbar.scss
    │   │   ├── _svg-icon.scss
    │   │   ├── _table.scss
    │   │   ├── _tabs.scss
    │   │   ├── _text-field-rich.scss
    │   │   ├── _text-field.scss
    │   │   ├── _toggle.scss
    │   │   ├── _toolbar.scss
    │   │   ├── _tooltip.scss
    │   │   ├── date-picker
    │   │   │   ├── _calendar-month.scss
    │   │   │   ├── _calendar-toolbar.scss
    │   │   │   ├── _calendar.scss
    │   │   │   ├── _date-display.scss
    │   │   │   ├── _date-picker-dialog.scss
    │   │   │   ├── _date-picker.scss
    │   │   │   └── _day-button.scss
    │   │   ├── editor
    │   │   │   └── vendor
    │   │   │   │   ├── _codemirror.scss
    │   │   │   │   └── _colorpickr.scss
    │   │   ├── ripples
    │   │   │   ├── _circle.scss
    │   │   │   ├── _focus-ripple.scss
    │   │   │   └── _touch-ripple.scss
    │   │   ├── toolbar
    │   │   │   └── _toolbar.scss
    │   │   └── transition-groups
    │   │   │   ├── _fon-icon.scss
    │   │   │   └── _slide-in.scss
    │   ├── core
    │   │   ├── _base.scss
    │   │   ├── _core.scss
    │   │   ├── _keylines.scss
    │   │   └── _typography.scss
    │   ├── icons
    │   │   ├── _icons.scss
    │   │   └── font-awesome
    │   │   │   ├── _animated.scss
    │   │   │   ├── _bordered-pulled.scss
    │   │   │   ├── _core.scss
    │   │   │   ├── _fixed-width.scss
    │   │   │   ├── _icons.scss
    │   │   │   ├── _larger.scss
    │   │   │   ├── _list.scss
    │   │   │   ├── _mixins.scss
    │   │   │   ├── _path.scss
    │   │   │   ├── _rotated-flipped.scss
    │   │   │   ├── _stacked.scss
    │   │   │   ├── _variables.scss
    │   │   │   └── font-awesome.scss
    │   ├── mixins
    │   │   ├── _clearfix.scss
    │   │   ├── _mixins.scss
    │   │   ├── _no-wrap.scss
    │   │   ├── _ripple.scss
    │   │   └── _transitions.scss
    │   ├── resets
    │   │   └── _normalize.scss
    │   ├── theme
    │   │   ├── base.js
    │   │   ├── base
    │   │   │   └── base.scss
    │   │   ├── human.js
    │   │   ├── human
    │   │   │   ├── controls
    │   │   │   │   ├── _app-bar.scss
    │   │   │   │   ├── _controls.scss
    │   │   │   │   └── _paper.scss
    │   │   │   ├── core
    │   │   │   │   ├── _base.scss
    │   │   │   │   ├── _core.scss
    │   │   │   │   ├── _keylines.scss
    │   │   │   │   └── _typography.scss
    │   │   │   ├── human.scss
    │   │   │   └── variables
    │   │   │   │   ├── _spacing.scss
    │   │   │   │   └── _theme-variables.scss
    │   │   ├── material.js
    │   │   ├── material
    │   │   │   ├── controls
    │   │   │   │   └── _controls.scss
    │   │   │   ├── core
    │   │   │   │   ├── _base.scss
    │   │   │   │   ├── _core.scss
    │   │   │   │   ├── _keylines.scss
    │   │   │   │   └── _typography.scss
    │   │   │   ├── icons
    │   │   │   │   ├── _icons.scss
    │   │   │   │   └── material-fonts
    │   │   │   │   │   ├── _aliases.scss
    │   │   │   │   │   ├── _border.scss
    │   │   │   │   │   ├── _core.scss
    │   │   │   │   │   ├── _fixed-width.scss
    │   │   │   │   │   ├── _icons.scss
    │   │   │   │   │   ├── _list.scss
    │   │   │   │   │   ├── _path.scss
    │   │   │   │   │   ├── _pulled.scss
    │   │   │   │   │   ├── _rotated.scss
    │   │   │   │   │   ├── _sizes.scss
    │   │   │   │   │   ├── _spinned.scss
    │   │   │   │   │   ├── _stacked.scss
    │   │   │   │   │   ├── _variables.scss
    │   │   │   │   │   └── material-design-iconic-font.scss
    │   │   │   ├── material.scss
    │   │   │   └── variables
    │   │   │   │   └── _theme-variables.scss
    │   │   ├── modern.js
    │   │   └── modern
    │   │   │   ├── controls
    │   │   │       └── _controls.scss
    │   │   │   ├── core
    │   │   │       ├── _base.scss
    │   │   │       ├── _core.scss
    │   │   │       ├── _keylines.scss
    │   │   │       └── _typography.scss
    │   │   │   ├── modern.scss
    │   │   │   └── variables
    │   │   │       └── _theme-variables.scss
    │   └── variables
    │   │   ├── _colors.scss
    │   │   ├── _media-queries.scss
    │   │   ├── _spacing.scss
    │   │   └── _theme-variables.scss
    ├── svg-icons
    │   ├── drop-down-arrow.jsx
    │   ├── navigation-chevron-left.jsx
    │   ├── navigation-chevron-right.jsx
    │   ├── navigation-menu.jsx
    │   ├── svg-icon.jsx
    │   ├── toggle-check-box-checked.jsx
    │   ├── toggle-check-box-outline-blank.jsx
    │   ├── toggle-radio-button-off.jsx
    │   └── toggle-radio-button-on.jsx
    ├── transition-groups
    │   ├── SlideIn.jsx
    │   └── SlideInChild.jsx
    └── utils
    │   ├── CssEvent.jsx
    │   ├── DateTime.jsx
    │   ├── Dom.jsx
    │   ├── Events.jsx
    │   ├── KeyCode.jsx
    │   ├── KeyLine.jsx
    │   ├── UniqueId.jsx
    │   ├── device.js
    │   ├── modernizr.custom-old.js
    │   ├── modernizr.custom.js
    │   └── prefixer.js
└── test
    ├── protractor-conf.js
    └── unit
        ├── AppBar
            ├── AppBar.test.js
            ├── AppBarRightToolbar.test.js
            └── appBar.test.js
        ├── AutoComplete
            └── AutoComplete.test.js
        ├── Button
            ├── Button.test.js
            ├── FlatButton.test.js
            ├── FloatingButton.test.js
            ├── IconButton.test.js
            └── RaisedButton.test.js
        ├── ColorPicker
            └── ColorPicker.test.js
        ├── DatePicker
            ├── Calendar.test.js
            ├── CalendarMonth.test.js
            ├── CalendarToolbar.test.js
            ├── DateDisplay.test.js
            ├── DatePicker.test.js
            ├── DatePickerDialog.test.js
            └── DayButton.test.js
        ├── Dialog
            └── Dialog.test.js
        ├── Drawer
            └── Drawer.test.js
        ├── DropDownIcon.test.js
        ├── Editor
            ├── ContentHtml.test.js
            ├── ContentSource.test.js
            └── EditorToolbar.test.js
        ├── EnhancedTextarea
            └── EnhancedTextarea.test.js
        ├── FontIcon
            └── FontIcon.test.js
        ├── Grid
            ├── Column.test.js
            ├── Container.test.js
            └── Row.test.js
        ├── Grouping
            └── Chip.test.js
        ├── Input
            ├── RichText.test.js
            └── TextField.test.js
        ├── List
            ├── List.test.js
            ├── ListDivider.test.js
            ├── ListItem.test.js
            └── ListItemCheckbox.test.js
        ├── Menu
            ├── LinkMenuItem.test.js
            ├── Menu.test.js
            ├── MenuItem.test.js
            ├── NestedMenuItem.test.js
            └── SubheaderMenuItem.test.js
        ├── Overlay
            └── Overlay.test.js
        ├── Paper
            └── Paper.test.js
        ├── Picker
            ├── DatePicker.test.js
            ├── RadioButton.test.js
            ├── RadioPicker.test.js
            ├── SelectButton.test.js
            └── SelectField.test.js
        ├── Popover
            └── Popover.test.js
        ├── Progress
            ├── CircularProgress.test.js
            ├── LinearProgress.test.js
            └── Progress.test.js
        ├── Snackbar
            └── Snackbar.test.js
        ├── Tabs
            ├── Tab.test.js
            └── Tabs.test.js
        ├── TextFieldRich
            └── TextFieldRich.test.js
        ├── Toggle
            ├── Checkbox.test.js
            └── Switch.test.js
        ├── Toolbar
            └── Toolbar.test.js
        ├── Tooltip
            ├── ToolbarGroup.test.js
            └── Tooltip.test.js
        ├── icons
            └── font
            │   ├── AccessTimeIcon.test.js
            │   ├── AccessibilityIcon.test.js
            │   ├── AccountIcon.test.js
            │   ├── AddCircleIcon.test.js
            │   ├── AddIcon.test.js
            │   ├── AnnouncementIcon.test.js
            │   ├── AppsIcon.test.js
            │   ├── ArrowBackIcon.test.js
            │   ├── ArrowDownIcon.test.js
            │   ├── ArrowDropDownCircleIcon.test.js
            │   ├── ArrowDropDownIcon.test.js
            │   ├── ArrowDropUpIcon.test.js
            │   ├── ArrowForwardIcon.test.js
            │   ├── ArrowRightIcon.test.js
            │   ├── ArrowUpIcon.test.js
            │   ├── AttachFileIcon.test.js
            │   ├── AttachmentIcon.test.js
            │   ├── BoldIcon.test.js
            │   ├── BorderColorIcon.test.js
            │   ├── BuildIcon.test.js
            │   ├── CancelIcon.test.js
            │   ├── CheckCircleIcon.test.js
            │   ├── CheckIcon.test.js
            │   ├── ChevronLeftIcon.test.js
            │   ├── ChevronRightIcon.test.js
            │   ├── CloseIcon.test.js
            │   ├── CodeIcon.test.js
            │   ├── CommentIcon.test.js
            │   ├── ContactsIcon.test.js
            │   ├── ContentPasteIcon.test.js
            │   ├── CreateIcon.test.js
            │   ├── DashboardIcon.test.js
            │   ├── DateRangeIcon.test.js
            │   ├── DeleteIcon.test.js
            │   ├── EditIcon.test.js
            │   ├── EmailIcon.test.js
            │   ├── ExpandLessIcon.test.js
            │   ├── ExpandMoreIcon.test.js
            │   ├── FilterListIcon.test.js
            │   ├── FindPageIcon.test.js
            │   ├── FirstPageIcon.test.js
            │   ├── FlagIcon.test.js
            │   ├── FullScreenExitIcon.test.js
            │   ├── FullScreenIcon.test.js
            │   ├── GroupIcon.test.js
            │   ├── InboxIcon.test.js
            │   ├── ItalicIcon.test.js
            │   ├── LabelIcon.test.js
            │   ├── LastPageIcon.test.js
            │   ├── LibraryBooksIcon.test.js
            │   ├── LinkIcon.test.js
            │   ├── ListBulletedIcon.test.js
            │   ├── ListNumberedIcon.test.js
            │   ├── LocalOfferIcon.test.js
            │   ├── MenuIcon.test.js
            │   ├── MergeIcon.test.js
            │   ├── MoreHorizIcon.test.js
            │   ├── MoreVertIcon.test.js
            │   ├── NoteIcon.test.js
            │   ├── PersonAddIcon.test.js
            │   ├── PhotoCameraIcon.test.js
            │   ├── PhotoIcon.test.js
            │   ├── PrintIcon.test.js
            │   ├── RefreshIcon.test.js
            │   ├── SaveIcon.test.js
            │   ├── SearchIcon.test.js
            │   ├── SendIcon.test.js
            │   ├── SettingsApplicationIcon.test.js
            │   ├── SettingsIcon.test.js
            │   ├── ShuffleIcon.test.js
            │   ├── StreetViewIcon.test.js
            │   ├── StyleIcon.test.js
            │   ├── SubArrowLeftIcon.test.js
            │   ├── SubArrowLefticon.test.js
            │   ├── SubArrowRightIcon.test.js
            │   ├── SwapHorizIcon.test.js
            │   ├── TitleIcon.test.js
            │   ├── TransformIcon.test.js
            │   ├── UnderlinedIcon.test.js
            │   ├── ViewListIcon.test.js
            │   ├── WebIcon.test.js
            │   └── WorkIcon.test.js
        ├── ripples
            ├── CircleRipple.test.js
            ├── FocusRipple.test.js
            └── TouchRipple.test.js
        └── transition-groups
            ├── SlideIn.test.js
            └── SlideInChild.test.js
/.babelrc:
--------------------------------------------------------------------------------
 1 | {
 2 |     "presets": [
 3 |         "env",
 4 |         "stage-1",
 5 |         "react"
 6 |     ],
 7 |     "plugins": [
 8 |         ["transform-replace-object-assign", "simple-assign"],
 9 |         "transform-dev-warning",
10 |         "add-module-exports",
11 |         ["module-resolver", {
12 |             "root": ["./src"],
13 |             "alias": {
14 |                 "chamel": "./src"
15 |             }
16 |         }]
17 |     ]
18 | }
19 | 
--------------------------------------------------------------------------------
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 |   "directory" : "vendor"
3 | }
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
 1 | module.exports = {
 2 |   env: {
 3 |     browser: true,
 4 |     es6: true,
 5 |   },
 6 |   extends: ['eslint:recommended', 'plugin:react/recommended', 'prettier'],
 7 |   parser: 'babel-eslint',
 8 |   plugins: ['prettier', 'react'],
 9 |   rules: {
10 |     'prettier/prettier': 'error',
11 |   },
12 | };
13 | 
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
 1 | FROM node:6
 2 | 
 3 | WORKDIR /app
 4 | 
 5 | # Copy over source
 6 | COPY ./ .
 7 | 
 8 | # Clean out node_modules in case this is beng run on a dev box
 9 | RUN rm -rf node_modules/*
10 | RUN rm -rf build/*
11 | 
12 | # Expose ports needed to server http and handle hot reloads in webpack
13 | EXPOSE 8081
14 | EXPOSE 885
15 | EXPOSE 3001
16 | 
17 | # Run the server
18 | CMD rm -rf node_modules/* && npm start
--------------------------------------------------------------------------------
/demo/.babelrc:
--------------------------------------------------------------------------------
 1 | {
 2 |     "presets": [
 3 |         "env",
 4 |         "stage-1",
 5 |         "react"
 6 |     ],
 7 |     "plugins": [
 8 |         ["transform-replace-object-assign", "simple-assign"],
 9 |         "transform-dev-warning",
10 |         "add-module-exports",
11 |         ["module-resolver", {
12 |             "root": ["../src"],
13 |             "alias": {
14 |                 "chamel": "../src",
15 |             }
16 |         }]
17 |     ]
18 | }
19 | 
--------------------------------------------------------------------------------
/demo/CodeBlock.jsx:
--------------------------------------------------------------------------------
 1 | import React, { Component } from 'react';
 2 | 
 3 | class CodeBlock extends Component {
 4 | 
 5 |     componentDidMount() {
 6 |         //hljs.highlightBlock(React.findDOMNode(this));
 7 |     }
 8 | 
 9 |     componentDidUpdate(prevProps, prevState) {
10 |         //hljs.highlightBlock(React.findDOMNode(this));
11 |     }
12 | 
13 |     render() {
14 |         return (
15 |             
16 |                 {this.props.children}
17 |             
18 |         );
19 |     }
20 | 
21 | }
22 | 
23 | module.exports = CodeBlock;
24 | 
--------------------------------------------------------------------------------
/demo/CodeExample.jsx:
--------------------------------------------------------------------------------
 1 | var CodeBlock = require('./CodeBlock'),
 2 |     Paper = require("../src/Paper");
 3 | import React, { Component } from 'react';
 4 | import PropTypes from 'prop-types';
 5 | 
 6 | class CodeExample extends Component {
 7 | 
 8 |     static propTypes = {
 9 |         code: PropTypes.string.isRequired
10 |     }
11 | 
12 |     render() {
13 |         return (
14 |             
15 |                 
Example
16 |                 
17 |                     {this.props.children}
18 |                 
19 |                 
{this.props.code}
20 |             
 7 |   			
Welcome to Chameleon (aka chamel)!
 8 |   			
This demo application exists to demonstrate the capabilites of each chamel component.
 9 |   			
Simply select a componenet to the left to see it in action...
10 |     	
13 |         
14 |           
15 |         
16 |       
17 |     );
18 |   }
19 | }
20 | 
21 | module.exports = AppBarDemo;
22 | 
--------------------------------------------------------------------------------
/demo/controls/DrawerDemo.jsx:
--------------------------------------------------------------------------------
 1 | var React = require('react');
 2 | import DrawerLeftTemporary from './drawer/DrawerLeftTemporary';
 3 | import Button from 'chamel/Button';
 4 | import IconButton from 'chamel/Button/IconButton';
 5 | import FontIcon from 'chamel/FontIcon';
 6 | import CloseIcon from 'chamel/icons/font/CloseIcon';
 7 | 
 8 | class DrawerDemo extends React.Component {
 9 |   render() {
10 |     return (
11 |       
12 |         
{'Drawer'}
13 |         
14 |           
15 |         
16 |       
 9 |         {"Basic Chip"}
10 |         {"Deletable Chip"}
11 |       
12 |     );
13 |   }
14 | }
15 | 
16 | export default GroupingDemo;
17 | 
--------------------------------------------------------------------------------
/demo/controls/Toggle/CheckboxDemo.jsx:
--------------------------------------------------------------------------------
 1 | var React = require('react');
 2 | 
 3 | import Checkbox from 'chamel/Toggle/Checkbox';
 4 | 
 5 | class CheckboxDemo extends React.Component {
 6 |   /**
 7 |    * Class constructor
 8 |    *
 9 |    * @param {Object} props Properties to send to the render function
10 |    */
11 |   constructor(props) {
12 |     // Call paprent constructor
13 |     super(props);
14 | 
15 |     this.state = {
16 |       checked: false,
17 |     };
18 |   }
19 | 
20 |   render() {
21 |     return (
22 |       
23 |         
28 |       
29 |     );
30 |   }
31 | 
32 |   _handleChange = (e, checked) => {
33 |     this.setState({ checked: checked });
34 |   };
35 | }
36 | 
37 | export default CheckboxDemo;
38 | 
--------------------------------------------------------------------------------
/demo/controls/Toggle/SwitchDemo.jsx:
--------------------------------------------------------------------------------
 1 | var React = require('react');
 2 | 
 3 | import Switch from 'chamel/Toggle/Switch';
 4 | 
 5 | class SwitchDemo extends React.Component {
 6 |   /**
 7 |    * Class constructor
 8 |    *
 9 |    * @param {Object} props Properties to send to the render function
10 |    */
11 |   constructor(props) {
12 |     // Call paprent constructor
13 |     super(props);
14 | 
15 |     this.state = {
16 |       checked: false,
17 |     };
18 |   }
19 | 
20 |   render() {
21 |     return (
22 |       
23 |         
28 |       
29 |     );
30 |   }
31 | 
32 |   _handleChange = (e, checked) => {
33 |     this.setState({ checked: checked });
34 |   };
35 | }
36 | 
37 | export default SwitchDemo;
38 | 
--------------------------------------------------------------------------------
/demo/controls/ToggleDemo.jsx:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import CheckboxDemo from './Toggle/CheckboxDemo';
 3 | import SwitchDemo from './Toggle/SwitchDemo';
 4 | 
 5 | class ToggleDemo extends React.Component {
 6 |   render() {
 7 |     return (
 8 |       
 9 |         
10 |           
{"Toggle Components"}
11 |           {"Checkbox"}
12 |           
13 |           {"Switch"}
14 |           
15 |         
16 |       
12 |         
{"Toolbar"}
13 |         
Toolbars are used to present actions and menus that are not in the
14 |           main AppBar.
15 |         
16 |         
{"Primary Toolbar"}
17 |         
18 |         
{"Secondary Toolbar"}
19 |         
20 |       
{props.children}
;
20 | };
21 | 
22 | /**
23 |  * Set accepted properties
24 |  */
25 | Row.propTypes = {
26 |   children: PropTypes.node,
27 | };
28 | 
29 | /**
30 |  * An alternate theme may be passed down by a provider
31 |  */
32 | Row.contextTypes = {
33 |   chamelTheme: PropTypes.object,
34 | };
35 | 
36 | export default Row;
37 | 
--------------------------------------------------------------------------------
/src/Grid/index.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skystebnicki/chamel/e5981d7f714752bd76f715dea6d0428028ffbe5e/src/Grid/index.js
--------------------------------------------------------------------------------
/src/Grouping/theme-material.scss:
--------------------------------------------------------------------------------
 1 | @import "../styles/variables/colors";
 2 | @import "../styles/variables/spacing";
 3 | @import "../styles/variables/media-queries";
 4 | @import "../styles/variables/theme-variables";
 5 | @import "../styles/core/typography";
 6 | 
 7 | .chip {
 8 |   background-color: $chip-background-color;
 9 |   border-radius: 5px;
10 |   margin: 5px;
11 |   overflow: hidden;
12 |   position: relative;
13 |   min-height: 25px;
14 |   display: inline-block;
15 | 
16 |   .chipChildren {
17 |     font-size: $chip-font-size;
18 |     color: $chip-text-color;
19 |     vertical-align: middle;
20 |     text-overflow: ellipsis;
21 |     white-space: nowrap;
22 |     padding: 5px;
23 |     display: inline-block;
24 |   }
25 | 
26 |   .deletable {
27 |     margin-left: 5px;
28 |     cursor: pointer;
29 |     padding-right: 5px;
30 |   }
31 | }
--------------------------------------------------------------------------------
/src/Input/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './TextField';
2 | 
--------------------------------------------------------------------------------
/src/List/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './List';
2 | 
--------------------------------------------------------------------------------
/src/Menu/SubheaderMenuItem.jsx:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import PropTypes from 'prop-types';
 3 | import ThemeService from '../styles/ChamelThemeService';
 4 | 
 5 | const SubheaderMenuItem = (props, context) => {
 6 |   const theme =
 7 |     context.chamelTheme && context.chamelTheme.menu
 8 |       ? context.chamelTheme.menu
 9 |       : ThemeService.defaultTheme.menu;
10 | 
11 |   return (
12 |     
13 |       {props.text}
14 |     
15 |   );
16 | };
17 | 
18 | SubheaderMenuItem.propTypes = {
19 |   index: PropTypes.number.isRequired,
20 |   text: PropTypes.string.isRequired,
21 | };
22 | 
23 | export default SubheaderMenuItem;
24 | 
--------------------------------------------------------------------------------
/src/Menu/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './Menu';
2 | 
--------------------------------------------------------------------------------
/src/Overlay/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './Overlay';
2 | 
--------------------------------------------------------------------------------
/src/Overlay/theme.scss:
--------------------------------------------------------------------------------
 1 | @import "../styles/mixins/transitions";
 2 | @import "../styles/variables/colors";
 3 | 
 4 | .overlay {
 5 |   position: fixed;
 6 |   height: 100%;
 7 |   width: 100%;
 8 |   z-index: 9;
 9 |   top: 0px;
10 | 
11 |   left: -100%;
12 |   background-color: rgba(0, 0, 0, 0);
13 |   @include transform(transition(left 0ms $ease-out-function 400ms, background-color 400ms $ease-out-function 0ms));
14 | }
15 | 
16 | .overlayVisible {
17 |   left: 0px;
18 |   background-color: $light-black;
19 |   @include transform(transition(left 0ms $ease-out-function 0ms, background-color 400ms $ease-out-function 0ms));
20 | }
--------------------------------------------------------------------------------
/src/Paper/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './Paper';
2 | 
--------------------------------------------------------------------------------
/src/Picker/ColorPicker.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/skystebnicki/chamel/e5981d7f714752bd76f715dea6d0428028ffbe5e/src/Picker/ColorPicker.js
--------------------------------------------------------------------------------
/src/Picker/index.js:
--------------------------------------------------------------------------------
1 | export { DatePicker } from './DatePicker';
2 | export { RadioButton } from './RadioButton';
3 | export { RadioPicker } from './RadioPicker';
4 | export { SelectButton } from './SelectButton';
5 | export { SelectField } from './SelectField';
6 | 
--------------------------------------------------------------------------------
/src/Popover/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './Popover';
2 | 
--------------------------------------------------------------------------------
/src/Popover/theme.scss:
--------------------------------------------------------------------------------
 1 | @import "../styles/variables/colors";
 2 | @import "../styles/variables/spacing";
 3 | @import "../styles/variables/theme-variables";
 4 | @import "../styles/mixins/transitions";
 5 | 
 6 | /**
 7 |  * Base thee for popover handles hidden or not
 8 |  */
 9 | .popover {
10 | 
11 |   * {@include ease-out(); }
12 | 
13 |   min-width: 10px;
14 |   opacity: 0;
15 |   display: none;
16 | 
17 |   &.popoverVisible {
18 |     opacity: 1;
19 |     z-index: 99;
20 |     display: block;
21 |   }
22 |   &.pushToLeft{
23 |     left: -160px !important;
24 |     top: -13px !important;
25 |   }
26 |   &.addScrollBar {
27 |     overflow: auto;
28 |   }
29 | }
30 | 
--------------------------------------------------------------------------------
/src/Progress/CircularProgress.jsx:
--------------------------------------------------------------------------------
 1 | import React, { Component } from 'react';
 2 | import PropTypes from 'prop-types';
 3 | import ThemeService from '../styles/ChamelThemeService';
 4 | import prefixer from '../utils/prefixer.js';
 5 | import classnames from 'classnames';
 6 | import Progress from './Progress';
 7 | 
 8 | const CircularProgress = (props, context) => {
 9 |   return ;
10 | };
11 | 
12 | CircularProgress.PropTypes = {
13 |   buffer: PropTypes.number,
14 |   className: PropTypes.string,
15 |   disabled: PropTypes.bool,
16 |   max: PropTypes.number,
17 |   min: PropTypes.number,
18 |   mode: PropTypes.oneOf(['determinate', 'indeterminate']),
19 |   multicolor: PropTypes.bool,
20 |   value: PropTypes.number,
21 | };
22 | 
23 | export default CircularProgress;
24 | 
--------------------------------------------------------------------------------
/src/Progress/LinearProgress.jsx:
--------------------------------------------------------------------------------
 1 | import React, { Component } from 'react';
 2 | import PropTypes from 'prop-types';
 3 | import ThemeService from '../styles/ChamelThemeService';
 4 | import prefixer from '../utils/prefixer.js';
 5 | import Progress from './Progress';
 6 | 
 7 | const LinearProgress = (props, context) => {
 8 |   return ;
 9 | };
10 | 
11 | LinearProgress.PropTypes = {
12 |   buffer: PropTypes.number,
13 |   className: PropTypes.string,
14 |   disabled: PropTypes.bool,
15 |   max: PropTypes.number,
16 |   min: PropTypes.number,
17 |   mode: PropTypes.oneOf(['determinate', 'indeterminate']),
18 |   multicolor: PropTypes.bool,
19 |   value: PropTypes.number,
20 | };
21 | 
22 | export default LinearProgress;
23 | 
--------------------------------------------------------------------------------
/src/Progress/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './LinearProgress';
2 | 
--------------------------------------------------------------------------------
/src/RadioButton/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './RadioButton';
2 | 
--------------------------------------------------------------------------------
/src/RadioButtonGroup/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './RadioButtonGroup';
2 | 
--------------------------------------------------------------------------------
/src/Snackbar/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './Snackbar';
2 | 
--------------------------------------------------------------------------------
/src/Table/TableHeader.jsx:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import PropTypes from 'prop-types';
 3 | 
 4 | const TableHeader = props => {
 5 |   let children = [],
 6 |     headerItem,
 7 |     itemComponent;
 8 | 
 9 |   for (let i = 0; i < props.headerItems.length; i++) {
10 |     headerItem = props.headerItems[i];
11 | 
12 |     itemComponent = (
13 |       
14 |         {headerItem.text}
15 |       
16 |     );
17 | 
18 |     children.push(itemComponent);
19 |   }
20 | 
21 |   return (
22 |     
23 |       {children}
24 |       
(Pagify)
25 |     
{children}
;
19 | };
20 | 
21 | TableRow.propTypes = {
22 |   rowItems: PropTypes.array.isRequired,
23 | };
24 | 
25 | export default TableRow;
26 | 
--------------------------------------------------------------------------------
/src/Table/TableRowsItem.jsx:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | 
 3 | const TableRowItem = props => {
 4 |   return (
 5 |     
 6 |       (TableRowItem)
 7 |       
(Actions)
 8 |     
{children}
;
11 | };
12 | 
13 | export default SlideInChild;
14 | 
--------------------------------------------------------------------------------
/src/utils/KeyCode.jsx:
--------------------------------------------------------------------------------
 1 | module.exports = {
 2 |   SHIFT: 16,
 3 |   TWO: 50, // @
 4 |   DOWN: 40,
 5 |   ESC: 27,
 6 |   ENTER: 13,
 7 |   LEFT: 37,
 8 |   RIGHT: 39,
 9 |   SPACE: 32,
10 |   TAB: 9,
11 |   UP: 38,
12 |   DELETE: 8,
13 |   BACKSPACE: 46,
14 | };
15 | 
--------------------------------------------------------------------------------
/src/utils/KeyLine.jsx:
--------------------------------------------------------------------------------
 1 | module.exports = {
 2 |   Desktop: {
 3 |     GUTTER: 24,
 4 |     GUTTER_LESS: 16,
 5 |     INCREMENT: 64,
 6 |     MENU_ITEM_HEIGHT: 32,
 7 |   },
 8 | 
 9 |   getIncrementalDim: function(dim) {
10 |     return Math.ceil(dim / this.Desktop.INCREMENT) * this.Desktop.INCREMENT;
11 |   },
12 | };
13 | 
--------------------------------------------------------------------------------
/src/utils/UniqueId.jsx:
--------------------------------------------------------------------------------
1 | var index = 0;
2 | 
3 | module.exports = {
4 |   generate: function() {
5 |     return 'ui-id-' + index++;
6 |   },
7 | };
8 | 
--------------------------------------------------------------------------------
/src/utils/device.js:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Device is an object that is used to represent a physical device and browser
 3 |  */
 4 | import modernizr from './modernizr.custom';
 5 | 
 6 | var device = {};
 7 | 
 8 | /**
 9 |  * Setup device tests
10 |  */
11 | if (modernizr) {
12 |   device.test = modernizr;
13 | } else {
14 |   // Modernizr can't load so make empty props or set defaults here
15 |   device.test = {
16 |     inputtypes: {},
17 |   };
18 | }
19 | 
20 | module.exports = device;
21 | 
--------------------------------------------------------------------------------
/test/protractor-conf.js:
--------------------------------------------------------------------------------
 1 | xports.config = {
 2 |     allScriptsTimeout: 11000,
 3 | 
 4 |     specs: [
 5 |         'e2e/*.js'
 6 |     ],
 7 | 
 8 |     capabilities: {
 9 |         'browserName': 'chrome'
10 |     },
11 | 
12 |     chromeOnly: true,
13 | 
14 |     baseUrl: 'http://localhost:8000/',
15 | 
16 |     framework: 'jasmine',
17 | 
18 |     jasmineNodeOpts: {
19 |         defaultTimeoutInterval: 30000
20 |     }
21 | };
--------------------------------------------------------------------------------
/test/unit/AppBar/AppBar.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import AppBar from 'chamel/AppBar';
 4 | 
 5 | /**
 6 |  * Test rendering the AppBar
 7 |  */
 8 | describe('AppBar Component', () => {
 9 |   // Basic validation that render works in edit mode and returns children
10 |   it('Should render', () => {
11 |     const renderer = new ReactShallowRenderer();
12 |     const renderedDocument = renderer.render(
13 |       ,
14 |     );
15 | 
16 |     expect(renderedDocument.type).toBe('div');
17 |   });
18 | });
19 | 
--------------------------------------------------------------------------------
/test/unit/AppBar/AppBarRightToolbar.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import AppBarRightToolbar from 'chamel/AppBar/AppBarRightToolbar';
 4 | 
 5 | /**
 6 |  * Test rendering the AppBarRightToolbar
 7 |  */
 8 | describe('AppBarRightToolbar Component', () => {
 9 |   // Basic validation that render works in edit mode and returns children
10 |   it('Should render', () => {
11 |     const renderer = new ReactShallowRenderer();
12 |     const renderedDocument = renderer.render();
13 | 
14 |     expect(renderedDocument.type).toBe('div');
15 |     expect(renderedDocument.props.className).toContain('test-class-name');
16 |   });
17 | });
18 | 
--------------------------------------------------------------------------------
/test/unit/AppBar/appBar.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import AppBar from 'chamel/AppBar';
 4 | 
 5 | /**
 6 |  * Test rendering the AppBar
 7 |  */
 8 | describe('AppBar Component', () => {
 9 |   // Basic validation that render works in edit mode and returns children
10 |   it('Should render', () => {
11 |     const renderer = new ReactShallowRenderer();
12 |     const renderedDocument = renderer.render(
13 |       ,
14 |     );
15 | 
16 |     expect(renderedDocument.type).toBe('div');
17 |   });
18 | });
19 | 
--------------------------------------------------------------------------------
/test/unit/AutoComplete/AutoComplete.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import AutoComplete from 'chamel/AutoComplete';
 4 | 
 5 | /**
 6 |  * Test rendering the AutoComplete
 7 |  */
 8 | describe("AutoComplete Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(typeof renderedDocument.props).toBe('object');
21 |     expect(renderedDocument.type).toBe('div');
22 |   });
23 | });
24 | 
--------------------------------------------------------------------------------
/test/unit/Button/Button.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Button from 'chamel/Button';
 4 | 
 5 | /**
 6 |  * Test rendering the Button
 7 |  */
 8 | describe("Button Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 |     expect(renderedDocument.props.children).toBe('test label');
20 |     expect(renderedDocument.type).toBe('button');
21 |   });
22 | });
23 | 
--------------------------------------------------------------------------------
/test/unit/Button/FlatButton.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import FlatButton from 'chamel/Button';
 4 | 
 5 | /**
 6 |  * Test rendering the FlatButton
 7 |  */
 8 | describe("FlatButton Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 |     
20 |     expect(renderedDocument.props.children).toBe('test label');
21 |     expect(renderedDocument.type).toBe('button');
22 |   });
23 | });
24 | 
--------------------------------------------------------------------------------
/test/unit/Button/FloatingButton.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import FloatingButton from 'chamel/Button';
 4 | 
 5 | /**
 6 |  * Test rendering the FloatingButton
 7 |  */
 8 | describe("FloatingButton Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.props.children).toBe('test label');
21 |     expect(renderedDocument.type).toBe('button');
22 |   });
23 | });
24 | 
--------------------------------------------------------------------------------
/test/unit/Button/IconButton.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import IconButton from 'chamel/Button';
 4 | 
 5 | /**
 6 |  * Test rendering the IconButton
 7 |  */
 8 | describe("IconButton Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.props.children).toBe('test label');
21 |     expect(renderedDocument.type).toBe('button');
22 |   });
23 | });
24 | 
--------------------------------------------------------------------------------
/test/unit/Button/RaisedButton.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import RaisedButton from 'chamel/Button';
 4 | 
 5 | /**
 6 |  * Test rendering the RaisedButton
 7 |  */
 8 | describe("RaisedButton Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.props.children).toBe('test label');
21 |     expect(renderedDocument.type).toBe('button');
22 |   });
23 | });
24 | 
--------------------------------------------------------------------------------
/test/unit/ColorPicker/ColorPicker.test.js:
--------------------------------------------------------------------------------
 1 | 
 2 | import React from 'react';
 3 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 4 | import ColorPicker from 'chamel/ColorPicker';
 5 | 
 6 | /**
 7 |  * Test rendering the ColorPicker
 8 |  */
 9 | describe("ColorPicker Component", () => {
10 | 
11 |   // Basic validation that render works in edit mode and returns children
12 |   it("Should render", () => {
13 | 
14 |     const renderer = new ReactShallowRenderer();
15 |     const renderedDocument = renderer.render(
16 |       
19 |     );
20 | 
21 |     expect(renderedDocument.props.className).toBe('chamel-color-picker');
22 |     expect(renderedDocument.type).toBe('div');
23 |   });
24 | });
25 | 
--------------------------------------------------------------------------------
/test/unit/DatePicker/Calendar.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Calendar from 'chamel/DatePicker/Calendar';
 4 | 
 5 | /**
 6 |  * Test rendering the Calendar
 7 |  */
 8 | describe("Calendar Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.props.className).toBe('chamel-date-picker-calendar chamel-is-5week');
21 |     expect(renderedDocument.type).toBe('div');
22 |   });
23 | });
24 | 
--------------------------------------------------------------------------------
/test/unit/DatePicker/DatePicker.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import DatePicker from 'chamel/DatePicker';
 4 | import DateTime from 'chamel/utils/DateTime';
 5 | 
 6 | /**
 7 |  * Test rendering the DatePicker
 8 |  */
 9 | describe("DatePicker Component", () => {
10 | 
11 |   // Basic validation that render works in edit mode and returns children
12 |   it("Should render", () => {
13 | 
14 |     const defaultDate = DateTime.getFirstDayOfMonth(new Date());
15 |     const renderer = new ReactShallowRenderer();
16 |     const renderedDocument = renderer.render(
17 |       
19 |     );
20 |   
21 |     expect(renderedDocument.props.className).toBe('chamel-date-picker');
22 |     expect(renderedDocument.type).toBe('div');
23 |   });
24 | });
25 | 
--------------------------------------------------------------------------------
/test/unit/Dialog/Dialog.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Dialog from 'chamel/Dialog';
 4 | 
 5 | /**
 6 |  * Test rendering the Dialog
 7 |  */
 8 | describe("Dialog Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.type).toBe('div');
21 |   });
22 | });
23 | 
--------------------------------------------------------------------------------
/test/unit/Drawer/Drawer.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Drawer from 'chamel/Drawer';
 4 | 
 5 | /**
 6 |  * Test rendering the Drawer
 7 |  */
 8 | describe("Drawer Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.type).toBe('div');
21 |   });
22 | });
23 | 
--------------------------------------------------------------------------------
/test/unit/DropDownIcon.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import DropDownIcon from 'chamel/DropDownIcon';
 4 | 
 5 | /**
 6 |  * Test rendering the Drop Down Icon
 7 |  */
 8 | describe('Drop Down Icon Component', () => {
 9 |   // Basic validation that render works in edit mode and returns children
10 |   it('Should render', () => {
11 |     const renderer = new ReactShallowRenderer();
12 |     const renderedDocument = renderer.render(
13 |       ,
17 |     );
18 | 
19 |     expect(typeof renderedDocument.props).toBe('object');
20 |     expect(renderedDocument.type).toBe('div');
21 |   });
22 | });
23 | 
--------------------------------------------------------------------------------
/test/unit/Editor/ContentHtml.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import ContentHtml from 'chamel/Editor/ContentHtml';
 4 | 
 5 | /**
 6 |  * Test rendering the ContentHtml
 7 |  */
 8 | describe("ContentHtml Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.type).toBe('div');
21 |   });
22 | });
23 | 
--------------------------------------------------------------------------------
/test/unit/Editor/ContentSource.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import ContentSource from 'chamel/Editor/ContentSource';
 4 | 
 5 | /**
 6 |  * Test rendering the ContentSource
 7 |  */
 8 | describe("ContentSource Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.type).toBe('div');
21 |   });
22 | });
23 | 
--------------------------------------------------------------------------------
/test/unit/Editor/EditorToolbar.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import EditorToolbar from 'chamel/Editor/EditorToolbar';
 4 | 
 5 | /**
 6 |  * Test rendering the EditorToolbar
 7 |  */
 8 | describe("EditorToolbar Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 | 
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/EnhancedTextarea/EnhancedTextarea.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import EnhancedTextarea from 'chamel/EnhancedTextarea';
 4 | 
 5 | /**
 6 |  * Test rendering the EnhancedTextarea
 7 |  */
 8 | describe("EnhancedTextarea Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.props.className).toBe('chamel-enhanced-textarea-input test textareaClassName');
21 |     expect(renderedDocument.type).toBe('div');
22 |   });
23 | });
24 | 
--------------------------------------------------------------------------------
/test/unit/FontIcon/FontIcon.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import FontIcon from 'chamel/FontIcon';
 4 | 
 5 | /**
 6 |  * Test rendering the FontIcon
 7 |  */
 8 | describe("FontIcon Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
18 |     );
19 | 
20 |     expect(renderedDocument.props.className).toBe('test FontIcon className');
21 |     expect(renderedDocument.type).toBe('span');
22 |   });
23 | });
24 | 
--------------------------------------------------------------------------------
/test/unit/Grid/Column.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Column from 'chamel/Grid/Column';
 4 | 
 5 | /**
 6 |  * Test rendering the Column
 7 |  */
 8 | describe("Column Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 |     
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/Grid/Container.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Container from 'chamel/Grid/Container';
 4 | 
 5 | /**
 6 |  * Test rendering the Container
 7 |  */
 8 | describe("Container Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 |     
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/Grid/Row.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Row from 'chamel/Grid/Row';
 4 | 
 5 | /**
 6 |  * Test rendering the Row
 7 |  */
 8 | describe("Row Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       |
16 |     );
17 |     
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/Grouping/Chip.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Chip from 'chamel/Grouping/Chip';
 4 | 
 5 | /**
 6 |  * Test rendering the Row
 7 |  */
 8 | describe("Chip Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       {"Test Chip"}
16 |     );
17 | 
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/Input/RichText.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import RichText from 'chamel/Input/RichText';
 4 | 
 5 | /**
 6 |  * Test rendering the RichText
 7 |  */
 8 | describe("RichText Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 |     
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/Input/TextField.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import TextField from 'chamel/Input/TextField';
 4 | 
 5 | /**
 6 |  * Test rendering the TextField
 7 |  */
 8 | describe("TextField Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 |     
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/List/List.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import List from 'chamel/List';
 4 | 
 5 | /**
 6 |  * Test rendering the List
 7 |  */
 8 | describe("List Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 | 
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/List/ListDivider.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import ListDivider from 'chamel/List/ListDivider';
 4 | 
 5 | /**
 6 |  * Test rendering the ListDivider
 7 |  */
 8 | describe("ListDivider Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 | 
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/List/ListItem.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import ListItem from 'chamel/List/ListItem';
 4 | 
 5 | /**
 6 |  * Test rendering the ListDivider
 7 |  */
 8 | describe("ListItem Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 | 
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/List/ListItemCheckbox.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import ListItemCheckbox from 'chamel/List/ListItemCheckbox';
 4 | 
 5 | /**
 6 |  * Test rendering the ListItemCheckbox
 7 |  */
 8 | describe("ListItemCheckbox Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
16 |     );
17 | 
18 |     expect(renderedDocument.type).toBe('div');
19 |   });
20 | });
21 | 
--------------------------------------------------------------------------------
/test/unit/Menu/LinkMenuItem.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import LinkMenuItem from 'chamel/Menu/LinkMenuItem';
 4 | 
 5 | /**
 6 |  * Test rendering the Menu
 7 |  */
 8 | describe("LinkMenuItem Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |       
20 |     );
21 |     
22 |     expect(renderedDocument.key).toBe('0');
23 |     expect(renderedDocument.props.children).toBe('test');
24 |     expect(renderedDocument.props.className).toBe('chamel-menu-item');
25 | 
26 |   });
27 | });
28 | 
--------------------------------------------------------------------------------
/test/unit/Menu/Menu.test.js:
--------------------------------------------------------------------------------
 1 | import React from 'react';
 2 | import ReactShallowRenderer from 'react-test-renderer/shallow';
 3 | import Menu from 'chamel/Menu';
 4 | 
 5 | /**
 6 |  * Test rendering the Menu
 7 |  */
 8 | describe("Menu Component", () => {
 9 | 
10 |   // Basic validation that render works in edit mode and returns children
11 |   it("Should render", () => {
12 | 
13 |     const renderer = new ReactShallowRenderer();
14 |     const renderedDocument = renderer.render(
15 |