@itcase/ui 1.9.58 → 1.9.59

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 (181) hide show
  1. package/dist/{Avatar_cjs_BIHJrAbQ.js → Avatar_cjs_BcCK-1qn.js} +5 -8
  2. package/dist/{Avatar_es_CtP68jPM.js → Avatar_es_Dn6PILdH.js} +2 -5
  3. package/dist/{Button_cjs_BCcz3-Fw.js → Button_cjs_DqbZe2Sk.js} +7 -13
  4. package/dist/{Button_es_DAzeb-vJ.js → Button_es_C9pw5qr_.js} +2 -8
  5. package/dist/{ChipsGroup_cjs_C27x9x9O.js → ChipsGroup_cjs_BNapN3BL.js} +7 -11
  6. package/dist/{ChipsGroup_es_BTe1MYhV.js → ChipsGroup_es_CYtMZd_G.js} +1 -5
  7. package/dist/{DatePicker_cjs_Dvw_cGFH.js → DatePicker_cjs_CY3VQDAV.js} +10 -14
  8. package/dist/{DatePicker_es_t3u6yddn.js → DatePicker_es_C110M8WT.js} +4 -8
  9. package/dist/{Group_cjs_BLGSskb3.js → Group_cjs_CvX0cIz2.js} +4 -6
  10. package/dist/{Group_es_CP-uIchb.js → Group_es_BgJhtaOv.js} +1 -3
  11. package/dist/{Image_cjs_Hvjp2QDB.js → Image_cjs_BdHJJUTP.js} +4 -6
  12. package/dist/{Image_es_DpOCNWpn.js → Image_es_5EyRL35j.js} +1 -3
  13. package/dist/{Input_cjs_BQIi1N63.js → Input_cjs_BStFgIuQ.js} +3 -4
  14. package/dist/{Input_es_BYbc2X9M.js → Input_es_BVvf5Gpr.js} +1 -2
  15. package/dist/{Label_cjs_RI5tFcPt.js → Label_cjs_BYjXyKWj.js} +5 -9
  16. package/dist/{Label_es_CNRTIAWo.js → Label_es_SG60qCRL.js} +1 -5
  17. package/dist/{Loader_cjs_CJpdLndn.js → Loader_cjs_BgiKK0BF.js} +5 -8
  18. package/dist/{Loader_es_CqlLujBJ.js → Loader_es_DzjoV2MF.js} +1 -4
  19. package/dist/{Overlay_cjs_BK_0yTLw.js → Overlay_cjs_OmKx5lKU.js} +4 -6
  20. package/dist/{Overlay_es_DOO535JM.js → Overlay_es_DhKLpjdA.js} +1 -3
  21. package/dist/{SelectContainer_cjs_DJ_IUDjE.js → SelectContainer_cjs_CdxNPEhL.js} +17 -22
  22. package/dist/{SelectContainer_es_BYBGTq-u.js → SelectContainer_es_BQNyIzfX.js} +3 -8
  23. package/dist/cjs/components/Accordion.js +7 -22
  24. package/dist/cjs/components/Avatar.js +4 -18
  25. package/dist/cjs/components/AvatarStack.js +8 -22
  26. package/dist/cjs/components/Badge.js +5 -19
  27. package/dist/cjs/components/Breadcrumbs.js +7 -21
  28. package/dist/cjs/components/Button.js +4 -18
  29. package/dist/cjs/components/Cell.js +6 -20
  30. package/dist/cjs/components/Checkbox.js +7 -15
  31. package/dist/cjs/components/Checkmark.js +5 -19
  32. package/dist/cjs/components/Chips.js +2 -16
  33. package/dist/cjs/components/Choice.js +7 -21
  34. package/dist/cjs/components/Code.js +5 -10
  35. package/dist/cjs/components/CookiesWarning.js +7 -21
  36. package/dist/cjs/components/Dadata.js +4 -9
  37. package/dist/cjs/components/DatePeriod.js +18 -33
  38. package/dist/cjs/components/DatePicker.js +7 -21
  39. package/dist/cjs/components/Divider.js +6 -14
  40. package/dist/cjs/components/Dot.js +4 -10
  41. package/dist/cjs/components/Drawer.js +6 -21
  42. package/dist/cjs/components/Dropdown.js +5 -21
  43. package/dist/cjs/components/Dropzone.js +11 -25
  44. package/dist/cjs/components/Flex.js +6 -12
  45. package/dist/cjs/components/Grid.js +8 -14
  46. package/dist/cjs/components/Group.js +3 -10
  47. package/dist/cjs/components/HTMLContent.js +4 -10
  48. package/dist/cjs/components/HeroTitle.js +5 -19
  49. package/dist/cjs/components/Icon.js +5 -19
  50. package/dist/cjs/components/Image.js +4 -12
  51. package/dist/cjs/components/Input.js +4 -9
  52. package/dist/cjs/components/InputNumber.js +6 -20
  53. package/dist/cjs/components/InputPassword.js +5 -19
  54. package/dist/cjs/components/Label.js +2 -16
  55. package/dist/cjs/components/Link.js +6 -14
  56. package/dist/cjs/components/List.js +8 -16
  57. package/dist/cjs/components/Loader.js +3 -11
  58. package/dist/cjs/components/Logo.js +8 -18
  59. package/dist/cjs/components/MenuItem.js +5 -19
  60. package/dist/cjs/components/Modal.js +7 -21
  61. package/dist/cjs/components/ModalSheetBottom.js +5 -19
  62. package/dist/cjs/components/Notification.js +11 -25
  63. package/dist/cjs/components/Overlay.js +3 -10
  64. package/dist/cjs/components/Pagination.js +8 -24
  65. package/dist/cjs/components/Radio.js +5 -13
  66. package/dist/cjs/components/RangeSlider.js +4 -10
  67. package/dist/cjs/components/Response.js +10 -24
  68. package/dist/cjs/components/SVGContent.js +5 -14
  69. package/dist/cjs/components/ScrollOnDrag.js +4 -10
  70. package/dist/cjs/components/ScrollToView.js +4 -10
  71. package/dist/cjs/components/Search.js +7 -21
  72. package/dist/cjs/components/Segmented.js +6 -20
  73. package/dist/cjs/components/Select.js +5 -20
  74. package/dist/cjs/components/Swiper.js +6 -20
  75. package/dist/cjs/components/Switch.js +5 -13
  76. package/dist/cjs/components/Tab.js +8 -23
  77. package/dist/cjs/components/Text.js +6 -14
  78. package/dist/cjs/components/Textarea.js +5 -10
  79. package/dist/cjs/components/Tile.js +5 -19
  80. package/dist/cjs/components/Title.js +5 -19
  81. package/dist/cjs/components/Tooltip.js +5 -19
  82. package/dist/cjs/components/Video.js +5 -9
  83. package/dist/cjs/components/Warning.js +5 -19
  84. package/dist/cjs/context/Notifications.js +16 -188
  85. package/dist/cjs/context/UIContext.js +14 -71
  86. package/dist/cjs/context/UrlAssetPrefix.js +15 -13
  87. package/dist/cjs/hoc/urlWithAssetPrefix.js +14 -73
  88. package/dist/cjs/hooks/useAppearanceConfig/useAppearanceConfig.js +14 -25
  89. package/dist/cjs/hooks/useAppearanceConfig.js +12 -2
  90. package/dist/cjs/hooks/useDevicePropsGenerator/useDevicePropsGenerator.js +10 -124
  91. package/dist/cjs/hooks/useDevicePropsGenerator.js +6 -9
  92. package/dist/cjs/hooks/useDeviceTargetClass.js +8 -4
  93. package/dist/cjs/hooks/useMediaQueries/useMediaQueries.js +13 -116
  94. package/dist/cjs/hooks/useMediaQueries.js +11 -2
  95. package/dist/cjs/hooks/useStyles/styleAttributes.js +15 -168
  96. package/dist/cjs/hooks/useStyles/useStyles.js +10 -196
  97. package/dist/cjs/hooks/useStyles.js +7 -10
  98. package/dist/cjs/hooks.js +15 -6
  99. package/dist/cjs/utils/mergeAppearanceKeys.js +15 -15
  100. package/dist/cjs/utils/setViewportProperty.js +15 -5
  101. package/dist/cjs/utils.js +14 -4
  102. package/dist/components/Accordion.js +1 -16
  103. package/dist/components/Avatar.js +4 -18
  104. package/dist/components/AvatarStack.js +4 -18
  105. package/dist/components/Badge.js +2 -16
  106. package/dist/components/Breadcrumbs.js +1 -15
  107. package/dist/components/Button.js +4 -18
  108. package/dist/components/Cell.js +2 -16
  109. package/dist/components/Checkbox.js +4 -12
  110. package/dist/components/Checkmark.js +1 -15
  111. package/dist/components/Chips.js +2 -16
  112. package/dist/components/Choice.js +2 -16
  113. package/dist/components/Code.js +3 -8
  114. package/dist/components/CookiesWarning.js +4 -18
  115. package/dist/components/Dadata.js +4 -9
  116. package/dist/components/DatePeriod.js +12 -27
  117. package/dist/components/DatePicker.js +7 -21
  118. package/dist/components/Divider.js +3 -11
  119. package/dist/components/Dot.js +2 -8
  120. package/dist/components/Drawer.js +3 -18
  121. package/dist/components/Dropdown.js +1 -17
  122. package/dist/components/Dropzone.js +7 -21
  123. package/dist/components/Flex.js +2 -8
  124. package/dist/components/Grid.js +2 -8
  125. package/dist/components/Group.js +3 -10
  126. package/dist/components/HTMLContent.js +2 -8
  127. package/dist/components/HeroTitle.js +1 -15
  128. package/dist/components/Icon.js +2 -16
  129. package/dist/components/Image.js +4 -12
  130. package/dist/components/Input.js +4 -9
  131. package/dist/components/InputNumber.js +4 -18
  132. package/dist/components/InputPassword.js +2 -16
  133. package/dist/components/Label.js +2 -16
  134. package/dist/components/Link.js +2 -10
  135. package/dist/components/List.js +2 -10
  136. package/dist/components/Loader.js +3 -11
  137. package/dist/components/Logo.js +3 -13
  138. package/dist/components/MenuItem.js +1 -15
  139. package/dist/components/Modal.js +3 -17
  140. package/dist/components/ModalSheetBottom.js +1 -15
  141. package/dist/components/Notification.js +5 -19
  142. package/dist/components/Overlay.js +3 -10
  143. package/dist/components/Pagination.js +1 -17
  144. package/dist/components/Radio.js +2 -10
  145. package/dist/components/RangeSlider.js +2 -8
  146. package/dist/components/Response.js +5 -19
  147. package/dist/components/SVGContent.js +2 -11
  148. package/dist/components/ScrollOnDrag.js +2 -8
  149. package/dist/components/ScrollToView.js +2 -8
  150. package/dist/components/Search.js +1 -15
  151. package/dist/components/Segmented.js +2 -16
  152. package/dist/components/Select.js +5 -20
  153. package/dist/components/Swiper.js +2 -16
  154. package/dist/components/Switch.js +2 -10
  155. package/dist/components/Tab.js +2 -17
  156. package/dist/components/Text.js +3 -11
  157. package/dist/components/Textarea.js +3 -8
  158. package/dist/components/Tile.js +1 -15
  159. package/dist/components/Title.js +2 -16
  160. package/dist/components/Tooltip.js +2 -16
  161. package/dist/components/Video.js +4 -8
  162. package/dist/components/Warning.js +1 -15
  163. package/dist/hooks/useAppearanceConfig.js +11 -1
  164. package/dist/hooks/useDevicePropsGenerator.js +5 -8
  165. package/dist/hooks/useMediaQueries.js +10 -1
  166. package/dist/hooks/useStyles.js +6 -9
  167. package/dist/hooks.js +12 -7
  168. package/dist/primitives_cjs_DX--6Yn5.js +2715 -0
  169. package/dist/primitives_es_BNlMaZfZ.js +2672 -0
  170. package/dist/utils.js +12 -2
  171. package/package.json +1 -1
  172. package/dist/Divider_cjs_C5Ou2Kqa.js +0 -104
  173. package/dist/Divider_es_D2snK_vn.js +0 -100
  174. package/dist/DropdownItem_cjs_k28TIoDU.js +0 -230
  175. package/dist/DropdownItem_es_DjPgbwtU.js +0 -225
  176. package/dist/Icon_cjs_DTvdhr8B.js +0 -1099
  177. package/dist/Icon_es_kewxGRUB.js +0 -1086
  178. package/dist/Link_cjs_Dn7UhCYe.js +0 -277
  179. package/dist/Link_es_BDAmhIzd.js +0 -272
  180. package/dist/Text_cjs_erTy2pUN.js +0 -68
  181. package/dist/Text_es_DVNvU0m0.js +0 -64
package/dist/utils.js CHANGED
@@ -1,2 +1,12 @@
1
- export { mergeAppearanceKeys } from './utils/mergeAppearanceKeys.js';
2
- export { setViewportProperty } from './utils/setViewportProperty.js';
1
+ export { m as mergeAppearanceKeys, s as setViewportProperty } from './primitives_es_BNlMaZfZ.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import 'clsx';
5
+ import 'lodash/camelCase';
6
+ import 'lodash/castArray';
7
+ import 'lodash/upperFirst';
8
+ import 'uuid';
9
+ import '@itcase/common';
10
+ import 'react-responsive';
11
+ import 'lodash/maxBy';
12
+ import 'react-inlinesvg';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/ui",
3
- "version": "1.9.58",
3
+ "version": "1.9.59",
4
4
  "description": "UI components (Modal, Loader, Popup, etc)",
5
5
  "keywords": [
6
6
  "Modal",
@@ -1,104 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var clsx = require('clsx');
5
- var useAppearanceConfig = require('./cjs/hooks/useAppearanceConfig/useAppearanceConfig.js');
6
- var useDevicePropsGenerator = require('./cjs/hooks/useDevicePropsGenerator/useDevicePropsGenerator.js');
7
- var useStyles = require('./cjs/hooks/useStyles/useStyles.js');
8
-
9
- const dividerAppearanceAccent = {
10
- accentPrimary: {
11
- fill: 'accentPrimary',
12
- },
13
- };
14
-
15
- const dividerAppearanceError = {
16
- errorPrimary: {
17
- fill: 'errorPrimary',
18
- },
19
- };
20
-
21
- const dividerAppearanceExtra = {
22
- extraPrimary: {
23
- fill: 'extraPrimary',
24
- },
25
- };
26
-
27
- const dividerAppearanceSize = {
28
- sizeL: {
29
- size: 'l',
30
- },
31
- sizeM: {
32
- size: 'm',
33
- },
34
- sizeS: {
35
- size: 's',
36
- },
37
- };
38
-
39
- const dividerAppearanceSpecial = {
40
- specialPrimary: {
41
- fill: 'specialPrimary',
42
- },
43
- };
44
-
45
- const dividerAppearanceSuccess = {
46
- successPrimary: {
47
- fill: 'successPrimary',
48
- },
49
- };
50
-
51
- const dividerAppearanceSurface = {
52
- surfacePrimary: {
53
- fill: 'surfacePrimary',
54
- },
55
- surfaceQuaternary: {
56
- fill: 'surfaceQuaternary',
57
- },
58
- surfaceSecondary: {
59
- fill: 'surfaceSecondary',
60
- },
61
- surfaceTertiary: {
62
- fill: 'surfaceTertiary',
63
- },
64
- };
65
-
66
- const dividerAppearanceWarning = {
67
- warningPrimary: {
68
- fill: 'warningPrimary',
69
- },
70
- };
71
-
72
- const dividerAppearance = {
73
- ...dividerAppearanceSize,
74
- ...dividerAppearanceAccent,
75
- ...dividerAppearanceError,
76
- ...dividerAppearanceSpecial,
77
- ...dividerAppearanceExtra,
78
- ...dividerAppearanceSuccess,
79
- ...dividerAppearanceSurface,
80
- ...dividerAppearanceWarning,
81
- };
82
-
83
- const dividerConfig = {
84
- appearance: dividerAppearance,
85
- setAppearance: (appearanceConfig) => {
86
- dividerConfig.appearance = appearanceConfig;
87
- },
88
- };
89
- function Divider(props) {
90
- const { appearance, className, dataTestId, dataTour, print, isActive, isDisabled, isSkeleton, } = props;
91
- const appearanceConfig = useAppearanceConfig.useAppearanceConfig(appearance, dividerConfig);
92
- const propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props, appearanceConfig);
93
- const { directionClass, fillActiveClass, fillActiveHoverClass, fillClass, fillDisabledClass, fillHoverClass, shapeClass, shapeStrengthClass, sizeClass, widthClass, } = propsGenerator;
94
- const { styles: hrStyles } = useStyles.useStyles(props);
95
- return (jsxRuntime.jsx("hr", { className: clsx(className, 'divider', widthClass && `width_${widthClass}`, directionClass && `divider_direction_${directionClass}`, shapeClass && `shape_${shapeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, sizeClass && `divider_size_${sizeClass}`, !isActive
96
- ? fillClass && `fill_${fillClass}`
97
- : fillActiveClass && `fill_active_${fillActiveClass}`, !isActive
98
- ? fillHoverClass && `fill_hover_${fillHoverClass}`
99
- : fillActiveHoverClass && `fill_active_hover_${fillActiveHoverClass}`, isDisabled && fillDisabledClass && `fill_disabled_${fillDisabledClass}`, isSkeleton && `divider_skeleton`, !print && 'no-print', print && 'print'), "data-testid": dataTestId, "data-tour": dataTour, style: hrStyles }));
100
- }
101
-
102
- exports.Divider = Divider;
103
- exports.dividerAppearance = dividerAppearance;
104
- exports.dividerConfig = dividerConfig;
@@ -1,100 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import clsx from 'clsx';
3
- import { useAppearanceConfig } from './hooks/useAppearanceConfig/useAppearanceConfig.js';
4
- import { useDevicePropsGenerator } from './hooks/useDevicePropsGenerator/useDevicePropsGenerator.js';
5
- import { useStyles } from './hooks/useStyles/useStyles.js';
6
-
7
- const dividerAppearanceAccent = {
8
- accentPrimary: {
9
- fill: 'accentPrimary',
10
- },
11
- };
12
-
13
- const dividerAppearanceError = {
14
- errorPrimary: {
15
- fill: 'errorPrimary',
16
- },
17
- };
18
-
19
- const dividerAppearanceExtra = {
20
- extraPrimary: {
21
- fill: 'extraPrimary',
22
- },
23
- };
24
-
25
- const dividerAppearanceSize = {
26
- sizeL: {
27
- size: 'l',
28
- },
29
- sizeM: {
30
- size: 'm',
31
- },
32
- sizeS: {
33
- size: 's',
34
- },
35
- };
36
-
37
- const dividerAppearanceSpecial = {
38
- specialPrimary: {
39
- fill: 'specialPrimary',
40
- },
41
- };
42
-
43
- const dividerAppearanceSuccess = {
44
- successPrimary: {
45
- fill: 'successPrimary',
46
- },
47
- };
48
-
49
- const dividerAppearanceSurface = {
50
- surfacePrimary: {
51
- fill: 'surfacePrimary',
52
- },
53
- surfaceQuaternary: {
54
- fill: 'surfaceQuaternary',
55
- },
56
- surfaceSecondary: {
57
- fill: 'surfaceSecondary',
58
- },
59
- surfaceTertiary: {
60
- fill: 'surfaceTertiary',
61
- },
62
- };
63
-
64
- const dividerAppearanceWarning = {
65
- warningPrimary: {
66
- fill: 'warningPrimary',
67
- },
68
- };
69
-
70
- const dividerAppearance = {
71
- ...dividerAppearanceSize,
72
- ...dividerAppearanceAccent,
73
- ...dividerAppearanceError,
74
- ...dividerAppearanceSpecial,
75
- ...dividerAppearanceExtra,
76
- ...dividerAppearanceSuccess,
77
- ...dividerAppearanceSurface,
78
- ...dividerAppearanceWarning,
79
- };
80
-
81
- const dividerConfig = {
82
- appearance: dividerAppearance,
83
- setAppearance: (appearanceConfig) => {
84
- dividerConfig.appearance = appearanceConfig;
85
- },
86
- };
87
- function Divider(props) {
88
- const { appearance, className, dataTestId, dataTour, print, isActive, isDisabled, isSkeleton, } = props;
89
- const appearanceConfig = useAppearanceConfig(appearance, dividerConfig);
90
- const propsGenerator = useDevicePropsGenerator(props, appearanceConfig);
91
- const { directionClass, fillActiveClass, fillActiveHoverClass, fillClass, fillDisabledClass, fillHoverClass, shapeClass, shapeStrengthClass, sizeClass, widthClass, } = propsGenerator;
92
- const { styles: hrStyles } = useStyles(props);
93
- return (jsx("hr", { className: clsx(className, 'divider', widthClass && `width_${widthClass}`, directionClass && `divider_direction_${directionClass}`, shapeClass && `shape_${shapeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, sizeClass && `divider_size_${sizeClass}`, !isActive
94
- ? fillClass && `fill_${fillClass}`
95
- : fillActiveClass && `fill_active_${fillActiveClass}`, !isActive
96
- ? fillHoverClass && `fill_hover_${fillHoverClass}`
97
- : fillActiveHoverClass && `fill_active_hover_${fillActiveHoverClass}`, isDisabled && fillDisabledClass && `fill_disabled_${fillDisabledClass}`, isSkeleton && `divider_skeleton`, !print && 'no-print', print && 'print'), "data-testid": dataTestId, "data-tour": dataTour, style: hrStyles }));
98
- }
99
-
100
- export { Divider as D, dividerConfig as a, dividerAppearance as d };
@@ -1,230 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var clsx = require('clsx');
6
- var useAppearanceConfig = require('./cjs/hooks/useAppearanceConfig/useAppearanceConfig.js');
7
- var useDevicePropsGenerator = require('./cjs/hooks/useDevicePropsGenerator/useDevicePropsGenerator.js');
8
- var useStyles = require('./cjs/hooks/useStyles/useStyles.js');
9
- var Icon = require('./Icon_cjs_DTvdhr8B.js');
10
- var Divider = require('./Divider_cjs_C5Ou2Kqa.js');
11
- var Text = require('./Text_cjs_erTy2pUN.js');
12
-
13
- const dropdownAppearanceAccent = {
14
- accentPrimary: {
15
- fill: 'accentPrimary',
16
- fillActive: 'accentActivePrimary',
17
- fillActiveHover: 'accentActiveHoverPrimary',
18
- fillHover: 'accentHoverPrimary',
19
- labelTextColor: 'accentTextPrimary',
20
- labelTextColorActive: 'accentTextPrimary',
21
- labelTextColorActiveHover: 'accentTextPrimary',
22
- labelTextColorHover: 'accentTextPrimary',
23
- badgeAppearance: 'surfacePrimary',
24
- dividerFill: 'surfaceTertiary',
25
- emptyMessageTextColor: 'accentTextPrimary',
26
- iconAfterFillIcon: 'accentItemPrimary',
27
- iconBeforeFillIcon: 'accentItemPrimary',
28
- },
29
- accentSecondary: {
30
- fill: 'accentPrimary',
31
- fillHover: 'accentHoverPrimary',
32
- labelTextColor: 'accentTextSecondary',
33
- labelTextColorHover: 'accentTextSecondary',
34
- },
35
- };
36
-
37
- const dropdownAppearanceShape = {
38
- circular: {
39
- shape: 'circular',
40
- },
41
- rounded: {
42
- shape: 'rounded',
43
- },
44
- roundedXL: {
45
- shape: 'rounded',
46
- shapeStrength: '2m',
47
- },
48
- roundedL: {
49
- shape: 'rounded',
50
- shapeStrength: '1_5m',
51
- },
52
- roundedM: {
53
- shape: 'rounded',
54
- shapeStrength: '1m',
55
- },
56
- roundedS: {
57
- shape: 'rounded',
58
- shapeStrength: '0_5m',
59
- },
60
- };
61
-
62
- const dropdownAppearanceSize = {
63
- sizeL: {
64
- size: 'l',
65
- labelTextSize: 'm',
66
- badgeSize: 'xs',
67
- badgeTextSize: 'xs',
68
- dividerSize: 's',
69
- emptyMessageTextSize: 'm',
70
- iconAfterFillSize: '24',
71
- iconAfterSize: '24',
72
- iconBeforeFillSize: '24',
73
- iconBeforeSize: '24',
74
- },
75
- sizeS: {
76
- size: 's',
77
- labelTextSize: 's',
78
- badgeSize: 'xs',
79
- badgeTextSize: 'xs',
80
- dividerSize: 's',
81
- emptyMessageTextSize: 'm',
82
- iconAfterFillSize: '16',
83
- iconAfterSize: '16',
84
- iconBeforeFillSize: '16',
85
- iconBeforeSize: '16',
86
- },
87
- sizeXS: {
88
- size: 'xs',
89
- labelTextSize: 'xs',
90
- badgeSize: 'xs',
91
- badgeTextSize: 'xs',
92
- dividerSize: 's',
93
- emptyMessageTextSize: 'xs',
94
- iconAfterFillSize: '12',
95
- iconAfterSize: '12',
96
- iconBeforeFillSize: '12',
97
- iconBeforeSize: '12',
98
- },
99
- };
100
-
101
- const dropdownAppearanceStyle = {
102
- solid: {
103
- borderColor: 'none',
104
- },
105
- outlined: {
106
- fill: 'none',
107
- },
108
- full: {},
109
- ghost: {
110
- fill: 'none',
111
- borderColor: 'none',
112
- },
113
- };
114
-
115
- const dropdownAppearanceSurface = {
116
- surfacePrimary: {
117
- fill: 'surfacePrimary',
118
- fillActive: 'surfaceActivePrimary',
119
- fillHover: 'surfaceHoverPrimary',
120
- labelTextColor: 'surfaceTextPrimary',
121
- labelTextColorActive: 'surfaceTextPrimary',
122
- labelTextColorActiveHover: 'surfaceTextPrimary',
123
- labelTextColorHover: 'surfaceTextPrimary',
124
- badgeAppearance: 'accentPrimary',
125
- dividerFill: 'surfaceTertiary',
126
- emptyMessageTextColor: 'surfaceTextPrimary',
127
- iconAfterFillIcon: 'surfaceItemPrimary',
128
- iconBeforeFillIcon: 'surfaceItemPrimary',
129
- },
130
- surfaceQuaternary: {
131
- fill: 'surfaceQuaternary',
132
- fillHover: 'surfaceHoverQuaternary',
133
- labelTextColor: 'surfaceTextPrimary',
134
- },
135
- surfaceSecondary: {
136
- fill: 'surfaceSecondary',
137
- fillHover: 'surfaceHoverSecondary',
138
- labelTextColor: 'surfaceTextPrimary',
139
- },
140
- surfaceTertiary: {
141
- fill: 'surfaceTertiary',
142
- fillHover: 'surfaceHoverTertiary',
143
- labelTextColor: 'surfaceTextPrimary',
144
- },
145
- };
146
-
147
- const dropdownAppearance = {
148
- ...dropdownAppearanceSurface,
149
- ...dropdownAppearanceStyle,
150
- ...dropdownAppearanceShape,
151
- ...dropdownAppearanceAccent,
152
- ...dropdownAppearanceSize,
153
- };
154
-
155
- const dropdownConfig = {
156
- appearance: dropdownAppearance};
157
- function Dropdown(props) {
158
- const { appearance, className, dataTestId, dataTour, animationClose = 'dropdown_animation_close', animationOpen = 'dropdown_animation_open', dropdownList, showDivider, before, after, isSkeleton, isOpen, setIsOpen, onClickItem, children, } = props;
159
- const dropdownRef = React.useRef(null);
160
- const appearanceConfig = useAppearanceConfig.useAppearanceConfig(appearance, dropdownConfig);
161
- const [animationState, setAnimationState] = React.useState({
162
- className: '',
163
- });
164
- const onAnimationEnd = React.useCallback(() => {
165
- setAnimationState((prevState) => ({
166
- className: isOpen ? prevState.className : '',
167
- }));
168
- }, [isOpen]);
169
- React.useEffect(() => {
170
- if (animationOpen && animationClose) {
171
- // eslint-disable-next-line react-hooks/set-state-in-effect
172
- setAnimationState(() => ({
173
- className: isOpen ? animationOpen : animationClose,
174
- }));
175
- }
176
- }, [isOpen, animationOpen, animationClose]);
177
- React.useEffect(() => {
178
- function onClickWindow(event) {
179
- const dropdownElement = dropdownRef.current;
180
- if (dropdownElement && animationOpen) {
181
- const isContainsTarget = dropdownElement.contains(event.target);
182
- const hasOpenClass = dropdownElement.classList.contains(animationOpen);
183
- if (!isContainsTarget && hasOpenClass) {
184
- setIsOpen(false);
185
- }
186
- }
187
- }
188
- window.addEventListener('click', onClickWindow);
189
- return () => {
190
- window.removeEventListener('click', onClickWindow);
191
- };
192
- }, [animationOpen, setIsOpen]);
193
- const propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props, appearanceConfig);
194
- const { alignmentClass, fillClass, elevationClass, shapeClass, shapeStrengthClass, } = propsGenerator;
195
- const { styles } = useStyles.useStyles(props);
196
- return (jsxRuntime.jsxs("div", { className: clsx(className, 'dropdown', alignmentClass && `alignment_${alignmentClass}`, fillClass && `fill_${fillClass}`, shapeClass && `shape_${shapeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, elevationClass && `elevation_${elevationClass}`, isOpen ? 'dropdown_state_open' : 'dropdown_state_close', animationState.className), ref: dropdownRef, "data-testid": dataTestId, "data-tour": dataTour, style: styles, children: [before, (children || dropdownList) && (jsxRuntime.jsxs("div", { className: clsx('dropdown__wrapper'), onAnimationEnd: onAnimationEnd, children: [dropdownList?.map((item) => (jsxRuntime.jsx(DropdownItem, { appearance: appearance, label: item.label, badgeValue: item.badgeValue, emptyMessage: item.emptyMessage, iconAfter: item.iconAfter, iconBefore: item.iconBefore, iconSrc: item.icon, showDivider: showDivider, isActive: item.isActive, isSkeleton: isSkeleton, onClick: item.onClick || ((event) => onClickItem?.(item, event)) }, item.key))), children] })), after] }));
197
- }
198
-
199
- const dropdownItemAppearance = {
200
- ...dropdownAppearanceSurface,
201
- ...dropdownAppearanceStyle,
202
- ...dropdownAppearanceShape,
203
- ...dropdownAppearanceAccent,
204
- ...dropdownAppearanceSize,
205
- };
206
-
207
- const dropdownItemConfig = {
208
- appearance: dropdownItemAppearance,
209
- setAppearance: (appearanceConfig) => {
210
- dropdownItemConfig.appearance = appearanceConfig;
211
- },
212
- };
213
- function DropdownItem(props) {
214
- const { appearance, className, dataTestId, dataTour, label, desc, badgeValue, emptyMessage, showDivider, before, after, isActive, isDisabled, isSkeleton, isHover, onClick, onMouseEnter, children, } = props;
215
- const appearanceConfig = useAppearanceConfig.useAppearanceConfig(appearance, dropdownItemConfig);
216
- const propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props, appearanceConfig);
217
- const { directionClass, justifyContentClass, fillActiveClass, fillActiveHoverClass, fillClass, fillDisabledClass, fillHoverClass, labelTextAlign, labelTextColor, labelTextColorActive, labelTextColorActiveHover, labelTextColorHover, labelTextSize, labelTextStyle, labelTextWeight, labelTextWrap, descTextColor, descTextColorHover, descTextGradient, descTextSize, descTextStyle, descTextWeight, descTextWrap, badgeAppearance, badgeShape, badgeSize, badgeTextColor, badgeTextSize, dividerDirection, dividerFill, dividerSize, emptyMessageTextColor, emptyMessageTextColorHover, emptyMessageTextSize, emptyMessageTextStyle, emptyMessageTextWeight, emptyMessageTextWrap, iconAfter, iconAfterFill, iconAfterFillIcon, iconAfterFillSize, iconAfterShape, iconAfterSize, iconAfterSrc, iconBadgeAppearance, iconBadgeShape, iconBadgeSize, iconBadgeTextColor, iconBadgeTextSize, iconBadgeValue, iconBefore, iconBeforeFill, iconBeforeFillIcon, iconBeforeFillSize, iconBeforeShape, iconBeforeSize, iconBeforeSrc, shapeClass, shapeStrengthClass, sizeClass, widthClass, } = propsGenerator;
218
- const { styles: dropdownItem } = useStyles.useStyles(props);
219
- return (jsxRuntime.jsxs("div", { className: clsx('dropdown__item', isActive && 'dropdown__item_state_active', isHover && 'dropdown__item_state_hover', directionClass && `dropdown__item_direction_${directionClass}`, className, !isActive
220
- ? fillClass && `fill_${fillClass}`
221
- : fillActiveClass && `fill_active_${fillActiveClass}`, !isActive
222
- ? fillHoverClass && `fill_hover_${fillHoverClass}`
223
- : fillActiveHoverClass && `fill_active_hover_${fillActiveHoverClass}`, fillDisabledClass && `fill_disabled_${fillDisabledClass}`, sizeClass && `dropdown__item_size_${sizeClass}`, shapeClass && `shape_${shapeClass}`, shapeStrengthClass && `shape-strength_${shapeStrengthClass}`, widthClass && `dropdown__item_width_${widthClass}`, isDisabled && `dropdown__item_state_disabled`, onClick && 'cursor_type_pointer', isSkeleton && `dropdown__item_skeleton`, justifyContentClass &&
224
- `dropdown__item_justify-content_${justifyContentClass}`), "data-testid": dataTestId, "data-tour": dataTour, style: dropdownItem, onClick: onClick, onMouseEnter: onMouseEnter, children: [jsxRuntime.jsx("div", { className: "dropdown__item-wrapper", children: jsxRuntime.jsxs(React.Fragment, { children: [before, (iconBefore || iconBeforeSrc) && (jsxRuntime.jsx(Icon.Icon, { className: clsx('dropdown__item_before', iconBadgeValue && 'dropdown__item_before-badge'), fill: iconBeforeFill, fillSize: iconBeforeFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'dropdown__item_before_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconBeforeFillIcon, iconSize: iconBeforeSize, imageSrc: iconBeforeSrc, shape: iconBeforeShape, SvgImage: iconBefore })), children || (jsxRuntime.jsxs(React.Fragment, { children: [label && (jsxRuntime.jsx(Text.Text, { className: "dropdown__item-label", size: labelTextSize, textAlign: labelTextAlign, textColor: labelTextColor, textColorActive: labelTextColorActive, textColorActiveHover: labelTextColorActiveHover, textColorHover: labelTextColorHover, textStyle: labelTextStyle, textWeight: labelTextWeight, textWrap: labelTextWrap, isActive: isActive, children: label })), badgeValue && (jsxRuntime.jsx(Icon.Badge, { appearance: badgeAppearance, size: badgeSize, textColor: badgeTextColor, textSize: badgeTextSize, shape: badgeShape, value: badgeValue })), desc && (jsxRuntime.jsx(Text.Text, { className: "dropdown__item-desc", size: descTextSize, textColor: descTextColor, textColorGradient: descTextGradient, textColorHover: descTextColorHover, textStyle: descTextStyle, textWeight: descTextWeight, textWrap: descTextWrap, isActive: isActive, children: desc })), emptyMessage && (jsxRuntime.jsx(Text.Text, { className: "dropdown__item", size: emptyMessageTextSize, textColor: emptyMessageTextColor, textColorHover: emptyMessageTextColorHover, textStyle: emptyMessageTextStyle, textWeight: emptyMessageTextWeight, textWrap: emptyMessageTextWrap, isActive: isActive, children: emptyMessage }))] })), after, (iconAfter || iconAfterSrc) && (jsxRuntime.jsx(Icon.Icon, { className: clsx('dropdown__item_after', iconBadgeValue && 'dropdown__item_after-badge'), fill: iconAfterFill, fillSize: iconAfterFillSize, badgeAppearance: iconBadgeAppearance, badgeClass: 'dropdown__item_after_badge', badgeShape: iconBadgeShape, badgeSize: iconBadgeSize, badgeTextColor: iconBadgeTextColor, badgeTextSize: iconBadgeTextSize, badgeValue: iconBadgeValue, iconFill: iconAfterFillIcon, iconSize: iconAfterSize, imageSrc: iconAfterSrc, shape: iconAfterShape, SvgImage: iconAfter }))] }) }), showDivider && (jsxRuntime.jsx(Divider.Divider, { width: "fill", direction: dividerDirection, size: dividerSize, fill: dividerFill }))] }));
225
- }
226
-
227
- exports.Dropdown = Dropdown;
228
- exports.DropdownItem = DropdownItem;
229
- exports.dropdownItemAppearance = dropdownItemAppearance;
230
- exports.dropdownItemConfig = dropdownItemConfig;