@linagora/twake-mui 1.3.0 → 1.5.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 (53) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/Avatar/helpers.d.ts +36 -0
  3. package/dist/components/Avatar/helpers.js +12 -13
  4. package/dist/components/Avatar/index.d.ts +16 -0
  5. package/dist/components/Avatar/index.js +14 -38
  6. package/dist/components/ThemeProvider/index.d.ts +3 -0
  7. package/dist/components/ThemeProvider/index.js +3 -4
  8. package/dist/components/ThemeProvider/types.d.ts +7 -0
  9. package/dist/index.d.ts +10 -0
  10. package/dist/lib/makeDarkOverrides.d.ts +2 -0
  11. package/dist/lib/makeDarkOverrides.js +36 -19
  12. package/dist/lib/makeLightOverrides.d.ts +2 -0
  13. package/dist/lib/makeLightOverrides.js +35 -19
  14. package/dist/lib/makePalette.d.ts +2 -0
  15. package/dist/lib/makePalette.js +3 -4
  16. package/dist/lib/makeTheme.d.ts +2 -0
  17. package/dist/lib/makeTheme.js +14 -19
  18. package/dist/lib/makeTypography.d.ts +2 -0
  19. package/dist/lib/makeTypography.js +1 -1
  20. package/dist/lib/overrides/accordionOverrides.d.ts +2 -0
  21. package/dist/lib/overrides/accordionOverrides.js +2 -2
  22. package/dist/lib/overrides/autocompleteOverrides.d.ts +2 -0
  23. package/dist/lib/overrides/autocompleteOverrides.js +1 -1
  24. package/dist/lib/overrides/avatarOverrides.d.ts +2 -0
  25. package/dist/lib/overrides/avatarOverrides.js +3 -3
  26. package/dist/lib/overrides/backdropOverrides.d.ts +2 -0
  27. package/dist/lib/overrides/backdropOverrides.js +1 -1
  28. package/dist/lib/overrides/buttonOverrides.d.ts +2 -0
  29. package/dist/lib/overrides/buttonOverrides.js +2 -2
  30. package/dist/lib/overrides/checkboxOverrides.d.ts +2 -0
  31. package/dist/lib/overrides/checkboxOverrides.js +1 -1
  32. package/dist/lib/overrides/datePickerOverrides.d.ts +2 -0
  33. package/dist/lib/overrides/datePickerOverrides.js +3 -3
  34. package/dist/lib/overrides/dialogOverrides.d.ts +5 -0
  35. package/dist/lib/overrides/dialogOverrides.js +4 -4
  36. package/dist/lib/overrides/iconButtonOverrides.d.ts +2 -0
  37. package/dist/lib/overrides/iconButtonOverrides.js +2 -2
  38. package/dist/lib/overrides/menuItemOverrides.d.ts +2 -0
  39. package/dist/lib/overrides/menuItemOverrides.js +8 -10
  40. package/dist/lib/overrides/popoverOverrides.d.ts +2 -0
  41. package/dist/lib/overrides/popoverOverrides.js +1 -1
  42. package/dist/lib/overrides/swipeableDrawerOverrides.d.ts +2 -0
  43. package/dist/lib/overrides/swipeableDrawerOverrides.js +26 -0
  44. package/dist/lib/overrides/textFieldOverrides.d.ts +5 -0
  45. package/dist/lib/overrides/textFieldOverrides.js +4 -4
  46. package/dist/lib/overrides/toggleButtonOverrides.d.ts +3 -0
  47. package/dist/lib/overrides/toggleButtonOverrides.js +2 -2
  48. package/dist/lib/radius.d.ts +7 -0
  49. package/dist/lib/radius.js +1 -1
  50. package/dist/lib/theme.d.ts +3 -0
  51. package/dist/lib/theme.js +1 -1
  52. package/dist/lib/types.d.ts +104 -0
  53. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ # [1.5.0](https://github.com/linagora/twake-ui/compare/v1.4.0...v1.5.0) (2026-04-14)
2
+
3
+
4
+ ### Features
5
+
6
+ * Add swipeable override :sparkles: ([15af929](https://github.com/linagora/twake-ui/commit/15af92994a086ea49a7a0957cfeb6c3a09d0e96b))
7
+
8
+ # [1.4.0](https://github.com/linagora/twake-ui/compare/v1.3.0...v1.4.0) (2026-04-09)
9
+
10
+
11
+ ### Features
12
+
13
+ * **twake-mui:** Now expose .d.ts ([945d3b2](https://github.com/linagora/twake-ui/commit/945d3b2e1616f9be237f1416630aef7014331226))
14
+
1
15
  # [1.3.0](https://github.com/linagora/twake-ui/compare/v1.2.0...v1.3.0) (2026-04-09)
2
16
 
3
17
 
@@ -0,0 +1,36 @@
1
+ export declare const sizeToFontSize: {
2
+ xs: number;
3
+ s: number;
4
+ m: number;
5
+ l: number;
6
+ xl: number;
7
+ };
8
+ export declare const sizeToNb: {
9
+ xs: number;
10
+ s: number;
11
+ m: number;
12
+ l: number;
13
+ xl: number;
14
+ };
15
+ export declare const sizeToFontWeight: {
16
+ xs: number;
17
+ s: number;
18
+ m: number;
19
+ l: number;
20
+ xl: number;
21
+ };
22
+ export declare const sizeToLineHeight: {
23
+ xs: number;
24
+ s: number;
25
+ m: number;
26
+ l: number;
27
+ xl: number;
28
+ };
29
+ export declare const supportedColors: readonly ["sunrise", "downy", "sugarCoral", "pinkBonnet", "blueMana", "nightBlue", "snowPea", "pluviophile", "cornflower", "paleGreen", "moonBlue"];
30
+ export declare const colorMapping: Record<string, string>;
31
+ /**
32
+ * Generate color from name
33
+ * @param name - Name string to generate color from
34
+ * @returns Color key from supportedColors
35
+ */
36
+ export declare const nameToColor: (name?: string) => string | undefined;
@@ -1,32 +1,32 @@
1
- export var sizeToFontSize = {
1
+ export const sizeToFontSize = {
2
2
  xs: 9.109,
3
3
  s: 12.525,
4
4
  m: 18.219,
5
5
  l: 27.328,
6
6
  xl: 36.438
7
7
  };
8
- export var sizeToNb = {
8
+ export const sizeToNb = {
9
9
  xs: 18,
10
10
  s: 28,
11
11
  m: 36,
12
12
  l: 54,
13
13
  xl: 72
14
14
  };
15
- export var sizeToFontWeight = {
15
+ export const sizeToFontWeight = {
16
16
  xs: 500,
17
17
  s: 500,
18
18
  m: 500,
19
19
  l: 600,
20
20
  xl: 600
21
21
  };
22
- export var sizeToLineHeight = {
22
+ export const sizeToLineHeight = {
23
23
  xs: 18.219,
24
24
  s: 18.219,
25
25
  m: 27.328,
26
26
  l: 36.438,
27
27
  xl: 45.547
28
28
  };
29
- export var supportedColors = [
29
+ export const supportedColors = [
30
30
  'sunrise',
31
31
  'downy',
32
32
  'sugarCoral',
@@ -39,7 +39,7 @@ export var supportedColors = [
39
39
  'paleGreen',
40
40
  'moonBlue'
41
41
  ];
42
- export var colorMapping = {
42
+ export const colorMapping = {
43
43
  sunrise: 'linear-gradient(136deg, #F8D280 14.84%, #F2AC69 96.03%)',
44
44
  downy: 'linear-gradient(136deg, #81EAD4 14.84%, #62C6B7 96.03%)',
45
45
  sugarCoral: 'linear-gradient(136deg, #F19E86 14.84%, #F95967 96.03%)',
@@ -52,21 +52,20 @@ export var colorMapping = {
52
52
  paleGreen: 'linear-gradient(135deg, #E2FA17 0%, #75D8CB 100%)',
53
53
  moonBlue: 'linear-gradient(136deg, #6DCFFF 14.84%, #3D88F8 96.03%)'
54
54
  };
55
- var colors = supportedColors.filter(Boolean);
56
- var makeKey = function (colors, name) {
55
+ const colors = supportedColors.filter(Boolean);
56
+ const makeKey = (colors, name) => {
57
57
  return (Array.from(name.toUpperCase())
58
- .map(function (letter) { return letter.charCodeAt(0); })
59
- .reduce(function (sum, number) { return sum + number; }, 0) % colors.length);
58
+ .map(letter => letter.charCodeAt(0))
59
+ .reduce((sum, number) => sum + number, 0) % colors.length);
60
60
  };
61
61
  /**
62
62
  * Generate color from name
63
63
  * @param name - Name string to generate color from
64
64
  * @returns Color key from supportedColors
65
65
  */
66
- export var nameToColor = function (name) {
67
- if (name === void 0) { name = ''; }
66
+ export const nameToColor = (name = '') => {
68
67
  if (!name)
69
68
  return undefined;
70
- var key = makeKey(colors, name);
69
+ const key = makeKey(colors, name);
71
70
  return colors[key];
72
71
  };
@@ -0,0 +1,16 @@
1
+ import { AvatarProps as MuiAvatarProps } from '@mui/material';
2
+ import React from 'react';
3
+ import { supportedColors } from './helpers';
4
+ type AvatarSize = 'xs' | 's' | 'm' | 'l' | 'xl';
5
+ type AvatarColor = (typeof supportedColors)[number] | 'none';
6
+ type AvatarDisplay = 'initial' | 'inline';
7
+ export interface AvatarProps extends Omit<MuiAvatarProps, 'color'> {
8
+ color?: AvatarColor;
9
+ size?: AvatarSize | number;
10
+ border?: boolean;
11
+ innerBorder?: boolean;
12
+ disabled?: boolean;
13
+ display?: AvatarDisplay;
14
+ }
15
+ export declare const Avatar: React.FC<AvatarProps>;
16
+ export default Avatar;
@@ -1,54 +1,30 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __rest = (this && this.__rest) || function (s, e) {
13
- var t = {};
14
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
- t[p] = s[p];
16
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
- t[p[i]] = s[p[i]];
20
- }
21
- return t;
22
- };
23
1
  import { Avatar as MuiAvatar } from '@mui/material';
24
2
  import { styled } from '@mui/material/styles';
25
3
  import React from 'react';
26
4
  import { colorMapping, nameToColor, supportedColors } from './helpers';
27
- var capitalize = function (str) {
5
+ const capitalize = (str) => {
28
6
  return str.charAt(0).toUpperCase() + str.slice(1);
29
7
  };
30
- var StyledAvatar = styled(MuiAvatar, {
31
- shouldForwardProp: function (prop) { return prop !== 'gradientColor'; }
32
- })(function (_a) {
33
- var theme = _a.theme, gradientColor = _a.gradientColor;
34
- return (__assign({}, (gradientColor && {
8
+ const StyledAvatar = styled(MuiAvatar, {
9
+ shouldForwardProp: prop => prop !== 'gradientColor'
10
+ })(({ theme, gradientColor }) => ({
11
+ ...(gradientColor && {
35
12
  color: theme.palette.primary.contrastText,
36
13
  background: colorMapping[gradientColor] || undefined
37
- })));
38
- });
39
- export var Avatar = function (_a) {
40
- var className = _a.className, color = _a.color, size = _a.size, border = _a.border, innerBorder = _a.innerBorder, disabled = _a.disabled, _b = _a.display, display = _b === void 0 ? 'initial' : _b, sx = _a.sx, props = __rest(_a, ["className", "color", "size", "border", "innerBorder", "disabled", "display", "sx"]);
41
- var defaultColor = typeof props.children === 'string' ? nameToColor(props.children) : undefined;
42
- var finalColor = color === 'none'
14
+ })
15
+ }));
16
+ export const Avatar = ({ className, color, size, border, innerBorder, disabled, display = 'initial', sx, ...props }) => {
17
+ const defaultColor = typeof props.children === 'string' ? nameToColor(props.children) : undefined;
18
+ const finalColor = color === 'none'
43
19
  ? undefined
44
20
  : color && supportedColors.includes(color)
45
21
  ? color
46
22
  : defaultColor;
47
- var classNames = [];
23
+ const classNames = [];
48
24
  if (className)
49
25
  classNames.push(className);
50
26
  if (size && typeof size === 'string')
51
- classNames.push("size-".concat(size));
27
+ classNames.push(`size-${size}`);
52
28
  if (disabled)
53
29
  classNames.push('disabled');
54
30
  if (border)
@@ -56,7 +32,7 @@ export var Avatar = function (_a) {
56
32
  if (innerBorder)
57
33
  classNames.push('innerBorder');
58
34
  if (display !== 'initial')
59
- classNames.push("display".concat(capitalize(display)));
60
- return (React.createElement(StyledAvatar, __assign({ gradientColor: finalColor, className: classNames.join(' ') || undefined, sx: sx }, props)));
35
+ classNames.push(`display${capitalize(display)}`);
36
+ return (React.createElement(StyledAvatar, { gradientColor: finalColor, className: classNames.join(' ') || undefined, sx: sx, ...props }));
61
37
  };
62
38
  export default Avatar;
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ import { ThemeProviderProps } from './types';
3
+ export declare const TwakeMuiThemeProvider: FC<ThemeProviderProps>;
@@ -2,10 +2,9 @@ import { CssBaseline } from '@mui/material';
2
2
  import { ThemeProvider as MuiThemeProvider, createTheme } from '@mui/material/styles';
3
3
  import React, { useMemo } from 'react';
4
4
  import { makeTheme } from '../../lib/makeTheme';
5
- export var TwakeMuiThemeProvider = function (_a) {
6
- var children = _a.children, _b = _a.mode, mode = _b === void 0 ? 'light' : _b, themeOptions = _a.themeOptions;
7
- var theme = useMemo(function () {
8
- var baseTheme = makeTheme(mode);
5
+ export const TwakeMuiThemeProvider = ({ children, mode = 'light', themeOptions }) => {
6
+ const theme = useMemo(() => {
7
+ const baseTheme = makeTheme(mode);
9
8
  if (!themeOptions) {
10
9
  return baseTheme;
11
10
  }
@@ -0,0 +1,7 @@
1
+ import { ThemeOptions } from '@mui/material/styles';
2
+ import { ReactNode } from 'react';
3
+ export interface ThemeProviderProps {
4
+ children: ReactNode;
5
+ mode?: 'light' | 'dark';
6
+ themeOptions?: Partial<ThemeOptions>;
7
+ }
@@ -0,0 +1,10 @@
1
+ export * from '@mui/material';
2
+ export { createTheme, ThemeProvider, styled, alpha, darken, lighten, useTheme } from '@mui/material/styles';
3
+ export { default as Autocomplete } from '@mui/material/Autocomplete';
4
+ export { TwakeMuiThemeProvider } from './components/ThemeProvider';
5
+ export { theme } from './lib/theme';
6
+ export type { TwakeTheme } from './lib/theme';
7
+ export { radius } from './lib/radius';
8
+ export { Avatar, default as AvatarDefault } from './components/Avatar';
9
+ export type { AvatarProps } from './components/Avatar';
10
+ export { nameToColor, supportedColors } from './components/Avatar/helpers';
@@ -0,0 +1,2 @@
1
+ import { Theme, Components } from '@mui/material/styles';
2
+ export declare const makeDarkOverrides: (theme: Theme) => Components;
@@ -1,14 +1,3 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  import { alpha } from '@mui/material/styles';
13
2
  import { accordionOverrides } from './overrides/accordionOverrides';
14
3
  import { autocompleteOverrides } from './overrides/autocompleteOverrides';
@@ -21,13 +10,31 @@ import { dialogOverrides, dialogTitleOverrides, dialogContentOverrides, dialogAc
21
10
  import { iconButtonOverrides } from './overrides/iconButtonOverrides';
22
11
  import { menuItemOverrides } from './overrides/menuItemOverrides';
23
12
  import { popoverOverrides } from './overrides/popoverOverrides';
13
+ import { swipeableDrawerOverrides } from './overrides/swipeableDrawerOverrides';
24
14
  import { textFieldOverrides, outlinedInputOverrides, inputBaseOverrides, selectOverrides } from './overrides/textFieldOverrides';
25
15
  import { toggleButtonGroupOverrides, toggleButtonOverrides } from './overrides/toggleButtonOverrides';
26
- export var makeDarkOverrides = function (theme) {
27
- var _a, _b;
28
- var datePickerOverridesResult = datePickerOverrides(theme);
29
- var accordionOverridesResult = accordionOverrides(theme);
30
- return __assign(__assign({ MuiButton: buttonOverrides(theme), MuiTextField: textFieldOverrides(), MuiOutlinedInput: outlinedInputOverrides(), MuiInputBase: inputBaseOverrides(), MuiSelect: selectOverrides(), MuiAutocomplete: autocompleteOverrides(), MuiDialog: dialogOverrides(), MuiDialogTitle: dialogTitleOverrides(), MuiDialogContent: dialogContentOverrides(), MuiDialogActions: dialogActionsOverrides(), MuiPopover: popoverOverrides(), MuiAvatar: avatarOverrides(theme), MuiToggleButtonGroup: toggleButtonGroupOverrides(), MuiToggleButton: toggleButtonOverrides(theme), MuiIconButton: iconButtonOverrides(), MuiCheckbox: checkboxOverrides(), MuiBackdrop: backdropOverrides(theme), MuiTypography: {
16
+ export const makeDarkOverrides = (theme) => {
17
+ const datePickerOverridesResult = datePickerOverrides(theme);
18
+ const accordionOverridesResult = accordionOverrides(theme);
19
+ return {
20
+ MuiButton: buttonOverrides(theme),
21
+ MuiTextField: textFieldOverrides(),
22
+ MuiOutlinedInput: outlinedInputOverrides(),
23
+ MuiInputBase: inputBaseOverrides(),
24
+ MuiSelect: selectOverrides(),
25
+ MuiAutocomplete: autocompleteOverrides(),
26
+ MuiDialog: dialogOverrides(),
27
+ MuiDialogTitle: dialogTitleOverrides(),
28
+ MuiDialogContent: dialogContentOverrides(),
29
+ MuiDialogActions: dialogActionsOverrides(),
30
+ MuiPopover: popoverOverrides(),
31
+ MuiAvatar: avatarOverrides(theme),
32
+ MuiToggleButtonGroup: toggleButtonGroupOverrides(),
33
+ MuiToggleButton: toggleButtonOverrides(theme),
34
+ MuiIconButton: iconButtonOverrides(),
35
+ MuiCheckbox: checkboxOverrides(),
36
+ MuiBackdrop: backdropOverrides(theme),
37
+ MuiTypography: {
31
38
  styleOverrides: {
32
39
  root: {
33
40
  color: alpha(theme.palette.grey[50], 0.9)
@@ -36,7 +43,17 @@ export var makeDarkOverrides = function (theme) {
36
43
  // Typography caption overrides will be implemented later
37
44
  }
38
45
  }
39
- } }, datePickerOverridesResult), { MuiAccordion: accordionOverridesResult.MuiAccordion, MuiAccordionSummary: accordionOverridesResult.MuiAccordionSummary, MuiCssBaseline: {
40
- styleOverrides: __assign(__assign({}, (((_a = datePickerOverridesResult.MuiCssBaseline) === null || _a === void 0 ? void 0 : _a.styleOverrides) || {})), (((_b = accordionOverridesResult.MuiCssBaseline) === null || _b === void 0 ? void 0 : _b.styleOverrides) || {}))
41
- }, MuiMenuItem: menuItemOverrides(theme) });
46
+ },
47
+ ...datePickerOverridesResult,
48
+ MuiAccordion: accordionOverridesResult.MuiAccordion,
49
+ MuiAccordionSummary: accordionOverridesResult.MuiAccordionSummary,
50
+ MuiCssBaseline: {
51
+ styleOverrides: {
52
+ ...(datePickerOverridesResult.MuiCssBaseline?.styleOverrides || {}),
53
+ ...(accordionOverridesResult.MuiCssBaseline?.styleOverrides || {})
54
+ }
55
+ },
56
+ MuiMenuItem: menuItemOverrides(theme),
57
+ MuiSwipeableDrawer: swipeableDrawerOverrides(theme)
58
+ };
42
59
  };
@@ -0,0 +1,2 @@
1
+ import { Theme, Components } from '@mui/material/styles';
2
+ export declare const makeLightOverrides: (theme: Theme) => Components;
@@ -1,14 +1,3 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  import { alpha } from '@mui/material/styles';
13
2
  import { accordionOverrides } from './overrides/accordionOverrides';
14
3
  import { autocompleteOverrides } from './overrides/autocompleteOverrides';
@@ -21,13 +10,31 @@ import { dialogOverrides, dialogTitleOverrides, dialogContentOverrides, dialogAc
21
10
  import { iconButtonOverrides } from './overrides/iconButtonOverrides';
22
11
  import { menuItemOverrides } from './overrides/menuItemOverrides';
23
12
  import { popoverOverrides } from './overrides/popoverOverrides';
13
+ import { swipeableDrawerOverrides } from './overrides/swipeableDrawerOverrides';
24
14
  import { textFieldOverrides, outlinedInputOverrides, inputBaseOverrides, selectOverrides } from './overrides/textFieldOverrides';
25
15
  import { toggleButtonGroupOverrides, toggleButtonOverrides } from './overrides/toggleButtonOverrides';
26
- export var makeLightOverrides = function (theme) {
27
- var _a, _b;
28
- var datePickerOverridesResult = datePickerOverrides(theme);
29
- var accordionOverridesResult = accordionOverrides(theme);
30
- return __assign(__assign({ MuiButton: buttonOverrides(theme), MuiTextField: textFieldOverrides(), MuiOutlinedInput: outlinedInputOverrides(), MuiInputBase: inputBaseOverrides(), MuiSelect: selectOverrides(), MuiAutocomplete: autocompleteOverrides(), MuiDialog: dialogOverrides(), MuiDialogTitle: dialogTitleOverrides(), MuiDialogContent: dialogContentOverrides(), MuiDialogActions: dialogActionsOverrides(), MuiPopover: popoverOverrides(), MuiAvatar: avatarOverrides(theme), MuiToggleButtonGroup: toggleButtonGroupOverrides(), MuiToggleButton: toggleButtonOverrides(theme), MuiIconButton: iconButtonOverrides(), MuiCheckbox: checkboxOverrides(), MuiBackdrop: backdropOverrides(theme), MuiTypography: {
16
+ export const makeLightOverrides = (theme) => {
17
+ const datePickerOverridesResult = datePickerOverrides(theme);
18
+ const accordionOverridesResult = accordionOverrides(theme);
19
+ return {
20
+ MuiButton: buttonOverrides(theme),
21
+ MuiTextField: textFieldOverrides(),
22
+ MuiOutlinedInput: outlinedInputOverrides(),
23
+ MuiInputBase: inputBaseOverrides(),
24
+ MuiSelect: selectOverrides(),
25
+ MuiAutocomplete: autocompleteOverrides(),
26
+ MuiDialog: dialogOverrides(),
27
+ MuiDialogTitle: dialogTitleOverrides(),
28
+ MuiDialogContent: dialogContentOverrides(),
29
+ MuiDialogActions: dialogActionsOverrides(),
30
+ MuiPopover: popoverOverrides(),
31
+ MuiAvatar: avatarOverrides(theme),
32
+ MuiToggleButtonGroup: toggleButtonGroupOverrides(),
33
+ MuiToggleButton: toggleButtonOverrides(theme),
34
+ MuiIconButton: iconButtonOverrides(),
35
+ MuiCheckbox: checkboxOverrides(),
36
+ MuiBackdrop: backdropOverrides(theme),
37
+ MuiTypography: {
31
38
  styleOverrides: {
32
39
  root: {
33
40
  color: alpha(theme.palette.grey[900], 0.9)
@@ -36,7 +43,16 @@ export var makeLightOverrides = function (theme) {
36
43
  // Typography caption overrides will be implemented later
37
44
  }
38
45
  }
39
- } }, datePickerOverridesResult), { MuiAccordionSummary: accordionOverridesResult.MuiAccordionSummary, MuiCssBaseline: {
40
- styleOverrides: __assign(__assign({}, (((_a = datePickerOverridesResult.MuiCssBaseline) === null || _a === void 0 ? void 0 : _a.styleOverrides) || {})), (((_b = accordionOverridesResult.MuiCssBaseline) === null || _b === void 0 ? void 0 : _b.styleOverrides) || {}))
41
- }, MuiMenuItem: menuItemOverrides(theme) });
46
+ },
47
+ ...datePickerOverridesResult,
48
+ MuiAccordionSummary: accordionOverridesResult.MuiAccordionSummary,
49
+ MuiCssBaseline: {
50
+ styleOverrides: {
51
+ ...(datePickerOverridesResult.MuiCssBaseline?.styleOverrides || {}),
52
+ ...(accordionOverridesResult.MuiCssBaseline?.styleOverrides || {})
53
+ }
54
+ },
55
+ MuiMenuItem: menuItemOverrides(theme),
56
+ MuiSwipeableDrawer: swipeableDrawerOverrides(theme)
57
+ };
42
58
  };
@@ -0,0 +1,2 @@
1
+ import { PaletteOptions } from '@mui/material/styles';
2
+ export declare const makePalette: (mode?: "light" | "dark") => PaletteOptions;
@@ -1,9 +1,8 @@
1
1
  import paletteJson from './palette.json';
2
- var paletteData = paletteJson;
3
- export var makePalette = function (mode) {
4
- if (mode === void 0) { mode = 'light'; }
2
+ const paletteData = paletteJson;
3
+ export const makePalette = (mode = 'light') => {
5
4
  return {
6
- mode: mode,
5
+ mode,
7
6
  primary: {
8
7
  light: paletteData.Primary[300],
9
8
  main: paletteData.Primary[600],
@@ -0,0 +1,2 @@
1
+ import { createTheme } from '@mui/material/styles';
2
+ export declare const makeTheme: (mode?: "light" | "dark") => ReturnType<typeof createTheme>;
@@ -1,21 +1,10 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
1
  import { createTheme } from '@mui/material/styles';
13
2
  import { makeDarkOverrides } from './makeDarkOverrides';
14
3
  import { makeLightOverrides } from './makeLightOverrides';
15
4
  import { makePalette } from './makePalette';
16
5
  import { makeTypography } from './makeTypography';
17
6
  // DatePicker styles are applied through component overrides
18
- var themesCommonConfig = {
7
+ const themesCommonConfig = {
19
8
  shape: {
20
9
  borderRadius: 6
21
10
  },
@@ -32,12 +21,18 @@ var themesCommonConfig = {
32
21
  modal: 1300
33
22
  }
34
23
  };
35
- export var makeTheme = function (mode) {
36
- if (mode === void 0) { mode = 'light'; }
37
- var palette = makePalette(mode);
38
- var typography = makeTypography();
39
- var theme = createTheme(__assign(__assign({}, themesCommonConfig), { palette: palette, typography: typography }));
40
- var components = mode === 'dark' ? makeDarkOverrides(theme) : makeLightOverrides(theme);
24
+ export const makeTheme = (mode = 'light') => {
25
+ const palette = makePalette(mode);
26
+ const typography = makeTypography();
27
+ const theme = createTheme({
28
+ ...themesCommonConfig,
29
+ palette,
30
+ typography
31
+ });
32
+ const components = mode === 'dark' ? makeDarkOverrides(theme) : makeLightOverrides(theme);
41
33
  // Create the final theme with components
42
- return createTheme(__assign(__assign({}, theme), { components: components }));
34
+ return createTheme({
35
+ ...theme,
36
+ components
37
+ });
43
38
  };
@@ -0,0 +1,2 @@
1
+ import { TypographyVariantsOptions } from '@mui/material/styles';
2
+ export declare const makeTypography: () => TypographyVariantsOptions;
@@ -1,4 +1,4 @@
1
- export var makeTypography = function () {
1
+ export const makeTypography = () => {
2
2
  return {
3
3
  fontFamily: [
4
4
  '"Inter"',
@@ -0,0 +1,2 @@
1
+ import { Theme, Components } from '@mui/material/styles';
2
+ export declare const accordionOverrides: (theme: Theme) => Components;
@@ -1,8 +1,8 @@
1
1
  import { alpha } from '@mui/material/styles';
2
2
  import paletteJson from '../palette.json';
3
- var paletteData = paletteJson;
3
+ const paletteData = paletteJson;
4
4
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
- export var accordionOverrides = function (theme) {
5
+ export const accordionOverrides = (theme) => {
6
6
  return {
7
7
  MuiAccordion: {
8
8
  styleOverrides: {
@@ -0,0 +1,2 @@
1
+ import { Components } from '@mui/material/styles';
2
+ export declare const autocompleteOverrides: () => Components["MuiAutocomplete"];
@@ -1,5 +1,5 @@
1
1
  import { radius } from '../radius';
2
- export var autocompleteOverrides = function () {
2
+ export const autocompleteOverrides = () => {
3
3
  return {
4
4
  styleOverrides: {
5
5
  root: {
@@ -0,0 +1,2 @@
1
+ import { Theme, Components } from '@mui/material/styles';
2
+ export declare const avatarOverrides: (theme: Theme) => Components["MuiAvatar"];
@@ -1,4 +1,4 @@
1
- export var avatarOverrides = function (theme) {
1
+ export const avatarOverrides = (theme) => {
2
2
  return {
3
3
  styleOverrides: {
4
4
  root: {
@@ -70,10 +70,10 @@ export var avatarOverrides = function (theme) {
70
70
  display: 'inline-flex'
71
71
  },
72
72
  '&.border': {
73
- border: "2px solid ".concat(theme.palette.background.paper)
73
+ border: `2px solid ${theme.palette.background.paper}`
74
74
  },
75
75
  '&.innerBorder': {
76
- boxShadow: "inset 0px 0px 0px 1px ".concat(theme.palette.divider)
76
+ boxShadow: `inset 0px 0px 0px 1px ${theme.palette.divider}`
77
77
  }
78
78
  },
79
79
  colorDefault: {
@@ -0,0 +1,2 @@
1
+ import { Components, Theme } from '@mui/material/styles';
2
+ export declare const backdropOverrides: (theme: Theme) => Components["MuiBackdrop"];
@@ -1,5 +1,5 @@
1
1
  import { alpha } from '@mui/material/styles';
2
- export var backdropOverrides = function (theme) {
2
+ export const backdropOverrides = (theme) => {
3
3
  return {
4
4
  styleOverrides: {
5
5
  root: {
@@ -0,0 +1,2 @@
1
+ import { Theme, Components } from '@mui/material/styles';
2
+ export declare const buttonOverrides: (theme: Theme) => Components["MuiButton"];
@@ -1,8 +1,8 @@
1
1
  import { alpha } from '@mui/material/styles';
2
2
  import paletteJson from '../palette.json';
3
3
  import { radius } from '../radius';
4
- var paletteData = paletteJson;
5
- export var buttonOverrides = function (theme) {
4
+ const paletteData = paletteJson;
5
+ export const buttonOverrides = (theme) => {
6
6
  return {
7
7
  styleOverrides: {
8
8
  root: {
@@ -0,0 +1,2 @@
1
+ import { Components } from '@mui/material/styles';
2
+ export declare const checkboxOverrides: () => Components["MuiCheckbox"];
@@ -1,4 +1,4 @@
1
- export var checkboxOverrides = function () {
1
+ export const checkboxOverrides = () => {
2
2
  return {
3
3
  styleOverrides: {
4
4
  root: {
@@ -0,0 +1,2 @@
1
+ import { Theme, Components } from '@mui/material/styles';
2
+ export declare const datePickerOverrides: (theme: Theme) => Components;
@@ -1,6 +1,6 @@
1
1
  import { alpha } from '@mui/material/styles';
2
2
  // DatePicker component overrides using nested selectors for higher specificity
3
- export var datePickerOverrides = function (theme) {
3
+ export const datePickerOverrides = (theme) => {
4
4
  return {
5
5
  MuiCssBaseline: {
6
6
  styleOverrides: {
@@ -67,9 +67,9 @@ export var datePickerOverrides = function (theme) {
67
67
  }
68
68
  },
69
69
  '.MuiDateCalendar-root .MuiButtonBase-root.MuiPickersDay-root.Mui-selected': {
70
- backgroundColor: "".concat(theme.palette.primary.main),
70
+ backgroundColor: `${theme.palette.primary.main}`,
71
71
  '&:hover': {
72
- backgroundColor: "".concat(theme.palette.primary.dark)
72
+ backgroundColor: `${theme.palette.primary.dark}`
73
73
  }
74
74
  },
75
75
  '.MuiDateCalendar-root .MuiMonthCalendar-root': {
@@ -0,0 +1,5 @@
1
+ import { Components } from '@mui/material/styles';
2
+ export declare const dialogOverrides: () => Components["MuiDialog"];
3
+ export declare const dialogTitleOverrides: () => Components["MuiDialogTitle"];
4
+ export declare const dialogContentOverrides: () => Components["MuiDialogContent"];
5
+ export declare const dialogActionsOverrides: () => Components["MuiDialogActions"];
@@ -1,5 +1,5 @@
1
1
  import { radius } from '../radius';
2
- export var dialogOverrides = function () {
2
+ export const dialogOverrides = () => {
3
3
  return {
4
4
  styleOverrides: {
5
5
  paper: {
@@ -10,7 +10,7 @@ export var dialogOverrides = function () {
10
10
  }
11
11
  };
12
12
  };
13
- export var dialogTitleOverrides = function () {
13
+ export const dialogTitleOverrides = () => {
14
14
  return {
15
15
  styleOverrides: {
16
16
  root: {
@@ -23,7 +23,7 @@ export var dialogTitleOverrides = function () {
23
23
  }
24
24
  };
25
25
  };
26
- export var dialogContentOverrides = function () {
26
+ export const dialogContentOverrides = () => {
27
27
  return {
28
28
  styleOverrides: {
29
29
  root: {
@@ -32,7 +32,7 @@ export var dialogContentOverrides = function () {
32
32
  }
33
33
  };
34
34
  };
35
- export var dialogActionsOverrides = function () {
35
+ export const dialogActionsOverrides = () => {
36
36
  return {
37
37
  styleOverrides: {
38
38
  root: {
@@ -0,0 +1,2 @@
1
+ import { Components } from '@mui/material/styles';
2
+ export declare const iconButtonOverrides: () => Components["MuiIconButton"];
@@ -1,7 +1,7 @@
1
1
  import { alpha } from '@mui/material/styles';
2
2
  import paletteJson from '../palette.json';
3
- var paletteData = paletteJson;
4
- export var iconButtonOverrides = function () {
3
+ const paletteData = paletteJson;
4
+ export const iconButtonOverrides = () => {
5
5
  return {
6
6
  styleOverrides: {
7
7
  root: {
@@ -0,0 +1,2 @@
1
+ import { Components, Theme } from '@mui/material/styles';
2
+ export declare const menuItemOverrides: (theme: Theme) => Components["MuiMenuItem"];
@@ -1,24 +1,22 @@
1
1
  import { menuItemClasses } from '@mui/material/MenuItem';
2
2
  import { alpha } from '@mui/material/styles';
3
3
  import { radius } from '../radius';
4
- export var menuItemOverrides = function (theme) {
5
- var _a;
4
+ export const menuItemOverrides = (theme) => {
6
5
  return {
7
6
  styleOverrides: {
8
- root: (_a = {
9
- borderRadius: radius.md,
10
- '&&&:hover': {
11
- backgroundColor: "".concat(alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity))
12
- }
7
+ root: {
8
+ borderRadius: radius.md,
9
+ '&&&:hover': {
10
+ backgroundColor: `${alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity)}`
13
11
  },
14
- _a["&.".concat(menuItemClasses.selected)] = {
12
+ [`&.${menuItemClasses.selected}`]: {
15
13
  backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
16
14
  '&:hover': {
17
15
  backgroundColor: alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity +
18
16
  theme.palette.action.hoverOpacity)
19
17
  }
20
- },
21
- _a)
18
+ }
19
+ }
22
20
  }
23
21
  };
24
22
  };
@@ -0,0 +1,2 @@
1
+ import { Components } from '@mui/material/styles';
2
+ export declare const popoverOverrides: () => Components["MuiPopover"];
@@ -1,5 +1,5 @@
1
1
  import { radius } from '../radius';
2
- export var popoverOverrides = function () {
2
+ export const popoverOverrides = () => {
3
3
  return {
4
4
  styleOverrides: {
5
5
  paper: {
@@ -0,0 +1,2 @@
1
+ import { Components, Theme } from '@mui/material/styles';
2
+ export declare const swipeableDrawerOverrides: (theme: Theme) => Components["MuiSwipeableDrawer"];
@@ -0,0 +1,26 @@
1
+ import { radius } from '../radius';
2
+ // MuiSwipeableDrawer inherits from MuiDrawer.
3
+ // To style the paper (the actual container) of a swipeable drawer, we have to target MuiDrawer
4
+ export const swipeableDrawerOverrides = (theme) => {
5
+ return {
6
+ defaultProps: {
7
+ sx: {
8
+ '& .MuiDrawer-paper': {
9
+ borderTopLeftRadius: radius.md,
10
+ borderTopRightRadius: radius.md,
11
+ '&::before': {
12
+ content: '""',
13
+ display: 'block',
14
+ width: '64px',
15
+ height: '4px',
16
+ backgroundColor: theme.palette.action.disabledBackground,
17
+ borderRadius: radius.md,
18
+ margin: '12px auto',
19
+ marginTop: '30px',
20
+ flexShrink: 0
21
+ }
22
+ }
23
+ }
24
+ }
25
+ };
26
+ };
@@ -0,0 +1,5 @@
1
+ import { Components } from '@mui/material/styles';
2
+ export declare const textFieldOverrides: () => Components["MuiTextField"];
3
+ export declare const outlinedInputOverrides: () => Components["MuiOutlinedInput"];
4
+ export declare const inputBaseOverrides: () => Components["MuiInputBase"];
5
+ export declare const selectOverrides: () => Components["MuiSelect"];
@@ -1,5 +1,5 @@
1
1
  import { radius } from '../radius';
2
- export var textFieldOverrides = function () {
2
+ export const textFieldOverrides = () => {
3
3
  return {
4
4
  defaultProps: {
5
5
  size: 'medium'
@@ -16,7 +16,7 @@ export var textFieldOverrides = function () {
16
16
  }
17
17
  };
18
18
  };
19
- export var outlinedInputOverrides = function () {
19
+ export const outlinedInputOverrides = () => {
20
20
  return {
21
21
  styleOverrides: {
22
22
  root: {
@@ -57,7 +57,7 @@ export var outlinedInputOverrides = function () {
57
57
  ]
58
58
  };
59
59
  };
60
- export var inputBaseOverrides = function () {
60
+ export const inputBaseOverrides = () => {
61
61
  return {
62
62
  styleOverrides: {
63
63
  root: {
@@ -68,7 +68,7 @@ export var inputBaseOverrides = function () {
68
68
  }
69
69
  };
70
70
  };
71
- export var selectOverrides = function () {
71
+ export const selectOverrides = () => {
72
72
  return {
73
73
  styleOverrides: {
74
74
  root: {
@@ -0,0 +1,3 @@
1
+ import { Theme, Components } from '@mui/material/styles';
2
+ export declare const toggleButtonGroupOverrides: () => Components["MuiToggleButtonGroup"];
3
+ export declare const toggleButtonOverrides: (theme: Theme) => Components["MuiToggleButton"];
@@ -1,5 +1,5 @@
1
1
  import { alpha } from '@mui/material/styles';
2
- export var toggleButtonGroupOverrides = function () {
2
+ export const toggleButtonGroupOverrides = () => {
3
3
  return {
4
4
  styleOverrides: {
5
5
  root: {
@@ -18,7 +18,7 @@ export var toggleButtonGroupOverrides = function () {
18
18
  }
19
19
  };
20
20
  };
21
- export var toggleButtonOverrides = function (theme) {
21
+ export const toggleButtonOverrides = (theme) => {
22
22
  return {
23
23
  styleOverrides: {
24
24
  root: {
@@ -0,0 +1,7 @@
1
+ export declare const radius: {
2
+ none: string;
3
+ sm: string;
4
+ md: string;
5
+ lg: string;
6
+ pill: string;
7
+ };
@@ -1,4 +1,4 @@
1
- export var radius = {
1
+ export const radius = {
2
2
  none: '0',
3
3
  sm: '4px',
4
4
  md: '8px',
@@ -0,0 +1,3 @@
1
+ import { Theme } from '@mui/material/styles';
2
+ export declare const theme: Theme;
3
+ export type TwakeTheme = Theme;
package/dist/lib/theme.js CHANGED
@@ -1,2 +1,2 @@
1
1
  import { makeTheme } from './makeTheme';
2
- export var theme = makeTheme();
2
+ export const theme = makeTheme();
@@ -0,0 +1,104 @@
1
+ import { TypographyVariantsOptions } from '@mui/material/styles';
2
+ export interface PaletteColor {
3
+ 50: string;
4
+ 100: string;
5
+ 200: string;
6
+ 300: string;
7
+ 400: string;
8
+ 500: string;
9
+ 600: string;
10
+ 700: string;
11
+ 800: string;
12
+ 900: string;
13
+ ContrastText?: string;
14
+ A400?: string;
15
+ }
16
+ export interface GreyPalette {
17
+ 50: string;
18
+ 100: string;
19
+ 200: string;
20
+ 300: string;
21
+ 400: string;
22
+ 500: string;
23
+ 600: string;
24
+ 700: string;
25
+ 800: string;
26
+ 900: string;
27
+ A100: string;
28
+ A200: string;
29
+ A400: string;
30
+ A700: string;
31
+ A900: string;
32
+ }
33
+ export interface TextPalette {
34
+ primary: string;
35
+ secondary: string;
36
+ secondaryContainer: string;
37
+ disabled: string;
38
+ hint: string;
39
+ icon: string;
40
+ }
41
+ export interface BackgroundPalette {
42
+ default: string;
43
+ paper: string;
44
+ contrast: string;
45
+ }
46
+ export interface ActionPalette {
47
+ active: string;
48
+ hover: string;
49
+ selected: string;
50
+ disabled: string;
51
+ disabledBackground: string;
52
+ focus: string;
53
+ }
54
+ export interface BorderPalette {
55
+ main: string;
56
+ disabled: string;
57
+ ghost: string;
58
+ }
59
+ export interface PaletteJson {
60
+ Primary: PaletteColor;
61
+ Secondary: PaletteColor;
62
+ Error: PaletteColor;
63
+ Warning: PaletteColor;
64
+ Success: PaletteColor;
65
+ Info: Omit<PaletteColor, 'ContrastText'>;
66
+ Grey: GreyPalette;
67
+ }
68
+ export type TypographyOptions = TypographyVariantsOptions;
69
+ declare module '@mui/material/TextField' {
70
+ interface TextFieldPropsSizeOverrides {
71
+ large: true;
72
+ }
73
+ }
74
+ declare module '@mui/material/InputBase' {
75
+ interface InputBasePropsSizeOverrides {
76
+ large: true;
77
+ }
78
+ }
79
+ export interface TypographyConfig {
80
+ fontFamily?: string;
81
+ fontSize?: number;
82
+ fontWeight?: number | string;
83
+ lineHeight?: number | string;
84
+ letterSpacing?: string;
85
+ textTransform?: 'none' | 'uppercase' | 'lowercase' | 'capitalize';
86
+ }
87
+ export interface TypographyVariants {
88
+ h1: TypographyConfig;
89
+ h2: TypographyConfig;
90
+ h3: TypographyConfig;
91
+ h4: TypographyConfig;
92
+ h5: TypographyConfig;
93
+ h6: TypographyConfig;
94
+ subtitle1: TypographyConfig;
95
+ subtitle2: TypographyConfig;
96
+ body1: TypographyConfig;
97
+ body2: TypographyConfig;
98
+ button: TypographyConfig;
99
+ buttonLarge: TypographyConfig;
100
+ buttonSmall: TypographyConfig;
101
+ caption: TypographyConfig;
102
+ overline: TypographyConfig;
103
+ }
104
+ export type MakeTypography = () => TypographyOptions;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linagora/twake-mui",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "MUI v7 theme system for Twake applications",
5
5
  "author": "Twake",
6
6
  "license": "MIT",
@@ -58,7 +58,7 @@
58
58
  "devDependencies": {
59
59
  "@types/react": "18.3.26",
60
60
  "@types/react-dom": "18.3.7",
61
- "cozy-tsconfig": "1.8.1",
61
+ "cozy-tsconfig": "^1.9.0",
62
62
  "eslint": "10.1.0",
63
63
  "eslint-config-cozy-app": "7.0.0"
64
64
  },