@octoguide/mui-ui-toolkit 0.7.0 → 0.7.1

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/index.d.mts CHANGED
@@ -358,6 +358,11 @@ interface ToolkitThemeProviderProps {
358
358
  * Defaults to true.
359
359
  */
360
360
  injectCssBaseline?: boolean;
361
+ /**
362
+ * Enable dark mode. When true, palette.mode is set to 'dark' and
363
+ * component overrides adapt accordingly.
364
+ */
365
+ darkMode?: boolean;
361
366
  }
362
367
  /**
363
368
  * Drop-in ThemeProvider for any app using the mui-ui-toolkit.
@@ -380,7 +385,7 @@ interface ToolkitThemeProviderProps {
380
385
  * <App />
381
386
  * </ToolkitThemeProvider>
382
387
  */
383
- declare function ToolkitThemeProvider({ theme, children, injectCssBaseline, }: ToolkitThemeProviderProps): react_jsx_runtime.JSX.Element;
388
+ declare function ToolkitThemeProvider({ theme, children, injectCssBaseline, darkMode, }: ToolkitThemeProviderProps): react_jsx_runtime.JSX.Element;
384
389
 
385
390
  /**
386
391
  * Takes a ThemeTokens object and produces a fully configured MUI Theme.
@@ -393,7 +398,7 @@ declare function ToolkitThemeProvider({ theme, children, injectCssBaseline, }: T
393
398
  * augmentation in types/mui.d.ts) so components can read any token
394
399
  * not already exposed by MUI's built-in theme shape.
395
400
  */
396
- declare function createMuiTheme(tokens: ThemeTokens): Theme;
401
+ declare function createMuiTheme(tokens: ThemeTokens, darkMode?: boolean): Theme;
397
402
 
398
403
  /**
399
404
  * Resolves the active theme name from the environment.
package/dist/index.d.ts CHANGED
@@ -358,6 +358,11 @@ interface ToolkitThemeProviderProps {
358
358
  * Defaults to true.
359
359
  */
360
360
  injectCssBaseline?: boolean;
361
+ /**
362
+ * Enable dark mode. When true, palette.mode is set to 'dark' and
363
+ * component overrides adapt accordingly.
364
+ */
365
+ darkMode?: boolean;
361
366
  }
362
367
  /**
363
368
  * Drop-in ThemeProvider for any app using the mui-ui-toolkit.
@@ -380,7 +385,7 @@ interface ToolkitThemeProviderProps {
380
385
  * <App />
381
386
  * </ToolkitThemeProvider>
382
387
  */
383
- declare function ToolkitThemeProvider({ theme, children, injectCssBaseline, }: ToolkitThemeProviderProps): react_jsx_runtime.JSX.Element;
388
+ declare function ToolkitThemeProvider({ theme, children, injectCssBaseline, darkMode, }: ToolkitThemeProviderProps): react_jsx_runtime.JSX.Element;
384
389
 
385
390
  /**
386
391
  * Takes a ThemeTokens object and produces a fully configured MUI Theme.
@@ -393,7 +398,7 @@ declare function ToolkitThemeProvider({ theme, children, injectCssBaseline, }: T
393
398
  * augmentation in types/mui.d.ts) so components can read any token
394
399
  * not already exposed by MUI's built-in theme shape.
395
400
  */
396
- declare function createMuiTheme(tokens: ThemeTokens): Theme;
401
+ declare function createMuiTheme(tokens: ThemeTokens, darkMode?: boolean): Theme;
397
402
 
398
403
  /**
399
404
  * Resolves the active theme name from the environment.
package/dist/index.js CHANGED
@@ -619,9 +619,10 @@ function resolveThemeName() {
619
619
 
620
620
  // src/themes/createMuiTheme.ts
621
621
  var import_styles = require("@mui/material/styles");
622
- function createMuiTheme(tokens) {
622
+ function createMuiTheme(tokens, darkMode = false) {
623
623
  return (0, import_styles.createTheme)({
624
624
  palette: {
625
+ mode: darkMode ? "dark" : "light",
625
626
  primary: {
626
627
  main: tokens.colors.primary,
627
628
  dark: tokens.colors.primaryDark,
@@ -639,9 +640,9 @@ function createMuiTheme(tokens) {
639
640
  error: { main: tokens.colors.error },
640
641
  info: { main: tokens.colors.info },
641
642
  background: {
642
- default: tokens.colors.background,
643
- paper: tokens.colors.backgroundPaper,
644
- subtle: tokens.colors.backgroundSubtle
643
+ default: darkMode ? "#0d0d0d" : tokens.colors.background,
644
+ paper: darkMode ? "#1a1a1a" : tokens.colors.backgroundPaper,
645
+ subtle: darkMode ? "#2a2a2a" : tokens.colors.backgroundSubtle
645
646
  },
646
647
  border: tokens.colors.border,
647
648
  text: {
@@ -800,14 +801,14 @@ function createMuiTheme(tokens) {
800
801
  },
801
802
  MuiTextField: {
802
803
  styleOverrides: {
803
- root: {
804
+ root: ({ theme }) => ({
804
805
  "& .MuiOutlinedInput-root": {
805
806
  borderRadius: tokens.components.input.borderRadius,
806
- backgroundColor: tokens.components.input.background,
807
+ backgroundColor: theme.palette.mode === "dark" ? theme.palette.background.paper : tokens.components.input.background,
807
808
  minHeight: tokens.components.input.minHeight,
808
809
  "& fieldset": {
809
810
  borderWidth: tokens.components.input.borderWidth,
810
- borderColor: tokens.colors.border
811
+ borderColor: theme.palette.mode === "dark" ? theme.palette.divider : tokens.colors.border
811
812
  },
812
813
  "&:hover fieldset": {
813
814
  borderColor: tokens.colors.primary
@@ -817,7 +818,7 @@ function createMuiTheme(tokens) {
817
818
  borderColor: tokens.colors.borderFocus
818
819
  },
819
820
  "&.Mui-disabled": {
820
- backgroundColor: tokens.components.input.backgroundDisabled
821
+ backgroundColor: theme.palette.mode === "dark" ? theme.palette.action.disabledBackground : tokens.components.input.backgroundDisabled
821
822
  }
822
823
  },
823
824
  "& .MuiInputLabel-root": {
@@ -826,17 +827,17 @@ function createMuiTheme(tokens) {
826
827
  "& .MuiFormHelperText-root": {
827
828
  fontSize: tokens.components.input.helperFontSize
828
829
  }
829
- }
830
+ })
830
831
  }
831
832
  },
832
833
  MuiCard: {
833
834
  styleOverrides: {
834
- root: {
835
+ root: ({ theme }) => ({
835
836
  borderRadius: tokens.components.card.borderRadius,
836
- backgroundColor: tokens.components.card.background,
837
+ backgroundColor: theme.palette.mode === "dark" ? theme.palette.background.paper : tokens.components.card.background,
837
838
  boxShadow: tokens.shadows.sm,
838
- border: `${tokens.components.card.borderWidth} solid ${tokens.colors.divider}`
839
- }
839
+ border: `${tokens.components.card.borderWidth} solid ${theme.palette.divider}`
840
+ })
840
841
  }
841
842
  },
842
843
  MuiCardContent: {
@@ -920,11 +921,11 @@ function createMuiTheme(tokens) {
920
921
  },
921
922
  MuiDialog: {
922
923
  styleOverrides: {
923
- paper: {
924
+ paper: ({ theme }) => ({
924
925
  borderRadius: tokens.components.dialog.borderRadius,
925
- backgroundColor: tokens.components.dialog.background,
926
+ backgroundColor: theme.palette.mode === "dark" ? theme.palette.background.paper : tokens.components.dialog.background,
926
927
  maxWidth: tokens.components.dialog.maxWidth
927
- }
928
+ })
928
929
  }
929
930
  },
930
931
  MuiDialogContent: {
@@ -936,26 +937,27 @@ function createMuiTheme(tokens) {
936
937
  },
937
938
  MuiTableCell: {
938
939
  styleOverrides: {
939
- root: {
940
+ root: ({ theme }) => ({
940
941
  paddingLeft: tokens.components.table.cellPaddingX,
941
942
  paddingRight: tokens.components.table.cellPaddingX,
942
943
  paddingTop: tokens.components.table.cellPaddingY,
943
944
  paddingBottom: tokens.components.table.cellPaddingY,
944
- borderBottom: `${tokens.components.table.borderWidth} solid ${tokens.components.table.borderColor}`
945
- },
946
- head: {
945
+ borderBottom: `${tokens.components.table.borderWidth} solid ${theme.palette.mode === "dark" ? theme.palette.divider : tokens.components.table.borderColor}`
946
+ }),
947
+ head: ({ theme }) => ({
947
948
  fontWeight: tokens.components.table.headerFontWeight,
948
- backgroundColor: tokens.components.table.headerBackground
949
- }
949
+ backgroundColor: theme.palette.mode === "dark" ? theme.palette.background.default : tokens.components.table.headerBackground,
950
+ color: theme.palette.text.secondary
951
+ })
950
952
  }
951
953
  },
952
954
  MuiTableRow: {
953
955
  styleOverrides: {
954
- root: {
956
+ root: ({ theme }) => ({
955
957
  "&:hover": {
956
- backgroundColor: tokens.components.table.rowHoverBackground
958
+ backgroundColor: theme.palette.mode === "dark" ? theme.palette.action.hover : tokens.components.table.rowHoverBackground
957
959
  }
958
- }
960
+ })
959
961
  }
960
962
  },
961
963
  MuiAvatar: {
@@ -1204,11 +1206,12 @@ var import_jsx_runtime = require("react/jsx-runtime");
1204
1206
  function ToolkitThemeProvider({
1205
1207
  theme,
1206
1208
  children,
1207
- injectCssBaseline = true
1209
+ injectCssBaseline = true,
1210
+ darkMode = false
1208
1211
  }) {
1209
1212
  const themeName = theme ?? resolveThemeName();
1210
1213
  const tokens = getThemeTokens(themeName);
1211
- const muiTheme = createMuiTheme(tokens);
1214
+ const muiTheme = createMuiTheme(tokens, darkMode);
1212
1215
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.ThemeProvider, { theme: muiTheme, children: [
1213
1216
  injectCssBaseline && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.CssBaseline, {}),
1214
1217
  children