The up-to-date touch-up to Droplr's react UI Library.
| Name | Type | Description |
| :------ | :------ | :------ |
| theme
| string | Switches the theme for the components wrapped in the provider.
Options:
light
dark
Default: light
|
<DroplrUIProvider theme={'light'}>
<App />
</DroplrUIProvider>
▸ Button(props
): Element
Component
Desc
The button component
| Name | Type | Description |
| :------ | :------ | :------ |
| props
| ButtonProps | The component props, instance of ButtonProps
|
Element
▸ ButtonProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| label
| string
required | The label on the button |
| onClick
| Function
optional | The click handler function for the button |
| className
| string
optional | Appends custom class name |
| variant
| string
optional | Style variants of the button,
Options primary
secondary
success
info
warning
alternative
danger
transparent
Default: primary
|
| size
| string
optional | Size variants of the button
Options
small
medium
large
Default: medium
|
| disabled
| boolean
optional | Sets the button to the disabled state.
Default: false
|
| loading
| boolean
optional | Renders a spinner over the button
Default: false
|
| icon
| Icon
optional | Renders an icon before the label text |
<Button
label='Button'
onClick={clickHandler}
variant='secondary'
size='large' />
▸ Input(Component
): Element
Desc
Input component
| Name | Type | Description |
| :------ | :------ | :------ |
| Component
| InputProps | props |
Element
▸ InputProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| value
| string
optional | The default value of the input field |
| type
| string
optional | The input field type,
Options text
password
number
Default: text
|
| className
| string
optional | Appends custom class name |
| label
| string
optional | The label above the input field |
| sublabel
| string
optional | A smaller label under the {label} prop |
| disabled
| boolean
optional | Disables the component |
| placeholder
| string
optional | The placeholder text of the input field |
| info
| string
optional | Small informative text under the input field |
| error
| string
optional | Displays an error message under the input field |
| autoFocus
| boolean
optional | Autofocuses the input field |
| readOnly
| boolean
optional | Makes the component uneditable |
| passwordVisible
| boolean
optional | Initial visibility state for password fields. When type is "password", shows a toggle icon that switches between showing and hiding the password text |
| icon
|
optional | An optional icon shown on the right-hand side |
| onBlur
| function
optional | Event handler for the 'onBlur' event |
| onFocus
| function
optional | Event handler for the 'onFocus' event |
| onKeyPress
| function
optional | Event handler for the 'onKeyPress' event |
| onChange
| function
optional | Event handler for the 'onChange' event |
const onChange = (e) => {
// Gets the text from the input field
handleInput(e.target.value);
};
// Basic text input
<Input
value={'My Input Component'}
type={'text'}
autoFocus
info={'Please fill out the form'}
onChange={onChange}/>
// Password input with visibility toggle
<Input
type={'password'}
value={'mySecretPassword'}
label={'Password'}
passwordVisible={false} // Initially hidden
onChange={onChange}/>
▸ Dropdown(Component
): Element
Desc
Dropdown component
| Name | Type | Description |
| :------ | :------ | :------ |
| Component
| DropdownProps | props |
Element
▸ DropdownProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| items
| Array
required | The list of the dropdown items
Instances of DropdownItemProps
|
| selectedOption
| DropdownItem
required | The selected item from the provided items
array |
| label
| string
required | The label of the dropdown |
| parentElement
| Element
optional | Replaces the default input field with the provided element and attaches the dropdown onto it |
| className
| string
optional | Appends custom class name |
| disabled
| boolean
optional | Sets the dropdown input field to the disabled state. No effect if the parentElement is provided
Default: false
|
| loading
| boolean
optional | Renders a loading spinner over the dropdown input field. No effect if the parentElement is provided
|
| align
| left
right
optional | Aligns the item to the left or right side of the parent trigger |
| minWidth
| pixel-format string, ie. 12px
optional | Sets the minimum width for the input field
Default: auto|
| inputWidth
| pixel-format string, ie. 12px
optional | Sets the width for the input field
Default: auto|
| maxWidth
| pixel-format string, ie. 12px
optional | Sets the maximum width for the dropdown list
Default: auto|
| maxHeight
| pixel-format string, ie. 12px
optional | Sets the maximum height for the dropdown list
Default: 300px|
| matchListWidthToInput
| boolean
optional | Matches the dropdown list width to the width of the input field|
| textAlign
| start
center
end
optional | Positions the title text of the dropdown list items|
| offsetPosition
| number
optional | Offsets the vertical alignment of the dropdown list
Default: 0|
| offsetAlign
| number
optional | Offsets the horizontal alignment of the dropdown list
Default: 0|
| closeOnMouseOut
| boolean
optional | Closes the dropdown when the mouse leaves the list
Default: true|
| closeOnClickOutside
| boolean
optional | Closes the dropdown when the mouse clicks outside of list
Default: true|
| showItemStatus
| boolean
optional | Shows a checkmark icon next to selected items
Default: false
|
| showItemStatus
| boolean
optional | Shows a checkmark icon next to selected items
Default: false
|
| showItemStatus
| boolean
optional | Shows a checkmark icon next to selected items
Default: false
|
| withInput
| boolean
optional | Toggles the input field
Default: false
|
| inputLoading
| boolean
optional | Shows the input field loader (requires withInput
)
Default: false
|
| onInputChanged
| Function
optional | Callback for input changed events (requires withInput
) |
▸ DropdownItemProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| id
| any
optional | An optional identifier for an item |
| title
| string
required | The title of the list item |
| type
| ITEM
HEADER
SPLITTER
optional | The type of the list item. Splitters are a simple border break and a header displays its title
prop |
| description
| string
optional | The description of the list item |
| disabled
| boolean
optional | Sets the list item to the disabled state.
Default: false
|
| className
| string
optional | Appends custom class name |
| color
| string
optional | Colors the title
prop of the item |
| icon
| Icon
optional | Renders an icon before the title text of the list item |
| onClick
| Function
required | The click handler function for the list item.
Provides the currently selected item as the argument (typeof DropdownItemProps
) |
const dropdown_items: Array<DropdownItemProps> = [{
title: 'My list item - one',
icon: <Icon name='Calendar' size={12} />,
onClick: itemClickHandler(),
disabled: false,
},{
title: 'A new section',
type: 'HEADER',
},{
title: 'My list item - two',
description: 'My item's description',
icon: <Icon name='List' size={12} />,
onClick: itemClickHandler(),
disabled: true,
}];
<Dropdown items={dropdown_items} selectedOption={dropdownSelectedOption} label='My Dropdown' closeOnMouseOut={false} onClick={(item) => {setSelectedOption(item)}} />
components/Dropdown/Dropdown.tsx:173
▸ Icon(props
): Element
| Name | Type |Description |
| :------ | :------ | :------ |
| props
| IconProps | The Icon component props, instance of IconProps
|
Element
▸ IconProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| name
| string
required | The name of the icon
Options
Add
AddPeople
AddToBoard
Alert
AlignCenter
AlignLeft
AlignRight
AllItems
Arrow
Audio
Back
Bell
Binoculars
Board
Bold
Browser
BrowserTab
CalendarTime
Calendar
Camera
Cancel
CheckCircle
Check
ChevronDown
ChevronRight
ChevronDown
ChevronLeft
Chrome
Clipboard
Close
CloudUpload
Code
CodeBlock
Comment
CreateBoard
Crop
Cross
CrossBold
Cut
Dashboard
Delete
Destruct
DetachBoard
Disable
Documents
Dots
Down
Download
Draw
DropdownDown
DropdownUp
Edit
Elements
Enable
EntirePage
Error
ExpireTime
EyeOff
Eye
Face
Facebook
FileText
FileZip
Folder
FullScreen
FullDesktop
Gear
HeadlineFirst
HeadlineSecond
Heart
Hyperlink
Image
Info
Italic
Key
LayoutGrid
LayoutList
Link
LockOpen
Lock
Logout
Mail
Markdown
Money
More
Move
NewWindow
Nib
Notes
NotesBold
Notification
OrderArrow
OrderedList
Others
PadlockLock
PadlockUnlock
Paragraph
Pause
Pen
Phone
Photo
PhotoCamera
Play
Plugin
PlusToBoard
Private
Profile
Public
PublicFolder
QuestionMark
Quote
Redo
Refresh
RemoveTag
Resume
Save
Screenrecording
Search
SearchBold
SelectedArea
Send
Separator
Share
Shared
Sort
Star
Success
TagFilled
Tags
Task
Team
Terminal
TrashBin
Twitter
Typography
Underline
Undo
UnorderedList
Up
Upload
UploadFile
Url
VerticalDots
Video
VideoCam
VideoCamPlus
ViewGrid
ViewList
Wallet
Warning
WatchFolder
Window
Zip
ZoomIn
ZoomOut
ZoomReset
|
| className
| string
optional | Appends custom class name |
| style
| CSSProperties
optional | Appends a custom style to the icon component|
| size
| number
optional | Pixel-size of the icon
Default: 14
|
| stroke
| string
optional | Sets the stroke width for the icon
Default: 1
|
| color
| string
optional | The color of the icon
Default: gray
|
<Icon
name={'Add'}
size={12}
color={'#000'}
stroke={0.75} />
▸ Switch(props
): Element
Desc
Switch component
| Name | Type |
| :------ | :------ |
| props
| SwitchProps |
Element
▸ SwitchProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| label
| string
optional | The label of the component |
| labelPosition
| string
optional | The position of the label
Options
top
bottom
left
right
|
| className
| string
optional | Appends custom class name |
| checked
| boolean
required | The state of the switch component |
| disabled
| boolean
optional | Sets the component to the disabled state.
Default: false
|
| onChange
| Function
optional | The function that handles the change of state. Passes the current state as arg, typeof boolean
|
<Switch
checked={true}
label='My Switch'
onChange={onChangeHandler} />
▸ TextSwitch(props
): Element
Desc
TextSwitch component
| Name | Type |
| :------ | :------ |
| props
| TextSwitchProps |
Element
▸ TextSwitchComponentProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| items
| Array
required | The list of the switch control items
Instances of TextSwitchItemProps
|
| label
| string
required | The label of the component |
| className
| string
optional | Appends custom class name |
| defaultIndex
| number or string
optional | Index (or label) of the default selected item in the switch
Default: 0|
| disabled
| boolean
optional | Sets the component to the disabled state.
Default: false
|
| onChange
| Function
optional | The function that handles the change of state. Passes the currently active item as arg, typeof TextSwitchItemProps
|
▸ TextSwitchItemProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| id
| number
required | The ID of the switch item |
| label
| string
required | The label of the switch item |
| icon
| Icon
optional | Appends an icon in front of the label |
const switch_items = items: [
{
id: 0,
label: 'Option One'
}, {
id: 1,
label: 'Option Two'
}, {
id: 2,
label: 'Option Three'
icon: <Icon name={'Clipboard'} />
}
];
<TextSwitch
items={switch_items}
label='My Switch'
onChange={onChangeHandler} />
▸ Tooltip(props
): Element
Desc
The Tooltip component
| Name | Type |
| :------ | :------ |
| props
| TooltipProps |
Element
▸ TooltipProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| content
| any required | The content of the tooltip, ideally text |
| onTooltipShow
| Function
optional | The callback for when the tooltip is shown |
| onTooltipHide
| Function
optional | The callback for when the tooltip is hidden |
| position
| top
, bottom
optional | The placement of the tooltip with regards to the element it is wrapping
Default: top
|
| align
| left
, right
optional | The alignment of the tooltip relative to the children|
| hideDelay
| number
optional | The delay (in ms) before hiding the tooltip
Default: 250
|
| fontSize
| string
optional | Font size of the tooltip's content|
| customStyle
| Object
optional | Custom styles forwarded to the tooltip component|
| animated
| boolean
optional | Animates the tooltip's entry and exit|
| offsetPosition
| number
optional | Vertical offset|
| offsetAlign
| number
optional | Horizontal offset|
| closeOnClick
| boolean
optional | Enables closing the tooltip on click, defaults to false
|
// A simple tooltip
<Tooltip content={"Hooray!"}>
Hover over me!
</Tooltip>
// A tooltip with a few custom properties
<Tooltip
title={"Hey!"}
content={"I'm down here!}
position="bottom"
hideDelay={500}
onTooltipHide={() => console.log("Bye!")}
>
Hover over me!
</Tooltip>
▸ Badge(props
): Element
Desc
The Badge component
| Name | Type |
| :------ | :------ |
| props
| BadgeProps |
Element
▸ BadgeProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| variant
| primary
secondary
success
info
warning
alternative
danger
Default: primary
required | The variant of the badge component |
| label
| string
required | The text within the badge |
<Badge variant="info" label="My Badge" />
▸ Toast(props
): Element
Desc
The Toast component and its wrapper
| Name | Type |
| :------ | :------ |
| props
| ToastProps |
Element
▸ NewToastProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| message
| string required | The content of the toast message |
| title
| string | The title of the toast message |
| variant
| success
, error
, warning
, info
| The color variant of the toast message |
| icon
| Icon | The icon to be shown on the left side of the toast |
| duration
| number | The duration (in ms) of the Toast element
Default: 5000
|
| withProgressBar
| boolean | Shows a progress bar at the bottom of the toast |
| clickToDismiss
| boolean | Enables dismissing the toast by clicking on it |
| onClick
| Function | Triggers this callback if the Toast notification is clicked |
// The wrapper around the app's root
<WithToast>
<App />
</WithToast>
// You can add a top-side offset to the provider on a global level, ie. to avoid headers
<WithToast offsetTop={128}>
<App />
</WithToast>
// Spawn the toast message
InfoToast({
message: "This is a toast message.",
title: "A test toast title. Have fun!",
duration: 7500,
clickToDismiss: true,
onClick: () => console.log("I've been clicked away!");
});
▸ RadioButton(props
): Element
Desc
The RadioButton component
| Name | Type |
| :------ | :------ |
| props
| RadioButtonprops |
Element
▸ RadioButtonProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| className
| string | Appends additional class names to the component |
| checked
| boolean | The checked state of the component |
| variant
| success
, danger
, warning
, secondary
| The color variant of the component |
| disabled
| boolean | Disables the component, becomes uninteractive |
| onClick
| Function | The click handler for the component |
<RadioButton
checked={isChecked}
onClick={() => {setIsChecked(!isChecked)}}
variant="primary"
/>
▸ ThumbnailSwitch(props
): Element
Desc
ThumnailSwitch component
| Name | Type |
| :------ | :------ |
| props
| ThumbnailSwitchProps |
Element
▸ ThumbnailSwitchComponentProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| items
| Array
required | The list of the switch control items
Instances of TextSwitchItemProps
|
| label
| string
required | The label of the component |
| className
| string
optional | Appends custom class name |
| defaultIndex
| number or string
optional | Index (or label) of the default selected item in the switch
Default: 0|
| disabled
| boolean
optional | Sets the component to the disabled state.
Default: false
|
| onChange
| Function
optional | The function that handles the change of state. Passes the currently active item as arg, typeof ThumbnailSwitchItemProps
|
▸ ThumbnailSwitchItemProps: Interface
| Name | Type | Description |
| :------ | :------ | :------ |
| id
| number
required | The ID of the switch item |
| label
| string
required | The label of the switch item |
| icon
| Icon
optional | Adds an icon to the top portion of the switch |
const switch_items = items: [
{
id: 0,
label: 'Option One',
icon: <Icon name={'RemoveTag'} />
}, {
id: 1,
label: 'Option Two',
icon: <Icon name={'Delete'} />
}, {
id: 2,
label: 'Option Three',
icon: <Icon name={'Clipboard'} />
}
];
<ThumbnailSwitch
items={switch_items}
label='My Switch'
onChange={onChangeHandler} />