@matteoaliano/forest-ui 1.2.3 → 1.2.5

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.
@@ -282,19 +282,13 @@ function buildComponents(tokens2) {
282
282
  }
283
283
  };
284
284
  const bevelHover = {
285
- borderTopWidth: 4,
286
- borderBottomWidth: 1,
287
- borderTopLeftRadius: radius4.lg,
288
- borderTopRightRadius: radius4.lg,
289
- borderBottomLeftRadius: radius4.md,
290
- borderBottomRightRadius: radius4.md
285
+ borderTopWidth: 3,
286
+ borderBottomWidth: 1
291
287
  };
292
288
  const bevelPress = {
293
289
  // Snap the press faster than the 300ms hover flip so it feels tactile.
294
290
  transition: "border-width 120ms ease, border-radius 120ms ease, opacity 120ms ease",
295
291
  borderTopWidth: 1,
296
- borderTopLeftRadius: radius4.md,
297
- borderTopRightRadius: radius4.md,
298
292
  opacity: 0.75
299
293
  };
300
294
  const bevel3D = {
@@ -305,9 +299,7 @@ function buildComponents(tokens2) {
305
299
  borderTopWidth: 1,
306
300
  borderRightWidth: 1,
307
301
  borderLeftWidth: 1,
308
- borderBottomWidth: 4,
309
- borderBottomLeftRadius: radius4.lg,
310
- borderBottomRightRadius: radius4.lg,
302
+ borderBottomWidth: 3,
311
303
  "&::before": {
312
304
  content: '""',
313
305
  position: "absolute",
@@ -344,6 +336,21 @@ function buildComponents(tokens2) {
344
336
  }
345
337
  }
346
338
  },
339
+ // ─── ButtonBase (global) ────────────────────────────────────────
340
+ // Kills MUI's TouchRipple everywhere in one place. Every clickable in the
341
+ // library renders through ButtonBase, so this reaches Button, IconButton,
342
+ // Fab, ToggleButton, CardActionArea, ListItemButton, MenuItem, Tab, Chip,
343
+ // PaginationItem, StepButton, BottomNavigationAction, SpeedDialAction and
344
+ // the Pickers' day/month/year cells without a per-component opt-out.
345
+ //
346
+ // The press feedback is the faux-3D bevel instead: the raised bottom edge
347
+ // collapses and the face dims on :active (see `bevelPress`). An expanding
348
+ // circle on top of that reads as a second, competing press affordance.
349
+ MuiButtonBase: {
350
+ defaultProps: {
351
+ disableRipple: true
352
+ }
353
+ },
347
354
  // ─── Button ─────────────────────────────────────────────────────
348
355
  MuiButton: {
349
356
  defaultProps: {
@@ -363,7 +370,7 @@ function buildComponents(tokens2) {
363
370
  const colorScales = { error: error2, warning: warning2, success: success2, info: info2 };
364
371
  const faceScale = ownerState.color ? colorScales[ownerState.color] : void 0;
365
372
  return {
366
- borderRadius: radius4.md,
373
+ borderRadius: radius4.lg,
367
374
  fontWeight: 600,
368
375
  boxShadow: tokenShadows.xs,
369
376
  height: 32,
@@ -381,12 +388,7 @@ function buildComponents(tokens2) {
381
388
  borderTopWidth: 1,
382
389
  borderRightWidth: 1,
383
390
  borderLeftWidth: 1,
384
- borderBottomWidth: 4,
385
- // Round the thick-bevel side more than the rest so the inner
386
- // surface isn't squared off. Follows the bevel: bottom at rest,
387
- // top on hover.
388
- borderBottomLeftRadius: radius4.lg,
389
- borderBottomRightRadius: radius4.lg,
391
+ borderBottomWidth: 3,
390
392
  // Contained buttons have no border of their own — give them a
391
393
  // translucent bevel. Outlined keeps its own border color.
392
394
  ...isContained && {
@@ -411,12 +413,8 @@ function buildComponents(tokens2) {
411
413
  transition: "top 500ms ease-in-out"
412
414
  },
413
415
  "&:hover": {
414
- borderTopWidth: 4,
416
+ borderTopWidth: 3,
415
417
  borderBottomWidth: 1,
416
- borderTopLeftRadius: radius4.lg,
417
- borderTopRightRadius: radius4.lg,
418
- borderBottomLeftRadius: radius4.md,
419
- borderBottomRightRadius: radius4.md,
420
418
  // One step lighter than the default bevel (60% → 70%) so it
421
419
  // stays visible against the brightened face on hover.
422
420
  ...isContained && {
@@ -443,8 +441,6 @@ function buildComponents(tokens2) {
443
441
  // like a tactile click rather than a slow settle.
444
442
  transition: "border-width 120ms ease, border-radius 120ms ease, opacity 120ms ease",
445
443
  borderTopWidth: 1,
446
- borderTopLeftRadius: radius4.md,
447
- borderTopRightRadius: radius4.md,
448
444
  opacity: 0.75
449
445
  },
450
446
  // Unified disabled treatment across the button family (Button,
@@ -459,7 +455,7 @@ function buildComponents(tokens2) {
459
455
  borderTopWidth: 1,
460
456
  borderRightWidth: 1,
461
457
  borderLeftWidth: 1,
462
- borderBottomWidth: 4
458
+ borderBottomWidth: 3
463
459
  },
464
460
  "@media (prefers-reduced-motion: reduce)": {
465
461
  transition: "none",
@@ -494,7 +490,7 @@ function buildComponents(tokens2) {
494
490
  },
495
491
  styleOverrides: {
496
492
  root: {
497
- borderRadius: radius4.md,
493
+ borderRadius: radius4.lg,
498
494
  // contained group → children already render as contained Buttons; only
499
495
  // re-pin the bevel border color, which MUI's own grouped-contained
500
496
  // default (palette grey) otherwise overrides away from the standalone
@@ -534,7 +530,7 @@ function buildComponents(tokens2) {
534
530
  backgroundColor: "transparent",
535
531
  color: buttonColors4.tertiaryColor.fg,
536
532
  borderWidth: 0,
537
- borderRadius: radius4.md,
533
+ borderRadius: radius4.lg,
538
534
  boxShadow: "none",
539
535
  "&::before": { display: "none" },
540
536
  "&:active": { opacity: 1 },
@@ -566,17 +562,17 @@ function buildComponents(tokens2) {
566
562
  MuiIconButton: {
567
563
  styleOverrides: {
568
564
  root: ({ theme }) => ({
569
- borderRadius: radius4.md,
565
+ borderRadius: radius4.lg,
570
566
  padding: 6,
571
567
  "& .MuiSvgIcon-root": {
572
568
  fontSize: 20
573
569
  },
574
570
  "&.ForestIconButton": {
575
571
  ...bevel3D,
576
- // Square 32×32 with border-box so the faux-3D bevel (1px top + 4px
572
+ // Square 32×32 with border-box so the faux-3D bevel (1px top + 3px
577
573
  // bottom, 1px left/right) is absorbed rather than added on top —
578
- // otherwise it rendered a 37×34 control instead of matching the
579
- // standalone Button's 32px height.
574
+ // otherwise it rendered an oversized control instead of matching
575
+ // the standalone Button's 32px height.
580
576
  height: 32,
581
577
  width: 32,
582
578
  boxSizing: "border-box",
@@ -633,8 +629,7 @@ function buildComponents(tokens2) {
633
629
  // ─── FAB ────────────────────────────────────────────────────────
634
630
  // A Fab is a round contained Button: same faux-3D bevel, light sweep,
635
631
  // brightness lift, and press. The border radii are left untouched so the
636
- // circular / extended silhouettes survive the bevel flip (no radius swap
637
- // like Button/IconButton do on their rounded corners).
632
+ // circular / extended silhouettes survive the bevel flip.
638
633
  MuiFab: {
639
634
  styleOverrides: {
640
635
  root: ({ theme, ownerState }) => ({
@@ -650,7 +645,7 @@ function buildComponents(tokens2) {
650
645
  borderTopWidth: 1,
651
646
  borderRightWidth: 1,
652
647
  borderLeftWidth: 1,
653
- borderBottomWidth: 4,
648
+ borderBottomWidth: 3,
654
649
  "&::before": {
655
650
  content: '""',
656
651
  position: "absolute",
@@ -668,7 +663,7 @@ function buildComponents(tokens2) {
668
663
  },
669
664
  "&:hover": {
670
665
  boxShadow: tokenShadows.xs,
671
- borderTopWidth: 4,
666
+ borderTopWidth: 3,
672
667
  borderBottomWidth: 1,
673
668
  // Light mode: dark face, brightness lift reads as hover. Dark
674
669
  // mode: the face is already light — a lift blows out the top
@@ -883,7 +878,10 @@ function buildComponents(tokens2) {
883
878
  MuiAutocomplete: {
884
879
  styleOverrides: {
885
880
  paper: {
886
- borderRadius: radius4.md,
881
+ // No borderRadius here on purpose — it inherits MuiPaper's `rounded`
882
+ // (radius.lg), so the popup matches Menu, Popover and every other
883
+ // Paper surface. It used to set radius.md and was the one popup in
884
+ // the system with a sharper corner.
887
885
  boxShadow: tokenShadows.lg,
888
886
  border: `1px solid ${border4.secondary}`,
889
887
  marginTop: 4
@@ -897,10 +895,42 @@ function buildComponents(tokens2) {
897
895
  lineHeight: "20px"
898
896
  }
899
897
  },
898
+ // MUI hardcodes this slot's own padding/marginRight in its source
899
+ // (padding: 2, marginRight: -2), which wins over the global
900
+ // MuiIconButton root override at equal specificity — left alone, the
901
+ // popup toggle renders as a small 24px button that doesn't fill the
902
+ // 32px input row and stops short of the edge. Restated here at the
903
+ // same size/inset as the DatePicker's open-picker button (32px,
904
+ // padding 6, flush against the input's 12px right padding) so both
905
+ // end-of-input icon buttons match.
906
+ popupIndicator: {
907
+ padding: 6,
908
+ // Not a straight copy of the DatePicker's -12px: that value cancels
909
+ // the input row's 12px padding directly, but this button's
910
+ // grandparent (`.MuiAutocomplete-endAdornment`) is itself inset 9px
911
+ // from the input's true right edge by MUI's own variant styles.
912
+ // -9px reaches through that inset to land flush, matching the
913
+ // DatePicker's open-picker button exactly.
914
+ marginRight: -9
915
+ },
916
+ // Same MUI-hardcoded-slot problem as popupIndicator, one size down
917
+ // (padding: 4, marginRight: -2) — sized to match it here. The
918
+ // popupIndicator's own marginRight anchors it to the input edge
919
+ // independent of clearIndicator's box, so this needs no matching
920
+ // offset: with both buttons the same size, 0 sits them edge-to-edge,
921
+ // and their equal padding already reads as the gap between the icons.
922
+ clearIndicator: {
923
+ padding: 6,
924
+ marginRight: 0
925
+ },
900
926
  option: {
901
927
  fontSize: 14,
902
928
  lineHeight: "20px",
903
- padding: "6px 12px",
929
+ // An Autocomplete option is a plain <li class="MuiAutocomplete-option">,
930
+ // not a MenuItem, so MuiMenuItem's radius never reaches it. Match it
931
+ // here so the hover/selected highlight reads as the same pill a Select
932
+ // draws, inset by the listbox's 4px padding.
933
+ borderRadius: radius4.md,
904
934
  // Hover + selected backgrounds come from MUI's theme-aware action
905
935
  // overlays (a light overlay on dark, so they stay visible — a solid
906
936
  // dark-grey tier here reads as "no hover"). Selected keeps the text
@@ -910,7 +940,14 @@ function buildComponents(tokens2) {
910
940
  }
911
941
  },
912
942
  listbox: {
913
- padding: 4
943
+ padding: 4,
944
+ // Padding has to live here, not in the `option` slot: MUI nests its
945
+ // own option styles under the listbox, so a rule from `option` ties
946
+ // on specificity and loses on source order. This selector outranks
947
+ // it. 6px 8px matches MuiMenuItem.
948
+ "& .MuiAutocomplete-option": {
949
+ padding: "6px 8px"
950
+ }
914
951
  }
915
952
  }
916
953
  },
@@ -922,7 +959,7 @@ function buildComponents(tokens2) {
922
959
  styleOverrides: {
923
960
  root: {
924
961
  color: border4.primary,
925
- borderRadius: radius4.xs,
962
+ borderRadius: radius4.sm,
926
963
  padding: 0,
927
964
  width: 20,
928
965
  height: 20,
@@ -939,7 +976,7 @@ function buildComponents(tokens2) {
939
976
  "&.Mui-focusVisible": {
940
977
  outline: "none",
941
978
  boxShadow: focusRings4.brand,
942
- borderRadius: radius4.xs
979
+ borderRadius: radius4.sm
943
980
  },
944
981
  "&.Mui-disabled": {
945
982
  color: border4.primary
@@ -1075,12 +1112,18 @@ function buildComponents(tokens2) {
1075
1112
  color: buttonColors4.primary.fg,
1076
1113
  borderTopWidth: 1,
1077
1114
  borderBottomWidth: 1,
1078
- borderTopLeftRadius: radius4.md,
1079
- borderTopRightRadius: radius4.md,
1080
- borderBottomLeftRadius: radius4.md,
1081
- borderBottomRightRadius: radius4.md,
1115
+ borderTopLeftRadius: radius4.lg,
1116
+ borderTopRightRadius: radius4.lg,
1117
+ borderBottomLeftRadius: radius4.lg,
1118
+ borderBottomRightRadius: radius4.lg,
1082
1119
  opacity: 0.75,
1083
- boxShadow: "inset 0 2px 4px 0 rgba(0,0,0,0.3)",
1120
+ // The pressed-in cue is carried by the flattened bevel (bottom
1121
+ // border 3px -> 1px) alone in light mode. On the dark-mode face
1122
+ // that geometry reads too faintly, so it keeps the inner shadow.
1123
+ boxShadow: "none",
1124
+ ...theme.applyStyles("dark", {
1125
+ boxShadow: "inset 0 2px 4px 0 rgba(0,0,0,0.3)"
1126
+ }),
1084
1127
  "&::before": { display: "none" },
1085
1128
  // Stays pressed on hover — no bevel re-raise, no brightness lift.
1086
1129
  "&:hover": {
@@ -1088,8 +1131,8 @@ function buildComponents(tokens2) {
1088
1131
  filter: "none",
1089
1132
  borderTopWidth: 1,
1090
1133
  borderBottomWidth: 1,
1091
- borderTopLeftRadius: radius4.md,
1092
- borderTopRightRadius: radius4.md
1134
+ borderTopLeftRadius: radius4.lg,
1135
+ borderTopRightRadius: radius4.lg
1093
1136
  }
1094
1137
  },
1095
1138
  // variant="outlined" (Forest wrapper class): the outlined <Button> /
@@ -1133,7 +1176,7 @@ function buildComponents(tokens2) {
1133
1176
  borderTopWidth: 1,
1134
1177
  borderRightWidth: 1,
1135
1178
  borderLeftWidth: 1,
1136
- borderBottomWidth: 4,
1179
+ borderBottomWidth: 3,
1137
1180
  "&::before": { display: "none" },
1138
1181
  // selected+disabled keeps the pressed-in cue, greyed.
1139
1182
  "&.Mui-selected": {
@@ -1150,7 +1193,7 @@ function buildComponents(tokens2) {
1150
1193
  MuiToggleButtonGroup: {
1151
1194
  styleOverrides: {
1152
1195
  root: {
1153
- borderRadius: radius4.md,
1196
+ borderRadius: radius4.lg,
1154
1197
  overflow: "hidden"
1155
1198
  },
1156
1199
  // The child ToggleButton's selected/hover/active rules set per-corner
@@ -1167,14 +1210,14 @@ function buildComponents(tokens2) {
1167
1210
  },
1168
1211
  "&:first-of-type": {
1169
1212
  "&, &:hover, &:active, &.Mui-selected": {
1170
- borderTopLeftRadius: radius4.md,
1171
- borderBottomLeftRadius: radius4.md
1213
+ borderTopLeftRadius: radius4.lg,
1214
+ borderBottomLeftRadius: radius4.lg
1172
1215
  }
1173
1216
  },
1174
1217
  "&:last-of-type": {
1175
1218
  "&, &:hover, &:active, &.Mui-selected": {
1176
- borderTopRightRadius: radius4.md,
1177
- borderBottomRightRadius: radius4.md
1219
+ borderTopRightRadius: radius4.lg,
1220
+ borderBottomRightRadius: radius4.lg
1178
1221
  }
1179
1222
  }
1180
1223
  }
@@ -1200,7 +1243,27 @@ function buildComponents(tokens2) {
1200
1243
  border: `1px solid ${border4.secondary}`,
1201
1244
  backgroundColor: bg4.primary,
1202
1245
  boxShadow: tokenShadows.xs,
1203
- overflow: "hidden"
1246
+ overflow: "hidden",
1247
+ // Which surface a wrapped CardActionArea should paint. The action
1248
+ // area can't read the Card's own `background-color` (the Card goes
1249
+ // transparent when it wraps one, see below), so the colour is handed
1250
+ // down as a custom property instead. `<Card color="secondary">`
1251
+ // overrides it alongside its own background.
1252
+ "--forest-card-surface": bg4.primary,
1253
+ // A Card wrapping a CardActionArea hands its whole frame over: the
1254
+ // action area already draws the border, surface, radius and shadow,
1255
+ // and flips the radius on hover. Keeping the Card's own stacks a
1256
+ // second, static border just outside the moving one.
1257
+ "&:has(> .MuiCardActionArea-root)": {
1258
+ border: "none",
1259
+ borderRadius: 0,
1260
+ backgroundColor: "transparent",
1261
+ boxShadow: "none",
1262
+ // The action area clips its own content (it has overflow: hidden
1263
+ // for the glaze), so the Card must not also clip — its square
1264
+ // corners would cut the action area's rounded ones.
1265
+ overflow: "visible"
1266
+ }
1204
1267
  }
1205
1268
  }
1206
1269
  },
@@ -2298,52 +2361,67 @@ function buildComponents(tokens2) {
2298
2361
  }
2299
2362
  },
2300
2363
  // ─── CardActionArea ─────────────────────────────────────────────
2301
- // Clickable-card affordance: mirrors the Button's faux-3D bevel (thick edge
2302
- // that flips bottom->top on hover), light glaze sweep, border-color shift,
2303
- // and press-to-sink. This is what visually marks a card as clickable use
2304
- // <Card><CardActionArea>…</CardActionArea></Card> for any interactive card.
2364
+ // Clickable-card affordance: the outlined Button's interaction at card
2365
+ // scale. Same faux-3D bevel (thick edge that flips bottom->top on hover),
2366
+ // same glaze sweep, same brightness darken on hover, same press-to-sink
2367
+ // the only difference is the radius, which stays on the card steps
2368
+ // (xl / 2xl) rather than the button's (md / lg). Use
2369
+ // <Card><CardActionArea>…</CardActionArea></Card> for any interactive card;
2370
+ // the Card hands over its border and surface when it sees one.
2305
2371
  MuiCardActionArea: {
2306
2372
  styleOverrides: {
2307
2373
  root: {
2308
2374
  position: "relative",
2309
2375
  overflow: "hidden",
2310
- borderRadius: radius4.xl,
2376
+ borderRadius: radius4["2xl"],
2311
2377
  borderStyle: "solid",
2312
- borderColor: border4.primary,
2378
+ // The token the outlined Button reads, not `border.primary`, so the
2379
+ // two stay identical under any preset.
2380
+ borderColor: buttonColors4.secondaryColor.border,
2381
+ // Painted here rather than on the Card, which goes transparent so its
2382
+ // square box can't clip these corners. Falls back to the default card
2383
+ // surface when a CardActionArea is used outside a Card.
2384
+ backgroundColor: `var(--forest-card-surface, ${bg4.primary})`,
2313
2385
  borderTopWidth: 1,
2314
2386
  borderRightWidth: 1,
2315
2387
  borderLeftWidth: 1,
2316
- borderBottomWidth: 4,
2317
- borderBottomLeftRadius: radius4["2xl"],
2318
- borderBottomRightRadius: radius4["2xl"],
2388
+ borderBottomWidth: 3,
2319
2389
  boxShadow: tokenShadows.xs,
2320
- transition: "box-shadow 300ms ease, border-width 300ms ease, border-radius 300ms ease, border-color 300ms ease, opacity 300ms ease",
2321
- // Moving glaze — a soft light streak that sweeps top->bottom on hover.
2390
+ transition: "filter 300ms ease, border-width 300ms ease, border-radius 300ms ease, opacity 300ms ease, background-color 300ms ease",
2391
+ "&:focus-visible": {
2392
+ boxShadow: focusRings4.brandShadowXs
2393
+ },
2394
+ // Moving glaze — a soft light streak that sweeps top->bottom on
2395
+ // hover. Same parameters as the outlined Button's sweep.
2322
2396
  "&::before": {
2323
2397
  content: '""',
2324
2398
  position: "absolute",
2325
2399
  left: 0,
2326
2400
  top: "-150%",
2327
2401
  width: "100%",
2328
- height: 6,
2402
+ height: 5,
2329
2403
  borderRadius: 4,
2330
- backgroundColor: "color-mix(in srgb, currentColor 40%, #fff)",
2331
- boxShadow: "0 0 28px 6px color-mix(in srgb, currentColor 40%, #fff)",
2332
- opacity: 0.35,
2404
+ backgroundColor: "color-mix(in srgb, currentColor 45%, #fff)",
2405
+ boxShadow: "0 0 24px 4px color-mix(in srgb, currentColor 45%, #fff)",
2406
+ opacity: 0.2,
2333
2407
  filter: "blur(3px)",
2334
2408
  pointerEvents: "none",
2335
- transition: "top 600ms ease-in-out",
2409
+ transition: "top 500ms ease-in-out",
2336
2410
  zIndex: 1
2337
2411
  },
2338
2412
  "&:hover": {
2339
- borderColor: border4.brand,
2340
- borderTopWidth: 4,
2341
- borderBottomWidth: 1,
2342
- borderTopLeftRadius: radius4["2xl"],
2343
- borderTopRightRadius: radius4["2xl"],
2344
- borderBottomLeftRadius: radius4.xl,
2345
- borderBottomRightRadius: radius4.xl,
2346
- boxShadow: tokenShadows.lg
2413
+ // Darken the whole surface via brightness, the same mechanism the
2414
+ // outlined Button uses — no border-color shift; the border stays
2415
+ // put and only the bevel geometry moves. Lighter than the Button's
2416
+ // 0.97 on purpose: the filter dims a card's media and copy along
2417
+ // with its surface, so the same amount reads much heavier here.
2418
+ filter: "brightness(0.995)",
2419
+ // The Button drops its resting shadow on hover (MUI's
2420
+ // disableElevation), so the raised edge is the only depth cue
2421
+ // mid-interaction. Matched here for parity.
2422
+ boxShadow: "none",
2423
+ borderTopWidth: 3,
2424
+ borderBottomWidth: 1
2347
2425
  },
2348
2426
  "&:hover::before": {
2349
2427
  top: "150%"
@@ -2353,15 +2431,13 @@ function buildComponents(tokens2) {
2353
2431
  "&:active": {
2354
2432
  transition: "border-width 120ms ease, border-radius 120ms ease, opacity 120ms ease",
2355
2433
  borderTopWidth: 1,
2356
- borderTopLeftRadius: radius4.xl,
2357
- borderTopRightRadius: radius4.xl,
2358
- opacity: 0.85
2359
- },
2360
- "&:hover .MuiCardActionArea-focusHighlight": {
2361
- opacity: 0.04
2434
+ opacity: 0.75
2362
2435
  },
2363
- "&.Mui-focusVisible .MuiCardActionArea-focusHighlight": {
2364
- opacity: 0.08
2436
+ // MUI's own hover/focus tint overlay. The outlined Button has no
2437
+ // equivalent (it suppresses the variant hover background), so the
2438
+ // brightness darken above is the only hover feedback.
2439
+ "& .MuiCardActionArea-focusHighlight": {
2440
+ opacity: 0
2365
2441
  },
2366
2442
  "@media (prefers-reduced-motion: reduce)": {
2367
2443
  transition: "none",
@@ -3116,7 +3192,12 @@ var display = {
3116
3192
  var container = {
3117
3193
  maxWidthDesktop: 1280,
3118
3194
  paddingDesktop: 32,
3119
- paddingMobile: 16
3195
+ paddingMobile: 16,
3196
+ // Corner radius of the App Shell's content surface where it meets the
3197
+ // chrome. Deliberately a layout value rather than a step on the `radius`
3198
+ // scale: that scale governs components (and the alkemy+ preset caps it at
3199
+ // 22), so a 24 sitting in it would misread as a component radius.
3200
+ shellRadius: 24
3120
3201
  };
3121
3202
  var widths = {
3122
3203
  xxs: 320,
@@ -3382,15 +3463,15 @@ var alpha = {
3382
3463
  var highlight = magenta;
3383
3464
  var radius2 = {
3384
3465
  ...radius,
3385
- xxs: 1,
3386
- xs: 2,
3387
- sm: 3,
3388
- md: 4,
3389
- lg: 5,
3390
- xl: 6,
3391
- "2xl": 8,
3392
- "3xl": 10,
3393
- "4xl": 12
3466
+ xxs: 2,
3467
+ xs: 4,
3468
+ sm: 6,
3469
+ md: 8,
3470
+ lg: 11,
3471
+ xl: 14,
3472
+ "2xl": 16,
3473
+ "3xl": 20,
3474
+ "4xl": 22
3394
3475
  };
3395
3476
  var text2 = {
3396
3477
  primary: gray[50],
@@ -3705,15 +3786,15 @@ var colors = {
3705
3786
  };
3706
3787
  var radius3 = {
3707
3788
  ...radius,
3708
- xxs: 1,
3709
- xs: 2,
3710
- sm: 3,
3711
- md: 4,
3712
- lg: 5,
3713
- xl: 6,
3714
- "2xl": 8,
3715
- "3xl": 10,
3716
- "4xl": 12
3789
+ xxs: 2,
3790
+ xs: 4,
3791
+ sm: 6,
3792
+ md: 8,
3793
+ lg: 11,
3794
+ xl: 14,
3795
+ "2xl": 16,
3796
+ "3xl": 20,
3797
+ "4xl": 22
3717
3798
  };
3718
3799
  var text3 = {
3719
3800
  primary: gray[900],
@@ -4049,4 +4130,4 @@ export {
4049
4130
  forestTheme,
4050
4131
  forestThemeOptions
4051
4132
  };
4052
- //# sourceMappingURL=chunk-NXIZI6F7.mjs.map
4133
+ //# sourceMappingURL=chunk-B5MZMBLL.mjs.map