@matteoaliano/forest-ui 0.2.11 → 0.3.0
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/README.md +123 -0
- package/dist/{chunk-6W3RIXXY.mjs → chunk-EULMNCHH.mjs} +935 -352
- package/dist/chunk-EULMNCHH.mjs.map +1 -0
- package/dist/{index-DJDmMb_c.d.mts → index-EkBIDmEu.d.mts} +11 -9
- package/dist/{index-DJDmMb_c.d.ts → index-EkBIDmEu.d.ts} +11 -9
- package/dist/index.d.mts +26 -10
- package/dist/index.d.ts +26 -10
- package/dist/index.js +1011 -370
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -15
- package/dist/index.mjs.map +1 -1
- package/dist/theme.d.mts +1 -1
- package/dist/theme.d.ts +1 -1
- package/dist/theme.js +935 -351
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +1 -1
- package/guidelines/FOREST_BE_GUIDELINES.md +1 -1
- package/guidelines/FOREST_FE_GUIDELINES.md +1 -1
- package/guidelines/FOREST_UI_GUIDELINES.md +1 -1
- package/package.json +12 -5
- package/dist/chunk-6W3RIXXY.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { bg, navColors, text, forestTheme, getPreset, buildTheme, lineHeight, fontSize } from './chunk-
|
|
2
|
-
export {
|
|
3
|
-
import React2, { createContext, useMemo, useState, useCallback, useContext } from 'react';
|
|
1
|
+
import { bg, navColors, text, forestTheme, getPreset, buildTheme, lineHeight, fontSize } from './chunk-EULMNCHH.mjs';
|
|
2
|
+
export { alpha, avatarColors, bg, border, breadcrumbColors, buildTheme, buildThemeOptions, buttonColors, chartColors, colors, container, display, fg, focusRings, fontFamily, fontSize, fontWeight, forestAgencyPreset, forestExternalPreset, forestInternalPreset, forestTheme, forestThemeOptions, getAvailablePresets, getPreset, iconColors, lineHeight, navColors, radius, registerPreset, sliderColors, spacing, text, toggleColors, shadows as tokenShadows, widths } from './chunk-EULMNCHH.mjs';
|
|
3
|
+
import React2, { forwardRef, createContext, useMemo, useState, useCallback, useContext } from 'react';
|
|
4
4
|
import { ThemeProvider, useTheme } from '@mui/material/styles';
|
|
5
5
|
import CssBaseline from '@mui/material/CssBaseline';
|
|
6
6
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -21,6 +21,7 @@ import MuiTextField from '@mui/material/TextField';
|
|
|
21
21
|
import InputAdornment from '@mui/material/InputAdornment';
|
|
22
22
|
import IconButton from '@mui/material/IconButton';
|
|
23
23
|
import { createSvgIcon } from '@mui/material/utils';
|
|
24
|
+
import { Box, Typography as Typography$1 } from '@mui/material';
|
|
24
25
|
import MuiToggleButton from '@mui/material/ToggleButton';
|
|
25
26
|
import MuiToggleButtonGroup from '@mui/material/ToggleButtonGroup';
|
|
26
27
|
import { DatePicker as DatePicker$1 } from '@mui/x-date-pickers/DatePicker';
|
|
@@ -81,9 +82,8 @@ import MuiStepLabel from '@mui/material/StepLabel';
|
|
|
81
82
|
import MuiTabs from '@mui/material/Tabs';
|
|
82
83
|
import MuiTab from '@mui/material/Tab';
|
|
83
84
|
import MuiDrawer from '@mui/material/Drawer';
|
|
84
|
-
import
|
|
85
|
+
import Box2 from '@mui/material/Box';
|
|
85
86
|
import { LineChart as LineChart$1 } from '@mui/x-charts/LineChart';
|
|
86
|
-
import { Box as Box$1, Typography as Typography$1 } from '@mui/material';
|
|
87
87
|
import { BarChart as BarChart$1 } from '@mui/x-charts/BarChart';
|
|
88
88
|
import { PieChart as PieChart$1 } from '@mui/x-charts/PieChart';
|
|
89
89
|
|
|
@@ -266,6 +266,62 @@ function Search({
|
|
|
266
266
|
}
|
|
267
267
|
);
|
|
268
268
|
}
|
|
269
|
+
var sizeMap = {
|
|
270
|
+
sm: 24,
|
|
271
|
+
md: 32,
|
|
272
|
+
lg: 48,
|
|
273
|
+
xl: 64
|
|
274
|
+
};
|
|
275
|
+
var variantColors = {
|
|
276
|
+
agency: "#1a1a1a",
|
|
277
|
+
external: "#1a1a1a",
|
|
278
|
+
internal: "#1a1a1a"
|
|
279
|
+
};
|
|
280
|
+
var Logo = forwardRef(
|
|
281
|
+
({ variant = "agency", size = "md", logomarkOnly = false, sx, ...props }, ref) => {
|
|
282
|
+
const dimension = sizeMap[size];
|
|
283
|
+
return /* @__PURE__ */ jsxs(
|
|
284
|
+
Box,
|
|
285
|
+
{
|
|
286
|
+
ref,
|
|
287
|
+
component: "svg",
|
|
288
|
+
viewBox: "0 0 64 64",
|
|
289
|
+
sx: {
|
|
290
|
+
width: dimension,
|
|
291
|
+
height: dimension,
|
|
292
|
+
display: "inline-flex",
|
|
293
|
+
alignItems: "center",
|
|
294
|
+
justifyContent: "center",
|
|
295
|
+
...sx
|
|
296
|
+
},
|
|
297
|
+
...props,
|
|
298
|
+
children: [
|
|
299
|
+
/* @__PURE__ */ jsx(
|
|
300
|
+
"path",
|
|
301
|
+
{
|
|
302
|
+
d: "M32 4L8 28h12v28h8V28h12L32 4z",
|
|
303
|
+
fill: variantColors[variant]
|
|
304
|
+
}
|
|
305
|
+
),
|
|
306
|
+
!logomarkOnly && /* @__PURE__ */ jsx(
|
|
307
|
+
"text",
|
|
308
|
+
{
|
|
309
|
+
x: "32",
|
|
310
|
+
y: "60",
|
|
311
|
+
textAnchor: "middle",
|
|
312
|
+
fontSize: "10",
|
|
313
|
+
fontWeight: "600",
|
|
314
|
+
fill: variantColors[variant],
|
|
315
|
+
fontFamily: "Aeonik, sans-serif",
|
|
316
|
+
children: "Forest"
|
|
317
|
+
}
|
|
318
|
+
)
|
|
319
|
+
]
|
|
320
|
+
}
|
|
321
|
+
);
|
|
322
|
+
}
|
|
323
|
+
);
|
|
324
|
+
Logo.displayName = "Logo";
|
|
269
325
|
function ToggleButton(props) {
|
|
270
326
|
return /* @__PURE__ */ jsx(MuiToggleButton, { ...props });
|
|
271
327
|
}
|
|
@@ -484,7 +540,7 @@ function SidebarNav({
|
|
|
484
540
|
onMouseEnter: () => onOpenChange(true),
|
|
485
541
|
onMouseLeave: () => onOpenChange(false)
|
|
486
542
|
} : {};
|
|
487
|
-
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: { open, collapsedWidth, expandedWidth }, children: /* @__PURE__ */ jsxs(
|
|
543
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: { open, collapsedWidth, expandedWidth }, children: /* @__PURE__ */ jsxs(Box2, { sx: { position: "relative", width: layoutWidth, flexShrink: 0 }, children: [
|
|
488
544
|
/* @__PURE__ */ jsx(
|
|
489
545
|
MuiDrawer,
|
|
490
546
|
{
|
|
@@ -504,7 +560,7 @@ function SidebarNav({
|
|
|
504
560
|
...sx
|
|
505
561
|
},
|
|
506
562
|
children: /* @__PURE__ */ jsxs(
|
|
507
|
-
|
|
563
|
+
Box2,
|
|
508
564
|
{
|
|
509
565
|
sx: {
|
|
510
566
|
display: "flex",
|
|
@@ -513,9 +569,9 @@ function SidebarNav({
|
|
|
513
569
|
overflow: "hidden"
|
|
514
570
|
},
|
|
515
571
|
children: [
|
|
516
|
-
header && /* @__PURE__ */ jsx(
|
|
517
|
-
/* @__PURE__ */ jsx(
|
|
518
|
-
footer && /* @__PURE__ */ jsx(
|
|
572
|
+
header && /* @__PURE__ */ jsx(Box2, { sx: { flexShrink: 0 }, children: header }),
|
|
573
|
+
/* @__PURE__ */ jsx(Box2, { sx: { flexGrow: 1, overflowY: "auto", overflowX: "hidden" }, children }),
|
|
574
|
+
footer && /* @__PURE__ */ jsx(Box2, { sx: { flexShrink: 0 }, children: footer })
|
|
519
575
|
]
|
|
520
576
|
}
|
|
521
577
|
)
|
|
@@ -639,7 +695,7 @@ function CustomTooltip(props) {
|
|
|
639
695
|
return null;
|
|
640
696
|
}
|
|
641
697
|
return /* @__PURE__ */ jsxs(
|
|
642
|
-
Box
|
|
698
|
+
Box,
|
|
643
699
|
{
|
|
644
700
|
sx: {
|
|
645
701
|
backgroundColor: theme.palette.common.white,
|
|
@@ -673,9 +729,9 @@ function CustomTooltip(props) {
|
|
|
673
729
|
const color = typeof s.getColor === "function" ? s.getColor(dataIndex) : s.color;
|
|
674
730
|
const value = s.data ? s.data[dataIndex] : null;
|
|
675
731
|
if (value == null) return null;
|
|
676
|
-
return /* @__PURE__ */ jsx(Box
|
|
732
|
+
return /* @__PURE__ */ jsx(Box, { sx: { display: "flex", flexDirection: "column", gap: "6px" }, children: /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
677
733
|
/* @__PURE__ */ jsx(
|
|
678
|
-
Box
|
|
734
|
+
Box,
|
|
679
735
|
{
|
|
680
736
|
sx: {
|
|
681
737
|
width: 16,
|
|
@@ -698,7 +754,7 @@ function CustomTooltip(props) {
|
|
|
698
754
|
},
|
|
699
755
|
children: [
|
|
700
756
|
/* @__PURE__ */ jsx(
|
|
701
|
-
Box
|
|
757
|
+
Box,
|
|
702
758
|
{
|
|
703
759
|
component: "span",
|
|
704
760
|
sx: {
|
|
@@ -957,6 +1013,6 @@ function PieChart({ series, colors: colors2, ...props }) {
|
|
|
957
1013
|
);
|
|
958
1014
|
}
|
|
959
1015
|
|
|
960
|
-
export { Accordion, AccordionActions, AccordionDetails, AccordionSummary, Alert, AlertTitle, AppBar, Autocomplete, Backdrop, Badge, BarChart, Breadcrumbs, Button, ButtonGroup, Card, CardActions, CardContent, CardHeader, CardMedia, Checkbox, Chip, CircularProgress, DataGrid, DatePicker, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, Fab, ForestProvider, LineChart, LinearProgress, Link, List, ListItem, ListItemAvatar, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu, MenuItem, MenuList, Modal, MultiSelect, Pagination, Paper, PieChart, Popover, Radio, RadioGroup, Search, Select, SidebarItem, SidebarNav, Skeleton, Snackbar, Step, StepLabel, Stepper, Switch, Tab, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Tabs, TextField, ToggleButton, ToggleButtonGroup, Toolbar, Tooltip, Typography, useChartColors, useSidebar };
|
|
1016
|
+
export { Accordion, AccordionActions, AccordionDetails, AccordionSummary, Alert, AlertTitle, AppBar, Autocomplete, Backdrop, Badge, BarChart, Breadcrumbs, Button, ButtonGroup, Card, CardActions, CardContent, CardHeader, CardMedia, Checkbox, Chip, CircularProgress, DataGrid, DatePicker, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, Fab, ForestProvider, LineChart, LinearProgress, Link, List, ListItem, ListItemAvatar, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Logo, Menu, MenuItem, MenuList, Modal, MultiSelect, Pagination, Paper, PieChart, Popover, Radio, RadioGroup, Search, Select, SidebarItem, SidebarNav, Skeleton, Snackbar, Step, StepLabel, Stepper, Switch, Tab, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Tabs, TextField, ToggleButton, ToggleButtonGroup, Toolbar, Tooltip, Typography, useChartColors, useSidebar };
|
|
961
1017
|
//# sourceMappingURL=index.mjs.map
|
|
962
1018
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/provider/ForestProvider.tsx","../src/components/Autocomplete/index.tsx","../src/components/Button/index.tsx","../src/components/ButtonGroup/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Fab/index.tsx","../src/components/RadioGroup/index.tsx","../src/components/Select/index.tsx","../src/components/MultiSelect/index.tsx","../src/components/Switch/index.tsx","../src/components/TextField/index.tsx","../../../node_modules/@mui/icons-material/esm/Search.js","../../../node_modules/@mui/icons-material/esm/Clear.js","../src/components/Search/index.tsx","../src/components/ToggleButton/index.tsx","../src/components/DatePicker/index.tsx","../src/components/Badge/index.tsx","../../../node_modules/@mui/icons-material/esm/CloseOutlined.js","../src/components/Chip/index.tsx","../src/components/Divider/index.tsx","../src/components/List/index.tsx","../src/components/Table/index.tsx","../src/components/DataGrid/index.tsx","../src/components/Tooltip/index.tsx","../src/components/Typography/index.tsx","../src/components/Accordion/index.tsx","../src/components/AppBar/index.tsx","../src/components/Card/index.tsx","../src/components/Paper/index.tsx","../src/components/Alert/index.tsx","../src/components/Backdrop/index.tsx","../src/components/Dialog/index.tsx","../src/components/Progress/index.tsx","../src/components/Skeleton/index.tsx","../src/components/Modal/index.tsx","../src/components/Popover/index.tsx","../src/components/Snackbar/index.tsx","../src/components/Breadcrumbs/index.tsx","../src/components/Link/index.tsx","../src/components/Menu/index.tsx","../src/components/Pagination/index.tsx","../src/components/Stepper/index.tsx","../src/components/Tabs/index.tsx","../../../node_modules/@mui/icons-material/esm/ChevronLeftOutlined.js","../../../node_modules/@mui/icons-material/esm/ChevronRightOutlined.js","../src/components/Sidebar/index.tsx","../src/components/Charts/useChartColors.ts","../src/components/Charts/CustomTooltip.tsx","../src/components/Charts/LineChart.tsx","../src/components/Charts/BarChart.tsx","../src/components/Charts/PieChart.tsx"],"names":["jsx","renderValue","jsxs","MuiSelect","MuiButton","MuiMenuItem","MuiCheckbox","_jsx","MuiTextField","MuiDatePicker","MuiListItemButton","MuiListItemIcon","MuiListItemText","MuiDataGrid","React","Alert","IconButton","MuiTooltip","ListItemIcon","ListItemText","colors","useTheme","Box","Typography","_a","_b","MuiLineChart","MuiBarChart","MuiPieChart"],"mappings":"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","file":"index.mjs","sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport { ThemeProvider, type Theme } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport { forestTheme } from \"../theme\";\nimport { getPreset } from \"../theme/presets\";\nimport { buildTheme } from \"../theme/buildTheme\";\n\nexport interface ForestProviderProps {\n children: React.ReactNode;\n theme?: Theme;\n preset?: string;\n variant?: string;\n disableCssBaseline?: boolean;\n}\n\nexport function ForestProvider({\n children,\n theme,\n preset,\n variant,\n disableCssBaseline = false,\n}: ForestProviderProps) {\n const resolvedTheme = useMemo(() => {\n // Explicit theme prop takes highest priority\n if (theme) return theme;\n\n // If no preset specified, use the default forest theme\n if (!preset) return forestTheme;\n\n // Resolve preset + variant\n const presetConfig = getPreset(preset);\n if (!presetConfig) {\n throw new Error(\n `[ForestProvider] Unknown preset \"${preset}\". ` +\n `Available presets: use getAvailablePresets() to see registered presets.`\n );\n }\n\n const variantName = variant ?? presetConfig.defaultVariant;\n const variantConfig = presetConfig.variants[variantName];\n if (!variantConfig) {\n throw new Error(\n `[ForestProvider] Unknown variant \"${variantName}\" for preset \"${preset}\". ` +\n `Available variants: ${Object.keys(presetConfig.variants).join(\", \")}.`\n );\n }\n\n return buildTheme(variantConfig.tokens);\n }, [theme, preset, variant]);\n\n return (\n <ThemeProvider theme={resolvedTheme}>\n {!disableCssBaseline && <CssBaseline />}\n {children}\n </ThemeProvider>\n );\n}\n","import MuiAutocomplete, {\n type AutocompleteProps,\n} from \"@mui/material/Autocomplete\";\n\nexport type { AutocompleteProps };\n\nexport function Autocomplete<\n Value,\n Multiple extends boolean | undefined = false,\n DisableClearable extends boolean | undefined = false,\n FreeSolo extends boolean | undefined = false,\n>(\n props: AutocompleteProps<Value, Multiple, DisableClearable, FreeSolo>,\n) {\n return <MuiAutocomplete {...props} />;\n}\n","import MuiButton, { type ButtonProps as MuiButtonProps } from \"@mui/material/Button\";\n\nexport type ButtonProps = Omit<MuiButtonProps, \"size\">;\n\nexport function Button({ ...props }: ButtonProps) {\n return <MuiButton variant=\"contained\" {...props} />;\n}\n","import MuiButtonGroup, { type ButtonGroupProps } from \"@mui/material/ButtonGroup\";\n\nexport type { ButtonGroupProps };\n\nexport function ButtonGroup(props: ButtonGroupProps) {\n return <MuiButtonGroup variant=\"contained\" {...props} />;\n}\n","import MuiCheckbox, { type CheckboxProps } from \"@mui/material/Checkbox\";\n\nexport type { CheckboxProps };\n\nexport function Checkbox(props: CheckboxProps) {\n return <MuiCheckbox {...props} />;\n}\n","import MuiFab, { type FabProps } from \"@mui/material/Fab\";\n\nexport type { FabProps };\n\nexport function Fab(props: FabProps) {\n return <MuiFab color=\"primary\" {...props} />;\n}\n","import MuiRadioGroup, { type RadioGroupProps } from \"@mui/material/RadioGroup\";\nimport MuiRadio, { type RadioProps } from \"@mui/material/Radio\";\n\nexport type { RadioGroupProps, RadioProps };\n\nexport function RadioGroup(props: RadioGroupProps) {\n return <MuiRadioGroup {...props} />;\n}\n\nexport function Radio(props: RadioProps) {\n return <MuiRadio {...props} />;\n}\n","import MuiSelect, { type SelectProps } from \"@mui/material/Select\";\nimport MuiMenuItem, { type MenuItemProps } from \"@mui/material/MenuItem\";\n\nexport type { SelectProps, MenuItemProps };\n\nexport function Select<Value = unknown>(props: SelectProps<Value>) {\n return <MuiSelect {...props} />;\n}\n\nexport function MenuItem(props: MenuItemProps) {\n return <MuiMenuItem {...props} />;\n}\n","import MuiSelect, { type SelectProps } from \"@mui/material/Select\";\nimport MuiMenuItem from \"@mui/material/MenuItem\";\nimport MuiCheckbox from \"@mui/material/Checkbox\";\nimport MuiListItemText from \"@mui/material/ListItemText\";\nimport MuiFormControl from \"@mui/material/FormControl\";\nimport MuiInputLabel from \"@mui/material/InputLabel\";\nimport MuiButton from \"@mui/material/Button\";\nimport { type SelectChangeEvent } from \"@mui/material/Select\";\n\nexport interface MultiSelectOption {\n label: string;\n value: string;\n}\n\nexport interface MultiSelectProps\n extends Omit<SelectProps<string[]>, \"multiple\" | \"value\" | \"onChange\" | \"renderValue\"> {\n options: MultiSelectOption[];\n value: string[];\n onChange: (values: string[]) => void;\n selectAll?: boolean;\n selectAllLabel?: string;\n}\n\nexport function MultiSelect({\n options,\n value,\n onChange,\n selectAll = true,\n selectAllLabel = \"Select All\",\n label,\n ...rest\n}: MultiSelectProps) {\n const allSelected = options.length > 0 && value.length === options.length;\n\n const handleChange = (event: SelectChangeEvent<string[]>) => {\n const selected = event.target.value;\n const arr = typeof selected === \"string\" ? selected.split(\",\") : selected;\n onChange(arr);\n };\n\n const handleSelectAll = () => {\n onChange(allSelected ? [] : options.map((o) => o.value));\n };\n\n const labelMap = new Map(options.map((o) => [o.value, o.label]));\n\n const renderValue = (selected: string[]) =>\n selected.map((v) => labelMap.get(v) ?? v).join(\", \");\n\n const labelId = label\n ? `forest-multiselect-${String(label).replace(/\\s+/g, \"-\").toLowerCase()}`\n : undefined;\n\n return (\n <MuiFormControl fullWidth>\n {label && (\n <MuiInputLabel id={labelId} shrink={value.length > 0}>\n {label}\n </MuiInputLabel>\n )}\n <MuiSelect<string[]>\n labelId={labelId}\n label={label}\n multiple\n notched={value.length > 0}\n value={value}\n onChange={handleChange}\n displayEmpty\n renderValue={renderValue}\n {...rest}\n >\n {selectAll && (\n <li\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => {\n e.stopPropagation();\n handleSelectAll();\n }}\n >\n <MuiButton size=\"small\" variant=\"text\">\n {allSelected ? \"Deselect All\" : selectAllLabel}\n </MuiButton>\n </li>\n )}\n {options.map((option) => (\n <MuiMenuItem key={option.value} value={option.value}>\n <MuiCheckbox checked={value.includes(option.value)} />\n <MuiListItemText primary={option.label} />\n </MuiMenuItem>\n ))}\n </MuiSelect>\n </MuiFormControl>\n );\n}\n","import MuiSwitch, { type SwitchProps } from \"@mui/material/Switch\";\n\nexport type { SwitchProps };\n\nexport function Switch(props: SwitchProps) {\n return <MuiSwitch {...props} />;\n}\n","import MuiTextField, { type TextFieldProps } from \"@mui/material/TextField\";\n\nexport type { TextFieldProps };\n\nexport function TextField(props: TextFieldProps) {\n return <MuiTextField {...props} />;\n}\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\"\n}), 'Search');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');","import React, { useState, useCallback } from \"react\";\nimport MuiTextField, { type TextFieldProps } from \"@mui/material/TextField\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport IconButton from \"@mui/material/IconButton\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\n\nexport type SearchProps = Omit<TextFieldProps, \"variant\"> & {\n onClear?: () => void;\n};\n\nexport function Search({\n value: controlledValue,\n onChange,\n onClear,\n placeholder = \"Search…\",\n slotProps,\n ...props\n}: SearchProps) {\n const [internalValue, setInternalValue] = useState(\"\");\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = useCallback(\n (e) => {\n if (!isControlled) setInternalValue(e.target.value);\n onChange?.(e);\n },\n [isControlled, onChange]\n );\n\n const handleClear = useCallback(() => {\n if (!isControlled) setInternalValue(\"\");\n onClear?.();\n }, [isControlled, onClear]);\n\n return (\n <MuiTextField\n variant=\"outlined\"\n placeholder={placeholder}\n value={currentValue}\n onChange={handleChange}\n slotProps={{\n ...slotProps,\n input: {\n sx: { pl: \"12px\", gap: 0 },\n startAdornment: (\n <InputAdornment position=\"start\" sx={{ mr: 0 }}>\n <SearchIcon sx={{ fontSize: 20 }} />\n </InputAdornment>\n ),\n endAdornment: currentValue ? (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"clear search\"\n onClick={handleClear}\n edge=\"end\"\n size=\"small\"\n >\n <ClearIcon fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ) : null,\n ...(typeof slotProps?.input === \"object\" ? slotProps.input : {}),\n },\n }}\n {...props}\n />\n );\n}\n","import MuiToggleButton, { type ToggleButtonProps } from \"@mui/material/ToggleButton\";\nimport MuiToggleButtonGroup, { type ToggleButtonGroupProps } from \"@mui/material/ToggleButtonGroup\";\n\nexport type { ToggleButtonProps, ToggleButtonGroupProps };\n\nexport function ToggleButton(props: ToggleButtonProps) {\n return <MuiToggleButton {...props} />;\n}\n\nexport function ToggleButtonGroup(props: ToggleButtonGroupProps) {\n return <MuiToggleButtonGroup {...props} />;\n}\n","import { DatePicker as MuiDatePicker, type DatePickerProps as MuiDatePickerProps } from \"@mui/x-date-pickers/DatePicker\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { AdapterDayjs } from \"@mui/x-date-pickers/AdapterDayjs\";\n\nexport type DatePickerProps = MuiDatePickerProps;\n\nexport function DatePicker(props: DatePickerProps) {\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <MuiDatePicker {...props} />\n </LocalizationProvider>\n );\n}\n","import MuiBadge, { type BadgeProps } from \"@mui/material/Badge\";\n\nexport type { BadgeProps };\n\nexport function Badge(props: BadgeProps) {\n return <MuiBadge {...props} />;\n}\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'CloseOutlined');","import MuiChip, { type ChipProps } from \"@mui/material/Chip\";\nimport CloseIcon from \"@mui/icons-material/CloseOutlined\";\n\nexport type { ChipProps };\n\nexport function Chip(props: ChipProps) {\n return (\n <MuiChip\n deleteIcon={<CloseIcon />}\n {...props}\n />\n );\n}\n","import MuiDivider, { type DividerProps } from \"@mui/material/Divider\";\n\nexport type { DividerProps };\n\nexport function Divider(props: DividerProps) {\n return <MuiDivider {...props} />;\n}\n","import MuiList, { type ListProps } from \"@mui/material/List\";\nimport MuiListItem, { type ListItemProps } from \"@mui/material/ListItem\";\nimport MuiListItemButton, { type ListItemButtonProps } from \"@mui/material/ListItemButton\";\nimport MuiListItemIcon, { type ListItemIconProps } from \"@mui/material/ListItemIcon\";\nimport MuiListItemText, { type ListItemTextProps } from \"@mui/material/ListItemText\";\nimport MuiListItemAvatar, { type ListItemAvatarProps } from \"@mui/material/ListItemAvatar\";\nimport MuiListSubheader, { type ListSubheaderProps } from \"@mui/material/ListSubheader\";\n\nexport type {\n ListProps,\n ListItemProps,\n ListItemButtonProps,\n ListItemIconProps,\n ListItemTextProps,\n ListItemAvatarProps,\n ListSubheaderProps,\n};\n\nexport function List(props: ListProps) {\n return <MuiList {...props} />;\n}\n\nexport function ListItem(props: ListItemProps) {\n return <MuiListItem {...props} />;\n}\n\nexport function ListItemButton(props: ListItemButtonProps) {\n return <MuiListItemButton {...props} />;\n}\n\nexport function ListItemIcon(props: ListItemIconProps) {\n return <MuiListItemIcon {...props} />;\n}\n\nexport function ListItemText(props: ListItemTextProps) {\n return <MuiListItemText {...props} />;\n}\n\nexport function ListItemAvatar(props: ListItemAvatarProps) {\n return <MuiListItemAvatar {...props} />;\n}\n\nexport function ListSubheader(props: ListSubheaderProps) {\n return <MuiListSubheader {...props} />;\n}\n","import MuiTable, { type TableProps } from \"@mui/material/Table\";\nimport MuiTableBody, { type TableBodyProps } from \"@mui/material/TableBody\";\nimport MuiTableCell, { type TableCellProps } from \"@mui/material/TableCell\";\nimport MuiTableContainer, { type TableContainerProps } from \"@mui/material/TableContainer\";\nimport MuiTableHead, { type TableHeadProps } from \"@mui/material/TableHead\";\nimport MuiTableRow, { type TableRowProps } from \"@mui/material/TableRow\";\n\nexport type {\n TableProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableHeadProps,\n TableRowProps,\n};\n\nexport function Table(props: TableProps) {\n return <MuiTable {...props} />;\n}\n\nexport function TableBody(props: TableBodyProps) {\n return <MuiTableBody {...props} />;\n}\n\nexport function TableCell(props: TableCellProps) {\n return <MuiTableCell {...props} />;\n}\n\nexport function TableContainer(props: TableContainerProps) {\n return <MuiTableContainer {...props} />;\n}\n\nexport function TableHead(props: TableHeadProps) {\n return <MuiTableHead {...props} />;\n}\n\nexport function TableRow(props: TableRowProps) {\n return <MuiTableRow {...props} />;\n}\n","import { DataGrid as MuiDataGrid, type DataGridProps } from \"@mui/x-data-grid\";\n\nexport type { DataGridProps };\nexport type {\n GridColDef,\n GridRowsProp,\n GridRowParams,\n GridCellParams,\n GridSortModel,\n GridFilterModel,\n GridPaginationModel,\n} from \"@mui/x-data-grid\";\n\nexport function DataGrid(props: DataGridProps) {\n return <MuiDataGrid {...props} />;\n}\n","import MuiTooltip, { type TooltipProps } from \"@mui/material/Tooltip\";\n\nexport type { TooltipProps };\n\nexport function Tooltip(props: TooltipProps) {\n return <MuiTooltip arrow {...props} />;\n}\n","import MuiTypography, { type TypographyProps } from \"@mui/material/Typography\";\n\nexport type { TypographyProps };\n\nexport function Typography(props: TypographyProps) {\n return <MuiTypography {...props} />;\n}\n","import MuiAccordion, { type AccordionProps } from \"@mui/material/Accordion\";\nimport MuiAccordionSummary, { type AccordionSummaryProps } from \"@mui/material/AccordionSummary\";\nimport MuiAccordionDetails, { type AccordionDetailsProps } from \"@mui/material/AccordionDetails\";\nimport MuiAccordionActions, { type AccordionActionsProps } from \"@mui/material/AccordionActions\";\n\nexport type {\n AccordionProps,\n AccordionSummaryProps,\n AccordionDetailsProps,\n AccordionActionsProps,\n};\n\nexport function Accordion(props: AccordionProps) {\n return <MuiAccordion {...props} />;\n}\n\nexport function AccordionSummary(props: AccordionSummaryProps) {\n return <MuiAccordionSummary {...props} />;\n}\n\nexport function AccordionDetails(props: AccordionDetailsProps) {\n return <MuiAccordionDetails {...props} />;\n}\n\nexport function AccordionActions(props: AccordionActionsProps) {\n return <MuiAccordionActions {...props} />;\n}\n","import MuiAppBar, { type AppBarProps } from \"@mui/material/AppBar\";\nimport MuiToolbar, { type ToolbarProps } from \"@mui/material/Toolbar\";\n\nexport type { AppBarProps, ToolbarProps };\n\nexport function AppBar(props: AppBarProps) {\n return <MuiAppBar {...props} />;\n}\n\nexport function Toolbar(props: ToolbarProps) {\n return <MuiToolbar {...props} />;\n}\n","import MuiCard, { type CardProps } from \"@mui/material/Card\";\nimport MuiCardContent, { type CardContentProps } from \"@mui/material/CardContent\";\nimport MuiCardHeader, { type CardHeaderProps } from \"@mui/material/CardHeader\";\nimport MuiCardActions, { type CardActionsProps } from \"@mui/material/CardActions\";\nimport MuiCardMedia, { type CardMediaProps } from \"@mui/material/CardMedia\";\n\nexport type {\n CardProps,\n CardContentProps,\n CardHeaderProps,\n CardActionsProps,\n CardMediaProps,\n};\n\nexport function Card(props: CardProps) {\n return <MuiCard {...props} />;\n}\n\nexport function CardContent(props: CardContentProps) {\n return <MuiCardContent {...props} />;\n}\n\nexport function CardHeader(props: CardHeaderProps) {\n return <MuiCardHeader {...props} />;\n}\n\nexport function CardActions(props: CardActionsProps) {\n return <MuiCardActions {...props} />;\n}\n\nexport function CardMedia(props: CardMediaProps) {\n return <MuiCardMedia {...props} />;\n}\n","import MuiPaper, { type PaperProps } from \"@mui/material/Paper\";\n\nexport type { PaperProps };\n\nexport function Paper(props: PaperProps) {\n return <MuiPaper {...props} />;\n}\n","import React from \"react\";\nimport MuiAlert, { type AlertProps } from \"@mui/material/Alert\";\nimport MuiAlertTitle, { type AlertTitleProps } from \"@mui/material/AlertTitle\";\n\nexport type { AlertProps, AlertTitleProps };\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n return <MuiAlert ref={ref} {...props} />;\n});\n\nexport function AlertTitle(props: AlertTitleProps) {\n return <MuiAlertTitle {...props} />;\n}\n","import MuiBackdrop, { type BackdropProps } from \"@mui/material/Backdrop\";\n\nexport type { BackdropProps };\n\nexport function Backdrop(props: BackdropProps) {\n return <MuiBackdrop {...props} />;\n}\n","import MuiDialog, { type DialogProps } from \"@mui/material/Dialog\";\nimport MuiDialogTitle, { type DialogTitleProps } from \"@mui/material/DialogTitle\";\nimport MuiDialogContent, { type DialogContentProps } from \"@mui/material/DialogContent\";\nimport MuiDialogActions, { type DialogActionsProps } from \"@mui/material/DialogActions\";\nimport MuiDialogContentText, { type DialogContentTextProps } from \"@mui/material/DialogContentText\";\n\nexport type {\n DialogProps,\n DialogTitleProps,\n DialogContentProps,\n DialogActionsProps,\n DialogContentTextProps,\n};\n\nexport function Dialog(props: DialogProps) {\n return <MuiDialog {...props} />;\n}\n\nexport function DialogTitle(props: DialogTitleProps) {\n return <MuiDialogTitle {...props} />;\n}\n\nexport function DialogContent(props: DialogContentProps) {\n return <MuiDialogContent {...props} />;\n}\n\nexport function DialogActions(props: DialogActionsProps) {\n return <MuiDialogActions {...props} />;\n}\n\nexport function DialogContentText(props: DialogContentTextProps) {\n return <MuiDialogContentText {...props} />;\n}\n","import MuiLinearProgress, { type LinearProgressProps } from \"@mui/material/LinearProgress\";\nimport MuiCircularProgress, { type CircularProgressProps } from \"@mui/material/CircularProgress\";\n\nexport type { LinearProgressProps, CircularProgressProps };\n\nexport function LinearProgress(props: LinearProgressProps) {\n return <MuiLinearProgress {...props} />;\n}\n\nexport function CircularProgress(props: CircularProgressProps) {\n return <MuiCircularProgress {...props} />;\n}\n","import MuiSkeleton, { type SkeletonProps } from \"@mui/material/Skeleton\";\n\nexport type { SkeletonProps };\n\nexport function Skeleton(props: SkeletonProps) {\n return <MuiSkeleton {...props} />;\n}\n","import MuiModal, { type ModalProps } from \"@mui/material/Modal\";\n\nexport type { ModalProps };\n\nexport function Modal(props: ModalProps) {\n return <MuiModal {...props} />;\n}\n","import MuiPopover, { type PopoverProps } from \"@mui/material/Popover\";\n\nexport type { PopoverProps };\n\nexport function Popover(props: PopoverProps) {\n return <MuiPopover {...props} />;\n}\n","import MuiSnackbar, { type SnackbarProps } from \"@mui/material/Snackbar\";\n\nexport type { SnackbarProps };\n\nexport function Snackbar(props: SnackbarProps) {\n return <MuiSnackbar {...props} />;\n}\n","import MuiBreadcrumbs, { type BreadcrumbsProps } from \"@mui/material/Breadcrumbs\";\n\nexport type { BreadcrumbsProps };\n\nexport function Breadcrumbs(props: BreadcrumbsProps) {\n return <MuiBreadcrumbs {...props} />;\n}\n","import MuiLink, { type LinkProps } from \"@mui/material/Link\";\n\nexport type { LinkProps };\n\nexport function Link(props: LinkProps) {\n return <MuiLink {...props} />;\n}\n","import MuiMenu, { type MenuProps } from \"@mui/material/Menu\";\nimport MuiMenuList, { type MenuListProps } from \"@mui/material/MenuList\";\n\nexport type { MenuProps, MenuListProps };\n\nexport function Menu(props: MenuProps) {\n return <MuiMenu {...props} />;\n}\n\nexport function MenuList(props: MenuListProps) {\n return <MuiMenuList {...props} />;\n}\n","import MuiPagination, { type PaginationProps } from \"@mui/material/Pagination\";\n\nexport type { PaginationProps };\n\nexport function Pagination(props: PaginationProps) {\n return <MuiPagination {...props} />;\n}\n","import MuiStepper, { type StepperProps } from \"@mui/material/Stepper\";\nimport MuiStep, { type StepProps } from \"@mui/material/Step\";\nimport MuiStepLabel, { type StepLabelProps } from \"@mui/material/StepLabel\";\n\nexport type { StepperProps, StepProps, StepLabelProps };\n\nexport function Stepper(props: StepperProps) {\n return <MuiStepper {...props} />;\n}\n\nexport function Step(props: StepProps) {\n return <MuiStep {...props} />;\n}\n\nexport function StepLabel(props: StepLabelProps) {\n return <MuiStepLabel {...props} />;\n}\n","import MuiTabs, { type TabsProps } from \"@mui/material/Tabs\";\nimport MuiTab, { type TabProps } from \"@mui/material/Tab\";\n\nexport type { TabsProps, TabProps };\n\nexport function Tabs(props: TabsProps) {\n return <MuiTabs {...props} />;\n}\n\nexport function Tab(props: TabProps) {\n return <MuiTab {...props} />;\n}\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'ChevronLeftOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'ChevronRightOutlined');","import React, { createContext, useContext } from \"react\";\nimport MuiDrawer, { type DrawerProps } from \"@mui/material/Drawer\";\nimport Box from \"@mui/material/Box\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftOutlined from \"@mui/icons-material/ChevronLeftOutlined\";\nimport ChevronRightOutlined from \"@mui/icons-material/ChevronRightOutlined\";\nimport MuiListItemButton, { type ListItemButtonProps } from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport MuiTooltip from \"@mui/material/Tooltip\";\nimport { bg, text, navColors } from \"../../theme/tokens\";\n\nexport interface SidebarContextValue {\n open: boolean;\n collapsedWidth: number;\n expandedWidth: number;\n}\n\nconst SidebarContext = createContext<SidebarContextValue>({\n open: true,\n collapsedWidth: 48,\n expandedWidth: 240,\n});\n\nexport function useSidebar() {\n return useContext(SidebarContext);\n}\n\nexport interface SidebarNavProps\n extends Omit<DrawerProps, \"open\" | \"variant\" | \"onClose\"> {\n /** Whether the sidebar is expanded */\n open: boolean;\n /** Callback when open state changes */\n onOpenChange: (open: boolean) => void;\n /** Width when expanded (default: 240) */\n expandedWidth?: number;\n /** Width when collapsed — icon-only (default: 64) */\n collapsedWidth?: number;\n /** Expand behavior:\n * - \"permanent\": click to toggle, stays open/closed\n * - \"hover\": collapsed by default, expands on mouse enter, collapses on mouse leave\n */\n behavior?: \"permanent\" | \"hover\";\n /** Whether to show the edge toggle button (default: true for \"permanent\", false for \"hover\") */\n showToggle?: boolean;\n /** Content rendered inside the sidebar */\n children: React.ReactNode;\n /** Optional header slot — rendered above children */\n header?: React.ReactNode;\n /** Optional footer slot — rendered at bottom */\n footer?: React.ReactNode;\n}\n\nexport function SidebarNav({\n open,\n onOpenChange,\n expandedWidth = 240,\n collapsedWidth = 48,\n behavior = \"permanent\",\n showToggle,\n children,\n header,\n footer,\n sx,\n ...rest\n}: SidebarNavProps) {\n const isHover = behavior === \"hover\";\n const drawerWidth = open ? expandedWidth : collapsedWidth;\n const layoutWidth = isHover ? collapsedWidth : drawerWidth;\n const shouldShowToggle = showToggle ?? !isHover;\n\n const hoverHandlers = isHover\n ? {\n onMouseEnter: () => onOpenChange(true),\n onMouseLeave: () => onOpenChange(false),\n }\n : {};\n\n return (\n <SidebarContext.Provider value={{ open, collapsedWidth, expandedWidth }}>\n <Box sx={{ position: \"relative\", width: layoutWidth, flexShrink: 0 }}>\n <MuiDrawer\n variant=\"permanent\"\n {...rest}\n {...hoverHandlers}\n sx={{\n width: drawerWidth,\n flexShrink: 0,\n \"& .MuiDrawer-paper\": {\n width: drawerWidth,\n transition: \"width 200ms ease-in-out\",\n overflowX: \"hidden\",\n boxSizing: \"border-box\",\n ...(isHover && { zIndex: (theme: any) => theme.zIndex.drawer + 2 }),\n },\n ...sx,\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n overflow: \"hidden\",\n }}\n >\n {header && <Box sx={{ flexShrink: 0 }}>{header}</Box>}\n <Box sx={{ flexGrow: 1, overflowY: \"auto\", overflowX: \"hidden\" }}>\n {children}\n </Box>\n {footer && <Box sx={{ flexShrink: 0 }}>{footer}</Box>}\n </Box>\n </MuiDrawer>\n\n {shouldShowToggle && (\n <IconButton\n size=\"small\"\n onClick={() => onOpenChange(!open)}\n sx={{\n position: \"absolute\",\n top: \"50%\",\n right: 0,\n transform: \"translate(50%, -50%)\",\n zIndex: (theme) => theme.zIndex.drawer + 1,\n width: 28,\n height: 28,\n border: 1,\n borderColor: \"divider\",\n backgroundColor: \"background.paper\",\n boxShadow: 1,\n \"&:hover\": {\n backgroundColor: \"action.hover\",\n },\n \"& .MuiSvgIcon-root\": {\n fontSize: 18,\n },\n }}\n >\n {open ? <ChevronLeftOutlined /> : <ChevronRightOutlined />}\n </IconButton>\n )}\n </Box>\n </SidebarContext.Provider>\n );\n}\n\n// ---------------------------------------------------------------------------\n// SidebarItem\n// ---------------------------------------------------------------------------\n\nexport interface SidebarItemProps extends Omit<ListItemButtonProps, \"children\"> {\n /** Icon element (required — visible in both expanded and collapsed states) */\n icon: React.ReactNode;\n /** Label text */\n label: string;\n /** Optional content rendered on the right side when expanded (badge, count, etc.) */\n endAdornment?: React.ReactNode;\n}\n\nconst itemSx = {\n borderRadius: 1,\n backgroundColor: bg.primary,\n color: text.secondary,\n \"& .MuiListItemIcon-root\": {\n color: navColors.itemIconFg,\n },\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n \"&.Mui-selected\": {\n backgroundColor: bg.active,\n color: text.primary,\n \"& .MuiListItemIcon-root\": {\n color: navColors.itemIconFgActive,\n },\n \"& .MuiListItemText-primary\": {\n fontWeight: 600,\n },\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n },\n};\n\nexport function SidebarItem({\n icon,\n label,\n endAdornment,\n sx,\n ...rest\n}: SidebarItemProps) {\n const { open } = useSidebar();\n\n if (!open) {\n return (\n <MuiTooltip title={label} placement=\"right\" arrow>\n <MuiListItemButton\n {...rest}\n sx={{\n ...itemSx,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: 40,\n height: 40,\n padding: 0,\n margin: \"0 auto\",\n ...sx,\n }}\n >\n <ListItemIcon sx={{ minWidth: \"unset\", margin: 0, \"& .MuiSvgIcon-root\": { fontSize: 20 } }}>\n {icon}\n </ListItemIcon>\n </MuiListItemButton>\n </MuiTooltip>\n );\n }\n\n return (\n <MuiListItemButton {...rest} sx={{ ...itemSx, height: 40, ...sx }}>\n <ListItemIcon sx={{ \"& .MuiSvgIcon-root\": { fontSize: 20 } }}>{icon}</ListItemIcon>\n <ListItemText primary={label} />\n {endAdornment}\n </MuiListItemButton>\n );\n}\n","import { useTheme } from \"@mui/material/styles\";\n\nexport function useChartColors(count: number): string[] {\n const theme = useTheme();\n const chart = theme.palette.chart;\n\n const colors = chart.series.map((s: { fg: string }) => s.fg);\n\n return colors.slice(0, Math.min(count, colors.length));\n}\n","import React from \"react\";\nimport { Box, Typography } from \"@mui/material\";\nimport { useTheme } from \"@mui/material/styles\";\nimport type { ChartsAxisContentProps } from \"@mui/x-charts/ChartsTooltip\";\n\nfunction formatDate(date: string | number | Date | null): string {\n if (!date) return \"\";\n const d = new Date(date);\n if (isNaN(d.getTime())) return String(date);\n return d.toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n });\n}\n\nfunction renderValue(val: any): React.ReactNode {\n if (val == null) return \"0\";\n if (typeof val === \"object\" && \"y\" in val) {\n return String(val.y);\n }\n return String(val);\n}\n\nexport function CustomTooltip(props: ChartsAxisContentProps) {\n const { series, axisValue, dataIndex } = props;\n const theme = useTheme();\n\n if (dataIndex == null) {\n return null;\n }\n\n return (\n <Box\n sx={{\n backgroundColor: theme.palette.common.white,\n borderRadius: \"12px\",\n boxShadow: \"0px 12px 24px -4px #1018281a, 0px 4px 8px -2px #1018280f\", // Very high elevation shadow per reference\n padding: \"16px\",\n minWidth: \"200px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"12px\",\n borderTop: `1px solid ${theme.palette.divider}`,\n borderRight: `1px solid ${theme.palette.divider}`,\n borderBottom: `1px solid ${theme.palette.divider}`,\n borderLeft: `4px solid ${theme.palette.chart.series[0].fg}`,\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: 600,\n color: theme.palette.text.primary,\n marginBottom: \"4px\",\n }}\n >\n {formatDate(axisValue)}\n </Typography>\n\n {series.map((s) => {\n // Find the color and the value\n const color = typeof s.getColor === \"function\" ? s.getColor(dataIndex) : s.color;\n // The values are in s.data\n const value = s.data ? s.data[dataIndex] : null;\n if (value == null) return null;\n\n return (\n <Box key={s.id} sx={{ display: \"flex\", flexDirection: \"column\", gap: \"6px\" }}>\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <Box\n sx={{\n width: 16,\n height: 16,\n borderRadius: \"4px\",\n backgroundColor: color,\n flexShrink: 0,\n }}\n />\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.text.secondary,\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n }}\n >\n <Box\n component=\"span\"\n sx={{\n backgroundColor: theme.palette.grey[50] || \"#f9fafb\",\n padding: \"2px 6px\",\n borderRadius: \"4px\",\n fontWeight: 500,\n color: theme.palette.text.primary,\n border: `1px solid ${theme.palette.divider}`,\n }}\n >\n {renderValue(value)}\n </Box>{\" \"}\n events\n </Typography>\n </Box>\n </Box>\n );\n })}\n </Box>\n );\n}\n","import {\n LineChart as MuiLineChart,\n type LineChartProps as MuiLineChartProps,\n} from \"@mui/x-charts/LineChart\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { fontSize, lineHeight } from \"../../theme/tokens\";\nimport { useChartColors } from \"./useChartColors\";\n\nimport { CustomTooltip } from \"./CustomTooltip\";\n\nexport interface LineChartProps extends Omit<MuiLineChartProps, \"series\"> {\n series?: MuiLineChartProps[\"series\"];\n}\n\nexport function LineChart({ series, colors, ...props }: LineChartProps) {\n const theme = useTheme();\n const chart = theme.palette.chart;\n const seriesColors = useChartColors(series?.length ?? 0);\n\n // Set line curve and stroke width smoothly\n const modifiedSeries = series?.map((s) => ({\n ...s,\n curve: s.curve ?? \"linear\",\n highlightScope: s.highlightScope ?? { highlighted: \"item\", faded: \"global\" },\n }));\n\n return (\n <MuiLineChart\n series={modifiedSeries ?? []}\n colors={colors ?? seriesColors}\n grid={{ horizontal: true }}\n slots={{\n axisContent: CustomTooltip,\n }}\n slotProps={{\n legend: {\n itemMarkWidth: 12,\n itemMarkHeight: 12,\n padding: { bottom: 20 },\n },\n }}\n sx={{\n \"& .MuiChartsAxis-line\": { stroke: `${chart.axisFg} !important` },\n \"& .MuiChartsAxis-tick\": { stroke: `${chart.axisFg} !important` },\n \"& .MuiChartsAxis-tickLabel\": {\n fill: `${chart.labelFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: `${fontSize.xxs}px !important`,\n lineHeight: lineHeight.xxs,\n },\n \"& .MuiChartsAxis-label\": {\n fill: `${chart.labelFgEmphasis} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: `${typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14}px !important`,\n fontWeight: theme.typography.fontWeightMedium,\n },\n \"& .MuiChartsGrid-line\": {\n stroke: chart.gridlineFg,\n strokeDasharray: \"4 4\",\n },\n \"& .MuiChartsLegend-series text\": {\n fill: `${chart.legendFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: \"14px !important\",\n },\n \"& .MuiChartsLegend-mark\": {\n ry: 4,\n rx: 4,\n width: 12,\n height: 12,\n },\n \"& .MuiChartsTooltip-root\": {\n fontFamily: theme.typography.fontFamily,\n fontSize: typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14,\n },\n \"& .MuiChartsTooltip-table\": {\n backgroundColor: chart.tooltipBg,\n color: chart.tooltipFg,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n },\n \"& .MuiLineElement-root\": {\n strokeWidth: 3,\n },\n \"& .MuiMarkElement-root\": {\n display: \"none\",\n },\n ...((props.sx as object) ?? {}),\n }}\n {...props}\n />\n );\n}\n","import {\n BarChart as MuiBarChart,\n type BarChartProps as MuiBarChartProps,\n} from \"@mui/x-charts/BarChart\";\nimport { type MakeOptional } from \"@mui/x-charts/models/helpers\";\nimport { type BarSeriesType } from \"@mui/x-charts/models/seriesType/bar\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { fontSize, lineHeight } from \"../../theme/tokens\";\nimport { useChartColors } from \"./useChartColors\";\n\nimport { CustomTooltip } from \"./CustomTooltip\";\n\nexport type ForestBarSeriesType = MakeOptional<BarSeriesType, \"type\"> & {\n /** Enables diagonal striped fill for comparative data representation */\n variant?: \"solid\" | \"striped\";\n};\n\nexport interface BarChartProps extends Omit<MuiBarChartProps, \"series\"> {\n series?: ForestBarSeriesType[];\n}\n\nexport function BarChart({ series, colors, ...props }: BarChartProps) {\n const theme = useTheme();\n const chart = theme.palette.chart;\n const seriesColors = useChartColors(series?.length ?? 0);\n const resolvedColors = colors ?? seriesColors;\n\n // Set default highlight scope for cool hover fading effects, and mount Stripe styling \n const modifiedSeries = series?.map((s, idx): MakeOptional<BarSeriesType, \"type\"> => {\n const baseColor = s.color || (resolvedColors as string[])[idx % (resolvedColors as string[]).length];\n const actualColor = s.variant === \"striped\" ? `url(#striped-pattern-${idx})` : baseColor;\n\n const { variant, ...rest } = s;\n\n return {\n ...rest,\n color: actualColor,\n highlightScope: s.highlightScope ?? { highlighted: \"item\", faded: \"global\" },\n };\n });\n\n return (\n <MuiBarChart\n series={modifiedSeries ?? []}\n colors={colors ?? seriesColors}\n grid={{ horizontal: true }}\n borderRadius={4}\n slots={{\n axisContent: CustomTooltip,\n }}\n slotProps={{\n legend: {\n itemMarkWidth: 12,\n itemMarkHeight: 12,\n padding: { bottom: 20 },\n },\n }}\n sx={{\n \"& .MuiChartsAxis-line\": { stroke: `${chart.axisFg} !important` },\n \"& .MuiChartsAxis-tick\": { stroke: `${chart.axisFg} !important` },\n \"& .MuiChartsAxis-tickLabel\": {\n fill: `${chart.labelFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: `${fontSize.xxs}px !important`,\n lineHeight: lineHeight.xxs,\n },\n \"& .MuiChartsAxis-label\": {\n fill: `${chart.labelFgEmphasis} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: `${typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14}px !important`,\n fontWeight: theme.typography.fontWeightMedium,\n },\n \"& .MuiChartsGrid-line\": {\n stroke: chart.gridlineFg,\n strokeDasharray: \"4 4\",\n },\n \"& .MuiChartsLegend-series text\": {\n fill: `${chart.legendFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: \"14px !important\",\n },\n \"& .MuiChartsLegend-mark\": {\n ry: 4,\n rx: 4,\n width: 12,\n height: 12,\n },\n \"& .MuiChartsTooltip-root\": {\n fontFamily: theme.typography.fontFamily,\n fontSize: typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14,\n },\n \"& .MuiChartsTooltip-table\": {\n backgroundColor: chart.tooltipBg,\n color: chart.tooltipFg,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n },\n ...((props.sx as object) ?? {}),\n }}\n {...props}\n >\n <defs>\n {series?.map((s, idx) => {\n if (s.variant !== \"striped\") return null;\n\n const baseColor = s.color || (resolvedColors as string[])[idx % (resolvedColors as string[]).length];\n return (\n <pattern\n key={`striped-${idx}`}\n id={`striped-pattern-${idx}`}\n patternUnits=\"userSpaceOnUse\"\n width=\"8\"\n height=\"8\"\n patternTransform=\"rotate(45)\"\n >\n <rect width=\"8\" height=\"8\" fill={theme.palette.background.paper} />\n <line x1=\"0\" y=\"0\" x2=\"0\" y2=\"8\" stroke={baseColor} strokeWidth=\"4\" />\n </pattern>\n );\n })}\n </defs>\n </MuiBarChart>\n );\n}\n","import {\n PieChart as MuiPieChart,\n type PieChartProps as MuiPieChartProps,\n} from \"@mui/x-charts/PieChart\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useChartColors } from \"./useChartColors\";\n\nexport interface PieChartProps extends Omit<MuiPieChartProps, \"series\"> {\n series?: MuiPieChartProps[\"series\"];\n}\n\nexport function PieChart({ series, colors, ...props }: PieChartProps) {\n const theme = useTheme();\n const chart = theme.palette.chart;\n const sliceCount = series?.[0]?.data?.length ?? 0;\n const seriesColors = useChartColors(sliceCount);\n\n // Set default highlight scope for cool hover fading effects\n const modifiedSeries = series?.map((s) => ({\n ...s,\n highlightScope: s.highlightScope ?? { highlighted: \"item\", faded: \"global\" },\n }));\n\n return (\n <MuiPieChart\n series={modifiedSeries ?? []}\n colors={colors ?? seriesColors}\n slotProps={{\n legend: {\n itemMarkWidth: 12,\n itemMarkHeight: 12,\n padding: { bottom: 20 },\n },\n }}\n sx={{\n \"& .MuiChartsLegend-series text\": {\n fill: `${chart.legendFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: \"14px !important\",\n },\n \"& .MuiChartsLegend-mark\": {\n ry: 4,\n rx: 4,\n width: 12,\n height: 12,\n },\n \"& .MuiChartsTooltip-root\": {\n fontFamily: theme.typography.fontFamily,\n fontSize: typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14,\n },\n \"& .MuiChartsTooltip-table\": {\n backgroundColor: chart.tooltipBg,\n color: chart.tooltipFg,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n },\n ...((props.sx as object) ?? {}),\n }}\n {...props}\n />\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/provider/ForestProvider.tsx","../src/components/Autocomplete/index.tsx","../src/components/Button/index.tsx","../src/components/ButtonGroup/index.tsx","../src/components/Checkbox/index.tsx","../src/components/Fab/index.tsx","../src/components/RadioGroup/index.tsx","../src/components/Select/index.tsx","../src/components/MultiSelect/index.tsx","../src/components/Switch/index.tsx","../src/components/TextField/index.tsx","../../../node_modules/@mui/icons-material/esm/Search.js","../../../node_modules/@mui/icons-material/esm/Clear.js","../src/components/Search/index.tsx","../src/components/Logo/index.tsx","../src/components/ToggleButton/index.tsx","../src/components/DatePicker/index.tsx","../src/components/Badge/index.tsx","../../../node_modules/@mui/icons-material/esm/CloseOutlined.js","../src/components/Chip/index.tsx","../src/components/Divider/index.tsx","../src/components/List/index.tsx","../src/components/Table/index.tsx","../src/components/DataGrid/index.tsx","../src/components/Tooltip/index.tsx","../src/components/Typography/index.tsx","../src/components/Accordion/index.tsx","../src/components/AppBar/index.tsx","../src/components/Card/index.tsx","../src/components/Paper/index.tsx","../src/components/Alert/index.tsx","../src/components/Backdrop/index.tsx","../src/components/Dialog/index.tsx","../src/components/Progress/index.tsx","../src/components/Skeleton/index.tsx","../src/components/Modal/index.tsx","../src/components/Popover/index.tsx","../src/components/Snackbar/index.tsx","../src/components/Breadcrumbs/index.tsx","../src/components/Link/index.tsx","../src/components/Menu/index.tsx","../src/components/Pagination/index.tsx","../src/components/Stepper/index.tsx","../src/components/Tabs/index.tsx","../../../node_modules/@mui/icons-material/esm/ChevronLeftOutlined.js","../../../node_modules/@mui/icons-material/esm/ChevronRightOutlined.js","../src/components/Sidebar/index.tsx","../src/components/Charts/useChartColors.ts","../src/components/Charts/CustomTooltip.tsx","../src/components/Charts/LineChart.tsx","../src/components/Charts/BarChart.tsx","../src/components/Charts/PieChart.tsx"],"names":["jsx","renderValue","jsxs","MuiSelect","MuiButton","MuiMenuItem","MuiCheckbox","_jsx","MuiTextField","MuiDatePicker","MuiListItemButton","MuiListItemIcon","MuiListItemText","MuiDataGrid","React","Alert","Box","IconButton","MuiTooltip","ListItemIcon","ListItemText","colors","useTheme","Typography","_a","_b","MuiLineChart","MuiBarChart","MuiPieChart"],"mappings":"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","file":"index.mjs","sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport { ThemeProvider, type Theme } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport { forestTheme } from \"../theme\";\nimport { getPreset } from \"../theme/presets\";\nimport { buildTheme } from \"../theme/buildTheme\";\n\nexport interface ForestProviderProps {\n children: React.ReactNode;\n theme?: Theme;\n preset?: string;\n variant?: string;\n disableCssBaseline?: boolean;\n}\n\nexport function ForestProvider({\n children,\n theme,\n preset,\n variant,\n disableCssBaseline = false,\n}: ForestProviderProps) {\n const resolvedTheme = useMemo(() => {\n // Explicit theme prop takes highest priority\n if (theme) return theme;\n\n // If no preset specified, use the default forest theme\n if (!preset) return forestTheme;\n\n // Resolve preset + variant\n const presetConfig = getPreset(preset);\n if (!presetConfig) {\n throw new Error(\n `[ForestProvider] Unknown preset \"${preset}\". ` +\n `Available presets: use getAvailablePresets() to see registered presets.`\n );\n }\n\n const variantName = variant ?? presetConfig.defaultVariant;\n const variantConfig = presetConfig.variants[variantName];\n if (!variantConfig) {\n throw new Error(\n `[ForestProvider] Unknown variant \"${variantName}\" for preset \"${preset}\". ` +\n `Available variants: ${Object.keys(presetConfig.variants).join(\", \")}.`\n );\n }\n\n return buildTheme(variantConfig.tokens);\n }, [theme, preset, variant]);\n\n return (\n <ThemeProvider theme={resolvedTheme}>\n {!disableCssBaseline && <CssBaseline />}\n {children}\n </ThemeProvider>\n );\n}\n","import MuiAutocomplete, {\n type AutocompleteProps,\n} from \"@mui/material/Autocomplete\";\n\nexport type { AutocompleteProps };\n\nexport function Autocomplete<\n Value,\n Multiple extends boolean | undefined = false,\n DisableClearable extends boolean | undefined = false,\n FreeSolo extends boolean | undefined = false,\n>(\n props: AutocompleteProps<Value, Multiple, DisableClearable, FreeSolo>,\n) {\n return <MuiAutocomplete {...props} />;\n}\n","import MuiButton, { type ButtonProps as MuiButtonProps } from \"@mui/material/Button\";\n\nexport type ButtonProps = Omit<MuiButtonProps, \"size\">;\n\nexport function Button({ ...props }: ButtonProps) {\n return <MuiButton variant=\"contained\" {...props} />;\n}\n","import MuiButtonGroup, { type ButtonGroupProps } from \"@mui/material/ButtonGroup\";\n\nexport type { ButtonGroupProps };\n\nexport function ButtonGroup(props: ButtonGroupProps) {\n return <MuiButtonGroup variant=\"contained\" {...props} />;\n}\n","import MuiCheckbox, { type CheckboxProps } from \"@mui/material/Checkbox\";\n\nexport type { CheckboxProps };\n\nexport function Checkbox(props: CheckboxProps) {\n return <MuiCheckbox {...props} />;\n}\n","import MuiFab, { type FabProps } from \"@mui/material/Fab\";\n\nexport type { FabProps };\n\nexport function Fab(props: FabProps) {\n return <MuiFab color=\"primary\" {...props} />;\n}\n","import MuiRadioGroup, { type RadioGroupProps } from \"@mui/material/RadioGroup\";\nimport MuiRadio, { type RadioProps } from \"@mui/material/Radio\";\n\nexport type { RadioGroupProps, RadioProps };\n\nexport function RadioGroup(props: RadioGroupProps) {\n return <MuiRadioGroup {...props} />;\n}\n\nexport function Radio(props: RadioProps) {\n return <MuiRadio {...props} />;\n}\n","import MuiSelect, { type SelectProps } from \"@mui/material/Select\";\nimport MuiMenuItem, { type MenuItemProps } from \"@mui/material/MenuItem\";\n\nexport type { SelectProps, MenuItemProps };\n\nexport function Select<Value = unknown>(props: SelectProps<Value>) {\n return <MuiSelect {...props} />;\n}\n\nexport function MenuItem(props: MenuItemProps) {\n return <MuiMenuItem {...props} />;\n}\n","import MuiSelect, { type SelectProps } from \"@mui/material/Select\";\nimport MuiMenuItem from \"@mui/material/MenuItem\";\nimport MuiCheckbox from \"@mui/material/Checkbox\";\nimport MuiListItemText from \"@mui/material/ListItemText\";\nimport MuiFormControl from \"@mui/material/FormControl\";\nimport MuiInputLabel from \"@mui/material/InputLabel\";\nimport MuiButton from \"@mui/material/Button\";\nimport { type SelectChangeEvent } from \"@mui/material/Select\";\n\nexport interface MultiSelectOption {\n label: string;\n value: string;\n}\n\nexport interface MultiSelectProps\n extends Omit<SelectProps<string[]>, \"multiple\" | \"value\" | \"onChange\" | \"renderValue\"> {\n options: MultiSelectOption[];\n value: string[];\n onChange: (values: string[]) => void;\n selectAll?: boolean;\n selectAllLabel?: string;\n}\n\nexport function MultiSelect({\n options,\n value,\n onChange,\n selectAll = true,\n selectAllLabel = \"Select All\",\n label,\n ...rest\n}: MultiSelectProps) {\n const allSelected = options.length > 0 && value.length === options.length;\n\n const handleChange = (event: SelectChangeEvent<string[]>) => {\n const selected = event.target.value;\n const arr = typeof selected === \"string\" ? selected.split(\",\") : selected;\n onChange(arr);\n };\n\n const handleSelectAll = () => {\n onChange(allSelected ? [] : options.map((o) => o.value));\n };\n\n const labelMap = new Map(options.map((o) => [o.value, o.label]));\n\n const renderValue = (selected: string[]) =>\n selected.map((v) => labelMap.get(v) ?? v).join(\", \");\n\n const labelId = label\n ? `forest-multiselect-${String(label).replace(/\\s+/g, \"-\").toLowerCase()}`\n : undefined;\n\n return (\n <MuiFormControl fullWidth>\n {label && (\n <MuiInputLabel id={labelId} shrink={value.length > 0}>\n {label}\n </MuiInputLabel>\n )}\n <MuiSelect<string[]>\n labelId={labelId}\n label={label}\n multiple\n notched={value.length > 0}\n value={value}\n onChange={handleChange}\n displayEmpty\n renderValue={renderValue}\n {...rest}\n >\n {selectAll && (\n <li\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => {\n e.stopPropagation();\n handleSelectAll();\n }}\n >\n <MuiButton size=\"small\" variant=\"text\">\n {allSelected ? \"Deselect All\" : selectAllLabel}\n </MuiButton>\n </li>\n )}\n {options.map((option) => (\n <MuiMenuItem key={option.value} value={option.value}>\n <MuiCheckbox checked={value.includes(option.value)} />\n <MuiListItemText primary={option.label} />\n </MuiMenuItem>\n ))}\n </MuiSelect>\n </MuiFormControl>\n );\n}\n","import MuiSwitch, { type SwitchProps } from \"@mui/material/Switch\";\n\nexport type { SwitchProps };\n\nexport function Switch(props: SwitchProps) {\n return <MuiSwitch {...props} />;\n}\n","import MuiTextField, { type TextFieldProps } from \"@mui/material/TextField\";\n\nexport type { TextFieldProps };\n\nexport function TextField(props: TextFieldProps) {\n return <MuiTextField {...props} />;\n}\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\"\n}), 'Search');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');","import React, { useState, useCallback } from \"react\";\nimport MuiTextField, { type TextFieldProps } from \"@mui/material/TextField\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport IconButton from \"@mui/material/IconButton\";\nimport SearchIcon from \"@mui/icons-material/Search\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\n\nexport type SearchProps = Omit<TextFieldProps, \"variant\"> & {\n onClear?: () => void;\n};\n\nexport function Search({\n value: controlledValue,\n onChange,\n onClear,\n placeholder = \"Search…\",\n slotProps,\n ...props\n}: SearchProps) {\n const [internalValue, setInternalValue] = useState(\"\");\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = useCallback(\n (e) => {\n if (!isControlled) setInternalValue(e.target.value);\n onChange?.(e);\n },\n [isControlled, onChange]\n );\n\n const handleClear = useCallback(() => {\n if (!isControlled) setInternalValue(\"\");\n onClear?.();\n }, [isControlled, onClear]);\n\n return (\n <MuiTextField\n variant=\"outlined\"\n placeholder={placeholder}\n value={currentValue}\n onChange={handleChange}\n slotProps={{\n ...slotProps,\n input: {\n sx: { pl: \"12px\", gap: 0 },\n startAdornment: (\n <InputAdornment position=\"start\" sx={{ mr: 0 }}>\n <SearchIcon sx={{ fontSize: 20 }} />\n </InputAdornment>\n ),\n endAdornment: currentValue ? (\n <InputAdornment position=\"end\">\n <IconButton\n aria-label=\"clear search\"\n onClick={handleClear}\n edge=\"end\"\n size=\"small\"\n >\n <ClearIcon fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ) : null,\n ...(typeof slotProps?.input === \"object\" ? slotProps.input : {}),\n },\n }}\n {...props}\n />\n );\n}\n","import { Box, type BoxProps } from '@mui/material';\nimport { forwardRef } from 'react';\n\nexport interface LogoProps extends BoxProps {\n /** Product variant */\n variant?: 'agency' | 'external' | 'internal';\n /** Logo size */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n /** Whether to show the logomark only (no text) */\n logomarkOnly?: boolean;\n}\n\nconst sizeMap = {\n sm: 24,\n md: 32,\n lg: 48,\n xl: 64,\n};\n\nconst variantColors = {\n agency: '#1a1a1a',\n external: '#1a1a1a',\n internal: '#1a1a1a',\n};\n\n/**\n * Logo component for Forest product suite\n *\n * Displays Forest logo with support for different product variants and sizes.\n */\nexport const Logo = forwardRef<HTMLDivElement, LogoProps>(\n ({ variant = 'agency', size = 'md', logomarkOnly = false, sx, ...props }, ref) => {\n const dimension = sizeMap[size];\n\n return (\n <Box\n ref={ref}\n component=\"svg\"\n viewBox=\"0 0 64 64\"\n sx={{\n width: dimension,\n height: dimension,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n ...sx,\n }}\n {...props}\n >\n {/* Forest logomark - stylized tree/forest icon */}\n <path\n d=\"M32 4L8 28h12v28h8V28h12L32 4z\"\n fill={variantColors[variant]}\n />\n {!logomarkOnly && (\n <text\n x=\"32\"\n y=\"60\"\n textAnchor=\"middle\"\n fontSize=\"10\"\n fontWeight=\"600\"\n fill={variantColors[variant]}\n fontFamily=\"Aeonik, sans-serif\"\n >\n Forest\n </text>\n )}\n </Box>\n );\n }\n);\n\nLogo.displayName = 'Logo';\n","import MuiToggleButton, { type ToggleButtonProps } from \"@mui/material/ToggleButton\";\nimport MuiToggleButtonGroup, { type ToggleButtonGroupProps } from \"@mui/material/ToggleButtonGroup\";\n\nexport type { ToggleButtonProps, ToggleButtonGroupProps };\n\nexport function ToggleButton(props: ToggleButtonProps) {\n return <MuiToggleButton {...props} />;\n}\n\nexport function ToggleButtonGroup(props: ToggleButtonGroupProps) {\n return <MuiToggleButtonGroup {...props} />;\n}\n","import { DatePicker as MuiDatePicker, type DatePickerProps as MuiDatePickerProps } from \"@mui/x-date-pickers/DatePicker\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { AdapterDayjs } from \"@mui/x-date-pickers/AdapterDayjs\";\n\nexport type DatePickerProps = MuiDatePickerProps;\n\nexport function DatePicker(props: DatePickerProps) {\n return (\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <MuiDatePicker {...props} />\n </LocalizationProvider>\n );\n}\n","import MuiBadge, { type BadgeProps } from \"@mui/material/Badge\";\n\nexport type { BadgeProps };\n\nexport function Badge(props: BadgeProps) {\n return <MuiBadge {...props} />;\n}\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'CloseOutlined');","import MuiChip, { type ChipProps } from \"@mui/material/Chip\";\nimport CloseIcon from \"@mui/icons-material/CloseOutlined\";\n\nexport type { ChipProps };\n\nexport function Chip(props: ChipProps) {\n return (\n <MuiChip\n deleteIcon={<CloseIcon />}\n {...props}\n />\n );\n}\n","import MuiDivider, { type DividerProps } from \"@mui/material/Divider\";\n\nexport type { DividerProps };\n\nexport function Divider(props: DividerProps) {\n return <MuiDivider {...props} />;\n}\n","import MuiList, { type ListProps } from \"@mui/material/List\";\nimport MuiListItem, { type ListItemProps } from \"@mui/material/ListItem\";\nimport MuiListItemButton, { type ListItemButtonProps } from \"@mui/material/ListItemButton\";\nimport MuiListItemIcon, { type ListItemIconProps } from \"@mui/material/ListItemIcon\";\nimport MuiListItemText, { type ListItemTextProps } from \"@mui/material/ListItemText\";\nimport MuiListItemAvatar, { type ListItemAvatarProps } from \"@mui/material/ListItemAvatar\";\nimport MuiListSubheader, { type ListSubheaderProps } from \"@mui/material/ListSubheader\";\n\nexport type {\n ListProps,\n ListItemProps,\n ListItemButtonProps,\n ListItemIconProps,\n ListItemTextProps,\n ListItemAvatarProps,\n ListSubheaderProps,\n};\n\nexport function List(props: ListProps) {\n return <MuiList {...props} />;\n}\n\nexport function ListItem(props: ListItemProps) {\n return <MuiListItem {...props} />;\n}\n\nexport function ListItemButton(props: ListItemButtonProps) {\n return <MuiListItemButton {...props} />;\n}\n\nexport function ListItemIcon(props: ListItemIconProps) {\n return <MuiListItemIcon {...props} />;\n}\n\nexport function ListItemText(props: ListItemTextProps) {\n return <MuiListItemText {...props} />;\n}\n\nexport function ListItemAvatar(props: ListItemAvatarProps) {\n return <MuiListItemAvatar {...props} />;\n}\n\nexport function ListSubheader(props: ListSubheaderProps) {\n return <MuiListSubheader {...props} />;\n}\n","import MuiTable, { type TableProps } from \"@mui/material/Table\";\nimport MuiTableBody, { type TableBodyProps } from \"@mui/material/TableBody\";\nimport MuiTableCell, { type TableCellProps } from \"@mui/material/TableCell\";\nimport MuiTableContainer, { type TableContainerProps } from \"@mui/material/TableContainer\";\nimport MuiTableHead, { type TableHeadProps } from \"@mui/material/TableHead\";\nimport MuiTableRow, { type TableRowProps } from \"@mui/material/TableRow\";\n\nexport type {\n TableProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableHeadProps,\n TableRowProps,\n};\n\nexport function Table(props: TableProps) {\n return <MuiTable {...props} />;\n}\n\nexport function TableBody(props: TableBodyProps) {\n return <MuiTableBody {...props} />;\n}\n\nexport function TableCell(props: TableCellProps) {\n return <MuiTableCell {...props} />;\n}\n\nexport function TableContainer(props: TableContainerProps) {\n return <MuiTableContainer {...props} />;\n}\n\nexport function TableHead(props: TableHeadProps) {\n return <MuiTableHead {...props} />;\n}\n\nexport function TableRow(props: TableRowProps) {\n return <MuiTableRow {...props} />;\n}\n","import { DataGrid as MuiDataGrid, type DataGridProps } from \"@mui/x-data-grid\";\n\nexport type { DataGridProps };\nexport type {\n GridColDef,\n GridRowsProp,\n GridRowParams,\n GridCellParams,\n GridSortModel,\n GridFilterModel,\n GridPaginationModel,\n} from \"@mui/x-data-grid\";\n\nexport function DataGrid(props: DataGridProps) {\n return <MuiDataGrid {...props} />;\n}\n","import MuiTooltip, { type TooltipProps } from \"@mui/material/Tooltip\";\n\nexport type { TooltipProps };\n\nexport function Tooltip(props: TooltipProps) {\n return <MuiTooltip arrow {...props} />;\n}\n","import MuiTypography, { type TypographyProps } from \"@mui/material/Typography\";\n\nexport type { TypographyProps };\n\nexport function Typography(props: TypographyProps) {\n return <MuiTypography {...props} />;\n}\n","import MuiAccordion, { type AccordionProps } from \"@mui/material/Accordion\";\nimport MuiAccordionSummary, { type AccordionSummaryProps } from \"@mui/material/AccordionSummary\";\nimport MuiAccordionDetails, { type AccordionDetailsProps } from \"@mui/material/AccordionDetails\";\nimport MuiAccordionActions, { type AccordionActionsProps } from \"@mui/material/AccordionActions\";\n\nexport type {\n AccordionProps,\n AccordionSummaryProps,\n AccordionDetailsProps,\n AccordionActionsProps,\n};\n\nexport function Accordion(props: AccordionProps) {\n return <MuiAccordion {...props} />;\n}\n\nexport function AccordionSummary(props: AccordionSummaryProps) {\n return <MuiAccordionSummary {...props} />;\n}\n\nexport function AccordionDetails(props: AccordionDetailsProps) {\n return <MuiAccordionDetails {...props} />;\n}\n\nexport function AccordionActions(props: AccordionActionsProps) {\n return <MuiAccordionActions {...props} />;\n}\n","import MuiAppBar, { type AppBarProps } from \"@mui/material/AppBar\";\nimport MuiToolbar, { type ToolbarProps } from \"@mui/material/Toolbar\";\n\nexport type { AppBarProps, ToolbarProps };\n\nexport function AppBar(props: AppBarProps) {\n return <MuiAppBar {...props} />;\n}\n\nexport function Toolbar(props: ToolbarProps) {\n return <MuiToolbar {...props} />;\n}\n","import MuiCard, { type CardProps } from \"@mui/material/Card\";\nimport MuiCardContent, { type CardContentProps } from \"@mui/material/CardContent\";\nimport MuiCardHeader, { type CardHeaderProps } from \"@mui/material/CardHeader\";\nimport MuiCardActions, { type CardActionsProps } from \"@mui/material/CardActions\";\nimport MuiCardMedia, { type CardMediaProps } from \"@mui/material/CardMedia\";\n\nexport type {\n CardProps,\n CardContentProps,\n CardHeaderProps,\n CardActionsProps,\n CardMediaProps,\n};\n\nexport function Card(props: CardProps) {\n return <MuiCard {...props} />;\n}\n\nexport function CardContent(props: CardContentProps) {\n return <MuiCardContent {...props} />;\n}\n\nexport function CardHeader(props: CardHeaderProps) {\n return <MuiCardHeader {...props} />;\n}\n\nexport function CardActions(props: CardActionsProps) {\n return <MuiCardActions {...props} />;\n}\n\nexport function CardMedia(props: CardMediaProps) {\n return <MuiCardMedia {...props} />;\n}\n","import MuiPaper, { type PaperProps } from \"@mui/material/Paper\";\n\nexport type { PaperProps };\n\nexport function Paper(props: PaperProps) {\n return <MuiPaper {...props} />;\n}\n","import React from \"react\";\nimport MuiAlert, { type AlertProps } from \"@mui/material/Alert\";\nimport MuiAlertTitle, { type AlertTitleProps } from \"@mui/material/AlertTitle\";\n\nexport type { AlertProps, AlertTitleProps };\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(props, ref) {\n return <MuiAlert ref={ref} {...props} />;\n});\n\nexport function AlertTitle(props: AlertTitleProps) {\n return <MuiAlertTitle {...props} />;\n}\n","import MuiBackdrop, { type BackdropProps } from \"@mui/material/Backdrop\";\n\nexport type { BackdropProps };\n\nexport function Backdrop(props: BackdropProps) {\n return <MuiBackdrop {...props} />;\n}\n","import MuiDialog, { type DialogProps } from \"@mui/material/Dialog\";\nimport MuiDialogTitle, { type DialogTitleProps } from \"@mui/material/DialogTitle\";\nimport MuiDialogContent, { type DialogContentProps } from \"@mui/material/DialogContent\";\nimport MuiDialogActions, { type DialogActionsProps } from \"@mui/material/DialogActions\";\nimport MuiDialogContentText, { type DialogContentTextProps } from \"@mui/material/DialogContentText\";\n\nexport type {\n DialogProps,\n DialogTitleProps,\n DialogContentProps,\n DialogActionsProps,\n DialogContentTextProps,\n};\n\nexport function Dialog(props: DialogProps) {\n return <MuiDialog {...props} />;\n}\n\nexport function DialogTitle(props: DialogTitleProps) {\n return <MuiDialogTitle {...props} />;\n}\n\nexport function DialogContent(props: DialogContentProps) {\n return <MuiDialogContent {...props} />;\n}\n\nexport function DialogActions(props: DialogActionsProps) {\n return <MuiDialogActions {...props} />;\n}\n\nexport function DialogContentText(props: DialogContentTextProps) {\n return <MuiDialogContentText {...props} />;\n}\n","import MuiLinearProgress, { type LinearProgressProps } from \"@mui/material/LinearProgress\";\nimport MuiCircularProgress, { type CircularProgressProps } from \"@mui/material/CircularProgress\";\n\nexport type { LinearProgressProps, CircularProgressProps };\n\nexport function LinearProgress(props: LinearProgressProps) {\n return <MuiLinearProgress {...props} />;\n}\n\nexport function CircularProgress(props: CircularProgressProps) {\n return <MuiCircularProgress {...props} />;\n}\n","import MuiSkeleton, { type SkeletonProps } from \"@mui/material/Skeleton\";\n\nexport type { SkeletonProps };\n\nexport function Skeleton(props: SkeletonProps) {\n return <MuiSkeleton {...props} />;\n}\n","import MuiModal, { type ModalProps } from \"@mui/material/Modal\";\n\nexport type { ModalProps };\n\nexport function Modal(props: ModalProps) {\n return <MuiModal {...props} />;\n}\n","import MuiPopover, { type PopoverProps } from \"@mui/material/Popover\";\n\nexport type { PopoverProps };\n\nexport function Popover(props: PopoverProps) {\n return <MuiPopover {...props} />;\n}\n","import MuiSnackbar, { type SnackbarProps } from \"@mui/material/Snackbar\";\n\nexport type { SnackbarProps };\n\nexport function Snackbar(props: SnackbarProps) {\n return <MuiSnackbar {...props} />;\n}\n","import MuiBreadcrumbs, { type BreadcrumbsProps } from \"@mui/material/Breadcrumbs\";\n\nexport type { BreadcrumbsProps };\n\nexport function Breadcrumbs(props: BreadcrumbsProps) {\n return <MuiBreadcrumbs {...props} />;\n}\n","import MuiLink, { type LinkProps } from \"@mui/material/Link\";\n\nexport type { LinkProps };\n\nexport function Link(props: LinkProps) {\n return <MuiLink {...props} />;\n}\n","import MuiMenu, { type MenuProps } from \"@mui/material/Menu\";\nimport MuiMenuList, { type MenuListProps } from \"@mui/material/MenuList\";\n\nexport type { MenuProps, MenuListProps };\n\nexport function Menu(props: MenuProps) {\n return <MuiMenu {...props} />;\n}\n\nexport function MenuList(props: MenuListProps) {\n return <MuiMenuList {...props} />;\n}\n","import MuiPagination, { type PaginationProps } from \"@mui/material/Pagination\";\n\nexport type { PaginationProps };\n\nexport function Pagination(props: PaginationProps) {\n return <MuiPagination {...props} />;\n}\n","import MuiStepper, { type StepperProps } from \"@mui/material/Stepper\";\nimport MuiStep, { type StepProps } from \"@mui/material/Step\";\nimport MuiStepLabel, { type StepLabelProps } from \"@mui/material/StepLabel\";\n\nexport type { StepperProps, StepProps, StepLabelProps };\n\nexport function Stepper(props: StepperProps) {\n return <MuiStepper {...props} />;\n}\n\nexport function Step(props: StepProps) {\n return <MuiStep {...props} />;\n}\n\nexport function StepLabel(props: StepLabelProps) {\n return <MuiStepLabel {...props} />;\n}\n","import MuiTabs, { type TabsProps } from \"@mui/material/Tabs\";\nimport MuiTab, { type TabProps } from \"@mui/material/Tab\";\n\nexport type { TabsProps, TabProps };\n\nexport function Tabs(props: TabsProps) {\n return <MuiTabs {...props} />;\n}\n\nexport function Tab(props: TabProps) {\n return <MuiTab {...props} />;\n}\n","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z\"\n}), 'ChevronLeftOutlined');","\"use client\";\n\nimport createSvgIcon from \"./utils/createSvgIcon.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'ChevronRightOutlined');","import React, { createContext, useContext } from \"react\";\nimport MuiDrawer, { type DrawerProps } from \"@mui/material/Drawer\";\nimport Box from \"@mui/material/Box\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftOutlined from \"@mui/icons-material/ChevronLeftOutlined\";\nimport ChevronRightOutlined from \"@mui/icons-material/ChevronRightOutlined\";\nimport MuiListItemButton, { type ListItemButtonProps } from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport MuiTooltip from \"@mui/material/Tooltip\";\nimport { bg, text, navColors } from \"../../theme/tokens\";\n\nexport interface SidebarContextValue {\n open: boolean;\n collapsedWidth: number;\n expandedWidth: number;\n}\n\nconst SidebarContext = createContext<SidebarContextValue>({\n open: true,\n collapsedWidth: 48,\n expandedWidth: 240,\n});\n\nexport function useSidebar() {\n return useContext(SidebarContext);\n}\n\nexport interface SidebarNavProps\n extends Omit<DrawerProps, \"open\" | \"variant\" | \"onClose\"> {\n /** Whether the sidebar is expanded */\n open: boolean;\n /** Callback when open state changes */\n onOpenChange: (open: boolean) => void;\n /** Width when expanded (default: 240) */\n expandedWidth?: number;\n /** Width when collapsed — icon-only (default: 64) */\n collapsedWidth?: number;\n /** Expand behavior:\n * - \"permanent\": click to toggle, stays open/closed\n * - \"hover\": collapsed by default, expands on mouse enter, collapses on mouse leave\n */\n behavior?: \"permanent\" | \"hover\";\n /** Whether to show the edge toggle button (default: true for \"permanent\", false for \"hover\") */\n showToggle?: boolean;\n /** Content rendered inside the sidebar */\n children: React.ReactNode;\n /** Optional header slot — rendered above children */\n header?: React.ReactNode;\n /** Optional footer slot — rendered at bottom */\n footer?: React.ReactNode;\n}\n\nexport function SidebarNav({\n open,\n onOpenChange,\n expandedWidth = 240,\n collapsedWidth = 48,\n behavior = \"permanent\",\n showToggle,\n children,\n header,\n footer,\n sx,\n ...rest\n}: SidebarNavProps) {\n const isHover = behavior === \"hover\";\n const drawerWidth = open ? expandedWidth : collapsedWidth;\n const layoutWidth = isHover ? collapsedWidth : drawerWidth;\n const shouldShowToggle = showToggle ?? !isHover;\n\n const hoverHandlers = isHover\n ? {\n onMouseEnter: () => onOpenChange(true),\n onMouseLeave: () => onOpenChange(false),\n }\n : {};\n\n return (\n <SidebarContext.Provider value={{ open, collapsedWidth, expandedWidth }}>\n <Box sx={{ position: \"relative\", width: layoutWidth, flexShrink: 0 }}>\n <MuiDrawer\n variant=\"permanent\"\n {...rest}\n {...hoverHandlers}\n sx={{\n width: drawerWidth,\n flexShrink: 0,\n \"& .MuiDrawer-paper\": {\n width: drawerWidth,\n transition: \"width 200ms ease-in-out\",\n overflowX: \"hidden\",\n boxSizing: \"border-box\",\n ...(isHover && { zIndex: (theme: any) => theme.zIndex.drawer + 2 }),\n },\n ...sx,\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n overflow: \"hidden\",\n }}\n >\n {header && <Box sx={{ flexShrink: 0 }}>{header}</Box>}\n <Box sx={{ flexGrow: 1, overflowY: \"auto\", overflowX: \"hidden\" }}>\n {children}\n </Box>\n {footer && <Box sx={{ flexShrink: 0 }}>{footer}</Box>}\n </Box>\n </MuiDrawer>\n\n {shouldShowToggle && (\n <IconButton\n size=\"small\"\n onClick={() => onOpenChange(!open)}\n sx={{\n position: \"absolute\",\n top: \"50%\",\n right: 0,\n transform: \"translate(50%, -50%)\",\n zIndex: (theme) => theme.zIndex.drawer + 1,\n width: 28,\n height: 28,\n border: 1,\n borderColor: \"divider\",\n backgroundColor: \"background.paper\",\n boxShadow: 1,\n \"&:hover\": {\n backgroundColor: \"action.hover\",\n },\n \"& .MuiSvgIcon-root\": {\n fontSize: 18,\n },\n }}\n >\n {open ? <ChevronLeftOutlined /> : <ChevronRightOutlined />}\n </IconButton>\n )}\n </Box>\n </SidebarContext.Provider>\n );\n}\n\n// ---------------------------------------------------------------------------\n// SidebarItem\n// ---------------------------------------------------------------------------\n\nexport interface SidebarItemProps extends Omit<ListItemButtonProps, \"children\"> {\n /** Icon element (required — visible in both expanded and collapsed states) */\n icon: React.ReactNode;\n /** Label text */\n label: string;\n /** Optional content rendered on the right side when expanded (badge, count, etc.) */\n endAdornment?: React.ReactNode;\n}\n\nconst itemSx = {\n borderRadius: 1,\n backgroundColor: bg.primary,\n color: text.secondary,\n \"& .MuiListItemIcon-root\": {\n color: navColors.itemIconFg,\n },\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n \"&.Mui-selected\": {\n backgroundColor: bg.active,\n color: text.primary,\n \"& .MuiListItemIcon-root\": {\n color: navColors.itemIconFgActive,\n },\n \"& .MuiListItemText-primary\": {\n fontWeight: 600,\n },\n \"&:hover\": {\n backgroundColor: bg.primaryHover,\n },\n },\n};\n\nexport function SidebarItem({\n icon,\n label,\n endAdornment,\n sx,\n ...rest\n}: SidebarItemProps) {\n const { open } = useSidebar();\n\n if (!open) {\n return (\n <MuiTooltip title={label} placement=\"right\" arrow>\n <MuiListItemButton\n {...rest}\n sx={{\n ...itemSx,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: 40,\n height: 40,\n padding: 0,\n margin: \"0 auto\",\n ...sx,\n }}\n >\n <ListItemIcon sx={{ minWidth: \"unset\", margin: 0, \"& .MuiSvgIcon-root\": { fontSize: 20 } }}>\n {icon}\n </ListItemIcon>\n </MuiListItemButton>\n </MuiTooltip>\n );\n }\n\n return (\n <MuiListItemButton {...rest} sx={{ ...itemSx, height: 40, ...sx }}>\n <ListItemIcon sx={{ \"& .MuiSvgIcon-root\": { fontSize: 20 } }}>{icon}</ListItemIcon>\n <ListItemText primary={label} />\n {endAdornment}\n </MuiListItemButton>\n );\n}\n","import { useTheme } from \"@mui/material/styles\";\n\nexport function useChartColors(count: number): string[] {\n const theme = useTheme();\n const chart = theme.palette.chart;\n\n const colors = chart.series.map((s: { fg: string }) => s.fg);\n\n return colors.slice(0, Math.min(count, colors.length));\n}\n","import React from \"react\";\nimport { Box, Typography } from \"@mui/material\";\nimport { useTheme } from \"@mui/material/styles\";\nimport type { ChartsAxisContentProps } from \"@mui/x-charts/ChartsTooltip\";\n\nfunction formatDate(date: string | number | Date | null): string {\n if (!date) return \"\";\n const d = new Date(date);\n if (isNaN(d.getTime())) return String(date);\n return d.toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n });\n}\n\nfunction renderValue(val: any): React.ReactNode {\n if (val == null) return \"0\";\n if (typeof val === \"object\" && \"y\" in val) {\n return String(val.y);\n }\n return String(val);\n}\n\nexport function CustomTooltip(props: ChartsAxisContentProps) {\n const { series, axisValue, dataIndex } = props;\n const theme = useTheme();\n\n if (dataIndex == null) {\n return null;\n }\n\n return (\n <Box\n sx={{\n backgroundColor: theme.palette.common.white,\n borderRadius: \"12px\",\n boxShadow: \"0px 12px 24px -4px #1018281a, 0px 4px 8px -2px #1018280f\", // Very high elevation shadow per reference\n padding: \"16px\",\n minWidth: \"200px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"12px\",\n borderTop: `1px solid ${theme.palette.divider}`,\n borderRight: `1px solid ${theme.palette.divider}`,\n borderBottom: `1px solid ${theme.palette.divider}`,\n borderLeft: `4px solid ${theme.palette.chart.series[0].fg}`,\n }}\n >\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: 600,\n color: theme.palette.text.primary,\n marginBottom: \"4px\",\n }}\n >\n {formatDate(axisValue)}\n </Typography>\n\n {series.map((s) => {\n // Find the color and the value\n const color = typeof s.getColor === \"function\" ? s.getColor(dataIndex) : s.color;\n // The values are in s.data\n const value = s.data ? s.data[dataIndex] : null;\n if (value == null) return null;\n\n return (\n <Box key={s.id} sx={{ display: \"flex\", flexDirection: \"column\", gap: \"6px\" }}>\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n <Box\n sx={{\n width: 16,\n height: 16,\n borderRadius: \"4px\",\n backgroundColor: color,\n flexShrink: 0,\n }}\n />\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.text.secondary,\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n }}\n >\n <Box\n component=\"span\"\n sx={{\n backgroundColor: theme.palette.grey[50] || \"#f9fafb\",\n padding: \"2px 6px\",\n borderRadius: \"4px\",\n fontWeight: 500,\n color: theme.palette.text.primary,\n border: `1px solid ${theme.palette.divider}`,\n }}\n >\n {renderValue(value)}\n </Box>{\" \"}\n events\n </Typography>\n </Box>\n </Box>\n );\n })}\n </Box>\n );\n}\n","import {\n LineChart as MuiLineChart,\n type LineChartProps as MuiLineChartProps,\n} from \"@mui/x-charts/LineChart\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { fontSize, lineHeight } from \"../../theme/tokens\";\nimport { useChartColors } from \"./useChartColors\";\n\nimport { CustomTooltip } from \"./CustomTooltip\";\n\nexport interface LineChartProps extends Omit<MuiLineChartProps, \"series\"> {\n series?: MuiLineChartProps[\"series\"];\n}\n\nexport function LineChart({ series, colors, ...props }: LineChartProps) {\n const theme = useTheme();\n const chart = theme.palette.chart;\n const seriesColors = useChartColors(series?.length ?? 0);\n\n // Set line curve and stroke width smoothly\n const modifiedSeries = series?.map((s) => ({\n ...s,\n curve: s.curve ?? \"linear\",\n highlightScope: s.highlightScope ?? { highlighted: \"item\", faded: \"global\" },\n }));\n\n return (\n <MuiLineChart\n series={modifiedSeries ?? []}\n colors={colors ?? seriesColors}\n grid={{ horizontal: true }}\n slots={{\n axisContent: CustomTooltip,\n }}\n slotProps={{\n legend: {\n itemMarkWidth: 12,\n itemMarkHeight: 12,\n padding: { bottom: 20 },\n },\n }}\n sx={{\n \"& .MuiChartsAxis-line\": { stroke: `${chart.axisFg} !important` },\n \"& .MuiChartsAxis-tick\": { stroke: `${chart.axisFg} !important` },\n \"& .MuiChartsAxis-tickLabel\": {\n fill: `${chart.labelFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: `${fontSize.xxs}px !important`,\n lineHeight: lineHeight.xxs,\n },\n \"& .MuiChartsAxis-label\": {\n fill: `${chart.labelFgEmphasis} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: `${typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14}px !important`,\n fontWeight: theme.typography.fontWeightMedium,\n },\n \"& .MuiChartsGrid-line\": {\n stroke: chart.gridlineFg,\n strokeDasharray: \"4 4\",\n },\n \"& .MuiChartsLegend-series text\": {\n fill: `${chart.legendFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: \"14px !important\",\n },\n \"& .MuiChartsLegend-mark\": {\n ry: 4,\n rx: 4,\n width: 12,\n height: 12,\n },\n \"& .MuiChartsTooltip-root\": {\n fontFamily: theme.typography.fontFamily,\n fontSize: typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14,\n },\n \"& .MuiChartsTooltip-table\": {\n backgroundColor: chart.tooltipBg,\n color: chart.tooltipFg,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n },\n \"& .MuiLineElement-root\": {\n strokeWidth: 3,\n },\n \"& .MuiMarkElement-root\": {\n display: \"none\",\n },\n ...((props.sx as object) ?? {}),\n }}\n {...props}\n />\n );\n}\n","import {\n BarChart as MuiBarChart,\n type BarChartProps as MuiBarChartProps,\n} from \"@mui/x-charts/BarChart\";\nimport { type MakeOptional } from \"@mui/x-charts/models/helpers\";\nimport { type BarSeriesType } from \"@mui/x-charts/models/seriesType/bar\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { fontSize, lineHeight } from \"../../theme/tokens\";\nimport { useChartColors } from \"./useChartColors\";\n\nimport { CustomTooltip } from \"./CustomTooltip\";\n\nexport type ForestBarSeriesType = MakeOptional<BarSeriesType, \"type\"> & {\n /** Enables diagonal striped fill for comparative data representation */\n variant?: \"solid\" | \"striped\";\n};\n\nexport interface BarChartProps extends Omit<MuiBarChartProps, \"series\"> {\n series?: ForestBarSeriesType[];\n}\n\nexport function BarChart({ series, colors, ...props }: BarChartProps) {\n const theme = useTheme();\n const chart = theme.palette.chart;\n const seriesColors = useChartColors(series?.length ?? 0);\n const resolvedColors = colors ?? seriesColors;\n\n // Set default highlight scope for cool hover fading effects, and mount Stripe styling \n const modifiedSeries = series?.map((s, idx): MakeOptional<BarSeriesType, \"type\"> => {\n const baseColor = s.color || (resolvedColors as string[])[idx % (resolvedColors as string[]).length];\n const actualColor = s.variant === \"striped\" ? `url(#striped-pattern-${idx})` : baseColor;\n\n const { variant, ...rest } = s;\n\n return {\n ...rest,\n color: actualColor,\n highlightScope: s.highlightScope ?? { highlighted: \"item\", faded: \"global\" },\n };\n });\n\n return (\n <MuiBarChart\n series={modifiedSeries ?? []}\n colors={colors ?? seriesColors}\n grid={{ horizontal: true }}\n borderRadius={4}\n slots={{\n axisContent: CustomTooltip,\n }}\n slotProps={{\n legend: {\n itemMarkWidth: 12,\n itemMarkHeight: 12,\n padding: { bottom: 20 },\n },\n }}\n sx={{\n \"& .MuiChartsAxis-line\": { stroke: `${chart.axisFg} !important` },\n \"& .MuiChartsAxis-tick\": { stroke: `${chart.axisFg} !important` },\n \"& .MuiChartsAxis-tickLabel\": {\n fill: `${chart.labelFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: `${fontSize.xxs}px !important`,\n lineHeight: lineHeight.xxs,\n },\n \"& .MuiChartsAxis-label\": {\n fill: `${chart.labelFgEmphasis} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: `${typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14}px !important`,\n fontWeight: theme.typography.fontWeightMedium,\n },\n \"& .MuiChartsGrid-line\": {\n stroke: chart.gridlineFg,\n strokeDasharray: \"4 4\",\n },\n \"& .MuiChartsLegend-series text\": {\n fill: `${chart.legendFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: \"14px !important\",\n },\n \"& .MuiChartsLegend-mark\": {\n ry: 4,\n rx: 4,\n width: 12,\n height: 12,\n },\n \"& .MuiChartsTooltip-root\": {\n fontFamily: theme.typography.fontFamily,\n fontSize: typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14,\n },\n \"& .MuiChartsTooltip-table\": {\n backgroundColor: chart.tooltipBg,\n color: chart.tooltipFg,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n },\n ...((props.sx as object) ?? {}),\n }}\n {...props}\n >\n <defs>\n {series?.map((s, idx) => {\n if (s.variant !== \"striped\") return null;\n\n const baseColor = s.color || (resolvedColors as string[])[idx % (resolvedColors as string[]).length];\n return (\n <pattern\n key={`striped-${idx}`}\n id={`striped-pattern-${idx}`}\n patternUnits=\"userSpaceOnUse\"\n width=\"8\"\n height=\"8\"\n patternTransform=\"rotate(45)\"\n >\n <rect width=\"8\" height=\"8\" fill={theme.palette.background.paper} />\n <line x1=\"0\" y=\"0\" x2=\"0\" y2=\"8\" stroke={baseColor} strokeWidth=\"4\" />\n </pattern>\n );\n })}\n </defs>\n </MuiBarChart>\n );\n}\n","import {\n PieChart as MuiPieChart,\n type PieChartProps as MuiPieChartProps,\n} from \"@mui/x-charts/PieChart\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useChartColors } from \"./useChartColors\";\n\nexport interface PieChartProps extends Omit<MuiPieChartProps, \"series\"> {\n series?: MuiPieChartProps[\"series\"];\n}\n\nexport function PieChart({ series, colors, ...props }: PieChartProps) {\n const theme = useTheme();\n const chart = theme.palette.chart;\n const sliceCount = series?.[0]?.data?.length ?? 0;\n const seriesColors = useChartColors(sliceCount);\n\n // Set default highlight scope for cool hover fading effects\n const modifiedSeries = series?.map((s) => ({\n ...s,\n highlightScope: s.highlightScope ?? { highlighted: \"item\", faded: \"global\" },\n }));\n\n return (\n <MuiPieChart\n series={modifiedSeries ?? []}\n colors={colors ?? seriesColors}\n slotProps={{\n legend: {\n itemMarkWidth: 12,\n itemMarkHeight: 12,\n padding: { bottom: 20 },\n },\n }}\n sx={{\n \"& .MuiChartsLegend-series text\": {\n fill: `${chart.legendFg} !important`,\n fontFamily: `${theme.typography.fontFamily} !important`,\n fontSize: \"14px !important\",\n },\n \"& .MuiChartsLegend-mark\": {\n ry: 4,\n rx: 4,\n width: 12,\n height: 12,\n },\n \"& .MuiChartsTooltip-root\": {\n fontFamily: theme.typography.fontFamily,\n fontSize: typeof theme.typography.body1.fontSize === \"number\" ? theme.typography.body1.fontSize : 14,\n },\n \"& .MuiChartsTooltip-table\": {\n backgroundColor: chart.tooltipBg,\n color: chart.tooltipFg,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[4],\n },\n ...((props.sx as object) ?? {}),\n }}\n {...props}\n />\n );\n}\n"]}
|
package/dist/theme.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '@mui/material';
|
|
2
2
|
import '@mui/material/styles';
|
|
3
|
-
export { D as DesignTokens, P as PresetVariantConfig, T as ThemePreset, a as
|
|
3
|
+
export { D as DesignTokens, P as PresetVariantConfig, T as ThemePreset, a as alpha, b as avatarColors, c as bg, d as border, e as breadcrumbColors, f as buildTheme, g as buildThemeOptions, h as buttonColors, i as chartColors, j as colors, K as components, k as container, l as display, m as fg, n as focusRings, o as fontFamily, p as fontSize, q as fontWeight, r as forestAgencyPreset, s as forestExternalPreset, t as forestInternalPreset, u as forestTheme, v as forestThemeOptions, w as getAvailablePresets, x as getPreset, y as iconColors, z as lineHeight, A as navColors, L as palette, B as radius, C as registerPreset, M as shadows, E as sliderColors, F as spacing, G as text, H as toggleColors, N as typography, J as widths } from './index-EkBIDmEu.mjs';
|
package/dist/theme.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import '@mui/material';
|
|
2
2
|
import '@mui/material/styles';
|
|
3
|
-
export { D as DesignTokens, P as PresetVariantConfig, T as ThemePreset, a as
|
|
3
|
+
export { D as DesignTokens, P as PresetVariantConfig, T as ThemePreset, a as alpha, b as avatarColors, c as bg, d as border, e as breadcrumbColors, f as buildTheme, g as buildThemeOptions, h as buttonColors, i as chartColors, j as colors, K as components, k as container, l as display, m as fg, n as focusRings, o as fontFamily, p as fontSize, q as fontWeight, r as forestAgencyPreset, s as forestExternalPreset, t as forestInternalPreset, u as forestTheme, v as forestThemeOptions, w as getAvailablePresets, x as getPreset, y as iconColors, z as lineHeight, A as navColors, L as palette, B as radius, C as registerPreset, M as shadows, E as sliderColors, F as spacing, G as text, H as toggleColors, N as typography, J as widths } from './index-EkBIDmEu.js';
|