@xyo-network/react-appbar 2.64.0 → 2.64.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/browser/components/AppBar/Application.js +252 -6
- package/dist/browser/components/AppBar/Application.js.map +1 -1
- package/dist/browser/components/AppBar/index.js +264 -1
- package/dist/browser/components/AppBar/index.js.map +1 -1
- package/dist/browser/components/CollapsibleDrawer/CollapseToggle.js +13 -3
- package/dist/browser/components/CollapsibleDrawer/CollapseToggle.js.map +1 -1
- package/dist/browser/components/CollapsibleDrawer/CollapsibleDrawer.js +14 -4
- package/dist/browser/components/CollapsibleDrawer/CollapsibleDrawer.js.map +1 -1
- package/dist/browser/components/CollapsibleDrawer/index.js +72 -2
- package/dist/browser/components/CollapsibleDrawer/index.js.map +1 -1
- package/dist/browser/components/CollapsibleDrawer/storyExampleMenuData.js +4 -3
- package/dist/browser/components/CollapsibleDrawer/storyExampleMenuData.js.map +1 -1
- package/dist/browser/components/MobileSystemControls/SystemControls.js +117 -5
- package/dist/browser/components/MobileSystemControls/SystemControls.js.map +1 -1
- package/dist/browser/components/MobileSystemControls/SystemControlsRoot.js +57 -5
- package/dist/browser/components/MobileSystemControls/SystemControlsRoot.js.map +1 -1
- package/dist/browser/components/MobileSystemControls/SystemControlsType.js +1 -0
- package/dist/browser/components/MobileSystemControls/SystemControlsType.js.map +1 -1
- package/dist/browser/components/MobileSystemControls/SystemControlsUnstyled.js +35 -9
- package/dist/browser/components/MobileSystemControls/SystemControlsUnstyled.js.map +1 -1
- package/dist/browser/components/MobileSystemControls/controls/SystemControl.js +5 -5
- package/dist/browser/components/MobileSystemControls/controls/SystemControl.js.map +1 -1
- package/dist/browser/components/MobileSystemControls/controls/SystemControlText.js +3 -2
- package/dist/browser/components/MobileSystemControls/controls/SystemControlText.js.map +1 -1
- package/dist/browser/components/MobileSystemControls/controls/index.js +36 -2
- package/dist/browser/components/MobileSystemControls/controls/index.js.map +1 -1
- package/dist/browser/components/MobileSystemControls/index.js +131 -3
- package/dist/browser/components/MobileSystemControls/index.js.map +1 -1
- package/dist/browser/components/SearchBar/SearchBar.js +3 -2
- package/dist/browser/components/SearchBar/SearchBar.js.map +1 -1
- package/dist/browser/components/SearchBar/index.js +31 -1
- package/dist/browser/components/SearchBar/index.js.map +1 -1
- package/dist/browser/components/SiteMenu/Menu.js +144 -13
- package/dist/browser/components/SiteMenu/Menu.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/MenuListItemContainer.js +73 -13
- package/dist/browser/components/SiteMenu/MenuListItem/MenuListItemContainer.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/index.js +131 -1
- package/dist/browser/components/SiteMenu/MenuListItem/index.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.js +3 -2
- package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.js +3 -2
- package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.js +3 -2
- package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/index.js +30 -3
- package/dist/browser/components/SiteMenu/MenuListItem/list-item-components/index.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.js +3 -2
- package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.js +3 -2
- package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/index.js +29 -2
- package/dist/browser/components/SiteMenu/MenuListItem/sub-nav/index.js.map +1 -1
- package/dist/browser/components/SiteMenu/MenuSection.js +138 -7
- package/dist/browser/components/SiteMenu/MenuSection.js.map +1 -1
- package/dist/browser/components/SiteMenu/hooks/index.js +34 -1
- package/dist/browser/components/SiteMenu/hooks/index.js.map +1 -1
- package/dist/browser/components/SiteMenu/hooks/useMenuItemsShared.js +12 -2
- package/dist/browser/components/SiteMenu/hooks/useMenuItemsShared.js.map +1 -1
- package/dist/browser/components/SiteMenu/index.js +209 -5
- package/dist/browser/components/SiteMenu/index.js.map +1 -1
- package/dist/browser/components/SiteMenu/lib/index.js +0 -2
- package/dist/browser/components/SiteMenu/lib/index.js.map +1 -1
- package/dist/browser/components/Toolbar/Context/ContextToolbar.js +45 -4
- package/dist/browser/components/Toolbar/Context/ContextToolbar.js.map +1 -1
- package/dist/browser/components/Toolbar/Context/Logo.js +3 -2
- package/dist/browser/components/Toolbar/Context/Logo.js.map +1 -1
- package/dist/browser/components/Toolbar/Context/LogoLinkEx.js +18 -7
- package/dist/browser/components/Toolbar/Context/LogoLinkEx.js.map +1 -1
- package/dist/browser/components/Toolbar/Context/index.js +50 -1
- package/dist/browser/components/Toolbar/Context/index.js.map +1 -1
- package/dist/browser/components/Toolbar/System/SystemToolbar.js +179 -8
- package/dist/browser/components/Toolbar/System/SystemToolbar.js.map +1 -1
- package/dist/browser/components/Toolbar/System/index.js +198 -1
- package/dist/browser/components/Toolbar/System/index.js.map +1 -1
- package/dist/browser/components/Toolbar/index.js +247 -2
- package/dist/browser/components/Toolbar/index.js.map +1 -1
- package/dist/browser/components/index.js +526 -6
- package/dist/browser/components/index.js.map +1 -1
- package/dist/browser/contexts/Collapsible/context.js +2 -1
- package/dist/browser/contexts/Collapsible/context.js.map +1 -1
- package/dist/browser/contexts/Collapsible/index.js +28 -3
- package/dist/browser/contexts/Collapsible/index.js.map +1 -1
- package/dist/browser/contexts/Collapsible/provider.js +9 -3
- package/dist/browser/contexts/Collapsible/provider.js.map +1 -1
- package/dist/browser/contexts/Collapsible/use.js +8 -2
- package/dist/browser/contexts/Collapsible/use.js.map +1 -1
- package/dist/browser/contexts/index.js +28 -1
- package/dist/browser/contexts/index.js.map +1 -1
- package/dist/browser/index.js +545 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/docs.json +91 -91
- package/package.json +13 -13
@@ -1,7 +1,527 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
// src/components/AppBar/Application.tsx
|
2
|
+
import { AppBarEx } from "@xylabs/react-appbar";
|
3
|
+
|
4
|
+
// src/components/Toolbar/Context/ContextToolbar.tsx
|
5
|
+
import { Toolbar } from "@mui/material";
|
6
|
+
|
7
|
+
// src/components/Toolbar/Context/LogoLinkEx.tsx
|
8
|
+
import { Typography, useTheme as useTheme2 } from "@mui/material";
|
9
|
+
import { FlexRow } from "@xylabs/react-flexbox";
|
10
|
+
import { LinkEx } from "@xylabs/react-link";
|
11
|
+
|
12
|
+
// src/components/Toolbar/Context/Logo.tsx
|
13
|
+
import { useTheme } from "@mui/material";
|
14
|
+
import { jsx } from "react/jsx-runtime";
|
15
|
+
var Logo = (props) => {
|
16
|
+
const theme = useTheme();
|
17
|
+
const logoUrl = theme.palette.mode === "dark" ? "https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg" : "https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg";
|
18
|
+
return /* @__PURE__ */ jsx("img", { src: logoUrl, ...props });
|
19
|
+
};
|
20
|
+
|
21
|
+
// src/components/Toolbar/Context/LogoLinkEx.tsx
|
22
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
23
|
+
var LogoLinkEx = ({ to = "/", version = false, ...props }) => {
|
24
|
+
const theme = useTheme2();
|
25
|
+
return /* @__PURE__ */ jsx2(LinkEx, { to, ...props, children: /* @__PURE__ */ jsxs(FlexRow, { paddingX: "4px", children: [
|
26
|
+
/* @__PURE__ */ jsx2(Logo, { height: "40", width: "43" }),
|
27
|
+
version ? /* @__PURE__ */ jsx2(
|
28
|
+
Typography,
|
29
|
+
{
|
30
|
+
position: "absolute",
|
31
|
+
borderRadius: 1,
|
32
|
+
right: 6,
|
33
|
+
color: theme.palette.getContrastText(theme.palette.text.primary),
|
34
|
+
bottom: 0,
|
35
|
+
bgcolor: theme.palette.text.primary,
|
36
|
+
paddingX: "2px",
|
37
|
+
lineHeight: 1,
|
38
|
+
variant: "caption",
|
39
|
+
border: `1px ${theme.palette.getContrastText(theme.palette.primary.main)} solid`,
|
40
|
+
children: typeof version === "string" ? version : "2.1"
|
41
|
+
}
|
42
|
+
) : null
|
43
|
+
] }) });
|
44
|
+
};
|
45
|
+
|
46
|
+
// src/components/Toolbar/Context/ContextToolbar.tsx
|
47
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
48
|
+
var ContextToolbar = ({ logoTo = "/", version = false, ...props }) => {
|
49
|
+
return /* @__PURE__ */ jsx3(Toolbar, { ...props, children: /* @__PURE__ */ jsx3(LogoLinkEx, { version, to: logoTo }) });
|
50
|
+
};
|
51
|
+
|
52
|
+
// src/components/Toolbar/System/SystemToolbar.tsx
|
53
|
+
import { Paper, Toolbar as Toolbar2 } from "@mui/material";
|
54
|
+
import { FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
|
55
|
+
import { DarkModeIconButton } from "@xyo-network/react-app-settings";
|
56
|
+
import { NetworkSelectEx } from "@xyo-network/react-network";
|
57
|
+
|
58
|
+
// src/components/SiteMenu/hooks/useMenuItemsShared.tsx
|
59
|
+
import { useMemo } from "react";
|
60
|
+
|
61
|
+
// src/contexts/Collapsible/context.ts
|
62
|
+
import { createContextEx } from "@xyo-network/react-shared";
|
63
|
+
var CollapsibleContext = createContextEx();
|
64
|
+
|
65
|
+
// src/contexts/Collapsible/use.tsx
|
66
|
+
import { useContextEx } from "@xyo-network/react-shared";
|
67
|
+
var useCollapsible = () => useContextEx(CollapsibleContext, "Collapsible", false);
|
68
|
+
|
69
|
+
// src/components/SiteMenu/hooks/useMenuItemsShared.tsx
|
70
|
+
var useMenuItemsShared = () => {
|
71
|
+
const { collapse, collapseEnd, setCollapse, setCollapseEnd } = useCollapsible();
|
72
|
+
const onMenuItemToggle = (open) => {
|
73
|
+
setCollapse?.((previous) => open ? false : previous);
|
74
|
+
setCollapseEnd?.((previous) => open ? false : previous);
|
75
|
+
};
|
76
|
+
const defaultSiteMenuListItemProps = useMemo(
|
77
|
+
() => ({
|
78
|
+
collapseEnd,
|
79
|
+
dense: true,
|
80
|
+
iconOnly: collapse,
|
81
|
+
sx: {
|
82
|
+
px: "8px"
|
83
|
+
}
|
84
|
+
}),
|
85
|
+
[collapse, collapseEnd]
|
86
|
+
);
|
87
|
+
return { defaultSiteMenuListItemProps, onMenuItemToggle };
|
88
|
+
};
|
89
|
+
|
90
|
+
// src/components/SiteMenu/Menu.tsx
|
91
|
+
import { Menu as MenuIcon2, Settings as SettingsIcon } from "@mui/icons-material";
|
92
|
+
import { IconButton as IconButton2, List as List2, SwipeableDrawer } from "@mui/material";
|
93
|
+
import { FlexRow as FlexRow3 } from "@xylabs/react-flexbox";
|
94
|
+
import { useEffect, useState as useState2 } from "react";
|
95
|
+
|
96
|
+
// src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx
|
97
|
+
import { ListItemText, useTheme as useTheme4 } from "@mui/material";
|
98
|
+
import { FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
|
99
|
+
import { LinkEx as LinkEx2 } from "@xylabs/react-link";
|
100
|
+
import { useState } from "react";
|
101
|
+
|
102
|
+
// src/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx
|
103
|
+
import { Tooltip } from "@mui/material";
|
104
|
+
import { FlexCol } from "@xylabs/react-flexbox";
|
105
|
+
import { VscInfo } from "react-icons/vsc/index.js";
|
106
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
107
|
+
var ListItemTooltip = ({ title, ...props }) => {
|
108
|
+
return /* @__PURE__ */ jsx4(Tooltip, { title, placement: "right", ...props, children: /* @__PURE__ */ jsx4("div", { children: /* @__PURE__ */ jsx4(FlexCol, { justifyContent: "center", children: /* @__PURE__ */ jsx4(VscInfo, { color: "grey" }) }) }) });
|
109
|
+
};
|
110
|
+
|
111
|
+
// src/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx
|
112
|
+
import { Typography as Typography2 } from "@mui/material";
|
113
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
114
|
+
var MenuIcon = ({ icon, ...props }) => {
|
115
|
+
return /* @__PURE__ */ jsx5(Typography2, { display: "flex", ...props, children: icon });
|
116
|
+
};
|
117
|
+
|
118
|
+
// src/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx
|
119
|
+
import { ListItem } from "@mui/material";
|
120
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
121
|
+
var MenuListItem = ({ iconOnly, collapseEnd, sx, children, dense, ...props }) => {
|
122
|
+
const listItemSx = iconOnly ? { borderRadius: "50%", display: "inline-flex", flexGrow: 0, width: "auto" } : { width: "100%" };
|
123
|
+
const spacingSx = collapseEnd ? { columnGap: 0 } : { columnGap: 1.5 };
|
124
|
+
const paddingSx = dense ? { px: "8px" } : { px: "12px" };
|
125
|
+
return /* @__PURE__ */ jsx6(ListItem, { sx: { ...listItemSx, ...spacingSx, ...paddingSx, ...sx }, ...props, children });
|
126
|
+
};
|
127
|
+
|
128
|
+
// src/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx
|
129
|
+
import { Collapse, List } from "@mui/material";
|
130
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
131
|
+
var SubNavListItemsCollapse = ({ collapse, openSubNav, children, ...props }) => {
|
132
|
+
return /* @__PURE__ */ jsx7(Collapse, { in: collapse == true ? false : openSubNav, ...props, children: /* @__PURE__ */ jsx7(List, { children }) });
|
133
|
+
};
|
134
|
+
|
135
|
+
// src/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx
|
136
|
+
import { IconButton, useTheme as useTheme3 } from "@mui/material";
|
137
|
+
import { VscChevronDown } from "react-icons/vsc/index.js";
|
138
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
139
|
+
var SubNavToggleIconButton = ({ setOpenSubNav, openSubNav }) => {
|
140
|
+
const theme = useTheme3();
|
141
|
+
return /* @__PURE__ */ jsx8(
|
142
|
+
IconButton,
|
143
|
+
{
|
144
|
+
onClick: (event) => {
|
145
|
+
event.stopPropagation();
|
146
|
+
setOpenSubNav?.(!openSubNav);
|
147
|
+
},
|
148
|
+
sx: { marginRight: theme.spacing(0.5) },
|
149
|
+
children: /* @__PURE__ */ jsx8(VscChevronDown, { fontSize: "16px" })
|
150
|
+
}
|
151
|
+
);
|
152
|
+
};
|
153
|
+
|
154
|
+
// src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx
|
155
|
+
import { Fragment, jsx as jsx9, jsxs as jsxs2 } from "react/jsx-runtime";
|
156
|
+
var MenuListItemContainer = ({
|
157
|
+
style,
|
158
|
+
icon,
|
159
|
+
iconMenuTextSpacing,
|
160
|
+
iconOnly,
|
161
|
+
onButtonClick,
|
162
|
+
primary,
|
163
|
+
subNavListItems,
|
164
|
+
sx,
|
165
|
+
tooltip,
|
166
|
+
to,
|
167
|
+
...props
|
168
|
+
}) => {
|
169
|
+
const { dense } = props;
|
170
|
+
const theme = useTheme4();
|
171
|
+
const { collapse } = useCollapsible();
|
172
|
+
const [openSubNav, setOpenSubNav] = useState(false);
|
173
|
+
const [hovered, setHovered] = useState(false);
|
174
|
+
const resolvedIconMenuTextSpacing = iconMenuTextSpacing ? iconMenuTextSpacing : theme.spacing(1);
|
175
|
+
return /* @__PURE__ */ jsxs2(Fragment, { children: [
|
176
|
+
/* @__PURE__ */ jsxs2(
|
177
|
+
MenuListItem,
|
178
|
+
{
|
179
|
+
disableGutters: true,
|
180
|
+
iconOnly,
|
181
|
+
onClick: onButtonClick,
|
182
|
+
dense,
|
183
|
+
sx: { justifyContent: "space-between", ...sx },
|
184
|
+
style: { whiteSpace: "nowrap", ...style },
|
185
|
+
...props,
|
186
|
+
children: [
|
187
|
+
/* @__PURE__ */ jsx9(
|
188
|
+
LinkEx2,
|
189
|
+
{
|
190
|
+
onMouseEnter: () => setHovered(true),
|
191
|
+
onMouseLeave: () => setHovered(false),
|
192
|
+
color: "inherit",
|
193
|
+
to,
|
194
|
+
sx: {
|
195
|
+
"& :hover": {
|
196
|
+
cursor: "pointer",
|
197
|
+
textDecoration: "underline"
|
198
|
+
}
|
199
|
+
},
|
200
|
+
children: /* @__PURE__ */ jsxs2(FlexRow2, { children: [
|
201
|
+
/* @__PURE__ */ jsx9(MenuIcon, { icon, paddingRight: resolvedIconMenuTextSpacing, color: hovered ? "secondary" : "inherit" }),
|
202
|
+
/* @__PURE__ */ jsx9(ListItemText, { primary })
|
203
|
+
] })
|
204
|
+
}
|
205
|
+
),
|
206
|
+
/* @__PURE__ */ jsxs2(FlexRow2, { style: { marginLeft: theme.spacing(1) }, children: [
|
207
|
+
subNavListItems ? /* @__PURE__ */ jsx9(SubNavToggleIconButton, { setOpenSubNav, openSubNav }) : null,
|
208
|
+
tooltip ? /* @__PURE__ */ jsx9(ListItemTooltip, { title: tooltip }) : null
|
209
|
+
] })
|
210
|
+
]
|
211
|
+
}
|
212
|
+
),
|
213
|
+
subNavListItems ? /* @__PURE__ */ jsx9(SubNavListItemsCollapse, { openSubNav, collapse, children: subNavListItems?.map((item, index) => /* @__PURE__ */ jsx9(MenuListItemContainer, { dense, sx: { pl: theme.spacing(1) }, ...item }, index)) }) : null
|
214
|
+
] });
|
215
|
+
};
|
216
|
+
|
217
|
+
// src/components/SiteMenu/Menu.tsx
|
218
|
+
import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
|
219
|
+
var SiteMenu = ({ children, onMenuToggle, side = "right", ...props }) => {
|
220
|
+
const [open, setOpen] = useState2(false);
|
221
|
+
useEffect(() => {
|
222
|
+
onMenuToggle?.(open);
|
223
|
+
}, [onMenuToggle, open]);
|
224
|
+
return /* @__PURE__ */ jsxs3(FlexRow3, { alignItems: "stretch", ...props, children: [
|
225
|
+
/* @__PURE__ */ jsx10(
|
226
|
+
IconButton2,
|
227
|
+
{
|
228
|
+
size: "small",
|
229
|
+
color: "inherit",
|
230
|
+
onClick: () => {
|
231
|
+
setOpen(!open);
|
232
|
+
},
|
233
|
+
children: /* @__PURE__ */ jsx10(MenuIcon2, { fontSize: "large" })
|
234
|
+
}
|
235
|
+
),
|
236
|
+
/* @__PURE__ */ jsx10(
|
237
|
+
SwipeableDrawer,
|
238
|
+
{
|
239
|
+
anchor: side,
|
240
|
+
open,
|
241
|
+
onClick: () => setOpen(false),
|
242
|
+
onKeyDown: () => setOpen(false),
|
243
|
+
onClose: () => setOpen(false),
|
244
|
+
onOpen: () => setOpen(true),
|
245
|
+
children: children ?? /* @__PURE__ */ jsx10(List2, { children: /* @__PURE__ */ jsx10(MenuListItemContainer, { primary: "Settings", icon: /* @__PURE__ */ jsx10(SettingsIcon, {}), to: "/settings" }) })
|
246
|
+
}
|
247
|
+
)
|
248
|
+
] });
|
249
|
+
};
|
250
|
+
|
251
|
+
// src/components/SiteMenu/MenuSection.tsx
|
252
|
+
import { Collapse as Collapse2, ListSubheader } from "@mui/material";
|
253
|
+
import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
|
254
|
+
import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
|
255
|
+
var MenuSection = ({ iconMenuTextSpacing, listItems, showTitle = true, title, ...props }) => {
|
256
|
+
return /* @__PURE__ */ jsxs4(FlexCol2, { alignItems: "stretch", ...props, children: [
|
257
|
+
/* @__PURE__ */ jsx11(Collapse2, { in: showTitle, timeout: 700, children: /* @__PURE__ */ jsx11(ListSubheader, { children: title }) }),
|
258
|
+
listItems.map((item, index) => /* @__PURE__ */ jsx11(MenuListItemContainer, { iconMenuTextSpacing, ...item }, index))
|
259
|
+
] });
|
260
|
+
};
|
261
|
+
|
262
|
+
// src/components/Toolbar/System/SystemToolbar.tsx
|
263
|
+
import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
|
264
|
+
var SystemToolbar = ({
|
265
|
+
children,
|
266
|
+
darkModeButton = false,
|
267
|
+
hideNetworkSelect,
|
268
|
+
menuItems,
|
269
|
+
networkSelectProps,
|
270
|
+
onMenuToggle,
|
271
|
+
precedingChildren,
|
272
|
+
...props
|
273
|
+
}) => {
|
274
|
+
return /* @__PURE__ */ jsxs5(Toolbar2, { ...props, children: [
|
275
|
+
precedingChildren,
|
276
|
+
hideNetworkSelect ? null : /* @__PURE__ */ jsx12(FlexRow4, { marginX: 0.5, children: /* @__PURE__ */ jsx12(Paper, { variant: "elevation", children: /* @__PURE__ */ jsx12(NetworkSelectEx, { fullWidth: true, ...networkSelectProps }) }) }),
|
277
|
+
children,
|
278
|
+
darkModeButton ? /* @__PURE__ */ jsx12(DarkModeIconButton, { color: "inherit" }) : null,
|
279
|
+
menuItems ? /* @__PURE__ */ jsx12(SiteMenu, { onMenuToggle, children: menuItems }) : null
|
280
|
+
] });
|
281
|
+
};
|
282
|
+
|
283
|
+
// src/components/AppBar/Application.tsx
|
284
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
285
|
+
var ApplicationAppBar = ({ systemToolbar, contextToolbar, responsive = true, ...props }) => {
|
286
|
+
return /* @__PURE__ */ jsx13(
|
287
|
+
AppBarEx,
|
288
|
+
{
|
289
|
+
systemToolbar: systemToolbar ?? /* @__PURE__ */ jsx13(SystemToolbar, {}),
|
290
|
+
contextToolbar: contextToolbar ?? /* @__PURE__ */ jsx13(ContextToolbar, {}),
|
291
|
+
position: "sticky",
|
292
|
+
responsive,
|
293
|
+
...props
|
294
|
+
}
|
295
|
+
);
|
296
|
+
};
|
297
|
+
|
298
|
+
// src/components/CollapsibleDrawer/CollapseToggle.tsx
|
299
|
+
import { Icon, useTheme as useTheme5 } from "@mui/material";
|
300
|
+
import { FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
|
301
|
+
import { useState as useState3 } from "react";
|
302
|
+
import { VscArrowSmallLeft, VscArrowSmallRight } from "react-icons/vsc/index.js";
|
303
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
304
|
+
var CollapseToggleFlex = (props) => {
|
305
|
+
const { collapse, setCollapse, setCollapseEnd } = useCollapsible();
|
306
|
+
const [hover, setHover] = useState3(false);
|
307
|
+
const theme = useTheme5();
|
308
|
+
const handleCollapseToggle = () => {
|
309
|
+
setCollapse?.(!collapse);
|
310
|
+
setCollapseEnd?.((previous) => previous ? false : previous);
|
311
|
+
};
|
312
|
+
return /* @__PURE__ */ jsx14(FlexRow5, { mt: 2, py: 2, justifyContent: collapse ? "start" : "center", ...props, children: /* @__PURE__ */ jsx14(
|
313
|
+
Icon,
|
314
|
+
{
|
315
|
+
onClick: handleCollapseToggle,
|
316
|
+
onMouseEnter: () => setHover(true),
|
317
|
+
onMouseLeave: () => setHover(false),
|
318
|
+
fontSize: "large",
|
319
|
+
sx: { color: hover ? theme.palette.secondary.main : "inherit", cursor: "pointer" },
|
320
|
+
children: !collapse ? /* @__PURE__ */ jsx14(VscArrowSmallLeft, {}) : /* @__PURE__ */ jsx14(VscArrowSmallRight, {})
|
321
|
+
}
|
322
|
+
) });
|
323
|
+
};
|
324
|
+
|
325
|
+
// src/components/CollapsibleDrawer/CollapsibleDrawer.tsx
|
326
|
+
import { Collapse as Collapse3, styled, useTheme as useTheme6 } from "@mui/material";
|
327
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
328
|
+
var CollapsibleDrawer = ({ children, sx, ...props }) => {
|
329
|
+
const { collapse, setCollapseEnd } = useCollapsible();
|
330
|
+
const theme = useTheme6();
|
331
|
+
const collapsedSize = props.collapsedSize ?? theme.spacing(5);
|
332
|
+
return /* @__PURE__ */ jsx15(
|
333
|
+
CollapsibleFlexInner,
|
334
|
+
{
|
335
|
+
in: !collapse,
|
336
|
+
orientation: "horizontal",
|
337
|
+
collapsedSize,
|
338
|
+
onExited: () => setCollapseEnd?.(true),
|
339
|
+
sx: {
|
340
|
+
alignItems: "start",
|
341
|
+
display: "flex",
|
342
|
+
height: "100%",
|
343
|
+
...sx
|
344
|
+
},
|
345
|
+
...props,
|
346
|
+
children
|
347
|
+
}
|
348
|
+
);
|
349
|
+
};
|
350
|
+
var CollapsibleFlexInner = styled(Collapse3)(() => ({
|
351
|
+
"& .MuiCollapse-wrapperInner": {
|
352
|
+
display: "flex",
|
353
|
+
flexDirection: "column"
|
354
|
+
}
|
355
|
+
}));
|
356
|
+
|
357
|
+
// src/components/MobileSystemControls/SystemControls.tsx
|
358
|
+
import { FlexCol as FlexCol5 } from "@xylabs/react-flexbox";
|
359
|
+
|
360
|
+
// src/components/MobileSystemControls/SystemControlsRoot.tsx
|
361
|
+
import { styled as styled2 } from "@mui/material";
|
362
|
+
|
363
|
+
// src/components/MobileSystemControls/SystemControlsType.ts
|
364
|
+
var SystemControlsType = /* @__PURE__ */ ((SystemControlsType2) => {
|
365
|
+
SystemControlsType2["Left"] = "Left";
|
366
|
+
SystemControlsType2["Right"] = "Right";
|
367
|
+
SystemControlsType2["WindowShade"] = "WindowShade";
|
368
|
+
return SystemControlsType2;
|
369
|
+
})(SystemControlsType || {});
|
370
|
+
|
371
|
+
// src/components/MobileSystemControls/SystemControlsUnstyled.tsx
|
372
|
+
import { Paper as Paper2, useMediaQuery } from "@mui/material";
|
373
|
+
import { FlexCol as FlexCol4, FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
|
374
|
+
import { NetworkSelectEx as NetworkSelectEx2 } from "@xyo-network/react-network";
|
375
|
+
|
376
|
+
// src/components/MobileSystemControls/controls/SystemControl.tsx
|
377
|
+
import { Collapse as Collapse4 } from "@mui/material";
|
378
|
+
import { FlexCol as FlexCol3, FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
|
379
|
+
import { useState as useState4 } from "react";
|
380
|
+
import { jsx as jsx16, jsxs as jsxs6 } from "react/jsx-runtime";
|
381
|
+
var SystemControl = ({
|
382
|
+
children,
|
383
|
+
controlElement,
|
384
|
+
systemControlsType = "WindowShade" /* WindowShade */,
|
385
|
+
...props
|
386
|
+
}) => {
|
387
|
+
const [toggleControls, setToggleControls] = useState4(false);
|
388
|
+
let orientation = "vertical";
|
389
|
+
switch (systemControlsType) {
|
390
|
+
case "Left" /* Left */: {
|
391
|
+
orientation = "horizontal";
|
392
|
+
break;
|
393
|
+
}
|
394
|
+
}
|
395
|
+
return /* @__PURE__ */ jsxs6(FlexRow6, { className: "controls", ...props, children: [
|
396
|
+
/* @__PURE__ */ jsx16(Collapse4, { in: toggleControls, orientation, timeout: 500, children: /* @__PURE__ */ jsx16(FlexRow6, { bgcolor: "primary.main", className: "control", children: controlElement }) }),
|
397
|
+
/* @__PURE__ */ jsx16(FlexCol3, { style: { cursor: "pointer" }, onClick: () => setToggleControls(!toggleControls), children })
|
398
|
+
] });
|
399
|
+
};
|
400
|
+
|
401
|
+
// src/components/MobileSystemControls/SystemControlsUnstyled.tsx
|
402
|
+
import { Fragment as Fragment2, jsx as jsx17 } from "react/jsx-runtime";
|
403
|
+
var SystemControlsUnstyled = ({
|
404
|
+
visible,
|
405
|
+
systemControlsType = "WindowShade" /* WindowShade */,
|
406
|
+
...props
|
407
|
+
}) => {
|
408
|
+
const isSmall = useMediaQuery((theme) => theme.breakpoints.down("sm"));
|
409
|
+
if (visible || isSmall) {
|
410
|
+
return /* @__PURE__ */ jsx17(FlexCol4, { ...props, className: `${props.className} system-controls-type-${systemControlsType}`, children: /* @__PURE__ */ jsx17(
|
411
|
+
SystemControl,
|
412
|
+
{
|
413
|
+
systemControlsType,
|
414
|
+
controlElement: /* @__PURE__ */ jsx17(Fragment2, { children: /* @__PURE__ */ jsx17(FlexRow7, { className: "control-wrap", children: /* @__PURE__ */ jsx17(Paper2, { variant: "elevation", elevation: 0, children: /* @__PURE__ */ jsx17(NetworkSelectEx2, { responsive: false, className: "network-ex" }) }) }) })
|
415
|
+
}
|
416
|
+
) });
|
417
|
+
} else {
|
418
|
+
return /* @__PURE__ */ jsx17(FlexCol4, {});
|
419
|
+
}
|
420
|
+
};
|
421
|
+
|
422
|
+
// src/components/MobileSystemControls/SystemControlsRoot.tsx
|
423
|
+
var SystemControlsRoot = styled2(SystemControlsUnstyled, { name: "SystemControls", slot: "Root" })(({ theme }) => ({
|
424
|
+
// shared defaults
|
425
|
+
["&"]: {
|
426
|
+
".toggle": {
|
427
|
+
backgroundColor: theme.palette.primary.main
|
428
|
+
},
|
429
|
+
alignItems: "start",
|
430
|
+
zIndex: 1
|
431
|
+
},
|
432
|
+
// WindowShade System Controls styles
|
433
|
+
[`&.system-controls-type-${"WindowShade" /* WindowShade */}`]: {
|
434
|
+
".control": {
|
435
|
+
borderRadius: "0 0 5px 5px",
|
436
|
+
flexDirection: "row",
|
437
|
+
flexGrow: 1,
|
438
|
+
justifyContent: "space-around",
|
439
|
+
padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`
|
440
|
+
},
|
441
|
+
".controls": {
|
442
|
+
alignItems: "stretch",
|
443
|
+
flexDirection: "column",
|
444
|
+
flexGrow: 1
|
445
|
+
},
|
446
|
+
".toggle": {
|
447
|
+
borderRadius: "0 0 5px 5px",
|
448
|
+
padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`
|
449
|
+
},
|
450
|
+
flexDirection: "row",
|
451
|
+
position: "absolute",
|
452
|
+
top: 0,
|
453
|
+
width: "100%"
|
454
|
+
},
|
455
|
+
// Left System Control styles
|
456
|
+
[`&.system-controls-type-${"Left" /* Left */}`]: {
|
457
|
+
".control": {
|
458
|
+
alignItems: "start",
|
459
|
+
flexDirection: "column",
|
460
|
+
padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`
|
461
|
+
},
|
462
|
+
".control-wrap": {
|
463
|
+
marginBottom: `${theme.spacing(2)}`
|
464
|
+
},
|
465
|
+
".toggle": {
|
466
|
+
borderRadius: "0 5px 5px 0",
|
467
|
+
padding: `${theme.spacing(1)} ${theme.spacing(0.5)}`,
|
468
|
+
writingMode: "vertical-rl"
|
469
|
+
},
|
470
|
+
flexDirection: "column",
|
471
|
+
left: 0,
|
472
|
+
position: "fixed",
|
473
|
+
top: "30vh",
|
474
|
+
width: "auto"
|
475
|
+
}
|
476
|
+
}));
|
477
|
+
|
478
|
+
// src/components/MobileSystemControls/SystemControls.tsx
|
479
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
480
|
+
var SystemControls = (props) => {
|
481
|
+
return /* @__PURE__ */ jsx18(FlexCol5, { children: /* @__PURE__ */ jsx18(SystemControlsRoot, { ...props }) });
|
482
|
+
};
|
483
|
+
|
484
|
+
// src/components/SearchBar/SearchBar.tsx
|
485
|
+
import { Search as SearchIcon } from "@mui/icons-material";
|
486
|
+
import { Paper as Paper3, TextField } from "@mui/material";
|
487
|
+
import { ButtonEx } from "@xylabs/react-button";
|
488
|
+
import { FlexRow as FlexRow8 } from "@xylabs/react-flexbox";
|
489
|
+
import { useState as useState5 } from "react";
|
490
|
+
import { jsx as jsx19, jsxs as jsxs7 } from "react/jsx-runtime";
|
491
|
+
var SearchBar = ({ defaultValue, onSearch, ...props }) => {
|
492
|
+
const [term, setTerm] = useState5();
|
493
|
+
return /* @__PURE__ */ jsx19(FlexRow8, { alignItems: "stretch", ...props, children: /* @__PURE__ */ jsxs7(Paper3, { variant: "elevation", elevation: 0, style: { display: "flex", overflow: "hidden", width: "100%" }, children: [
|
494
|
+
/* @__PURE__ */ jsx19(
|
495
|
+
TextField,
|
496
|
+
{
|
497
|
+
InputProps: { color: "secondary", style: { borderBottomRightRadius: 0, borderTopRightRadius: 0, borderWidth: 0 } },
|
498
|
+
variant: "outlined",
|
499
|
+
size: "small",
|
500
|
+
defaultValue,
|
501
|
+
fullWidth: true,
|
502
|
+
onChange: (event) => setTerm(event.target.value),
|
503
|
+
onKeyDown: (event) => {
|
504
|
+
if (event.key === "Enter")
|
505
|
+
onSearch?.(term);
|
506
|
+
}
|
507
|
+
}
|
508
|
+
),
|
509
|
+
/* @__PURE__ */ jsx19(ButtonEx, { variant: "contained", style: { borderRadius: 0, borderTopLeftRadius: 0 }, color: "secondary", onClick: () => onSearch?.(term), children: /* @__PURE__ */ jsx19(SearchIcon, {}) })
|
510
|
+
] }) });
|
511
|
+
};
|
512
|
+
export {
|
513
|
+
ApplicationAppBar,
|
514
|
+
CollapseToggleFlex,
|
515
|
+
CollapsibleDrawer,
|
516
|
+
ContextToolbar,
|
517
|
+
MenuListItemContainer,
|
518
|
+
MenuSection,
|
519
|
+
SearchBar,
|
520
|
+
SiteMenu,
|
521
|
+
SystemControls,
|
522
|
+
SystemControlsType,
|
523
|
+
SystemControlsUnstyled,
|
524
|
+
SystemToolbar,
|
525
|
+
useMenuItemsShared
|
526
|
+
};
|
7
527
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/components/index.ts"],"sourcesContent":["export * from './AppBar'\nexport * from './CollapsibleDrawer'\nexport * from './MobileSystemControls'\nexport * from './SearchBar'\nexport * from './SiteMenu'\nexport * from './Toolbar'\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
1
|
+
{"version":3,"sources":["../../../src/components/AppBar/Application.tsx","../../../src/components/Toolbar/Context/ContextToolbar.tsx","../../../src/components/Toolbar/Context/LogoLinkEx.tsx","../../../src/components/Toolbar/Context/Logo.tsx","../../../src/components/Toolbar/System/SystemToolbar.tsx","../../../src/components/SiteMenu/hooks/useMenuItemsShared.tsx","../../../src/contexts/Collapsible/context.ts","../../../src/contexts/Collapsible/use.tsx","../../../src/components/SiteMenu/Menu.tsx","../../../src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx","../../../src/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx","../../../src/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx","../../../src/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx","../../../src/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx","../../../src/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx","../../../src/components/SiteMenu/MenuSection.tsx","../../../src/components/CollapsibleDrawer/CollapseToggle.tsx","../../../src/components/CollapsibleDrawer/CollapsibleDrawer.tsx","../../../src/components/MobileSystemControls/SystemControls.tsx","../../../src/components/MobileSystemControls/SystemControlsRoot.tsx","../../../src/components/MobileSystemControls/SystemControlsType.ts","../../../src/components/MobileSystemControls/SystemControlsUnstyled.tsx","../../../src/components/MobileSystemControls/controls/SystemControl.tsx","../../../src/components/SearchBar/SearchBar.tsx"],"sourcesContent":["import { ToolbarProps } from '@mui/material'\nimport { AppBarEx, AppBarExProps } from '@xylabs/react-appbar'\nimport { ReactElement } from 'react'\n\nimport { ContextToolbar, SystemToolbar } from '../Toolbar'\n\nexport interface ApplicationAppBarProps extends AppBarExProps {\n contextToolbar?: ReactElement<ToolbarProps>\n responsive?: boolean\n systemToolbar?: ReactElement<ToolbarProps>\n}\n\nexport const ApplicationAppBar: React.FC<ApplicationAppBarProps> = ({ systemToolbar, contextToolbar, responsive = true, ...props }) => {\n return (\n <AppBarEx\n systemToolbar={systemToolbar ?? <SystemToolbar />}\n contextToolbar={contextToolbar ?? <ContextToolbar />}\n position=\"sticky\"\n responsive={responsive}\n {...props}\n />\n )\n}\n","import { Toolbar, ToolbarProps } from '@mui/material'\nimport { To } from 'react-router-dom'\n\nimport { LogoLinkEx } from './LogoLinkEx'\n\nexport interface ContextToolbarProps extends ToolbarProps {\n logoTo?: To\n version?: boolean\n}\n\nexport const ContextToolbar: React.FC<ContextToolbarProps> = ({ logoTo = '/', version = false, ...props }) => {\n return (\n <Toolbar {...props}>\n <LogoLinkEx version={version} to={logoTo} />\n </Toolbar>\n )\n}\n","import { Typography, useTheme } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { LinkEx, LinkExProps } from '@xylabs/react-link'\n\nimport { Logo } from './Logo'\n\nexport interface LogoLinkExProps extends LinkExProps {\n version?: boolean | string\n}\n\nexport const LogoLinkEx: React.FC<LogoLinkExProps> = ({ to = '/', version = false, ...props }) => {\n const theme = useTheme()\n return (\n <LinkEx to={to} {...props}>\n <FlexRow paddingX=\"4px\">\n <Logo height=\"40\" width=\"43\" />\n {version ? (\n <Typography\n position=\"absolute\"\n borderRadius={1}\n right={6}\n color={theme.palette.getContrastText(theme.palette.text.primary)}\n bottom={0}\n bgcolor={theme.palette.text.primary}\n paddingX=\"2px\"\n lineHeight={1}\n variant=\"caption\"\n border={`1px ${theme.palette.getContrastText(theme.palette.primary.main)} solid`}\n >\n {typeof version === 'string' ? version : '2.1'}\n </Typography>\n ) : null}\n </FlexRow>\n </LinkEx>\n )\n}\n","import { useTheme } from '@mui/material'\n\nexport const Logo: React.FC<React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>> = (props) => {\n const theme = useTheme()\n const logoUrl =\n theme.palette.mode === 'dark'\n ? 'https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg'\n : 'https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg'\n return <img src={logoUrl} {...props} />\n}\n","import { Paper, Toolbar, ToolbarProps } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { DarkModeIconButton } from '@xyo-network/react-app-settings'\nimport { NetworkSelectEx, NetworkSelectExProps } from '@xyo-network/react-network'\nimport { ReactNode } from 'react'\n\nimport { SiteMenu, SiteMenuProps } from '../../SiteMenu'\n\nexport interface SystemToolbarProps extends ToolbarProps {\n darkModeButton?: boolean\n developerMode?: boolean\n hideNetworkSelect?: boolean\n menuItems?: ReactNode\n networkSelectProps?: NetworkSelectExProps\n onMenuToggle?: SiteMenuProps['onMenuToggle']\n precedingChildren?: ReactNode\n}\n\nexport const SystemToolbar: React.FC<SystemToolbarProps> = ({\n children,\n darkModeButton = false,\n hideNetworkSelect,\n menuItems,\n networkSelectProps,\n onMenuToggle,\n precedingChildren,\n ...props\n}) => {\n return (\n <Toolbar {...props}>\n {precedingChildren}\n {hideNetworkSelect ? null : (\n <FlexRow marginX={0.5}>\n <Paper variant=\"elevation\">\n <NetworkSelectEx fullWidth {...networkSelectProps} />\n </Paper>\n </FlexRow>\n )}\n {children}\n {darkModeButton ? <DarkModeIconButton color=\"inherit\" /> : null}\n {menuItems ? <SiteMenu onMenuToggle={onMenuToggle}>{menuItems}</SiteMenu> : null}\n </Toolbar>\n )\n}\n","import { useMemo } from 'react'\n\nimport { useCollapsible } from '../../../contexts'\nimport { MenuListItemProps } from '../MenuListItem'\n\nexport type DefaultSiteMenuListItemProps = Pick<MenuListItemProps, 'collapseEnd' | 'dense' | 'iconOnly' | 'sx'>\n\nexport const useMenuItemsShared = () => {\n const { collapse, collapseEnd, setCollapse, setCollapseEnd } = useCollapsible()\n\n const onMenuItemToggle = (open?: boolean) => {\n setCollapse?.((previous) => (open ? false : previous))\n setCollapseEnd?.((previous) => (open ? false : previous))\n }\n\n const defaultSiteMenuListItemProps: DefaultSiteMenuListItemProps = useMemo(\n () => ({\n collapseEnd,\n dense: true,\n iconOnly: collapse,\n sx: {\n px: '8px',\n },\n }),\n [collapse, collapseEnd],\n )\n\n return { defaultSiteMenuListItemProps, onMenuItemToggle }\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleState } from './State'\n\nexport const CollapsibleContext = createContextEx<CollapsibleState>()\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleContext } from './context'\n\nexport const useCollapsible = () => useContextEx(CollapsibleContext, 'Collapsible', false)\n","import { Menu as MenuIcon, Settings as SettingsIcon } from '@mui/icons-material'\nimport { IconButton, List, SwipeableDrawer } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useEffect, useState } from 'react'\n\nimport { MenuListItemContainer } from './MenuListItem'\n\nexport interface SiteMenuProps extends FlexBoxProps {\n hideSettingsMenuItem?: boolean\n onMenuToggle?: (state?: boolean) => void\n side?: 'left' | 'right' | 'top' | 'bottom'\n}\n\nexport const SiteMenu: React.FC<SiteMenuProps> = ({ children, onMenuToggle, side = 'right', ...props }) => {\n const [open, setOpen] = useState(false)\n\n useEffect(() => {\n onMenuToggle?.(open)\n }, [onMenuToggle, open])\n\n return (\n <FlexRow alignItems=\"stretch\" {...props}>\n <IconButton\n size=\"small\"\n color=\"inherit\"\n onClick={() => {\n setOpen(!open)\n }}\n >\n <MenuIcon fontSize=\"large\" />\n </IconButton>\n <SwipeableDrawer\n anchor={side}\n open={open}\n onClick={() => setOpen(false)}\n onKeyDown={() => setOpen(false)}\n onClose={() => setOpen(false)}\n onOpen={() => setOpen(true)}\n >\n {children ?? (\n <List>\n <MenuListItemContainer primary=\"Settings\" icon={<SettingsIcon />} to=\"/settings\" />\n </List>\n )}\n </SwipeableDrawer>\n </FlexRow>\n )\n}\n","import { ListItemProps, ListItemText, useTheme } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { useState } from 'react'\n\nimport { useCollapsible } from '../../../contexts'\nimport { MenuListItemBase, NavListItemProps } from '../lib'\nimport { ListItemTooltip, MenuIcon, MenuListItem } from './list-item-components'\nimport { SubNavListItemsCollapse, SubNavToggleIconButton } from './sub-nav'\n\nexport interface MenuListItemProps extends NavListItemProps, MenuListItemBase, ListItemProps {\n iconMenuTextSpacing?: string\n iconOnly?: boolean\n subNavListItems?: NavListItemProps[]\n subNavOpen?: boolean\n}\n\nexport const MenuListItemContainer: React.FC<MenuListItemProps> = ({\n style,\n icon,\n iconMenuTextSpacing,\n iconOnly,\n onButtonClick,\n primary,\n subNavListItems,\n sx,\n tooltip,\n to,\n ...props\n}) => {\n const { dense } = props\n const theme = useTheme()\n const { collapse } = useCollapsible()\n const [openSubNav, setOpenSubNav] = useState(false)\n const [hovered, setHovered] = useState(false)\n const resolvedIconMenuTextSpacing = iconMenuTextSpacing ? iconMenuTextSpacing : theme.spacing(1)\n\n return (\n <>\n <MenuListItem\n disableGutters\n iconOnly={iconOnly}\n onClick={onButtonClick}\n dense={dense}\n sx={{ justifyContent: 'space-between', ...sx }}\n style={{ whiteSpace: 'nowrap', ...style }}\n {...props}\n >\n <LinkEx\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n color=\"inherit\"\n to={to}\n sx={{\n '& :hover': {\n cursor: 'pointer',\n textDecoration: 'underline',\n },\n }}\n >\n <FlexRow>\n <MenuIcon icon={icon} paddingRight={resolvedIconMenuTextSpacing} color={hovered ? 'secondary' : 'inherit'} />\n <ListItemText primary={primary} />\n </FlexRow>\n </LinkEx>\n <FlexRow style={{ marginLeft: theme.spacing(1) }}>\n {subNavListItems ? <SubNavToggleIconButton setOpenSubNav={setOpenSubNav} openSubNav={openSubNav} /> : null}\n {tooltip ? <ListItemTooltip title={tooltip} /> : null}\n </FlexRow>\n </MenuListItem>\n {subNavListItems ? (\n <SubNavListItemsCollapse openSubNav={openSubNav} collapse={collapse}>\n {subNavListItems?.map((item, index) => <MenuListItemContainer dense={dense} sx={{ pl: theme.spacing(1) }} key={index} {...item} />)}\n </SubNavListItemsCollapse>\n ) : null}\n </>\n )\n}\n","import { Tooltip, TooltipProps } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscInfo } from 'react-icons/vsc/index.js'\n\nexport interface ListItemTooltipProps extends Omit<TooltipProps, 'children'> {\n title: string\n}\n\nexport const ListItemTooltip: React.FC<ListItemTooltipProps> = ({ title, ...props }) => {\n return (\n <Tooltip title={title} placement=\"right\" {...props}>\n {/* Needs div so it can work, the hovering doesn't work with a FlexCol */}\n <div>\n <FlexCol justifyContent=\"center\">\n <VscInfo color=\"grey\" />\n </FlexCol>\n </div>\n </Tooltip>\n )\n}\n","import { Typography, TypographyProps } from '@mui/material'\nimport { ReactNode } from 'react'\n\nexport interface MenuIconProps extends TypographyProps {\n icon?: ReactNode\n}\n\nexport const MenuIcon: React.FC<MenuIconProps> = ({ icon, ...props }) => {\n return (\n <Typography display=\"flex\" {...props}>\n {icon}\n </Typography>\n )\n}\n","import { ListItem, ListItemProps } from '@mui/material'\n\nimport { MenuListItemBase } from '../../lib'\n\nexport interface ListItemExProps extends MenuListItemBase, ListItemProps {}\n\nexport const MenuListItem: React.FC<ListItemExProps> = ({ iconOnly, collapseEnd, sx, children, dense, ...props }) => {\n const listItemSx = iconOnly ? { borderRadius: '50%', display: 'inline-flex', flexGrow: 0, width: 'auto' } : { width: '100%' }\n // wait till collapseEnds to remove the spacing between items\n const spacingSx = collapseEnd ? { columnGap: 0 } : { columnGap: 1.5 }\n // adjusts to the paddingY value which does NOT scale along the theme.spacing\n const paddingSx = dense ? { px: '8px' } : { px: '12px' }\n return (\n <ListItem sx={{ ...listItemSx, ...spacingSx, ...paddingSx, ...sx }} {...props}>\n {children}\n </ListItem>\n )\n}\n","import { Collapse, CollapseProps, List } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\n\nimport { NavListItemProps } from '../../lib'\n\nexport interface SubNavListItemsCollapseProps extends WithChildren, CollapseProps {\n collapse?: boolean\n openSubNav?: boolean\n subNavListItems?: NavListItemProps[]\n}\n\nexport const SubNavListItemsCollapse: React.FC<SubNavListItemsCollapseProps> = ({ collapse, openSubNav, children, ...props }) => {\n return (\n <Collapse in={collapse == true ? false : openSubNav} {...props}>\n <List>{children}</List>\n </Collapse>\n )\n}\n","import { IconButton, IconButtonProps, useTheme } from '@mui/material'\nimport { Dispatch, SetStateAction, SyntheticEvent } from 'react'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscChevronDown } from 'react-icons/vsc/index.js'\n\nexport interface SubNavToggleIconButtonProps extends IconButtonProps {\n openSubNav?: boolean\n setOpenSubNav?: Dispatch<SetStateAction<boolean>>\n}\n\nexport const SubNavToggleIconButton: React.FC<SubNavToggleIconButtonProps> = ({ setOpenSubNav, openSubNav }) => {\n const theme = useTheme()\n return (\n <IconButton\n onClick={(event: SyntheticEvent) => {\n event.stopPropagation()\n setOpenSubNav?.(!openSubNav)\n }}\n sx={{ marginRight: theme.spacing(0.5) }}\n >\n <VscChevronDown fontSize=\"16px\" />\n </IconButton>\n )\n}\n","import { Collapse, ListSubheader } from '@mui/material'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\n\nimport { MenuListItemContainer, MenuListItemProps } from './MenuListItem'\n\nexport interface MenuSectionProps extends FlexBoxProps {\n iconMenuTextSpacing?: string\n listItems: MenuListItemProps[]\n showTitle?: boolean\n title: string\n}\n\nexport const MenuSection: React.FC<MenuSectionProps> = ({ iconMenuTextSpacing, listItems, showTitle = true, title, ...props }) => {\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n <Collapse in={showTitle} timeout={700}>\n <ListSubheader>{title}</ListSubheader>\n </Collapse>\n\n {listItems.map((item, index) => (\n <MenuListItemContainer key={index} iconMenuTextSpacing={iconMenuTextSpacing} {...item}></MenuListItemContainer>\n ))}\n </FlexCol>\n )\n}\n","import { Icon, useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useState } from 'react'\n// eslint-disable-next-line import/no-internal-modules\nimport { VscArrowSmallLeft, VscArrowSmallRight } from 'react-icons/vsc/index.js'\n\nimport { useCollapsible } from '../../contexts'\n\nexport const CollapseToggleFlex: React.FC<FlexBoxProps> = (props) => {\n const { collapse, setCollapse, setCollapseEnd } = useCollapsible()\n const [hover, setHover] = useState(false)\n const theme = useTheme()\n\n const handleCollapseToggle = () => {\n setCollapse?.(!collapse)\n setCollapseEnd?.((previous) => (previous ? false : previous))\n }\n\n return (\n <FlexRow mt={2} py={2} justifyContent={collapse ? 'start' : 'center'} {...props}>\n <Icon\n onClick={handleCollapseToggle}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n fontSize={'large'}\n sx={{ color: hover ? theme.palette.secondary.main : 'inherit', cursor: 'pointer' }}\n >\n {!collapse ? <VscArrowSmallLeft /> : <VscArrowSmallRight />}\n </Icon>\n </FlexRow>\n )\n}\n","import { Collapse, CollapseProps, styled, useTheme } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\n\nimport { useCollapsible } from '../../contexts'\n\nexport const CollapsibleDrawer: React.FC<WithChildren<CollapseProps>> = ({ children, sx, ...props }) => {\n const { collapse, setCollapseEnd } = useCollapsible()\n const theme = useTheme()\n\n const collapsedSize = props.collapsedSize ?? theme.spacing(5)\n\n return (\n <CollapsibleFlexInner\n in={!collapse}\n orientation=\"horizontal\"\n collapsedSize={collapsedSize}\n onExited={() => setCollapseEnd?.(true)}\n sx={{\n alignItems: 'start',\n display: 'flex',\n height: '100%',\n ...sx,\n }}\n {...props}\n >\n {children}\n </CollapsibleFlexInner>\n )\n}\n\nconst CollapsibleFlexInner = styled(Collapse)(() => ({\n '& .MuiCollapse-wrapperInner': {\n display: 'flex',\n flexDirection: 'column',\n },\n}))\n","import { FlexCol } from '@xylabs/react-flexbox'\n\nimport { SystemControlsRoot } from './SystemControlsRoot'\nimport { SystemControlsUnstyledProps } from './SystemControlsUnstyled'\n\nconst SystemControls: React.FC<SystemControlsUnstyledProps> = (props) => {\n return (\n <FlexCol>\n <SystemControlsRoot {...props} />\n </FlexCol>\n )\n}\n\nexport { SystemControls }\n","import { styled } from '@mui/material'\n\nimport { SystemControlsType } from './SystemControlsType'\nimport { SystemControlsUnstyled, SystemControlsUnstyledProps } from './SystemControlsUnstyled'\n\nconst SystemControlsRoot = styled(SystemControlsUnstyled, { name: 'SystemControls', slot: 'Root' })<SystemControlsUnstyledProps>(({ theme }) => ({\n // shared defaults\n ['&']: {\n '.toggle': {\n backgroundColor: theme.palette.primary.main,\n },\n alignItems: 'start',\n zIndex: 1,\n },\n // WindowShade System Controls styles\n [`&.system-controls-type-${SystemControlsType.WindowShade}`]: {\n '.control': {\n borderRadius: '0 0 5px 5px',\n flexDirection: 'row',\n flexGrow: 1,\n justifyContent: 'space-around',\n padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`,\n },\n '.controls': {\n alignItems: 'stretch',\n flexDirection: 'column',\n flexGrow: 1,\n },\n '.toggle': {\n borderRadius: '0 0 5px 5px',\n padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`,\n },\n flexDirection: 'row',\n position: 'absolute',\n top: 0,\n width: '100%',\n },\n // Left System Control styles\n [`&.system-controls-type-${SystemControlsType.Left}`]: {\n '.control': {\n alignItems: 'start',\n flexDirection: 'column',\n padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`,\n },\n '.control-wrap': {\n marginBottom: `${theme.spacing(2)}`,\n },\n '.toggle': {\n borderRadius: '0 5px 5px 0',\n padding: `${theme.spacing(1)} ${theme.spacing(0.5)}`,\n writingMode: 'vertical-rl',\n },\n flexDirection: 'column',\n left: 0,\n position: 'fixed',\n top: '30vh',\n width: 'auto',\n },\n}))\n\nexport { SystemControlsRoot }\n","export enum SystemControlsType {\n Left = 'Left',\n Right = 'Right',\n WindowShade = 'WindowShade',\n}\n","import { Paper, Theme, useMediaQuery } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { NetworkSelectEx } from '@xyo-network/react-network'\n\nimport { SystemControl } from './controls'\nimport { SystemControlsType } from './SystemControlsType'\n\ninterface SystemControlsUnstyledProps extends FlexBoxProps {\n systemControlsType?: SystemControlsType\n visible?: boolean\n}\n\nconst SystemControlsUnstyled: React.FC<SystemControlsUnstyledProps> = ({\n visible,\n systemControlsType = SystemControlsType.WindowShade,\n ...props\n}) => {\n const isSmall = useMediaQuery<Theme>((theme) => theme.breakpoints.down('sm'))\n\n if (visible || isSmall) {\n return (\n <FlexCol {...props} className={`${props.className} system-controls-type-${systemControlsType}`}>\n <SystemControl\n systemControlsType={systemControlsType}\n controlElement={\n <>\n <FlexRow className={'control-wrap'}>\n <Paper variant=\"elevation\" elevation={0}>\n <NetworkSelectEx responsive={false} className=\"network-ex\" />\n </Paper>\n </FlexRow>\n </>\n }\n />\n </FlexCol>\n )\n } else {\n return <FlexCol />\n }\n}\n\nexport type { SystemControlsUnstyledProps }\nexport { SystemControlsUnstyled }\n","import { Collapse, CollapseProps } from '@mui/material'\nimport { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useState } from 'react'\n\nimport { SystemControlsType } from '../SystemControlsType'\n\ninterface SystemControlProps extends FlexBoxProps {\n controlElement: React.ReactNode\n systemControlsType?: SystemControlsType\n}\n\nconst SystemControl: React.FC<WithChildren<SystemControlProps>> = ({\n children,\n controlElement,\n systemControlsType = SystemControlsType.WindowShade,\n ...props\n}) => {\n const [toggleControls, setToggleControls] = useState(false)\n\n let orientation: CollapseProps['orientation'] = 'vertical'\n\n switch (systemControlsType) {\n case SystemControlsType.Left: {\n orientation = 'horizontal'\n break\n }\n }\n\n return (\n <FlexRow className=\"controls\" {...props}>\n <Collapse in={toggleControls} orientation={orientation} timeout={500}>\n <FlexRow bgcolor=\"primary.main\" className=\"control\">\n {controlElement}\n </FlexRow>\n </Collapse>\n <FlexCol style={{ cursor: 'pointer' }} onClick={() => setToggleControls(!toggleControls)}>\n {children}\n </FlexCol>\n </FlexRow>\n )\n}\n\nexport { SystemControl }\n","import { Search as SearchIcon } from '@mui/icons-material'\nimport { Paper, TextField } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexRow } from '@xylabs/react-flexbox'\nimport { useState } from 'react'\n\nexport interface SearchBarProps extends FlexBoxProps {\n onSearch?: (term?: string) => void\n}\n\nexport const SearchBar: React.FC<SearchBarProps> = ({ defaultValue, onSearch, ...props }) => {\n const [term, setTerm] = useState<string>()\n\n return (\n <FlexRow alignItems=\"stretch\" {...props}>\n <Paper variant=\"elevation\" elevation={0} style={{ display: 'flex', overflow: 'hidden', width: '100%' }}>\n <TextField\n InputProps={{ color: 'secondary', style: { borderBottomRightRadius: 0, borderTopRightRadius: 0, borderWidth: 0 } }}\n variant=\"outlined\"\n size=\"small\"\n defaultValue={defaultValue}\n fullWidth\n onChange={(event) => setTerm(event.target.value)}\n onKeyDown={(event) => {\n if (event.key === 'Enter') onSearch?.(term)\n }}\n />\n <ButtonEx variant=\"contained\" style={{ borderRadius: 0, borderTopLeftRadius: 0 }} color=\"secondary\" onClick={() => onSearch?.(term)}>\n <SearchIcon />\n </ButtonEx>\n </Paper>\n </FlexRow>\n )\n}\n"],"mappings":"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","names":["useTheme","jsx","useTheme","jsx","Toolbar","FlexRow","MenuIcon","IconButton","List","FlexRow","useState","useTheme","FlexRow","LinkEx","jsx","Typography","jsx","jsx","jsx","useTheme","jsx","jsx","jsxs","useTheme","LinkEx","FlexRow","jsx","jsxs","useState","FlexRow","IconButton","MenuIcon","List","Collapse","FlexCol","jsx","jsxs","FlexCol","Collapse","jsx","jsxs","Toolbar","FlexRow","jsx","useTheme","FlexRow","useState","jsx","useState","useTheme","FlexRow","Collapse","useTheme","jsx","useTheme","Collapse","FlexCol","styled","SystemControlsType","Paper","FlexCol","FlexRow","NetworkSelectEx","Collapse","FlexCol","FlexRow","useState","jsx","jsxs","useState","FlexRow","Collapse","FlexCol","Fragment","jsx","FlexCol","FlexRow","Paper","NetworkSelectEx","styled","jsx","FlexCol","Paper","FlexRow","useState","jsx","jsxs"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/contexts/Collapsible/context.ts"],"sourcesContent":["import { createContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleState } from './State'\n\nexport const CollapsibleContext = createContextEx<CollapsibleState>()\n"],"mappings":"AAAA,SAAS,uBAAuB;AAIzB,
|
1
|
+
{"version":3,"sources":["../../../../src/contexts/Collapsible/context.ts"],"sourcesContent":["import { createContextEx } from '@xyo-network/react-shared'\n\nimport { CollapsibleState } from './State'\n\nexport const CollapsibleContext = createContextEx<CollapsibleState>()\n"],"mappings":";AAAA,SAAS,uBAAuB;AAIzB,IAAM,qBAAqB,gBAAkC;","names":[]}
|