@firecms/core 3.0.0-canary.269 → 3.0.0-canary.270
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/components/HomePage/NavigationGroup.d.ts +3 -2
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useCollapsedGroups.d.ts +9 -0
- package/dist/index.es.js +156 -60
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +155 -59
- package/dist/index.umd.js.map +1 -1
- package/package.json +5 -5
- package/src/components/ErrorView.tsx +1 -1
- package/src/components/HomePage/DefaultHomePage.tsx +18 -5
- package/src/components/HomePage/NavigationGroup.tsx +121 -41
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
- package/src/hooks/useCollapsedGroups.ts +64 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { PropsWithChildren } from "react";
|
|
2
|
-
export declare function NavigationGroup({ children, group, minimised, isPreview, isPotentialCardDropTarget, onEditGroup,
|
|
3
|
-
dndDisabled }: PropsWithChildren<{
|
|
2
|
+
export declare function NavigationGroup({ children, group, minimised, isPreview, isPotentialCardDropTarget, onEditGroup, dndDisabled, collapsed, onToggleCollapsed }: PropsWithChildren<{
|
|
4
3
|
group: string | undefined;
|
|
5
4
|
minimised?: boolean;
|
|
6
5
|
isPreview?: boolean;
|
|
7
6
|
isPotentialCardDropTarget?: boolean;
|
|
8
7
|
onEditGroup?: (groupName: string) => void;
|
|
9
8
|
dndDisabled?: boolean;
|
|
9
|
+
collapsed?: boolean;
|
|
10
|
+
onToggleCollapsed?: () => void;
|
|
10
11
|
}>): import("react/jsx-runtime").JSX.Element;
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export * from "./useSnackbarController";
|
|
|
15
15
|
export * from "./useModeController";
|
|
16
16
|
export * from "./useClipboard";
|
|
17
17
|
export * from "./useLargeLayout";
|
|
18
|
+
export * from "./useCollapsedGroups";
|
|
18
19
|
export * from "./useReferenceDialog";
|
|
19
20
|
export * from "./useBrowserTitleAndIcon";
|
|
20
21
|
export * from "./useCustomizationController";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom hook for managing collapsed/expanded state of navigation groups
|
|
3
|
+
* with localStorage persistence. Automatically cleans up stale group entries
|
|
4
|
+
* when groups are removed from the navigation.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useCollapsedGroups(groupNames: string[]): {
|
|
7
|
+
isGroupCollapsed: (name: string) => boolean;
|
|
8
|
+
toggleGroupCollapsed: (name: string) => void;
|
|
9
|
+
};
|
package/dist/index.es.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { c } from "react-compiler-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import React__default, { useRef, useEffect, useContext, useCallback, useMemo, useState, createElement, createRef, createContext, forwardRef, useLayoutEffect, useDeferredValue } from "react";
|
|
5
|
-
import { getColorSchemeForSeed, CHIP_COLORS, FunctionsIcon, CircleIcon, iconKeys, coolIconKeys, Icon, Tooltip, ErrorIcon, Typography, IconButton, ContentCopyIcon, OpenInNewIcon, DescriptionIcon, cls, Skeleton, Chip, defaultBorderMixin, KeyboardTabIcon, Checkbox, Markdown, TextareaAutosize, focusedDisabled, MultiSelect, MultiSelectItem, Select, SelectItem, BooleanSwitch, DateTimeField, paperMixin, EditIcon, DoNotDisturbOnIcon, Menu, MenuItem, MoreVertIcon, CircularProgress, SearchBar, Badge, ArrowUpwardIcon, Popover, FilterListIcon, Button, CenteredView, AssignmentIcon, Label, CloseIcon, TextField, BooleanSwitchWithLabel, useOutsideAlerter, Dialog, DialogTitle, DialogContent, DialogActions, FileCopyIcon, DeleteIcon, AddIcon, StarIcon, Collapse, ArrowForwardIcon, Card, cardMixin, cardClickableMixin, Container, LoadingButton, Alert, CheckIcon, NotesIcon, InfoIcon,
|
|
5
|
+
import { getColorSchemeForSeed, CHIP_COLORS, FunctionsIcon, CircleIcon, iconKeys, coolIconKeys, Icon, Tooltip, ErrorIcon, Typography, IconButton, ContentCopyIcon, OpenInNewIcon, DescriptionIcon, cls, Skeleton, Chip, defaultBorderMixin, KeyboardTabIcon, Checkbox, Markdown, TextareaAutosize, focusedDisabled, MultiSelect, MultiSelectItem, Select, SelectItem, BooleanSwitch, DateTimeField, paperMixin, EditIcon, DoNotDisturbOnIcon, Menu, MenuItem, MoreVertIcon, CircularProgress, SearchBar, Badge, ArrowUpwardIcon, Popover, FilterListIcon, Button, CenteredView, AssignmentIcon, Label, CloseIcon, TextField, BooleanSwitchWithLabel, useOutsideAlerter, Dialog, DialogTitle, DialogContent, DialogActions, FileCopyIcon, DeleteIcon, AddIcon, StarIcon, Collapse, ExpandablePanel, ArrowForwardIcon, Card, cardMixin, cardClickableMixin, Container, LoadingButton, Alert, CheckIcon, NotesIcon, InfoIcon, fieldBackgroundMixin, RemoveIcon, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, ArrowDropDownIcon, FilterListOffIcon, SearchIcon, Avatar, DarkModeIcon, LightModeIcon, BrightnessMediumIcon, LogoutIcon, HandleIcon, KeyboardArrowUpIcon, KeyboardArrowDownIcon, debounce, Sheet, Tab, Tabs, CodeIcon, OpenInFullIcon, ViewStreamIcon, RepeatIcon, BallotIcon, ScheduleIcon, AddLinkIcon, LinkIcon, DriveFolderUploadIcon, UploadFileIcon, FormatListNumberedIcon, NumbersIcon, ListAltIcon, ListIcon, FlagIcon, MailIcon, HttpIcon, FormatQuoteIcon, SubjectIcon, ShortTextIcon, 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 { getIn, useFormex, setIn, useCreateFormex, Formex, Field } from "@firecms/formex";
|
|
@@ -4762,6 +4762,48 @@ function checkLargeLayout(breakpoint = "lg") {
|
|
|
4762
4762
|
if (typeof window === "undefined") return false;
|
|
4763
4763
|
return window.matchMedia(`(min-width: ${breakpoints[breakpoint] + 1}px)`).matches;
|
|
4764
4764
|
}
|
|
4765
|
+
function useCollapsedGroups(groupNames) {
|
|
4766
|
+
const [collapsedGroups, setCollapsedGroups] = useState(() => {
|
|
4767
|
+
try {
|
|
4768
|
+
const stored = localStorage.getItem("firecms-collapsed-groups");
|
|
4769
|
+
return stored ? JSON.parse(stored) : {};
|
|
4770
|
+
} catch {
|
|
4771
|
+
return {};
|
|
4772
|
+
}
|
|
4773
|
+
});
|
|
4774
|
+
useEffect(() => {
|
|
4775
|
+
try {
|
|
4776
|
+
localStorage.setItem("firecms-collapsed-groups", JSON.stringify(collapsedGroups));
|
|
4777
|
+
} catch {
|
|
4778
|
+
}
|
|
4779
|
+
}, [collapsedGroups]);
|
|
4780
|
+
useEffect(() => {
|
|
4781
|
+
if (groupNames.length === 0) return;
|
|
4782
|
+
const currentGroupNames = new Set(groupNames);
|
|
4783
|
+
setCollapsedGroups((prev) => {
|
|
4784
|
+
const cleaned = Object.fromEntries(Object.entries(prev).filter(([groupName]) => currentGroupNames.has(groupName)));
|
|
4785
|
+
const prevKeys = Object.keys(prev);
|
|
4786
|
+
const cleanedKeys = Object.keys(cleaned);
|
|
4787
|
+
if (prevKeys.length === cleanedKeys.length && prevKeys.every((key) => cleanedKeys.includes(key))) {
|
|
4788
|
+
return prev;
|
|
4789
|
+
}
|
|
4790
|
+
return cleaned;
|
|
4791
|
+
});
|
|
4792
|
+
}, [groupNames]);
|
|
4793
|
+
const isGroupCollapsed = useCallback((name) => {
|
|
4794
|
+
return !!collapsedGroups[name];
|
|
4795
|
+
}, [collapsedGroups]);
|
|
4796
|
+
const toggleGroupCollapsed = useCallback((name_0) => {
|
|
4797
|
+
setCollapsedGroups((prev_0) => ({
|
|
4798
|
+
...prev_0,
|
|
4799
|
+
[name_0]: !prev_0[name_0]
|
|
4800
|
+
}));
|
|
4801
|
+
}, []);
|
|
4802
|
+
return {
|
|
4803
|
+
isGroupCollapsed,
|
|
4804
|
+
toggleGroupCollapsed
|
|
4805
|
+
};
|
|
4806
|
+
}
|
|
4765
4807
|
function ErrorTooltip(props) {
|
|
4766
4808
|
const $ = c(2);
|
|
4767
4809
|
let t0;
|
|
@@ -4782,6 +4824,7 @@ function ErrorView(t0) {
|
|
|
4782
4824
|
tooltip
|
|
4783
4825
|
} = t0;
|
|
4784
4826
|
const component = error instanceof Error ? error.message : error;
|
|
4827
|
+
console.warn("ErrorView", JSON.stringify(error));
|
|
4785
4828
|
let t1;
|
|
4786
4829
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
4787
4830
|
t1 = /* @__PURE__ */ jsx(ErrorIcon, { className: "mx-2", size: "small", color: "error" });
|
|
@@ -12924,7 +12967,7 @@ function useRestoreScroll() {
|
|
|
12924
12967
|
};
|
|
12925
12968
|
}
|
|
12926
12969
|
function NavigationGroup(t0) {
|
|
12927
|
-
const $ = c(
|
|
12970
|
+
const $ = c(42);
|
|
12928
12971
|
const {
|
|
12929
12972
|
children,
|
|
12930
12973
|
group,
|
|
@@ -12932,97 +12975,144 @@ function NavigationGroup(t0) {
|
|
|
12932
12975
|
isPreview,
|
|
12933
12976
|
isPotentialCardDropTarget,
|
|
12934
12977
|
onEditGroup,
|
|
12935
|
-
dndDisabled
|
|
12978
|
+
dndDisabled,
|
|
12979
|
+
collapsed,
|
|
12980
|
+
onToggleCollapsed
|
|
12936
12981
|
} = t0;
|
|
12937
12982
|
const [isHovered, setIsHovered] = useState(false);
|
|
12938
12983
|
const currentGroupName = group ?? "Views";
|
|
12939
|
-
const
|
|
12984
|
+
const showCaret = !isPreview && !!onToggleCollapsed;
|
|
12985
|
+
const t1 = isPreview ? "px-1 py-0.5" : "";
|
|
12940
12986
|
let t2;
|
|
12941
12987
|
if ($[0] !== t1) {
|
|
12942
|
-
t2 = cls(
|
|
12988
|
+
t2 = cls("flex items-center", t1);
|
|
12943
12989
|
$[0] = t1;
|
|
12944
12990
|
$[1] = t2;
|
|
12945
12991
|
} else {
|
|
12946
12992
|
t2 = $[1];
|
|
12947
12993
|
}
|
|
12948
|
-
const t3 =
|
|
12994
|
+
const t3 = isPreview ? "body2" : "caption";
|
|
12949
12995
|
let t4;
|
|
12950
|
-
let t5;
|
|
12951
12996
|
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
12952
|
-
t4 = (
|
|
12953
|
-
t5 = () => setIsHovered(false);
|
|
12997
|
+
t4 = cls("p-4 py-2 rounded", "font-medium uppercase text-sm text-surface-600 dark:text-surface-400");
|
|
12954
12998
|
$[2] = t4;
|
|
12955
|
-
$[3] = t5;
|
|
12956
12999
|
} else {
|
|
12957
13000
|
t4 = $[2];
|
|
12958
|
-
t5 = $[3];
|
|
12959
13001
|
}
|
|
12960
|
-
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
|
|
12964
|
-
|
|
12965
|
-
$[
|
|
12966
|
-
$[5] = t6;
|
|
12967
|
-
$[6] = t7;
|
|
12968
|
-
$[7] = t8;
|
|
13002
|
+
let t5;
|
|
13003
|
+
if ($[3] !== currentGroupName || $[4] !== t3) {
|
|
13004
|
+
t5 = /* @__PURE__ */ jsx(Typography, { variant: t3, component: "h2", color: "secondary", className: t4, children: currentGroupName });
|
|
13005
|
+
$[3] = currentGroupName;
|
|
13006
|
+
$[4] = t3;
|
|
13007
|
+
$[5] = t5;
|
|
12969
13008
|
} else {
|
|
12970
|
-
|
|
13009
|
+
t5 = $[5];
|
|
12971
13010
|
}
|
|
12972
|
-
let
|
|
12973
|
-
if ($[
|
|
12974
|
-
|
|
13011
|
+
let t6;
|
|
13012
|
+
if ($[6] !== currentGroupName || $[7] !== dndDisabled || $[8] !== isHovered || $[9] !== isPreview || $[10] !== onEditGroup) {
|
|
13013
|
+
t6 = !isPreview && onEditGroup && !dndDisabled && /* @__PURE__ */ jsx(IconButton, { size: "smallest", onClick: (e) => {
|
|
12975
13014
|
e.stopPropagation();
|
|
12976
13015
|
onEditGroup(currentGroupName);
|
|
12977
13016
|
}, className: cls("ml-2 ", isHovered ? "opacity-100" : "opacity-0", "transition-opacity duration-100"), children: /* @__PURE__ */ jsx(EditIcon, { size: "smallest" }) });
|
|
12978
|
-
$[
|
|
12979
|
-
$[
|
|
12980
|
-
$[
|
|
12981
|
-
$[
|
|
12982
|
-
$[
|
|
12983
|
-
$[
|
|
13017
|
+
$[6] = currentGroupName;
|
|
13018
|
+
$[7] = dndDisabled;
|
|
13019
|
+
$[8] = isHovered;
|
|
13020
|
+
$[9] = isPreview;
|
|
13021
|
+
$[10] = onEditGroup;
|
|
13022
|
+
$[11] = t6;
|
|
13023
|
+
} else {
|
|
13024
|
+
t6 = $[11];
|
|
13025
|
+
}
|
|
13026
|
+
let t7;
|
|
13027
|
+
if ($[12] !== t2 || $[13] !== t5 || $[14] !== t6) {
|
|
13028
|
+
t7 = /* @__PURE__ */ jsxs("div", { className: t2, children: [
|
|
13029
|
+
t5,
|
|
13030
|
+
t6
|
|
13031
|
+
] });
|
|
13032
|
+
$[12] = t2;
|
|
13033
|
+
$[13] = t5;
|
|
13034
|
+
$[14] = t6;
|
|
13035
|
+
$[15] = t7;
|
|
13036
|
+
} else {
|
|
13037
|
+
t7 = $[15];
|
|
13038
|
+
}
|
|
13039
|
+
const TitleContent = t7;
|
|
13040
|
+
const t8 = !isPotentialCardDropTarget ? "my-10" : "my-6";
|
|
13041
|
+
let t9;
|
|
13042
|
+
if ($[16] !== t8) {
|
|
13043
|
+
t9 = cls(t8, "transition-all duration-200 ease-in-out");
|
|
13044
|
+
$[16] = t8;
|
|
13045
|
+
$[17] = t9;
|
|
12984
13046
|
} else {
|
|
12985
|
-
t9 = $[
|
|
13047
|
+
t9 = $[17];
|
|
12986
13048
|
}
|
|
12987
13049
|
let t10;
|
|
12988
|
-
if ($[
|
|
12989
|
-
t10 = /* @__PURE__ */ jsxs(
|
|
12990
|
-
|
|
12991
|
-
|
|
13050
|
+
if ($[18] !== TitleContent || $[19] !== children || $[20] !== isPreview) {
|
|
13051
|
+
t10 = isPreview && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
13052
|
+
/* @__PURE__ */ jsx("div", { className: cls("flex items-center justify-between w-full", "p-4 py-2"), onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: TitleContent }),
|
|
13053
|
+
children
|
|
12992
13054
|
] });
|
|
12993
|
-
$[
|
|
12994
|
-
$[
|
|
12995
|
-
$[
|
|
12996
|
-
$[
|
|
13055
|
+
$[18] = TitleContent;
|
|
13056
|
+
$[19] = children;
|
|
13057
|
+
$[20] = isPreview;
|
|
13058
|
+
$[21] = t10;
|
|
12997
13059
|
} else {
|
|
12998
|
-
t10 = $[
|
|
13060
|
+
t10 = $[21];
|
|
12999
13061
|
}
|
|
13000
13062
|
let t11;
|
|
13001
|
-
if ($[
|
|
13002
|
-
t11 = isPreview
|
|
13063
|
+
if ($[22] !== TitleContent || $[23] !== children || $[24] !== collapsed || $[25] !== isPreview || $[26] !== minimised || $[27] !== onToggleCollapsed || $[28] !== showCaret) {
|
|
13064
|
+
t11 = !isPreview && showCaret && /* @__PURE__ */ jsx(ExpandablePanel, { invisible: true, expanded: !collapsed, onExpandedChange: (open) => {
|
|
13065
|
+
if (open !== !collapsed) {
|
|
13066
|
+
onToggleCollapsed?.();
|
|
13067
|
+
}
|
|
13068
|
+
}, className: cls("mt-6"), titleClassName: cls("min-h-0 p-0 border-none", "rounded-t flex items-center justify-between w-full", "hover:bg-transparent", "cursor-pointer select-none"), innerClassName: cls("mt-4", !minimised ? "pt-0" : ""), title: /* @__PURE__ */ jsx("div", { onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), className: "flex items-center", children: TitleContent }), children: minimised ? /* @__PURE__ */ jsx("div", { className: cls("mt-4 p-8 bg-surface-accent-200 dark:bg-surface-accent-800 rounded-lg"), style: {
|
|
13003
13069
|
minHeight: "50px"
|
|
13004
|
-
} }) : /* @__PURE__ */ jsx("div", { className: cls("mt-4", !minimised ? "pt-0" : ""), children });
|
|
13005
|
-
$[
|
|
13006
|
-
$[
|
|
13007
|
-
$[
|
|
13008
|
-
$[
|
|
13070
|
+
} }) : /* @__PURE__ */ jsx("div", { className: cls("mt-4", !minimised ? "pt-0" : ""), children }) });
|
|
13071
|
+
$[22] = TitleContent;
|
|
13072
|
+
$[23] = children;
|
|
13073
|
+
$[24] = collapsed;
|
|
13074
|
+
$[25] = isPreview;
|
|
13075
|
+
$[26] = minimised;
|
|
13076
|
+
$[27] = onToggleCollapsed;
|
|
13077
|
+
$[28] = showCaret;
|
|
13078
|
+
$[29] = t11;
|
|
13009
13079
|
} else {
|
|
13010
|
-
t11 = $[
|
|
13080
|
+
t11 = $[29];
|
|
13011
13081
|
}
|
|
13012
13082
|
let t12;
|
|
13013
|
-
if ($[
|
|
13014
|
-
t12 = /* @__PURE__ */ jsxs(
|
|
13083
|
+
if ($[30] !== TitleContent || $[31] !== children || $[32] !== collapsed || $[33] !== isPreview || $[34] !== minimised || $[35] !== showCaret) {
|
|
13084
|
+
t12 = !isPreview && !showCaret && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
13085
|
+
/* @__PURE__ */ jsx("div", { className: cls("flex items-center justify-between w-full", "mt-6"), onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: TitleContent }),
|
|
13086
|
+
!collapsed && (minimised ? /* @__PURE__ */ jsx("div", { className: cls("mt-4 p-8 bg-surface-accent-200 dark:bg-surface-accent-800 rounded-lg"), style: {
|
|
13087
|
+
minHeight: "50px"
|
|
13088
|
+
} }) : /* @__PURE__ */ jsx("div", { className: cls("mt-4", !minimised ? "pt-0" : ""), children }))
|
|
13089
|
+
] });
|
|
13090
|
+
$[30] = TitleContent;
|
|
13091
|
+
$[31] = children;
|
|
13092
|
+
$[32] = collapsed;
|
|
13093
|
+
$[33] = isPreview;
|
|
13094
|
+
$[34] = minimised;
|
|
13095
|
+
$[35] = showCaret;
|
|
13096
|
+
$[36] = t12;
|
|
13097
|
+
} else {
|
|
13098
|
+
t12 = $[36];
|
|
13099
|
+
}
|
|
13100
|
+
let t13;
|
|
13101
|
+
if ($[37] !== t10 || $[38] !== t11 || $[39] !== t12 || $[40] !== t9) {
|
|
13102
|
+
t13 = /* @__PURE__ */ jsxs("div", { className: t9, children: [
|
|
13015
13103
|
t10,
|
|
13016
|
-
t11
|
|
13104
|
+
t11,
|
|
13105
|
+
t12
|
|
13017
13106
|
] });
|
|
13018
|
-
$[
|
|
13019
|
-
$[
|
|
13020
|
-
$[
|
|
13021
|
-
$[
|
|
13107
|
+
$[37] = t10;
|
|
13108
|
+
$[38] = t11;
|
|
13109
|
+
$[39] = t12;
|
|
13110
|
+
$[40] = t9;
|
|
13111
|
+
$[41] = t13;
|
|
13022
13112
|
} else {
|
|
13023
|
-
|
|
13113
|
+
t13 = $[41];
|
|
13024
13114
|
}
|
|
13025
|
-
return
|
|
13115
|
+
return t13;
|
|
13026
13116
|
}
|
|
13027
13117
|
const NavigationCard = React__default.memo(function NavigationCard2(t0) {
|
|
13028
13118
|
const $ = c(25);
|
|
@@ -14221,6 +14311,11 @@ function DefaultHomePage({
|
|
|
14221
14311
|
}] : draggable;
|
|
14222
14312
|
onNavigationEntriesUpdate(all);
|
|
14223
14313
|
};
|
|
14314
|
+
const groupNames = useMemo(() => [...items.map((item) => item.name), ...adminGroupData ? [adminGroupData.name] : []], [items, adminGroupData]);
|
|
14315
|
+
const {
|
|
14316
|
+
isGroupCollapsed,
|
|
14317
|
+
toggleGroupCollapsed
|
|
14318
|
+
} = useCollapsedGroups(groupNames);
|
|
14224
14319
|
const {
|
|
14225
14320
|
sensors,
|
|
14226
14321
|
collisionDetection,
|
|
@@ -14306,7 +14401,7 @@ function DefaultHomePage({
|
|
|
14306
14401
|
return /* @__PURE__ */ jsx(SortableNavigationGroup, { groupName: groupKey, disabled: dndDisabled, children: /* @__PURE__ */ jsx(NavigationGroup, { group: groupKey === DEFAULT_GROUP_NAME ? void 0 : groupKey, minimised: draggingGroupId === groupKey && !isDraggingCardOnly, isPotentialCardDropTarget: isDraggingCardOnly, dndDisabled, onEditGroup: () => {
|
|
14307
14402
|
if (dndDisabled) return;
|
|
14308
14403
|
setDialogOpenForGroup(groupKey);
|
|
14309
|
-
}, children: /* @__PURE__ */ jsx(NavigationGroupDroppable, { id: groupKey, itemIds: entriesInGroup.map((e_4) => e_4.url), isPotentialCardDropTarget: isDraggingCardOnly, children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 ", children: [
|
|
14404
|
+
}, collapsed: isGroupCollapsed(groupKey), onToggleCollapsed: () => toggleGroupCollapsed(groupKey), children: /* @__PURE__ */ jsx(NavigationGroupDroppable, { id: groupKey, itemIds: entriesInGroup.map((e_4) => e_4.url), isPotentialCardDropTarget: isDraggingCardOnly, children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 ", children: [
|
|
14310
14405
|
entriesInGroup.map((entry) => /* @__PURE__ */ jsx(SortableNavigationCard, { entry, onClick: () => {
|
|
14311
14406
|
let event = "unmapped_event";
|
|
14312
14407
|
if (entry.type === "collection") event = "home_navigate_to_collection";
|
|
@@ -14325,7 +14420,7 @@ function DefaultHomePage({
|
|
|
14325
14420
|
margin: 0
|
|
14326
14421
|
}, children: /* @__PURE__ */ jsx(NavigationGroup, { group: activeGroupData.name === DEFAULT_GROUP_NAME ? void 0 : activeGroupData.name, isPreview: false, minimised: true }) }) : activeItemForOverlay ? /* @__PURE__ */ jsx(NavigationCardBinding, { ...activeItemForOverlay, shrink: isHoveringNewGroupDropZone }) : null })
|
|
14327
14422
|
] }),
|
|
14328
|
-
!performingSearch && adminGroupData && /* @__PURE__ */ jsx(NavigationGroup, { group: adminGroupData.name, children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 ", children: adminGroupData.entries.map((entry_0) => /* @__PURE__ */ jsx(NavigationCardBinding, { ...entry_0, onClick: () => {
|
|
14423
|
+
!performingSearch && adminGroupData && /* @__PURE__ */ jsx(NavigationGroup, { group: adminGroupData.name, collapsed: isGroupCollapsed(adminGroupData.name), onToggleCollapsed: () => toggleGroupCollapsed(adminGroupData.name), children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 ", children: adminGroupData.entries.map((entry_0) => /* @__PURE__ */ jsx(NavigationCardBinding, { ...entry_0, onClick: () => {
|
|
14329
14424
|
let event_0 = "unmapped_event";
|
|
14330
14425
|
if (entry_0.type === "collection") event_0 = "home_navigate_to_collection";
|
|
14331
14426
|
else if (entry_0.type === "view") event_0 = "home_navigate_to_view";
|
|
@@ -21369,7 +21464,7 @@ function useReferenceDialog(referenceDialogProps) {
|
|
|
21369
21464
|
}
|
|
21370
21465
|
return t2;
|
|
21371
21466
|
}
|
|
21372
|
-
const fireCMSLogo = "data:image/png;base64,
|
|
21467
|
+
const fireCMSLogo = "data:image/png;base64,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";
|
|
21373
21468
|
function useBrowserTitleAndIcon(name, logo) {
|
|
21374
21469
|
const $ = c(4);
|
|
21375
21470
|
let t0;
|
|
@@ -25794,6 +25889,7 @@ export {
|
|
|
25794
25889
|
useBuildNavigationController,
|
|
25795
25890
|
useClearRestoreValue,
|
|
25796
25891
|
useClipboard,
|
|
25892
|
+
useCollapsedGroups,
|
|
25797
25893
|
useCollectionFetch,
|
|
25798
25894
|
useColumnIds,
|
|
25799
25895
|
useCustomizationController,
|