ish-ui 1.0.55 → 1.1.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.
- package/dist/appBar/AppBarHelpMenu.d.ts +17 -1
- package/dist/appBar/AppBarHelpMenu.js +5 -5
- package/dist/colorPicker/ColorPicker.js +5 -6
- package/dist/dialog/message/Message.js +3 -4
- package/dist/documents/DocumentIconsChooser.js +4 -5
- package/dist/fieldMessage/ErrorMessage.d.ts +1 -1
- package/dist/fieldMessage/ErrorMessage.js +8 -6
- package/dist/fieldMessage/WarningMessage.d.ts +1 -1
- package/dist/fieldMessage/WarningMessage.js +8 -6
- package/dist/fieldMessage/styles.d.ts +12 -1
- package/dist/fieldMessage/styles.js +1 -2
- package/dist/fileUploader/FileUploaderDialog.d.ts +1 -1
- package/dist/fileUploader/FileUploaderDialog.js +9 -9
- package/dist/formFields/CheckboxField.d.ts +1 -1
- package/dist/formFields/CheckboxField.js +4 -4
- package/dist/formFields/CodeEditorField.js +3 -4
- package/dist/formFields/ColoredCheckBox.js +3 -2
- package/dist/formFields/DateTimeField.js +2 -3
- package/dist/formFields/EditInPlaceDateTimeField.js +40 -20
- package/dist/formFields/EditInPlaceField.js +3 -4
- package/dist/formFields/EditInPlaceFieldBase.js +9 -10
- package/dist/formFields/EditInPlaceMoneyField.js +3 -2
- package/dist/formFields/EditInPlaceSearchSelect.js +16 -13
- package/dist/formFields/FilePreview.d.ts +1 -1
- package/dist/formFields/FilePreview.js +5 -5
- package/dist/formFields/FormRadioButtons.js +3 -3
- package/dist/formFields/SelectCustomComponents.d.ts +10 -1
- package/dist/formFields/SelectCustomComponents.js +7 -6
- package/dist/formFields/Switch.d.ts +1 -1
- package/dist/formFields/Switch.js +5 -5
- package/dist/formFields/TextField.d.ts +5 -1
- package/dist/formFields/TextField.js +2 -2
- package/dist/formFields/UneditableBase.js +3 -4
- package/dist/layout/InfoPill.js +4 -4
- package/dist/layout/resizable/ResizableWrapper.js +5 -5
- package/dist/markdownEditor/HtmlEditor.d.ts +2 -2
- package/dist/markdownEditor/WysiwygEditor.js +1 -1
- package/dist/model/Theme.d.ts +2 -2
- package/dist/styles/GlobalStylesProvider.d.ts +3 -2
- package/dist/styles/GlobalStylesProvider.js +714 -383
- package/dist/styles/hooks.d.ts +9 -1
- package/dist/styles/hooks.js +5 -4
- package/dist/styles/index.d.ts +0 -4
- package/dist/styles/index.js +0 -4
- package/dist/styles/makeStyles.d.ts +37 -2
- package/dist/styles/makeStyles.js +7 -2
- package/dist/tagsInput/AddTagMenu.d.ts +2 -1
- package/dist/tagsInput/AddTagMenu.js +4 -4
- package/dist/tagsInput/AddTagMenuItem.js +5 -4
- package/dist/tagsInput/TagInputList.js +21 -15
- package/dist/timetable/miniCalendar/CalendarDay.d.ts +1 -1
- package/dist/timetable/miniCalendar/CalendarDay.js +38 -39
- package/dist/timetable/miniCalendar/CalendarHeader.js +3 -4
- package/dist/timetable/miniCalendar/CalendarWeekPanel.js +3 -4
- package/dist/timetable/miniCalendar/WeekDay.js +3 -4
- package/package.json +62 -71
- package/assets/fonts/inter/inter.scss +0 -17
- package/dist/styles/StylesProviderCustom.d.ts +0 -3
- package/dist/styles/StylesProviderCustom.js +0 -6
- package/dist/styles/bootstrap.d.ts +0 -491
- package/dist/styles/bootstrap.js +0 -496
package/dist/styles/hooks.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
export declare const useHoverShowStyles: (
|
|
1
|
+
export declare const useHoverShowStyles: (params: void, muiStyleOverridesParams?: {
|
|
2
|
+
props: Record<string, unknown>;
|
|
3
|
+
ownerState?: Record<string, unknown> | undefined;
|
|
4
|
+
} | undefined) => {
|
|
5
|
+
classes: Record<"container" | "target", string>;
|
|
6
|
+
theme: import("@mui/material").Theme;
|
|
7
|
+
css: import("tss-react").Css;
|
|
8
|
+
cx: import("tss-react").Cx;
|
|
9
|
+
};
|
|
2
10
|
export declare const useWindowSize: () => {
|
|
3
11
|
width: any;
|
|
4
12
|
height: any;
|
package/dist/styles/hooks.js
CHANGED
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
* No copying or use of this code is allowed without permission in writing from ish.
|
|
4
4
|
*/
|
|
5
5
|
import { useEffect, useState } from 'react';
|
|
6
|
-
import { makeStyles } from '
|
|
6
|
+
import { makeStyles } from 'tss-react/mui';
|
|
7
7
|
import * as Colors from '@mui/material/colors';
|
|
8
|
-
|
|
8
|
+
// TODO jss-to-tss-react codemod: usages of this hook outside of this file will not be converted.
|
|
9
|
+
export const useHoverShowStyles = makeStyles()((_theme, _params, classes) => ({
|
|
9
10
|
container: {
|
|
10
|
-
|
|
11
|
+
[`&:hover .${classes.target}`]: {
|
|
11
12
|
visibility: 'visible'
|
|
12
13
|
}
|
|
13
14
|
},
|
|
14
15
|
target: {
|
|
15
16
|
visibility: 'hidden'
|
|
16
17
|
}
|
|
17
|
-
});
|
|
18
|
+
}));
|
|
18
19
|
export const useWindowSize = () => {
|
|
19
20
|
const [windowSize, setWindowSize] = useState({
|
|
20
21
|
width: undefined,
|
package/dist/styles/index.d.ts
CHANGED
|
@@ -2,10 +2,6 @@ export * from './mixins/keyframes';
|
|
|
2
2
|
export * from './mixins/common';
|
|
3
3
|
export * from './mixins/prefixer';
|
|
4
4
|
export * from './animateStyles';
|
|
5
|
-
export * from './bootstrap';
|
|
6
5
|
export * from './GlobalStylesProvider';
|
|
7
|
-
export { default as GlobalStylesProvider } from './GlobalStylesProvider';
|
|
8
6
|
export * from './hooks';
|
|
9
7
|
export * from './makeStyles';
|
|
10
|
-
export * from './StylesProviderCustom';
|
|
11
|
-
export { default as StylesProviderCustom } from './StylesProviderCustom';
|
package/dist/styles/index.js
CHANGED
|
@@ -9,10 +9,6 @@ export * from './mixins/keyframes';
|
|
|
9
9
|
export * from './mixins/common';
|
|
10
10
|
export * from './mixins/prefixer';
|
|
11
11
|
export * from './animateStyles';
|
|
12
|
-
export * from './bootstrap';
|
|
13
12
|
export * from './GlobalStylesProvider';
|
|
14
|
-
export { default as GlobalStylesProvider } from './GlobalStylesProvider';
|
|
15
13
|
export * from './hooks';
|
|
16
14
|
export * from './makeStyles';
|
|
17
|
-
export * from './StylesProviderCustom';
|
|
18
|
-
export { default as StylesProviderCustom } from './StylesProviderCustom';
|
|
@@ -1,3 +1,38 @@
|
|
|
1
|
-
import { Styles, WithStylesOptions, ClassNameMap } from '@mui/styles';
|
|
2
1
|
import { AppTheme } from '../model';
|
|
3
|
-
|
|
2
|
+
declare const withStyles: {
|
|
3
|
+
<C extends keyof import("react").ReactHTML | import("tss-react/tools/ReactComponent").ReactComponent<any>, Props extends C extends import("tss-react/tools/ReactComponent").ReactComponent<infer P> ? P : C extends keyof import("react").ReactHTML ? import("react").ReactHTML[C] extends import("tss-react/tools/ReactComponent").ReactComponent<infer P_1> ? NonNullable<P_1> : never : never, CssObjectByRuleName extends Props extends {
|
|
4
|
+
classes?: Partial<infer ClassNameByRuleName> | undefined;
|
|
5
|
+
} ? { [RuleName in keyof ClassNameByRuleName]?: import("tss-react").CSSObject; } & {
|
|
6
|
+
[mediaQuery: `@media${string}`]: { [RuleName_1 in keyof ClassNameByRuleName]?: import("tss-react").CSSObject; };
|
|
7
|
+
} : {
|
|
8
|
+
root: import("tss-react").CSSObject;
|
|
9
|
+
} & {
|
|
10
|
+
[mediaQuery: `@media${string}`]: {
|
|
11
|
+
root: import("tss-react").CSSObject;
|
|
12
|
+
};
|
|
13
|
+
}>(Component: C, cssObjectByRuleNameOrGetCssObjectByRuleName: (CssObjectByRuleName & {
|
|
14
|
+
[mediaQuery: `@media${string}`]: { [Key in keyof CssObjectByRuleName]?: import("tss-react").CSSObject; };
|
|
15
|
+
}) | ((theme: AppTheme, props: Props, classes: Record<Exclude<keyof CssObjectByRuleName, `@media${string}`>, string>) => CssObjectByRuleName), params?: {
|
|
16
|
+
name?: string | Record<string, unknown> | undefined;
|
|
17
|
+
uniqId?: string | undefined;
|
|
18
|
+
} | undefined): C extends keyof import("react").ReactHTML ? import("react").ReactHTML[C] : C;
|
|
19
|
+
getClasses: <Classes>(props: {
|
|
20
|
+
className?: string | undefined;
|
|
21
|
+
classes?: Classes | undefined;
|
|
22
|
+
}) => Classes extends Record<string, unknown> ? Classes extends Partial<Record<infer K, any>> ? Record<K, string> : Classes : {
|
|
23
|
+
root: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare const makeAppStyles: <Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never>(params?: {
|
|
27
|
+
name?: string | Record<string, unknown> | undefined;
|
|
28
|
+
uniqId?: string | undefined;
|
|
29
|
+
} | undefined) => <RuleName_2 extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName_2, import("tss-react").CSSObject> | ((theme: AppTheme, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName_2, import("tss-react").CSSObject>)) => (params: Params, muiStyleOverridesParams?: {
|
|
30
|
+
props: Record<string, unknown>;
|
|
31
|
+
ownerState?: Record<string, unknown> | undefined;
|
|
32
|
+
} | undefined) => {
|
|
33
|
+
classes: Record<RuleName_2, string>;
|
|
34
|
+
theme: AppTheme;
|
|
35
|
+
css: import("tss-react").Css;
|
|
36
|
+
cx: import("tss-react").Cx;
|
|
37
|
+
};
|
|
38
|
+
export { withStyles };
|
|
@@ -5,5 +5,10 @@
|
|
|
5
5
|
*
|
|
6
6
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
|
|
8
|
+
import { createMakeAndWithStyles } from 'tss-react';
|
|
9
|
+
import { useTheme } from '@mui/system';
|
|
10
|
+
const { makeStyles, withStyles } = createMakeAndWithStyles({
|
|
11
|
+
useTheme,
|
|
12
|
+
});
|
|
13
|
+
export const makeAppStyles = makeStyles;
|
|
14
|
+
export { withStyles };
|
|
@@ -9,5 +9,6 @@ interface Props<T> {
|
|
|
9
9
|
activeTag: MenuTag<T>;
|
|
10
10
|
setActiveTag: (arg: (MenuTag<T> | ((prevState: MenuTag<T>) => MenuTag<T>))) => void;
|
|
11
11
|
}
|
|
12
|
-
declare
|
|
12
|
+
declare function AddTagMenu<T extends TagLike>({ classes, tags, hideColor, handleAdd, activeTag, setActiveTag, allowParentSelect }: Props<T>): React.JSX.Element;
|
|
13
|
+
declare const _default: typeof AddTagMenu;
|
|
13
14
|
export default _default;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
import withStyles from '@mui/styles/withStyles';
|
|
2
|
+
import { useStyles, withStyles } from 'tss-react/mui';
|
|
4
3
|
import KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';
|
|
5
4
|
import MenuItem from '@mui/material/MenuItem';
|
|
6
5
|
import List from '@mui/material/List';
|
|
@@ -26,11 +25,12 @@ function AddTagMenu({ classes, tags, hideColor, handleAdd, activeTag, setActiveT
|
|
|
26
25
|
const handleBack = () => {
|
|
27
26
|
setActiveTag(prev => prev.parent);
|
|
28
27
|
};
|
|
28
|
+
const { cx } = useStyles();
|
|
29
29
|
return (React.createElement(List, { className: classes.rootMenu },
|
|
30
30
|
activeTag && (React.createElement(MenuItem, { onClick: handleBack, className: classes.listItem },
|
|
31
|
-
React.createElement("span", { className:
|
|
31
|
+
React.createElement("span", { className: cx('d-flex textSecondaryColor', classes.backContainer) },
|
|
32
32
|
React.createElement(KeyboardArrowLeft, { color: "inherit" }),
|
|
33
33
|
"Back"))),
|
|
34
34
|
(activeTag ? activeTag.children : tags).map(t => (React.createElement(AddTagMenuItem, { key: t.tagBody.id, tag: t, classes: classes, setActiveTag: setActiveTag, handleAdd: handleAdd, allowParentSelect: allowParentSelect, hideColor: hideColor })))));
|
|
35
35
|
}
|
|
36
|
-
export default withStyles(styles)
|
|
36
|
+
export default withStyles(AddTagMenu, styles);
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|
7
7
|
*/
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import clsx from 'clsx';
|
|
10
9
|
import KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';
|
|
11
10
|
import Checkbox from '@mui/material/Checkbox';
|
|
12
11
|
import MenuItem from '@mui/material/MenuItem';
|
|
13
12
|
import { IconButton } from '@mui/material';
|
|
13
|
+
import { useStyles } from 'tss-react/mui';
|
|
14
14
|
function AddTagMenuItem({ setActiveTag, tag, classes, handleAdd, hideColor, allowParentSelect }) {
|
|
15
15
|
const openSubmenu = () => {
|
|
16
16
|
setActiveTag(tag);
|
|
@@ -20,11 +20,12 @@ function AddTagMenuItem({ setActiveTag, tag, classes, handleAdd, hideColor, allo
|
|
|
20
20
|
handleAdd(tag);
|
|
21
21
|
};
|
|
22
22
|
const hasChildren = Boolean(tag.children.length);
|
|
23
|
+
const { cx } = useStyles();
|
|
23
24
|
return (React.createElement(MenuItem, { classes: { root: classes.listItem }, onClick: hasChildren ? openSubmenu : toggleChecked, disableRipple: allowParentSelect },
|
|
24
|
-
!hideColor && React.createElement("div", { className:
|
|
25
|
+
!hideColor && React.createElement("div", { className: cx(classes.tagColorDotSmall, 'mr-1'), style: { background: '#' + tag.tagBody.color } }),
|
|
25
26
|
React.createElement("span", { className: "mr-2 flex-fill" }, tag.tagBody.name),
|
|
26
27
|
(allowParentSelect || !hasChildren) && React.createElement(Checkbox, { onClick: toggleChecked, classes: { root: 'smallIconButton' }, checked: tag.active }),
|
|
27
|
-
React.createElement(IconButton, { size: "small", onClick: openSubmenu, className:
|
|
28
|
-
React.createElement(KeyboardArrowRight, { className:
|
|
28
|
+
React.createElement(IconButton, { size: "small", onClick: openSubmenu, className: cx(!hasChildren && (allowParentSelect ? 'invisible' : 'd-none')) },
|
|
29
|
+
React.createElement(KeyboardArrowRight, { className: cx('d-flex textSecondaryColor', classes.proceedIcon) }))));
|
|
29
30
|
}
|
|
30
31
|
export default AddTagMenuItem;
|
|
@@ -20,26 +20,30 @@ import React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState }
|
|
|
20
20
|
import { InputAdornment, MenuItem, Select } from '@mui/material';
|
|
21
21
|
import { ClickAwayListener } from '@mui/base';
|
|
22
22
|
import Autocomplete from '@mui/material/Autocomplete';
|
|
23
|
-
import clsx from 'clsx';
|
|
24
23
|
import { Edit } from '@mui/icons-material';
|
|
25
|
-
import {
|
|
24
|
+
import { useSelectStyles } from '../formFields';
|
|
26
25
|
import AddTagMenu from './AddTagMenu';
|
|
27
26
|
import EditInPlaceFieldBase from '../formFields/EditInPlaceFieldBase';
|
|
28
27
|
import { getAllMenuTags, getHighlightedPartLabel, getMenuTags, stubComponent } from '../utils';
|
|
29
28
|
import getCaretCoordinates from '../utils/DOM/getCaretCoordinates';
|
|
30
29
|
import { makeAppStyles } from '../styles';
|
|
31
|
-
const useStyles = makeAppStyles((theme) => (
|
|
30
|
+
const useStyles = makeAppStyles()((theme) => ({
|
|
31
|
+
tagColorDotSmall: {
|
|
32
32
|
width: theme.spacing(2),
|
|
33
33
|
minWidth: theme.spacing(2),
|
|
34
34
|
height: theme.spacing(2),
|
|
35
35
|
minHeight: theme.spacing(2),
|
|
36
36
|
background: 'red',
|
|
37
37
|
borderRadius: '100%'
|
|
38
|
-
},
|
|
38
|
+
},
|
|
39
|
+
listbox: {
|
|
39
40
|
whiteSpace: 'break-spaces'
|
|
40
|
-
},
|
|
41
|
+
},
|
|
42
|
+
editIcon: {
|
|
41
43
|
opacity: 0.5
|
|
42
|
-
},
|
|
44
|
+
},
|
|
45
|
+
invalid: {},
|
|
46
|
+
}));
|
|
43
47
|
const endTagRegex = /#\s*[^\w\d]*$/;
|
|
44
48
|
const getCurrentInputString = (input, formTagIds = [], allMenuTags = []) => {
|
|
45
49
|
let substr = input;
|
|
@@ -83,7 +87,9 @@ function TagInputList({ input, tags, placeholder, labelAdornment, meta, label =
|
|
|
83
87
|
const [isEditing, setIsEditing] = useState(false);
|
|
84
88
|
const [inputValue, setInputValue] = useState('');
|
|
85
89
|
const [currentInputString, setCurrentInputString] = useState('');
|
|
86
|
-
const classes = useStyles();
|
|
90
|
+
const { classes: ownClasses, cx } = useStyles();
|
|
91
|
+
const { classes: selectClasses } = useSelectStyles();
|
|
92
|
+
const classes = Object.assign(Object.assign({}, ownClasses), selectClasses);
|
|
87
93
|
const InputValueForRender = useMemo(() => {
|
|
88
94
|
var _a;
|
|
89
95
|
if (!inputValue || !tags || !tags.length)
|
|
@@ -92,8 +98,8 @@ function TagInputList({ input, tags, placeholder, labelAdornment, meta, label =
|
|
|
92
98
|
&& input.value.map(id => getFullTag(id, tags)).filter(t => t);
|
|
93
99
|
if (!(arrayOfTags === null || arrayOfTags === void 0 ? void 0 : arrayOfTags.length))
|
|
94
100
|
return '';
|
|
95
|
-
return arrayOfTags.map((tag, index) => (React.createElement("span", { key: tag.id, className:
|
|
96
|
-
!hideColor && React.createElement("div", { key: tag.id, className:
|
|
101
|
+
return arrayOfTags.map((tag, index) => (React.createElement("span", { key: tag.id, className: cx('centeredFlex', index !== arrayOfTags.length - 1 ? 'pr-1' : '') },
|
|
102
|
+
!hideColor && React.createElement("div", { key: tag.id, className: cx(classes.tagColorDotSmall, 'mr-0-5'), style: { background: '#' + tag.color } }),
|
|
97
103
|
React.createElement("span", { className: "text-nowrap" }, `#${tag.name} `))));
|
|
98
104
|
}, [tags, input.value, inputValue, hideColor]);
|
|
99
105
|
const inputNode = useRef();
|
|
@@ -244,14 +250,14 @@ function TagInputList({ input, tags, placeholder, labelAdornment, meta, label =
|
|
|
244
250
|
React.createElement(AddTagMenu, { tags: menuTags, handleAdd: onTagAdd, hideColor: hideColor, activeTag: activeTag, setActiveTag: setActiveTag, allowParentSelect: allowParentSelect }));
|
|
245
251
|
});
|
|
246
252
|
return (React.createElement("div", { className: className, id: input.name },
|
|
247
|
-
React.createElement("div", { className:
|
|
253
|
+
React.createElement("div", { className: cx('relative', {
|
|
248
254
|
'pointer-events-none': disabled
|
|
249
255
|
}) },
|
|
250
256
|
React.createElement(Autocomplete, { value: null, open: menuIsOpen, options: filteredOptions, onChange: handleChange, renderOption: renderOption, filterOptions: filterOptionsInner, getOptionLabel: getOptionLabel, PopperComponent: currentInputString ? undefined : popperAdapter, ListboxComponent: currentInputString ? undefined : listboxAdapter, classes: {
|
|
251
257
|
root: classes.root,
|
|
252
258
|
hasPopupIcon: classes.hasPopup,
|
|
253
259
|
hasClearIcon: classes.hasClear,
|
|
254
|
-
listbox:
|
|
260
|
+
listbox: cx(classes.listbox, fieldClasses.listbox),
|
|
255
261
|
inputRoot: classes.inputWrapper,
|
|
256
262
|
noOptions: 'd-none'
|
|
257
263
|
}, renderInput: (_a) => {
|
|
@@ -259,16 +265,16 @@ function TagInputList({ input, tags, placeholder, labelAdornment, meta, label =
|
|
|
259
265
|
return (React.createElement(EditInPlaceFieldBase, Object.assign({}, params, { variant: variant, name: input.name, value: input.value, error: meta.error, invalid: meta === null || meta === void 0 ? void 0 : meta.invalid, label: label, warning: warning, disabled: disabled, fieldClasses: fieldClasses, shrink: Boolean(label || input.value), labelAdornment: labelAdornment, placeholder: placeholder, editIcon: editIcon === undefined ? React.createElement(Edit, null) : editIcon, InputProps: Object.assign(Object.assign({}, InputProps), { onChange: handleInputChange, onFocus,
|
|
260
266
|
onBlur, classes: {
|
|
261
267
|
underline: fieldClasses.underline,
|
|
262
|
-
input:
|
|
268
|
+
input: cx(disabled && classes.readonly, fieldClasses.text),
|
|
263
269
|
}, inputProps: Object.assign(Object.assign({}, inputProps), { ref: ref => {
|
|
264
270
|
inputProps.ref.current = ref;
|
|
265
271
|
inputNode.current = ref;
|
|
266
|
-
}, value: inputValue, className:
|
|
272
|
+
}, value: inputValue, className: cx(inputProps.className, fieldClasses.text) }) }), CustomInput: !isEditing
|
|
267
273
|
? React.createElement(Select, { inputRef: ref => {
|
|
268
274
|
inputProps.ref.current = ref === null || ref === void 0 ? void 0 : ref.node;
|
|
269
275
|
}, onFocus: edit, value: "stub", className: classes.inputWrapper, classes: {
|
|
270
|
-
select:
|
|
271
|
-
}, endAdornment: React.createElement(InputAdornment, { position: "end", className:
|
|
276
|
+
select: cx('d-flex flex-wrap cursor-text', fieldClasses.text)
|
|
277
|
+
}, endAdornment: React.createElement(InputAdornment, { position: "end", className: cx(classes.editIcon, 'invisible') },
|
|
272
278
|
React.createElement(Edit, { className: "test" })), IconComponent: stubComponent },
|
|
273
279
|
React.createElement(MenuItem, { value: "stub" }, InputValueForRender || React.createElement("span", { className: "placeholderContent" }, placeholder)))
|
|
274
280
|
: null })));
|
|
@@ -7,56 +7,55 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import React, { memo } from 'react';
|
|
9
9
|
import { Button } from '@mui/material';
|
|
10
|
-
import clsx from 'clsx';
|
|
11
10
|
import { alpha } from '@mui/material/styles';
|
|
12
11
|
import { makeAppStyles } from '../../styles';
|
|
13
|
-
const useStyles = makeAppStyles(theme =>
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
12
|
+
const useStyles = makeAppStyles()((theme, { dayIndexValue }) => {
|
|
13
|
+
const backgroundColor = alpha(theme.palette.primary.main, dayIndexValue);
|
|
14
|
+
return {
|
|
15
|
+
root: {
|
|
16
|
+
padding: 0,
|
|
17
|
+
border: '2px solid transparent',
|
|
18
|
+
borderRadius: 4,
|
|
19
|
+
minWidth: 'initial',
|
|
20
|
+
boxShadow: 'none',
|
|
21
|
+
fontWeight: 'normal',
|
|
22
|
+
color: theme.palette.text.primary,
|
|
23
|
+
'&:active': {
|
|
24
|
+
boxShadow: 'none'
|
|
25
|
+
},
|
|
26
|
+
'&:focus': {
|
|
27
|
+
boxShadow: 'none'
|
|
28
|
+
},
|
|
29
|
+
'&::after': {
|
|
30
|
+
content: '\'\'',
|
|
31
|
+
position: 'absolute',
|
|
32
|
+
width: 4,
|
|
33
|
+
height: 4,
|
|
34
|
+
top: 4,
|
|
35
|
+
borderRadius: '100%'
|
|
36
|
+
},
|
|
37
|
+
'&$same': {
|
|
38
|
+
border: `2px solid ${theme.palette.text.primary}`
|
|
39
|
+
}
|
|
35
40
|
},
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
same: {},
|
|
41
|
-
hasSession: ({ dayIndexValue }) => {
|
|
42
|
-
const backgroundColor = alpha(theme.palette.primary.main, dayIndexValue);
|
|
43
|
-
return {
|
|
41
|
+
same: {},
|
|
42
|
+
hasSession: {
|
|
44
43
|
backgroundColor,
|
|
45
44
|
color: theme.palette.getContrastText(backgroundColor),
|
|
46
45
|
'&:hover': {
|
|
47
46
|
backgroundColor,
|
|
48
47
|
color: theme.palette.getContrastText(backgroundColor)
|
|
49
48
|
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
})
|
|
49
|
+
},
|
|
50
|
+
isToday: {
|
|
51
|
+
fontWeight: 900
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
});
|
|
56
55
|
const CalendarDay = memo((props) => {
|
|
57
56
|
const { customClasses = {}, day, date, setTargetDay, dayIndexValue, hasSession, isSameAsTarget, isToday, disabled } = props;
|
|
58
|
-
const classes = useStyles({ dayIndexValue
|
|
59
|
-
return (React.createElement(Button, { className:
|
|
57
|
+
const { classes, cx } = useStyles({ dayIndexValue });
|
|
58
|
+
return (React.createElement(Button, { className: cx(classes.root, customClasses.root, isSameAsTarget && cx(classes.same, customClasses.selected), {
|
|
60
59
|
[customClasses.hasSession || classes.hasSession]: hasSession,
|
|
61
60
|
[customClasses.today || classes.isToday]: isToday
|
|
62
61
|
}), onClick: () => setTargetDay(date), classes: {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IconButton, Typography } from '@mui/material';
|
|
3
3
|
import { KeyboardArrowLeft, KeyboardArrowRight } from '@mui/icons-material';
|
|
4
|
-
import clsx from 'clsx';
|
|
5
4
|
import { makeAppStyles } from '../../styles';
|
|
6
|
-
const useStyles = makeAppStyles(theme => ({
|
|
5
|
+
const useStyles = makeAppStyles()(theme => ({
|
|
7
6
|
root: {
|
|
8
7
|
display: 'flex',
|
|
9
8
|
justifyContent: 'space-between',
|
|
@@ -12,8 +11,8 @@ const useStyles = makeAppStyles(theme => ({
|
|
|
12
11
|
}
|
|
13
12
|
}));
|
|
14
13
|
const CalendarHeader = ({ month, year, previousMonth, nextMonth, customClasses = {} }) => {
|
|
15
|
-
const classes = useStyles();
|
|
16
|
-
return React.createElement("div", { className:
|
|
14
|
+
const { classes, cx } = useStyles();
|
|
15
|
+
return React.createElement("div", { className: cx(classes.root, customClasses.root) },
|
|
17
16
|
React.createElement(IconButton, { onClick: previousMonth, className: customClasses.leftButton },
|
|
18
17
|
React.createElement(KeyboardArrowLeft, null)),
|
|
19
18
|
React.createElement(Typography, { align: "center", className: customClasses.selectedMonth },
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import WeekDay from './WeekDay';
|
|
3
|
-
import clsx from 'clsx';
|
|
4
3
|
import { makeAppStyles } from '../../styles';
|
|
5
|
-
const useStyles = makeAppStyles(theme => ({
|
|
4
|
+
const useStyles = makeAppStyles()(theme => ({
|
|
6
5
|
root: {
|
|
7
6
|
display: 'grid',
|
|
8
7
|
gridTemplateColumns: `repeat(7, ${theme.spacing(4)})`,
|
|
@@ -14,7 +13,7 @@ const useStyles = makeAppStyles(theme => ({
|
|
|
14
13
|
}));
|
|
15
14
|
const week = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
|
|
16
15
|
const CalendarWeekPanel = ({ className, dayClass, switchWeekDays, selectedWeekDays = [] }) => {
|
|
17
|
-
const classes = useStyles();
|
|
18
|
-
return (React.createElement("div", { className:
|
|
16
|
+
const { classes, cx } = useStyles();
|
|
17
|
+
return (React.createElement("div", { className: cx(classes.root, className) }, week.map((el, id) => (React.createElement(WeekDay, { key: id, id: id, name: el, selected: selectedWeekDays[id], click: switchWeekDays, className: dayClass })))));
|
|
19
18
|
};
|
|
20
19
|
export default CalendarWeekPanel;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Button, Typography } from '@mui/material';
|
|
3
|
-
import clsx from 'clsx';
|
|
4
3
|
import { makeAppStyles } from '../../styles';
|
|
5
|
-
const useStyles = makeAppStyles(theme => ({
|
|
4
|
+
const useStyles = makeAppStyles()(theme => ({
|
|
6
5
|
weekButton: {
|
|
7
6
|
padding: theme.spacing(0.5),
|
|
8
7
|
minWidth: 'initial',
|
|
@@ -20,9 +19,9 @@ const useStyles = makeAppStyles(theme => ({
|
|
|
20
19
|
}));
|
|
21
20
|
const DivRoot = props => React.createElement("div", { className: props.className }, props.children);
|
|
22
21
|
const WeekDay = ({ name, selected, click, id, className }) => {
|
|
23
|
-
const classes = useStyles();
|
|
22
|
+
const { classes, cx } = useStyles();
|
|
24
23
|
const Root = click ? Button : DivRoot;
|
|
25
|
-
return React.createElement(Root, { className:
|
|
24
|
+
return React.createElement(Root, { className: cx(classes.weekButton, {
|
|
26
25
|
[classes.selectedWeekDay]: selected
|
|
27
26
|
}, className), onClick: () => click(id), variant: selected ? 'contained' : 'text', color: selected ? 'primary' : 'inherit', disableElevation: true },
|
|
28
27
|
React.createElement(Typography, { variant: "caption", align: "center", className: selected ? classes.weekDayText : '' }, name));
|
package/package.json
CHANGED
|
@@ -1,103 +1,94 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ish-ui",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "1.0
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"description": "UI elements for onCourse and other ish apps",
|
|
6
6
|
"main": "main.ts",
|
|
7
7
|
"devDependencies": {
|
|
8
|
-
"@
|
|
9
|
-
"@
|
|
10
|
-
"@types/
|
|
11
|
-
"@types/react": "^
|
|
12
|
-
"@types/react-
|
|
13
|
-
"@types/react-
|
|
14
|
-
"@types/react-window": "^1.
|
|
15
|
-
"@types/react-window-infinite-loader": "^1.0.6",
|
|
8
|
+
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
|
|
9
|
+
"@types/node": "^22.7.2",
|
|
10
|
+
"@types/react": "^18.3.9",
|
|
11
|
+
"@types/react-color": "^3.0.12",
|
|
12
|
+
"@types/react-dom": "^18.3.0",
|
|
13
|
+
"@types/react-window": "^1.8.8",
|
|
14
|
+
"@types/react-window-infinite-loader": "^1.0.9",
|
|
16
15
|
"@types/redux": "^3.6.0",
|
|
17
|
-
"@types/webpack-env": "^1.18.
|
|
18
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
19
|
-
"@typescript-eslint/parser": "^
|
|
20
|
-
"
|
|
21
|
-
"css-loader": "^6.7.1",
|
|
16
|
+
"@types/webpack-env": "^1.18.5",
|
|
17
|
+
"@typescript-eslint/eslint-plugin": "^8.7.0",
|
|
18
|
+
"@typescript-eslint/parser": "^8.7.0",
|
|
19
|
+
"css-loader": "^7.1.2",
|
|
22
20
|
"eslint": "^8.26.0",
|
|
23
21
|
"eslint-import-resolver-alias": "^1.1.2",
|
|
24
|
-
"eslint-plugin-import": "^2.
|
|
25
|
-
"eslint-plugin-react": "^7.
|
|
22
|
+
"eslint-plugin-import": "^2.30.0",
|
|
23
|
+
"eslint-plugin-react": "^7.36.1",
|
|
26
24
|
"file-loader": "^6.2.0",
|
|
27
|
-
"fork-ts-checker-webpack-plugin": "^
|
|
28
|
-
"html-webpack-plugin": "^5.
|
|
29
|
-
"jest": "^29.
|
|
30
|
-
"less": "
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"webpack": "^5.
|
|
43
|
-
"webpack-bundle-analyzer": "^4.10.1",
|
|
44
|
-
"webpack-cli": "^4.10.0",
|
|
45
|
-
"webpack-dev-server": "^4.11.1"
|
|
25
|
+
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
|
26
|
+
"html-webpack-plugin": "^5.6.0",
|
|
27
|
+
"jest": "^29.7.0",
|
|
28
|
+
"less-loader": "12.2.0",
|
|
29
|
+
"mini-css-extract-plugin": "^2.9.1",
|
|
30
|
+
"react-refresh": "^0.14.2",
|
|
31
|
+
"sass-loader": "^16.0.2",
|
|
32
|
+
"style-loader": "^4.0.0",
|
|
33
|
+
"terser-webpack-plugin": "^5.3.10",
|
|
34
|
+
"ts-loader": "^9.5.1",
|
|
35
|
+
"tsc-alias": "^1.8.10",
|
|
36
|
+
"typescript": "^5.6.2",
|
|
37
|
+
"webpack": "^5.95.0",
|
|
38
|
+
"webpack-bundle-analyzer": "^4.10.2",
|
|
39
|
+
"webpack-cli": "^5.1.4",
|
|
40
|
+
"webpack-dev-server": "^5.1.0"
|
|
46
41
|
},
|
|
47
42
|
"dependencies": {
|
|
48
|
-
"@ckeditor/ckeditor5-autoformat": "
|
|
49
|
-
"@ckeditor/ckeditor5-basic-styles": "
|
|
50
|
-
"@ckeditor/ckeditor5-dev-utils": "^
|
|
51
|
-
"@ckeditor/ckeditor5-editor-classic": "
|
|
52
|
-
"@ckeditor/ckeditor5-essentials": "
|
|
53
|
-
"@ckeditor/ckeditor5-heading": "
|
|
54
|
-
"@ckeditor/ckeditor5-image": "
|
|
55
|
-
"@ckeditor/ckeditor5-link": "
|
|
56
|
-
"@ckeditor/ckeditor5-list": "
|
|
57
|
-
"@ckeditor/ckeditor5-markdown-gfm": "
|
|
58
|
-
"@ckeditor/ckeditor5-paragraph": "
|
|
59
|
-
"@ckeditor/ckeditor5-react": "
|
|
60
|
-
"@ckeditor/ckeditor5-source-editing": "
|
|
61
|
-
"@ckeditor/ckeditor5-table": "
|
|
62
|
-
"@ckeditor/ckeditor5-theme-lark": "
|
|
63
|
-
"@emotion/cache": "11.
|
|
64
|
-
"@emotion/react": "11.
|
|
65
|
-
"@emotion/styled": "11.
|
|
43
|
+
"@ckeditor/ckeditor5-autoformat": "43.1.1",
|
|
44
|
+
"@ckeditor/ckeditor5-basic-styles": "43.1.1",
|
|
45
|
+
"@ckeditor/ckeditor5-dev-utils": "^42.1.0",
|
|
46
|
+
"@ckeditor/ckeditor5-editor-classic": "43.1.1",
|
|
47
|
+
"@ckeditor/ckeditor5-essentials": "43.1.1",
|
|
48
|
+
"@ckeditor/ckeditor5-heading": "43.1.1",
|
|
49
|
+
"@ckeditor/ckeditor5-image": "43.1.1",
|
|
50
|
+
"@ckeditor/ckeditor5-link": "43.1.1",
|
|
51
|
+
"@ckeditor/ckeditor5-list": "43.1.1",
|
|
52
|
+
"@ckeditor/ckeditor5-markdown-gfm": "43.1.1",
|
|
53
|
+
"@ckeditor/ckeditor5-paragraph": "43.1.1",
|
|
54
|
+
"@ckeditor/ckeditor5-react": "9.3.0",
|
|
55
|
+
"@ckeditor/ckeditor5-source-editing": "43.1.1",
|
|
56
|
+
"@ckeditor/ckeditor5-table": "43.1.1",
|
|
57
|
+
"@ckeditor/ckeditor5-theme-lark": "43.1.1",
|
|
58
|
+
"@emotion/cache": "11.13.1",
|
|
59
|
+
"@emotion/react": "11.13.3",
|
|
60
|
+
"@emotion/styled": "11.13.0",
|
|
66
61
|
"@fortawesome/fontawesome-svg-core": "latest",
|
|
67
62
|
"@fortawesome/free-regular-svg-icons": "latest",
|
|
68
63
|
"@fortawesome/free-solid-svg-icons": "latest",
|
|
69
64
|
"@fortawesome/react-fontawesome": "latest",
|
|
70
|
-
"@mui/icons-material": "
|
|
71
|
-
"@mui/lab": "^
|
|
72
|
-
"@mui/material": "
|
|
73
|
-
"@mui/
|
|
74
|
-
"@mui/
|
|
75
|
-
"@mui/x-date-pickers": "^5.0.0",
|
|
65
|
+
"@mui/icons-material": "^6.1.1",
|
|
66
|
+
"@mui/lab": "^6.0.0-beta.10",
|
|
67
|
+
"@mui/material": "^6.1.1",
|
|
68
|
+
"@mui/system": "^6.1.1",
|
|
69
|
+
"@mui/x-date-pickers": "^7.18.0",
|
|
76
70
|
"autosuggest-highlight": "^3.3.4",
|
|
77
71
|
"date-fns": "^2.30.0",
|
|
78
72
|
"date-fns-tz": "^2.0.0",
|
|
79
73
|
"decimal.js-light": "^2.5.1",
|
|
80
74
|
"lodash.debounce": "^4.0.8",
|
|
81
|
-
"re-resizable": "^6.
|
|
82
|
-
"react": "^18.
|
|
83
|
-
"react-ace": "^
|
|
75
|
+
"re-resizable": "^6.10.0",
|
|
76
|
+
"react": "^18.3.1",
|
|
77
|
+
"react-ace": "^12.0.0",
|
|
84
78
|
"react-color": "^2.19.3",
|
|
85
|
-
"react-dom": "^18.
|
|
79
|
+
"react-dom": "^18.3.1",
|
|
86
80
|
"react-dropzone": "^14.2.3",
|
|
87
81
|
"react-number-format": "4.9.4",
|
|
88
|
-
"react-window": "^1.8.
|
|
82
|
+
"react-window": "^1.8.10",
|
|
89
83
|
"react-window-infinite-loader": "^1.0.9",
|
|
90
|
-
"redux": "^
|
|
91
|
-
|
|
92
|
-
"resolutions": {
|
|
93
|
-
"@mui/styles/react": "^18.2.0"
|
|
84
|
+
"redux": "^5.0.1",
|
|
85
|
+
"tss-react": "^4.9.13"
|
|
94
86
|
},
|
|
95
87
|
"scripts": {
|
|
96
88
|
"test": "exit 0",
|
|
97
|
-
"start": "
|
|
98
|
-
"start:prod": "
|
|
89
|
+
"start": "webpack serve --env production --config tools/webpack/webpack.config.dev.js",
|
|
90
|
+
"start:prod": "webpack serve --env development --config tools/webpack/webpack.config.prod.js",
|
|
99
91
|
"build": "tsc -p tsconfig.prod.json && tsc-alias",
|
|
100
|
-
"serve": "cross-env NODE_ENV=production webpack --config tools/webpack/webpack.config.prod.js && cross-env serve dist/",
|
|
101
92
|
"lint": "eslint --ext .js,.jsx,.ts,.tsx src/"
|
|
102
93
|
},
|
|
103
94
|
"repository": {
|