@firecms/core 3.0.0-canary.184 → 3.0.0-canary.186
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/hooks/useModeController.d.ts +1 -2
- package/dist/index.es.js +35 -28
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +34 -27
- package/dist/index.umd.js.map +1 -1
- package/package.json +5 -5
- package/src/contexts/ModeController.tsx +1 -3
- package/src/core/DefaultAppBar.tsx +16 -10
- package/src/hooks/useBuildModeController.tsx +15 -28
- package/src/hooks/useModeController.tsx +1 -2
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export interface ModeController {
|
|
6
6
|
mode: "light" | "dark";
|
|
7
|
-
setMode: (mode: "light" | "dark") => void;
|
|
8
|
-
toggleMode: () => void;
|
|
7
|
+
setMode: (mode: "light" | "dark" | "system") => void;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* Hook to retrieve the current mode ("light" | "dark"), and `setMode`
|
package/dist/index.es.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
|
2
2
|
import { c } from "react-compiler-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import React__default, { forwardRef, useState, useRef, useEffect, useContext, useCallback, useMemo, createRef, createContext, useLayoutEffect, useDeferredValue, createElement } from "react";
|
|
5
|
-
import { getColorSchemeForSeed, CHIP_COLORS, Tooltip, IconButton, InfoIcon, Typography, cls, ContentCopyIcon, CircleIcon, FunctionsIcon, iconKeys, coolIconKeys, Icon, ErrorIcon, defaultBorderMixin, OpenInNewIcon, TextareaAutosize, focusedDisabled, MultiSelect, MultiSelectItem, Select, SelectItem, BooleanSwitch, DateTimeField, Skeleton, paperMixin, EditIcon, KeyboardTabIcon, DoNotDisturbOnIcon, Menu, MoreVertIcon, MenuItem, Checkbox, Chip, CircularProgress, SearchBar, Badge, ArrowUpwardIcon, Popover, FilterListIcon, Button, CenteredView, AssignmentIcon, Label, CloseIcon, TextField, BooleanSwitchWithLabel, useOutsideAlerter, Dialog, DialogTitle, DialogContent, DialogActions, FileCopyIcon, DeleteIcon, AddIcon, ExpandablePanel, Markdown, ArrowForwardIcon, Card, cardMixin, cardClickableMixin, StarIcon, Collapse, Container, NotesIcon, Alert, Tab, Tabs, LoadingButton, CheckIcon, FilterListOffIcon, SearchIcon, Avatar, DarkModeIcon, LightModeIcon, LogoutIcon, HandleIcon, RemoveIcon, KeyboardArrowUpIcon, KeyboardArrowDownIcon, debounce, DescriptionIcon, fieldBackgroundMixin, fieldBackgroundHoverMixin, fieldBackgroundDisabledMixin, ArrowDropDownIcon, ShortTextIcon, SubjectIcon, FormatQuoteIcon, HttpIcon, MailIcon, FlagIcon, ListIcon, ListAltIcon, NumbersIcon, FormatListNumberedIcon, UploadFileIcon, DriveFolderUploadIcon, LinkIcon, AddLinkIcon, ScheduleIcon, BallotIcon, RepeatIcon, ViewStreamIcon, Sheet, OpenInFullIcon, MenuIcon, ChevronLeftIcon } from "@firecms/ui";
|
|
5
|
+
import { getColorSchemeForSeed, CHIP_COLORS, Tooltip, IconButton, InfoIcon, Typography, cls, ContentCopyIcon, CircleIcon, FunctionsIcon, iconKeys, coolIconKeys, Icon, ErrorIcon, defaultBorderMixin, OpenInNewIcon, TextareaAutosize, focusedDisabled, MultiSelect, MultiSelectItem, Select, SelectItem, BooleanSwitch, DateTimeField, Skeleton, paperMixin, EditIcon, KeyboardTabIcon, DoNotDisturbOnIcon, Menu, MoreVertIcon, MenuItem, Checkbox, Chip, CircularProgress, SearchBar, Badge, ArrowUpwardIcon, Popover, FilterListIcon, Button, CenteredView, AssignmentIcon, Label, CloseIcon, TextField, BooleanSwitchWithLabel, useOutsideAlerter, Dialog, DialogTitle, DialogContent, DialogActions, FileCopyIcon, DeleteIcon, AddIcon, ExpandablePanel, Markdown, ArrowForwardIcon, Card, cardMixin, cardClickableMixin, StarIcon, Collapse, Container, NotesIcon, Alert, Tab, Tabs, LoadingButton, CheckIcon, FilterListOffIcon, SearchIcon, Avatar, DarkModeIcon, LightModeIcon, BrightnessMediumIcon, LogoutIcon, HandleIcon, RemoveIcon, KeyboardArrowUpIcon, KeyboardArrowDownIcon, debounce, DescriptionIcon, fieldBackgroundMixin, fieldBackgroundHoverMixin, fieldBackgroundDisabledMixin, ArrowDropDownIcon, ShortTextIcon, SubjectIcon, FormatQuoteIcon, HttpIcon, MailIcon, FlagIcon, ListIcon, ListAltIcon, NumbersIcon, FormatListNumberedIcon, UploadFileIcon, DriveFolderUploadIcon, LinkIcon, AddLinkIcon, ScheduleIcon, BallotIcon, RepeatIcon, ViewStreamIcon, Sheet, OpenInFullIcon, MenuIcon, ChevronLeftIcon } from "@firecms/ui";
|
|
6
6
|
import { SnackbarProvider as SnackbarProvider$1, useSnackbar } from "notistack";
|
|
7
7
|
import hash from "object-hash";
|
|
8
8
|
import { useFormex, setIn, getIn, useCreateFormex, Formex, Field } from "@firecms/formex";
|
|
@@ -38,8 +38,6 @@ const SnackbarProvider = (t0) => {
|
|
|
38
38
|
const DEFAULT_MODE_STATE = {
|
|
39
39
|
mode: "light",
|
|
40
40
|
setMode: (mode) => {
|
|
41
|
-
},
|
|
42
|
-
toggleMode: () => {
|
|
43
41
|
}
|
|
44
42
|
};
|
|
45
43
|
const ModeControllerContext = React__default.createContext(DEFAULT_MODE_STATE);
|
|
@@ -13586,7 +13584,7 @@ const DefaultAppBar = function DefaultAppBar2(t0) {
|
|
|
13586
13584
|
const authController = useAuthController();
|
|
13587
13585
|
const {
|
|
13588
13586
|
mode,
|
|
13589
|
-
|
|
13587
|
+
setMode
|
|
13590
13588
|
} = useModeController();
|
|
13591
13589
|
const navigate = useNavigate();
|
|
13592
13590
|
const largeLayout = useLargeLayout();
|
|
@@ -13686,11 +13684,25 @@ const DefaultAppBar = function DefaultAppBar2(t0) {
|
|
|
13686
13684
|
t9 = $[22];
|
|
13687
13685
|
}
|
|
13688
13686
|
let t10;
|
|
13689
|
-
if ($[23] !== includeModeToggle || $[24] !== mode || $[25] !==
|
|
13690
|
-
t10 = includeModeToggle && /* @__PURE__ */ jsx(IconButton, { color: "inherit", "aria-label": "Open drawer",
|
|
13687
|
+
if ($[23] !== includeModeToggle || $[24] !== mode || $[25] !== setMode) {
|
|
13688
|
+
t10 = includeModeToggle && /* @__PURE__ */ jsxs(Menu, { trigger: /* @__PURE__ */ jsx(IconButton, { color: "inherit", "aria-label": "Open drawer", size: "large", children: mode === "dark" ? /* @__PURE__ */ jsx(DarkModeIcon, {}) : /* @__PURE__ */ jsx(LightModeIcon, {}) }), children: [
|
|
13689
|
+
/* @__PURE__ */ jsxs(MenuItem, { onClick: () => setMode("dark"), children: [
|
|
13690
|
+
/* @__PURE__ */ jsx(DarkModeIcon, { size: "smallest" }),
|
|
13691
|
+
" Dark"
|
|
13692
|
+
] }),
|
|
13693
|
+
/* @__PURE__ */ jsxs(MenuItem, { onClick: () => setMode("light"), children: [
|
|
13694
|
+
/* @__PURE__ */ jsx(LightModeIcon, { size: "smallest" }),
|
|
13695
|
+
" Light "
|
|
13696
|
+
] }),
|
|
13697
|
+
/* @__PURE__ */ jsxs(MenuItem, { onClick: () => setMode("system"), children: [
|
|
13698
|
+
" ",
|
|
13699
|
+
/* @__PURE__ */ jsx(BrightnessMediumIcon, { size: "smallest" }),
|
|
13700
|
+
"System"
|
|
13701
|
+
] })
|
|
13702
|
+
] });
|
|
13691
13703
|
$[23] = includeModeToggle;
|
|
13692
13704
|
$[24] = mode;
|
|
13693
|
-
$[25] =
|
|
13705
|
+
$[25] = setMode;
|
|
13694
13706
|
$[26] = t10;
|
|
13695
13707
|
} else {
|
|
13696
13708
|
t10 = $[26];
|
|
@@ -14824,40 +14836,35 @@ function useBuildModeController() {
|
|
|
14824
14836
|
return mediaQueryList.matches;
|
|
14825
14837
|
}, []);
|
|
14826
14838
|
const prefersDarkModeStorage = localStorage.getItem("prefers-dark-mode") != null ? localStorage.getItem("prefers-dark-mode") === "true" : null;
|
|
14827
|
-
const prefersDarkMode = prefersDarkModeStorage ?? prefersDarkModeQuery;
|
|
14839
|
+
const prefersDarkMode = prefersDarkModeStorage ?? prefersDarkModeQuery();
|
|
14828
14840
|
const [mode, setMode] = useState(prefersDarkMode ? "dark" : "light");
|
|
14829
14841
|
useEffect(() => {
|
|
14830
14842
|
setMode(prefersDarkMode ? "dark" : "light");
|
|
14831
14843
|
setDocumentMode(prefersDarkMode ? "dark" : "light");
|
|
14832
14844
|
}, [prefersDarkMode]);
|
|
14833
|
-
const setDarkMode = useCallback(() => {
|
|
14834
|
-
setMode("dark");
|
|
14835
|
-
setDocumentMode("dark");
|
|
14836
|
-
}, []);
|
|
14837
|
-
const setLightMode = useCallback(() => {
|
|
14838
|
-
setMode("light");
|
|
14839
|
-
setDocumentMode("light");
|
|
14840
|
-
}, []);
|
|
14841
14845
|
const setDocumentMode = (mode_0) => {
|
|
14842
14846
|
document.body.style.setProperty("color-scheme", mode_0);
|
|
14843
14847
|
document.documentElement.dataset.theme = mode_0;
|
|
14844
14848
|
};
|
|
14845
|
-
const
|
|
14846
|
-
|
|
14847
|
-
|
|
14848
|
-
|
|
14849
|
-
|
|
14850
|
-
|
|
14849
|
+
const setModeInternal = useCallback((mode_1) => {
|
|
14850
|
+
if (mode_1 === "light") {
|
|
14851
|
+
setDocumentMode("light");
|
|
14852
|
+
localStorage.setItem("prefers-dark-mode", "false");
|
|
14853
|
+
setMode("light");
|
|
14854
|
+
} else if (mode_1 === "dark") {
|
|
14855
|
+
setDocumentMode("dark");
|
|
14856
|
+
localStorage.setItem("prefers-dark-mode", "true");
|
|
14857
|
+
setMode("dark");
|
|
14851
14858
|
} else {
|
|
14852
|
-
|
|
14853
|
-
|
|
14854
|
-
|
|
14859
|
+
const preferredMode = prefersDarkModeQuery() ? "dark" : "light";
|
|
14860
|
+
setDocumentMode(preferredMode);
|
|
14861
|
+
localStorage.removeItem("prefers-dark-mode");
|
|
14862
|
+
setMode(preferredMode);
|
|
14855
14863
|
}
|
|
14856
|
-
}, [
|
|
14864
|
+
}, [prefersDarkModeQuery]);
|
|
14857
14865
|
return {
|
|
14858
14866
|
mode,
|
|
14859
|
-
setMode
|
|
14860
|
-
toggleMode
|
|
14867
|
+
setMode: setModeInternal
|
|
14861
14868
|
};
|
|
14862
14869
|
}
|
|
14863
14870
|
function useValidateAuthenticator(t0) {
|