nitro_sg 3.0.1 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/components/Avatar/Avatar.jsx +96 -0
  3. data/components/Avatar/styles.scss +54 -0
  4. data/components/Avatar/styles.scss.flow +14 -0
  5. data/components/Badge/Badge.jsx +40 -0
  6. data/components/Badge/badges.scss +167 -0
  7. data/components/Badge/labels.scss +121 -0
  8. data/components/Badge/styles.scss +4 -0
  9. data/components/Badge/styles.scss.flow +38 -0
  10. data/components/Banner/Banner.jsx +54 -0
  11. data/components/Banner/styles.scss +75 -0
  12. data/components/Banner/styles.scss.flow +19 -0
  13. data/components/Button/Button.jsx +75 -0
  14. data/components/Card/Card.jsx +44 -0
  15. data/components/CircleButton/CircleButton.jsx +51 -0
  16. data/components/CircleButton/CircleButtonStory.jsx +25 -0
  17. data/components/CircleButton/styles.scss +33 -0
  18. data/components/CircleButton/styles.scss.flow +6 -0
  19. data/components/CollapsibleCard/CollapsibleCard.jsx +108 -0
  20. data/components/Color/Color.jsx +55 -0
  21. data/components/Color/styles.scss +6 -0
  22. data/components/Color/styles.scss.flow +5 -0
  23. data/components/ColorPickerInput/ColorPickerInput.jsx +99 -0
  24. data/components/ColorPickerInput/colorPickerInput.scss +10 -0
  25. data/components/ColorPickerInput/colorPickerInput.scss.flow +6 -0
  26. data/components/DOBInput/index.jsx +35 -0
  27. data/components/DOBInput/story.jsx +20 -0
  28. data/components/DOBInput/styles.scss +11 -0
  29. data/components/DOBInput/styles.scss.flow +7 -0
  30. data/components/DatePicker/DatePicker.jsx +156 -0
  31. data/components/DatePicker/styles.scss +6 -0
  32. data/components/DatePicker/styles.scss.flow +5 -0
  33. data/components/DateTimePicker/DateTimePicker.jsx +109 -0
  34. data/components/DateTimePicker/story-styles.scss +3 -0
  35. data/components/DateTimePicker/story-styles.scss.flow +5 -0
  36. data/components/DateTimePicker/styles.scss +1 -0
  37. data/components/DateTimePicker/styles.scss.flow +5 -0
  38. data/components/Errors/Errors.jsx +38 -0
  39. data/components/FileCard/FileCard.jsx +183 -0
  40. data/components/FileCard/styles.scss +81 -0
  41. data/components/FileCard/styles.scss.flow +12 -0
  42. data/components/Flip/Flip.jsx +50 -0
  43. data/components/Flip/styles.scss +41 -0
  44. data/components/Flip/styles.scss.flow +11 -0
  45. data/components/FlyoutPanel/FlyoutPanel.jsx +34 -0
  46. data/components/FlyoutPanel/flyout_panel.scss +33 -0
  47. data/components/FlyoutPanel/flyout_panel.scss.flow +11 -0
  48. data/components/Grade/Grade.jsx +55 -0
  49. data/components/Grade/grade.scss +39 -0
  50. data/components/Grade/grade.scss.flow +6 -0
  51. data/components/Highlight/Highlight.jsx +39 -0
  52. data/components/Highlight/styles.scss +24 -0
  53. data/components/Highlight/styles.scss.flow +17 -0
  54. data/components/Icon/Icon.jsx +54 -0
  55. data/components/IconToggle/IconToggle.jsx +56 -0
  56. data/components/Milestones/MilestoneItem.jsx +47 -0
  57. data/components/Milestones/Milestones.jsx +51 -0
  58. data/components/Milestones/milestones.scss +19 -0
  59. data/components/Milestones/milestones.scss.flow +7 -0
  60. data/components/Milestones/milestones_item.scss +157 -0
  61. data/components/Milestones/milestones_item.scss.flow +13 -0
  62. data/components/Milestones/milestones_variables.scss +11 -0
  63. data/components/MonogramAvatar/MonogramAvatar.jsx +91 -0
  64. data/components/MonogramAvatar/monogram_avatar.scss +54 -0
  65. data/components/MonogramAvatar/monogram_avatar.scss.flow +10 -0
  66. data/components/Panel/Panel.jsx +159 -0
  67. data/components/Panel/panel.scss +32 -0
  68. data/components/Panel/panel.scss.flow +12 -0
  69. data/components/PanelGroup/PanelGroup.jsx +121 -0
  70. data/components/PanelGroup/PanelGroup.scss +96 -0
  71. data/components/PanelGroup/PanelGroup.scss.flow +6 -0
  72. data/components/SearchCollectionSelect/SearchCollectionSelect.jsx +29 -0
  73. data/components/SearchCollectionSelect/searchCollectionSelect.scss +0 -0
  74. data/components/Spinner/Spinner.jsx +80 -0
  75. data/components/Spinner/spinner.scss +6 -0
  76. data/components/Spinner/spinner.scss.flow +5 -0
  77. data/components/StepMeter/StepMeter.jsx +75 -0
  78. data/components/StepMeter/step_meter.scss +120 -0
  79. data/components/StepMeter/step_meter.scss.flow +9 -0
  80. data/components/Survey/Survey.jsx +190 -0
  81. data/components/Survey/survey.scss +75 -0
  82. data/components/Survey/survey.scss.flow +11 -0
  83. data/components/Tab/Tab.jsx +70 -0
  84. data/components/Tab/tab.scss +25 -0
  85. data/components/Tab/tab.scss.flow +6 -0
  86. data/components/TabList/TabList.jsx +35 -0
  87. data/components/TabList/tabList.scss +5 -0
  88. data/components/TabList/tabList.scss.flow +5 -0
  89. data/components/Text/Text.jsx +53 -0
  90. data/components/Text/styles.scss +3 -0
  91. data/components/Text/styles.scss.flow +123 -0
  92. data/components/Text/text.scss +35 -0
  93. data/components/TextInput/TextInput.jsx +95 -0
  94. data/components/TextInput/form-control.scss +96 -0
  95. data/components/TextInput/styles.scss +3 -0
  96. data/components/TextInput/styles.scss.flow +7 -0
  97. data/components/TimePicker/TimePicker.jsx +218 -0
  98. data/components/TimePicker/styles.scss +1 -0
  99. data/components/TimePicker/styles.scss.flow +5 -0
  100. data/components/ToggleButton/ToggleButton.jsx +68 -0
  101. data/components/ToggleButton/toggleButton.scss +70 -0
  102. data/components/ToggleButton/toggleButton.scss.flow +14 -0
  103. data/components/UserStamp/UserStamp.jsx +40 -0
  104. data/components/UserStamp/styles.scss +6 -0
  105. data/components/UserStamp/styles.scss.flow +7 -0
  106. data/components/Wip/Wip.jsx +34 -0
  107. data/components/index.js +33 -0
  108. data/components/types.js +21 -0
  109. data/lib/nitro_sg/version.rb +1 -1
  110. metadata +108 -1
@@ -0,0 +1,33 @@
1
+ @import "base-mixins/_all.scss";
2
+ @import "base-variables/_all.scss";
3
+
4
+ .flyout-panel {
5
+ height: 100vh;
6
+ position: absolute;
7
+ top: 0;
8
+ z-index: 99999;
9
+ transition: all ease 0.5s;
10
+ background-color: $white;
11
+ border-left: 1px solid $gray-2;
12
+ box-shadow: $shadow-deep;
13
+
14
+ .scroll-inner-box {
15
+ height: 100%;
16
+ overflow: auto;
17
+ }
18
+
19
+ &.right {
20
+ right: -100%;
21
+ border-left: 1px solid $gray-2;
22
+ &.open {
23
+ right: 0;
24
+ }
25
+ }
26
+ &.left {
27
+ left: -100%;
28
+ border-right: 1px solid $gray-2;
29
+ &.open {
30
+ left: 0;
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,11 @@
1
+ // @flow
2
+ /* This file is automatically generated by css-modules-flow-types */
3
+ declare module.exports: {|
4
+ +'flyout-panel': string;
5
+ +'hidden-xxs': string;
6
+ +'left': string;
7
+ +'open': string;
8
+ +'right': string;
9
+ +'scroll-inner-box': string;
10
+ +'visible-xxs': string;
11
+ |};
@@ -0,0 +1,55 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import Icon from '../Icon/Icon'
5
+ import classnames from 'classnames'
6
+
7
+ import styles from './grade.scss'
8
+
9
+ type Props = {
10
+ className: string,
11
+ label: string,
12
+ grade: number,
13
+ starFullAt: number,
14
+ starEmptyAt: number,
15
+ }
16
+
17
+ const gradeToStarIconName = (grade: number, starFullAt: number, starEmptyAt: number): string => {
18
+ if (grade >= starFullAt) { return 'trophy-alt' }
19
+ if (grade <= starEmptyAt) { return 'star' }
20
+
21
+ return 'star-half'
22
+ }
23
+
24
+ class Grade extends React.Component<Props> {
25
+ static defaultProps = {
26
+ starFullAt: 10,
27
+ starEmptyAt: 0,
28
+ label: 'Grade'
29
+ }
30
+ props: Props
31
+
32
+ render() {
33
+ const { grade, label, starFullAt, starEmptyAt, className } = this.props
34
+ const classes = [
35
+ className,
36
+ styles.grade
37
+ ]
38
+
39
+ return (
40
+ <div className={classnames(classes)}>
41
+ <Icon
42
+ className={styles.star}
43
+ label=""
44
+ name={gradeToStarIconName(grade, starFullAt, starEmptyAt)}
45
+ />
46
+ <div>
47
+ <p>{grade}</p>
48
+ <label>{label}</label>
49
+ </div>
50
+ </div>
51
+ )
52
+ }
53
+ }
54
+
55
+ export default Grade
@@ -0,0 +1,39 @@
1
+ @import "base-variables/_colors.scss";
2
+ @import "base-variables/_spacing.sass";
3
+ @import "base-variables/_typography.sass";
4
+
5
+ .grade {
6
+ display: flex;
7
+ flex-direction: row;
8
+
9
+ .star {
10
+ font-size: $font-largest;
11
+ line-height: 36px;
12
+ margin-right: $space-base;
13
+ color: $ink-lighter;
14
+ }
15
+
16
+ div {
17
+ display: flex;
18
+ flex-direction: column;
19
+
20
+ p {
21
+ font-size: $font-large;
22
+ color: $ink-light;
23
+ font-weight: $bold;
24
+ margin: 0;
25
+ padding: 0;
26
+ line-height: $font-large + 2;
27
+ text-align: center;
28
+ }
29
+ label {
30
+ margin: 0;
31
+ padding: 0;
32
+ color: $ink-lightest;
33
+ text-transform: uppercase;
34
+ font-weight: $regular;
35
+ font-size: $font-smaller;
36
+ line-height: $font-smaller + 2;
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,6 @@
1
+ // @flow
2
+ /* This file is automatically generated by css-modules-flow-types */
3
+ declare module.exports: {|
4
+ +'grade': string;
5
+ +'star': string;
6
+ |};
@@ -0,0 +1,39 @@
1
+ /* @flow */
2
+ import styles from './styles.scss'
3
+ import React from 'react'
4
+ import classnames from 'classnames'
5
+
6
+ type Props = {
7
+
8
+ side: "top" | "bottom" | "left" | "right"| null,
9
+ color: "power-navy" | "power-navy-darker" | "power-red" | "power-gold" | "power-blue" | "power-green" | "power-royal",
10
+
11
+ }
12
+
13
+ export default class Highlight extends React.Component<Props> {
14
+ static defaultProps = {
15
+ side: "",
16
+ color: "",
17
+ }
18
+ props: Props
19
+ render() {
20
+ const {
21
+ side,
22
+ color,
23
+ } = this.props
24
+
25
+ const css = [
26
+ styles[`highlight-${side}`],
27
+ styles[`highlight-${color}`],
28
+ ]
29
+
30
+ return (
31
+ <div>
32
+ <span className={classnames(css,'well')} >{`I'm a ${side} highlight ${color}`}</span>
33
+ </div>
34
+
35
+
36
+
37
+ )
38
+ }
39
+ }
@@ -0,0 +1,24 @@
1
+ @import '../../sass-mixins/base-variables/colors';
2
+ @import '../../sass-mixins/base-mixins/all';
3
+ //highlight
4
+ $borderStyle: "solid";
5
+ $sides: "top" "right" "bottom" "left" ;
6
+ $borderWidth: 4px;
7
+
8
+ @mixin config-highlight-colors($prefix) {
9
+ @each $color in $power-colors {
10
+ .#{$prefix}-#{nth($color, 1)} {
11
+ border-color: #{nth($color,2)} !important;
12
+ }
13
+ }
14
+ }
15
+
16
+ @include config-highlight-colors("highlight");
17
+ @each $side in $sides {
18
+
19
+ .highlight-#{$side} {
20
+ border:0;
21
+ border-#{$side}-style: #{$borderStyle};
22
+ border-#{$side}-width: $borderWidth;
23
+ }
24
+ }
@@ -0,0 +1,17 @@
1
+ // @flow
2
+ /* This file is automatically generated by css-modules-flow-types */
3
+ declare module.exports: {|
4
+ +'hidden-xxs': string;
5
+ +'highlight-bottom': string;
6
+ +'highlight-left': string;
7
+ +'highlight-power-blue': string;
8
+ +'highlight-power-gold': string;
9
+ +'highlight-power-green': string;
10
+ +'highlight-power-navy': string;
11
+ +'highlight-power-navy-darker': string;
12
+ +'highlight-power-red': string;
13
+ +'highlight-power-royal': string;
14
+ +'highlight-right': string;
15
+ +'highlight-top': string;
16
+ +'visible-xxs': string;
17
+ |};
@@ -0,0 +1,54 @@
1
+ import React from "react"
2
+ import FontAwesome from "react-fontawesome"
3
+ import Text from '../Text/Text'
4
+
5
+ /**
6
+ * Icon renders a FontAwesome icon followed by a label.
7
+ *
8
+ * @param {string} name FontAwesome icon's name. For the icon 'fa-paperclip' for
9
+ * example, its name would be 'paperclip'.
10
+ * @param {string} label the text to use as a label.
11
+ * @param {string} size an optional FontAwesome icon size ('lg', '2x', '3x', etc).
12
+ * @param {func} onClick the function to be called when the React onClick event is triggered.
13
+ * @param {string} className class name is an option on the FontAwesome package that adds a class to the FontAwesome span.
14
+ * @param {string} title an optional title as a tooltip on mouse hover.
15
+ * @returns {ReactElement} JSX.
16
+ */
17
+
18
+ export default class Icon extends React.Component<Props> {
19
+ static defaultProps = {
20
+ label: "",
21
+ spin: false,
22
+ }
23
+ props: IconType
24
+ render() {
25
+ const {
26
+ name,
27
+ label,
28
+ size,
29
+ spin,
30
+ onClick,
31
+ className,
32
+ title
33
+ } = this.props
34
+ return (
35
+ <span
36
+ className="icon"
37
+ onClick={onClick}
38
+ title={title}
39
+ >
40
+ <FontAwesome
41
+ className={`far ${className}`}
42
+ name={name}
43
+ size={size}
44
+ spin={spin}
45
+ />
46
+ <If condition={label}>
47
+ <span className="ml-2" >
48
+ {label}
49
+ </span>
50
+ </If>
51
+ </span>
52
+ )
53
+ }
54
+ }
@@ -0,0 +1,56 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import Icon from '../Icon/Icon'
5
+
6
+
7
+ type Props = {
8
+ children?: Array<React.Node>,
9
+ className?: string,
10
+ iconOption1?:string,
11
+ iconOption2?:string,
12
+ size:string,
13
+ color:string,
14
+ }
15
+
16
+ export default class IconToggle extends React.Component<Props> {
17
+
18
+ static defaultProps = {
19
+ color: "text-sky",
20
+ className: "icon-toggle",
21
+ iconOption1:"minus-circle",
22
+ iconOption2:"plus-circle",
23
+ size:"text-larger",
24
+ }
25
+
26
+ props: Props
27
+
28
+ render() {
29
+ const{
30
+ className,
31
+ iconOption1,
32
+ iconOption2,
33
+ color,
34
+ size,
35
+ } = this.props
36
+
37
+
38
+ return (
39
+ <div>
40
+ <label className={`icon-toggle ${size} m-0`}>
41
+ <input className=""
42
+ type="checkbox"
43
+ />
44
+ <Icon className={`${className,color}`}
45
+ name={iconOption1}
46
+ title={`icon-1`}
47
+ />
48
+ <Icon className={`ml-4 ${className,color}`}
49
+ name={iconOption2}
50
+ title={`icon-2`}
51
+ />
52
+ </label>
53
+ </div>
54
+ )
55
+ }
56
+ }
@@ -0,0 +1,47 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import classnames from 'classnames'
5
+ import Icon from '../Icon/Icon'
6
+
7
+ import styles from './milestones_item.scss'
8
+
9
+ type Props = {
10
+ className: string,
11
+ name: string,
12
+ status: string,
13
+ background: string,
14
+ }
15
+
16
+
17
+ const statusToIconName = (status: string): string => {
18
+ if (status == 'done') { return 'check' }
19
+ if (status == 'started') { return 'dot-circle' }
20
+ return 'dot-circle'
21
+ }
22
+
23
+ export default class MilestoneItem extends React.Component<Props> {
24
+ static defaultProps = {
25
+ className: "",
26
+ background: "light"
27
+ }
28
+ props: Props
29
+ render() {
30
+ const {
31
+ className,
32
+ name,
33
+ status,
34
+ background,
35
+ } = this.props
36
+ const css = [
37
+ className,
38
+ styles[`milestone-item`],
39
+ styles[`background-${background}`],
40
+ styles[`status-${status}`],
41
+ ]
42
+ return <li className={classnames(css)}>
43
+ <Icon name={statusToIconName(status)} className={styles[`icon`]}/>
44
+ <span className={styles[`milestone-item-label`]}>{name}</span>
45
+ </li>
46
+ }
47
+ }
@@ -0,0 +1,51 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import classnames from 'classnames'
5
+
6
+ import MilestoneItem from './MilestoneItem'
7
+ import styles from './milestones.scss'
8
+
9
+ type Props = {
10
+ background: string,
11
+ className: string,
12
+ steps: any,
13
+ }
14
+
15
+ export default class Milestones extends React.Component<Props> {
16
+ static defaultProps = {
17
+ className: "",
18
+ background: "light"
19
+ }
20
+ props: Props
21
+
22
+ render() {
23
+ const {
24
+ background,
25
+ className,
26
+ steps,
27
+ } = this.props
28
+ const css = [
29
+ className,
30
+ styles[`milestones`],
31
+ ]
32
+ return (
33
+ <span className={classnames(css)}>
34
+ <ul>
35
+ {
36
+ [...steps].map((item, index) => {
37
+ return (
38
+ <MilestoneItem
39
+ background={background}
40
+ key={index}
41
+ name={item.name}
42
+ status={item.status}
43
+ />
44
+ )
45
+ })
46
+ }
47
+ </ul>
48
+ </span>
49
+ )
50
+ }
51
+ }