@matteoaliano/forest-ui 0.3.5 → 0.4.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/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Theme } from '@mui/material/styles';
3
- export { D as DesignTokens, P as PresetVariantConfig, T as ThemePreset, a as alpha, b as avatarColors, c as base, d as bg, e as border, f as breadcrumbColors, g as buildTheme, h as buildThemeOptions, i as buttonColors, j as chartColors, k as container, l as display, m as error, n as fg, o as focusRings, p as fontFamily, q as fontSize, r as fontWeight, s as forestAgencyPreset, t as forestExternalPreset, u as forestInternalPreset, v as forestTheme, w as forestThemeOptions, x as getAvailablePresets, y as getPreset, z as iconColors, A as info, B as lineHeight, C as navColors, E as radius, F as registerPreset, G as sliderColors, H as spacing, I as success, J as text, K as toggleColors, L as tokenShadows, M as warning, N as widths } from './index-BCXD47YU.js';
3
+ export { DesignTokens, PresetVariantConfig, ThemePreset, alpha, avatarColors, base, bg, border, breadcrumbColors, buildTheme, buildThemeOptions, buttonColors, chartColors, container, display, error, fg, focusRings, fontFamily, fontFamilyMono, fontSize, fontWeight, forestAgencyPreset, forestExternalPreset, forestInternalPreset, forestTheme, forestThemeOptions, getAvailablePresets, getPreset, iconColors, info, lineHeight, navColors, radius, registerPreset, sliderColors, spacing, success, text, toggleColors, shadows as tokenShadows, warning, widths } from './theme.js';
4
4
  import { AutocompleteProps } from '@mui/material/Autocomplete';
5
5
  export { AutocompleteProps } from '@mui/material/Autocomplete';
6
6
  import { ButtonProps as ButtonProps$1 } from '@mui/material/Button';
@@ -82,8 +82,7 @@ import { AppBarProps } from '@mui/material/AppBar';
82
82
  export { AppBarProps } from '@mui/material/AppBar';
83
83
  import { ToolbarProps } from '@mui/material/Toolbar';
84
84
  export { ToolbarProps } from '@mui/material/Toolbar';
85
- import { CardProps } from '@mui/material/Card';
86
- export { CardProps } from '@mui/material/Card';
85
+ import { CardProps as CardProps$1 } from '@mui/material/Card';
87
86
  import { CardContentProps } from '@mui/material/CardContent';
88
87
  export { CardContentProps } from '@mui/material/CardContent';
89
88
  import { CardHeaderProps } from '@mui/material/CardHeader';
@@ -172,7 +171,7 @@ declare function Fab({ color, ...props }: FabProps): react_jsx_runtime.JSX.Eleme
172
171
  declare function RadioGroup(props: RadioGroupProps): react_jsx_runtime.JSX.Element;
173
172
  declare function Radio(props: RadioProps): react_jsx_runtime.JSX.Element;
174
173
 
175
- declare function Select<Value = unknown>(props: SelectProps<Value>): react_jsx_runtime.JSX.Element;
174
+ declare function Select<Value = unknown>({ onClose, ...props }: SelectProps<Value>): react_jsx_runtime.JSX.Element;
176
175
  declare function MenuItem(props: MenuItemProps): react_jsx_runtime.JSX.Element;
177
176
 
178
177
  interface MultiSelectOption {
@@ -231,7 +230,17 @@ declare function DatePicker(props: DatePickerProps): react_jsx_runtime.JSX.Eleme
231
230
 
232
231
  declare function Badge(props: BadgeProps): react_jsx_runtime.JSX.Element;
233
232
 
234
- declare function Chip({ deleteIcon, ...props }: ChipProps): react_jsx_runtime.JSX.Element;
233
+ declare const customChipColors: Record<string, {
234
+ bg: string;
235
+ color: string;
236
+ deleteIcon: string;
237
+ }>;
238
+ type ForestChipColor = ChipProps["color"] | keyof typeof customChipColors;
239
+ interface ForestChipProps extends Omit<ChipProps, "color"> {
240
+ color?: ForestChipColor;
241
+ }
242
+
243
+ declare function Chip({ color, deleteIcon, sx, ...props }: ForestChipProps): react_jsx_runtime.JSX.Element;
235
244
 
236
245
  declare function Divider(props: DividerProps): react_jsx_runtime.JSX.Element;
237
246
 
@@ -263,8 +272,21 @@ declare function AccordionActions(props: AccordionActionsProps): react_jsx_runti
263
272
 
264
273
  declare function AppBar(props: AppBarProps): react_jsx_runtime.JSX.Element;
265
274
  declare function Toolbar(props: ToolbarProps): react_jsx_runtime.JSX.Element;
275
+ interface AppBarNavItemProps extends Omit<ButtonProps$1, "children" | "variant"> {
276
+ label: string;
277
+ icon?: React__default.ReactNode;
278
+ selected?: boolean;
279
+ href?: string;
280
+ }
281
+ declare function AppBarNavItem({ label, icon, selected, href, sx, ...props }: AppBarNavItemProps): react_jsx_runtime.JSX.Element;
282
+
283
+ type ForestCardColor = "primary" | "secondary";
284
+ interface ForestCardProps extends Omit<CardProps$1, "color"> {
285
+ color?: ForestCardColor;
286
+ }
287
+ type CardProps = ForestCardProps;
266
288
 
267
- declare function Card(props: CardProps): react_jsx_runtime.JSX.Element;
289
+ declare function Card({ color, sx, ...props }: ForestCardProps): react_jsx_runtime.JSX.Element;
268
290
  declare function CardContent(props: CardContentProps): react_jsx_runtime.JSX.Element;
269
291
  declare function CardHeader(props: CardHeaderProps): react_jsx_runtime.JSX.Element;
270
292
  declare function CardActions(props: CardActionsProps): react_jsx_runtime.JSX.Element;
@@ -371,4 +393,4 @@ declare function PieChart({ series, colors, ...props }: PieChartProps): react_js
371
393
 
372
394
  declare function useChartColors(count: number): string[];
373
395
 
374
- export { Accordion, AccordionActions, AccordionDetails, AccordionSummary, Alert, AlertTitle, AppBar, Autocomplete, Backdrop, Badge, BarChart, type BarChartProps, Breadcrumbs, Button, ButtonGroup, type ButtonProps, Card, CardActions, CardContent, CardHeader, CardMedia, Checkbox, Chip, CircularProgress, DataGrid, DatePicker, type DatePickerProps, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, Fab, ForestProvider, type ForestProviderProps, IconButton, type IconButtonProps, Input, type InputProps, LineChart, type LineChartProps, LinearProgress, Link, List, ListItem, ListItemAvatar, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Logo, type LogoProps, Menu, MenuItem, MenuList, Modal, MultiSelect, type MultiSelectOption, type MultiSelectProps, Pagination, Paper, PieChart, type PieChartProps, Popover, Radio, RadioGroup, Search, type SearchProps, Select, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarNavProps, Skeleton, Snackbar, Step, StepLabel, Stepper, Switch, Tab, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Tabs, TextField, ToggleButton, ToggleButtonGroup, Toolbar, Tooltip, Typography, useChartColors, useSidebar };
396
+ export { Accordion, AccordionActions, AccordionDetails, AccordionSummary, Alert, AlertTitle, AppBar, AppBarNavItem, type AppBarNavItemProps, Autocomplete, Backdrop, Badge, BarChart, type BarChartProps, Breadcrumbs, Button, ButtonGroup, type ButtonProps, Card, CardActions, CardContent, CardHeader, CardMedia, type CardProps, Checkbox, Chip, CircularProgress, DataGrid, DatePicker, type DatePickerProps, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, Fab, type ForestCardColor, type ForestChipColor, type ForestChipProps, ForestProvider, type ForestProviderProps, IconButton, type IconButtonProps, Input, type InputProps, LineChart, type LineChartProps, LinearProgress, Link, List, ListItem, ListItemAvatar, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Logo, type LogoProps, Menu, MenuItem, MenuList, Modal, MultiSelect, type MultiSelectOption, type MultiSelectProps, Pagination, Paper, PieChart, type PieChartProps, Popover, Radio, RadioGroup, Search, type SearchProps, Select, SidebarItem, type SidebarItemProps, SidebarNav, type SidebarNavProps, Skeleton, Snackbar, Step, StepLabel, Stepper, Switch, Tab, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Tabs, TextField, ToggleButton, ToggleButtonGroup, Toolbar, Tooltip, Typography, useChartColors, useSidebar };
package/dist/index.js CHANGED
@@ -216,45 +216,67 @@ var misc = {
216
216
  600: "#0e9384",
217
217
  700: "#107569"},
218
218
  orange: {
219
+ 50: "#fef6ee",
219
220
  100: "#fdead7",
220
221
  200: "#f9dbaf",
221
222
  300: "#f7b27a",
222
- 400: "#f38744"},
223
+ 400: "#f38744",
224
+ 700: "#b93815"},
223
225
  purple: {
226
+ 50: "#f4f3ff",
224
227
  100: "#ebe9fe",
225
228
  200: "#d9d6fe",
229
+ 400: "#9b8afb",
226
230
  500: "#7a5af8",
227
- 600: "#6938ef"},
231
+ 600: "#6938ef",
232
+ 700: "#5925dc"},
228
233
  pink: {
234
+ 50: "#fdf2fa",
229
235
  100: "#fce7f6",
230
236
  200: "#fcceee",
231
237
  400: "#f670c7",
232
- 500: "#ee46bc"},
238
+ 500: "#ee46bc",
239
+ 700: "#c11574"},
233
240
  fuchsia: {
241
+ 50: "#fdf4ff",
234
242
  100: "#fbe8ff",
235
243
  200: "#f6d0fe",
236
244
  400: "#e478fa",
237
- 500: "#d444f1"},
245
+ 500: "#d444f1",
246
+ 700: "#9f1ab1"},
238
247
  orangeDark: {
248
+ 50: "#fff4ed",
239
249
  100: "#ffe6d5",
240
250
  200: "#ffd6ae",
241
251
  400: "#ff692e",
242
- 500: "#ff4405"},
252
+ 500: "#ff4405",
253
+ 700: "#bc1b06"},
243
254
  green: {
255
+ 50: "#edfcf2",
244
256
  100: "#d3f8df",
245
257
  200: "#aaf0c4",
258
+ 400: "#3ccb7f",
246
259
  500: "#16b364",
247
- 600: "#099250"},
260
+ 600: "#099250",
261
+ 700: "#087443"},
262
+ indigo: {
263
+ 50: "#eef4ff",
264
+ 400: "#8098f9",
265
+ 700: "#3538cd"},
248
266
  rose: {
267
+ 50: "#fff1f3",
249
268
  100: "#ffe4e8",
250
269
  200: "#fecdd6",
251
270
  400: "#fd6f8e",
252
- 500: "#f63d68"},
271
+ 500: "#f63d68",
272
+ 700: "#c01048"},
253
273
  blueLight: {
274
+ 50: "#f0f9ff",
254
275
  100: "#e0f2fe",
255
276
  200: "#b9e6fe",
256
277
  400: "#36bffa",
257
- 500: "#0ba5ec"},
278
+ 500: "#0ba5ec",
279
+ 700: "#026aa2"},
258
280
  cyan: {
259
281
  100: "#cff9fe",
260
282
  200: "#a5f0fc",
@@ -373,7 +395,8 @@ var focusRings = {
373
395
  error: "0px 0px 0px 4px #f044383d",
374
396
  errorShadowXs: "0px 1px 2px 0px #1018280d, 0px 0px 0px 4px #f044383d"
375
397
  };
376
- var fontFamily = '"Poppins", sans-serif';
398
+ var fontFamily = '"Aeonik", sans-serif';
399
+ var fontFamilyMono = '"Aeonik Mono", monospace';
377
400
  var fontSize = {
378
401
  xxs: 11,
379
402
  xs: 12,
@@ -729,18 +752,6 @@ function buildPalette(tokens) {
729
752
  chart: (_a = tokens.chartColors) != null ? _a : chartColors
730
753
  };
731
754
  }
732
- buildPalette({
733
- base,
734
- error,
735
- warning,
736
- success,
737
- info,
738
- text,
739
- bg,
740
- fg,
741
- border,
742
- chartColors
743
- });
744
755
 
745
756
  // src/theme/typography.ts
746
757
  function buildTypography(tokens) {
@@ -824,13 +835,6 @@ function buildTypography(tokens) {
824
835
  }
825
836
  };
826
837
  }
827
- buildTypography({
828
- fontFamily,
829
- display,
830
- fontSize,
831
- lineHeight,
832
- fontWeight
833
- });
834
838
 
835
839
  // src/theme/shadows.ts
836
840
  function buildShadows(tokens) {
@@ -888,9 +892,6 @@ function buildShadows(tokens) {
888
892
  // 24
889
893
  ];
890
894
  }
891
- buildShadows({
892
- shadows
893
- });
894
895
 
895
896
  // src/theme/components.ts
896
897
  function buildComponents(tokens) {
@@ -983,7 +984,11 @@ function buildComponents(tokens) {
983
984
  MuiIconButton: {
984
985
  styleOverrides: {
985
986
  root: {
986
- borderRadius: radius5.md
987
+ borderRadius: radius5.md,
988
+ padding: 6,
989
+ "& .MuiSvgIcon-root": {
990
+ fontSize: 20
991
+ }
987
992
  }
988
993
  }
989
994
  },
@@ -1013,6 +1018,15 @@ function buildComponents(tokens) {
1013
1018
  variant: "outlined"
1014
1019
  }
1015
1020
  },
1021
+ MuiFormControl: {
1022
+ styleOverrides: {
1023
+ root: {
1024
+ "&:has(.Mui-disabled)": {
1025
+ opacity: 0.5
1026
+ }
1027
+ }
1028
+ }
1029
+ },
1016
1030
  MuiInputBase: {
1017
1031
  styleOverrides: {
1018
1032
  input: {
@@ -1030,20 +1044,27 @@ function buildComponents(tokens) {
1030
1044
  root: {
1031
1045
  borderRadius: radius5.md,
1032
1046
  boxShadow: tokenShadows.xs,
1033
- "&:hover .MuiOutlinedInput-notchedOutline": {
1047
+ "&&:hover:not(.Mui-focused):not(.Mui-disabled) .MuiOutlinedInput-notchedOutline": {
1034
1048
  borderColor: border5.brand
1035
1049
  },
1036
- "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
1050
+ "&&.Mui-focused .MuiOutlinedInput-notchedOutline": {
1037
1051
  borderColor: border5.brandSolid,
1038
1052
  borderWidth: 1,
1039
1053
  boxShadow: "none"
1040
1054
  },
1041
- "&.Mui-error .MuiOutlinedInput-notchedOutline": {
1055
+ "&&.Mui-error:not(.Mui-focused) .MuiOutlinedInput-notchedOutline": {
1042
1056
  borderColor: border5.error
1043
1057
  },
1044
- "&.Mui-error.Mui-focused .MuiOutlinedInput-notchedOutline": {
1058
+ "&&.Mui-error.Mui-focused .MuiOutlinedInput-notchedOutline": {
1045
1059
  borderColor: border5.errorSolid,
1046
1060
  boxShadow: "none"
1061
+ },
1062
+ "& .MuiInputAdornment-root .MuiIconButton-root": {
1063
+ color: fg5.quaternary,
1064
+ "&:hover": {
1065
+ backgroundColor: bg5.primaryHover,
1066
+ color: fg5.brandPrimary
1067
+ }
1047
1068
  }
1048
1069
  },
1049
1070
  notchedOutline: {
@@ -1515,6 +1536,40 @@ function buildComponents(tokens) {
1515
1536
  }
1516
1537
  }
1517
1538
  },
1539
+ // ─── Tabs ──────────────────────────────────────────────────────────
1540
+ MuiTabs: {
1541
+ styleOverrides: {
1542
+ root: {
1543
+ minHeight: 48
1544
+ },
1545
+ indicator: {
1546
+ backgroundColor: fg5.brandPrimary,
1547
+ height: 2
1548
+ }
1549
+ }
1550
+ },
1551
+ MuiTab: {
1552
+ styleOverrides: {
1553
+ root: {
1554
+ minHeight: 48,
1555
+ height: 48,
1556
+ padding: "12px 16px",
1557
+ fontSize: 14,
1558
+ fontWeight: 600,
1559
+ lineHeight: "20px",
1560
+ textTransform: "none",
1561
+ color: text5.tertiary,
1562
+ borderRadius: `${radius5.md}px ${radius5.md}px 0 0`,
1563
+ "&:hover": {
1564
+ backgroundColor: bg5.primaryHover
1565
+ },
1566
+ "&.Mui-selected": {
1567
+ color: fg5.brandPrimary,
1568
+ backgroundColor: bg5.brandPrimary
1569
+ }
1570
+ }
1571
+ }
1572
+ },
1518
1573
  // ─── Chip ───────────────────────────────────────────────────────
1519
1574
  MuiChip: {
1520
1575
  styleOverrides: {
@@ -1535,15 +1590,15 @@ function buildComponents(tokens) {
1535
1590
  },
1536
1591
  colorDefault: {
1537
1592
  "&.MuiChip-filled": {
1538
- backgroundColor: gray[50],
1539
- color: gray[700],
1540
- "& .MuiChip-deleteIcon": { color: gray[400] }
1593
+ backgroundColor: tokens.bg.secondaryHover,
1594
+ color: tokens.fg.secondary,
1595
+ "& .MuiChip-deleteIcon": { color: tokens.fg.quinary }
1541
1596
  }
1542
1597
  },
1543
1598
  colorPrimary: {
1544
1599
  "&.MuiChip-filled": {
1545
1600
  backgroundColor: tokens.bg.brandPrimary,
1546
- color: tokens.text.brandPrimary,
1601
+ color: tokens.fg.brandPrimary,
1547
1602
  "& .MuiChip-deleteIcon": { color: tokens.fg.brandPrimary }
1548
1603
  }
1549
1604
  },
@@ -1633,13 +1688,16 @@ function buildComponents(tokens) {
1633
1688
  styleOverrides: {
1634
1689
  root: {
1635
1690
  backgroundColor: bg5.secondary,
1636
- borderBottom: `1px solid ${border5.secondary}`
1691
+ "& .MuiTableRow-root:last-child .MuiTableCell-root": {
1692
+ borderBottom: `1px solid ${border5.secondary}`
1693
+ }
1637
1694
  }
1638
1695
  }
1639
1696
  },
1640
1697
  MuiTableRow: {
1641
1698
  styleOverrides: {
1642
1699
  root: {
1700
+ backgroundColor: bg5.secondary,
1643
1701
  "&:last-child td, &:last-child th": {
1644
1702
  border: 0
1645
1703
  },
@@ -1995,6 +2053,7 @@ function buildComponents(tokens) {
1995
2053
  }
1996
2054
  },
1997
2055
  row: {
2056
+ backgroundColor: bg5.secondary,
1998
2057
  "&:hover": {
1999
2058
  backgroundColor: bg5.primaryHover
2000
2059
  },
@@ -2037,7 +2096,7 @@ function buildComponents(tokens) {
2037
2096
  "& .MuiOutlinedInput-notchedOutline": {
2038
2097
  borderColor: border5.primary
2039
2098
  },
2040
- "&:hover .MuiOutlinedInput-notchedOutline": {
2099
+ "&:hover:not(:has(.Mui-disabled)) .MuiOutlinedInput-notchedOutline": {
2041
2100
  borderColor: border5.brand
2042
2101
  },
2043
2102
  "& .Mui-focused .MuiOutlinedInput-notchedOutline": {
@@ -2047,7 +2106,6 @@ function buildComponents(tokens) {
2047
2106
  },
2048
2107
  "& .MuiInputAdornment-root .MuiIconButton-root": {
2049
2108
  color: fg5.quaternary,
2050
- padding: 4,
2051
2109
  "&:hover": {
2052
2110
  backgroundColor: bg5.primaryHover,
2053
2111
  color: fg5.brandPrimary
@@ -2199,21 +2257,6 @@ function buildComponents(tokens) {
2199
2257
  }
2200
2258
  };
2201
2259
  }
2202
- buildComponents({
2203
- base,
2204
- error,
2205
- warning,
2206
- success,
2207
- info,
2208
- radius,
2209
- focusRings,
2210
- shadows,
2211
- text,
2212
- bg,
2213
- fg,
2214
- border,
2215
- buttonColors,
2216
- sliderColors});
2217
2260
 
2218
2261
  // src/theme/buildTheme.ts
2219
2262
  function buildThemeOptions(tokens) {
@@ -2490,6 +2533,7 @@ var forestExternalPreset = {
2490
2533
  shadows,
2491
2534
  focusRings: focusRings2,
2492
2535
  fontFamily: '"Aeonik", sans-serif',
2536
+ fontFamilyMono: '"Aeonik Mono", monospace',
2493
2537
  fontSize,
2494
2538
  lineHeight,
2495
2539
  fontWeight,
@@ -2626,7 +2670,7 @@ var border3 = {
2626
2670
  tertiary: gray[100],
2627
2671
  disabled: gray[300],
2628
2672
  disabledSubtle: gray[200],
2629
- brand: colors.brand[300],
2673
+ brand: gray[400],
2630
2674
  brandSolid: colors.brand[600],
2631
2675
  brandSolidAlt: colors.brand[600],
2632
2676
  error: error[300],
@@ -2786,6 +2830,7 @@ var forestAgencyPreset = {
2786
2830
  shadows,
2787
2831
  focusRings: focusRings3,
2788
2832
  fontFamily: '"Aeonik", sans-serif',
2833
+ fontFamilyMono: '"Aeonik Mono", monospace',
2789
2834
  fontSize,
2790
2835
  lineHeight,
2791
2836
  fontWeight,
@@ -3069,6 +3114,7 @@ var forestInternalPreset = {
3069
3114
  shadows,
3070
3115
  focusRings: focusRings4,
3071
3116
  fontFamily: '"Aeonik", sans-serif',
3117
+ fontFamilyMono: '"Aeonik Mono", monospace',
3072
3118
  fontSize,
3073
3119
  lineHeight,
3074
3120
  fontWeight,
@@ -3163,8 +3209,16 @@ function RadioGroup(props) {
3163
3209
  function Radio(props) {
3164
3210
  return /* @__PURE__ */ jsxRuntime.jsx(MuiRadio__default.default, { ...props });
3165
3211
  }
3166
- function Select(props) {
3167
- return /* @__PURE__ */ jsxRuntime.jsx(MuiSelect__default.default, { ...props });
3212
+ function Select({ onClose, ...props }) {
3213
+ const handleClose = (e) => {
3214
+ onClose == null ? void 0 : onClose(e);
3215
+ setTimeout(() => {
3216
+ if (document.activeElement instanceof HTMLElement) {
3217
+ document.activeElement.blur();
3218
+ }
3219
+ });
3220
+ };
3221
+ return /* @__PURE__ */ jsxRuntime.jsx(MuiSelect__default.default, { onClose: handleClose, ...props });
3168
3222
  }
3169
3223
  function MenuItem(props) {
3170
3224
  return /* @__PURE__ */ jsxRuntime.jsx(MuiMenuItem__default.default, { ...props });
@@ -3391,11 +3445,47 @@ function Badge(props) {
3391
3445
  var CloseOutlined_default = utils.createSvgIcon(/* @__PURE__ */ jsxRuntime.jsx("path", {
3392
3446
  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"
3393
3447
  }), "CloseOutlined");
3394
- function Chip({ deleteIcon = /* @__PURE__ */ jsxRuntime.jsx(CloseOutlined_default, {}), ...props }) {
3448
+ var customChipColors = {
3449
+ teal: { bg: misc.teal[50], color: misc.teal[700], deleteIcon: misc.teal[400] },
3450
+ orange: { bg: misc.orange[50], color: misc.orange[700], deleteIcon: misc.orange[400] },
3451
+ purple: { bg: misc.purple[50], color: misc.purple[700], deleteIcon: misc.purple[400] },
3452
+ pink: { bg: misc.pink[50], color: misc.pink[700], deleteIcon: misc.pink[400] },
3453
+ fuchsia: { bg: misc.fuchsia[50], color: misc.fuchsia[700], deleteIcon: misc.fuchsia[400] },
3454
+ orangeDark: { bg: misc.orangeDark[50], color: misc.orangeDark[700], deleteIcon: misc.orangeDark[400] },
3455
+ green: { bg: misc.green[50], color: misc.green[700], deleteIcon: misc.green[400] },
3456
+ indigo: { bg: misc.indigo[50], color: misc.indigo[700], deleteIcon: misc.indigo[400] },
3457
+ rose: { bg: misc.rose[50], color: misc.rose[700], deleteIcon: misc.rose[400] },
3458
+ blueLight: { bg: misc.blueLight[50], color: misc.blueLight[700], deleteIcon: misc.blueLight[400] }
3459
+ };
3460
+ function Chip({ color, deleteIcon = /* @__PURE__ */ jsxRuntime.jsx(CloseOutlined_default, {}), sx, ...props }) {
3461
+ const custom = color && typeof color === "string" ? customChipColors[color] : void 0;
3462
+ if (custom) {
3463
+ return /* @__PURE__ */ jsxRuntime.jsx(
3464
+ MuiChip__default.default,
3465
+ {
3466
+ deleteIcon,
3467
+ ...props,
3468
+ sx: [
3469
+ {
3470
+ "&.MuiChip-root": {
3471
+ backgroundColor: custom.bg,
3472
+ color: custom.color,
3473
+ "& .MuiChip-deleteIcon": {
3474
+ color: custom.deleteIcon
3475
+ }
3476
+ }
3477
+ },
3478
+ ...Array.isArray(sx) ? sx : [sx]
3479
+ ]
3480
+ }
3481
+ );
3482
+ }
3395
3483
  return /* @__PURE__ */ jsxRuntime.jsx(
3396
3484
  MuiChip__default.default,
3397
3485
  {
3486
+ color,
3398
3487
  deleteIcon,
3488
+ sx,
3399
3489
  ...props
3400
3490
  }
3401
3491
  );
@@ -3469,8 +3559,69 @@ function AppBar(props) {
3469
3559
  function Toolbar(props) {
3470
3560
  return /* @__PURE__ */ jsxRuntime.jsx(MuiToolbar__default.default, { ...props });
3471
3561
  }
3472
- function Card(props) {
3473
- return /* @__PURE__ */ jsxRuntime.jsx(MuiCard__default.default, { ...props });
3562
+ function AppBarNavItem({
3563
+ label,
3564
+ icon,
3565
+ selected = false,
3566
+ href,
3567
+ sx,
3568
+ ...props
3569
+ }) {
3570
+ return /* @__PURE__ */ jsxRuntime.jsx(
3571
+ MuiButton__default.default,
3572
+ {
3573
+ variant: "text",
3574
+ href,
3575
+ startIcon: icon,
3576
+ disableElevation: true,
3577
+ ...props,
3578
+ sx: [
3579
+ {
3580
+ height: 32,
3581
+ padding: "6px 12px",
3582
+ fontSize: 14,
3583
+ fontWeight: 500,
3584
+ color: "action.active",
3585
+ textTransform: "none",
3586
+ boxShadow: "none",
3587
+ "&:hover": {
3588
+ backgroundColor: "action.hover",
3589
+ color: "text.primary",
3590
+ boxShadow: "none"
3591
+ },
3592
+ "&:focus-visible": {
3593
+ boxShadow: "none"
3594
+ },
3595
+ "& .MuiButton-startIcon": {
3596
+ marginRight: 0.5
3597
+ }
3598
+ },
3599
+ selected && {
3600
+ color: "primary.light",
3601
+ fontWeight: 600,
3602
+ "&:hover": {
3603
+ backgroundColor: "action.selected",
3604
+ color: "primary.light",
3605
+ boxShadow: "none"
3606
+ }
3607
+ },
3608
+ ...Array.isArray(sx) ? sx : [sx]
3609
+ ],
3610
+ children: label
3611
+ }
3612
+ );
3613
+ }
3614
+ function Card({ color = "primary", sx, ...props }) {
3615
+ return /* @__PURE__ */ jsxRuntime.jsx(
3616
+ MuiCard__default.default,
3617
+ {
3618
+ ...props,
3619
+ sx: [
3620
+ color === "secondary" && { backgroundColor: "background.paper" },
3621
+ ...Array.isArray(sx) ? sx : [sx]
3622
+ ]
3623
+ }
3624
+ );
3474
3625
  }
3475
3626
  function CardContent(props) {
3476
3627
  return /* @__PURE__ */ jsxRuntime.jsx(MuiCardContent__default.default, { ...props });
@@ -3761,10 +3912,7 @@ function CustomTooltip(props) {
3761
3912
  display: "flex",
3762
3913
  flexDirection: "column",
3763
3914
  gap: "12px",
3764
- borderTop: `1px solid ${theme.palette.divider}`,
3765
- borderRight: `1px solid ${theme.palette.divider}`,
3766
- borderBottom: `1px solid ${theme.palette.divider}`,
3767
- borderLeft: `4px solid ${theme.palette.chart.series[0].fg}`
3915
+ border: `1px solid ${theme.palette.divider}`
3768
3916
  },
3769
3917
  children: [
3770
3918
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3774,7 +3922,8 @@ function CustomTooltip(props) {
3774
3922
  sx: {
3775
3923
  fontWeight: 600,
3776
3924
  color: theme.palette.text.primary,
3777
- marginBottom: "4px"
3925
+ paddingBottom: "12px",
3926
+ borderBottom: `1px solid ${theme.palette.divider}`
3778
3927
  },
3779
3928
  children: formatDate(axisValue)
3780
3929
  }
@@ -4074,6 +4223,7 @@ exports.AccordionSummary = AccordionSummary;
4074
4223
  exports.Alert = Alert;
4075
4224
  exports.AlertTitle = AlertTitle;
4076
4225
  exports.AppBar = AppBar;
4226
+ exports.AppBarNavItem = AppBarNavItem;
4077
4227
  exports.Autocomplete = Autocomplete;
4078
4228
  exports.Backdrop = Backdrop;
4079
4229
  exports.Badge = Badge;
@@ -4163,6 +4313,7 @@ exports.error = error;
4163
4313
  exports.fg = fg;
4164
4314
  exports.focusRings = focusRings;
4165
4315
  exports.fontFamily = fontFamily;
4316
+ exports.fontFamilyMono = fontFamilyMono;
4166
4317
  exports.fontSize = fontSize;
4167
4318
  exports.fontWeight = fontWeight;
4168
4319
  exports.forestAgencyPreset = forestAgencyPreset;