@homebound/beam 2.256.1 → 2.257.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.
@@ -10,7 +10,8 @@ function Avatar({ src, name, size = "md", showName = false, ...others }) {
10
10
  const tid = (0, utils_1.useTestIds)(others, "avatar");
11
11
  const px = sizeToPixel[size];
12
12
  const [showFallback, setShowFallback] = (0, react_1.useState)(src === undefined);
13
- const styles = Css_1.Css.br100.wPx(px).hPx(px).overflowHidden.$;
13
+ // Define min-width as well as width to prevent the image from shrinking when displayed within a flex-child that allows shrinking.
14
+ const styles = Css_1.Css.br100.wPx(px).hPx(px).mwPx(px).overflowHidden.$;
14
15
  const img = showFallback ? ((0, jsx_runtime_1.jsx)("div", { css: { ...styles, ...Css_1.Css[sizeToFallbackTypeScale[size]].bgGray400.gray100.df.aic.jcc.$ }, ...tid, children: name ? nameToInitials(name) : (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: "userCircle", inc: sizeToIconInc[size] }) })) : ((0, jsx_runtime_1.jsx)("img", { src: src, alt: name, css: { ...styles, ...Css_1.Css.objectCover.$ }, onError: () => setShowFallback(true), loading: "lazy", ...tid }));
15
16
  return showName && name ? ((0, jsx_runtime_1.jsxs)("div", { css: Css_1.Css.dif.aic.gap1.if(size === "lg" || size === "xl").fdc.$, children: [img, (0, jsx_runtime_1.jsx)("span", { css: Css_1.Css[sizeToTypeScale[size]].$, children: name })] })) : (img);
16
17
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { TestIds } from "../../utils/useTestIds";
2
3
  /**
3
4
  * Defines the filters for a given filter type `F`.
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.ModalFooter = exports.ModalBody = exports.ModalHeader = exports.Modal = void 0;
7
4
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
8
5
  const form_state_1 = require("@homebound/form-state");
9
- const resize_observer_1 = __importDefault(require("@react-hook/resize-observer"));
6
+ const utils_1 = require("@react-aria/utils");
10
7
  const react_1 = require("react");
11
8
  const react_aria_1 = require("react-aria");
12
9
  const react_dom_1 = require("react-dom");
@@ -14,7 +11,7 @@ const BeamContext_1 = require("../BeamContext");
14
11
  const IconButton_1 = require("../IconButton");
15
12
  const useModal_1 = require("./useModal");
16
13
  const Css_1 = require("../../Css");
17
- const utils_1 = require("../../utils");
14
+ const utils_2 = require("../../utils");
18
15
  /**
19
16
  * Internal component for displaying a Modal; see `useModal` for the public API.
20
17
  *
@@ -42,16 +39,20 @@ function Modal(props) {
42
39
  const modalBodyRef = (0, react_1.useRef)(null);
43
40
  const modalFooterRef = (0, react_1.useRef)(null);
44
41
  const modalHeaderRef = (0, react_1.useRef)(null);
45
- const testId = (0, utils_1.useTestIds)({}, testIdPrefix);
42
+ const testId = (0, utils_2.useTestIds)({}, testIdPrefix);
46
43
  (0, react_aria_1.usePreventScroll)();
47
44
  if (api) {
48
45
  api.current = { setSize: (size = "md") => setSize(getSize(size)) };
49
46
  }
50
47
  const [hasScroll, setHasScroll] = (0, react_1.useState)(forceScrolling !== null && forceScrolling !== void 0 ? forceScrolling : false);
51
- (0, resize_observer_1.default)(modalBodyRef, ({ target }) => {
52
- if (forceScrolling === undefined && !isFixedHeight) {
53
- setHasScroll(target.scrollHeight > target.clientHeight);
54
- }
48
+ (0, utils_1.useResizeObserver)({
49
+ ref: modalBodyRef,
50
+ onResize: (0, react_1.useCallback)(() => {
51
+ const target = modalBodyRef.current;
52
+ if (forceScrolling === undefined && !isFixedHeight) {
53
+ setHasScroll(target.scrollHeight > target.clientHeight);
54
+ }
55
+ }, []),
55
56
  });
56
57
  // Even though we use raw-divs for the createPortal calls, we do actually need to
57
58
  // use refs + useEffect to stitch those raw divs back into the React component tree.
@@ -76,7 +77,7 @@ exports.ModalHeader = ModalHeader;
76
77
  /** Provides consistent styling and the scrolling behavior for a modal's primary content. */
77
78
  function ModalBody({ children, virtualized = false, }) {
78
79
  const { modalBodyDiv } = (0, BeamContext_1.useBeamContext)();
79
- const testId = (0, utils_1.useTestIds)({}, testIdPrefix);
80
+ const testId = (0, utils_2.useTestIds)({}, testIdPrefix);
80
81
  return (0, react_dom_1.createPortal)(
81
82
  // If `virtualized`, then we are expecting the `children` will handle their own scrollbar, so have the overflow hidden and adjust padding
82
83
  (0, jsx_runtime_1.jsx)("div", { css: Css_1.Css.h100.if(virtualized).overflowHidden.pl3.else.px3.$, ...testId.content, children: children }), modalBodyDiv);
@@ -85,7 +86,7 @@ exports.ModalBody = ModalBody;
85
86
  /** Provides consistent styling for modal footers, i.e. where actions are placed. */
86
87
  function ModalFooter({ children, xss, }) {
87
88
  const { modalFooterDiv } = (0, BeamContext_1.useBeamContext)();
88
- const testId = (0, utils_1.useTestIds)({}, testIdPrefix);
89
+ const testId = (0, utils_2.useTestIds)({}, testIdPrefix);
89
90
  return (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)("div", { css: { ...Css_1.Css.p3.df.aic.jcfe.gap1.$, ...xss }, ...testId.footer, children: children }), modalFooterDiv);
90
91
  }
91
92
  exports.ModalFooter = ModalFooter;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { ModalProps } from "./Modal";
2
3
  export interface OpenModalProps {
3
4
  /** The custom modal content to show. */
@@ -30,11 +30,11 @@ exports.TabsWithContent = TabsWithContent;
30
30
  function TabContent(props) {
31
31
  const tid = (0, utils_1.useTestIds)(props, "tab");
32
32
  const { tabs, contentXss = {} } = props;
33
- const location = (0, react_router_1.useLocation)();
33
+ const location = (0, react_router_dom_1.useLocation)();
34
34
  const selectedTab = isRouteTabs(props)
35
35
  ? props.tabs.find((t) => {
36
36
  const paths = Array.isArray(t.path) ? t.path : [t.path];
37
- return paths.some((p) => !!(0, react_router_1.matchPath)(location.pathname, { path: t.path, exact: true }));
37
+ return paths.some((p) => !!(0, react_router_1.matchPath)(location.pathname, { path: p, exact: true }));
38
38
  }) || tabs[0]
39
39
  : props.tabs.find((tab) => tab.value === props.selected) || tabs[0];
40
40
  const uniqueValue = uniqueTabValue(selectedTab);
@@ -46,7 +46,7 @@ exports.TabContent = TabContent;
46
46
  /** The top list of tabs. */
47
47
  function Tabs(props) {
48
48
  const { ariaLabel, tabs, includeBottomBorder, right, ...others } = props;
49
- const location = (0, react_router_1.useLocation)();
49
+ const location = (0, react_router_dom_1.useLocation)();
50
50
  const selected = isRouteTabs(props)
51
51
  ? uniqueTabValue(props.tabs.find((t) => !!(0, react_router_1.matchPath)(location.pathname, { path: t.path, exact: true })) || props.tabs[0])
52
52
  : props.selected;
@@ -5,9 +5,7 @@ const react_1 = require("react");
5
5
  const ToastContext_1 = require("./ToastContext");
6
6
  function useToast() {
7
7
  const { setNotice } = (0, ToastContext_1.useToastContext)();
8
- const showToast = (0, react_1.useCallback)((props) => {
9
- setNotice(props);
10
- }, [setNotice]);
8
+ const showToast = (0, react_1.useCallback)((props) => setNotice(props), [setNotice]);
11
9
  return { showToast };
12
10
  }
13
11
  exports.useToast = useToast;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /** Internal component to help create compound fields */
2
3
  export declare function CompoundField({ children }: {
3
4
  children: JSX.Element[];
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from "react";
2
2
  export interface ContextualModalProps {
3
- content: ReactNode;
3
+ content: ReactNode | ((close: () => void) => ReactNode);
4
4
  title?: string;
5
5
  close: () => void;
6
6
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FieldState } from "@homebound/form-state";
2
3
  import { Value } from "../inputs";
3
4
  import { ChipSelectFieldProps } from "../inputs/ChipSelectField";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FieldState } from "@homebound/form-state";
2
3
  import { MultiLineSelectFieldProps, Value } from "../inputs";
3
4
  import { HasIdAndName, Optional } from "../types";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FieldState } from "@homebound/form-state";
2
3
  import { MultiSelectFieldProps, Value } from "../inputs";
3
4
  import { HasIdAndName, Optional } from "../types";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Only } from "../Css";
2
3
  import { BoundSelectFieldProps, BoundTextFieldProps } from "./index";
3
4
  import { Value } from "../inputs/Value";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FieldState } from "@homebound/form-state";
2
3
  import { SelectFieldProps, Value } from "../inputs";
3
4
  import { HasIdAndName, Optional } from "../types";
@@ -4,8 +4,8 @@ type BreakpointsType = Record<Breakpoint, boolean>;
4
4
  * A React hook to return a record of responsive breakpoints that updates on resize.
5
5
  *
6
6
  * @example
7
- * const { breakpoints } = useBreakpoint();
7
+ * const breakpoints = useBreakpoint();
8
8
  * if (breakpoints.mdAndDown) { ...do something cool }
9
9
  */
10
- export declare const useBreakpoint: () => BreakpointsType;
10
+ export declare function useBreakpoint(): BreakpointsType;
11
11
  export {};
@@ -13,10 +13,10 @@ const Css_1 = require("../Css");
13
13
  * A React hook to return a record of responsive breakpoints that updates on resize.
14
14
  *
15
15
  * @example
16
- * const { breakpoints } = useBreakpoint();
16
+ * const breakpoints = useBreakpoint();
17
17
  * if (breakpoints.mdAndDown) { ...do something cool }
18
18
  */
19
- const useBreakpoint = () => {
19
+ function useBreakpoint() {
20
20
  const [breakpoints, setBreakpoints] = (0, react_1.useState)(matchMediaBreakpoints());
21
21
  const handleResize = (0, use_debounce_1.useDebouncedCallback)(() => {
22
22
  const newBps = matchMediaBreakpoints();
@@ -30,7 +30,7 @@ const useBreakpoint = () => {
30
30
  return () => window.removeEventListener("resize", handleResize);
31
31
  }, [handleResize]);
32
32
  return breakpoints;
33
- };
33
+ }
34
34
  exports.useBreakpoint = useBreakpoint;
35
35
  function matchMediaBreakpoints() {
36
36
  const bps = {};
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Value } from "./";
2
3
  import { BeamSelectFieldBaseProps } from "./internal/SelectFieldBase";
3
4
  import { Optional } from "../types";
@@ -35,8 +35,6 @@ function RadioGroupField(props) {
35
35
  // We use useRadioGroup b/c it does neat keyboard up/down stuff
36
36
  // TODO: Pass read only, required, error message to useRadioGroup
37
37
  const { labelProps, radioGroupProps } = (0, react_aria_1.useRadioGroup)({ label, isDisabled: disabled }, state);
38
- // max-width is dependent on having descriptions
39
- const anyDescriptions = options.some((o) => !!o.description);
40
38
  return (
41
39
  // default styling to position `<Label />` above.
42
40
  (0, jsx_runtime_1.jsxs)("div", { css: Css_1.Css.df.fdc.gap1.aifs.if(labelStyle === "left").fdr.gap2.jcsb.$, children: [(0, jsx_runtime_1.jsx)(Label_1.Label, { label: label, ...labelProps, ...tid.label, hidden: labelStyle === "hidden" }), (0, jsx_runtime_1.jsxs)("div", { ...radioGroupProps, children: [options.map((option) => {
@@ -68,7 +66,7 @@ function Radio(props) {
68
66
  ...(isFocusVisible ? exports.radioFocus : {}),
69
67
  // Nudge down so the center of the circle lines up with the label text
70
68
  ...Css_1.Css.mtPx(2).mr1.$,
71
- }, disabled: disabled, "aria-labelledby": labelId, ...inputProps, ...focusProps, ...others }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { id: labelId, css: Css_1.Css.smMd.gray800.if(disabled).gray400.$, ...(description ? { "aria-describedby": descriptionId } : {}), children: label }), description && ((0, jsx_runtime_1.jsx)("div", { id: descriptionId, css: Css_1.Css.sm.gray700.if(disabled).gray400.$, children: description }))] })] }));
69
+ }, disabled: disabled, "aria-labelledby": labelId, ...inputProps, ...focusProps, ...others }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { id: labelId, css: Css_1.Css.smMd.gray800.if(disabled).gray400.$, ...(description ? { "aria-describedby": descriptionId } : {}), children: label }), description && ((0, jsx_runtime_1.jsx)("div", { id: descriptionId, css: Css_1.Css.sm.gray700.if(disabled).gray400.$, children: typeof description === "function" ? description() : description }))] })] }));
72
70
  }
73
71
  const whiteCircle = "data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='4'/%3e%3c/svg%3e";
74
72
  // Didn't put these in radioReset yet, are they needed?
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Value } from "./";
2
3
  import { BeamSelectFieldBaseProps } from "./internal/SelectFieldBase";
3
4
  import { HasIdAndName, Optional } from "../types";
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Node } from "@react-types/shared";
2
3
  import { SelectState } from "react-stately";
3
4
  interface VirtualizedOptionsProps<O> {
@@ -1,3 +1,6 @@
1
+ import { Interpolation, Theme } from "@emotion/react";
1
2
  import { PressEvent } from "@react-types/shared";
2
3
  import { HTMLAttributes, ReactNode } from "react";
3
- export declare function getButtonOrLink(content: ReactNode, onClick: ((e: PressEvent) => void) | VoidFunction | string | undefined, attrs: HTMLAttributes<HTMLButtonElement | HTMLAnchorElement>, openInNew?: boolean, downloadLink?: boolean): JSX.Element;
4
+ export declare function getButtonOrLink(content: ReactNode, onClick: ((e: PressEvent) => void) | VoidFunction | string | undefined, attrs: HTMLAttributes<HTMLButtonElement | HTMLAnchorElement> & {
5
+ css?: Interpolation<Theme>;
6
+ }, openInNew?: boolean, downloadLink?: boolean): JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { newLocation as _newLocation, withRouter as _withRouter } from "@homebound/rtl-react-router-utils";
2
- import { change as _change, click as _click, getOptions as _getOptions, input as _input, RenderResult, select as _select, type as _type, typeAndWait as _typeAndWait, wait as _wait, Wrapper } from "@homebound/rtl-utils";
2
+ import { blur as _blur, change as _change, click as _click, focus as _focus, getOptions as _getOptions, input as _input, RenderResult, select as _select, type as _type, typeAndWait as _typeAndWait, wait as _wait, Wrapper } from "@homebound/rtl-utils";
3
3
  import { ReactElement } from "react";
4
- export { _change as change, _click as click, _getOptions as getOptions, _input as input, _select as select, _type as type, _typeAndWait as typeAndWait, _wait as wait, };
4
+ export { _blur as blur, _change as change, _click as click, _focus as focus, _getOptions as getOptions, _input as input, _select as select, _type as type, _typeAndWait as typeAndWait, _wait as wait, };
5
5
  export { _newLocation as newLocation, _withRouter as withRouter };
6
6
  interface RenderOpts {
7
7
  at?: {
package/dist/utils/rtl.js CHANGED
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withBeamRTL = exports.tableSnapshot = exports.rowAnd = exports.row = exports.cellAnd = exports.cellOf = exports.cell = exports.render = exports.withRouter = exports.newLocation = exports.wait = exports.typeAndWait = exports.type = exports.select = exports.input = exports.getOptions = exports.click = exports.change = void 0;
3
+ exports.withBeamRTL = exports.tableSnapshot = exports.rowAnd = exports.row = exports.cellAnd = exports.cellOf = exports.cell = exports.render = exports.withRouter = exports.newLocation = exports.wait = exports.typeAndWait = exports.type = exports.select = exports.input = exports.getOptions = exports.focus = exports.click = exports.change = exports.blur = void 0;
4
4
  const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
5
  const rtl_react_router_utils_1 = require("@homebound/rtl-react-router-utils");
6
6
  Object.defineProperty(exports, "newLocation", { enumerable: true, get: function () { return rtl_react_router_utils_1.newLocation; } });
7
7
  Object.defineProperty(exports, "withRouter", { enumerable: true, get: function () { return rtl_react_router_utils_1.withRouter; } });
8
8
  const rtl_utils_1 = require("@homebound/rtl-utils");
9
+ Object.defineProperty(exports, "blur", { enumerable: true, get: function () { return rtl_utils_1.blur; } });
9
10
  Object.defineProperty(exports, "change", { enumerable: true, get: function () { return rtl_utils_1.change; } });
10
11
  Object.defineProperty(exports, "click", { enumerable: true, get: function () { return rtl_utils_1.click; } });
12
+ Object.defineProperty(exports, "focus", { enumerable: true, get: function () { return rtl_utils_1.focus; } });
11
13
  Object.defineProperty(exports, "getOptions", { enumerable: true, get: function () { return rtl_utils_1.getOptions; } });
12
14
  Object.defineProperty(exports, "input", { enumerable: true, get: function () { return rtl_utils_1.input; } });
13
15
  Object.defineProperty(exports, "select", { enumerable: true, get: function () { return rtl_utils_1.select; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homebound/beam",
3
- "version": "2.256.1",
3
+ "version": "2.257.0",
4
4
  "author": "Homebound",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -15,18 +15,18 @@
15
15
  "!dist/setupTests.*"
16
16
  ],
17
17
  "engines": {
18
- "node": ">=16.4.0"
18
+ "node": ">=18.13.0"
19
19
  },
20
20
  "scripts": {
21
21
  "start": "yarn storybook",
22
22
  "build": "yarn copy && ttsc",
23
23
  "build:truss": "truss",
24
- "build:storybook": "build-storybook -s storybookAssets",
24
+ "build-storybook": "NODE_OPTIONS=--openssl-legacy-provider build-storybook",
25
25
  "test": "jest --maxWorkers 4",
26
26
  "test:watch": "jest --watch",
27
27
  "lint": "eslint --ext js,ts,tsx src",
28
28
  "lint:fix": "eslint --ext js,ts,tsx --fix src",
29
- "storybook": "start-storybook -p 9000 -s storybookAssets",
29
+ "storybook": "NODE_OPTIONS=--openssl-legacy-provider start-storybook -p 9000",
30
30
  "chromatic": "chromatic --project-token=074248da7284 --exit-once-uploaded --only-changed",
31
31
  "copy": "npx copyfiles -u 1 \"./src/**/*.css\" \"./dist/\"",
32
32
  "copy-to-internal-frontend": "cp -r dist/* ~/homebound/internal-frontend/node_modules/@homebound/beam/dist/",
@@ -35,19 +35,19 @@
35
35
  "dependencies": {
36
36
  "@homebound/form-state": "^2.17.0",
37
37
  "@internationalized/number": "^3.0.3",
38
+ "@popperjs/core": "^2.11.6",
38
39
  "@react-aria/utils": "^3.13.2",
39
- "@react-hook/resize-observer": "^1.2.2",
40
40
  "change-case": "^4.1.2",
41
41
  "date-fns": "^2.28.0",
42
42
  "dompurify": "^2.3.0",
43
43
  "fast-deep-equal": "^3.1.3",
44
- "framer-motion": "^4.1.11",
44
+ "framer-motion": "^9.0.4",
45
45
  "memoize-one": "^5.2.1",
46
46
  "react-aria": "^3.18.0",
47
47
  "react-day-picker": "8.0.7",
48
- "react-popper": "^2.2.5",
49
- "react-router": "^5.2.0",
50
- "react-router-dom": "^5.2.0",
48
+ "react-popper": "^2.3.0",
49
+ "react-router": "^5.3.4",
50
+ "react-router-dom": "^5.3.4",
51
51
  "react-stately": "^3.16.0",
52
52
  "react-virtuoso": "2.10.2",
53
53
  "tributejs": "^5.1.3",
@@ -70,68 +70,71 @@
70
70
  }
71
71
  },
72
72
  "devDependencies": {
73
- "@babel/core": "^7.15.5",
74
- "@emotion/babel-preset-css-prop": "^11.2.0",
75
- "@emotion/jest": "^11.3.0",
76
- "@emotion/react": "^11.1.5",
77
- "@homebound/eslint-config": "1.5.1",
78
- "@homebound/rtl-react-router-utils": "^1.0.3",
79
- "@homebound/rtl-utils": "^2.59.3",
73
+ "@babel/core": "^7.21.0",
74
+ "@emotion/babel-preset-css-prop": "^11.10.0",
75
+ "@emotion/jest": "^11.10.5",
76
+ "@emotion/react": "^11.10.6",
77
+ "@homebound/eslint-config": "1.6.1",
78
+ "@homebound/rtl-react-router-utils": "1.0.3",
79
+ "@homebound/rtl-utils": "^2.61.1",
80
80
  "@homebound/truss": "^1.123.0",
81
81
  "@homebound/tsconfig": "^1.0.3",
82
- "@pmmmwh/react-refresh-webpack-plugin": "^0.5.7",
83
82
  "@semantic-release/exec": "^6.0.3",
84
- "@semantic-release/git": "^9.0.0",
83
+ "@semantic-release/git": "^10.0.1",
85
84
  "@storybook/addon-docs": "^6.5.10",
86
85
  "@storybook/addon-essentials": "^6.5.10",
87
86
  "@storybook/addon-interactions": "^6.5.10",
88
87
  "@storybook/addon-links": "^6.5.10",
89
88
  "@storybook/addons": "^6.5.10",
90
- "@storybook/builder-vite": "^0.2.2",
91
- "@storybook/mdx2-csf": "^0.0.3",
92
- "@storybook/react": "^6.5.10",
89
+ "@storybook/builder-vite": "^0.4.2",
90
+ "@storybook/mdx2-csf": "1.0.0-next.0",
91
+ "@storybook/react": "^6.5.16",
93
92
  "@storybook/testing-library": "^0.0.13",
94
- "@testing-library/jest-dom": "^5.11.9",
95
- "@testing-library/react-hooks": "^7.0.1",
96
- "@tsconfig/recommended": "^1.0.1",
93
+ "@testing-library/jest-dom": "^5.16.5",
94
+ "@tsconfig/recommended": "^1.0.2",
97
95
  "@types/dompurify": "^2.2.3",
98
- "@types/jest": "^26.0.20",
99
- "@types/react": "^17.0.5",
100
- "@types/react-beautiful-dnd": "^13.1.2",
101
- "@types/react-dom": "^16.9.11",
102
- "@types/react-router-dom": "^5.1.7",
103
- "@vitejs/plugin-react": "^2.0.1",
96
+ "@types/jest": "^29.4.0",
97
+ "@types/react": "^18.0.28",
98
+ "@types/react-beautiful-dnd": "^13.1.3",
99
+ "@types/react-dom": "^18.0.11",
100
+ "@types/react-router-dom": "^5.3.3",
101
+ "@vitejs/plugin-react": "^3.1.0",
104
102
  "array-move": "^4.0.0",
105
103
  "babel-eslint": "^10.1.0",
106
104
  "babel-loader": "^8.2.2",
107
- "chromatic": "^6.11.4",
108
- "conventional-changelog-conventionalcommits": "^4.5.0",
105
+ "chromatic": "^6.17.0",
106
+ "conventional-changelog-conventionalcommits": "^5.0.0",
109
107
  "eslint": "^8.12.0",
110
108
  "eslint-plugin-storybook": "^0.6.4",
111
109
  "husky": "^5.1.1",
112
110
  "identity-obj-proxy": "^3.0.0",
113
- "jest": "^26.6.3",
114
- "jest-chain": "^1.1.5",
115
- "jest-watch-typeahead": "^0.6.5",
116
- "mobx": "^6.3.2",
117
- "mobx-react": "^7.2.0",
118
- "prettier": "^2.8.1",
119
- "prettier-plugin-organize-imports": "^3.2.1",
120
- "react": "^16.14.0",
121
- "react-beautiful-dnd": "^13.1.0",
122
- "react-dom": "^16.14.0",
123
- "semantic-release": "^17.4.0",
111
+ "jest": "^29.4.3",
112
+ "jest-chain": "^1.1.6",
113
+ "jest-environment-jsdom": "^29.4.3",
114
+ "jest-watch-typeahead": "^2.2.2",
115
+ "mobx": "^6.8.0",
116
+ "mobx-react": "^7.6.0",
117
+ "prettier": "^2.8.4",
118
+ "prettier-plugin-organize-imports": "^3.2.2",
119
+ "react": "^18.2.0",
120
+ "react-beautiful-dnd": "^13.1.1",
121
+ "react-dom": "^18.2.0",
122
+ "semantic-release": "^20.1.0",
124
123
  "storybook-addon-designs": "^6.3.1",
125
124
  "storybook-addon-performance": "^0.16.1",
126
- "ts-jest": "^26.5.3",
127
- "ts-node": "^9.1.1",
125
+ "ts-jest": "^29.0.5",
126
+ "ts-node": "^10.9.1",
128
127
  "tslib": "^2.1.0",
129
128
  "ttypescript": "^1.5.15",
130
- "typescript": "^4.9.4",
131
- "typescript-transform-paths": "^3.4.4",
132
- "vite": "^3.0.9",
129
+ "typescript": "^4.9.5",
130
+ "typescript-transform-paths": "^3.4.6",
131
+ "vite": "^4.1.4",
133
132
  "vite-plugin-turbosnap": "^1.0.1",
134
133
  "watch": "^1.0.2"
135
134
  },
135
+ "resolutions": {
136
+ "@types/react": "18.0.28",
137
+ "react-router": "5.3.4"
138
+ },
136
139
  "packageManager": "yarn@3.3.0"
137
140
  }