1.10.9 • Published 5 months ago

@a_ng_d/figmug-ui v1.10.9

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

GitHub package.json version GitHub last commit GitHub Actions Workflow Status GitHub Actions Workflow Status GitHub Actions Workflow Status GitHub

Figmug UI

Figmug UI is a comprehensive library of UI components designed specifically for building Figma and Penpot plugins. It leverages modern tools and frameworks to ensure a seamless development experience.

Features

  • Built with React: A popular JavaScript library for building user interfaces
  • Bundled with Vite: Fast and optimized build tool for modern web projects
  • Tested with Jest and Vitest: Ensures reliability and robustness of components
  • Exposed with Storybook: Interactive UI component explorer for easy development and testing

Installation

To install Figmug UI, use npm or yarn:

npm install figmug-ui
# or
yarn add figmug-ui

Usage

Slots

Form Item

import { FormItem } from 'figmug-ui'
import { Input } from 'figmug-ui'

function App() {
  return (
    <FormItem
      id="text-input-item"
      label="Type your name"
      helper={{
        type: 'INFO',
        message: 'First name followed by your last name',
      }}
      shouldFill={false}
      isBlocked={false}
      isNew={false}
    >
      <Input
        id="text-input-item"
        type="TEXT"
        value="Jean-Michel Avous"
      />
    </FormItem>
  )
}

Section

import { Section } from 'figmug-ui'

function App() {
  return (
    <Section
      title="Section Title"
      description="Section description goes here"
      isNew={false}
    >
      <div>Section content goes here</div>
    </Section>
  )
}

Drawer

import { Drawer } from 'figmug-ui'

function App() {
  return (
    <Drawer
      title="Drawer Title"
      isOpen={true}
      onClose={() => console.log('Drawer closed')}
    >
      <div>Drawer content goes here</div>
    </Drawer>
  )
}

Actions

Primary Button

import { Button } from 'figmug-ui'

function App() {
  return (
    <Button
      type="primary"
      size="default"
      label="Primary action button"
      preview={{
        image: 'https://placehold.co/96x96',
        text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
      }}
      feature="PRIMARY_ACTION"
      action={() => console.log('Primary button clicked')}
    />
  )
}

Secondary Button

import { Button } from 'figmug-ui'

function App() {
  return (
    <Button
      type="secondary"
      size="default"
      label="Secondary action button"
      feature="SECONDARY_ACTION"
      action={() => console.log('Secondary button clicked')}
    />
  )
}

Tertiary Button

import { Button } from 'figmug-ui'

function App() {
  return (
    <Button
      type="tertiary"
      label="Tertiary action button"
      feature="TERTIARY_ACTION"
      isLink={true}
      url="https://example.com"
      action={() => console.log('Tertiary button clicked')}
    />
  )
}

Destructive Button

import { Button } from 'figmug-ui'

function App() {
  return (
    <Button
      type="destructive"
      size="default"
      label="Destructive action button"
      feature="DESTRUCTIVE_ACTION"
      action={() => console.log('Destructive button clicked')}
    />
  )
}

Icon Button

import { Button } from 'figmug-ui'

function App() {
  return (
    <Button
      type="icon"
      size="default"
      state="default"
      icon="adjust"
      helper={{
        label: 'Adjust',
        type: 'SINGLE_LINE',
      }}
      action={() => console.log('Icon button clicked')}
    />
  )
}

Inputs

Short Text Input

import { Input } from 'figmug-ui'

function App() {
  return (
    <Input
      id="short-text-typing"
      type="TEXT"
      placeholder="Type something (64 characters max.)…"
      value=""
      charactersLimit={64}
      feature="TYPE_SHORT_TEXT"
      state="DEFAULT"
      isAutoFocus={false}
      isClearable={false}
      isFramed={true}
      onChange={(e) => console.log(e.target.value)}
    />
  )
}

Long Text Input

import { Input } from 'figmug-ui'

function App() {
  return (
    <Input
      id="long-text-typing"
      type="LONG_TEXT"
      placeholder="Type something"
      value=""
      feature="TYPE_LONG_TEXT"
      state="DEFAULT"
      isGrowing={false}
      onChange={(e) => console.log(e.target.value)}
    />
  )
}

Color Picker

import { Input } from 'figmug-ui'

function App() {
  return (
    <Input
      id="color-picker"
      type="COLOR"
      value="#87ebe7"
      feature="PICK_COLOR"
      onChange={(e) => console.log(e.target.value)}
    />
  )
}

Numeric Stepper

import { Input } from 'figmug-ui'

function App() {
  return (
    <Input
      id="numeric-stepper"
      type="NUMBER"
      icon={{
        type: 'LETTER',
        value: 'H',
      }}
      value="20"
      min="0"
      max="100"
      step="1"
      feature="ADJUST_NUMBER"
      onChange={(e) => console.log(e.target.value)}
    />
  )
}

Dropdown

Single Selection

import { Dropdown } from 'figmug-ui'

function App() {
  return (
    <Dropdown
      id="dropdown-button"
      options={[
        {
          label: 'Option 1',
          value: 'OPTION_1',
          type: 'OPTION',
        },
        {
          label: 'Option 2',
          value: 'OPTION_2',
          type: 'OPTION',
          children: [
            {
              label: 'Option 2.1',
              value: 'OPTION_2.1',
              type: 'OPTION',
            },
            {
              label: 'Option 2.2',
              value: 'OPTION_2.2',
              type: 'OPTION',
            },
          ],
        },
        {
          type: 'SEPARATOR',
        },
        {
          label: 'Title',
          type: 'TITLE',
        },
        {
          label: 'Option 3',
          value: 'OPTION_3',
          type: 'OPTION',
        },
      ]}
      selected="OPTION_1"
      alignment="LEFT"
      onChange={(value) => console.log(value)}
    />
  )
}

Multiple Selection

import { Dropdown } from 'figmug-ui'

function App() {
  return (
    <Dropdown
      id="dropdown-button"
      options={[
        {
          label: 'All',
          value: 'ANY',
          type: 'OPTION',
        },
        {
          label: 'Option 1',
          value: 'OPTION_1',
          type: 'OPTION',
        },
        {
          label: 'Option 2',
          value: 'OPTION_2',
          type: 'OPTION',
        },
      ]}
      selected={['ANY']}
      alignment="LEFT"
      onChange={(values) => console.log(values)}
    />
  )
}

Sliders

Simple Slider

import { SimpleSlider } from 'figmug-ui'

function App() {
  return (
    <SimpleSlider
      id="simple-slider"
      label="Simple Slider"
      value={50}
      min={0}
      max={100}
      colors={{
        min: 'white',
        max: 'black',
      }}
      feature="ADJUST_VALUE"
      onChange={(feature, type, value) => console.log(value)}
    />
  )
}

Multiple Slider

import { MultipleSlider } from 'figmug-ui'

function App() {
  return (
    <MultipleSlider
      id="multiple-slider"
      label="Multiple Slider"
      stops={[
        { id: 'stop-1', value: 20 },
        { id: 'stop-2', value: 50 },
        { id: 'stop-3', value: 80 },
      ]}
      min={0}
      max={100}
      colors={{
        min: 'white',
        max: 'black',
      }}
      feature="ADJUST_VALUES"
      onChange={(feature, type, value) => console.log(value)}
    />
  )
}

Dialogs

Simple Dialog

import { Dialog } from 'figmug-ui'

function App() {
  return (
    <Dialog
      title="Are you sure to delete?"
      actions={{
        destructive: {
          label: 'Delete',
          action: () => console.log('Delete action'),
        },
        secondary: {
          label: 'Cancel',
          action: () => console.log('Cancel action'),
        },
      }}
      pin="CENTER"
      onClose={() => console.log('Dialog closed')}
    >
      <div className="dialog__text">
        <p>Deleting this item will remove it permanently.</p>
      </div>
    </Dialog>
  )
}

Form Dialog

import { Dialog } from 'figmug-ui'
import { Input } from 'figmug-ui'
import { FormItem } from 'figmug-ui'

function App() {
  return (
    <Dialog
      title="What do you want to say?"
      actions={{
        primary: {
          label: 'Submit',
          action: () => console.log('Submit action'),
        },
      }}
      pin="CENTER"
      onClose={() => console.log('Dialog closed')}
    >
      <div className="dialog__form">
        <div className="dialog__form__item">
          <FormItem
            label="Full Name"
            id="type-fullname"
            shouldFill
          >
            <Input type="TEXT" />
          </FormItem>
        </div>
        <div className="dialog__form__item">
          <FormItem
            label="Email"
            id="type-email"
            shouldFill
          >
            <Input type="TEXT" />
          </FormItem>
        </div>
        <div className="dialog__form__item">
          <FormItem
            label="Message"
            id="type-message"
            shouldFill
          >
            <Input
              type="LONG_TEXT"
              placeholder="Type your message here"
            />
          </FormItem>
        </div>
      </div>
    </Dialog>
  )
}

Loading Dialog

import { Dialog } from 'figmug-ui'

function App() {
  return (
    <Dialog
      title="Loading…"
      pin="CENTER"
      isLoading={true}
      onClose={() => console.log('Dialog closed')}
    />
  )
}

Lists

Simple List

import { ActionsList } from 'figmug-ui'

function App() {
  return (
    <ActionsList
      options={[
        {
          label: 'Option 1',
          value: 'OPTION_1',
          type: 'OPTION',
          action: () => console.log('Option 1 clicked'),
        },
        {
          label: 'Option 2',
          value: 'OPTION_2',
          type: 'OPTION',
          action: () => console.log('Option 2 clicked'),
        },
        {
          label: 'Option 3',
          value: 'OPTION_3',
          type: 'OPTION',
          action: () => console.log('Option 3 clicked'),
        },
        {
          label: 'Option 4',
          value: 'OPTION_4',
          type: 'OPTION',
          action: () => console.log('Option 4 clicked'),
        },
      ]}
      selected="OPTION_1"
    />
  )
}

Grouped List

import { ActionsList } from 'figmug-ui'

function App() {
  return (
    <ActionsList
      options={[
        {
          label: 'Group 1',
          type: 'TITLE',
        },
        {
          label: 'Option 1',
          value: 'OPTION_1',
          type: 'OPTION',
          action: () => console.log('Option 1 clicked'),
        },
        {
          label: 'Option 2',
          value: 'OPTION_2',
          type: 'OPTION',
          action: () => console.log('Option 2 clicked'),
        },
        {
          type: 'SEPARATOR',
        },
        {
          label: 'Group 2',
          type: 'TITLE',
        },
        {
          label: 'Option 3',
          value: 'OPTION_3',
          type: 'OPTION',
          action: () => console.log('Option 3 clicked'),
        },
        {
          label: 'Option 4',
          value: 'OPTION_4',
          type: 'OPTION',
          action: () => console.log('Option 4 clicked'),
        },
      ]}
    />
  )
}

Nested List

import { ActionsList } from 'figmug-ui'

function App() {
  return (
    <ActionsList
      options={[
        {
          label: 'Group 1',
          value: 'GROUP_1',
          type: 'OPTION',
          children: [
            {
              label: 'Option 1',
              value: 'OPTION_A_1',
              type: 'OPTION',
              action: () => console.log('Option A.1 clicked'),
            },
            {
              label: 'Option 2',
              value: 'OPTION_A_2',
              type: 'OPTION',
              action: () => console.log('Option A.2 clicked'),
            },
          ],
        },
        {
          label: 'Group 2',
          value: 'GROUP_2',
          type: 'OPTION',
          children: [
            {
              label: 'Option 1',
              value: 'OPTION_B_1',
              type: 'OPTION',
              action: () => console.log('Option B.1 clicked'),
            },
            {
              label: 'Option 2',
              value: 'OPTION_B_2',
              type: 'OPTION',
              action: () => console.log('Option B.2 clicked'),
            },
          ],
        },
      ]}
    />
  )
}

Tags

Basic Chip

import { Chip } from 'figmug-ui'

function App() {
  return <Chip state="ACTIVE">New</Chip>
}

Chip with Color Indicator

import { Chip, ColorChip } from 'figmug-ui'

function App() {
  return (
    <Chip
      state="ON_BACKGROUND"
      leftSlot={
        <ColorChip
          color="blue"
          width="8px"
          height="8px"
          isRounded={true}
        />
      }
      rightSlot={<div style={{ fontSize: '11px' }}>✔︎</div>}
    >
      AA
    </Chip>
  )
}

Assets

Icon

import { Icon } from 'figmug-ui'

function App() {
  return (
    <>
      {/* Pictogram Icon */}
      <Icon
        type="PICTO"
        iconName="adjust"
      />

      {/* Letter Icon */}
      <Icon
        type="LETTER"
        iconLetter="L"
      />
    </>
  )
}

Avatar

import { Avatar } from 'figmug-ui'

function App() {
  return (
    <>
      {/* Avatar with Image */}
      <Avatar
        avatar="https://example.com/avatar.jpg"
        fullName="John Doe"
        isInverted={false}
      />

      {/* Default Avatar */}
      <Avatar isInverted={false} />
    </>
  )
}

Thumbnail

import { Thumbnail } from 'figmug-ui'

function App() {
  return (
    <Thumbnail
      src="https://example.com/image.jpg"
      width="300px"
      height="200px"
    />
  )
}

Testing

To run tests:

npm test
# or
yarn test

License

This project is licensed under the MIT License. See the LICENSE file for more information.

1.10.9

5 months ago

1.10.8

5 months ago

1.10.7

5 months ago

1.10.6

5 months ago

1.10.5

5 months ago

1.10.4

5 months ago

1.10.3

5 months ago

1.10.2

5 months ago

1.10.1

5 months ago

1.10.0

5 months ago

1.9.26

5 months ago

1.9.24

5 months ago

1.9.23

5 months ago

1.9.22

5 months ago

1.9.21

5 months ago

1.9.20

5 months ago

1.9.19

5 months ago

1.9.18

5 months ago

1.9.17

5 months ago

1.9.16

5 months ago

1.9.15

5 months ago

1.9.14

5 months ago

1.9.13

5 months ago

1.9.12

5 months ago

1.9.11

5 months ago

1.9.10

5 months ago

1.9.9

5 months ago

1.9.8

5 months ago

1.9.7

5 months ago

1.9.6

5 months ago

1.9.5

5 months ago

1.9.4

5 months ago

1.9.3

5 months ago

1.9.2

5 months ago

1.9.1

5 months ago

1.8.20

5 months ago

1.8.19

5 months ago

1.8.18

5 months ago

1.8.17

5 months ago

1.8.16

5 months ago

1.8.15

5 months ago

1.8.13

5 months ago

1.8.12

5 months ago

1.8.11

5 months ago

1.8.10

5 months ago

1.8.9

5 months ago

1.8.8

5 months ago

1.8.7

5 months ago

1.8.6

5 months ago

1.8.5

5 months ago

1.8.4

5 months ago

1.8.3

5 months ago

1.8.2

5 months ago

1.8.1

5 months ago

1.8.0

5 months ago

1.7.12

6 months ago

1.7.11

6 months ago

1.7.10

6 months ago

1.7.9

6 months ago

1.7.8

6 months ago

1.7.7

6 months ago

1.7.6

6 months ago

1.7.4

6 months ago

1.7.3

6 months ago

1.7.2

6 months ago

1.7.1

6 months ago

1.6.15

7 months ago

1.6.14

7 months ago

1.6.13

7 months ago

1.6.12

7 months ago

1.6.11

7 months ago

1.6.10

7 months ago

1.6.9

7 months ago

1.6.8

7 months ago

1.6.7

7 months ago

1.6.6

7 months ago

1.6.5

7 months ago

1.6.4

7 months ago

1.6.3

7 months ago

1.6.2

7 months ago

1.6.1

7 months ago

1.6.0

7 months ago

1.5.0

7 months ago

1.4.2

7 months ago

1.4.1

7 months ago

1.4.0

7 months ago

1.3.2

7 months ago

1.3.1

7 months ago

1.3.0

7 months ago

1.2.12

7 months ago

1.2.11

7 months ago

1.2.10

7 months ago

1.2.9

7 months ago

1.2.8

7 months ago

1.2.7

7 months ago

1.2.6

7 months ago

1.2.5

7 months ago

1.2.4

7 months ago

1.2.3

7 months ago

1.2.2

7 months ago

1.2.1

7 months ago

1.1.14

7 months ago

1.1.13

7 months ago

1.1.12

8 months ago

1.1.11

8 months ago

1.1.10

8 months ago

1.1.9

8 months ago

1.1.7

8 months ago

1.1.6

8 months ago

1.1.5

8 months ago

1.1.4

8 months ago

1.1.3

8 months ago

1.1.2

8 months ago

1.1.1

8 months ago

1.1.0

8 months ago

1.0.31

8 months ago

1.0.30

8 months ago

1.0.28

8 months ago

1.0.27

8 months ago

1.0.25

8 months ago

1.0.24

8 months ago

1.0.23

8 months ago

1.0.22

8 months ago

1.0.18

8 months ago

1.0.17

8 months ago

1.0.16

8 months ago

1.0.15

8 months ago

1.0.14

8 months ago

1.0.13

8 months ago

1.0.12

8 months ago

1.0.11

8 months ago

1.0.10

8 months ago

1.0.9

8 months ago

1.0.8

8 months ago

1.0.7

8 months ago

1.0.6

8 months ago

1.0.5

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago

0.125.4

8 months ago

0.125.3

8 months ago

0.125.2

8 months ago

0.125.1

8 months ago

0.125.0

8 months ago

0.124.22

8 months ago

0.124.21

8 months ago

0.124.20

8 months ago

0.124.19

8 months ago

0.124.18

8 months ago

0.124.17

8 months ago

0.124.16

8 months ago

0.124.15

8 months ago

0.124.13

8 months ago

0.124.12

8 months ago

0.124.11

8 months ago

0.124.10

8 months ago

0.124.9

8 months ago

0.124.8

8 months ago

0.124.7

8 months ago

0.124.6

8 months ago

0.124.3

8 months ago

0.124.2

8 months ago

0.124.1

8 months ago

0.124.0

8 months ago

0.123.1

8 months ago

0.123.0

8 months ago

0.122.1

8 months ago

0.122.0

8 months ago

0.121.0

9 months ago

0.120.5

9 months ago

0.120.4

9 months ago

0.120.3

9 months ago

0.120.2

9 months ago

0.120.1

9 months ago

0.120.0

9 months ago

0.119.3

9 months ago

0.119.2

9 months ago

0.119.1

9 months ago

0.119.0

9 months ago

0.118.15

9 months ago

0.118.14

9 months ago

0.118.13

9 months ago

0.118.12

9 months ago

0.118.11

9 months ago

0.118.10

9 months ago

0.118.9

9 months ago

0.118.8

9 months ago

0.118.7

9 months ago

0.118.6

9 months ago

0.118.5

10 months ago

0.118.4

10 months ago

0.118.3

10 months ago

0.118.2

10 months ago

0.118.1

10 months ago

0.118.0

10 months ago

0.117.1

10 months ago

0.117.0

10 months ago

0.116.2

10 months ago

0.116.1

10 months ago

0.116.0

10 months ago

0.115.15

10 months ago

0.115.14

10 months ago

0.115.13

10 months ago

0.115.12

10 months ago

0.115.11

10 months ago

0.115.10

10 months ago

0.115.9

10 months ago

0.115.8

10 months ago

0.115.7

10 months ago

0.115.6

10 months ago

0.115.5

10 months ago

0.115.4

10 months ago

0.115.3

10 months ago

0.115.1

10 months ago

0.115.0

10 months ago

0.113.11

10 months ago

0.113.10

11 months ago

0.113.9

11 months ago

0.113.8

11 months ago

0.113.6

11 months ago

0.113.5

11 months ago

0.113.4

11 months ago

0.113.3

11 months ago

0.113.2

11 months ago

0.113.1

11 months ago

0.113.0

11 months ago

0.112.2

11 months ago

0.111.7

11 months ago

0.111.6

11 months ago

0.111.5

11 months ago

0.111.4

11 months ago

0.111.3

11 months ago

0.111.2

11 months ago

0.111.1

11 months ago

0.110.5

11 months ago

0.110.4

11 months ago

0.110.2

11 months ago

0.110.1

11 months ago

0.110.0

11 months ago

0.109.0

11 months ago

0.108.10

11 months ago

0.108.9

11 months ago

0.108.8

11 months ago

0.108.7

11 months ago

0.108.6

11 months ago

0.108.5

11 months ago

0.108.4

11 months ago

0.108.3

11 months ago

0.108.2

11 months ago

0.108.1

11 months ago

0.108.0

11 months ago

0.107.10

11 months ago

0.107.9

11 months ago

0.107.8

11 months ago

0.107.7

11 months ago

0.107.6

11 months ago

0.107.5

11 months ago

0.107.4

11 months ago

0.107.3

11 months ago

0.107.2

11 months ago

0.107.1

11 months ago

0.107.0

11 months ago

0.106.1

11 months ago

0.106.0

11 months ago

0.105.0

11 months ago

0.104.3

11 months ago

0.104.2

11 months ago

0.104.1

11 months ago

0.103.0

11 months ago

0.102.5

1 year ago

0.102.4

1 year ago

0.102.3

1 year ago

0.102.2

1 year ago

0.102.0

1 year ago

0.101.0

1 year ago

0.100.0

1 year ago

0.99.0

1 year ago

0.98.0

1 year ago

0.97.3

1 year ago

0.97.2

1 year ago

0.97.1

1 year ago

0.97.0

1 year ago

0.96.16

1 year ago

0.96.15

1 year ago

0.96.14

1 year ago

0.96.13

1 year ago

0.96.12

1 year ago

0.96.11

1 year ago

0.96.10

1 year ago

0.96.9

1 year ago

0.96.8

1 year ago

0.96.7

1 year ago

0.96.6

1 year ago

0.96.5

1 year ago

0.96.4

1 year ago

0.96.2

1 year ago

0.96.1

1 year ago

0.95.1

1 year ago

0.95.0

1 year ago

0.94.0

1 year ago

0.93.3

1 year ago

0.93.2

1 year ago

0.93.1

1 year ago

0.93.0

1 year ago

0.92.0

1 year ago

0.90.0

1 year ago

0.89.3

1 year ago

0.87.0

1 year ago

0.86.1

1 year ago

0.86.0

1 year ago

0.85.11

1 year ago

0.85.10

1 year ago

0.85.9

1 year ago

0.85.8

1 year ago

0.85.7

1 year ago

0.85.6

1 year ago

0.85.5

1 year ago

0.85.4

1 year ago

0.85.3

1 year ago

0.85.2

1 year ago

0.85.1

1 year ago

0.85.0

1 year ago

0.84.0

1 year ago

0.83.0

1 year ago

0.82.0

1 year ago

0.81.0

1 year ago

0.80.0

1 year ago

0.79.0

1 year ago

0.78.0

1 year ago

0.77.0

1 year ago

0.76.0

1 year ago

0.75.0

1 year ago

0.74.0

1 year ago

0.73.0

1 year ago

0.72.0

1 year ago

0.71.0

1 year ago

0.70.0

1 year ago

0.69.0

1 year ago

0.68.0

1 year ago

0.67.0

1 year ago

0.66.0

1 year ago

0.65.0

1 year ago

0.64.0

1 year ago

0.63.0

1 year ago

0.62.0

1 year ago

0.61.0

1 year ago

0.60.0

1 year ago

0.59.0

1 year ago

0.58.0

1 year ago

0.57.0

1 year ago

0.56.0

1 year ago

0.55.0

1 year ago

0.54.0

1 year ago

0.53.0

1 year ago

0.52.0

1 year ago

0.51.0

1 year ago

0.50.0

1 year ago

0.49.0

1 year ago

0.48.0

1 year ago

0.47.0

1 year ago

0.46.0

1 year ago

0.45.0

1 year ago

0.44.0

1 year ago

0.43.0

1 year ago

0.42.0

1 year ago

0.41.0

1 year ago

0.40.0

1 year ago

0.39.0

1 year ago

0.38.0

1 year ago

0.37.0

1 year ago

0.36.0

1 year ago

0.35.0

1 year ago

0.34.0

1 year ago

0.33.0

1 year ago

0.32.0

1 year ago

0.31.0

1 year ago

0.30.0

1 year ago

0.29.0

1 year ago

0.28.0

1 year ago

0.27.0

1 year ago

0.26.0

1 year ago

0.25.0

1 year ago

0.24.0

1 year ago

0.23.0

1 year ago

0.22.0

1 year ago

0.21.0

1 year ago

0.20.0

1 year ago

0.19.0

1 year ago

0.18.0

1 year ago

0.17.0

1 year ago

0.16.0

1 year ago

0.15.0

1 year ago

0.14.2

1 year ago

0.14.1

1 year ago

0.14.0

1 year ago

0.13.0

1 year ago

0.12.0

1 year ago

0.11.0

1 year ago

0.10.0

1 year ago

0.9.0

1 year ago

0.8.0

1 year ago

0.7.0

1 year ago

0.6.0

1 year ago

0.5.0

1 year ago

0.4.0

1 year ago

0.3.0

1 year ago

0.2.0

1 year ago