@via-profit/ui-kit 0.1.0-rc.64 → 0.1.0-rc.65
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.
- package/Autocomplete/AutocompleteContainer.d.ts +6 -1
- package/Autocomplete/AutocompleteContainer.js +48 -18
- package/Autocomplete/context.d.ts +1 -0
- package/Autocomplete/context.js +2 -2
- package/Autocomplete/index.js +3 -3
- package/Badge/BadgeBase.js +6 -4
- package/Button/ButtonBase.js +5 -3
- package/Calendar/CalendarBody.d.ts +4 -6
- package/Calendar/CalendarBody.js +18 -2
- package/Calendar/CalendarCell.d.ts +13 -0
- package/Calendar/CalendarCell.js +1 -1
- package/Calendar/CalendarControlButton.d.ts +5 -1
- package/Calendar/CalendarControlButton.js +16 -4
- package/Calendar/CalendarDateContainer.d.ts +2 -4
- package/Calendar/CalendarDateContainer.js +17 -2
- package/Calendar/CalendarEmptyCell.js +3 -0
- package/Calendar/CalendarIconPrev.d.ts +4 -0
- package/Calendar/{IconChevronLeft.js → CalendarIconPrev.js} +2 -2
- package/Calendar/CalendarMonthCell.d.ts +6 -0
- package/Calendar/CalendarPaper.d.ts +4 -6
- package/Calendar/CalendarPaper.js +18 -2
- package/Calendar/CalendarWeekDaysBar.d.ts +12 -2
- package/Calendar/CalendarWeekRow.d.ts +2 -4
- package/Calendar/CalendarWeekRow.js +17 -2
- package/Calendar/CalendarYearCell.d.ts +3 -0
- package/Calendar/IconChevronRight.d.ts +2 -1
- package/Calendar/IconChevronRight.js +2 -2
- package/Calendar/index.d.ts +189 -6
- package/Calendar/index.js +75 -74
- package/Calendar/reducer.d.ts +14 -0
- package/Calendar/reducer.js +18 -0
- package/Calendar/use-calendar.d.ts +46 -6
- package/Calendar/use-calendar.js +0 -6
- package/DatePicker/index.d.ts +81 -5
- package/DatePicker/index.js +79 -5
- package/DatePicker/useDatePickerFormat.d.ts +26 -7
- package/Highlighted/index.js +5 -3
- package/Menu/MenuContainer.d.ts +5 -1
- package/Menu/MenuContainer.js +5 -3
- package/Modal/BaseModal/ModalWrapper.d.ts +5 -0
- package/Modal/BaseModal/ModalWrapper.js +16 -17
- package/Modal/BaseModal/RenderModal.js +4 -2
- package/Modal/BaseModal/context.d.ts +1 -1
- package/Modal/BaseModal/context.js +1 -1
- package/Modal/BaseModal/index.d.ts +6 -1
- package/Modal/BaseModal/index.js +7 -16
- package/Modal/ConfirmBox/ConfirmBoxFooter.js +2 -8
- package/Modal/ConfirmBox/index.js +7 -13
- package/Modal/Drawer/index.js +7 -5
- package/Modal/MessageBox/index.js +7 -5
- package/Popper/index.js +3 -1
- package/Selectbox/SelectboxButton.d.ts +11 -0
- package/Selectbox/SelectboxButton.js +85 -0
- package/Selectbox/SelectboxButtonWrapper.d.ts +8 -0
- package/Selectbox/SelectboxButtonWrapper.js +54 -0
- package/Selectbox/SelectboxChevronIcon.d.ts +6 -0
- package/Selectbox/SelectboxChevronIcon.js +28 -0
- package/Selectbox/SelectboxContainer.d.ts +4 -0
- package/{Calendar/CalendarBottomBar.js → Selectbox/SelectboxContainer.js} +4 -10
- package/Selectbox/index.d.ts +121 -5
- package/Selectbox/index.js +113 -43
- package/Surface/index.js +7 -5
- package/TextArea/index.js +10 -8
- package/TextField/TextFieldContainer.js +1 -0
- package/TextField/TextFieldErrorText.d.ts +0 -1
- package/TextField/TextFieldErrorText.js +2 -2
- package/TextField/TextFieldInputWrapper.js +1 -0
- package/TextField/index.js +10 -8
- package/package.json +1 -1
- package/utils/TabManager.d.ts +2 -1
- package/utils/TabManager.js +14 -3
- package/Calendar/CalendarBottomBar.d.ts +0 -4
- package/Calendar/CalendarMonthControl.d.ts +0 -6
- package/Calendar/CalendarMonthControl.js +0 -41
- package/Calendar/IconChevronLeft.d.ts +0 -3
- package/Selectbox/IconShow.d.ts +0 -3
- package/Selectbox/IconShow.js +0 -9
|
@@ -38,6 +38,11 @@ export interface AutocompleteProps<T, Multiple extends boolean | undefined = und
|
|
|
38
38
|
* Show clear button if clearable is true
|
|
39
39
|
*/
|
|
40
40
|
readonly clearable?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* should the Menu component opening when input focused\
|
|
43
|
+
* **Default:** `true`
|
|
44
|
+
*/
|
|
45
|
+
readonly openOnFocus?: boolean;
|
|
41
46
|
/**
|
|
42
47
|
* items render function
|
|
43
48
|
*/
|
|
@@ -48,7 +53,7 @@ export interface AutocompleteProps<T, Multiple extends boolean | undefined = und
|
|
|
48
53
|
readonly getOptionSelected?: GetOptionSelected<T>;
|
|
49
54
|
readonly onRequestClose?: OnRequestClose;
|
|
50
55
|
readonly onInputChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
51
|
-
readonly onRequestOpen?: (event: React.KeyboardEvent<HTMLElement> | React.MouseEvent<HTMLElement> | React.FocusEvent<HTMLInputElement, Element>) => void;
|
|
56
|
+
readonly onRequestOpen?: (event: React.KeyboardEvent<HTMLElement> | React.MouseEvent<HTMLElement> | React.FocusEvent<HTMLInputElement, Element> | React.ChangeEvent<HTMLInputElement>) => void;
|
|
52
57
|
/**
|
|
53
58
|
* Overridable components map
|
|
54
59
|
*/
|
|
@@ -46,13 +46,16 @@ const context_1 = __importStar(require("./context"));
|
|
|
46
46
|
const IconClear_1 = __importDefault(require("./IconClear"));
|
|
47
47
|
const ClickOutside_1 = require("../ClickOutside");
|
|
48
48
|
const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
49
|
-
const { items, value, multiple, isOpen = false, isLoading = false, clearIfNotSelected = true, anchorPos = 'auto-start-end', requiredAsterisk, startIcon, fullWidth, placeholder, label, error, errorText, inputRef, filterItems, children, onChange, selectedItemToString, clearable = true, onInputChange, getOptionSelected, onRequestOpen = () => undefined, onRequestClose = () => undefined, overrides } = props, nativeInputProps = __rest(props, ["items", "value", "multiple", "isOpen", "isLoading", "clearIfNotSelected", "anchorPos", "requiredAsterisk", "startIcon", "fullWidth", "placeholder", "label", "error", "errorText", "inputRef", "filterItems", "children", "onChange", "selectedItemToString", "clearable", "onInputChange", "getOptionSelected", "onRequestOpen", "onRequestClose", "overrides"]);
|
|
49
|
+
const { items, value, multiple, isOpen = false, isLoading = false, clearIfNotSelected = true, anchorPos = 'auto-start-end', openOnFocus = true, requiredAsterisk, startIcon, fullWidth, placeholder, label, error, errorText, inputRef, filterItems, children, onChange, selectedItemToString, clearable = true, onInputChange, getOptionSelected, onRequestOpen = () => undefined, onRequestClose = () => undefined, overrides } = props, nativeInputProps = __rest(props, ["items", "value", "multiple", "isOpen", "isLoading", "clearIfNotSelected", "anchorPos", "openOnFocus", "requiredAsterisk", "startIcon", "fullWidth", "placeholder", "label", "error", "errorText", "inputRef", "filterItems", "children", "onChange", "selectedItemToString", "clearable", "onInputChange", "getOptionSelected", "onRequestOpen", "onRequestClose", "overrides"]);
|
|
50
50
|
const menuRef = react_1.default.useRef(null);
|
|
51
51
|
const fieldInputRef = react_1.default.useRef(null);
|
|
52
52
|
const isFocusedRef = react_1.default.useRef(false);
|
|
53
|
+
const itemsRef = react_1.default.useRef(items);
|
|
53
54
|
const { state, dispatch } = (0, context_1.default)();
|
|
54
55
|
const { currentOpen, filteredItems, inputValue, currentValue, anchorElement, currentLoading } = state;
|
|
55
|
-
const overridesMap = react_1.default.useMemo(() => (
|
|
56
|
+
const overridesMap = react_1.default.useMemo(() => ({
|
|
57
|
+
TextField: (overrides === null || overrides === void 0 ? void 0 : overrides.TextField) || AutocompleteTextField_1.default,
|
|
58
|
+
}), [overrides]);
|
|
56
59
|
const clear = react_1.default.useCallback(() => {
|
|
57
60
|
if (onChange) {
|
|
58
61
|
onChange((multiple ? [] : null));
|
|
@@ -93,10 +96,12 @@ const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
|
93
96
|
case 'ArrowDown':
|
|
94
97
|
{
|
|
95
98
|
event.preventDefault();
|
|
96
|
-
(_c = menuRef.current) === null || _c === void 0 ? void 0 : _c.hightlightNextItem();
|
|
97
99
|
if (!currentOpen) {
|
|
98
100
|
onRequestOpen(event);
|
|
99
101
|
}
|
|
102
|
+
if (currentOpen) {
|
|
103
|
+
(_c = menuRef.current) === null || _c === void 0 ? void 0 : _c.hightlightNextItem();
|
|
104
|
+
}
|
|
100
105
|
}
|
|
101
106
|
break;
|
|
102
107
|
case 'Home':
|
|
@@ -126,6 +131,14 @@ const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
|
126
131
|
break;
|
|
127
132
|
}
|
|
128
133
|
}, [currentOpen, onRequestClose, onRequestOpen]);
|
|
134
|
+
const applyFilterForItems = react_1.default.useCallback((inputValue, itemList) => {
|
|
135
|
+
const query = inputValue.toLowerCase().trim();
|
|
136
|
+
// Apply filter
|
|
137
|
+
const newItems = typeof filterItems !== 'function' || query.length === 0
|
|
138
|
+
? itemList
|
|
139
|
+
: filterItems(itemList, { query, inputValue });
|
|
140
|
+
return newItems;
|
|
141
|
+
}, [filterItems]);
|
|
129
142
|
/**
|
|
130
143
|
* Only affected value change action
|
|
131
144
|
*/
|
|
@@ -154,8 +167,18 @@ const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
|
154
167
|
}
|
|
155
168
|
}, [filteredItems]);
|
|
156
169
|
react_1.default.useEffect(() => {
|
|
157
|
-
|
|
158
|
-
|
|
170
|
+
if (currentOpen !== isOpen || currentLoading !== isLoading) {
|
|
171
|
+
// console.debug('Use effect 1', { currentOpen: isOpen, currentLoading: isLoading });
|
|
172
|
+
dispatch((0, context_1.actionSetPartial)({ currentOpen: isOpen, currentLoading: isLoading }));
|
|
173
|
+
}
|
|
174
|
+
}, [isOpen, isLoading, dispatch, currentOpen, currentLoading]);
|
|
175
|
+
react_1.default.useEffect(() => {
|
|
176
|
+
if (JSON.stringify(items) !== JSON.stringify(itemsRef.current)) {
|
|
177
|
+
// console.debug('Use effect 2', { filteredItems: applyFilterForItems(inputValue, items) });
|
|
178
|
+
itemsRef.current = items;
|
|
179
|
+
dispatch((0, context_1.actionSetPartial)({ filteredItems: applyFilterForItems(inputValue, items) }));
|
|
180
|
+
}
|
|
181
|
+
}, [items, inputValue, applyFilterForItems, dispatch]);
|
|
159
182
|
react_1.default.useEffect(() => {
|
|
160
183
|
const mouseDownEvent = (event) => {
|
|
161
184
|
var _a;
|
|
@@ -177,7 +200,7 @@ const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
|
177
200
|
window.document.removeEventListener(ClickOutside_1.mouseEventMap.onMouseDown, mouseDownEvent);
|
|
178
201
|
};
|
|
179
202
|
}, [onRequestClose, anchorElement]);
|
|
180
|
-
return (react_1.default.createElement(
|
|
203
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
181
204
|
react_1.default.useMemo(() => (react_1.default.createElement(overridesMap.TextField, Object.assign({ placeholder: placeholder, label: label, error: error, requiredAsterisk: requiredAsterisk, errorText: errorText, fullWidth: fullWidth, startIcon: startIcon, isLoading: currentLoading, endIcon: clearable ? (react_1.default.createElement(Button_1.default, { iconOnly: true, type: "button", onClick: () => (currentLoading ? 'undefined' : clear()) }, currentLoading ? react_1.default.createElement(Spinner_1.default, null) : react_1.default.createElement(IconClear_1.default, null))) : undefined }, nativeInputProps, { onKeyDown: event => {
|
|
182
205
|
inputKeydownEvent(event);
|
|
183
206
|
if (typeof nativeInputProps.onKeyDown === 'function') {
|
|
@@ -202,14 +225,19 @@ const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
|
202
225
|
}
|
|
203
226
|
}, onFocus: event => {
|
|
204
227
|
isFocusedRef.current = true;
|
|
205
|
-
|
|
228
|
+
if (openOnFocus) {
|
|
229
|
+
onRequestOpen(event);
|
|
230
|
+
}
|
|
231
|
+
if (!openOnFocus && !currentOpen && inputValue !== '') {
|
|
232
|
+
onRequestOpen(event);
|
|
233
|
+
}
|
|
206
234
|
if (typeof nativeInputProps.onFocus === 'function') {
|
|
207
235
|
nativeInputProps.onFocus(event);
|
|
208
236
|
}
|
|
209
237
|
}, onClick: event => {
|
|
210
|
-
if (isFocusedRef.current) {
|
|
211
|
-
|
|
212
|
-
}
|
|
238
|
+
// if (isFocusedRef.current) {
|
|
239
|
+
// onRequestOpen(event);
|
|
240
|
+
// }
|
|
213
241
|
if (typeof nativeInputProps.onClick === 'function') {
|
|
214
242
|
nativeInputProps.onClick(event);
|
|
215
243
|
}
|
|
@@ -217,16 +245,16 @@ const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
|
217
245
|
if (typeof onInputChange === 'function') {
|
|
218
246
|
onInputChange(event);
|
|
219
247
|
}
|
|
220
|
-
|
|
221
|
-
//
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
248
|
+
// If openOnFocus is false, but value is not empty
|
|
249
|
+
// we should open menu list if is not opened
|
|
250
|
+
if (!openOnFocus && isFocusedRef.current && !currentOpen) {
|
|
251
|
+
onRequestOpen(event);
|
|
252
|
+
}
|
|
253
|
+
// console.debug('set filteredItems');
|
|
225
254
|
dispatch((0, context_1.actionSetPartial)({
|
|
226
|
-
filteredItems:
|
|
255
|
+
filteredItems: applyFilterForItems(event.currentTarget.value, items),
|
|
227
256
|
inputValue: event.currentTarget.value,
|
|
228
257
|
}));
|
|
229
|
-
// dispatch(actionSetPartial({ inputValue: event.currentTarget.value }));
|
|
230
258
|
} }))), [
|
|
231
259
|
overridesMap,
|
|
232
260
|
placeholder,
|
|
@@ -245,9 +273,11 @@ const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
|
245
273
|
anchorElement,
|
|
246
274
|
dispatch,
|
|
247
275
|
inputRef,
|
|
276
|
+
openOnFocus,
|
|
277
|
+
currentOpen,
|
|
248
278
|
onRequestOpen,
|
|
249
279
|
onInputChange,
|
|
250
|
-
|
|
280
|
+
applyFilterForItems,
|
|
251
281
|
items,
|
|
252
282
|
]),
|
|
253
283
|
react_1.default.useMemo(() => (react_1.default.createElement(Menu_1.default, { ref: menuRef, anchorPos: anchorPos, multiple: multiple, items: filteredItems, value: currentValue, isOpen: currentOpen && filteredItems.length > 0, autofocus: false, anchorElement: anchorElement, closeOutsideClick: false, getOptionSelected: getOptionSelected, onSelectItem: item => {
|
|
@@ -18,6 +18,7 @@ export declare const defaultState: State;
|
|
|
18
18
|
export declare const reducer: React.Reducer<State, Action>;
|
|
19
19
|
interface ContextProviderProps {
|
|
20
20
|
readonly children: React.ReactNode | readonly React.ReactNode[];
|
|
21
|
+
readonly initialState?: Partial<State>;
|
|
21
22
|
}
|
|
22
23
|
export declare const ContextProvider: React.FC<ContextProviderProps>;
|
|
23
24
|
export declare const useContext: () => {
|
package/Autocomplete/context.js
CHANGED
|
@@ -32,8 +32,8 @@ const context = react_1.default.createContext({
|
|
|
32
32
|
dispatch: () => undefined,
|
|
33
33
|
});
|
|
34
34
|
const ContextProvider = props => {
|
|
35
|
-
const { children } = props;
|
|
36
|
-
const [state, dispatch] = react_1.default.useReducer(exports.reducer, exports.defaultState);
|
|
35
|
+
const { children, initialState } = props;
|
|
36
|
+
const [state, dispatch] = react_1.default.useReducer(exports.reducer, Object.assign(Object.assign({}, exports.defaultState), initialState));
|
|
37
37
|
return react_1.default.createElement(context.Provider, { value: { state, dispatch } }, children);
|
|
38
38
|
};
|
|
39
39
|
exports.ContextProvider = ContextProvider;
|
package/Autocomplete/index.js
CHANGED
|
@@ -36,9 +36,9 @@ const AutocompleteContainer_1 = __importDefault(require("./AutocompleteContainer
|
|
|
36
36
|
const context_1 = require("./context");
|
|
37
37
|
__exportStar(require("./AutocompleteContainer"), exports);
|
|
38
38
|
const Autocomplete = react_1.default.forwardRef((props, ref) => {
|
|
39
|
-
const { children } = props, restProps = __rest(props, ["children"]);
|
|
40
|
-
return (react_1.default.createElement(context_1.ContextProvider,
|
|
41
|
-
react_1.default.createElement(AutocompleteContainer_1.default, Object.assign({}, restProps, { ref: ref }), children)));
|
|
39
|
+
const { children, items, isOpen, value } = props, restProps = __rest(props, ["children", "items", "isOpen", "value"]);
|
|
40
|
+
return (react_1.default.createElement(context_1.ContextProvider, { initialState: { filteredItems: items, currentOpen: isOpen, currentValue: value } },
|
|
41
|
+
react_1.default.createElement(AutocompleteContainer_1.default, Object.assign({}, restProps, { items: items, isOpen: isOpen, value: value, ref: ref }), children)));
|
|
42
42
|
});
|
|
43
43
|
Autocomplete.displayName = 'Autocomplete';
|
|
44
44
|
exports.default = Autocomplete;
|
package/Badge/BadgeBase.js
CHANGED
|
@@ -21,10 +21,12 @@ const BadgeContainer_1 = __importDefault(require("./BadgeContainer"));
|
|
|
21
21
|
const BadgeDeleteButton_1 = __importDefault(require("./BadgeDeleteButton"));
|
|
22
22
|
const BadgeBase = (props, ref) => {
|
|
23
23
|
const { children, startIcon, color, variant, overrides, onDelete } = props, nativeProps = __rest(props, ["children", "startIcon", "color", "variant", "overrides", "onDelete"]);
|
|
24
|
-
const overridesMap = react_1.default.useMemo(() => (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
const overridesMap = react_1.default.useMemo(() => ({
|
|
25
|
+
TextWrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.TextWrapper) || BadgeTextWrapper_1.default,
|
|
26
|
+
IconWrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.IconWrapper) || BadgeIconWrapper_1.default,
|
|
27
|
+
Container: (overrides === null || overrides === void 0 ? void 0 : overrides.Container) || BadgeContainer_1.default,
|
|
28
|
+
ButtonDelete: (overrides === null || overrides === void 0 ? void 0 : overrides.ButtonDelete) || BadgeDeleteButton_1.default,
|
|
29
|
+
}), [overrides]);
|
|
28
30
|
return (react_1.default.createElement(overridesMap.Container, Object.assign({}, nativeProps, { color: color, ref: ref }),
|
|
29
31
|
typeof startIcon !== 'undefined' && startIcon !== null && (react_1.default.createElement(overridesMap.IconWrapper, null, startIcon)),
|
|
30
32
|
react_1.default.createElement(overridesMap.TextWrapper, null, children),
|
package/Button/ButtonBase.js
CHANGED
|
@@ -20,9 +20,11 @@ const ButtonTextWrapper_1 = __importDefault(require("./ButtonTextWrapper"));
|
|
|
20
20
|
const ButtonContainer_1 = __importDefault(require("./ButtonContainer"));
|
|
21
21
|
const ButtonBase = (props, ref) => {
|
|
22
22
|
const { children, startIcon, endIcon, color, overrides, iconOnly, type } = props, nativeProps = __rest(props, ["children", "startIcon", "endIcon", "color", "overrides", "iconOnly", "type"]);
|
|
23
|
-
const overridesMap = react_1.default.useMemo(() => (
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const overridesMap = react_1.default.useMemo(() => ({
|
|
24
|
+
TextWrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.TextWrapper) || ButtonTextWrapper_1.default,
|
|
25
|
+
IconWrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.IconWrapper) || ButtonIconWrapper_1.default,
|
|
26
|
+
Container: (overrides === null || overrides === void 0 ? void 0 : overrides.Container) || ButtonContainer_1.default,
|
|
27
|
+
}), [overrides]);
|
|
26
28
|
if (iconOnly &&
|
|
27
29
|
((typeof startIcon !== 'undefined' && startIcon !== null) ||
|
|
28
30
|
(typeof endIcon !== 'undefined' && endIcon !== null))) {
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
6
|
-
export default CalendarBody;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type CalendarBodyProps = React.HTMLAttributes<HTMLDivElement>;
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<CalendarBodyProps & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export default _default;
|
package/Calendar/CalendarBody.js
CHANGED
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const react_1 = __importDefault(require("react"));
|
|
6
18
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
7
|
-
const
|
|
19
|
+
const StyledCalendarBody = styled_1.default.div `
|
|
8
20
|
position: relative;
|
|
9
21
|
display: flex;
|
|
10
22
|
flex-direction: column;
|
|
11
23
|
justify-content: stretch;
|
|
12
24
|
height: 15em;
|
|
13
25
|
`;
|
|
14
|
-
|
|
26
|
+
const CalendarBody = (props, ref) => {
|
|
27
|
+
const { children } = props, restProps = __rest(props, ["children"]);
|
|
28
|
+
return (react_1.default.createElement(StyledCalendarBody, Object.assign({}, restProps, { ref: ref }), children));
|
|
29
|
+
};
|
|
30
|
+
exports.default = react_1.default.forwardRef(CalendarBody);
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface CalendarCellProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/**
|
|
4
|
+
* if cell day is today, then property will be true
|
|
5
|
+
*/
|
|
3
6
|
readonly isToday?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* if cell day is selected, then property will be true
|
|
9
|
+
*/
|
|
4
10
|
readonly isSelected?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* if cell day is disabled, then property will be true
|
|
13
|
+
*/
|
|
5
14
|
readonly isDisabled?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Cell accent color\
|
|
17
|
+
* Possibility variants: `primary` `secondary` or custom color string like hex or rgb format
|
|
18
|
+
*/
|
|
6
19
|
readonly accentColor?: 'primary' | 'secondary' | string;
|
|
7
20
|
}
|
|
8
21
|
declare const _default: React.ForwardRefExoticComponent<CalendarCellProps & React.RefAttributes<HTMLButtonElement>>;
|
package/Calendar/CalendarCell.js
CHANGED
|
@@ -32,6 +32,6 @@ const Btn = (0, styled_1.default)(Button_1.default) `
|
|
|
32
32
|
`;
|
|
33
33
|
const CalendarCell = (props, ref) => {
|
|
34
34
|
const { isToday, children, isSelected, isDisabled, accentColor } = props, restProps = __rest(props, ["isToday", "children", "isSelected", "isDisabled", "accentColor"]);
|
|
35
|
-
return (react_1.default.createElement(Btn, Object.assign({
|
|
35
|
+
return (react_1.default.createElement(Btn, Object.assign({ iconOnly: true, type: "button", variant: isSelected ? 'standard' : isToday ? 'outlined' : 'plain', color: isSelected || isToday ? accentColor : 'default', tabIndex: isDisabled ? -1 : restProps.tabIndex, disabled: isDisabled }, restProps, { ref: ref }), children));
|
|
36
36
|
};
|
|
37
37
|
exports.default = react_1.default.forwardRef(CalendarCell);
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ButtonProps } from '../Button';
|
|
3
|
-
export type CalendarControlButtonProps = ButtonProps
|
|
3
|
+
export type CalendarControlButtonProps = ButtonProps & {
|
|
4
|
+
readonly isActive?: boolean;
|
|
5
|
+
};
|
|
4
6
|
declare const _default: React.ForwardRefExoticComponent<import("../Button/ButtonBase").ButtonBaseProps & {
|
|
5
7
|
readonly variant?: "standard" | "outlined" | "plain" | undefined;
|
|
8
|
+
} & {
|
|
9
|
+
readonly isActive?: boolean | undefined;
|
|
6
10
|
} & React.RefAttributes<HTMLButtonElement>>;
|
|
7
11
|
export default _default;
|
|
@@ -15,11 +15,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
const react_1 = __importDefault(require("react"));
|
|
18
|
-
const
|
|
18
|
+
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
19
19
|
const Button_1 = __importDefault(require("../Button"));
|
|
20
|
+
const StyledCalendarControlButton = (0, styled_1.default)(Button_1.default) `
|
|
21
|
+
color: ${({ theme }) => theme.color.accentSecondaryContrast.toString()};
|
|
22
|
+
background-color: ${({ theme }) => theme.color.accentSecondaryContrast.alpha(0).toString()};
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
&:hover {
|
|
25
|
+
color: ${({ theme }) => theme.color.accentSecondaryContrast.toString()};
|
|
26
|
+
background-color: ${({ theme }) => theme.color.accentSecondaryContrast.alpha(0.2).toString()};
|
|
27
|
+
}
|
|
28
|
+
&:active {
|
|
29
|
+
color: ${({ theme }) => theme.color.accentSecondaryContrast.toString()};
|
|
30
|
+
background-color: ${({ theme }) => theme.color.accentSecondaryContrast.alpha(0.5).toString()};
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
20
33
|
const CalendarControlButton = (props, ref) => {
|
|
21
|
-
const { children } = props, restProps = __rest(props, ["children"]);
|
|
22
|
-
|
|
23
|
-
return (react_1.default.createElement(Button_1.default, Object.assign({ type: "button", variant: "plain", color: color.accentSecondaryContrast.toString() }, restProps, { ref: ref }), children));
|
|
34
|
+
const { children, isActive } = props, restProps = __rest(props, ["children", "isActive"]);
|
|
35
|
+
return (react_1.default.createElement(StyledCalendarControlButton, Object.assign({ type: "button", variant: "plain", "$isActive": isActive }, restProps, { ref: ref }), children));
|
|
24
36
|
};
|
|
25
37
|
exports.default = react_1.default.forwardRef(CalendarControlButton);
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
as?: React.ElementType<any> | undefined;
|
|
5
|
-
} & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>>;
|
|
2
|
+
export type CalendarDateContainerProps = React.HTMLAttributes<HTMLDivElement>;
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<CalendarDateContainerProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
4
|
export default _default;
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
17
|
const react_1 = __importDefault(require("react"));
|
|
7
18
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
8
|
-
const
|
|
19
|
+
const StyledCalendarDateContainer = styled_1.default.div `
|
|
9
20
|
display: flex;
|
|
10
21
|
flex-direction: column;
|
|
11
22
|
justify-content: stretch;
|
|
12
23
|
padding: 0.4em;
|
|
13
24
|
`;
|
|
14
|
-
|
|
25
|
+
const CalendarDateContainer = (props, ref) => {
|
|
26
|
+
const { children } = props, restProps = __rest(props, ["children"]);
|
|
27
|
+
return (react_1.default.createElement(StyledCalendarDateContainer, Object.assign({}, restProps, { ref: ref }), children));
|
|
28
|
+
};
|
|
29
|
+
exports.default = react_1.default.forwardRef(CalendarDateContainer);
|
|
@@ -21,6 +21,9 @@ const Elem = styled_1.default.span `
|
|
|
21
21
|
width: 3em;
|
|
22
22
|
height: 3em;
|
|
23
23
|
min-width: 0;
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
justify-content: center;
|
|
24
27
|
`;
|
|
25
28
|
const CalendarEmptyCell = (props, ref) => {
|
|
26
29
|
const { children } = props, restProps = __rest(props, ["children"]);
|
|
@@ -4,6 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const
|
|
7
|
+
const CalendarIconPrev = (props, ref) => (react_1.default.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ref: ref }, props),
|
|
8
8
|
react_1.default.createElement("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 48, d: "M328 112 184 256l144 144" })));
|
|
9
|
-
exports.default = react_1.default.forwardRef(
|
|
9
|
+
exports.default = react_1.default.forwardRef(CalendarIconPrev);
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface CalendarMonthCellProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/**
|
|
4
|
+
* If month selected, then property will be true
|
|
5
|
+
*/
|
|
3
6
|
readonly isSelected?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* accent color
|
|
9
|
+
*/
|
|
4
10
|
readonly accentColor?: 'primary' | 'secondary' | string;
|
|
5
11
|
}
|
|
6
12
|
declare const _default: React.ForwardRefExoticComponent<CalendarMonthCellProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
6
|
-
export default CalendarPaper;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type CalendarPaperProps = React.HTMLAttributes<HTMLDivElement>;
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<CalendarPaperProps & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export default _default;
|
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const react_1 = __importDefault(require("react"));
|
|
6
18
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
7
|
-
const
|
|
19
|
+
const StyledCalendarPaper = styled_1.default.div `
|
|
8
20
|
width: 18em;
|
|
9
21
|
position: relative;
|
|
10
22
|
display: inline-flex;
|
|
@@ -14,4 +26,8 @@ const CalendarPaper = styled_1.default.div `
|
|
|
14
26
|
border-radius: ${({ theme }) => theme.shape.radiusFactor}em;
|
|
15
27
|
box-shadow: 0 4px 24px ${({ theme }) => theme.color.surface.darken(50).alpha(0.6).toString()};
|
|
16
28
|
`;
|
|
17
|
-
|
|
29
|
+
const CalendarPaper = (props, ref) => {
|
|
30
|
+
const { children } = props, restProps = __rest(props, ["children"]);
|
|
31
|
+
return (react_1.default.createElement(StyledCalendarPaper, Object.assign({}, restProps, { ref: ref }), children));
|
|
32
|
+
};
|
|
33
|
+
exports.default = react_1.default.forwardRef(CalendarPaper);
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Week } from './use-calendar';
|
|
3
3
|
export type WeekNameLabelFormat = 'short' | 'long' | 'narrow';
|
|
4
|
-
export interface
|
|
4
|
+
export interface CalendarWeekDaysBarProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
/**
|
|
6
|
+
* Data of the weak
|
|
7
|
+
*/
|
|
5
8
|
readonly week: Week;
|
|
9
|
+
/**
|
|
10
|
+
* Int weekday format\
|
|
11
|
+
* **Default:** `short`
|
|
12
|
+
*/
|
|
6
13
|
readonly format: WeekNameLabelFormat;
|
|
14
|
+
/**
|
|
15
|
+
* Intl locale
|
|
16
|
+
*/
|
|
7
17
|
readonly locale?: string;
|
|
8
18
|
}
|
|
9
|
-
declare const _default: React.ForwardRefExoticComponent<
|
|
19
|
+
declare const _default: React.ForwardRefExoticComponent<CalendarWeekDaysBarProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
20
|
export default _default;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
as?: React.ElementType<any> | undefined;
|
|
5
|
-
} & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>>;
|
|
2
|
+
export type CalendarWeekRowProps = React.HTMLAttributes<HTMLDivElement>;
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<CalendarWeekRowProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
4
|
export default _default;
|
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
2
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
15
|
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
17
|
const react_1 = __importDefault(require("react"));
|
|
7
18
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
8
|
-
const
|
|
19
|
+
const StyledCalendarWeekRow = styled_1.default.div `
|
|
9
20
|
display: flex;
|
|
10
21
|
flex-direction: row;
|
|
11
22
|
justify-content: center;
|
|
12
23
|
align-items: stretch;
|
|
13
24
|
`;
|
|
14
|
-
|
|
25
|
+
const CalendarWeekRow = (props, ref) => {
|
|
26
|
+
const { children } = props, restProps = __rest(props, ["children"]);
|
|
27
|
+
return (react_1.default.createElement(StyledCalendarWeekRow, Object.assign({}, restProps, { ref: ref }), children));
|
|
28
|
+
};
|
|
29
|
+
exports.default = react_1.default.forwardRef(CalendarWeekRow);
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface CalendarYearCellProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
/**
|
|
4
|
+
* If year selected, then property will be true
|
|
5
|
+
*/
|
|
3
6
|
readonly isSelected?: boolean;
|
|
4
7
|
readonly accentColor?: 'primary' | 'secondary' | string;
|
|
5
8
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
export type CalendarIconNextProps = React.SVGProps<SVGSVGElement>;
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<Omit<CalendarIconNextProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
3
4
|
export default _default;
|
|
@@ -4,6 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const
|
|
7
|
+
const CalendarIconNext = (props, ref) => (react_1.default.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: "1em", height: "1em", ref: ref }, props),
|
|
8
8
|
react_1.default.createElement("path", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 48, d: "m184 112 144 144-144 144" })));
|
|
9
|
-
exports.default = react_1.default.forwardRef(
|
|
9
|
+
exports.default = react_1.default.forwardRef(CalendarIconNext);
|