@carbonplan/components 13.4.0-develop.0 → 13.4.0-develop.1

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/dst/index.mjs CHANGED
@@ -1284,7 +1284,7 @@ import { Box as Box22 } from "theme-ui";
1284
1284
  import { PoopSad } from "@carbonplan/emoji";
1285
1285
 
1286
1286
  // src/layout.tsx
1287
- import React31, { useEffect as useEffect7 } from "react";
1287
+ import React31, { useEffect as useEffect8 } from "react";
1288
1288
  import { useThemeUI as useThemeUI3, Container as Container3, Flex as Flex5, Box as Box21 } from "theme-ui";
1289
1289
 
1290
1290
  // src/meta.tsx
@@ -1598,7 +1598,7 @@ var Menu = (props) => {
1598
1598
  var menu_default = Menu;
1599
1599
 
1600
1600
  // src/header/navigation-menu.tsx
1601
- import React18 from "react";
1601
+ import React18, { useEffect as useEffect2 } from "react";
1602
1602
  import { default as NextLink2 } from "next/link";
1603
1603
  import { Link as Link2 } from "theme-ui";
1604
1604
  import { Arrow as Arrow2 } from "@carbonplan/icons";
@@ -1677,6 +1677,13 @@ var Nav = ({ link, mode, nav, first, setExpanded }) => {
1677
1677
  }
1678
1678
  };
1679
1679
  var NavigationMenu = ({ nav, mode, setExpanded }) => {
1680
+ useEffect2(() => {
1681
+ const handler = (e) => {
1682
+ if (e.key === "Escape") setExpanded(false);
1683
+ };
1684
+ document.addEventListener("keydown", handler);
1685
+ return () => document.removeEventListener("keydown", handler);
1686
+ }, [setExpanded]);
1680
1687
  return /* @__PURE__ */ React18.createElement(React18.Fragment, null, links.map((d, i) => /* @__PURE__ */ React18.createElement(
1681
1688
  Nav,
1682
1689
  {
@@ -1700,7 +1707,7 @@ var Search = (props) => {
1700
1707
  var search_default = Search;
1701
1708
 
1702
1709
  // src/header/search-menu.tsx
1703
- import React21, { useEffect as useEffect2, useState as useState2 } from "react";
1710
+ import React21, { useEffect as useEffect3, useState as useState2 } from "react";
1704
1711
  import { Box as Box13, Flex as Flex2, Link as Link3 } from "theme-ui";
1705
1712
  import { Arrow as Arrow3, RotatingArrow } from "@carbonplan/icons";
1706
1713
 
@@ -1787,11 +1794,13 @@ var sx2 = {
1787
1794
  color: "secondary"
1788
1795
  }
1789
1796
  };
1790
- var SearchMenu = ({}) => {
1797
+ var SearchMenu = ({
1798
+ setExpanded
1799
+ }) => {
1791
1800
  const [value, setValue] = useState2("");
1792
1801
  const [resources, setResources] = useState2(RESOURCES);
1793
1802
  const destination = `/search?query=${value.trim()}`;
1794
- useEffect2(() => {
1803
+ useEffect3(() => {
1795
1804
  fetch("/resources.json").then((res) => res.json()).then((res) => {
1796
1805
  if (res.length === 3 && res.every((el) => el.label && Array.isArray(el.links))) {
1797
1806
  setResources(res);
@@ -1800,6 +1809,13 @@ var SearchMenu = ({}) => {
1800
1809
  setResources(RESOURCES);
1801
1810
  });
1802
1811
  }, []);
1812
+ useEffect3(() => {
1813
+ const handler = (e) => {
1814
+ if (e.key === "Escape") setExpanded(false);
1815
+ };
1816
+ document.addEventListener("keydown", handler);
1817
+ return () => document.removeEventListener("keydown", handler);
1818
+ }, [setExpanded]);
1803
1819
  return /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(row_default, { columns: [6, 6, 10, 10] }, /* @__PURE__ */ React21.createElement(column_default, { start: 1, width: [6, 6, 10, 10] }, /* @__PURE__ */ React21.createElement(
1804
1820
  Flex2,
1805
1821
  {
@@ -1847,6 +1863,7 @@ var SearchMenu = ({}) => {
1847
1863
  /* @__PURE__ */ React21.createElement(
1848
1864
  input_default,
1849
1865
  {
1866
+ autoFocus: true,
1850
1867
  id: "search",
1851
1868
  size: "xl",
1852
1869
  value,
@@ -1874,15 +1891,7 @@ var SearchMenu = ({}) => {
1874
1891
  columns: [6, 6, 10, 10],
1875
1892
  sx: { display: ["none", "grid", "grid", "grid"] }
1876
1893
  },
1877
- /* @__PURE__ */ React21.createElement(
1878
- column_default,
1879
- {
1880
- start: 1,
1881
- width: 5,
1882
- sx: { mt: [2, 2, 8, 8], mb: [1, 1, , 6, 6] }
1883
- },
1884
- /* @__PURE__ */ React21.createElement(Box13, { as: "h2", variant: "styles.h2", sx: { my: 0 } }, "Popular resources")
1885
- ),
1894
+ /* @__PURE__ */ React21.createElement(column_default, { start: 1, width: 5, sx: { mt: [2, 2, 8, 8], mb: [1, 1, 4, 5] } }, /* @__PURE__ */ React21.createElement(Box13, { as: "h2", variant: "styles.h2", sx: { my: 0 } }, "Popular resources")),
1886
1895
  /* @__PURE__ */ React21.createElement(column_default, { start: [1, 1, 2, 2], width: 3 }, /* @__PURE__ */ React21.createElement(Box13, { sx: sx2.highlight }, resources[0].label), resources[0].links.map(({ label, href }) => /* @__PURE__ */ React21.createElement(
1887
1896
  button_default,
1888
1897
  {
@@ -2093,31 +2102,21 @@ var Header = ({ status, mode, nav, menuItems }) => {
2093
2102
  transition: "opacity 0.25s"
2094
2103
  }
2095
2104
  },
2096
- /* @__PURE__ */ React22.createElement(Container, null, /* @__PURE__ */ React22.createElement(row_default, null, menuExpanded ? /* @__PURE__ */ React22.createElement(column_default, { start: [2, 4, 7, 7], width: [5, 4, 5, 5] }, /* @__PURE__ */ React22.createElement(
2097
- Box14,
2105
+ /* @__PURE__ */ React22.createElement(Container, null, /* @__PURE__ */ React22.createElement(row_default, null, menuExpanded && /* @__PURE__ */ React22.createElement(column_default, { start: [2, 4, 7, 7], width: [5, 4, 5, 5] }, /* @__PURE__ */ React22.createElement(Box14, { as: "nav", sx: { mt: [5, 5, 5, 6] } }, /* @__PURE__ */ React22.createElement(
2106
+ navigation_menu_default,
2098
2107
  {
2099
- as: "nav",
2100
- sx: {
2101
- display: menuExpanded ? "inherit" : "none",
2102
- mt: [5, 5, 5, 6]
2103
- }
2104
- },
2105
- /* @__PURE__ */ React22.createElement(
2106
- navigation_menu_default,
2107
- {
2108
- nav,
2109
- mode,
2110
- setExpanded: setMenuExpanded
2111
- }
2112
- )
2113
- )) : /* @__PURE__ */ React22.createElement(column_default, { start: [1, 2, 2, 2], width: [6, 6, 10, 10] }, /* @__PURE__ */ React22.createElement(search_menu_default, { setExpanded: setSearchExpanded }))))
2108
+ nav,
2109
+ mode,
2110
+ setExpanded: setMenuExpanded
2111
+ }
2112
+ ))), searchExpanded && !menuExpanded && /* @__PURE__ */ React22.createElement(column_default, { start: [1, 2, 2, 2], width: [6, 6, 10, 10] }, /* @__PURE__ */ React22.createElement(search_menu_default, { setExpanded: setSearchExpanded }))))
2114
2113
  )
2115
2114
  );
2116
2115
  };
2117
2116
  var header_default = Header;
2118
2117
 
2119
2118
  // src/footer.tsx
2120
- import React24, { useState as useState4, useEffect as useEffect3 } from "react";
2119
+ import React24, { useState as useState4, useEffect as useEffect4 } from "react";
2121
2120
  import { Box as Box16, Flex as Flex4, Link as Link5 } from "theme-ui";
2122
2121
  import { default as NextLink4 } from "next/link";
2123
2122
 
@@ -2146,7 +2145,7 @@ var monogram_default = Monogram;
2146
2145
  // src/footer.tsx
2147
2146
  var Footer = () => {
2148
2147
  const [year, setYear] = useState4(null);
2149
- useEffect3(() => {
2148
+ useEffect4(() => {
2150
2149
  setYear((/* @__PURE__ */ new Date()).getFullYear());
2151
2150
  }, []);
2152
2151
  return /* @__PURE__ */ React24.createElement(
@@ -2411,7 +2410,7 @@ var dimmer_default = Dimmer;
2411
2410
  // src/metadata.tsx
2412
2411
  import React27 from "react";
2413
2412
  import { Box as Box18, Text as Text2 } from "theme-ui";
2414
- import { useState as useState5, useEffect as useEffect4 } from "react";
2413
+ import { useState as useState5, useEffect as useEffect5 } from "react";
2415
2414
 
2416
2415
  // src/gitsha.tsx
2417
2416
  import React26 from "react";
@@ -2471,7 +2470,7 @@ var gitsha_default = GitSha;
2471
2470
  // src/metadata.tsx
2472
2471
  var Value = ({ mode }) => {
2473
2472
  const [display, setDisplay] = useState5(init(mode));
2474
- useEffect4(() => {
2473
+ useEffect5(() => {
2475
2474
  if (mode === "mouse") {
2476
2475
  const setFromEvent = (e) => {
2477
2476
  const x = format(e.clientX, 4);
@@ -2585,7 +2584,7 @@ var FadeIn = (_a) => {
2585
2584
  var fade_in_default = FadeIn;
2586
2585
 
2587
2586
  // src/scrollbar.tsx
2588
- import { useEffect as useEffect5 } from "react";
2587
+ import { useEffect as useEffect6 } from "react";
2589
2588
 
2590
2589
  // src/utils/get-scrollbar-width.ts
2591
2590
  var getScrollbarWidth = (document2) => {
@@ -2605,7 +2604,7 @@ var get_scrollbar_width_default = getScrollbarWidth;
2605
2604
 
2606
2605
  // src/scrollbar.tsx
2607
2606
  var Scrollbar = () => {
2608
- useEffect5(() => {
2607
+ useEffect6(() => {
2609
2608
  if (typeof document !== "undefined") {
2610
2609
  const delta = get_scrollbar_width_default(document);
2611
2610
  if (delta > 0) {
@@ -2619,11 +2618,11 @@ var Scrollbar = () => {
2619
2618
  var scrollbar_default = Scrollbar;
2620
2619
 
2621
2620
  // src/guide.tsx
2622
- import React29, { useState as useState6, useEffect as useEffect6 } from "react";
2621
+ import React29, { useState as useState6, useEffect as useEffect7 } from "react";
2623
2622
  import { Box as Box20, Container as Container2 } from "theme-ui";
2624
2623
  var Guide = ({ color = "muted" }) => {
2625
2624
  const [display, setDisplay] = useState6(false);
2626
- useEffect6(() => {
2625
+ useEffect7(() => {
2627
2626
  function handler(event) {
2628
2627
  const { key, metaKey } = event;
2629
2628
  if (key === ";" && metaKey) {
@@ -2759,7 +2758,7 @@ var Layout = ({
2759
2758
  display: "none"
2760
2759
  }
2761
2760
  } : {};
2762
- useEffect7(() => {
2761
+ useEffect8(() => {
2763
2762
  var _a;
2764
2763
  if (!theme) return;
2765
2764
  const handler = (e) => {
@@ -3699,10 +3698,10 @@ var formatDate = (date, options = defaultOptions) => {
3699
3698
  var format_date_default = formatDate;
3700
3699
 
3701
3700
  // src/utils/use-scrollbar-class.ts
3702
- import { useEffect as useEffect8, useState as useState7 } from "react";
3701
+ import { useEffect as useEffect9, useState as useState7 } from "react";
3703
3702
  var useScrollbarClass = () => {
3704
3703
  const [className, setClassName] = useState7(null);
3705
- useEffect8(() => {
3704
+ useEffect9(() => {
3706
3705
  if (document && get_scrollbar_width_default(document) > 0) {
3707
3706
  setClassName("custom-scrollbar");
3708
3707
  }