@salutejs/plasma-new-hope 0.168.0-canary.1484.11355807813.0 → 0.168.0-dev.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.css +11 -12
  2. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +4 -6
  3. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js.map +1 -1
  4. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +12 -18
  5. package/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js.map +1 -1
  6. package/cjs/components/Accordion/ui/AccordionItem/{AccordionItem.styles_t0tdpe.css → AccordionItem.styles_aus2x3.css} +7 -8
  7. package/cjs/components/DatePicker/RangeDate/RangeDate.css +1 -1
  8. package/cjs/components/DatePicker/RangeDate/RangeDate.js +77 -15
  9. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  10. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
  11. package/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  12. package/cjs/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
  13. package/cjs/components/DatePicker/RangeDate/variations/_size/base.js.map +1 -1
  14. package/cjs/components/DatePicker/RangeDate/variations/_size/base_1d0sbzw.css +1 -0
  15. package/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -8
  16. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  17. package/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
  18. package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  19. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  20. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  21. package/cjs/components/DatePicker/utils/dateHelper.js +31 -0
  22. package/cjs/components/DatePicker/utils/dateHelper.js.map +1 -1
  23. package/cjs/index.css +12 -13
  24. package/emotion/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +4 -6
  25. package/emotion/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +16 -20
  26. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +77 -15
  27. package/emotion/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
  28. package/emotion/cjs/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
  29. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -8
  30. package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
  31. package/emotion/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  32. package/emotion/cjs/components/DatePicker/utils/dateHelper.js +31 -1
  33. package/emotion/cjs/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +1 -80
  34. package/emotion/cjs/examples/plasma_web/components/Accordion/Accordion.stories.tsx +1 -80
  35. package/emotion/es/components/Accordion/ui/AccordionItem/AccordionItem.js +6 -8
  36. package/emotion/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +15 -19
  37. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +79 -17
  38. package/emotion/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
  39. package/emotion/es/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
  40. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +34 -9
  41. package/emotion/es/components/DatePicker/hooks/useDatePicker.js +21 -49
  42. package/emotion/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  43. package/emotion/es/components/DatePicker/utils/dateHelper.js +30 -0
  44. package/emotion/es/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +1 -80
  45. package/emotion/es/examples/plasma_web/components/Accordion/Accordion.stories.tsx +1 -80
  46. package/es/components/Accordion/ui/AccordionItem/AccordionItem.css +11 -12
  47. package/es/components/Accordion/ui/AccordionItem/AccordionItem.js +6 -8
  48. package/es/components/Accordion/ui/AccordionItem/AccordionItem.js.map +1 -1
  49. package/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +13 -18
  50. package/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js.map +1 -1
  51. package/es/components/Accordion/ui/AccordionItem/{AccordionItem.styles_t0tdpe.css → AccordionItem.styles_aus2x3.css} +7 -8
  52. package/es/components/DatePicker/RangeDate/RangeDate.css +1 -1
  53. package/es/components/DatePicker/RangeDate/RangeDate.js +79 -17
  54. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  55. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
  56. package/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js.map +1 -1
  57. package/es/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
  58. package/es/components/DatePicker/RangeDate/variations/_size/base.js.map +1 -1
  59. package/es/components/DatePicker/RangeDate/variations/_size/base_1d0sbzw.css +1 -0
  60. package/es/components/DatePicker/SingleDate/SingleDate.js +34 -9
  61. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  62. package/es/components/DatePicker/hooks/useDatePicker.js +21 -49
  63. package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  64. package/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  65. package/es/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  66. package/es/components/DatePicker/utils/dateHelper.js +31 -1
  67. package/es/components/DatePicker/utils/dateHelper.js.map +1 -1
  68. package/es/index.css +12 -13
  69. package/package.json +2 -2
  70. package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.js +4 -6
  71. package/styled-components/cjs/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +8 -11
  72. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +77 -15
  73. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
  74. package/styled-components/cjs/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
  75. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +33 -8
  76. package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +20 -48
  77. package/styled-components/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  78. package/styled-components/cjs/components/DatePicker/utils/dateHelper.js +31 -1
  79. package/styled-components/cjs/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +1 -80
  80. package/styled-components/cjs/examples/plasma_web/components/Accordion/Accordion.stories.tsx +1 -80
  81. package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.js +6 -8
  82. package/styled-components/es/components/Accordion/ui/AccordionItem/AccordionItem.styles.js +7 -10
  83. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +79 -17
  84. package/styled-components/es/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.js +14 -7
  85. package/styled-components/es/components/DatePicker/RangeDate/variations/_size/base.js +1 -1
  86. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +34 -9
  87. package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +21 -49
  88. package/styled-components/es/components/DatePicker/hooks/useKeyboardNavigation.js +11 -1
  89. package/styled-components/es/components/DatePicker/utils/dateHelper.js +30 -0
  90. package/styled-components/es/examples/plasma_b2c/components/Accordion/Accordion.stories.tsx +1 -80
  91. package/styled-components/es/examples/plasma_web/components/Accordion/Accordion.stories.tsx +1 -80
  92. package/types/components/Accordion/ui/AccordionItem/AccordionItem.d.ts +2 -16
  93. package/types/components/Accordion/ui/AccordionItem/AccordionItem.d.ts.map +1 -1
  94. package/types/components/Accordion/ui/AccordionItem/AccordionItem.styles.d.ts +0 -1
  95. package/types/components/Accordion/ui/AccordionItem/AccordionItem.styles.d.ts.map +1 -1
  96. package/types/components/Accordion/ui/AccordionItem/AccordionItem.types.d.ts +1 -5
  97. package/types/components/Accordion/ui/AccordionItem/AccordionItem.types.d.ts.map +1 -1
  98. package/types/components/DatePicker/DatePickerBase.types.d.ts +8 -6
  99. package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
  100. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +10 -10
  101. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  102. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +16 -6
  103. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  104. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts +1 -1
  105. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.d.ts.map +1 -1
  106. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts +2 -1
  107. package/types/components/DatePicker/RangeDate/RangeDatePopover/RangeDatePopover.types.d.ts.map +1 -1
  108. package/types/components/DatePicker/RangeDate/variations/_size/base.d.ts.map +1 -1
  109. package/types/components/DatePicker/SingleDate/SingleDate.d.ts +2 -2
  110. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  111. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +14 -4
  112. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  113. package/types/components/DatePicker/hooks/useDatePicker.d.ts +2 -3
  114. package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
  115. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts +3 -1
  116. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts.map +1 -1
  117. package/types/components/DatePicker/utils/dateHelper.d.ts +10 -0
  118. package/types/components/DatePicker/utils/dateHelper.d.ts.map +1 -1
  119. package/types/components/Popover/Popover.types.d.ts +1 -1
  120. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +6 -6
  121. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
  122. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +6 -6
  123. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
  124. package/cjs/components/DatePicker/RangeDate/variations/_size/base_1911nyw.css +0 -1
  125. package/es/components/DatePicker/RangeDate/variations/_size/base_1911nyw.css +0 -1
@@ -6,12 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useDatePicker = void 0;
7
7
  var _DatePicker = /*#__PURE__*/require("../DatePicker.tokens");
8
8
  var _dateHelper = /*#__PURE__*/require("../utils/dateHelper");
9
- var _datejs = /*#__PURE__*/require("../../../utils/datejs");
10
9
  var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
11
10
  var currentValue = _ref.currentValue,
12
11
  setInputValue = _ref.setInputValue,
13
12
  setCalendarValue = _ref.setCalendarValue,
14
- setIsInnerOpen = _ref.setIsInnerOpen,
15
13
  dateFormatDelimiter = _ref.dateFormatDelimiter,
16
14
  format = _ref.format,
17
15
  _ref$lang = _ref.lang,
@@ -21,24 +19,12 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
21
19
  maskWithFormat = _ref.maskWithFormat,
22
20
  valueError = _ref.valueError,
23
21
  valueSuccess = _ref.valueSuccess,
24
- inputRef = _ref.inputRef,
25
22
  name = _ref.name,
26
- onToggle = _ref.onToggle,
27
23
  onChangeValue = _ref.onChangeValue,
28
24
  onCommitDate = _ref.onCommitDate,
29
25
  onChange = _ref.onChange;
30
26
  var datePickerErrorClass = valueError ? _DatePicker.classes.datePickerError : undefined;
31
27
  var datePickerSuccessClass = valueSuccess ? _DatePicker.classes.datePickerSuccess : undefined;
32
- var handleToggle = function handleToggle(opened, event) {
33
- if (disabled || readOnly) {
34
- return;
35
- }
36
- var isCalendarOpen = event.target === (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) ? true : opened;
37
- if (onToggle) {
38
- return onToggle(isCalendarOpen, event);
39
- }
40
- setIsInnerOpen(isCalendarOpen);
41
- };
42
28
  var handleChangeValue = function handleChangeValue(event) {
43
29
  if (disabled || readOnly) {
44
30
  return;
@@ -61,24 +47,14 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
61
47
  });
62
48
  return;
63
49
  }
64
-
65
- /**
66
- * NOTE: если в формате даты есть месяц в полном названии или сокращенном,
67
- * нужно дополнительно проводить валидацию на полноту введенной даты.
68
- * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.
69
- */
70
- var hasMonthFullName = /M{3,4}/g.test(format);
71
- var isValidMonth;
72
- var isLengthEqual;
73
- if (hasMonthFullName) {
74
- _datejs.customDayjs.locale(lang);
75
- var firstIndexOfMonth = format.indexOf('M');
76
- var lastIndexOfMonth = newValue.indexOf(dateFormatDelimiter(), firstIndexOfMonth);
77
- var fullMonthName = !lastIndexOfMonth ? newValue.slice(firstIndexOfMonth) : newValue.slice(firstIndexOfMonth, lastIndexOfMonth);
78
- var monthFormatting = format.replace(/[^M]/g, '');
79
- isValidMonth = (0, _datejs.customDayjs)("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
80
- isLengthEqual = format.length - monthFormatting.length === newValue.length - fullMonthName.length;
81
- }
50
+ var _validateDateWithFull = (0, _dateHelper.validateDateWithFullMonth)({
51
+ currentValue: newValue,
52
+ format: format,
53
+ lang: lang
54
+ }),
55
+ hasMonthFullName = _validateDateWithFull.hasMonthFullName,
56
+ isValidMonth = _validateDateWithFull.isValidMonth,
57
+ isLengthEqual = _validateDateWithFull.isLengthEqual;
82
58
  if (!hasMonthFullName && (newValue === null || newValue === void 0 ? void 0 : newValue.length) === (format === null || format === void 0 ? void 0 : format.length) || isValidMonth && isLengthEqual) {
83
59
  setCalendarValue((0, _dateHelper.formatCalendarValue)(newValue, format, lang));
84
60
  }
@@ -108,20 +84,18 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
108
84
  return onCommitDate === null || onCommitDate === void 0 ? void 0 : onCommitDate('', false, true);
109
85
  }
110
86
  if (isCalendarValue) {
111
- setCalendarValue((0, _dateHelper.formatCalendarValue)(date, format, lang));
112
- setInputValue((0, _dateHelper.formatInputValue)({
87
+ var _formattedInputValue = (0, _dateHelper.formatInputValue)({
113
88
  value: date,
114
89
  format: format,
115
90
  lang: lang
116
- }));
91
+ });
92
+ setCalendarValue((0, _dateHelper.formatCalendarValue)(date, format, lang));
93
+ setInputValue(_formattedInputValue);
117
94
  onCommitDate === null || onCommitDate === void 0 || onCommitDate(date, false, true, dateInfo);
95
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, _formattedInputValue);
118
96
  onChange === null || onChange === void 0 || onChange({
119
97
  target: {
120
- value: (0, _dateHelper.formatInputValue)({
121
- value: date,
122
- format: format,
123
- lang: lang
124
- }),
98
+ value: _formattedInputValue,
125
99
  name: name
126
100
  }
127
101
  });
@@ -132,19 +106,18 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
132
106
  newDate = _getDateFromFormat.value,
133
107
  isError = _getDateFromFormat.isError,
134
108
  isSuccess = _getDateFromFormat.isSuccess;
135
- setCalendarValue((0, _dateHelper.formatCalendarValue)(newDate, format, lang));
136
- setInputValue((0, _dateHelper.formatInputValue)({
109
+ var formattedInputValue = (0, _dateHelper.formatInputValue)({
137
110
  value: newDate,
138
111
  format: format,
139
112
  lang: lang
140
- }));
113
+ });
114
+ setCalendarValue((0, _dateHelper.formatCalendarValue)(newDate, format, lang));
115
+ setInputValue(formattedInputValue);
141
116
  onCommitDate === null || onCommitDate === void 0 || onCommitDate(newDate, isError, isSuccess);
117
+ onChangeValue === null || onChangeValue === void 0 || onChangeValue(null, formattedInputValue);
142
118
  onChange === null || onChange === void 0 || onChange({
143
119
  target: {
144
- value: (0, _dateHelper.formatInputValue)({
145
- value: date,
146
- format: format
147
- }),
120
+ value: formattedInputValue,
148
121
  name: name
149
122
  }
150
123
  });
@@ -152,7 +125,6 @@ var useDatePicker = exports.useDatePicker = function useDatePicker(_ref) {
152
125
  return {
153
126
  datePickerErrorClass: datePickerErrorClass,
154
127
  datePickerSuccessClass: datePickerSuccessClass,
155
- handleToggle: handleToggle,
156
128
  handleChangeValue: handleChangeValue,
157
129
  handleCommitDate: handleCommitDate
158
130
  };
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useKeyNavigation = exports.keys = void 0;
7
7
  var keys = exports.keys = {
8
- Space: 'Space'
8
+ Space: 'Space',
9
+ Escape: 'Escape'
9
10
  };
10
11
  var useKeyNavigation = exports.useKeyNavigation = function useKeyNavigation(_ref) {
11
12
  var isCalendarOpen = _ref.isCalendarOpen,
13
+ closeOnEsc = _ref.closeOnEsc,
12
14
  onToggle = _ref.onToggle;
13
15
  var onKeyDown = function onKeyDown(event) {
14
16
  switch (event.code) {
@@ -20,6 +22,14 @@ var useKeyNavigation = exports.useKeyNavigation = function useKeyNavigation(_ref
20
22
  }
21
23
  break;
22
24
  }
25
+ case keys.Escape:
26
+ {
27
+ if (isCalendarOpen && closeOnEsc) {
28
+ event.preventDefault();
29
+ onToggle(false, event);
30
+ }
31
+ break;
32
+ }
23
33
  default:
24
34
  {
25
35
  break;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getMaskedDateOnInput = exports.getDateFromFormat = exports.getDateFormatDelimiter = exports.formatInputValue = exports.formatCalendarValue = void 0;
6
+ exports.validateDateWithFullMonth = exports.getMaskedDateOnInput = exports.getDateFromFormat = exports.getDateFormatDelimiter = exports.formatInputValue = exports.formatCalendarValue = void 0;
7
7
  var _datejs = /*#__PURE__*/require("../../../utils/datejs");
8
8
  var formatInputValue = exports.formatInputValue = function formatInputValue(_ref) {
9
9
  var value = _ref.value,
@@ -84,4 +84,34 @@ var getMaskedDateOnInput = exports.getMaskedDateOnInput = function getMaskedDate
84
84
  return value + delimiter;
85
85
  }
86
86
  return value;
87
+ };
88
+ var validateDateWithFullMonth = exports.validateDateWithFullMonth = function validateDateWithFullMonth(_ref2) {
89
+ var currentValue = _ref2.currentValue,
90
+ format = _ref2.format,
91
+ lang = _ref2.lang;
92
+ /**
93
+ * NOTE: если в формате даты есть месяц в полном названии или сокращенном,
94
+ * нужно дополнительно проводить валидацию на полноту введенной даты.
95
+ * Иначе dayjs циклически будет пытаться отформатировать некорректную дату.
96
+ */
97
+ var hasMonthFullName = /M{3,4}/g.test(format);
98
+ if (!hasMonthFullName) {
99
+ return {
100
+ hasMonthFullName: hasMonthFullName,
101
+ isValidMonth: false,
102
+ isLengthEqual: false
103
+ };
104
+ }
105
+ _datejs.customDayjs.locale(lang);
106
+ var firstIndexOfMonth = format.indexOf('M');
107
+ var lastIndexOfMonth = currentValue.indexOf(getDateFormatDelimiter(format), firstIndexOfMonth);
108
+ var fullMonthName = !lastIndexOfMonth ? currentValue.slice(firstIndexOfMonth) : currentValue.slice(firstIndexOfMonth, lastIndexOfMonth);
109
+ var monthFormatting = format.replace(/[^M]/g, '');
110
+ var isValidMonth = (0, _datejs.customDayjs)("01 ".concat(fullMonthName, " 1970"), "DD ".concat(monthFormatting, " YYYY"), true).isValid();
111
+ var isLengthEqual = format.length - monthFormatting.length === currentValue.length - fullMonthName.length;
112
+ return {
113
+ hasMonthFullName: hasMonthFullName,
114
+ isValidMonth: isValidMonth,
115
+ isLengthEqual: isLengthEqual
116
+ };
87
117
  };
@@ -1,4 +1,4 @@
1
- import React, { useState } from 'react';
1
+ import React from 'react';
2
2
  import type { ComponentProps, ReactNode } from 'react';
3
3
  import type { StoryObj, Meta } from '@storybook/react';
4
4
  import { disableProps } from '@salutejs/plasma-sb-utils';
@@ -7,8 +7,6 @@ import { mergeConfig } from '../../../../engines';
7
7
  import { WithTheme, argTypesFromConfig } from '../../../_helpers';
8
8
  import { accordionConfig } from '../../../../components/Accordion';
9
9
  import { Pin } from '../../../../utils/roundness';
10
- import { IconButton } from '../IconButton/IconButton';
11
- import { IconPlus } from '../../../../components/_Icon';
12
10
 
13
11
  import { config } from './Accordion.config';
14
12
  import { Accordion, AccordionItem } from './Accordion';
@@ -93,80 +91,3 @@ export const Default: StoryObj<AccordionProps> = {
93
91
  );
94
92
  },
95
93
  };
96
-
97
- const getSizeForIcon = (size) => {
98
- const map = {
99
- mr: 's',
100
- lr: 's',
101
- m: 's',
102
- l: 's',
103
- sr: 's',
104
- xsr: 'xs',
105
- };
106
- if (map[size]) {
107
- return map[size];
108
- }
109
-
110
- return size;
111
- };
112
-
113
- const ControlledAccordion = (props: AccordionProps) => {
114
- const args = { ...props, text: undefined };
115
- // eslint-disable-next-line react-hooks/rules-of-hooks
116
- const [activeFirst, setActiveFirst] = useState(false);
117
- // eslint-disable-next-line react-hooks/rules-of-hooks
118
- const [activeSecond, setActiveSecond] = useState(false);
119
- // eslint-disable-next-line react-hooks/rules-of-hooks
120
- const [activeThree, setActiveThree] = useState(false);
121
-
122
- return (
123
- <Accordion {...args}>
124
- <AccordionItem
125
- contentRight={
126
- <IconButton view="secondary" size={args.size} onClick={() => setActiveFirst(!activeFirst)}>
127
- <IconPlus size={getSizeForIcon(args.size)} />
128
- </IconButton>
129
- }
130
- alignWithTitle={args.alignWithTitle}
131
- type={args.type}
132
- pin={args.pin}
133
- title={args.title}
134
- opened={activeFirst}
135
- >
136
- {args.body}
137
- </AccordionItem>
138
- <AccordionItem
139
- contentRight={
140
- <IconButton view="secondary" size={args.size} onClick={() => setActiveSecond(!activeSecond)}>
141
- <IconPlus size={getSizeForIcon(args.size)} />
142
- </IconButton>
143
- }
144
- alignWithTitle={args.alignWithTitle}
145
- type={args.type}
146
- pin={args.pin}
147
- title={args.title}
148
- opened={activeSecond}
149
- >
150
- {args.body}
151
- </AccordionItem>
152
- <AccordionItem
153
- contentRight={
154
- <IconButton view="secondary" size={args.size} onClick={() => setActiveThree(!activeThree)}>
155
- <IconPlus size={getSizeForIcon(args.size)} />
156
- </IconButton>
157
- }
158
- alignWithTitle={args.alignWithTitle}
159
- type={args.type}
160
- pin={args.pin}
161
- title={args.title}
162
- opened={activeThree}
163
- >
164
- {args.body}
165
- </AccordionItem>
166
- </Accordion>
167
- );
168
- };
169
-
170
- export const Controlled: StoryObj<AccordionProps> = {
171
- render: (props: AccordionProps) => ControlledAccordion(props),
172
- };
@@ -1,4 +1,4 @@
1
- import React, { useState } from 'react';
1
+ import React from 'react';
2
2
  import type { ComponentProps, ReactNode } from 'react';
3
3
  import type { StoryObj, Meta } from '@storybook/react';
4
4
  import { disableProps } from '@salutejs/plasma-sb-utils';
@@ -7,8 +7,6 @@ import { mergeConfig } from '../../../../engines';
7
7
  import { WithTheme, argTypesFromConfig } from '../../../_helpers';
8
8
  import { accordionConfig } from '../../../../components/Accordion';
9
9
  import { Pin } from '../../../../utils/roundness';
10
- import { IconButton } from '../IconButton/IconButton';
11
- import { IconPlus } from '../../../../components/_Icon';
12
10
 
13
11
  import { config } from './Accordion.config';
14
12
  import { Accordion, AccordionItem } from './Accordion';
@@ -93,80 +91,3 @@ export const Default: StoryObj<AccordionProps> = {
93
91
  );
94
92
  },
95
93
  };
96
-
97
- const getSizeForIcon = (size) => {
98
- const map = {
99
- mr: 's',
100
- lr: 's',
101
- m: 's',
102
- l: 's',
103
- sr: 's',
104
- xsr: 'xs',
105
- };
106
- if (map[size]) {
107
- return map[size];
108
- }
109
-
110
- return size;
111
- };
112
-
113
- const ControlledAccordion = (props: AccordionProps) => {
114
- const args = { ...props, text: undefined };
115
- // eslint-disable-next-line react-hooks/rules-of-hooks
116
- const [activeFirst, setActiveFirst] = useState(false);
117
- // eslint-disable-next-line react-hooks/rules-of-hooks
118
- const [activeSecond, setActiveSecond] = useState(false);
119
- // eslint-disable-next-line react-hooks/rules-of-hooks
120
- const [activeThree, setActiveThree] = useState(false);
121
-
122
- return (
123
- <Accordion {...args}>
124
- <AccordionItem
125
- contentRight={
126
- <IconButton view="secondary" size={args.size} onClick={() => setActiveFirst(!activeFirst)}>
127
- <IconPlus size={getSizeForIcon(args.size)} />
128
- </IconButton>
129
- }
130
- alignWithTitle={args.alignWithTitle}
131
- type={args.type}
132
- pin={args.pin}
133
- title={args.title}
134
- opened={activeFirst}
135
- >
136
- {args.body}
137
- </AccordionItem>
138
- <AccordionItem
139
- contentRight={
140
- <IconButton view="secondary" size={args.size} onClick={() => setActiveSecond(!activeSecond)}>
141
- <IconPlus size={getSizeForIcon(args.size)} />
142
- </IconButton>
143
- }
144
- alignWithTitle={args.alignWithTitle}
145
- type={args.type}
146
- pin={args.pin}
147
- title={args.title}
148
- opened={activeSecond}
149
- >
150
- {args.body}
151
- </AccordionItem>
152
- <AccordionItem
153
- contentRight={
154
- <IconButton view="secondary" size={args.size} onClick={() => setActiveThree(!activeThree)}>
155
- <IconPlus size={getSizeForIcon(args.size)} />
156
- </IconButton>
157
- }
158
- alignWithTitle={args.alignWithTitle}
159
- type={args.type}
160
- pin={args.pin}
161
- title={args.title}
162
- opened={activeThree}
163
- >
164
- {args.body}
165
- </AccordionItem>
166
- </Accordion>
167
- );
168
- };
169
-
170
- export const Controlled: StoryObj<AccordionProps> = {
171
- render: (props: AccordionProps) => ControlledAccordion(props),
172
- };
@@ -11,12 +11,12 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
11
11
  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; }
12
12
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
13
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
- import React, { useState, useRef, forwardRef, useEffect } from 'react';
14
+ import React, { useState, useRef, useEffect } from 'react';
15
15
  import { convertRoundnessMatrix } from '../../../../utils/roundness';
16
16
  import { classes, tokens } from '../../Accordion.tokens';
17
17
  import { cx } from '../../../../utils';
18
- import { StyledAccordionItem, StyledAccordionHeader, StyledAccordionBody, StyledAccordionTitle, StyledAccordionContentLeft, StyledAccordionHeaderLeft, StyledAccordionContentRight, StyledArrow, StyledMinus, StyledPlus, StyledAccordionBodyAnimate, StyledAccordionContentRightDefault } from './AccordionItem.styles';
19
- export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
18
+ import { StyledAccordionItem, StyledAccordionHeader, StyledAccordionBody, StyledAccordionTitle, StyledAccordionContentLeft, StyledAccordionHeaderLeft, StyledAccordionContentRight, StyledArrow, StyledMinus, StyledPlus, StyledAccordionBodyAnimate } from './AccordionItem.styles';
19
+ export var AccordionItem = function AccordionItem(_ref) {
20
20
  var _ref2;
21
21
  var value = _ref.value,
22
22
  contentRight = _ref.contentRight,
@@ -34,7 +34,6 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
34
34
  disabled = _ref.disabled,
35
35
  _ref$alignWithTitle = _ref.alignWithTitle,
36
36
  alignWithTitle = _ref$alignWithTitle === void 0 ? true : _ref$alignWithTitle,
37
- opened = _ref.opened,
38
37
  view = _ref.view,
39
38
  onChange = _ref.onChange;
40
39
  var key = (_ref2 = eventKey !== null && eventKey !== void 0 ? eventKey : index) !== null && _ref2 !== void 0 ? _ref2 : 0;
@@ -57,7 +56,7 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
57
56
  var leftPaddingBody = leftContentWidth && (alignWithTitle || view === 'clear') ? "calc(".concat(leftContentWidth, "px + var(").concat(tokens.accordionItemGap, "))") : 0;
58
57
  setLeftPadding(leftPaddingBody);
59
58
  }, [value, type, leftContentRef, setLeftPadding]);
60
- var openedBodyClass = (opened !== null && opened !== void 0 ? opened : value) ? classes.accordionItemShowBody : undefined;
59
+ var openedBodyClass = value ? classes.accordionItemShowBody : undefined;
61
60
  var StyledAnimationPLus = function StyledAnimationPLus() {
62
61
  return /*#__PURE__*/React.createElement(StyledPlus, null, _StyledMinus || (_StyledMinus = /*#__PURE__*/React.createElement(StyledMinus, {
63
62
  size: "xs",
@@ -80,7 +79,6 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
80
79
  return /*#__PURE__*/React.createElement(StyledAccordionItem, {
81
80
  className: cx(classes.accordionItem, className, disabledClass),
82
81
  key: key,
83
- ref: outerRef,
84
82
  style: _objectSpread({
85
83
  borderRadius: accordionBorderRadius
86
84
  }, style)
@@ -94,7 +92,7 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
94
92
  }, /*#__PURE__*/React.createElement(StyledAccordionHeaderLeft, null, leftContent && /*#__PURE__*/React.createElement(StyledAccordionContentLeft, {
95
93
  ref: leftContentRef,
96
94
  className: leftContentRotate
97
- }, leftContent), /*#__PURE__*/React.createElement(StyledAccordionTitle, null, title)), contentRight ? /*#__PURE__*/React.createElement(StyledAccordionContentRightDefault, null, contentRight) : /*#__PURE__*/React.createElement(StyledAccordionContentRight, {
95
+ }, leftContent), /*#__PURE__*/React.createElement(StyledAccordionTitle, null, title)), /*#__PURE__*/React.createElement(StyledAccordionContentRight, {
98
96
  className: rightContentRotate
99
97
  }, rightContent && rightContent)), /*#__PURE__*/React.createElement(StyledAccordionBodyAnimate, {
100
98
  "aria-labelledby": "accordion-item-".concat(key),
@@ -107,4 +105,4 @@ export var AccordionItem = /*#__PURE__*/forwardRef(function (_ref, outerRef) {
107
105
  }, /*#__PURE__*/React.createElement(StyledAccordionBody, {
108
106
  className: classes.accordionItemBody
109
107
  }, children)));
110
- });
108
+ };
@@ -19,27 +19,24 @@ export var StyledAccordionHeaderLeft = /*#__PURE__*/styled.div.withConfig({
19
19
  export var StyledAccordionContentRight = /*#__PURE__*/styled.div.withConfig({
20
20
  componentId: "plasma-new-hope__sc-20ij9z-3"
21
21
  })(["transition:0.2s;transform:rotate(90deg);&.", "{transition:0.2s;transform:rotate(0deg);}"], classes.accordionItemShowBody);
22
- export var StyledAccordionContentRightDefault = /*#__PURE__*/styled.div.withConfig({
23
- componentId: "plasma-new-hope__sc-20ij9z-4"
24
- })(["margin-top:calc(0px - var(", "));margin-right:calc(0px - var(", "));margin-bottom:calc(0px - var(", "));"], tokens.accordionItemPaddingVertical, tokens.accordionItemPaddingHorizontalLeft, tokens.accordionItemPaddingVertical);
25
22
  export var StyledAccordionContentLeft = /*#__PURE__*/styled.div.withConfig({
26
- componentId: "plasma-new-hope__sc-20ij9z-5"
23
+ componentId: "plasma-new-hope__sc-20ij9z-4"
27
24
  })(["transition:0.2s;display:flex;align-items:center;&.", "{transition:0.2s;transform:rotate(180deg);}"], classes.accordionItemShowBody);
28
25
  export var StyledAccordionTitle = /*#__PURE__*/styled.div.withConfig({
29
- componentId: "plasma-new-hope__sc-20ij9z-6"
26
+ componentId: "plasma-new-hope__sc-20ij9z-5"
30
27
  })(["color:var(", ");font-family:var(", ");font-size:var(", ");font-weight:var(", ");font-style:var(", ");letter-spacing:var(", ");line-height:var(", ");text-align:left;"], tokens.accordionItemTitleColor, tokens.accordionItemTitleFontFamily, tokens.accordionItemTitleFontSize, tokens.accordionItemTitleFontWeight, tokens.accordionItemTitleFontStyle, tokens.accordionItemTitleLetterSpacing, tokens.accordionItemTitleLineHeight);
31
28
  export var StyledAccordionBodyAnimate = /*#__PURE__*/styled.div.withConfig({
32
- componentId: "plasma-new-hope__sc-20ij9z-7"
29
+ componentId: "plasma-new-hope__sc-20ij9z-6"
33
30
  })(["display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.2s ease-out;overflow:hidden;&.", "{grid-template-rows:1fr;padding-bottom:var(", ");&.", "{transition:0.2s;transform:rotate(0deg);}}"], classes.accordionItemShowBody, tokens.accordionItemPaddingVertical, classes.accordionPlusAnimationElement);
34
31
  export var StyledAccordionBody = /*#__PURE__*/styled.div.withConfig({
35
- componentId: "plasma-new-hope__sc-20ij9z-8"
32
+ componentId: "plasma-new-hope__sc-20ij9z-7"
36
33
  })(["color:var(", ");font-family:var(", ");font-size:var(", ");font-weight:var(", ");font-style:var(", ");letter-spacing:var(", ");line-height:var(", ");overflow:hidden;padding-right:var(", ");padding-left:var(", ");text-align:left;"], tokens.accordionItemTextColor, tokens.accordionItemTextFontFamily, tokens.accordionItemTextFontSize, tokens.accordionItemTextFontWeight, tokens.accordionItemTextFontStyle, tokens.accordionItemTextLetterSpacing, tokens.accordionItemTextLineHeight, tokens.accordionItemPaddingHorizontal, tokens.accordionItemPaddingHorizontalLeft);
37
34
  export var StyledArrow = /*#__PURE__*/styled(IconChevronDownFill).withConfig({
38
- componentId: "plasma-new-hope__sc-20ij9z-9"
35
+ componentId: "plasma-new-hope__sc-20ij9z-8"
39
36
  })(["pointer-events:none;user-select:none;color:var(", ");"], tokens.accordionItemIconColor);
40
37
  export var StyledMinus = /*#__PURE__*/styled(IconMinus).withConfig({
41
- componentId: "plasma-new-hope__sc-20ij9z-10"
38
+ componentId: "plasma-new-hope__sc-20ij9z-9"
42
39
  })(["pointer-events:none;user-select:none;color:var(", ");display:flex;align-items:center;position:absolute;top:0;left:0;&.", "{transition:0.2s;transform:rotate(90deg);}&.", "{transition:0.2s;transform:rotate(0deg);}"], tokens.accordionItemIconColor, classes.accordionPlusAnimationElement, classes.accordionItemShowBody);
43
40
  export var StyledPlus = /*#__PURE__*/styled.div.withConfig({
44
- componentId: "plasma-new-hope__sc-20ij9z-11"
41
+ componentId: "plasma-new-hope__sc-20ij9z-10"
45
42
  })(["position:relative;height:1rem;display:flex;align-items:center;justify-content:center;width:1rem;"]);