@jetbrains/ring-ui 6.0.3 → 6.0.4

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.
@@ -0,0 +1,11 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ type Props = {
3
+ minHeight?: number;
4
+ className?: string;
5
+ 'data-test'?: string | null | undefined;
6
+ };
7
+ /**
8
+ * @name CollapseContent
9
+ */
10
+ export declare const CollapseContent: React.FC<PropsWithChildren<Props>>;
11
+ export default CollapseContent;
@@ -0,0 +1,72 @@
1
+ import React, { useState, useEffect, useRef, useContext, useMemo } from 'react';
2
+ import classNames from 'classnames';
3
+ import dataTests from '../global/data-tests';
4
+ import { getRect } from '../global/dom';
5
+ import { toPx } from './utils';
6
+ import CollapseContext from './collapse-context';
7
+ import { COLLAPSE_CONTENT_TEST_ID, COLLAPSE_CONTENT_CONTAINER_TEST_ID } from './consts';
8
+ import styles from './collapse.css';
9
+ const DURATION_FACTOR = 0.5;
10
+ const DEFAULT_HEIGHT = 0;
11
+ const VISIBLE = 1;
12
+ const HIDDEN = 0;
13
+ /**
14
+ * @name CollapseContent
15
+ */
16
+ export const CollapseContent = ({ children, minHeight = DEFAULT_HEIGHT, 'data-test': dataTest }) => {
17
+ const { collapsed, duration, id, disableAnimation } = useContext(CollapseContext);
18
+ const containerRef = useRef(null);
19
+ const contentRef = useRef(null);
20
+ const initialContentHeight = useRef(minHeight);
21
+ const contentHeight = useRef(DEFAULT_HEIGHT);
22
+ const [dimensions, setDimensions] = useState({
23
+ width: 0,
24
+ height: 0
25
+ });
26
+ const [height, setHeight] = useState(toPx(minHeight));
27
+ const [showFade, setShowFade] = useState(true);
28
+ useEffect(() => {
29
+ if (!collapsed) {
30
+ setShowFade(false);
31
+ }
32
+ else {
33
+ setShowFade(true);
34
+ }
35
+ }, [collapsed]);
36
+ useEffect(() => {
37
+ if (contentRef.current) {
38
+ contentHeight.current = getRect(contentRef.current).height;
39
+ }
40
+ }, [minHeight, dimensions.height]);
41
+ useEffect(() => {
42
+ const nextHeight = collapsed ? initialContentHeight.current : contentHeight.current;
43
+ setHeight(toPx(nextHeight));
44
+ }, [collapsed, dimensions.height]);
45
+ useEffect(() => {
46
+ if (contentRef.current) {
47
+ const observer = new ResizeObserver(([entry]) => {
48
+ if (entry && entry.borderBoxSize) {
49
+ const { inlineSize, blockSize } = entry.borderBoxSize[0];
50
+ setDimensions({ width: inlineSize, height: blockSize });
51
+ }
52
+ });
53
+ observer.observe(contentRef.current);
54
+ }
55
+ }, []);
56
+ const style = useMemo(() => {
57
+ const calculatedDuration = duration + contentHeight.current * DURATION_FACTOR;
58
+ return {
59
+ '--duration': `${calculatedDuration}ms`,
60
+ height,
61
+ opacity: collapsed && !minHeight ? HIDDEN : VISIBLE
62
+ };
63
+ }, [duration, height, collapsed, minHeight]);
64
+ const fadeShouldBeVisible = useMemo(() => Boolean(minHeight && showFade), [minHeight, showFade]);
65
+ return (<div ref={containerRef} id={`collapse-content-${id}`} data-test={dataTests(COLLAPSE_CONTENT_CONTAINER_TEST_ID)} className={classNames(styles.container, { [styles.transition]: !disableAnimation })} style={style}>
66
+ <div ref={contentRef} data-test={dataTests(COLLAPSE_CONTENT_TEST_ID, dataTest)}>
67
+ {children}
68
+ </div>
69
+ {fadeShouldBeVisible && <div className={styles.fade}/>}
70
+ </div>);
71
+ };
72
+ export default CollapseContent;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ interface CollapseContextInterface {
3
+ collapsed: boolean;
4
+ duration: number;
5
+ disableAnimation: boolean;
6
+ setCollapsed: () => void;
7
+ id: string;
8
+ }
9
+ export declare const CollapseContext: import("react").Context<CollapseContextInterface>;
10
+ export default CollapseContext;
@@ -0,0 +1,10 @@
1
+ import { createContext } from 'react';
2
+ import { BASE_ANIMATION_DURATION } from './consts';
3
+ export const CollapseContext = createContext({
4
+ collapsed: true,
5
+ duration: BASE_ANIMATION_DURATION,
6
+ disableAnimation: false,
7
+ setCollapsed: () => { },
8
+ id: ''
9
+ });
10
+ export default CollapseContext;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ type ChildrenFunction = (collapsed: boolean) => React.ReactNode;
3
+ type Props = {
4
+ children: ChildrenFunction | React.ReactNode;
5
+ 'data-test'?: string | null | undefined;
6
+ };
7
+ /**
8
+ * @name CollapseControl
9
+ */
10
+ export declare const CollapseControl: React.FC<Props>;
11
+ export default CollapseControl;
@@ -0,0 +1,22 @@
1
+ import React, { useMemo, useContext, cloneElement } from 'react';
2
+ import dataTests from '../global/data-tests';
3
+ import { CollapseContext } from './collapse-context';
4
+ import { COLLAPSE_CONTROL_TEST_ID } from './consts';
5
+ /**
6
+ * @name CollapseControl
7
+ */
8
+ export const CollapseControl = ({ children, 'data-test': dataTest }) => {
9
+ const { setCollapsed, collapsed, id } = useContext(CollapseContext);
10
+ const child = useMemo(() => {
11
+ if (typeof children === 'function') {
12
+ return <p data-test={dataTests(COLLAPSE_CONTROL_TEST_ID, dataTest)}>{children(collapsed)}</p>;
13
+ }
14
+ return <p data-test={dataTests(COLLAPSE_CONTROL_TEST_ID, dataTest)}>{children}</p>;
15
+ }, [children, collapsed, dataTest]);
16
+ return cloneElement(child, {
17
+ onClick: setCollapsed,
18
+ 'aria-controls': `collapse-content-${id}`,
19
+ 'aria-expanded': String(!collapsed)
20
+ });
21
+ };
22
+ export default CollapseControl;
@@ -0,0 +1,40 @@
1
+ .container {
2
+ position: relative;
3
+ will-change: height, opacity;
4
+
5
+ overflow: hidden;
6
+
7
+ }
8
+
9
+ .transition {
10
+ transition: height var(--duration) ease-in-out 0s, opacity var(--duration) ease-in-out 0s;
11
+ }
12
+
13
+ .summary {
14
+ list-style: none;
15
+
16
+ cursor: pointer;
17
+ }
18
+
19
+ .trigger {
20
+ cursor: pointer;
21
+
22
+ border: none;
23
+ outline: none;
24
+ background: transparent;
25
+ }
26
+
27
+ .fade {
28
+ position: absolute;
29
+ z-index: 10;
30
+ right: 0;
31
+ bottom: 0;
32
+ left: 0;
33
+
34
+ height: calc(var(--ring-unit) * 3);
35
+
36
+ pointer-events: none;
37
+
38
+ color: var(--ring-content-background-color);
39
+ background-image: linear-gradient(to bottom, transparent 0%, currentColor 50%);
40
+ }
@@ -0,0 +1,12 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ type Props = {
3
+ onChange?: (collapsed: boolean) => void;
4
+ duration?: number;
5
+ disableAnimation?: boolean;
6
+ className?: string;
7
+ };
8
+ /**
9
+ * @name Collapse
10
+ */
11
+ export declare const Collapse: React.FC<PropsWithChildren<Props>>;
12
+ export default Collapse;
@@ -0,0 +1,26 @@
1
+ import React, { useCallback, useId, useState } from 'react';
2
+ import { CollapseContext } from './collapse-context';
3
+ import { BASE_ANIMATION_DURATION } from './consts';
4
+ /**
5
+ * @name Collapse
6
+ */
7
+ export const Collapse = ({ children, duration = BASE_ANIMATION_DURATION, disableAnimation = false, className = '', onChange = () => { } }) => {
8
+ const [collapsed, toggle] = useState(true);
9
+ const id = useId();
10
+ const setCollapsed = useCallback(() => {
11
+ toggle(!collapsed);
12
+ onChange(!collapsed);
13
+ }, [toggle, onChange, collapsed]);
14
+ return (<div className={className}>
15
+ <CollapseContext.Provider value={{
16
+ collapsed,
17
+ setCollapsed,
18
+ duration,
19
+ disableAnimation,
20
+ id
21
+ }}>
22
+ {children}
23
+ </CollapseContext.Provider>
24
+ </div>);
25
+ };
26
+ export default Collapse;
@@ -0,0 +1,25 @@
1
+ .container {
2
+ width: 400px;
3
+ padding: 10px;
4
+ }
5
+
6
+ .border {
7
+ border: 1px solid var(--ring-line-color);
8
+ border-radius: 5px;
9
+ }
10
+
11
+ .loaderWrapper {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+
16
+ min-height: 200px;
17
+ }
18
+
19
+ .content {
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+
24
+ height: 500px;
25
+ }
@@ -0,0 +1,4 @@
1
+ export declare const COLLAPSE_CONTROL_TEST_ID = "ring-collapse-control";
2
+ export declare const COLLAPSE_CONTENT_CONTAINER_TEST_ID = "ring-collapse-content-container";
3
+ export declare const COLLAPSE_CONTENT_TEST_ID = "ring-collapse-content";
4
+ export declare const BASE_ANIMATION_DURATION = 200;
@@ -0,0 +1,4 @@
1
+ export const COLLAPSE_CONTROL_TEST_ID = 'ring-collapse-control';
2
+ export const COLLAPSE_CONTENT_CONTAINER_TEST_ID = 'ring-collapse-content-container';
3
+ export const COLLAPSE_CONTENT_TEST_ID = 'ring-collapse-content';
4
+ export const BASE_ANIMATION_DURATION = 200;
@@ -0,0 +1 @@
1
+ export declare const toPx: (value: number) => string;
@@ -0,0 +1 @@
1
+ export const toPx = (value) => `${value}px`;
@@ -1,5 +1,5 @@
1
1
  import PropTypes from 'prop-types';
2
- import add from 'date-fns/add';
2
+ import { add } from 'date-fns/add';
3
3
  const unit = 8; // px;
4
4
  const units = {
5
5
  unit,
@@ -1,13 +1,13 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
- import formatDate from 'date-fns/format';
5
- import isSameDay from 'date-fns/isSameDay';
6
- import isSameMonth from 'date-fns/isSameMonth';
7
- import isSameYear from 'date-fns/isSameYear';
8
- import isValid from 'date-fns/isValid';
9
- import parse from 'date-fns/parse';
10
- import set from 'date-fns/set';
4
+ import { format as formatDate } from 'date-fns/format';
5
+ import { isSameDay } from 'date-fns/isSameDay';
6
+ import { isSameMonth } from 'date-fns/isSameMonth';
7
+ import { isSameYear } from 'date-fns/isSameYear';
8
+ import { isValid } from 'date-fns/isValid';
9
+ import { parse } from 'date-fns/parse';
10
+ import { set } from 'date-fns/set';
11
11
  import calendarIcon from '@jetbrains/icons/calendar';
12
12
  import chevronDownIcon from '@jetbrains/icons/chevron-down';
13
13
  import memoize from '../global/memoize';
@@ -1,9 +1,9 @@
1
1
  import React, { Component } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import isAfter from 'date-fns/isAfter';
4
- import isBefore from 'date-fns/isBefore';
5
- import isSameDay from 'date-fns/isSameDay';
6
- import startOfDay from 'date-fns/startOfDay';
3
+ import { isAfter } from 'date-fns/isAfter';
4
+ import { isBefore } from 'date-fns/isBefore';
5
+ import { isSameDay } from 'date-fns/isSameDay';
6
+ import { startOfDay } from 'date-fns/startOfDay';
7
7
  import { set } from 'date-fns';
8
8
  import memoize from '../global/memoize';
9
9
  import DateInput from './date-input';
@@ -1,15 +1,15 @@
1
1
  import React, { Component } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
- import addDays from 'date-fns/addDays';
5
- import format from 'date-fns/format';
6
- import getDay from 'date-fns/getDay';
7
- import getDate from 'date-fns/getDate';
8
- import isAfter from 'date-fns/isAfter';
9
- import isBefore from 'date-fns/isBefore';
10
- import isSameDay from 'date-fns/isSameDay';
11
- import isToday from 'date-fns/isToday';
12
- import startOfDay from 'date-fns/startOfDay';
4
+ import { addDays } from 'date-fns/addDays';
5
+ import { format } from 'date-fns/format';
6
+ import { getDay } from 'date-fns/getDay';
7
+ import { getDate } from 'date-fns/getDate';
8
+ import { isAfter } from 'date-fns/isAfter';
9
+ import { isBefore } from 'date-fns/isBefore';
10
+ import { isSameDay } from 'date-fns/isSameDay';
11
+ import { isToday } from 'date-fns/isToday';
12
+ import { startOfDay } from 'date-fns/startOfDay';
13
13
  import { dateType, weekdays } from './consts';
14
14
  import styles from './date-picker.css';
15
15
  let hoverTO;
@@ -1,12 +1,12 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
- import endOfMonth from 'date-fns/endOfMonth';
5
- import format from 'date-fns/format';
6
- import isThisMonth from 'date-fns/isThisMonth';
7
- import set from 'date-fns/set';
8
- import startOfDay from 'date-fns/startOfDay';
9
- import startOfYear from 'date-fns/startOfYear';
4
+ import { endOfMonth } from 'date-fns/endOfMonth';
5
+ import { format } from 'date-fns/format';
6
+ import { isThisMonth } from 'date-fns/isThisMonth';
7
+ import { set } from 'date-fns/set';
8
+ import { startOfDay } from 'date-fns/startOfDay';
9
+ import { startOfYear } from 'date-fns/startOfYear';
10
10
  import linearFunction from '../global/linear-function';
11
11
  import MonthSlider from './month-slider';
12
12
  import { YEAR, MIDDLE_DAY, yearScrollSpeed, dateType } from './consts';
@@ -1,9 +1,9 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
- import addYears from 'date-fns/addYears';
5
- import startOfDay from 'date-fns/startOfDay';
6
- import subYears from 'date-fns/subYears';
4
+ import { addYears } from 'date-fns/addYears';
5
+ import { startOfDay } from 'date-fns/startOfDay';
6
+ import { subYears } from 'date-fns/subYears';
7
7
  import linearFunction from '../global/linear-function';
8
8
  import units, { dateType, yearScrollSpeed } from './consts';
9
9
  import styles from './date-picker.css';
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import addDays from 'date-fns/addDays';
3
- import endOfMonth from 'date-fns/endOfMonth';
4
- import format from 'date-fns/format';
5
- import getDay from 'date-fns/getDay';
6
- import setDay from 'date-fns/setDay';
2
+ import { addDays } from 'date-fns/addDays';
3
+ import { endOfMonth } from 'date-fns/endOfMonth';
4
+ import { format } from 'date-fns/format';
5
+ import { getDay } from 'date-fns/getDay';
6
+ import { setDay } from 'date-fns/setDay';
7
7
  import PropTypes from 'prop-types';
8
8
  import Day from './day';
9
9
  import { dateType, WEEK, weekdays } from './consts';
@@ -1,11 +1,11 @@
1
1
  import React, { useEffect, useMemo, useRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import addMonths from 'date-fns/addMonths';
4
- import getDay from 'date-fns/getDay';
5
- import getDaysInMonth from 'date-fns/getDaysInMonth';
6
- import startOfMonth from 'date-fns/startOfMonth';
7
- import subMonths from 'date-fns/subMonths';
8
- import endOfMonth from 'date-fns/endOfMonth';
3
+ import { addMonths } from 'date-fns/addMonths';
4
+ import { getDay } from 'date-fns/getDay';
5
+ import { getDaysInMonth } from 'date-fns/getDaysInMonth';
6
+ import { startOfMonth } from 'date-fns/startOfMonth';
7
+ import { subMonths } from 'date-fns/subMonths';
8
+ import { endOfMonth } from 'date-fns/endOfMonth';
9
9
  import scheduleRAF from '../global/schedule-raf';
10
10
  import linearFunction from '../global/linear-function';
11
11
  import useEventCallback from '../global/use-event-callback';
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import classNames from 'classnames';
3
- import getDay from 'date-fns/getDay';
4
- import format from 'date-fns/format';
5
- import setDay from 'date-fns/setDay';
6
- import startOfDay from 'date-fns/startOfDay';
3
+ import { getDay } from 'date-fns/getDay';
4
+ import { format } from 'date-fns/format';
5
+ import { setDay } from 'date-fns/setDay';
6
+ import { startOfDay } from 'date-fns/startOfDay';
7
7
  import PropTypes from 'prop-types';
8
8
  import { weekdays } from './consts';
9
9
  import styles from './date-picker.css';
@@ -1,14 +1,14 @@
1
1
  import React, { createRef, PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
- import addYears from 'date-fns/addYears';
5
- import getYear from 'date-fns/getYear';
6
- import format from 'date-fns/format';
7
- import isSameYear from 'date-fns/isSameYear';
8
- import isThisYear from 'date-fns/isThisYear';
9
- import setYear from 'date-fns/setYear';
10
- import startOfYear from 'date-fns/startOfYear';
11
- import subYears from 'date-fns/subYears';
4
+ import { addYears } from 'date-fns/addYears';
5
+ import { getYear } from 'date-fns/getYear';
6
+ import { format } from 'date-fns/format';
7
+ import { isSameYear } from 'date-fns/isSameYear';
8
+ import { isThisYear } from 'date-fns/isThisYear';
9
+ import { setYear } from 'date-fns/setYear';
10
+ import { startOfYear } from 'date-fns/startOfYear';
11
+ import { subYears } from 'date-fns/subYears';
12
12
  import linearFunction from '../global/linear-function';
13
13
  import styles from './date-picker.css';
14
14
  import units, { dateType, DOUBLE, HALF, yearDuration } from './consts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetbrains/ring-ui",
3
- "version": "6.0.3",
3
+ "version": "6.0.4",
4
4
  "description": "JetBrains UI library",
5
5
  "author": "JetBrains",
6
6
  "license": "Apache-2.0",
@@ -76,8 +76,8 @@
76
76
  },
77
77
  "readmeFilename": "README.md",
78
78
  "devDependencies": {
79
- "@babel/cli": "^7.23.4",
80
- "@babel/eslint-parser": "^7.23.3",
79
+ "@babel/cli": "^7.23.9",
80
+ "@babel/eslint-parser": "^7.23.10",
81
81
  "@csstools/stylelint-no-at-nest-rule": "^2.0.0",
82
82
  "@csstools/css-parser-algorithms": "^2.5.0",
83
83
  "@jetbrains/eslint-config": "^5.4.1",
@@ -87,19 +87,19 @@
87
87
  "@rollup/plugin-json": "^6.1.0",
88
88
  "@rollup/plugin-node-resolve": "^15.2.3",
89
89
  "@rollup/plugin-replace": "^5.0.5",
90
- "@storybook/addon-a11y": "7.6.8",
91
- "@storybook/addon-docs": "7.6.7",
92
- "@storybook/addon-essentials": "7.6.7",
93
- "@storybook/addon-storyshots": "7.6.3",
94
- "@storybook/addon-storyshots-puppeteer": "7.6.8",
95
- "@storybook/addon-storysource": "7.6.8",
96
- "@storybook/addons": "7.6.7",
97
- "@storybook/preview-api": "7.6.3",
98
- "@storybook/react": "7.6.3",
99
- "@storybook/react-webpack5": "7.6.7",
100
- "@storybook/source-loader": "7.6.8",
101
- "@storybook/theming": "7.6.8",
102
- "@testing-library/react": "^14.1.2",
90
+ "@storybook/addon-a11y": "7.6.12",
91
+ "@storybook/addon-docs": "7.6.12",
92
+ "@storybook/addon-essentials": "7.6.12",
93
+ "@storybook/addon-storyshots": "7.6.10",
94
+ "@storybook/addon-storyshots-puppeteer": "7.6.12",
95
+ "@storybook/addon-storysource": "7.6.12",
96
+ "@storybook/addons": "7.6.12",
97
+ "@storybook/preview-api": "7.6.10",
98
+ "@storybook/react": "7.6.10",
99
+ "@storybook/react-webpack5": "7.6.12",
100
+ "@storybook/source-loader": "7.6.12",
101
+ "@storybook/theming": "7.6.12",
102
+ "@testing-library/react": "^14.2.1",
103
103
  "@testing-library/user-event": "^14.5.2",
104
104
  "@types/chai": "^4.3.11",
105
105
  "@types/chai-as-promised": "^7.1.8",
@@ -107,22 +107,22 @@
107
107
  "@types/chai-enzyme": "^0.6.13",
108
108
  "@types/enzyme": "^3.10.18",
109
109
  "@types/markdown-it": "^13.0.7",
110
- "@types/react": "^18.2.48",
110
+ "@types/react": "^18.2.53",
111
111
  "@types/react-dom": "^18.2.18",
112
112
  "@types/sinon": "^17.0.3",
113
113
  "@types/sinon-chai": "^3.2.12",
114
- "@typescript-eslint/eslint-plugin": "^6.18.1",
115
- "@typescript-eslint/parser": "^6.18.1",
114
+ "@typescript-eslint/eslint-plugin": "^6.20.0",
115
+ "@typescript-eslint/parser": "^6.20.0",
116
116
  "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
117
117
  "acorn": "^8.11.3",
118
118
  "babel-plugin-require-context-hook": "^1.0.0",
119
- "caniuse-lite": "^1.0.30001576",
120
- "chai": "^5.0.0",
119
+ "caniuse-lite": "^1.0.30001584",
120
+ "chai": "^5.0.3",
121
121
  "chai-as-promised": "^7.1.1",
122
122
  "chai-dom": "^1.10.0",
123
123
  "chai-enzyme": "1.0.0-beta.1",
124
124
  "cheerio": "^1.0.0-rc.12",
125
- "core-js": "^3.35.0",
125
+ "core-js": "^3.35.1",
126
126
  "cpy-cli": "^3.1.1",
127
127
  "enzyme": "^3.11.0",
128
128
  "eslint": "^8.56.0",
@@ -135,9 +135,9 @@
135
135
  "events": "^3.3.0",
136
136
  "glob": "^10.3.10",
137
137
  "html-webpack-plugin": "^5.6.0",
138
- "husky": "^8.0.3",
138
+ "husky": "^9.0.10",
139
139
  "identity-obj-proxy": "^3.0.0",
140
- "imports-loader": "^4.0.1",
140
+ "imports-loader": "^5.0.0",
141
141
  "jest": "~29.7.0",
142
142
  "jest-environment-jsdom": "^29.7.0",
143
143
  "jest-teamcity": "^1.10.0",
@@ -146,35 +146,35 @@
146
146
  "karma-mocha": "^2.0.1",
147
147
  "karma-sourcemap-loader": "^0.4.0",
148
148
  "karma-teamcity-reporter": "^2.0.0",
149
- "karma-webpack": "^5.0.0",
150
- "lint-staged": "^15.2.0",
149
+ "karma-webpack": "^5.0.1",
150
+ "lint-staged": "^15.2.1",
151
151
  "markdown-it": "^14.0.0",
152
152
  "merge-options": "^3.0.4",
153
153
  "mocha": "^10.2.0",
154
154
  "pinst": "^3.0.0",
155
- "prettier": "^3.2.2",
156
- "puppeteer": "^21.2.1",
155
+ "prettier": "^3.2.5",
156
+ "puppeteer": "^22.0.0",
157
157
  "raw-loader": "^4.0.2",
158
158
  "react": "^18.2.0",
159
159
  "react-dom": "^18.2.0",
160
160
  "react-test-renderer": "^18.2.0",
161
161
  "regenerator-runtime": "^0.14.1",
162
162
  "rimraf": "^5.0.5",
163
- "rollup": "^4.9.5",
163
+ "rollup": "^4.9.6",
164
164
  "rollup-plugin-clear": "^2.0.7",
165
165
  "rollup-plugin-styles": "^4.0.0",
166
166
  "sinon": "^17.0.1",
167
167
  "sinon-chai": "^3.7.0",
168
168
  "storage-mock": "^2.1.0",
169
- "storybook": "^7.6.8",
169
+ "storybook": "7.6.12",
170
170
  "storybook-addon-themes": "^6.1.0",
171
- "stylelint": "^16.1.0",
171
+ "stylelint": "^16.2.1",
172
172
  "svg-inline-loader": "^0.8.2",
173
173
  "teamcity-service-messages": "^0.1.14",
174
174
  "terser-webpack-plugin": "^5.3.10",
175
175
  "typescript": "~5.3.3",
176
176
  "wallaby-webpack": "^3.9.16",
177
- "webpack": "^5.89.0",
177
+ "webpack": "^5.90.1",
178
178
  "webpack-cli": "^5.1.4",
179
179
  "xmlappend": "^1.0.4"
180
180
  },
@@ -198,11 +198,11 @@
198
198
  }
199
199
  },
200
200
  "dependencies": {
201
- "@babel/core": "^7.23.7",
201
+ "@babel/core": "^7.23.9",
202
202
  "@babel/preset-typescript": "^7.23.3",
203
203
  "@jetbrains/babel-preset-jetbrains": "^2.3.2",
204
- "@jetbrains/icons": "^3.22.0",
205
- "@jetbrains/logos": "^2.2.24",
204
+ "@jetbrains/icons": "^3.24.0",
205
+ "@jetbrains/logos": "^2.2.25",
206
206
  "@jetbrains/postcss-require-hover": "^0.1.2",
207
207
  "@types/combokeys": "^2.4.9",
208
208
  "@types/deep-equal": "^1.0.4",
@@ -213,13 +213,13 @@
213
213
  "@ungap/url-search-params": "^0.2.2",
214
214
  "babel-loader": "9.1.3",
215
215
  "babel-plugin-transform-define": "^2.1.4",
216
- "browserslist": "^4.22.2",
216
+ "browserslist": "^4.22.3",
217
217
  "change-case": "^4.1.1",
218
218
  "classnames": "^2.5.1",
219
219
  "combokeys": "^3.0.1",
220
- "css-loader": "^6.9.0",
220
+ "css-loader": "^6.10.0",
221
221
  "csstype": "^3.1.3",
222
- "date-fns": "^2.30.0",
222
+ "date-fns": "^3.3.1",
223
223
  "deep-equal": "^2.2.3",
224
224
  "element-resize-detector": "^1.2.4",
225
225
  "es6-error": "^4.1.1",
@@ -234,7 +234,7 @@
234
234
  "postcss-calc": "^9.0.1",
235
235
  "postcss-flexbugs-fixes": "^5.0.2",
236
236
  "postcss-font-family-system-ui": "^5.0.0",
237
- "postcss-loader": "^7.3.4",
237
+ "postcss-loader": "^8.1.0",
238
238
  "postcss-modules-values-replace": "^4.1.0",
239
239
  "postcss-preset-env": "^9.3.0",
240
240
  "prop-types": "^15.8.1",