diff --git a/assets/icons/index.tsx b/assets/icons/index.tsx
index 1b822c3..797cbc2 100644
--- a/assets/icons/index.tsx
+++ b/assets/icons/index.tsx
@@ -9,8 +9,8 @@ const LoadingSpinner: FC = () => (
xmlns="http://www.w3.org/2000/svg"
>
diff --git a/src/buttons/Button.tsx b/src/buttons/Button.tsx
index 321da6e..f251203 100644
--- a/src/buttons/Button.tsx
+++ b/src/buttons/Button.tsx
@@ -23,7 +23,7 @@ const ImageLoading = styled.div`
`
const Button: FC = ({
- className,
+ className='',
onClick,
children,
disabled,
diff --git a/src/index.tsx b/src/index.tsx
index 2e4be28..1218c4a 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -4,6 +4,7 @@ export { default as Option } from './inputs/dropdown/Dropdown'
export { default as DatePicker } from './inputs/datePicker/DatePicker'
export { default as TextArea } from './inputs/textArea/TextArea'
export { default as Typography } from './typography/Typography'
+export { default as Checkbox } from './inputs/checkbox/Checkbox'
export { default as HeadingOne } from './typography/HeadingOne'
export { default as HeadingTwo } from './typography/HeadingTwo'
export { default as HeadingThree } from './typography/HeadingThree'
@@ -13,3 +14,4 @@ export { default as HeadingSix } from './typography/HeadingSix'
export { default as BodyText } from './typography/BodyText'
export { default as Link } from './typography/Link'
export { default as Button } from './buttons/Button'
+export { default as Tag } from './labels/Tag'
diff --git a/src/inputs/checkbox/Checkbox.tsx b/src/inputs/checkbox/Checkbox.tsx
new file mode 100644
index 0000000..2be6958
--- /dev/null
+++ b/src/inputs/checkbox/Checkbox.tsx
@@ -0,0 +1,34 @@
+import React, { ChangeEventHandler, FC, InputHTMLAttributes } from 'react'
+import '../../index.css'
+
+export interface Props extends InputHTMLAttributes {
+ className?: string
+ onChange?: ChangeEventHandler,
+ children?: any
+ disabled?: boolean,
+ isChecked?: boolean
+}
+
+const Checkbox: FC = ({
+ className = '',
+ onChange,
+ children,
+ disabled = false,
+ isChecked = false
+}: Props) => {
+ return (
+
+ )
+}
+
+export default Checkbox;
\ No newline at end of file
diff --git a/src/inputs/checkbox/index.tsx b/src/inputs/checkbox/index.tsx
new file mode 100644
index 0000000..696cfda
--- /dev/null
+++ b/src/inputs/checkbox/index.tsx
@@ -0,0 +1,5 @@
+import Checkbox from './Checkbox'
+
+export { Checkbox }
+
+export default { Checkbox }
\ No newline at end of file
diff --git a/src/inputs/datePicker/DatePicker.tsx b/src/inputs/datePicker/DatePicker.tsx
index 62eb9b1..23bd6c3 100644
--- a/src/inputs/datePicker/DatePicker.tsx
+++ b/src/inputs/datePicker/DatePicker.tsx
@@ -14,7 +14,7 @@ export interface Props {
}
-const DatePicker: FC = ({ className, onChange, variant = "datePicker", format = "DD/MM/YYYY", value }: Props) => (
+const DatePicker: FC = ({ className='', onChange, variant = "datePicker", format = "DD/MM/YYYY", value }: Props) => (
= ({ className, children, onBlur, onChange, onFocus, onSearch }: Props) => (
+const Dropdown: FC = ({ className='', children, onBlur, onChange, onFocus, onSearch }: Props) => (
-
+
Number Input
-
+
(
export const Date_Picker = () => (
-
-
-
+
Date Picker
-
+
-
-
-
+
Range Picker
-
+
@@ -89,3 +99,38 @@ export const Text_Area = () =>
placeholder="Enter Text here.." />
+export const CheckBox = () =>
+
+ -
+
+ Unchecked
+
+
+ Placeholder
+
+
+ -
+
+ Checked
+
+
+ Placeholder
+
+
+ -
+
+ Disabled
+
+
+ Placeholder
+
+
+
+
+
+
diff --git a/stories/labels.stories.tsx b/stories/labels.stories.tsx
new file mode 100644
index 0000000..ca1377b
--- /dev/null
+++ b/stories/labels.stories.tsx
@@ -0,0 +1,46 @@
+import React from 'react'
+import { Tag } from '../src/labels'
+
+export default {
+ title: 'Labels/Label',
+ component: Tag
+}
+
+export const SuccessTag = () => (
+ Success!
+ )
+
+ export const WarningTag = () => (
+ Warning
+ )
+ export const DangerTag = () => (
+ Danger
+ )
+ export const ActiveTag = () => (
+ Active
+ )
+ export const InactiveTag = () => (
+ Inactive
+ )
+ export const UnknownTag = () => (
+ Unknown
+ )
+ const count: number = 9
+ export const CountTag = () => (
+ {count}
+ )
diff --git a/test/input.test.tsx b/test/input.test.tsx
index b2e6e3e..4027b60 100644
--- a/test/input.test.tsx
+++ b/test/input.test.tsx
@@ -1,7 +1,7 @@
import React from 'react'
import { render, fireEvent } from '@testing-library/react'
import '@testing-library/jest-dom/extend-expect'
-import { Input, Dropdown, DatePicker, TextArea } from '../src/index';
+import { Input, Dropdown, DatePicker, TextArea, Checkbox } from '../src/index';
import { Option } from '../src/inputs/dropdown'
function onChange(value: any) {
@@ -174,4 +174,27 @@ describe('Input Components', () => {
)
expect(queryByPlaceholderText(testPH))
})
+
+ it('[Checkbox] - Checks if it Returns the correct classname && tests for correct state', () => {
+ const testCheckboxClass = "form-checkbox h-4 w-4"
+ const { container, getByTestId, rerender } = render(
+
+
+ )
+ fireEvent.click(getByTestId("checkbox"));
+ expect(container.getElementsByClassName(testCheckboxClass))
+
+ //Test for the correct toggle state
+ const toggleState: boolean = true
+ const checkboxState = getByTestId("checkbox") as HTMLInputElement;
+ rerender(
+
+
+ )
+ fireEvent.change(checkboxState, { target: { value: toggleState } });
+ expect(checkboxState).toBeValid();
+ })
})
\ No newline at end of file