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,25 @@
1
+ @import "base-variables/_colors.scss";
2
+ @import "base-variables/_spacing.sass";
3
+ @import "base-variables/_typography.sass";
4
+
5
+ @mixin tab($orient: "horizontal") {
6
+ color: $gray-4;
7
+ cursor: pointer;
8
+ display: inline-block;
9
+ font-weight: $bold;
10
+ padding: $space-base $space-larger;
11
+ &-active {
12
+ border-bottom: 6px solid $power-royal;
13
+ color: $ink-dark;
14
+ }
15
+ &:link, &:visited {
16
+ color: $gray-4;
17
+ }
18
+ &:hover {
19
+ color: $ink-dark;
20
+ }
21
+ }
22
+
23
+ .tab {
24
+ @include tab;
25
+ }
@@ -0,0 +1,6 @@
1
+ // @flow
2
+ /* This file is automatically generated by css-modules-flow-types */
3
+ declare module.exports: {|
4
+ +'tab': string;
5
+ +'tab-active': string;
6
+ |};
@@ -0,0 +1,35 @@
1
+ /* @flow */
2
+
3
+ import React, { Component } from 'react'
4
+ import classnames from 'classnames'
5
+
6
+ import { TabType } from '../Tab/Tab'
7
+
8
+ type Props = {
9
+ className?: string,
10
+ children: Array<TabType>,
11
+ }
12
+
13
+ import styles from './tabList.scss'
14
+
15
+ export default class TabList extends Component<Props> {
16
+ props: Props
17
+
18
+ render() {
19
+ const {
20
+ className,
21
+ children,
22
+ } = this.props
23
+
24
+ const css = [
25
+ className,
26
+ styles[`tabList`],
27
+ ]
28
+
29
+ return (
30
+ <div className={classnames(css)}>
31
+ {children}
32
+ </div>
33
+ )
34
+ }
35
+ }
@@ -0,0 +1,5 @@
1
+ @import "base-variables/_colors.scss";
2
+
3
+ .tabList {
4
+ border-bottom: 1px solid $gray-2;
5
+ }
@@ -0,0 +1,5 @@
1
+ // @flow
2
+ /* This file is automatically generated by css-modules-flow-types */
3
+ declare module.exports: {|
4
+ +'tabList': string;
5
+ |};
@@ -0,0 +1,53 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import classnames from 'classnames'
5
+
6
+ import styles from './styles.scss'
7
+
8
+
9
+ type Props = {
10
+ children?: Array<React.Node>,
11
+ color: "sky-lighter" | "sky-light" | "sky" | "sky-dark" | "ink-lightest" | "ink-lighter" | "ink-light"| "ink" | "ink-dark",
12
+ size: "base" | "large" | "larger" | "largest" | "small" | "smaller" | "smallest",
13
+ bold: boolean,
14
+ italic: boolean,
15
+ className: string,
16
+ }
17
+
18
+ export default class Text extends React.Component<Props> {
19
+ static defaultProps = {
20
+ children: <span/>,
21
+ size: "base",
22
+ color: "ink",
23
+ bold: false,
24
+ italic: false,
25
+ className: "",
26
+ }
27
+ props: Props
28
+ render() {
29
+ const {
30
+ children,
31
+ className,
32
+ bold,
33
+ italic,
34
+ size,
35
+ color,
36
+ } = this.props
37
+ const css = [
38
+ className,
39
+ styles.badge,
40
+ styles[`text-${color}`],
41
+ styles[`text-${size}`],
42
+ bold ? styles["font-weight-bold"] : null,
43
+ italic ? styles["font-italic"] : null,
44
+ ]
45
+ return (
46
+ <span
47
+ className={classnames(css)}
48
+ >
49
+ {children}
50
+ </span>
51
+ )
52
+ }
53
+ }
@@ -0,0 +1,3 @@
1
+ @import "base-mixins/_all.scss";
2
+ @import "base-variables/_all.scss";
3
+ @import "text.scss";
@@ -0,0 +1,123 @@
1
+ // @flow
2
+ /* This file is automatically generated by css-modules-flow-types */
3
+ declare module.exports: {|
4
+ +'font-italic': string;
5
+ +'font-weight-bold': string;
6
+ +'font-weight-normal': string;
7
+ +'hidden-xxs': string;
8
+ +'text-black': string;
9
+ +'text-black-opacity-1': string;
10
+ +'text-black-opacity-2': string;
11
+ +'text-black-opacity-3': string;
12
+ +'text-black-opacity-4': string;
13
+ +'text-black-opacity-5': string;
14
+ +'text-black-opacity-6': string;
15
+ +'text-black-opacity-7': string;
16
+ +'text-black-opacity-8': string;
17
+ +'text-black-opacity-9': string;
18
+ +'text-danger': string;
19
+ +'text-gray-1': string;
20
+ +'text-gray-2': string;
21
+ +'text-gray-3': string;
22
+ +'text-gray-4': string;
23
+ +'text-gray-5': string;
24
+ +'text-gray-6': string;
25
+ +'text-gray-7': string;
26
+ +'text-gray-8': string;
27
+ +'text-gray-9': string;
28
+ +'text-gray-dark': string;
29
+ +'text-info': string;
30
+ +'text-ink': string;
31
+ +'text-ink-dark': string;
32
+ +'text-ink-light': string;
33
+ +'text-ink-lighter': string;
34
+ +'text-ink-lightest': string;
35
+ +'text-jumbo': string;
36
+ +'text-large': string;
37
+ +'text-larger': string;
38
+ +'text-largest': string;
39
+ +'text-muted': string;
40
+ +'text-normal': string;
41
+ +'text-p-blue-opacity-1': string;
42
+ +'text-p-blue-opacity-2': string;
43
+ +'text-p-blue-opacity-3': string;
44
+ +'text-p-blue-opacity-4': string;
45
+ +'text-p-blue-opacity-5': string;
46
+ +'text-p-blue-opacity-6': string;
47
+ +'text-p-blue-opacity-7': string;
48
+ +'text-p-blue-opacity-8': string;
49
+ +'text-p-blue-opacity-9': string;
50
+ +'text-p-gold-opacity-1': string;
51
+ +'text-p-gold-opacity-2': string;
52
+ +'text-p-gold-opacity-3': string;
53
+ +'text-p-gold-opacity-4': string;
54
+ +'text-p-gold-opacity-5': string;
55
+ +'text-p-gold-opacity-6': string;
56
+ +'text-p-gold-opacity-7': string;
57
+ +'text-p-gold-opacity-8': string;
58
+ +'text-p-gold-opacity-9': string;
59
+ +'text-p-green-opacity-1': string;
60
+ +'text-p-green-opacity-2': string;
61
+ +'text-p-green-opacity-3': string;
62
+ +'text-p-green-opacity-4': string;
63
+ +'text-p-green-opacity-5': string;
64
+ +'text-p-green-opacity-6': string;
65
+ +'text-p-green-opacity-7': string;
66
+ +'text-p-green-opacity-8': string;
67
+ +'text-p-green-opacity-9': string;
68
+ +'text-p-navy-opacity-1': string;
69
+ +'text-p-navy-opacity-2': string;
70
+ +'text-p-navy-opacity-3': string;
71
+ +'text-p-navy-opacity-4': string;
72
+ +'text-p-navy-opacity-5': string;
73
+ +'text-p-navy-opacity-6': string;
74
+ +'text-p-navy-opacity-7': string;
75
+ +'text-p-navy-opacity-8': string;
76
+ +'text-p-navy-opacity-9': string;
77
+ +'text-p-red-opacity-1': string;
78
+ +'text-p-red-opacity-2': string;
79
+ +'text-p-red-opacity-3': string;
80
+ +'text-p-red-opacity-4': string;
81
+ +'text-p-red-opacity-5': string;
82
+ +'text-p-red-opacity-6': string;
83
+ +'text-p-red-opacity-7': string;
84
+ +'text-p-red-opacity-8': string;
85
+ +'text-p-red-opacity-9': string;
86
+ +'text-p-royal-opacity-1': string;
87
+ +'text-p-royal-opacity-2': string;
88
+ +'text-p-royal-opacity-3': string;
89
+ +'text-p-royal-opacity-4': string;
90
+ +'text-p-royal-opacity-5': string;
91
+ +'text-p-royal-opacity-6': string;
92
+ +'text-p-royal-opacity-7': string;
93
+ +'text-p-royal-opacity-8': string;
94
+ +'text-p-royal-opacity-9': string;
95
+ +'text-power-blue': string;
96
+ +'text-power-gold': string;
97
+ +'text-power-green': string;
98
+ +'text-power-navy': string;
99
+ +'text-power-navy-darker': string;
100
+ +'text-power-red': string;
101
+ +'text-power-royal': string;
102
+ +'text-primary': string;
103
+ +'text-sky': string;
104
+ +'text-sky-dark': string;
105
+ +'text-sky-light': string;
106
+ +'text-sky-lighter': string;
107
+ +'text-small': string;
108
+ +'text-smaller': string;
109
+ +'text-smallest': string;
110
+ +'text-success': string;
111
+ +'text-warning': string;
112
+ +'text-white': string;
113
+ +'text-white-opacity-1': string;
114
+ +'text-white-opacity-2': string;
115
+ +'text-white-opacity-3': string;
116
+ +'text-white-opacity-4': string;
117
+ +'text-white-opacity-5': string;
118
+ +'text-white-opacity-6': string;
119
+ +'text-white-opacity-7': string;
120
+ +'text-white-opacity-8': string;
121
+ +'text-white-opacity-9': string;
122
+ +'visible-xxs': string;
123
+ |};
@@ -0,0 +1,35 @@
1
+ @mixin text-color-classes($colors-list) {
2
+ @each $name, $color in $colors-list {
3
+ @include text-emphasis-variant(".text-#{$name}", $color);
4
+ }
5
+ }
6
+
7
+ @include text-color-classes($power-colors);
8
+ @include text-color-classes($gray-colors);
9
+ @include text-color-classes($opacity-colors);
10
+ @include text-color-classes($interface-colors);
11
+
12
+ // TEXT COLOR IN COLORS
13
+ @include text-emphasis-variant('.text-muted', $gray-6);
14
+ @include text-emphasis-variant('.text-primary', $brand-primary);
15
+ @include text-emphasis-variant('.text-success', $brand-success);
16
+ @include text-emphasis-variant('.text-info', $brand-info);
17
+ @include text-emphasis-variant('.text-warning', $power-gold);
18
+ @include text-emphasis-variant('.text-danger', $brand-danger);
19
+ @include text-emphasis-variant('.text-gray-dark', $gray-8);
20
+
21
+
22
+ // Text Size
23
+ .text-jumbo { font-size: $font-jumbo }
24
+ .text-largest { font-size: $font-largest }
25
+ .text-larger { font-size: $font-larger }
26
+ .text-large { font-size: $font-large }
27
+ .text-normal {font-size: $font-base }
28
+ .text-small { font-size: $font-small }
29
+ .text-smaller { font-size: $font-smaller }
30
+ .text-smallest { font-size: $font-smallest }
31
+
32
+ // text decoration
33
+ .font-weight-normal { font-weight: $regular; }
34
+ .font-weight-bold { font-weight: $bold; }
35
+ .font-italic { font-style: italic; }
@@ -0,0 +1,95 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import ControlLabel from 'react-bootstrap/lib/ControlLabel'
5
+ import FormGroup from 'react-bootstrap/lib/FormGroup'
6
+ import FormControl from 'react-bootstrap/lib/FormControl'
7
+
8
+ const isRequired = (boolean) => {
9
+ if (boolean) {
10
+ return "*"
11
+ }
12
+ }
13
+
14
+ /**
15
+ * TextInput renders a bootstrapped text input field.
16
+ *
17
+ * @param {string} className the CSS class name(s) for the outermost returned div.
18
+ * @param {string} controlId the CSS id name for the <input> tag.
19
+ * @param {string} label the text to use as a label.
20
+ * @param {string} name the text to use as a name.
21
+ * @param {func} onChange the function to be called when the React onChange event is triggered.
22
+ * @param {string} placeholder the text to use as a placeholder.
23
+ * @param {string} value the text to use as a value.
24
+ * @param {string} type the type of input (i.e. 'text', 'number'). Defaults to 'text'.
25
+ * @param {string} validationState react-bootstrap validation state of the input, either 'success', 'warning' or 'error'.
26
+ * @param {boolean} requiredField indicates of the input is a required field.
27
+ * @returns {ReactElement} JSX.
28
+ */
29
+
30
+ type Props = {
31
+ className: string,
32
+ controlId: string,
33
+ inputClassName: string,
34
+ inputStyle: object,
35
+ label: string,
36
+ labelClassName: string,
37
+ name: string,
38
+ onChange: () => mixed,
39
+ placeholder: string,
40
+ requiredField: boolean,
41
+ type: string,
42
+ validationState: string,
43
+ value: string,
44
+ }
45
+
46
+ export default class TextInput extends React.Component<Props> {
47
+ static defaultProps = {
48
+ className: "",
49
+ inputClassName: "",
50
+ inputStyle: {},
51
+ labelClassName: "",
52
+ type: "text",
53
+ validationState: null,
54
+ }
55
+ props: Props
56
+ render() {
57
+ const {
58
+ label,
59
+ placeholder,
60
+ className,
61
+ labelClassName,
62
+ inputClassName,
63
+ inputStyle,
64
+ controlId,
65
+ value,
66
+ onChange,
67
+ name,
68
+ requiredField,
69
+ type,
70
+ validationState,
71
+ } = this.props
72
+
73
+ return (
74
+ <FormGroup
75
+ className={className}
76
+ controlId={controlId}
77
+ validationState={validationState}
78
+ >
79
+ <ControlLabel className={labelClassName}>
80
+ {label} <span>{isRequired(requiredField)}</span>
81
+ </ControlLabel>
82
+ {' '}
83
+ <FormControl
84
+ className={inputClassName}
85
+ defaultValue={value}
86
+ name={name}
87
+ onChange={onChange}
88
+ placeholder={placeholder}
89
+ style={inputStyle}
90
+ type={type}
91
+ />
92
+ </FormGroup>
93
+ )
94
+ }
95
+ }
@@ -0,0 +1,96 @@
1
+ // $input-border = $form-border-color
2
+ // $form-border-color;
3
+
4
+
5
+ // Form control focus state
6
+ @mixin form-control-focus($color: $input-border-focus) {
7
+ $color-rgba: rgba(red($color), green($color), blue($color), .6);
8
+ &:focus {
9
+ outline: 0;
10
+ border-color: $power-navy;
11
+ box-shadow: inset 0 0 0 0.1rem $power-navy, inset 0 0.1rem 0.2rem 0 rgba($power-navy, $opacity-2);
12
+ }
13
+ }
14
+
15
+ @mixin style-placeholder {
16
+ &::-webkit-input-placeholder { @content; }
17
+ &:-moz-placeholder { @content; }
18
+ &::-moz-placeholder { @content; }
19
+ &:-ms-input-placeholder { @content; }
20
+ }
21
+
22
+
23
+
24
+
25
+ // select
26
+ // textarea
27
+ // input[type="text"]
28
+ // input[type="password"]
29
+ // input[type="datetime"]
30
+ // input[type="datetime-local"]
31
+ // input[type="date"]
32
+ // input[type="month"]
33
+ // input[type="time"]
34
+ // input[type="week"]
35
+ // input[type="number"]
36
+ // input[type="email"]
37
+ // input[type="url"]
38
+ // input[type="search"]
39
+ // input[type="tel"]
40
+ // input[type="color"]
41
+
42
+ .form-control {
43
+ display: block;
44
+ width: 100%;
45
+ height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
46
+ padding: $padding-base-vertical ($padding-base-horizontal/1.5);
47
+ font-size: $font-small;
48
+ font-weight: $bold;
49
+ line-height: $line-height-base;
50
+ color: $gray-9;
51
+ background-color: $input-bg;
52
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
53
+ border: 1px solid $form-border-color;
54
+ border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
55
+ box-shadow: none;
56
+ transition-property: border-color, box-shadow, color, background-color;
57
+ transition-duration: .24s;
58
+ transition-timing-function: $bezier;
59
+ -webkit-appearance: none;
60
+ -moz-appearance: none;
61
+ appearance: none;
62
+
63
+ @include form-control-focus;
64
+
65
+ @include style-placeholder {
66
+ color: $gray-5;
67
+ font-style: italic;
68
+ font-weight: $regular;
69
+ @include smooth-font;
70
+ }
71
+ &[disabled],
72
+ fieldset[disabled] & {
73
+ background-color: $input-bg-disabled;
74
+ color: $sky-dark;
75
+ opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
76
+ }
77
+
78
+ &[disabled],
79
+ fieldset[disabled] & {
80
+ cursor: $cursor-disabled;
81
+ }
82
+ &.clear {
83
+
84
+
85
+ // height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
86
+ padding: $padding-base-vertical ($padding-base-horizontal/1.5);
87
+ // font-size: $font-small;
88
+ // font-weight: $bold;
89
+ // line-height: $line-height-base;
90
+ // color: $gray-9;
91
+ background-color: transparent;
92
+ background-image: none;
93
+ border: 0;
94
+
95
+ }
96
+ }