@aloudata/aloudata-design 1.5.4 → 1.6.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.
Files changed (52) hide show
  1. package/dist/Button/index.js +17 -6
  2. package/dist/Button/style/index.less +60 -114
  3. package/dist/Button/style/variables.less +0 -1
  4. package/dist/ColorPicker/style/index.less +2 -2
  5. package/dist/ConfigProvider/index.d.ts +2 -1
  6. package/dist/ConfigProvider/index.js +1 -0
  7. package/dist/DataPreviewTable/components/Body/SkeletonBody.js +2 -2
  8. package/dist/DataPreviewTable/components/Body/index.js +2 -1
  9. package/dist/DataPreviewTable/components/Header/index.d.ts +2 -2
  10. package/dist/DataPreviewTable/components/Header/index.js +11 -19
  11. package/dist/DataPreviewTable/hooks/useDirection.d.ts +4 -21
  12. package/dist/DataPreviewTable/hooks/useDirection.js +109 -146
  13. package/dist/DataPreviewTable/index.js +25 -16
  14. package/dist/DataPreviewTable/interface.d.ts +18 -0
  15. package/dist/DataPreviewTable/interface.js +13 -1
  16. package/dist/DataPreviewTable/utils/getColumnOffsetsFromWidths.d.ts +1 -0
  17. package/dist/DataPreviewTable/utils/getColumnOffsetsFromWidths.js +8 -0
  18. package/dist/DataPreviewTable/utils/getColumnRange.d.ts +8 -0
  19. package/dist/DataPreviewTable/utils/getColumnRange.js +25 -0
  20. package/dist/DataPreviewTable/utils/getRowRange.d.ts +7 -0
  21. package/dist/DataPreviewTable/utils/getRowRange.js +28 -0
  22. package/dist/DataPreviewTable/utils/getTableLayout.d.ts +3 -0
  23. package/dist/DataPreviewTable/utils/getTableLayout.js +18 -0
  24. package/dist/DatePicker/index.d.ts +20 -11
  25. package/dist/DatePicker/index.js +216 -13
  26. package/dist/DatePicker/style/index.less +13 -0
  27. package/dist/Dropdown/style/index.less +3 -0
  28. package/dist/Empty/style/index.less +11 -13
  29. package/dist/Input/components/Input/index.js +16 -3
  30. package/dist/Input/style/index.less +11 -10
  31. package/dist/MemberPicker/components/MultipleOption.js +5 -1
  32. package/dist/MemberPicker/components/NickLabel.js +1 -2
  33. package/dist/MemberPicker/components/SelectedMemberTags.js +5 -1
  34. package/dist/MemberPicker/components/SingleOption.js +5 -1
  35. package/dist/MemberPicker/index.js +9 -3
  36. package/dist/MemberPicker/interface.d.ts +3 -3
  37. package/dist/MemberPicker/style/index.less +11 -3
  38. package/dist/Modal/style/index.less +2 -5
  39. package/dist/Select/components/SingleOption.js +3 -9
  40. package/dist/Select/index.js +34 -15
  41. package/dist/Select/style/single.less +11 -7
  42. package/dist/Select/style/size.less +19 -0
  43. package/dist/Select/style/status.less +2 -1
  44. package/dist/Table/style/index.less +2 -2
  45. package/dist/Table/style/variable.less +0 -1
  46. package/dist/Tabs/index.d.ts +5 -0
  47. package/dist/Tabs/index.js +4 -2
  48. package/dist/Tabs/style/index.less +6 -0
  49. package/dist/message/style/index.less +8 -7
  50. package/dist/style/mixins/index.less +4 -3
  51. package/dist/style/themes/default/scrollBar.less +3 -2
  52. package/package.json +10 -3
@@ -1,28 +1,28 @@
1
- var _excluded = ["mode", "options", "dropdownRender", "onDropdownVisibleChange", "defaultValue", "onChange", "open", "defaultOpen", "prefix", "className", "popupClassName", "listHeight", "listItemHeight", "notFoundContent", "value", "tagRender", "style", "autoFocus", "showSearch", "showAllOption", "size", "status", "disabled"];
1
+ var _excluded = ["mode", "options", "dropdownRender", "onDropdownVisibleChange", "defaultValue", "onChange", "open", "defaultOpen", "prefix", "className", "popupClassName", "listHeight", "listItemHeight", "notFoundContent", "value", "tagRender", "style", "autoFocus", "showSearch", "showAllOption", "size", "status", "disabled", "prefixCls"];
2
2
 
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
 
5
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
 
7
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
7
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
8
 
9
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
10
 
11
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
11
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
12
12
 
13
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
14
14
 
15
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
16
16
 
17
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
18
 
19
19
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
20
 
21
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
22
22
 
23
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
23
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
24
24
 
25
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
26
26
 
27
27
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
28
28
 
@@ -32,10 +32,13 @@ import { FoldDownFill } from '@aloudata/icons-react';
32
32
  import { Select as AntdSelect } from 'antd';
33
33
  import DisabledContext from 'antd/lib/config-provider/DisabledContext';
34
34
  import { FormItemInputContext } from 'antd/lib/form/context';
35
+ import useStyle from 'antd/lib/select/style';
36
+ import { useCompactItemContext } from 'antd/lib/space/Compact';
35
37
  import { getMergedStatus } from 'antd/lib/_util/statusUtils';
36
38
  import classNames from 'classnames';
37
39
  import List from 'rc-virtual-list';
38
40
  import React, { forwardRef, useContext, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
41
+ import { ConfigContext } from "../ConfigProvider";
39
42
  import SizeContext from "../ConfigProvider/sizeContext";
40
43
  import Empty from "../Empty";
41
44
  import theme from "../style/themes/default/themeColor.module.less";
@@ -123,15 +126,31 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
123
126
  customSize = props.size,
124
127
  customStatus = props.status,
125
128
  customDisabled = props.disabled,
129
+ customizePrefixCls = props.prefixCls,
126
130
  restProps = _objectWithoutProperties(props, _excluded);
127
131
 
128
132
  var contentSize = useContext(SizeContext);
129
133
 
130
- var _React$useContext = React.useContext(FormItemInputContext),
131
- contextStatus = _React$useContext.status;
134
+ var _React$useContext = React.useContext(ConfigContext),
135
+ getPrefixCls = _React$useContext.getPrefixCls,
136
+ direction = _React$useContext.direction;
137
+
138
+ var prefixCls = getPrefixCls('select', customizePrefixCls); // ===================== Compact Item =====================
139
+
140
+ var _useCompactItemContex = useCompactItemContext(prefixCls, direction),
141
+ compactSize = _useCompactItemContex.compactSize,
142
+ compactItemClassnames = _useCompactItemContex.compactItemClassnames;
143
+
144
+ var size = compactSize || customSize || contentSize || 'middle';
145
+
146
+ var _React$useContext2 = React.useContext(FormItemInputContext),
147
+ contextStatus = _React$useContext2.status;
148
+
149
+ var _useStyle = useStyle(prefixCls),
150
+ _useStyle2 = _slicedToArray(_useStyle, 2),
151
+ hashId = _useStyle2[1];
132
152
 
133
- var mergedStatus = getMergedStatus(contextStatus, customStatus);
134
- var size = customSize || contentSize || 'middle'; // ===================== Disabled =====================
153
+ var mergedStatus = getMergedStatus(contextStatus, customStatus); // ===================== Disabled =====================
135
154
 
136
155
  var disabled = React.useContext(DisabledContext);
137
156
  var mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;
@@ -409,7 +428,7 @@ var Select = /*#__PURE__*/forwardRef(function (props, ref) {
409
428
  'ald-select-middle': size !== 'large' && size !== 'small',
410
429
  'ald-select-open': typeof _open === 'boolean' ? _open : isOpen,
411
430
  'ald-select-focus': isFocus
412
- }, "ald-select-status-".concat(mergedStatus), mergedStatus)),
431
+ }, "ald-select-status-".concat(mergedStatus), mergedStatus), compactItemClassnames, hashId),
413
432
  spellCheck: false,
414
433
  style: Object.assign(styleVar, style)
415
434
  }, !!prefix && /*#__PURE__*/React.createElement("span", {
@@ -1,9 +1,9 @@
1
- .ald-single-option-list{
1
+ .ald-single-option-list {
2
2
  color: @NL0;
3
3
  font-size: 13px;
4
4
  line-height: 20px;
5
5
 
6
- .ald-single-option{
6
+ .ald-single-option {
7
7
  padding: 6px 12px;
8
8
  display: flex;
9
9
  align-items: center;
@@ -11,29 +11,33 @@
11
11
  height: 36px;
12
12
  box-sizing: border-box;
13
13
 
14
- &:hover{
14
+ &:hover {
15
15
  background-color: @BG90;
16
16
  }
17
17
 
18
- .ald-icons-check-line{
18
+ .ald-icons-check-line {
19
19
  height: 20px;
20
20
  width: 20px;
21
21
  margin-right: 8px;
22
22
  flex-shrink: 0;
23
23
  }
24
24
 
25
- .ald-single-option-text{
25
+ .ald-single-option-text {
26
26
  white-space: nowrap;
27
27
  flex: 1;
28
28
  }
29
29
 
30
- &.ald-single-option-disabled{
30
+ &.ald-single-option-disabled {
31
31
  opacity: 0.5;
32
32
 
33
- &:hover{
33
+ &:hover {
34
34
  background: none;
35
35
  cursor: default;
36
36
  }
37
37
  }
38
+
39
+ &.ald-single-option-selected {
40
+ background: var(--colors-blue-100, #f0f6ff);
41
+ }
38
42
  }
39
43
  }
@@ -1,9 +1,26 @@
1
+ .compact(@border-radius) {
2
+ &.ant-select-compact-item {
3
+ border-radius: 0;
4
+ }
5
+
6
+ &.ant-select-compact-first-item {
7
+ border-top-left-radius: @border-radius;
8
+ border-bottom-left-radius: @border-radius;
9
+ }
10
+
11
+ &.ant-select-compact-last-item {
12
+ border-top-right-radius: @border-radius;
13
+ border-bottom-right-radius: @border-radius;
14
+ }
15
+ }
16
+
1
17
  .ald-select.ald-select {
2
18
  &.ald-select-small {
3
19
  height: @select-height-small;
4
20
  font-size: @select-font-size-small;
5
21
  // line-height: @select-line-height-small;
6
22
  border-radius: @select-border-radius-small;
23
+ .compact(@select-border-radius-small);
7
24
 
8
25
  .ald-select-prefix {
9
26
  margin-left: @select-padding-left-small;
@@ -57,6 +74,7 @@
57
74
  font-size: @select-font-size-middle;
58
75
  // line-height: @select-line-height-middle;
59
76
  border-radius: @select-border-radius-middle;
77
+ .compact(@select-border-radius-middle);
60
78
 
61
79
  .ald-select-prefix {
62
80
  margin-left: @select-padding-left-middle;
@@ -112,6 +130,7 @@
112
130
  font-size: @select-font-size-large;
113
131
  // line-height: @select-line-height-large;
114
132
  border-radius: @select-border-radius-large;
133
+ .compact(@select-border-radius-large);
115
134
 
116
135
  .ald-select-prefix {
117
136
  margin-left: @select-padding-left-large;
@@ -2,10 +2,11 @@
2
2
  /**
3
3
  * @file focused状态
4
4
  */
5
- &:hover,
5
+ // &:hover,
6
6
  &.ald-select-open,
7
7
  &.ald-select-focus {
8
8
  border-color: @B40;
9
+ z-index: 1;
9
10
  // box-shadow: @shadow-drop;
10
11
  }
11
12
 
@@ -25,7 +25,7 @@
25
25
  &-inner-wrap {
26
26
  width: 100%;
27
27
  height: 100%;
28
- overflow-x: overlay;
28
+ overflow-x: auto;
29
29
  }
30
30
 
31
31
  &-tableHeadScrollWrap {
@@ -226,7 +226,7 @@
226
226
  }
227
227
 
228
228
  &-column-resizable {
229
- overflow: overlay;
229
+ overflow: auto;
230
230
 
231
231
  .ald-table-thead,
232
232
  .ald-table-tbody {
@@ -1,5 +1,4 @@
1
1
  /* stylelint-disable property-no-unknown */
2
2
 
3
- @ald-iconfont-css-prefix: anticon;
4
3
  @table-head-row-height: 32px;
5
4
  @table-body-row-height: 48px;
@@ -54,6 +54,11 @@ export interface ITabsProps extends Omit<TabsProps, 'size'> {
54
54
  * @default false
55
55
  */
56
56
  padding?: boolean | number;
57
+ /**
58
+ * @description tab和content之间的间距,默认16px,仅在tabPosition为top时生效
59
+ * @default false
60
+ */
61
+ compact?: boolean;
57
62
  }
58
63
  declare function Tabs(props: ITabsProps): JSX.Element;
59
64
  declare namespace Tabs {
@@ -1,4 +1,4 @@
1
- var _excluded = ["size", "className", "popupClassName", "adaptHeight", "style", "monospace", "tabPosition", "padding"];
1
+ var _excluded = ["size", "className", "popupClassName", "adaptHeight", "style", "monospace", "tabPosition", "padding", "compact"];
2
2
 
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
 
@@ -30,6 +30,7 @@ export default function Tabs(props) {
30
30
  tabPosition = _props$tabPosition === void 0 ? 'top' : _props$tabPosition,
31
31
  _props$padding = props.padding,
32
32
  padding = _props$padding === void 0 ? false : _props$padding,
33
+ compact = props.compact,
33
34
  otherProps = _objectWithoutProperties(props, _excluded);
34
35
 
35
36
  var headerBackgroundColor = props.headerBackgroundColor;
@@ -81,7 +82,8 @@ export default function Tabs(props) {
81
82
  'ald-adapt-height': adaptHeight,
82
83
  'ald-tabs-default': size !== 'large',
83
84
  'ald-tabs-monospace': _monospace,
84
- 'ald-tabs-padding': !!padding
85
+ 'ald-tabs-padding': !!padding,
86
+ 'ald-tabs-compact': !!compact
85
87
  })
86
88
  }, tabsProps));
87
89
  }
@@ -145,6 +145,12 @@
145
145
  padding: 8px 0;
146
146
  }
147
147
  }
148
+
149
+ &.ald-tabs-compact {
150
+ .ant-tabs-nav {
151
+ margin-bottom: 0;
152
+ }
153
+ }
148
154
  }
149
155
 
150
156
  .ald-tabs-dropdown {
@@ -1,12 +1,13 @@
1
1
  @import '../../style/index.less';
2
2
  @import './color.less';
3
3
 
4
- .ant-message .ant-message-notice{
5
- .ant-message-notice-content{
4
+ .ant-message .ant-message-notice {
5
+ .ant-message-notice-content {
6
6
  padding: 0;
7
- box-shadow: 0 12px 16px -4px rgb(16 24 40 / 8%), 0 4px 6px -2px rgb(16 24 40 / 3%);;
7
+ box-shadow: 0 12px 16px -4px rgb(16 24 40 / 0.08),
8
+ 0 4px 6px -2px rgb(16 24 40 / 0.03);
8
9
 
9
- .ant-message-custom-content{
10
+ .ant-message-custom-content {
10
11
  padding: 0;
11
12
  display: flex;
12
13
  align-items: center;
@@ -17,9 +18,9 @@
17
18
  overflow: hidden;
18
19
  font-weight: 600;
19
20
 
20
- .ald-message-icon-wrap{
21
+ .ald-message-icon-wrap {
21
22
  flex-shrink: 0;
22
- width:40px;
23
+ width: 40px;
23
24
  height: 40px;
24
25
  display: flex;
25
26
  justify-content: center;
@@ -29,4 +30,4 @@
29
30
  }
30
31
  }
31
32
  }
32
- }
33
+ }
@@ -7,10 +7,11 @@
7
7
  line-height: @line-height;
8
8
  }
9
9
 
10
- * :focus-visible{
10
+ /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
11
+ * :focus-visible {
11
12
  outline: none;
12
13
  }
13
14
 
14
- * :focus{
15
+ * :focus {
15
16
  outline: none;
16
- }
17
+ }
@@ -1,11 +1,12 @@
1
1
  &::-webkit-scrollbar {
2
2
  width: 12px !important;
3
3
  height: 12px !important;
4
+ background: var(--colors-neutral-white, #fff);
4
5
  opacity: 0.5;
5
6
  }
6
7
 
7
8
  &::-webkit-scrollbar-thumb {
8
- background-color: rgba(152, 162, 179, 0.5);
9
+ background-color: rgb(152 162 179 / 0.5);
9
10
  border: 3px solid transparent;
10
11
  border-radius: 6px;
11
12
  background-clip: padding-box;
@@ -13,4 +14,4 @@
13
14
 
14
15
  &::-webkit-scrollbar-track {
15
16
  background-color: transparent;
16
- }
17
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aloudata/aloudata-design",
3
- "version": "1.5.4",
3
+ "version": "1.6.1",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",
@@ -18,6 +18,7 @@
18
18
  "doctor": "father doctor",
19
19
  "jest": "jest",
20
20
  "jest:watch": "jest --watch",
21
+ "linkToLocal": "npm run build && node ./scripts/linkToLocal.mjs",
21
22
  "lint": "npm run lint:es && npm run lint:css",
22
23
  "lint:css": "stylelint \"{src,test}/**/*.{css,less}\"",
23
24
  "lint:es": "eslint \"{src,test}/**/*.{js,jsx,ts,tsx}\"",
@@ -51,6 +52,9 @@
51
52
  "prettier --parser=typescript --write"
52
53
  ]
53
54
  },
55
+ "browserslist": [
56
+ "chrome >= 84"
57
+ ],
54
58
  "dependencies": {
55
59
  "@aloudata/icons-react": "^0.2.2",
56
60
  "@aloudata/icons-svg": "0.1.7",
@@ -80,8 +84,10 @@
80
84
  "@umijs/lint": "^4.0.0",
81
85
  "babel-jest": "^29.4.2",
82
86
  "babel-plugin-import": "^1.13.5",
87
+ "browserslist": "^4.21.9",
83
88
  "dumi": "2.1.10",
84
- "eslint": "^8.23.0",
89
+ "eslint": "^8.45.0",
90
+ "eslint-plugin-compat": "^4.1.4",
85
91
  "father": "^4.1.0",
86
92
  "husky": "^8.0.3",
87
93
  "jest": "^29.4.2",
@@ -94,7 +100,8 @@
94
100
  "react": "^18.0.0",
95
101
  "react-dom": "^18.0.0",
96
102
  "react-test-renderer": "^18.2.0",
97
- "stylelint": "^14.9.1",
103
+ "stylelint": "^15.10.2",
104
+ "stylelint-no-unsupported-browser-features": "^7.0.0",
98
105
  "ts-jest": "^29.0.5",
99
106
  "vitest": "^0.33.0"
100
107
  },