@xyo-network/react-appbar 2.77.0 → 2.77.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,542 +1,2 @@
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/provider.tsx
62
- import { useEffect, useState } from "react";
63
-
64
- // src/contexts/Collapsible/context.ts
65
- import { createContextEx } from "@xyo-network/react-shared";
66
- var CollapsibleContext = createContextEx();
67
-
68
- // src/contexts/Collapsible/provider.tsx
69
- import { jsx as jsx4 } from "react/jsx-runtime";
70
- var CollapsibleProvider = ({ defaultCollapse = false, defaultCollapseEnd = false, children }) => {
71
- const [collapse, setCollapse] = useState(defaultCollapse);
72
- const [collapseEnd, setCollapseEnd] = useState(defaultCollapseEnd);
73
- useEffect(() => {
74
- setCollapse(defaultCollapse);
75
- }, [defaultCollapse]);
76
- useEffect(() => {
77
- setCollapseEnd(defaultCollapseEnd);
78
- }, [defaultCollapseEnd]);
79
- return /* @__PURE__ */ jsx4(CollapsibleContext.Provider, { value: { collapse, collapseEnd, provided: true, setCollapse, setCollapseEnd }, children });
80
- };
81
-
82
- // src/contexts/Collapsible/use.tsx
83
- import { useContextEx } from "@xyo-network/react-shared";
84
- var useCollapsible = () => useContextEx(CollapsibleContext, "Collapsible", false);
85
-
86
- // src/components/SiteMenu/hooks/useMenuItemsShared.tsx
87
- var useMenuItemsShared = () => {
88
- const { collapse, collapseEnd, setCollapse, setCollapseEnd } = useCollapsible();
89
- const onMenuItemToggle = (open) => {
90
- setCollapse?.((previous) => open ? false : previous);
91
- setCollapseEnd?.((previous) => open ? false : previous);
92
- };
93
- const defaultSiteMenuListItemProps = useMemo(
94
- () => ({
95
- collapseEnd,
96
- dense: true,
97
- iconOnly: collapse,
98
- sx: {
99
- px: "8px"
100
- }
101
- }),
102
- [collapse, collapseEnd]
103
- );
104
- return { defaultSiteMenuListItemProps, onMenuItemToggle };
105
- };
106
-
107
- // src/components/SiteMenu/Menu.tsx
108
- import { Menu as MenuIcon2, Settings as SettingsIcon } from "@mui/icons-material";
109
- import { IconButton as IconButton2, List as List2, SwipeableDrawer } from "@mui/material";
110
- import { FlexRow as FlexRow3 } from "@xylabs/react-flexbox";
111
- import { useEffect as useEffect2, useState as useState3 } from "react";
112
-
113
- // src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx
114
- import { ListItemText, useTheme as useTheme4 } from "@mui/material";
115
- import { FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
116
- import { LinkEx as LinkEx2 } from "@xylabs/react-link";
117
- import { useState as useState2 } from "react";
118
-
119
- // src/components/SiteMenu/MenuListItem/list-item-components/ListItemTooltip.tsx
120
- import { Tooltip } from "@mui/material";
121
- import { FlexCol } from "@xylabs/react-flexbox";
122
- import { VscInfo } from "react-icons/vsc";
123
- import { jsx as jsx5 } from "react/jsx-runtime";
124
- var ListItemTooltip = ({ title, ...props }) => {
125
- return /* @__PURE__ */ jsx5(Tooltip, { title, placement: "right", ...props, children: /* @__PURE__ */ jsx5("div", { children: /* @__PURE__ */ jsx5(FlexCol, { justifyContent: "center", children: /* @__PURE__ */ jsx5(VscInfo, { color: "grey" }) }) }) });
126
- };
127
-
128
- // src/components/SiteMenu/MenuListItem/list-item-components/MenuIcon.tsx
129
- import { Typography as Typography2 } from "@mui/material";
130
- import { jsx as jsx6 } from "react/jsx-runtime";
131
- var MenuIcon = ({ icon, ...props }) => {
132
- return /* @__PURE__ */ jsx6(Typography2, { display: "flex", ...props, children: icon });
133
- };
134
-
135
- // src/components/SiteMenu/MenuListItem/list-item-components/MenuListItem.tsx
136
- import { ListItem } from "@mui/material";
137
- import { jsx as jsx7 } from "react/jsx-runtime";
138
- var MenuListItem = ({ iconOnly, collapseEnd, sx, children, dense, ...props }) => {
139
- const listItemSx = iconOnly ? { borderRadius: "50%", display: "inline-flex", flexGrow: 0, width: "auto" } : { width: "100%" };
140
- const spacingSx = collapseEnd ? { columnGap: 0 } : { columnGap: 1.5 };
141
- const paddingSx = dense ? { px: "8px" } : { px: "12px" };
142
- return /* @__PURE__ */ jsx7(ListItem, { sx: { ...listItemSx, ...spacingSx, ...paddingSx, ...sx }, ...props, children });
143
- };
144
-
145
- // src/components/SiteMenu/MenuListItem/sub-nav/SubNavListItemCollapse.tsx
146
- import { Collapse, List } from "@mui/material";
147
- import { jsx as jsx8 } from "react/jsx-runtime";
148
- var SubNavListItemsCollapse = ({ collapse, openSubNav, children, ...props }) => {
149
- return /* @__PURE__ */ jsx8(Collapse, { in: collapse == true ? false : openSubNav, ...props, children: /* @__PURE__ */ jsx8(List, { children }) });
150
- };
151
-
152
- // src/components/SiteMenu/MenuListItem/sub-nav/SubNavToggleIconButton.tsx
153
- import { IconButton, useTheme as useTheme3 } from "@mui/material";
154
- import { VscChevronDown } from "react-icons/vsc";
155
- import { jsx as jsx9 } from "react/jsx-runtime";
156
- var SubNavToggleIconButton = ({ setOpenSubNav, openSubNav }) => {
157
- const theme = useTheme3();
158
- return /* @__PURE__ */ jsx9(
159
- IconButton,
160
- {
161
- onClick: (event) => {
162
- event.stopPropagation();
163
- setOpenSubNav?.(!openSubNav);
164
- },
165
- sx: { marginRight: theme.spacing(0.5) },
166
- children: /* @__PURE__ */ jsx9(VscChevronDown, { fontSize: "16px" })
167
- }
168
- );
169
- };
170
-
171
- // src/components/SiteMenu/MenuListItem/MenuListItemContainer.tsx
172
- import { Fragment, jsx as jsx10, jsxs as jsxs2 } from "react/jsx-runtime";
173
- var MenuListItemContainer = ({
174
- style,
175
- icon,
176
- iconMenuTextSpacing,
177
- iconOnly,
178
- onButtonClick,
179
- primary,
180
- subNavListItems,
181
- sx,
182
- tooltip,
183
- to,
184
- ...props
185
- }) => {
186
- const { dense } = props;
187
- const theme = useTheme4();
188
- const { collapse } = useCollapsible();
189
- const [openSubNav, setOpenSubNav] = useState2(false);
190
- const [hovered, setHovered] = useState2(false);
191
- const resolvedIconMenuTextSpacing = iconMenuTextSpacing ?? theme.spacing(1);
192
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
193
- /* @__PURE__ */ jsxs2(
194
- MenuListItem,
195
- {
196
- disableGutters: true,
197
- iconOnly,
198
- onClick: onButtonClick,
199
- dense,
200
- sx: { justifyContent: "space-between", ...sx },
201
- style: { whiteSpace: "nowrap", ...style },
202
- ...props,
203
- children: [
204
- /* @__PURE__ */ jsx10(
205
- LinkEx2,
206
- {
207
- onMouseEnter: () => setHovered(true),
208
- onMouseLeave: () => setHovered(false),
209
- color: "inherit",
210
- to,
211
- sx: {
212
- "& :hover": {
213
- cursor: "pointer",
214
- textDecoration: "underline"
215
- }
216
- },
217
- children: /* @__PURE__ */ jsxs2(FlexRow2, { children: [
218
- /* @__PURE__ */ jsx10(MenuIcon, { icon, paddingRight: resolvedIconMenuTextSpacing, color: hovered ? "secondary" : "inherit" }),
219
- /* @__PURE__ */ jsx10(ListItemText, { primary })
220
- ] })
221
- }
222
- ),
223
- /* @__PURE__ */ jsxs2(FlexRow2, { style: { marginLeft: theme.spacing(1) }, children: [
224
- subNavListItems ? /* @__PURE__ */ jsx10(SubNavToggleIconButton, { setOpenSubNav, openSubNav }) : null,
225
- tooltip ? /* @__PURE__ */ jsx10(ListItemTooltip, { title: tooltip }) : null
226
- ] })
227
- ]
228
- }
229
- ),
230
- subNavListItems ? /* @__PURE__ */ jsx10(SubNavListItemsCollapse, { openSubNav, collapse, children: subNavListItems?.map((item, index) => /* @__PURE__ */ jsx10(MenuListItemContainer, { dense, sx: { pl: theme.spacing(1) }, ...item }, index)) }) : null
231
- ] });
232
- };
233
-
234
- // src/components/SiteMenu/Menu.tsx
235
- import { jsx as jsx11, jsxs as jsxs3 } from "react/jsx-runtime";
236
- var SiteMenu = ({ children, onMenuToggle, side = "right", ...props }) => {
237
- const [open, setOpen] = useState3(false);
238
- useEffect2(() => {
239
- onMenuToggle?.(open);
240
- }, [onMenuToggle, open]);
241
- return /* @__PURE__ */ jsxs3(FlexRow3, { alignItems: "stretch", ...props, children: [
242
- /* @__PURE__ */ jsx11(
243
- IconButton2,
244
- {
245
- size: "small",
246
- color: "inherit",
247
- onClick: () => {
248
- setOpen(!open);
249
- },
250
- children: /* @__PURE__ */ jsx11(MenuIcon2, { fontSize: "large" })
251
- }
252
- ),
253
- /* @__PURE__ */ jsx11(
254
- SwipeableDrawer,
255
- {
256
- anchor: side,
257
- open,
258
- onClick: () => setOpen(false),
259
- onKeyDown: () => setOpen(false),
260
- onClose: () => setOpen(false),
261
- onOpen: () => setOpen(true),
262
- children: children ?? /* @__PURE__ */ jsx11(List2, { children: /* @__PURE__ */ jsx11(MenuListItemContainer, { primary: "Settings", icon: /* @__PURE__ */ jsx11(SettingsIcon, {}), to: "/settings" }) })
263
- }
264
- )
265
- ] });
266
- };
267
-
268
- // src/components/SiteMenu/MenuSection.tsx
269
- import { Collapse as Collapse2, ListSubheader } from "@mui/material";
270
- import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
271
- import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
272
- var MenuSection = ({ iconMenuTextSpacing, listItems, showTitle = true, title, ...props }) => {
273
- return /* @__PURE__ */ jsxs4(FlexCol2, { alignItems: "stretch", ...props, children: [
274
- /* @__PURE__ */ jsx12(Collapse2, { in: showTitle, timeout: 700, children: /* @__PURE__ */ jsx12(ListSubheader, { children: title }) }),
275
- listItems.map((item, index) => /* @__PURE__ */ jsx12(MenuListItemContainer, { iconMenuTextSpacing, ...item }, index))
276
- ] });
277
- };
278
-
279
- // src/components/Toolbar/System/SystemToolbar.tsx
280
- import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
281
- var SystemToolbar = ({
282
- children,
283
- darkModeButton = false,
284
- hideNetworkSelect,
285
- menuItems,
286
- networkSelectProps,
287
- onMenuToggle,
288
- precedingChildren,
289
- ...props
290
- }) => {
291
- return /* @__PURE__ */ jsxs5(Toolbar2, { ...props, children: [
292
- precedingChildren,
293
- hideNetworkSelect ? null : /* @__PURE__ */ jsx13(FlexRow4, { marginX: 0.5, children: /* @__PURE__ */ jsx13(Paper, { variant: "elevation", children: /* @__PURE__ */ jsx13(NetworkSelectEx, { fullWidth: true, ...networkSelectProps }) }) }),
294
- children,
295
- darkModeButton ? /* @__PURE__ */ jsx13(DarkModeIconButton, { color: "inherit" }) : null,
296
- menuItems ? /* @__PURE__ */ jsx13(SiteMenu, { onMenuToggle, children: menuItems }) : null
297
- ] });
298
- };
299
-
300
- // src/components/AppBar/Application.tsx
301
- import { jsx as jsx14 } from "react/jsx-runtime";
302
- var ApplicationAppBar = ({ systemToolbar, contextToolbar, responsive = true, ...props }) => {
303
- return /* @__PURE__ */ jsx14(
304
- AppBarEx,
305
- {
306
- systemToolbar: systemToolbar ?? /* @__PURE__ */ jsx14(SystemToolbar, {}),
307
- contextToolbar: contextToolbar ?? /* @__PURE__ */ jsx14(ContextToolbar, {}),
308
- position: "sticky",
309
- responsive,
310
- ...props
311
- }
312
- );
313
- };
314
-
315
- // src/components/CollapsibleDrawer/CollapseToggle.tsx
316
- import { Icon, useTheme as useTheme5 } from "@mui/material";
317
- import { FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
318
- import { useState as useState4 } from "react";
319
- import { VscArrowSmallLeft, VscArrowSmallRight } from "react-icons/vsc";
320
- import { jsx as jsx15 } from "react/jsx-runtime";
321
- var CollapseToggleFlex = (props) => {
322
- const { collapse, setCollapse, setCollapseEnd } = useCollapsible();
323
- const [hover, setHover] = useState4(false);
324
- const theme = useTheme5();
325
- const handleCollapseToggle = () => {
326
- setCollapse?.(!collapse);
327
- setCollapseEnd?.((previous) => previous ? false : previous);
328
- };
329
- return /* @__PURE__ */ jsx15(FlexRow5, { mt: 2, py: 2, justifyContent: collapse ? "start" : "center", ...props, children: /* @__PURE__ */ jsx15(
330
- Icon,
331
- {
332
- onClick: handleCollapseToggle,
333
- onMouseEnter: () => setHover(true),
334
- onMouseLeave: () => setHover(false),
335
- fontSize: "large",
336
- sx: { color: hover ? theme.palette.secondary.main : "inherit", cursor: "pointer" },
337
- children: collapse ? /* @__PURE__ */ jsx15(VscArrowSmallRight, {}) : /* @__PURE__ */ jsx15(VscArrowSmallLeft, {})
338
- }
339
- ) });
340
- };
341
-
342
- // src/components/CollapsibleDrawer/CollapsibleDrawer.tsx
343
- import { Collapse as Collapse3, styled, useTheme as useTheme6 } from "@mui/material";
344
- import { jsx as jsx16 } from "react/jsx-runtime";
345
- var CollapsibleDrawer = ({ children, sx, ...props }) => {
346
- const { collapse, setCollapseEnd } = useCollapsible();
347
- const theme = useTheme6();
348
- const collapsedSize = props.collapsedSize ?? theme.spacing(5);
349
- return /* @__PURE__ */ jsx16(
350
- CollapsibleFlexInner,
351
- {
352
- in: !collapse,
353
- orientation: "horizontal",
354
- collapsedSize,
355
- onExited: () => setCollapseEnd?.(true),
356
- sx: {
357
- alignItems: "start",
358
- display: "flex",
359
- height: "100%",
360
- ...sx
361
- },
362
- ...props,
363
- children
364
- }
365
- );
366
- };
367
- var CollapsibleFlexInner = styled(Collapse3)(() => ({
368
- "& .MuiCollapse-wrapperInner": {
369
- display: "flex",
370
- flexDirection: "column"
371
- }
372
- }));
373
-
374
- // src/components/MobileSystemControls/SystemControls.tsx
375
- import { FlexCol as FlexCol5 } from "@xylabs/react-flexbox";
376
-
377
- // src/components/MobileSystemControls/SystemControlsRoot.tsx
378
- import { styled as styled2 } from "@mui/material";
379
-
380
- // src/components/MobileSystemControls/SystemControlsType.ts
381
- var SystemControlsType = /* @__PURE__ */ ((SystemControlsType2) => {
382
- SystemControlsType2["Left"] = "Left";
383
- SystemControlsType2["Right"] = "Right";
384
- SystemControlsType2["WindowShade"] = "WindowShade";
385
- return SystemControlsType2;
386
- })(SystemControlsType || {});
387
-
388
- // src/components/MobileSystemControls/SystemControlsUnstyled.tsx
389
- import { Paper as Paper2, useMediaQuery } from "@mui/material";
390
- import { FlexCol as FlexCol4, FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
391
- import { NetworkSelectEx as NetworkSelectEx2 } from "@xyo-network/react-network";
392
-
393
- // src/components/MobileSystemControls/controls/SystemControl.tsx
394
- import { Collapse as Collapse4 } from "@mui/material";
395
- import { FlexCol as FlexCol3, FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
396
- import { useState as useState5 } from "react";
397
- import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
398
- var SystemControl = ({
399
- children,
400
- controlElement,
401
- systemControlsType = "WindowShade" /* WindowShade */,
402
- ...props
403
- }) => {
404
- const [toggleControls, setToggleControls] = useState5(false);
405
- let orientation = "vertical";
406
- switch (systemControlsType) {
407
- case "Left" /* Left */: {
408
- orientation = "horizontal";
409
- break;
410
- }
411
- }
412
- return /* @__PURE__ */ jsxs6(FlexRow6, { className: "controls", ...props, children: [
413
- /* @__PURE__ */ jsx17(Collapse4, { in: toggleControls, orientation, timeout: 500, children: /* @__PURE__ */ jsx17(FlexRow6, { bgcolor: "primary.main", className: "control", children: controlElement }) }),
414
- /* @__PURE__ */ jsx17(FlexCol3, { style: { cursor: "pointer" }, onClick: () => setToggleControls(!toggleControls), children })
415
- ] });
416
- };
417
-
418
- // src/components/MobileSystemControls/SystemControlsUnstyled.tsx
419
- import { Fragment as Fragment2, jsx as jsx18 } from "react/jsx-runtime";
420
- var SystemControlsUnstyled = ({
421
- visible,
422
- systemControlsType = "WindowShade" /* WindowShade */,
423
- ...props
424
- }) => {
425
- const isSmall = useMediaQuery((theme) => theme.breakpoints.down("sm"));
426
- return visible || isSmall ? /* @__PURE__ */ jsx18(FlexCol4, { ...props, className: `${props.className} system-controls-type-${systemControlsType}`, children: /* @__PURE__ */ jsx18(
427
- SystemControl,
428
- {
429
- systemControlsType,
430
- controlElement: /* @__PURE__ */ jsx18(Fragment2, { children: /* @__PURE__ */ jsx18(FlexRow7, { className: "control-wrap", children: /* @__PURE__ */ jsx18(Paper2, { variant: "elevation", elevation: 0, children: /* @__PURE__ */ jsx18(NetworkSelectEx2, { responsive: false, className: "network-ex" }) }) }) })
431
- }
432
- ) }) : /* @__PURE__ */ jsx18(FlexCol4, {});
433
- };
434
-
435
- // src/components/MobileSystemControls/SystemControlsRoot.tsx
436
- var SystemControlsRoot = styled2(SystemControlsUnstyled, { name: "SystemControls", slot: "Root" })(({ theme }) => ({
437
- // shared defaults
438
- ["&"]: {
439
- ".toggle": {
440
- backgroundColor: theme.palette.primary.main
441
- },
442
- alignItems: "start",
443
- zIndex: 1
444
- },
445
- // WindowShade System Controls styles
446
- [`&.system-controls-type-${"WindowShade" /* WindowShade */}`]: {
447
- ".control": {
448
- borderRadius: "0 0 5px 5px",
449
- flexDirection: "row",
450
- flexGrow: 1,
451
- justifyContent: "space-around",
452
- padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`
453
- },
454
- ".controls": {
455
- alignItems: "stretch",
456
- flexDirection: "column",
457
- flexGrow: 1
458
- },
459
- ".toggle": {
460
- borderRadius: "0 0 5px 5px",
461
- padding: `${theme.spacing(0.5)} ${theme.spacing(1)}`
462
- },
463
- flexDirection: "row",
464
- position: "absolute",
465
- top: 0,
466
- width: "100%"
467
- },
468
- // Left System Control styles
469
- [`&.system-controls-type-${"Left" /* Left */}`]: {
470
- ".control": {
471
- alignItems: "start",
472
- flexDirection: "column",
473
- padding: `${theme.spacing(2)} ${theme.spacing(2.5)}`
474
- },
475
- ".control-wrap": {
476
- marginBottom: `${theme.spacing(2)}`
477
- },
478
- ".toggle": {
479
- borderRadius: "0 5px 5px 0",
480
- padding: `${theme.spacing(1)} ${theme.spacing(0.5)}`,
481
- writingMode: "vertical-rl"
482
- },
483
- flexDirection: "column",
484
- left: 0,
485
- position: "fixed",
486
- top: "30vh",
487
- width: "auto"
488
- }
489
- }));
490
-
491
- // src/components/MobileSystemControls/SystemControls.tsx
492
- import { jsx as jsx19 } from "react/jsx-runtime";
493
- var SystemControls = (props) => {
494
- return /* @__PURE__ */ jsx19(FlexCol5, { children: /* @__PURE__ */ jsx19(SystemControlsRoot, { ...props }) });
495
- };
496
-
497
- // src/components/SearchBar/SearchBar.tsx
498
- import { Search as SearchIcon } from "@mui/icons-material";
499
- import { Paper as Paper3, TextField } from "@mui/material";
500
- import { ButtonEx } from "@xylabs/react-button";
501
- import { FlexRow as FlexRow8 } from "@xylabs/react-flexbox";
502
- import { useState as useState6 } from "react";
503
- import { jsx as jsx20, jsxs as jsxs7 } from "react/jsx-runtime";
504
- var SearchBar = ({ defaultValue, onSearch, ...props }) => {
505
- const [term, setTerm] = useState6();
506
- return /* @__PURE__ */ jsx20(FlexRow8, { alignItems: "stretch", ...props, children: /* @__PURE__ */ jsxs7(Paper3, { variant: "elevation", elevation: 0, style: { display: "flex", overflow: "hidden", width: "100%" }, children: [
507
- /* @__PURE__ */ jsx20(
508
- TextField,
509
- {
510
- InputProps: { color: "secondary", style: { borderBottomRightRadius: 0, borderTopRightRadius: 0, borderWidth: 0 } },
511
- variant: "outlined",
512
- size: "small",
513
- defaultValue,
514
- fullWidth: true,
515
- onChange: (event) => setTerm(event.target.value),
516
- onKeyDown: (event) => {
517
- if (event.key === "Enter")
518
- onSearch?.(term);
519
- }
520
- }
521
- ),
522
- /* @__PURE__ */ jsx20(ButtonEx, { variant: "contained", style: { borderRadius: 0, borderTopLeftRadius: 0 }, color: "secondary", onClick: () => onSearch?.(term), children: /* @__PURE__ */ jsx20(SearchIcon, {}) })
523
- ] }) });
524
- };
525
- export {
526
- ApplicationAppBar,
527
- CollapseToggleFlex,
528
- CollapsibleDrawer,
529
- CollapsibleProvider,
530
- ContextToolbar,
531
- MenuListItemContainer,
532
- MenuSection,
533
- SearchBar,
534
- SiteMenu,
535
- SystemControls,
536
- SystemControlsType,
537
- SystemControlsUnstyled,
538
- SystemToolbar,
539
- useCollapsible,
540
- useMenuItemsShared
541
- };
1
+ import{AppBarEx as jo}from"@xylabs/react-appbar";import{Toolbar as xo}from"@mui/material";import{Typography as io,useTheme as po}from"@mui/material";import{FlexRow as ao}from"@xylabs/react-flexbox";import{LinkEx as mo}from"@xylabs/react-link";import{useTheme as no}from"@mui/material";import{jsx as lo}from"react/jsx-runtime";var F=o=>{let r=(no().palette.mode==="dark","https://cdn.xy.company/img/brand/XYO/XYO_icon_white.svg");return lo("img",{src:r,...o})};import{jsx as y,jsxs as co}from"react/jsx-runtime";var M=({to:o="/",version:e=!1,...r})=>{let t=po();return y(mo,{to:o,...r,children:co(ao,{paddingX:"4px",children:[y(F,{height:"40",width:"43"}),e?y(io,{position:"absolute",borderRadius:1,right:6,color:t.palette.getContrastText(t.palette.text.primary),bottom:0,bgcolor:t.palette.text.primary,paddingX:"2px",lineHeight:1,variant:"caption",border:`1px ${t.palette.getContrastText(t.palette.primary.main)} solid`,children:typeof e=="string"?e:"2.1"}):null]})})};import{jsx as E}from"react/jsx-runtime";var B=({logoTo:o="/",version:e=!1,...r})=>E(xo,{...r,children:E(M,{version:e,to:o})});import{Paper as _o,Toolbar as Ko}from"@mui/material";import{FlexRow as Qo}from"@xylabs/react-flexbox";import{DarkModeIconButton as qo}from"@xyo-network/react-app-settings";import{NetworkSelectEx as Jo}from"@xyo-network/react-network";import{useMemo as go}from"react";import{useEffect as N,useState as k}from"react";import{createContextEx as uo}from"@xyo-network/react-shared";var f=uo();import{jsx as fo}from"react/jsx-runtime";var Qe=({defaultCollapse:o=!1,defaultCollapseEnd:e=!1,children:r})=>{let[t,s]=k(o),[n,l]=k(e);return N(()=>{s(o)},[o]),N(()=>{l(e)},[e]),fo(f.Provider,{value:{collapse:t,collapseEnd:n,provided:!0,setCollapse:s,setCollapseEnd:l},children:r})};import{useContextEx as Co}from"@xyo-network/react-shared";var p=()=>Co(f,"Collapsible",!1);var rt=()=>{let{collapse:o,collapseEnd:e,setCollapse:r,setCollapseEnd:t}=p(),s=l=>{r?.(i=>l?!1:i),t?.(i=>l?!1:i)};return{defaultSiteMenuListItemProps:go(()=>({collapseEnd:e,dense:!0,iconOnly:o,sx:{px:"8px"}}),[o,e]),onMenuItemToggle:s}};import{Menu as ko,Settings as Do}from"@mui/icons-material";import{IconButton as Wo,List as Oo,SwipeableDrawer as Ao}from"@mui/material";import{FlexRow as $o}from"@xylabs/react-flexbox";import{useEffect as zo,useState as Uo}from"react";import{ListItemText as Mo,useTheme as Eo}from"@mui/material";import{FlexRow as H}from"@xylabs/react-flexbox";import{LinkEx as Bo}from"@xylabs/react-link";import{useState as X}from"react";import{Tooltip as So}from"@mui/material";import{FlexCol as Po}from"@xylabs/react-flexbox";import{VscInfo as bo}from"react-icons/vsc";import{jsx as C}from"react/jsx-runtime";var D=({title:o,...e})=>C(So,{title:o,placement:"right",...e,children:C("div",{children:C(Po,{justifyContent:"center",children:C(bo,{color:"grey"})})})});import{Typography as yo}from"@mui/material";import{jsx as ho}from"react/jsx-runtime";var W=({icon:o,...e})=>ho(yo,{display:"flex",...e,children:o});import{ListItem as Io}from"@mui/material";import{jsx as To}from"react/jsx-runtime";var O=({iconOnly:o,collapseEnd:e,sx:r,children:t,dense:s,...n})=>To(Io,{sx:{...o?{borderRadius:"50%",display:"inline-flex",flexGrow:0,width:"auto"}:{width:"100%"},...e?{columnGap:0}:{columnGap:1.5},...s?{px:"8px"}:{px:"12px"},...r},...n,children:t});import{Collapse as Lo,List as Ro}from"@mui/material";import{jsx as A}from"react/jsx-runtime";var $=({collapse:o,openSubNav:e,children:r,...t})=>A(Lo,{in:o==!0?!1:e,...t,children:A(Ro,{children:r})});import{IconButton as vo,useTheme as wo}from"@mui/material";import{VscChevronDown as Fo}from"react-icons/vsc";import{jsx as z}from"react/jsx-runtime";var U=({setOpenSubNav:o,openSubNav:e})=>{let r=wo();return z(vo,{onClick:t=>{t.stopPropagation(),o?.(!e)},sx:{marginRight:r.spacing(.5)},children:z(Fo,{fontSize:"16px"})})};import{Fragment as No,jsx as a,jsxs as g}from"react/jsx-runtime";var d=({style:o,icon:e,iconMenuTextSpacing:r,iconOnly:t,onButtonClick:s,primary:n,subNavListItems:l,sx:i,tooltip:c,to:Z,...L})=>{let{dense:R}=L,b=Eo(),{collapse:j}=p(),[v,oo]=X(!1),[eo,w]=X(!1),to=r??b.spacing(1);return g(No,{children:[g(O,{disableGutters:!0,iconOnly:t,onClick:s,dense:R,sx:{justifyContent:"space-between",...i},style:{whiteSpace:"nowrap",...o},...L,children:[a(Bo,{onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),color:"inherit",to:Z,sx:{"& :hover":{cursor:"pointer",textDecoration:"underline"}},children:g(H,{children:[a(W,{icon:e,paddingRight:to,color:eo?"secondary":"inherit"}),a(Mo,{primary:n})]})}),g(H,{style:{marginLeft:b.spacing(1)},children:[l?a(U,{setOpenSubNav:oo,openSubNav:v}):null,c?a(D,{title:c}):null]})]}),l?a($,{openSubNav:v,collapse:j,children:l?.map((ro,so)=>a(d,{dense:R,sx:{pl:b.spacing(1)},...ro},so))}):null]})};import{jsx as x,jsxs as Ho}from"react/jsx-runtime";var G=({children:o,onMenuToggle:e,side:r="right",...t})=>{let[s,n]=Uo(!1);return zo(()=>{e?.(s)},[e,s]),Ho($o,{alignItems:"stretch",...t,children:[x(Wo,{size:"small",color:"inherit",onClick:()=>{n(!s)},children:x(ko,{fontSize:"large"})}),x(Ao,{anchor:r,open:s,onClick:()=>n(!1),onKeyDown:()=>n(!1),onClose:()=>n(!1),onOpen:()=>n(!0),children:o??x(Oo,{children:x(d,{primary:"Settings",icon:x(Do,{}),to:"/settings"})})})]})};import{Collapse as Xo,ListSubheader as Go}from"@mui/material";import{FlexCol as Vo}from"@xylabs/react-flexbox";import{jsx as h,jsxs as Yo}from"react/jsx-runtime";var Jt=({iconMenuTextSpacing:o,listItems:e,showTitle:r=!0,title:t,...s})=>Yo(Vo,{alignItems:"stretch",...s,children:[h(Xo,{in:r,timeout:700,children:h(Go,{children:t})}),e.map((n,l)=>h(d,{iconMenuTextSpacing:o,...n},l))]});import{jsx as u,jsxs as Zo}from"react/jsx-runtime";var V=({children:o,darkModeButton:e=!1,hideNetworkSelect:r,menuItems:t,networkSelectProps:s,onMenuToggle:n,precedingChildren:l,...i})=>Zo(Ko,{...i,children:[l,r?null:u(Qo,{marginX:.5,children:u(_o,{variant:"elevation",children:u(Jo,{fullWidth:!0,...s})})}),o,e?u(qo,{color:"inherit"}):null,t?u(G,{onMenuToggle:n,children:t}):null]});import{jsx as I}from"react/jsx-runtime";var dr=({systemToolbar:o,contextToolbar:e,responsive:r=!0,...t})=>I(jo,{systemToolbar:o??I(V,{}),contextToolbar:e??I(B,{}),position:"sticky",responsive:r,...t});import{Icon as oe,useTheme as ee}from"@mui/material";import{FlexRow as te}from"@xylabs/react-flexbox";import{useState as re}from"react";import{VscArrowSmallLeft as se,VscArrowSmallRight as ne}from"react-icons/vsc";import{jsx as S}from"react/jsx-runtime";var hr=o=>{let{collapse:e,setCollapse:r,setCollapseEnd:t}=p(),[s,n]=re(!1),l=ee();return S(te,{mt:2,py:2,justifyContent:e?"start":"center",...o,children:S(oe,{onClick:()=>{r?.(!e),t?.(c=>c&&!1)},onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1),fontSize:"large",sx:{color:s?l.palette.secondary.main:"inherit",cursor:"pointer"},children:e?S(ne,{}):S(se,{})})})};import{Collapse as le,styled as ie,useTheme as pe}from"@mui/material";import{jsx as me}from"react/jsx-runtime";var wr=({children:o,sx:e,...r})=>{let{collapse:t,setCollapseEnd:s}=p(),n=pe(),l=r.collapsedSize??n.spacing(5);return me(ae,{in:!t,orientation:"horizontal",collapsedSize:l,onExited:()=>s?.(!0),sx:{alignItems:"start",display:"flex",height:"100%",...e},...r,children:o})},ae=ie(le)(()=>({"& .MuiCollapse-wrapperInner":{display:"flex",flexDirection:"column"}}));import{FlexCol as he}from"@xylabs/react-flexbox";import{styled as ye}from"@mui/material";var ce=(t=>(t.Left="Left",t.Right="Right",t.WindowShade="WindowShade",t))(ce||{});import{Paper as Ce,useMediaQuery as ge}from"@mui/material";import{FlexCol as K,FlexRow as Se}from"@xylabs/react-flexbox";import{NetworkSelectEx as Pe}from"@xyo-network/react-network";import{Collapse as xe}from"@mui/material";import{FlexCol as de,FlexRow as Y}from"@xylabs/react-flexbox";import{useState as ue}from"react";import{jsx as T,jsxs as fe}from"react/jsx-runtime";var _=({children:o,controlElement:e,systemControlsType:r="WindowShade",...t})=>{let[s,n]=ue(!1),l="vertical";switch(r){case"Left":{l="horizontal";break}}return fe(Y,{className:"controls",...t,children:[T(xe,{in:s,orientation:l,timeout:500,children:T(Y,{bgcolor:"primary.main",className:"control",children:e})}),T(de,{style:{cursor:"pointer"},onClick:()=>n(!s),children:o})]})};import{Fragment as be,jsx as m}from"react/jsx-runtime";var Q=({visible:o,systemControlsType:e="WindowShade",...r})=>{let t=ge(s=>s.breakpoints.down("sm"));return o||t?m(K,{...r,className:`${r.className} system-controls-type-${e}`,children:m(_,{systemControlsType:e,controlElement:m(be,{children:m(Se,{className:"control-wrap",children:m(Ce,{variant:"elevation",elevation:0,children:m(Pe,{responsive:!1,className:"network-ex"})})})})})}):m(K,{})};var q=ye(Q,{name:"SystemControls",slot:"Root"})(({theme:o})=>({"&":{".toggle":{backgroundColor:o.palette.primary.main},alignItems:"start",zIndex:1},["&.system-controls-type-WindowShade"]:{".control":{borderRadius:"0 0 5px 5px",flexDirection:"row",flexGrow:1,justifyContent:"space-around",padding:`${o.spacing(2)} ${o.spacing(2.5)}`},".controls":{alignItems:"stretch",flexDirection:"column",flexGrow:1},".toggle":{borderRadius:"0 0 5px 5px",padding:`${o.spacing(.5)} ${o.spacing(1)}`},flexDirection:"row",position:"absolute",top:0,width:"100%"},["&.system-controls-type-Left"]:{".control":{alignItems:"start",flexDirection:"column",padding:`${o.spacing(2)} ${o.spacing(2.5)}`},".control-wrap":{marginBottom:`${o.spacing(2)}`},".toggle":{borderRadius:"0 5px 5px 0",padding:`${o.spacing(1)} ${o.spacing(.5)}`,writingMode:"vertical-rl"},flexDirection:"column",left:0,position:"fixed",top:"30vh",width:"auto"}}));import{jsx as J}from"react/jsx-runtime";var jr=o=>J(he,{children:J(q,{...o})});import{Search as Ie}from"@mui/icons-material";import{Paper as Te,TextField as Le}from"@mui/material";import{ButtonEx as Re}from"@xylabs/react-button";import{FlexRow as ve}from"@xylabs/react-flexbox";import{useState as we}from"react";import{jsx as P,jsxs as Fe}from"react/jsx-runtime";var ps=({defaultValue:o,onSearch:e,...r})=>{let[t,s]=we();return P(ve,{alignItems:"stretch",...r,children:Fe(Te,{variant:"elevation",elevation:0,style:{display:"flex",overflow:"hidden",width:"100%"},children:[P(Le,{InputProps:{color:"secondary",style:{borderBottomRightRadius:0,borderTopRightRadius:0,borderWidth:0}},variant:"outlined",size:"small",defaultValue:o,fullWidth:!0,onChange:n=>s(n.target.value),onKeyDown:n=>{n.key==="Enter"&&e?.(t)}}),P(Re,{variant:"contained",style:{borderRadius:0,borderTopLeftRadius:0},color:"secondary",onClick:()=>e?.(t),children:P(Ie,{})})]})})};export{dr as ApplicationAppBar,hr as CollapseToggleFlex,wr as CollapsibleDrawer,Qe as CollapsibleProvider,B as ContextToolbar,d as MenuListItemContainer,Jt as MenuSection,ps as SearchBar,G as SiteMenu,jr as SystemControls,ce as SystemControlsType,Q as SystemControlsUnstyled,V as SystemToolbar,p as useCollapsible,rt as useMenuItemsShared};
542
2
  //# sourceMappingURL=index.js.map