npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

semantic-ui-calendar-react

v0.15.3

Published

date/time picker built from semantic-ui elements

Downloads

43,760

Readme

:tada: Starting with version 0.8.0 it's css free. :warning: Uncompatible with semantic-ui-react version 0.83.0

semantic-ui-calendar-react

Datepicker react component based on semantic-ui-react components

My intention was to create something that looks like this https://github.com/mdehoog/Semantic-UI-Calendar.

Here you can find a live example https://arfedulov.github.io/semantic-ui-calendar-react

installation

npm

npm i semantic-ui-calendar-react

CDN

<script src="https://cdn.jsdelivr.net/npm/semantic-ui-calendar-react@latest/dist/umd/semantic-ui-calendar-react.js"></script>

Then you can access calendar components from your scripts like this:

const { DateInput } = SemanticUiCalendarReact;

usage

Let's create a form that needs date-related input fields.

Import input components:

import {
  DateInput,
  TimeInput,
  DateTimeInput,
  DatesRangeInput
} from 'semantic-ui-calendar-react';

Then build a form:

class DateTimeForm extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      date: '',
      time: '',
      dateTime: '',
      datesRange: ''
    };
  }

  handleChange = (event, {name, value}) => {
    if (this.state.hasOwnProperty(name)) {
      this.setState({ [name]: value });
    }
  }

  render() {
    return (
      <Form>
        <DateInput
          name="date"
          placeholder="Date"
          value={this.state.date}
          iconPosition="left"
          onChange={this.handleChange}
        />
        <TimeInput
          name="time"
          placeholder="Time"
          value={this.state.time}
          iconPosition="left"
          onChange={this.handleChange}
        />
        <DateTimeInput
          name="dateTime"
          placeholder="Date Time"
          value={this.state.dateTime}
          iconPosition="left"
          onChange={this.handleChange}
        />
        <DatesRangeInput
          name="datesRange"
          placeholder="From - To"
          value={this.state.datesRange}
          iconPosition="left"
          onChange={this.handleChange}
        />
      </Form>
    );
  }
}

Also you can build a form with inline pickers as inputs. Just set inline prop on input element and it will be displayed as inline picker:

class DateTimeFormInline extends React.Component {
 handleChange = (event, {name, value}) => {
    if (this.state.hasOwnProperty(name)) {
      this.setState({ [name]: value });
    }
  }

  render() {
    return (
      <Form>
        <DateInput
          inline
          name='date'
          value={this.state.date}
          onChange={this.handleDateChange}
        />
      </Form>
    );
  }
}

or you can make it cleanable in the following way,

class ClearableDateTimeForm extends React.Component {
  handleChange = (event, {name, value}) => {
    if (this.state.hasOwnProperty(name)) {
      this.setState({ [name]: value });
    }
  }

  render() {
    return (
      <Form>
        <DateInput
          clearable
          clearIcon={<Icon name="remove" color="red" />}
          name="date"
          value={this.state.date}
          onChange={this.handleDateChange}
        />
      </Form>
    );
  }
}

Locales support

Since semantic-ui-calendar-react uses moment.js it supports locales. You can set locale globally:

import moment from 'moment';
import 'moment/locale/ru';

You can also set locale for *Input component locally using localization prop.

<DateInput localization='ru' />

Supported elements

DateInput

| Prop | Description | | -----| ------------| | all that can be used with SUIR Form.Input | | | value | {string} Currently selected value; must have format dateFormat. | | dateFormat| {string} Date formatting string. You can use here anything that can be passed to moment().format. Default: DD-MM-YYYY| | popupPosition| {string} One of ['top left', 'top right', 'bottom left', 'bottom right', 'right center', 'left center', 'top center', 'bottom center']. Default: top left| | inline | {bool} If true inline picker displayed. Default: false | | startMode | {string} Display mode to start. One of ['year', 'month', 'day']. Default: day | | closable | {bool} If true, popup closes after selecting a date | | initialDate | {string|moment|Date} Date on which calendar opens. By default it opens on today's date. (Do not be confused by property name. For setting some default value just set into value prop). | | disable | {string|moment|Date|string[]|moment[]|Date[]} Date or list of dates that are displayed as disabled | | enable | {string[]|moment[]|Date[]} Date or list of dates that are enabled (the rest are disabled) | | maxDate | {string|moment} Maximum date that can be selected | | minDate | {string|moment} Minimum date that can be selected | | inlineLabel | {bool} A field can have its label next to instead of above it. | | closeOnMouseLeave | {bool} Should close when cursor leaves calendar popup. Default: true | | preserveViewMode | {bool} Preserve last mode (day, hour, minute) each time user opens dialog. Default true | | mountNode | {any} The node where the picker should mount. | | onClear | {func} Called after clear icon has clicked. | | clearable | {boolean} Using the clearable setting will let users remove their selection from a calendar. | | clearIcon | {any} Optional Icon to display inside the clearable Input. | | pickerWidth | {string} Optional width value for picker (any string value that could be assigned to style.width). | | pickerStyle | {object} Optional style object for picker. | | duration | {number} Optional duration of the CSS transition animation in milliseconds. Default: 200 | | animation | {string} Optional named animation event to used. Must be defined in CSS. Default: 'scale' | | marked | {moment|Date|moment[]|Date[]} Date or list of dates that are displayed as marked | | markColor | {string|SemanticCOLORs} String specifying the mark color. Must be one of the Semantic UI colors | | localization | {string} Sets Moment date locale locally for this component. | | icon | {string|false} icon to display inside Input. | | iconPosition | {'left'|'right'} icon position inside Input. Default: 'right'. | | hideMobileKeyboard | {bool} Try to prevent mobile keyboard appearing. |

TimeInput

| Prop | Description | | -----| ------------| | all that can be used with SUIR Form.Input | | | value | {string} Currently selected value; must have format dateFormat. | | popupPosition| {string} One of ['top left', 'top right', 'bottom left', 'bottom right', 'right center', 'left center', 'top center', 'bottom center']. Default: top left| | inline | {bool} If true inline picker displayed. Default: false | | closable | {bool} If true, popup closes after selecting a time | | inlineLabel | {bool} A field can have its label next to instead of above it. | | closeOnMouseLeave | {bool} Should close when cursor leaves calendar popup. Default: true | | timeFormat | {string} One of ["24", "AMPM", "ampm"]. Default: "24" | | disableMinute | {bool} If true, minutes picker won't be shown after picking the hour. Default: false | | mountNode | {any} The node where the picker should mount. | | onClear | {func} Called after clear icon has clicked. | | clearable | {boolean} Using the clearable setting will let users remove their selection from a calendar. | | clearIcon | {any} Optional Icon to display inside the clearable Input. | | pickerWidth | {string} Optional width value for picker (any string value that could be assigned to style.width). | | pickerStyle | {object} Optional style object for picker. | | duration | {number} Optional duration of the CSS transition animation in milliseconds. Default: 200 | | animation | {string} Optional named animation event to used. Must be defined in CSS. Default: 'scale' | | localization | {string} Sets Moment date locale locally for this component. | | icon | {string|false} icon to display inside Input. | | iconPosition | {'left'|'right'} icon position inside Input. Default: 'right'. | | hideMobileKeyboard | {bool} Try to prevent mobile keyboard appearing. |

DateTimeInput

| Prop | Description | | -----| ------------| | all that can be used with SUIR Form.Input | | | value | {string} Currently selected value; must have format dateFormat. | | dateTimeFormat | {string} Datetime formatting string for the input's value. You can use any string here that can be passed to moment().format. If provided, it overrides dateFormat, divider, and timeFormat. Note: this does not affect the formats used to display the pop-up date and time pickers; it only affects the format of the input's value field. Default: null | | dateFormat| {string} Date formatting string. You can use any string here that can be passed to moment().format. Default: DD-MM-YYYY. This formats only the date component of the datetime. | | timeFormat | {string} One of ["24", "AMPM", "ampm"]. Default: "24" | | divider | {string} Date and time divider. Default: | | disableMinute | {bool} If true, minutes picker won't be shown after picking the hour. Default: false | | popupPosition| {string} One of ['top left', 'top right', 'bottom left', 'bottom right', 'right center', 'left center', 'top center', 'bottom center']. Default: top left| | inline | {bool} If true inline picker displayed. Default: false | | startMode | {string} Display mode to start. One of ['year', 'month', 'day']. Default: day | | closable | {bool} If true, popup closes after selecting a date-time | | initialDate | {string|moment|Date} Date on which calendar opens. By default it opens on today's date. (Do not be confused by property name. For setting some default value just set into value prop). | | disable | {string|moment|string[]|moment[]} Date or list of dates that are displayed as disabled | | maxDate | {string|moment} Maximum date that can be selected | | minDate | {string|moment} Minimum date that can be selected | | inlineLabel | {bool} A field can have its label next to instead of above it. | | closeOnMouseLeave | {bool} Should close when cursor leaves calendar popup. Default: true | | preserveViewMode | {bool} Preserve last mode (day, hour, minute) each time user opens dialog. Default true | | mountNode | {any} The node where the picker should mount. | | onClear | {func} Called after clear icon has clicked. | | clearable | {boolean} Using the clearable setting will let users remove their selection from a calendar. | | clearIcon | {any} Optional Icon to display inside the clearable Input. | | pickerWidth | {string} Optional width value for picker (any string value that could be assigned to style.width). | | pickerStyle | {object} Optional style object for picker. | | duration | {number} Optional duration of the CSS transition animation in milliseconds. Default: 200 | | animation | {string} Optional named animation event to used. Must be defined in CSS. Default: 'scale' | | marked | {moment|Date|moment[]|Date[]} Date or list of dates that are displayed as marked | | markColor | {string|SemanticCOLORs} String specifying the mark color. Must be one of the Semantic UI colors | | localization | {string} Sets Moment date locale locally for this component. | | icon | {string|false} icon to display inside Input. | | iconPosition | {'left'|'right'} icon position inside Input. Default: 'right'. | | hideMobileKeyboard | {bool} Try to prevent mobile keyboard appearing. |

DatesRangeInput

| Prop | Description | | -----| ------------| | all that can be used with SUIR Form.Input | | | value | {string} Currently selected value; must have format dateFormat. | | dateFormat| {string} Date formatting string. You can use here anything that can be passed to moment().format. Default: DD.MM.YY| | popupPosition| {string} One of ['top left', 'top right', 'bottom left', 'bottom right', 'right center', 'left center', 'top center', 'bottom center']. Default: top left| | inline | {bool} If true inline picker displayed. Default: false | | closable | {bool} If true, popup closes after selecting a dates range | | initialDate | {string|moment|Date} Date on which calendar opens. By default it opens on today's date. (Do not be confused by property name. For setting some default value just set into value prop). | | maxDate | {string|moment} Maximum date that can be selected | | minDate | {string|moment} Minimum date that can be selected | | inlineLabel | {bool} A field can have its label next to instead of above it. | | closeOnMouseLeave | {bool} Should close when cursor leaves calendar popup. Default: true | | mountNode | {any} The node where the picker should mount. | | onClear | {func} Called after clear icon has clicked. | | clearable | {boolean} Using the clearable setting will let users remove their selection from a calendar. | | clearIcon | {any} Optional Icon to display inside the clearable Input. | | pickerWidth | {string} Optional width value for picker (any string value that could be assigned to style.width). | | pickerStyle | {object} Optional style object for picker. | | duration | {number} Optional duration of the CSS transition animation in milliseconds. Default: 200 | | animation | {string} Optional named animation event to used. Must be defined in CSS. Default: 'scale' | | marked | {moment|Date|moment[]|Date[]} Date or list of dates that are displayed as marked | | markColor | {string|SemanticCOLORs} String specifying the mark color. Must be one of the Semantic UI colors | | localization | {string} Sets Moment date locale locally for this component. | | icon | {string|false} icon to display inside Input. | | iconPosition | {'left'|'right'} icon position inside Input. Default: 'right'. | | allowSameEndDate | {boolean} Allow end date to be the same as start date. | | hideMobileKeyboard | {bool} Try to prevent mobile keyboard appearing. |

YearInput

| Prop | Description | | -----| ------------| | all that can be used with SUIR Form.Input | | | value | {string} Currently selected value; must have format dateFormat. | | popupPosition| {string} One of ['top left', 'top right', 'bottom left', 'bottom right', 'right center', 'left center', 'top center', 'bottom center']. Default: top left| | inline | {bool} If true inline picker displayed. Default: false | | closable | {bool} If true, popup closes after selecting a year | | inlineLabel | {bool} A field can have its label next to instead of above it. | | closeOnMouseLeave | {bool} Should close when cursor leaves calendar popup. Default: true | | initialDate | {string|moment|Date} Date on which calendar opens. By default it opens on today's date. (Do not be confused by property name. For setting some default value just set into value prop). | | mountNode | {any} The node where the picker should mount. | | onClear | {func} Called after clear icon has clicked. | | clearable | {boolean} Using the clearable setting will let users remove their selection from a calendar. | | clearIcon | {any} Optional Icon to display inside the clearable Input. | | pickerWidth | {string} Optional width value for picker (any string value that could be assigned to style.width). | | pickerStyle | {object} Optional style object for picker. | | duration | {number} Optional duration of the CSS transition animation in milliseconds. Default: 200 | | animation | {string} Optional named animation event to used. Must be defined in CSS. Default: 'scale' | | localization | {string} Sets Moment date locale locally for this component. | | icon | {string|false} icon to display inside Input. | | iconPosition | {'left'|'right'} icon position inside Input. Default: 'right'. | | hideMobileKeyboard | {bool} Try to prevent mobile keyboard appearing. |

MonthInput

| Prop | Description | | -----| ------------| | all that can be used with SUIR Form.Input | | | value | {string} Currently selected value; must have format dateFormat. | | popupPosition| {string} One of ['top left', 'top right', 'bottom left', 'bottom right', 'right center', 'left center', 'top center', 'bottom center']. Default: top left| | inline | {bool} If true inline picker displayed. Default: false | | closable | {bool} If true, popup closes after selecting a month | | inlineLabel | {bool} A field can have its label next to instead of above it. | | closeOnMouseLeave | {bool} Should close when cursor leaves calendar popup. Default: true | | dateFormat | {string} Moment date formatting string. Default: "MMM" | | disable | {string|Moment|Date|string[]|Moment[]|Date[]} Date or list of dates that are displayed as disabled. | | maxDate | {string|Moment|Date|string[]|Moment[]|Date[]} Maximum date that can be selected. | | minDate | {string|Moment|Date|string[]|Moment[]|Date[]} Minimum date that can be selected. | | mountNode | {any} The node where the picker should mount. | | onClear | {func} Called after clear icon has clicked. | | clearable | {boolean} Using the clearable setting will let users remove their selection from a calendar. | | clearIcon | {any} Optional Icon to display inside the clearable Input. | | pickerWidth | {string} Optional width value for picker (any string value that could be assigned to style.width). | | pickerStyle | {object} Optional style object for picker. | | duration | {number} Optional duration of the CSS transition animation in milliseconds. Default: 200 | | animation | {string} Optional named animation event to used. Must be defined in CSS. Default: 'scale' | | localization | {string} Sets Moment date locale locally for this component. | | icon | {string|false} icon to display inside Input. | | iconPosition | {'left'|'right'} icon position inside Input. Default: 'right'. | | hideMobileKeyboard | {bool} Try to prevent mobile keyboard appearing. |

MonthRangeInput

| Prop | Description | | -----| ------------| | all that can be used with SUIR Form.Input | | | value | {string} Currently selected value; must have format dateFormat. | | popupPosition| {string} One of ['top left', 'top right', 'bottom left', 'bottom right', 'right center', 'left center', 'top center', 'bottom center']. Default: top left| | inline | {bool} If true inline picker displayed. Default: false | | closable | {bool} If true, popup closes after selecting a month | | inlineLabel | {bool} A field can have its label next to instead of above it. | | closeOnMouseLeave | {bool} Should close when cursor leaves calendar popup. Default: true | | dateFormat | {string} Moment date formatting string. Default: "MMM" | | maxDate | {string|Moment|Date|string[]|Moment[]|Date[]} Maximum date that can be selected. | | minDate | {string|Moment|Date|string[]|Moment[]|Date[]} Minimum date that can be selected. | | mountNode | {any} The node where the picker should mount. | | onClear | {func} Called after clear icon has clicked. | | clearable | {boolean} Using the clearable setting will let users remove their selection from a calendar. | | clearIcon | {any} Optional Icon to display inside the clearable Input. | | pickerWidth | {string} Optional width value for picker (any string value that could be assigned to style.width). | | pickerStyle | {object} Optional style object for picker. | | duration | {number} Optional duration of the CSS transition animation in milliseconds. Default: 200 | | animation | {string} Optional named animation event to used. Must be defined in CSS. Default: 'scale' | | localization | {string} Sets Moment date locale locally for this component. | | icon | {string|false} icon to display inside Input. | | iconPosition | {'left'|'right'} icon position inside Input. Default: 'right'. | | hideMobileKeyboard | {bool} Try to prevent mobile keyboard appearing. |