@mcf/lib-ui 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +3 -0
- package/.gitmodules +3 -0
- package/.prettierrc.yaml +10 -0
- package/README.md +143 -0
- package/dist/@types/Component/BaseButton/BaseButton.d.ts +16 -0
- package/dist/@types/Component/BaseButton/index.d.ts +1 -0
- package/dist/@types/Component/CheckBox/CheckBox.d.ts +11 -0
- package/dist/@types/Component/CheckBox/index.d.ts +1 -0
- package/dist/@types/Component/ConfirmationBox/ConfirmationBox.d.ts +18 -0
- package/dist/@types/Component/ConfirmationBox/index.d.ts +1 -0
- package/dist/@types/Component/Dropdown/Dropdown.d.ts +69 -0
- package/dist/@types/Component/Dropdown/index.d.ts +1 -0
- package/dist/@types/Component/RadioButtonGroup/RadioButtonGroup.d.ts +29 -0
- package/dist/@types/Component/RadioButtonGroup/index.d.ts +1 -0
- package/dist/@types/Component/ReactFileReader/ReactFileReader.d.ts +31 -0
- package/dist/@types/Component/ReactFileReader/index.d.ts +1 -0
- package/dist/@types/Component/StickyHeader/StickyHeader.d.ts +33 -0
- package/dist/@types/Component/StickyHeader/index.d.ts +1 -0
- package/dist/@types/Component/TextArea/TextArea.d.ts +20 -0
- package/dist/@types/Component/TextArea/index.d.ts +1 -0
- package/dist/@types/Component/TextInput/TextInput.d.ts +24 -0
- package/dist/@types/Component/TextInput/index.d.ts +1 -0
- package/dist/@types/Component/Toggle/Toggle.d.ts +6 -0
- package/dist/@types/Component/Toggle/index.d.ts +1 -0
- package/dist/@types/Component/TypeAhead/TypeAhead.d.ts +44 -0
- package/dist/@types/Component/TypeAhead/index.d.ts +1 -0
- package/dist/@types/Component/index.d.ts +11 -0
- package/dist/@types/Example/ReactFileReader/ReactFileReader.story.d.ts +1 -0
- package/dist/@types/Example/ReactFileReader/index.d.ts +14 -0
- package/dist/@types/storyguide/Buttons/BaseButton.d.ts +17 -0
- package/dist/@types/storyguide/JobCard/Bookmark/BookmarkButton.d.ts +6 -0
- package/dist/@types/storyguide/JobCard/CompanyInfo.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/JobBenefit.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/JobCard.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/JobInfo.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/JobLastPostedDate.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/JobPostStatus.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/JobSkillInfo.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/JobSponsor.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/JobTitle.d.ts +2 -0
- package/dist/@types/storyguide/JobCard/SalaryInfo.d.ts +2 -0
- package/dist/@types/storyguide/Skills/Score.d.ts +6 -0
- package/dist/@types/storyguide/Skills/Scorebar.d.ts +6 -0
- package/dist/@types/storyguide/Skills/SkillPill.d.ts +7 -0
- package/dist/@types/storyguide/Text/Font.d.ts +12 -0
- package/dist/@types/storyguide/Text/TextSize.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/main.css +44 -0
- package/jest.config.js +182 -0
- package/package.json +114 -0
- package/postcss.config.js +11 -0
- package/renovate.json +1 -0
- package/scripts/deploy/to-mcfui.gds-gov.tech.sh +44 -0
- package/scripts/set-npm-version.js +41 -0
- package/serve-static.js +9 -0
- package/sonar-project.properties +16 -0
- package/test/helpers/enzyme.ts +4 -0
- package/test/helpers/index.ts +1 -0
- package/tsconfig.jest.json +6 -0
- package/tsconfig.json +23 -0
- package/tslint.json +17 -0
package/.browserslistrc
ADDED
package/.gitmodules
ADDED
package/.prettierrc.yaml
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# MCF UI Components
|
|
2
|
+
User Interface (UI) components for use in the MCF project.
|
|
3
|
+
|
|
4
|
+
> **WIP**: we're working on open-sourcing this!
|
|
5
|
+
|
|
6
|
+
## Usage
|
|
7
|
+
Install this package through NPM:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# for NPM
|
|
11
|
+
npm i https://gitlab.com/mycf.sg/lib-ui.git#2.0.114 tachyons
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Call it from your code with:
|
|
15
|
+
|
|
16
|
+
```javascript
|
|
17
|
+
import {...} from '@govtech/mcf-mcfui';
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Where `...` is the component name.
|
|
21
|
+
|
|
22
|
+
You also need to load or import tachyons *once* somewhere in your project.
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
import 'tachyons/src/tachyons.css';
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
You eventually need to import the default style provided *once* somewhere in your project
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
import '@govtechsg/mcf-mcfui/dist/main.css';
|
|
32
|
+
```
|
|
33
|
+
This step is optional. You can provide your own style using CSS variables. Using CSS variables make it easy to configure yourself the style of your components at the application level or at a component level.
|
|
34
|
+
|
|
35
|
+
List of CSS variables overridable (default only if you use the provided style):
|
|
36
|
+
- colors:
|
|
37
|
+
- `--primary`: default to `var(--purple)`
|
|
38
|
+
- `--light-primary`: default to `#e3d7f4`
|
|
39
|
+
- `--gray`: default to `gray`
|
|
40
|
+
- `--white`: default to `white`
|
|
41
|
+
- `--dark-primary`: default to `#552895`
|
|
42
|
+
- `--secondary`: default to `#D6008F`
|
|
43
|
+
- `--dark-secondary`: default to `#c10081`
|
|
44
|
+
- `--danger`: default to `#EF4456`
|
|
45
|
+
- `--dark-danger`: default to `#eb142a`;
|
|
46
|
+
- borders:
|
|
47
|
+
- `--borderstyle`: default to `1px solid var(--black-20)`
|
|
48
|
+
- sizes:
|
|
49
|
+
- `--font-size-1`: default to `3rem`
|
|
50
|
+
- `--font-size-2`: default to `2.25rem`
|
|
51
|
+
- `--font-size-3`: default to `1.5rem`
|
|
52
|
+
- `--font-size-4`: default to `1.25rem`
|
|
53
|
+
- `--font-size-5`: default to `1rem`
|
|
54
|
+
- `--font-size-6`: default to `.875rem`
|
|
55
|
+
- `--font-size-2-5`: default to `calc(((var(--font-size-2) + var(--font-size-3)) / 2))`
|
|
56
|
+
- `--font-size-3-5`: default to `calc(((var(--font-size-4) + var(--font-size-4)) / 2))`
|
|
57
|
+
- `--font-size-4-5`: default to `calc(((var(--font-size-4) + var(--font-size-5)) / 2))`
|
|
58
|
+
- `--font-size-5-5`: default to `calc(((var(--font-size-5) + var(--font-size-6)) / 2))`
|
|
59
|
+
- `--iconsize`: default to `40px`
|
|
60
|
+
- `--icongap`: default to `0px`
|
|
61
|
+
- `--radio-button-outer-circle`: default to `16px`
|
|
62
|
+
- `--radio-button-inner-circle`: default to `8px`
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
## Components
|
|
66
|
+
|
|
67
|
+
- [Dropdown](./src/Component/Dropdown/README.md)
|
|
68
|
+
- [Toggle](./src/Component/Toggle/README.md)
|
|
69
|
+
- [RadioButtonGroup](./src/Component/RadioButtonGroup/README.md)
|
|
70
|
+
|
|
71
|
+
## Quick Links
|
|
72
|
+
NPM: https://www.npmjs.com/package/@govtechsg/mcf-mcfui
|
|
73
|
+
Base Images: https://hub.docker.com/r/govtechsg/mcf-mcfui-base/
|
|
74
|
+
Dependency Images: https://hub.docker.com/r/govtechsg/mcf-mcfui-dependencies/
|
|
75
|
+
Application Images: https://hub.docker.com/r/govtechsg/mcf-mcfui/
|
|
76
|
+
Demo: https://mcfui.gds-gov.tech
|
|
77
|
+
|
|
78
|
+
## Contributing
|
|
79
|
+
|
|
80
|
+
### Get Started
|
|
81
|
+
Clone this repository and run the following to get started:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
yarn install
|
|
85
|
+
yarn start # runs a storybook server at http://localhost:9001
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Development
|
|
89
|
+
Component code is stored in `./src`. See the `./src/Example/Text` for an example.
|
|
90
|
+
|
|
91
|
+
Make sure to build before submitting a merge request:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
yarn build
|
|
95
|
+
|
|
96
|
+
# or
|
|
97
|
+
yarn build-watch
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Use `yarn link` to test drive your changes in lib-ui with another project. Run `yarn link` in this repo and follow the instructions. Likewise, run `yarn unlink` in this repo and follow the instructions to unlink.
|
|
101
|
+
|
|
102
|
+
### Testing
|
|
103
|
+
To run tests:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
yarn test
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
To run tests in development with file watching:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
yarn test-watch
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
To run lints:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
yarn lint
|
|
119
|
+
yarn lint-fix
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Documentation
|
|
123
|
+
1. Add the component to the [Catalog](#catalog) section above linking to `[2]`.
|
|
124
|
+
2. Add a `README.md` in the component directory which describes the component behaviour and it's available props.
|
|
125
|
+
|
|
126
|
+
### Pipeline
|
|
127
|
+
The Pipeline runs only in the `master` branch.
|
|
128
|
+
|
|
129
|
+
The following release tags are available for use in your commit message to denote a type of release:
|
|
130
|
+
|
|
131
|
+
- `[rebuild]`: rebuilds all containers regardless of whether we already have them
|
|
132
|
+
- `[release]`: performs a release by bumping the version in `./package.json` to the same as that of the latest Git tag
|
|
133
|
+
- `[major]`: performs a major version bump (X.y.z -> Y.0.0, Y = X + 1)
|
|
134
|
+
- `[minor]`: performs a major version bump (x.Y.z -> x.Z.0, Z = Y + 1)
|
|
135
|
+
|
|
136
|
+
By default, every push to `master` will result in a patch version bump.
|
|
137
|
+
|
|
138
|
+
When both a `"[release]"` and a `"[major]"` or `"[minor]"` is present in the commit message, the version is bumped first before the release happens, so the `package.json` will contain the version **AFTER** the
|
|
139
|
+
|
|
140
|
+
### Merge Request
|
|
141
|
+
On passing of the pipeline, submit a Merge/Pull Request to the `master` branch and wait for the code to be reviewed and merged in.
|
|
142
|
+
|
|
143
|
+
# 🍻
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare enum TYPE {
|
|
3
|
+
ACTION = "action",
|
|
4
|
+
DANGER = "danger",
|
|
5
|
+
DEFAULT = "default",
|
|
6
|
+
SUCCESS = "success"
|
|
7
|
+
}
|
|
8
|
+
export interface IBaseButtonProps {
|
|
9
|
+
children: any;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
isFullWidth?: boolean;
|
|
12
|
+
onClick?: () => void;
|
|
13
|
+
type?: TYPE;
|
|
14
|
+
id?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const BaseButton: React.SFC<IBaseButtonProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './BaseButton';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ICheckBoxProps {
|
|
3
|
+
id: string;
|
|
4
|
+
input: {
|
|
5
|
+
value?: boolean;
|
|
6
|
+
onChange: (isChecked: boolean) => void;
|
|
7
|
+
};
|
|
8
|
+
label: React.ReactElement<{}> | string;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const CheckBox: React.SFC<ICheckBoxProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CheckBox';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React, { Component } from 'react';
|
|
2
|
+
import { TYPE } from '~/Component/BaseButton/BaseButton';
|
|
3
|
+
export interface IConfirmationBoxProps {
|
|
4
|
+
text: string;
|
|
5
|
+
buttonType?: TYPE;
|
|
6
|
+
buttonText: string;
|
|
7
|
+
cancelText: string;
|
|
8
|
+
handleSubmit: () => void;
|
|
9
|
+
handleReset: () => void;
|
|
10
|
+
container?: HTMLElement;
|
|
11
|
+
}
|
|
12
|
+
export declare class ConfirmationBox extends Component<IConfirmationBoxProps, {}> {
|
|
13
|
+
private el;
|
|
14
|
+
constructor(props: IConfirmationBoxProps);
|
|
15
|
+
componentDidMount(): void;
|
|
16
|
+
componentWillUnmount(): void;
|
|
17
|
+
render(): React.ReactPortal;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ConfirmationBox';
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import 'react-select-plus/dist/react-select-plus.css';
|
|
3
|
+
export interface IDropdownProps {
|
|
4
|
+
id?: string;
|
|
5
|
+
data: any[];
|
|
6
|
+
label?: string;
|
|
7
|
+
subtitle?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
labelKey?: string;
|
|
10
|
+
loadData?: () => void;
|
|
11
|
+
name?: string;
|
|
12
|
+
onChange?: (values: any) => void;
|
|
13
|
+
onInputChange?: (value: string) => void;
|
|
14
|
+
onEnterKeyDown?: () => void;
|
|
15
|
+
options?: {
|
|
16
|
+
async?: boolean;
|
|
17
|
+
maxLength?: number;
|
|
18
|
+
multi?: boolean;
|
|
19
|
+
};
|
|
20
|
+
input?: {
|
|
21
|
+
value?: string;
|
|
22
|
+
onChange?: (value: any) => void;
|
|
23
|
+
onBlur?: () => void;
|
|
24
|
+
};
|
|
25
|
+
meta?: {
|
|
26
|
+
error?: string;
|
|
27
|
+
touched?: boolean;
|
|
28
|
+
};
|
|
29
|
+
searchable?: boolean;
|
|
30
|
+
noResultsText?: string;
|
|
31
|
+
value?: any;
|
|
32
|
+
valueKey?: string;
|
|
33
|
+
placeholder?: string;
|
|
34
|
+
clearable?: boolean;
|
|
35
|
+
onFocus?: () => void;
|
|
36
|
+
onBlur?: () => void;
|
|
37
|
+
}
|
|
38
|
+
export interface IDropdownState {
|
|
39
|
+
value: string | string[] | null;
|
|
40
|
+
}
|
|
41
|
+
export declare class Dropdown extends React.Component<IDropdownProps, IDropdownState> {
|
|
42
|
+
static defaultProps: {
|
|
43
|
+
labelKey: string;
|
|
44
|
+
meta: {};
|
|
45
|
+
options: {
|
|
46
|
+
async: boolean;
|
|
47
|
+
maxLength: number;
|
|
48
|
+
multi: boolean;
|
|
49
|
+
};
|
|
50
|
+
valueKey: string;
|
|
51
|
+
};
|
|
52
|
+
static getDerivedStateFromProps(nextProps: IDropdownProps): {
|
|
53
|
+
value: string | null;
|
|
54
|
+
};
|
|
55
|
+
private static computeValue;
|
|
56
|
+
selectRef: any;
|
|
57
|
+
constructor(props: IDropdownProps);
|
|
58
|
+
render(): JSX.Element | null;
|
|
59
|
+
onInputChange(inputValue: string): void;
|
|
60
|
+
onInputKeyDown(e: {
|
|
61
|
+
keyCode: number;
|
|
62
|
+
preventDefault: () => void;
|
|
63
|
+
}): void;
|
|
64
|
+
onChange(selectedItem: {
|
|
65
|
+
[s: string]: string;
|
|
66
|
+
}): void;
|
|
67
|
+
onChangeMulti(selectedItems: string[]): void;
|
|
68
|
+
loadOptions(input: string, callback: (a: any, b: any) => void): void;
|
|
69
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Dropdown';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React, { ChangeEvent } from 'react';
|
|
2
|
+
export interface IRadioButtonGroupProps {
|
|
3
|
+
children: (a: any, inputProps: IInput, c?: any, d?: any) => JSX.Element;
|
|
4
|
+
data: Array<{
|
|
5
|
+
item: any;
|
|
6
|
+
value: string | number;
|
|
7
|
+
label: string;
|
|
8
|
+
}>;
|
|
9
|
+
initialValue?: string;
|
|
10
|
+
name: string;
|
|
11
|
+
onValueSelected?: (value: string | number) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface IRadioButtonGroupState {
|
|
14
|
+
selectedValue: string | number;
|
|
15
|
+
}
|
|
16
|
+
export interface IInput {
|
|
17
|
+
id?: string;
|
|
18
|
+
isChecked: boolean;
|
|
19
|
+
label: any;
|
|
20
|
+
name?: string;
|
|
21
|
+
onChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
22
|
+
value: string | number;
|
|
23
|
+
}
|
|
24
|
+
export declare class RadioButtonGroup extends React.Component<IRadioButtonGroupProps, IRadioButtonGroupState> {
|
|
25
|
+
static defaultProps: Partial<IRadioButtonGroupProps>;
|
|
26
|
+
constructor(props: IRadioButtonGroupProps);
|
|
27
|
+
render(): JSX.Element[];
|
|
28
|
+
private handleOnValueSelected;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './RadioButtonGroup';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface IReactFileReaderProps {
|
|
3
|
+
children?: React.ReactNode;
|
|
4
|
+
elementId?: string;
|
|
5
|
+
fileTypes?: string | string[];
|
|
6
|
+
handleFiles: (result: IReactFileReaderResult) => void;
|
|
7
|
+
hasMultipleFiles?: boolean;
|
|
8
|
+
isBase64?: boolean;
|
|
9
|
+
isDisabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface IReactFileReaderDefaultProps {
|
|
12
|
+
fileTypes: string | string[];
|
|
13
|
+
hasMultipleFiles: boolean;
|
|
14
|
+
isBase64: boolean;
|
|
15
|
+
isDisabled: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare type FileReaderResult = string | ArrayBuffer | null;
|
|
18
|
+
export interface IReactFileReaderResult {
|
|
19
|
+
base64: FileReaderResult[] | null;
|
|
20
|
+
fileList: FileList | null;
|
|
21
|
+
}
|
|
22
|
+
export declare class ReactFileReader extends React.Component<IReactFileReaderProps> {
|
|
23
|
+
static defaultProps: IReactFileReaderDefaultProps;
|
|
24
|
+
private fileInput;
|
|
25
|
+
render(): JSX.Element;
|
|
26
|
+
private setFileInput;
|
|
27
|
+
private clickInput;
|
|
28
|
+
private onChangeHandler;
|
|
29
|
+
private convertFilesToBase64;
|
|
30
|
+
private getBase64;
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ReactFileReader';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import 'scrolling-element';
|
|
3
|
+
export declare const MINIMUN_SCROLL_HEIGHT_THRESHOLD = 1.5;
|
|
4
|
+
export declare const FLOATABLE_THRESHOLD = 2;
|
|
5
|
+
export declare const CLEAR_FLOATABLE_THRESHOLD = 3;
|
|
6
|
+
export declare enum DISPLAY_STATES {
|
|
7
|
+
STATIC = "STATIC",
|
|
8
|
+
STICKY = "STICKY"
|
|
9
|
+
}
|
|
10
|
+
export interface IBrowserScrollState {
|
|
11
|
+
scrollTop: number;
|
|
12
|
+
scrollHeight: number;
|
|
13
|
+
screenHeight: number;
|
|
14
|
+
computedHeight: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const TRANSITIONS: {
|
|
17
|
+
[K in DISPLAY_STATES]: (_: IBrowserScrollState) => DISPLAY_STATES;
|
|
18
|
+
};
|
|
19
|
+
export interface IStickyHeaderProps {
|
|
20
|
+
children: any;
|
|
21
|
+
}
|
|
22
|
+
export interface IStickyHeaderState {
|
|
23
|
+
display: DISPLAY_STATES;
|
|
24
|
+
}
|
|
25
|
+
export declare class StickyHeader extends React.Component<IStickyHeaderProps, IStickyHeaderState> {
|
|
26
|
+
private navigationMenuRef;
|
|
27
|
+
private throttledScrollHandler;
|
|
28
|
+
constructor(props: IStickyHeaderProps);
|
|
29
|
+
componentDidMount(): void;
|
|
30
|
+
componentWillUnmount(): void;
|
|
31
|
+
render(): JSX.Element;
|
|
32
|
+
private getHeight;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StickyHeader';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IBaseProps {
|
|
3
|
+
input: {
|
|
4
|
+
onChange: (value: string) => void;
|
|
5
|
+
value?: string;
|
|
6
|
+
};
|
|
7
|
+
label: string;
|
|
8
|
+
placeholder: string;
|
|
9
|
+
}
|
|
10
|
+
interface ITextAreaWithCounterProps extends IBaseProps {
|
|
11
|
+
hasCounter: boolean;
|
|
12
|
+
maxLength: number;
|
|
13
|
+
}
|
|
14
|
+
interface ITextAreaWithoutCounterProps extends IBaseProps {
|
|
15
|
+
hasCounter?: undefined;
|
|
16
|
+
maxLength?: undefined;
|
|
17
|
+
}
|
|
18
|
+
export declare type ITextAreaProps = ITextAreaWithCounterProps | ITextAreaWithoutCounterProps;
|
|
19
|
+
export declare const TextArea: React.SFC<ITextAreaProps>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TextArea';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ITextInputProps {
|
|
3
|
+
input?: {
|
|
4
|
+
onBlur: (event?: React.FocusEvent<HTMLInputElement>) => void;
|
|
5
|
+
onChange: (event: React.ChangeEvent<HTMLInputElement> | any) => void;
|
|
6
|
+
onFocus: (event?: React.FocusEvent<HTMLInputElement>) => void;
|
|
7
|
+
value: any;
|
|
8
|
+
};
|
|
9
|
+
meta?: {
|
|
10
|
+
error?: string;
|
|
11
|
+
touched?: boolean;
|
|
12
|
+
};
|
|
13
|
+
label?: string;
|
|
14
|
+
subtitle?: string;
|
|
15
|
+
placeholder: string;
|
|
16
|
+
type?: string;
|
|
17
|
+
maxLength?: number;
|
|
18
|
+
id: string;
|
|
19
|
+
containerClassName?: string;
|
|
20
|
+
readOnly?: boolean;
|
|
21
|
+
pattern?: string;
|
|
22
|
+
step?: number | string;
|
|
23
|
+
}
|
|
24
|
+
export declare const TextInput: React.SFC<ITextInputProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TextInput';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Toggle';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Component } from 'react';
|
|
2
|
+
export interface ITypeAheadProps {
|
|
3
|
+
autoComplete?: string;
|
|
4
|
+
data?: any[];
|
|
5
|
+
id?: string;
|
|
6
|
+
label: string;
|
|
7
|
+
resultsLength?: number;
|
|
8
|
+
placeholder: string;
|
|
9
|
+
targetKey: string;
|
|
10
|
+
valueKey: string;
|
|
11
|
+
input: {
|
|
12
|
+
className: string;
|
|
13
|
+
onChange: (event: {
|
|
14
|
+
newValue: string;
|
|
15
|
+
} | null | string) => void;
|
|
16
|
+
onBlur: () => void;
|
|
17
|
+
};
|
|
18
|
+
subtitle?: string;
|
|
19
|
+
meta?: {
|
|
20
|
+
error?: string;
|
|
21
|
+
touched?: boolean;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface ITypeAheadState {
|
|
25
|
+
value: string;
|
|
26
|
+
suggestions: any[];
|
|
27
|
+
}
|
|
28
|
+
export declare class TypeAhead extends Component<ITypeAheadProps, ITypeAheadState> {
|
|
29
|
+
static defaultProps: Partial<ITypeAheadProps>;
|
|
30
|
+
static propTypes: any;
|
|
31
|
+
private static getInitialValue;
|
|
32
|
+
constructor(props: ITypeAheadProps);
|
|
33
|
+
render(): JSX.Element;
|
|
34
|
+
private getSuggestions;
|
|
35
|
+
private renderSuggestion;
|
|
36
|
+
private getSuggestionValue;
|
|
37
|
+
private onChange;
|
|
38
|
+
private onBlur;
|
|
39
|
+
private onKeyDown;
|
|
40
|
+
private onSuggestionsFetchRequested;
|
|
41
|
+
private onSuggestionsClearRequested;
|
|
42
|
+
private onSuggestionSelected;
|
|
43
|
+
private renderInputComponent;
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TypeAhead';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './BaseButton';
|
|
2
|
+
export * from './CheckBox';
|
|
3
|
+
export * from './ConfirmationBox';
|
|
4
|
+
export * from './Dropdown';
|
|
5
|
+
export * from './RadioButtonGroup';
|
|
6
|
+
export * from './ReactFileReader';
|
|
7
|
+
export * from './StickyHeader';
|
|
8
|
+
export * from './TextArea';
|
|
9
|
+
export * from './TextInput';
|
|
10
|
+
export * from './Toggle';
|
|
11
|
+
export * from './TypeAhead';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IReactFileReaderResult } from '../../Component/index';
|
|
3
|
+
interface IExampleReactFileReaderState {
|
|
4
|
+
results: {
|
|
5
|
+
[key: string]: IReactFileReaderResult;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export declare class ExampleReactFileReader extends React.Component<{}, IExampleReactFileReaderState> {
|
|
9
|
+
state: Readonly<IExampleReactFileReaderState>;
|
|
10
|
+
render(): JSX.Element;
|
|
11
|
+
private renderReactFileReader;
|
|
12
|
+
private showFileResult;
|
|
13
|
+
}
|
|
14
|
+
export default ExampleReactFileReader;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare function BaseButton(props: {
|
|
3
|
+
className: any;
|
|
4
|
+
text: React.ReactNode;
|
|
5
|
+
}): JSX.Element;
|
|
6
|
+
export declare function IconButton(props: {
|
|
7
|
+
className: any;
|
|
8
|
+
text: React.ReactNode;
|
|
9
|
+
}): JSX.Element;
|
|
10
|
+
export declare function IconButtonwWord(props: {
|
|
11
|
+
className: any;
|
|
12
|
+
text: React.ReactNode;
|
|
13
|
+
}): JSX.Element;
|
|
14
|
+
export declare function FloatingActionButton(props: {
|
|
15
|
+
className: any;
|
|
16
|
+
text: React.ReactNode;
|
|
17
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export default function TextHeadLine(props: {
|
|
3
|
+
className: any;
|
|
4
|
+
}): JSX.Element;
|
|
5
|
+
export declare function FontFamily(props: {
|
|
6
|
+
text: React.ReactNode;
|
|
7
|
+
}): JSX.Element;
|
|
8
|
+
export declare function FontStyle(props: {
|
|
9
|
+
className: any;
|
|
10
|
+
code: React.ReactNode;
|
|
11
|
+
text: React.ReactNode;
|
|
12
|
+
}): JSX.Element;
|