@coreui/react-pro 4.1.4 → 4.2.0-beta.0

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.
Files changed (33) hide show
  1. package/README.md +1 -1
  2. package/dist/components/Types.d.ts +1 -1
  3. package/dist/components/calendar/CCalendar.d.ts +89 -0
  4. package/dist/components/calendar/CCalendar.utils.d.ts +20 -0
  5. package/dist/components/datepicker/CDatePicker.d.ts +13 -0
  6. package/dist/components/daterangepicker/CDateRangePicker.d.ts +50 -0
  7. package/dist/components/dropdown/CDropdown.d.ts +10 -1
  8. package/dist/components/dropdown/CDropdownToggle.d.ts +4 -0
  9. package/dist/components/picker/CPicker.d.ts +37 -0
  10. package/dist/components/timepicker/CTimePicker.d.ts +49 -0
  11. package/dist/components/timepicker/CTimePicker.utils.d.ts +4 -0
  12. package/dist/components/timepicker/CTimePickerRollCol.d.ts +11 -0
  13. package/dist/index.d.ts +5 -2
  14. package/dist/index.es.js +2528 -750
  15. package/dist/index.es.js.map +1 -1
  16. package/dist/index.js +2714 -933
  17. package/dist/index.js.map +1 -1
  18. package/package.json +4 -4
  19. package/src/components/Types.tsx +2 -2
  20. package/src/components/accordion/CAccordionButton.tsx +2 -1
  21. package/src/components/calendar/CCalendar.tsx +482 -0
  22. package/src/components/calendar/CCalendar.utils.ts +183 -0
  23. package/src/components/datepicker/CDatePicker.tsx +49 -0
  24. package/src/components/daterangepicker/CDateRangePicker.tsx +366 -0
  25. package/src/components/dropdown/CDropdown.tsx +19 -24
  26. package/src/components/dropdown/CDropdownMenu.tsx +55 -3
  27. package/src/components/dropdown/CDropdownToggle.tsx +28 -5
  28. package/src/components/picker/CPicker.tsx +142 -0
  29. package/src/components/timepicker/CTimePicker.tsx +341 -0
  30. package/src/components/timepicker/CTimePicker.utils.ts +27 -0
  31. package/src/components/timepicker/CTimePickerRollCol.tsx +57 -0
  32. package/src/index.ts +8 -2
  33. package/src/components/dropdown/CDropdownToggleCustom.tsx +0 -81
package/README.md CHANGED
@@ -43,7 +43,7 @@
43
43
 
44
44
  Several quick start options are available:
45
45
 
46
- - [Download the latest release](https://github.com/coreui/coreui-react/archive/v4.1.4.zip)
46
+ - [Download the latest release](https://github.com/coreui/coreui-react/archive/v4.2.0-beta.0.zip)
47
47
  - Clone the repo: `git clone https://github.com/coreui/coreui-react.git`
48
48
  - Install with [npm](https://www.npmjs.com/): `npm install @coreui/react`
49
49
  - Install with [yarn](https://yarnpkg.com/): `yarn add @coreui/react`
@@ -10,5 +10,5 @@ export declare type Shapes = 'rounded' | 'rounded-top' | 'rounded-end' | 'rounde
10
10
  export declare const shapePropType: PropTypes.Requireable<string>;
11
11
  export declare type TextColors = Colors | 'white' | 'muted' | 'high-emphasis' | 'medium-emphasis' | 'disabled' | 'high-emphasis-inverse' | 'medium-emphasis-inverse' | 'disabled-inverse' | string;
12
12
  export declare const textColorsPropType: PropTypes.Requireable<string>;
13
- export declare type Triggers = 'hover' | 'focus' | 'click' | 'click-init';
13
+ export declare type Triggers = 'hover' | 'focus' | 'click';
14
14
  export declare const triggerPropType: PropTypes.Requireable<Triggers>;
@@ -0,0 +1,89 @@
1
+ import React, { ReactNode } from 'react';
2
+ export interface CCalendarProps {
3
+ /**
4
+ * Default date of the component
5
+ */
6
+ calendarDate?: Date | string;
7
+ /**
8
+ * A string of all className you want applied to the component.
9
+ */
10
+ className?: string;
11
+ /**
12
+ * Specify the list of dates that cannot be selected.
13
+ */
14
+ disabledDates?: Date[] | Date[][];
15
+ /**
16
+ * Initial selected to date (range).
17
+ */
18
+ endDate?: Date | string | null;
19
+ /**
20
+ * Sets the day of start week.
21
+ * 0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday, 7 - Sunday
22
+ */
23
+ firstDayOfWeek?: number;
24
+ /**
25
+ * Sets the default locale for components. If not set, it is inherited from the navigator.language.
26
+ */
27
+ locale?: string;
28
+ /**
29
+ * Max selectable date.
30
+ */
31
+ maxDate?: Date;
32
+ /**
33
+ * Min selectable date.
34
+ */
35
+ minDate?: Date;
36
+ /**
37
+ * Show arrows navigation.
38
+ */
39
+ navigation?: boolean;
40
+ /**
41
+ * The custom next icon.
42
+ */
43
+ nextIcon?: ReactNode;
44
+ /**
45
+ * The custom next double icon.
46
+ */
47
+ nextDoubleIcon?: ReactNode;
48
+ /**
49
+ * The custom prev icon.
50
+ */
51
+ prevIcon?: ReactNode;
52
+ /**
53
+ * The custom prev double icon.
54
+ */
55
+ prevDoubleIcon?: ReactNode;
56
+ /**
57
+ * Allow range selection.
58
+ */
59
+ range?: boolean;
60
+ /**
61
+ * Toggle select mode between start and end date.
62
+ */
63
+ selectEndDate?: boolean;
64
+ /**
65
+ * Initial selected date.
66
+ */
67
+ startDate?: Date | string | null;
68
+ /**
69
+ * Set length of day name.
70
+ */
71
+ weekdayLength?: number;
72
+ /**
73
+ * Callback fired when the user hovers over the calendar cell.
74
+ */
75
+ onCalendarCellHover?: (date: Date | null) => void;
76
+ /**
77
+ * Callback fired when the calendar date changed.
78
+ */
79
+ onCalendarDateChange?: (date: Date) => void;
80
+ /**
81
+ * Callback fired when the start date changed.
82
+ */
83
+ onStartDateChange?: (date: Date | null) => void;
84
+ /**
85
+ * Callback fired when the end date changed.
86
+ */
87
+ onEndDateChange?: (date: Date | null) => void;
88
+ }
89
+ export declare const CCalendar: React.ForwardRefExoticComponent<CCalendarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,20 @@
1
+ export declare const convertToLocalDate: (d: Date, locale: string, options?: {}) => string;
2
+ export declare const convertToLocalTime: (d: Date, locale: string, options?: {}) => string;
3
+ export declare const createGroupsInArray: (arr: any[], numberOfGroups: number) => any[][];
4
+ export declare const getCurrentYear: () => number;
5
+ export declare const getCurrentMonth: () => number;
6
+ export declare const getMonthName: (month: number, locale: string) => string;
7
+ export declare const getMonthsNames: (locale: string) => string[];
8
+ export declare const getYears: (year: number) => number[];
9
+ export declare const getMonthDetails: (year: number, month: number, firstDayOfWeek: number) => {
10
+ date: Date;
11
+ month: string;
12
+ }[][];
13
+ export declare const isDisabled: (date: Date, min?: Date | undefined, max?: Date | undefined, dates?: Date[] | Date[][] | undefined) => boolean | undefined;
14
+ export declare const isDateInRange: (date: Date, start: Date | null, end: Date | null) => boolean | null;
15
+ export declare const isDateSelected: (date: Date, start: Date | null, end: Date | null) => boolean | null;
16
+ export declare const isEndDate: (date: Date, start: Date | null, end: Date | null) => boolean | null;
17
+ export declare const isLastDayOfMonth: (date: Date) => boolean;
18
+ export declare const isSameDateAs: (date: Date, date2: Date) => boolean;
19
+ export declare const isStartDate: (date: Date, start: Date | null, end: Date | null) => boolean | null;
20
+ export declare const isToday: (date: Date) => boolean;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { CDateRangePickerProps } from '../daterangepicker/CDateRangePicker';
3
+ export interface CDatePickerProps extends Omit<CDateRangePickerProps, 'calendars' | 'endDate' | 'range' | 'onEndDateChange' | 'onStartDateChange' | 'ranges' | 'selectEndDate' | 'startDate'> {
4
+ /**
5
+ * Initial selected date.
6
+ */
7
+ date?: Date | string | null;
8
+ /**
9
+ * Callback fired when the date changed.
10
+ */
11
+ onDateChange?: (date: Date | null) => void;
12
+ }
13
+ export declare const CDatePicker: React.ForwardRefExoticComponent<CDatePickerProps & React.RefAttributes<HTMLDivElement | HTMLLIElement>>;
@@ -0,0 +1,50 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { CCalendarProps } from '../calendar/CCalendar';
3
+ import { CPickerProps } from './../picker/CPicker';
4
+ export interface CDateRangePickerProps extends Omit<CPickerProps, 'autoClose' | 'component' | 'dark' | 'placeholder' | 'variant'>, Omit<CCalendarProps, 'onCalendarCellHover' | 'onCalendarDateChange'> {
5
+ /**
6
+ * The number of calendars that render on desktop devices.
7
+ */
8
+ calendars?: number;
9
+ /**
10
+ * Enables selection cleaner element.
11
+ */
12
+ cleaner?: boolean;
13
+ /**
14
+ * Cleaner icon.
15
+ */
16
+ cleanerIcon?: ReactNode | boolean;
17
+ /**
18
+ * Default input icon.
19
+ */
20
+ defaultIcon?: ReactNode | boolean;
21
+ /**
22
+ * Default icon between date input fields.
23
+ */
24
+ infixIcon?: ReactNode | boolean;
25
+ /**
26
+ * Toggle the readonly state for the component.
27
+ */
28
+ inputReadOnly?: boolean;
29
+ /**
30
+ * Specifies short hints that are visible in start date and end date inputs.
31
+ */
32
+ placeholder?: string | string[];
33
+ /**
34
+ * @ignore
35
+ */
36
+ range?: boolean;
37
+ /**
38
+ * Predefined date ranges the user can select from.
39
+ */
40
+ ranges?: object;
41
+ /**
42
+ * Size the component small or large.
43
+ */
44
+ size?: 'sm' | 'lg';
45
+ /**
46
+ * Provide an additional time selection by adding select boxes to choose times.
47
+ */
48
+ timepicker?: boolean;
49
+ }
50
+ export declare const CDateRangePicker: React.ForwardRefExoticComponent<CDateRangePickerProps & React.RefAttributes<HTMLDivElement | HTMLLIElement>>;
@@ -1,4 +1,4 @@
1
- import React, { ElementType, HTMLAttributes } from 'react';
1
+ import React, { ElementType, HTMLAttributes, RefObject } from 'react';
2
2
  import { Placements } from '../Types';
3
3
  export declare type Directions = 'start' | 'end';
4
4
  export declare type Breakpoints = {
@@ -22,6 +22,14 @@ export interface CDropdownProps extends HTMLAttributes<HTMLDivElement | HTMLLIEl
22
22
  * @type 'start' | 'end' | { xs: 'start' | 'end' } | { sm: 'start' | 'end' } | { md: 'start' | 'end' } | { lg: 'start' | 'end' } | { xl: 'start' | 'end'} | { xxl: 'start' | 'end'}
23
23
  */
24
24
  alignment?: Alignments;
25
+ /**
26
+ * Configure the auto close behavior of the dropdown:
27
+ * - `true` - the dropdown will be closed by clicking outside or inside the dropdown menu.
28
+ * - `false` - the dropdown will be closed by clicking the toggle button and manually calling hide or toggle method. (Also will not be closed by pressing esc key)
29
+ * - `'inside'` - the dropdown will be closed (only) by clicking inside the dropdown menu.
30
+ * - `'outside'` - the dropdown will be closed (only) by clicking outside the dropdown menu.
31
+ */
32
+ autoClose?: 'inside' | 'outside' | boolean;
25
33
  /**
26
34
  * A string of all className you want applied to the base component.
27
35
  */
@@ -68,6 +76,7 @@ export interface CDropdownProps extends HTMLAttributes<HTMLDivElement | HTMLLIEl
68
76
  visible?: boolean;
69
77
  }
70
78
  interface ContextProps extends CDropdownProps {
79
+ dropdownToggleRef: RefObject<any> | undefined;
71
80
  setVisible: React.Dispatch<React.SetStateAction<boolean | undefined>>;
72
81
  }
73
82
  export declare const CDropdownContext: React.Context<ContextProps>;
@@ -6,6 +6,10 @@ export interface CDropdownToggleProps extends Omit<CButtonProps, 'type'> {
6
6
  * Enables pseudo element caret on toggler.
7
7
  */
8
8
  caret?: boolean;
9
+ /**
10
+ * Create a custom toggler which accepts any content.
11
+ */
12
+ custom?: boolean;
9
13
  /**
10
14
  * Similarly, create split button dropdowns with virtually the same markup as single button dropdowns, but with the addition of `.dropdown-toggle-split` className for proper spacing around the dropdown caret.
11
15
  */
@@ -0,0 +1,37 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { CDropdownProps } from '../dropdown/CDropdown';
3
+ export interface CPickerProps extends Omit<CDropdownProps, 'variant'> {
4
+ /**
5
+ * Cancel button text.
6
+ */
7
+ cancelButtonText?: ReactNode;
8
+ /**
9
+ * Set container type for the component.
10
+ */
11
+ container?: 'dropdown' | 'inline';
12
+ /**
13
+ * Toggle the disabled state for the component.
14
+ */
15
+ disabled?: boolean;
16
+ /**
17
+ * Toggle visibility of footer element or set the content of footer.
18
+ */
19
+ footer?: boolean | ReactNode;
20
+ /**
21
+ * Ok button text
22
+ */
23
+ okButtonText?: ReactNode;
24
+ /**
25
+ * Callback fired when the cancel button has been clicked.
26
+ */
27
+ onCancelClick?: () => void;
28
+ /**
29
+ * Callback fired when the ok button has been clicked.
30
+ */
31
+ onOkClick?: () => void;
32
+ /**
33
+ * The content of toggler.
34
+ */
35
+ toggler?: ReactNode;
36
+ }
37
+ export declare const CPicker: React.ForwardRefExoticComponent<CPickerProps & React.RefAttributes<HTMLDivElement | HTMLLIElement>>;
@@ -0,0 +1,49 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { CPickerProps } from './../picker/CPicker';
3
+ export interface CTimePickerProps extends Omit<CPickerProps, 'autoClose' | 'component' | 'dark' | 'placeholder' | 'variant' | 'onChange'> {
4
+ /**
5
+ * A string of all className you want applied to the component.
6
+ */
7
+ className?: string;
8
+ /**
9
+ * Enables selection cleaner element.
10
+ */
11
+ cleaner?: boolean;
12
+ /**
13
+ * Cleaner icon.
14
+ */
15
+ cleanerIcon?: ReactNode | boolean;
16
+ /**
17
+ * Default input icon.
18
+ */
19
+ defaultIcon?: ReactNode | boolean;
20
+ /**
21
+ * Toggle the readonly state for the component.
22
+ */
23
+ inputReadOnly?: boolean;
24
+ /**
25
+ * Sets the default locale for components. If not set, it is inherited from the navigator.language.
26
+ */
27
+ locale?: string;
28
+ /**
29
+ * Callback fired when the user hovers over the calendar cell.
30
+ */
31
+ onChange?: (timeString: string, localeTimeString: string, date: Date) => void;
32
+ /**
33
+ * Specifies a short hint that is visible in the input.
34
+ */
35
+ placeholder?: string;
36
+ /**
37
+ * Size the component small or large.
38
+ */
39
+ size?: 'sm' | 'lg';
40
+ /**
41
+ * Default value of the component
42
+ */
43
+ value?: Date | string | null;
44
+ /**
45
+ * Set the time picker variant to a roll or select.
46
+ */
47
+ variant?: 'roll' | 'select';
48
+ }
49
+ export declare const CTimePicker: React.ForwardRefExoticComponent<CTimePickerProps & React.RefAttributes<HTMLDivElement | HTMLLIElement>>;
@@ -0,0 +1,4 @@
1
+ export declare const convert12hTo24h: (abbr: 'am' | 'pm', hour: number) => number;
2
+ export declare const convert24hTo12h: (hour: number) => number;
3
+ export declare const getAmPm: (date: Date, locale: string) => "am" | "pm";
4
+ export declare const isAmPm: (locale: string) => boolean;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export interface Element {
3
+ value: number | string;
4
+ label: number | string;
5
+ }
6
+ export interface CTimePickerRollColProps {
7
+ elements: Element[];
8
+ onClick?: (value: number | string) => void;
9
+ selected?: number | string | null;
10
+ }
11
+ export declare const CTimePickerRollCol: React.ForwardRefExoticComponent<CTimePickerRollColProps & React.RefAttributes<HTMLDivElement>>;
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ import { CBreadcrumbItem } from './components/breadcrumb/CBreadcrumbItem';
15
15
  import { CButton } from './components/button/CButton';
16
16
  import { CButtonGroup } from './components/button-group/CButtonGroup';
17
17
  import { CButtonToolbar } from './components/button-group/CButtonToolbar';
18
+ import { CCalendar } from './components/calendar/CCalendar';
18
19
  import { CCallout } from './components/callout/CCallout';
19
20
  import { CCard } from './components/card/CCard';
20
21
  import { CCardBody } from './components/card/CCardBody';
@@ -32,6 +33,8 @@ import { CCarouselCaption } from './components/carousel/CCarouselCaption';
32
33
  import { CCarouselItem } from './components/carousel/CCarouselItem';
33
34
  import { CCollapse } from './components/collapse/CCollapse';
34
35
  import { CCloseButton } from './components/close-button/CCloseButton';
36
+ import { CDatePicker } from './components/datepicker/CDatePicker';
37
+ import { CDateRangePicker } from './components/daterangepicker/CDateRangePicker';
35
38
  import { CDropdown } from './components/dropdown/CDropdown';
36
39
  import { CDropdownDivider } from './components/dropdown/CDropdownDivider';
37
40
  import { CDropdownHeader } from './components/dropdown/CDropdownHeader';
@@ -39,7 +42,6 @@ import { CDropdownItem } from './components/dropdown/CDropdownItem';
39
42
  import { CDropdownItemPlain } from './components/dropdown/CDropdownItemPlain';
40
43
  import { CDropdownMenu } from './components/dropdown/CDropdownMenu';
41
44
  import { CDropdownToggle } from './components/dropdown/CDropdownToggle';
42
- import { CDropdownToggleCustom } from './components/dropdown/CDropdownToggleCustom';
43
45
  import { CCol } from './components/grid/CCol';
44
46
  import { CContainer } from './components/grid/CContainer';
45
47
  import { CRow } from './components/grid/CRow';
@@ -116,11 +118,12 @@ import { CTableHeaderCell } from './components/table/CTableHeaderCell';
116
118
  import { CTableRow } from './components/table/CTableRow';
117
119
  import { CTabContent } from './components/tabs/CTabContent';
118
120
  import { CTabPane } from './components/tabs/CTabPane';
121
+ import { CTimePicker } from './components/timepicker/CTimePicker';
119
122
  import { CToast } from './components/toast/CToast';
120
123
  import { CToastBody } from './components/toast/CToastBody';
121
124
  import { CToastClose } from './components/toast/CToastClose';
122
125
  import { CToastHeader } from './components/toast/CToastHeader';
123
126
  import { CToaster } from './components/toast/CToaster';
124
127
  import { CTooltip } from './components/tooltip/CTooltip';
125
- export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBadge, CBackdrop, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCallout, CCard, CCardBody, CCardFooter, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCollapse, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CDropdownToggleCustom, CCol, CContainer, CRow, CFooter, CCardGroup, CForm, CFormCheck, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CImage, CInputGroup, CInputGroupText, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CSmartPagination, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarToggler, CSidebarHeader, CSidebarNav, CSmartTable, CSpinner, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CTabContent, CTabPane, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, };
128
+ export { CAccordion, CAccordionBody, CAccordionButton, CAccordionCollapse, CAccordionHeader, CAccordionItem, CAlert, CAlertHeading, CAlertLink, CAvatar, CBadge, CBackdrop, CBreadcrumb, CBreadcrumbItem, CButton, CButtonGroup, CButtonToolbar, CCalendar, CCallout, CCard, CCardBody, CCardFooter, CCardHeader, CCardImage, CCardImageOverlay, CCardLink, CCardSubtitle, CCardText, CCardTitle, CCarousel, CCarouselCaption, CCarouselItem, CCloseButton, CCollapse, CDatePicker, CDateRangePicker, CDropdown, CDropdownDivider, CDropdownHeader, CDropdownItem, CDropdownItemPlain, CDropdownMenu, CDropdownToggle, CCol, CContainer, CRow, CFooter, CCardGroup, CForm, CFormCheck, CFormFeedback, CFormFloating, CFormInput, CFormLabel, CFormRange, CFormSelect, CFormSwitch, CFormText, CFormTextarea, CImage, CInputGroup, CInputGroupText, CHeader, CHeaderBrand, CHeaderDivider, CHeaderNav, CHeaderText, CHeaderToggler, CLink, CListGroup, CListGroupItem, CLoadingButton, CModal, CModalBody, CModalContent, CModalDialog, CModalFooter, CModalHeader, CModalTitle, CMultiSelect, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler, CPagination, CPaginationItem, CPlaceholder, CPopover, CProgress, CProgressBar, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle, CSmartPagination, CSidebar, CSidebarBrand, CSidebarFooter, CSidebarToggler, CSidebarHeader, CSidebarNav, CSmartTable, CSpinner, CTable, CTableBody, CTableCaption, CTableDataCell, CTableFoot, CTableHead, CTableHeaderCell, CTableRow, CTabContent, CTabPane, CTimePicker, CToast, CToastBody, CToastClose, CToastHeader, CToaster, CTooltip, };
126
129
  export * from './components/';