@itcase/ui 1.8.122 → 1.8.123

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 (65) hide show
  1. package/dist/{Avatar_cjs_kuE0Rueg.js → Avatar_cjs_CLJnKU39.js} +1 -1
  2. package/dist/{Avatar_es_lx7s4Vla.js → Avatar_es_BgN-fbOj.js} +1 -1
  3. package/dist/{Button_cjs_i0Dn1pkl.js → Button_cjs_Ce97psFT.js} +3 -3
  4. package/dist/{Button_es_CtH5EKJd.js → Button_es_CZss7cXh.js} +3 -3
  5. package/dist/{DatePicker_cjs_DsIAoi01.js → DatePicker_cjs_BzEtDAb8.js} +2 -2
  6. package/dist/{DatePicker_es_BP5BrEr-.js → DatePicker_es_DRyCMO0I.js} +2 -2
  7. package/dist/{Image_cjs_B6YlGx8G.js → Image_cjs_DRhhc66R.js} +2 -1
  8. package/dist/{Image_es_BvYo_cHH.js → Image_es_BpMidmve.js} +2 -1
  9. package/dist/{Input_cjs_Du73R-wm.js → Input_cjs_DRPK_RHK.js} +3 -3
  10. package/dist/{Input_es_CiDHjDqJ.js → Input_es_Cv5nEb_n.js} +3 -3
  11. package/dist/cjs/components/Avatar.js +2 -2
  12. package/dist/cjs/components/AvatarStack.js +2 -2
  13. package/dist/cjs/components/Button.js +1 -1
  14. package/dist/cjs/components/CookiesWarning.js +1 -1
  15. package/dist/cjs/components/Dadata.js +1 -1
  16. package/dist/cjs/components/DatePeriod.js +6 -6
  17. package/dist/cjs/components/DatePicker.js +3 -3
  18. package/dist/cjs/components/Grid.js +3 -3
  19. package/dist/cjs/components/Image.js +1 -1
  20. package/dist/cjs/components/Input.js +1 -1
  21. package/dist/cjs/components/InputPassword.js +88 -66
  22. package/dist/cjs/components/Response.js +58 -51
  23. package/dist/cjs/components/Segmented.js +5 -5
  24. package/dist/cjs/components/Tab.js +29 -45
  25. package/dist/components/Avatar.js +2 -2
  26. package/dist/components/AvatarStack.js +2 -2
  27. package/dist/components/Button.js +1 -1
  28. package/dist/components/CookiesWarning.js +1 -1
  29. package/dist/components/Dadata.js +1 -1
  30. package/dist/components/DatePeriod.js +6 -6
  31. package/dist/components/DatePicker.js +3 -3
  32. package/dist/components/Grid.js +3 -3
  33. package/dist/components/Image.js +1 -1
  34. package/dist/components/Input.js +1 -1
  35. package/dist/components/InputPassword.js +88 -66
  36. package/dist/components/Response.js +58 -51
  37. package/dist/components/Segmented.js +5 -5
  38. package/dist/components/Tab.js +29 -45
  39. package/dist/css/components/Checkmark/Checkmark.css +2 -0
  40. package/dist/css/components/DatePeriod/DatePeriod.css +3 -0
  41. package/dist/css/components/Input/Input.css +0 -8
  42. package/dist/css/components/InputPassword/InputPassword.css +34 -43
  43. package/dist/types/components/InputPassword/InputPassword.appearance.d.ts +179 -2
  44. package/dist/types/components/InputPassword/appearance/inputPasswordDefault.d.ts +7 -4
  45. package/dist/types/components/InputPassword/appearance/inputPasswordDisabled.d.ts +6 -4
  46. package/dist/types/components/InputPassword/appearance/inputPasswordError.d.ts +6 -4
  47. package/dist/types/components/InputPassword/appearance/inputPasswordRequire.d.ts +6 -4
  48. package/dist/types/components/InputPassword/appearance/inputPasswordShape.d.ts +25 -0
  49. package/dist/types/components/InputPassword/appearance/inputPasswordSize.d.ts +14 -28
  50. package/dist/types/components/InputPassword/appearance/inputPasswordStyle.d.ts +5 -5
  51. package/dist/types/components/InputPassword/appearance/inputPasswordSuccess.d.ts +6 -4
  52. package/dist/types/components/Response/Response.constant.d.ts +32 -35
  53. package/dist/types/components/Response/appearance/responseConfirm.d.ts +1 -0
  54. package/dist/types/components/Response/appearance/responseDanger.d.ts +1 -0
  55. package/dist/types/components/Response/appearance/responseEmpty.d.ts +1 -0
  56. package/dist/types/components/Response/appearance/responseError.d.ts +1 -0
  57. package/dist/types/components/Response/appearance/responseFail.d.ts +1 -0
  58. package/dist/types/components/Response/appearance/responseNothingFound.d.ts +1 -0
  59. package/dist/types/components/Response/appearance/responseRefresh.d.ts +1 -0
  60. package/dist/types/components/Response/appearance/responseSuccess.d.ts +1 -0
  61. package/dist/types/components/Response/appearance/responseUnableLoadData.d.ts +1 -0
  62. package/dist/types/components/Response/appearance/responseWarning.d.ts +1 -0
  63. package/dist/types/components/Tab/appearance/tabSize.d.ts +0 -14
  64. package/dist/types/components/Tab/appearance/tabSurface.d.ts +7 -7
  65. package/package.json +13 -13
@@ -2,58 +2,44 @@ declare const inputPasswordAppearanceSize: {
2
2
  sizeXXL: {
3
3
  size: string;
4
4
  textSize: string;
5
- iconAfterFillSize: string;
6
- iconAfterSize: string;
7
- iconBeforeFillSize: string;
8
- iconBeforeSize: string;
5
+ iconFillSize: string;
6
+ iconSize: string;
9
7
  };
10
8
  sizeXL: {
11
9
  size: string;
12
10
  textSize: string;
13
- iconAfterFillSize: string;
14
- iconAfterSize: string;
15
- iconBeforeFillSize: string;
16
- iconBeforeSize: string;
11
+ iconFillSize: string;
12
+ iconSize: string;
17
13
  };
18
14
  sizeL: {
19
15
  size: string;
20
16
  textSize: string;
21
- iconAfterFillSize: string;
22
- iconAfterSize: string;
23
- iconBeforeFillSize: string;
24
- iconBeforeSize: string;
17
+ iconFillSize: string;
18
+ iconSize: string;
25
19
  };
26
20
  sizeM: {
27
21
  size: string;
28
22
  textSize: string;
29
- iconAfterFillSize: string;
30
- iconAfterSize: string;
31
- iconBeforeFillSize: string;
32
- iconBeforeSize: string;
23
+ iconFillSize: string;
24
+ iconSize: string;
33
25
  };
34
26
  sizeS: {
35
27
  size: string;
36
28
  textSize: string;
37
- iconAfterFillSize: string;
38
- iconAfterSize: string;
39
- iconBeforeFillSize: string;
40
- iconBeforeSize: string;
29
+ iconFillSize: string;
30
+ iconSize: string;
41
31
  };
42
32
  sizeXS: {
43
33
  size: string;
44
34
  textSize: string;
45
- iconAfterFillSize: string;
46
- iconAfterSize: string;
47
- iconBeforeFillSize: string;
48
- iconBeforeSize: string;
35
+ iconFillSize: string;
36
+ iconSize: string;
49
37
  };
50
38
  sizeXXS: {
51
39
  size: string;
52
40
  textSize: string;
53
- iconAfterFillSize: string;
54
- iconAfterSize: string;
55
- iconBeforeFillSize: string;
56
- iconBeforeSize: string;
41
+ iconFillSize: string;
42
+ iconSize: string;
57
43
  };
58
44
  };
59
45
  export { inputPasswordAppearanceSize };
@@ -1,15 +1,15 @@
1
1
  declare const inputPasswordAppearanceStyle: {
2
- full: {
2
+ solid: {
3
3
  borderColor: string;
4
4
  };
5
- ghost: {
5
+ outlined: {
6
6
  fill: string;
7
+ };
8
+ full: {
7
9
  borderColor: string;
8
10
  };
9
- outlined: {
11
+ ghost: {
10
12
  fill: string;
11
- };
12
- solid: {
13
13
  borderColor: string;
14
14
  };
15
15
  };
@@ -4,16 +4,18 @@ declare const inputPasswordAppearanceSuccess: {
4
4
  borderColor: string;
5
5
  borderHover: string;
6
6
  textColor: string;
7
- iconBeforeFill: string;
8
- iconClearFill: string;
7
+ iconFill: string;
8
+ iconRevealableHide: string;
9
+ iconRevealableShow: string;
9
10
  placeholderTextColor: string;
10
11
  };
11
12
  successSecondary: {
12
13
  fill: string;
13
14
  borderColor: string;
14
15
  borderHover: string;
15
- iconBeforeFill: string;
16
- iconClearFill: string;
16
+ iconFill: string;
17
+ iconRevealableHide: string;
18
+ iconRevealableShow: string;
17
19
  placeholderTextColor: string;
18
20
  };
19
21
  };
@@ -1,78 +1,75 @@
1
1
  declare const RESPONSE_MESSAGES: {
2
- error: {
3
- imageSrc: any;
2
+ empty: {
4
3
  appearance: string;
5
4
  title: string;
6
- code: string;
7
5
  desc: string;
8
- primaryButtonLabel: string;
6
+ code: string;
7
+ imageSrc: any;
9
8
  primaryButtonAppearance: string;
10
- secondaryButtonLabel: string;
11
- secondaryButtonAppearance: string;
9
+ primaryButtonLabel: string;
12
10
  };
13
- errorRequest: {
14
- imageSrc: any;
11
+ error: {
15
12
  appearance: string;
16
13
  title: string;
17
- code: string;
18
14
  desc: string;
19
- primaryButtonLabel: string;
15
+ code: string;
16
+ imageSrc: any;
20
17
  primaryButtonAppearance: string;
21
- secondaryButtonLabel: string;
18
+ primaryButtonLabel: string;
22
19
  secondaryButtonAppearance: string;
20
+ secondaryButtonLabel: string;
23
21
  };
24
- timeout: {
25
- imageSrc: any;
22
+ warning: {
26
23
  appearance: string;
27
24
  title: string;
28
- code: string;
29
- desc: string;
30
- primaryButtonLabel: string;
25
+ imageSrc: any;
31
26
  primaryButtonAppearance: string;
32
- secondaryButtonLabel: string;
27
+ primaryButtonLabel: string;
33
28
  secondaryButtonAppearance: string;
29
+ secondaryButtonLabel: string;
34
30
  };
35
- unableLoadData: {
36
- imageSrc: any;
31
+ success: {
37
32
  appearance: string;
38
33
  title: string;
39
- code: string;
40
34
  desc: string;
41
- primaryButtonLabel: string;
35
+ code: string;
36
+ imageSrc: any;
42
37
  primaryButtonAppearance: string;
43
- secondaryButtonLabel: string;
38
+ primaryButtonLabel: string;
44
39
  secondaryButtonAppearance: string;
40
+ secondaryButtonLabel: string;
45
41
  };
46
42
  nothingFound: {
47
- imageSrc: any;
48
43
  appearance: string;
49
44
  title: string;
50
- code: string;
51
45
  desc: string;
52
- primaryButtonLabel: string;
46
+ code: string;
47
+ imageSrc: any;
53
48
  primaryButtonAppearance: string;
54
- secondaryButtonLabel: string;
49
+ primaryButtonLabel: string;
55
50
  secondaryButtonAppearance: string;
51
+ secondaryButtonLabel: string;
56
52
  };
57
- empty: {
58
- imageSrc: any;
53
+ errorNetwork: {
59
54
  appearance: string;
60
55
  title: string;
61
- code: string;
62
56
  desc: string;
63
- primaryButtonLabel: string;
57
+ code: string;
58
+ imageSrc: any;
64
59
  primaryButtonAppearance: string;
65
- secondaryButtonLabel: string;
60
+ primaryButtonLabel: string;
66
61
  secondaryButtonAppearance: string;
62
+ secondaryButtonLabel: string;
67
63
  };
68
- success: {
69
- imageSrc: any;
64
+ errorRequest: {
70
65
  appearance: string;
71
66
  title: string;
72
- code: string;
73
67
  desc: string;
74
- primaryButtonLabel: string;
68
+ code: string;
69
+ imageSrc: any;
75
70
  primaryButtonAppearance: string;
71
+ primaryButtonLabel: string;
72
+ secondaryButtonAppearance: string;
76
73
  secondaryButtonLabel: string;
77
74
  };
78
75
  };
@@ -5,6 +5,7 @@ declare const responseAppearanceConfirm: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceDanger: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceEmpty: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceError: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceFail: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceNothingFound: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceRefresh: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceSuccess: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceUnableLoadData: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -5,6 +5,7 @@ declare const responseAppearanceWarning: {
5
5
  titleTextSize: string;
6
6
  labelTextColor: string;
7
7
  descTextSize: string;
8
+ imageSrc: any;
8
9
  primaryButtonAppearance: string;
9
10
  secondaryButtonAppearance: string;
10
11
  svgFill: string;
@@ -3,55 +3,41 @@ declare const tabAppearanceSize: {
3
3
  size: string;
4
4
  labelTextSize: string;
5
5
  badgeAppearanceSize: string;
6
- badgeSize: string;
7
- badgeTextSize: string;
8
6
  dividerSize: string;
9
7
  };
10
8
  sizeXL: {
11
9
  size: string;
12
10
  labelTextSize: string;
13
11
  badgeAppearanceSize: string;
14
- badgeSize: string;
15
- badgeTextSize: string;
16
12
  dividerSize: string;
17
13
  };
18
14
  sizeL: {
19
15
  size: string;
20
16
  labelTextSize: string;
21
17
  badgeAppearanceSize: string;
22
- badgeSize: string;
23
- badgeTextSize: string;
24
18
  dividerSize: string;
25
19
  };
26
20
  sizeM: {
27
21
  size: string;
28
22
  labelTextSize: string;
29
23
  badgeAppearanceSize: string;
30
- badgeSize: string;
31
- badgeTextSize: string;
32
24
  dividerSize: string;
33
25
  };
34
26
  sizeS: {
35
27
  size: string;
36
28
  labelTextSize: string;
37
29
  badgeAppearanceSize: string;
38
- badgeSize: string;
39
- badgeTextSize: string;
40
30
  dividerSize: string;
41
31
  };
42
32
  sizeXS: {
43
33
  size: string;
44
34
  labelTextSize: string;
45
35
  badgeAppearanceSize: string;
46
- badgeSize: string;
47
- badgeTextSize: string;
48
36
  };
49
37
  sizeXXS: {
50
38
  size: string;
51
39
  labelTextSize: string;
52
40
  badgeAppearanceSize: string;
53
- badgeSize: string;
54
- badgeTextSize: string;
55
41
  dividerSize: string;
56
42
  };
57
43
  };
@@ -8,14 +8,14 @@ declare const tabAppearanceSurface: {
8
8
  fillHover: string;
9
9
  labelTextColor: string;
10
10
  labelTextColorActive: string;
11
- dividerFillDisabled: string;
12
11
  borderColor: string;
13
12
  borderColorActive: string;
14
13
  badgeAppearance: string;
15
14
  dividerFillActive: string;
15
+ dividerFillDisabled: string;
16
16
  iconFillIcon: string;
17
17
  };
18
- surfaceSecondary: {
18
+ surfaceQuaternary: {
19
19
  fill: string;
20
20
  fillActive: string;
21
21
  fillActiveHover: string;
@@ -23,14 +23,14 @@ declare const tabAppearanceSurface: {
23
23
  fillHover: string;
24
24
  labelTextColor: string;
25
25
  labelTextColorActive: string;
26
- dividerFillDisabled: string;
27
26
  borderColor: string;
28
27
  borderColorActive: string;
29
28
  badgeAppearance: string;
30
29
  dividerFillActive: string;
30
+ dividerFillDisabled: string;
31
31
  iconFillIcon: string;
32
32
  };
33
- surfaceTertiary: {
33
+ surfaceSecondary: {
34
34
  fill: string;
35
35
  fillActive: string;
36
36
  fillActiveHover: string;
@@ -38,14 +38,14 @@ declare const tabAppearanceSurface: {
38
38
  fillHover: string;
39
39
  labelTextColor: string;
40
40
  labelTextColorActive: string;
41
- dividerFillDisabled: string;
42
41
  borderColor: string;
43
42
  borderColorActive: string;
44
43
  badgeAppearance: string;
45
44
  dividerFillActive: string;
45
+ dividerFillDisabled: string;
46
46
  iconFillIcon: string;
47
47
  };
48
- surfaceQuaternary: {
48
+ surfaceTertiary: {
49
49
  fill: string;
50
50
  fillActive: string;
51
51
  fillActiveHover: string;
@@ -53,11 +53,11 @@ declare const tabAppearanceSurface: {
53
53
  fillHover: string;
54
54
  labelTextColor: string;
55
55
  labelTextColorActive: string;
56
- dividerFillDisabled: string;
57
56
  borderColor: string;
58
57
  borderColorActive: string;
59
58
  badgeAppearance: string;
60
59
  dividerFillActive: string;
60
+ dividerFillDisabled: string;
61
61
  iconFillIcon: string;
62
62
  };
63
63
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itcase/ui",
3
- "version": "1.8.122",
3
+ "version": "1.8.123",
4
4
  "description": "UI components (Modal, Loader, Popup, etc)",
5
5
  "keywords": [
6
6
  "Modal",
@@ -100,10 +100,10 @@
100
100
  ]
101
101
  },
102
102
  "dependencies": {
103
- "@emotion/is-prop-valid": "^1.3.1",
103
+ "@emotion/is-prop-valid": "^1.4.0",
104
104
  "@itcase/common": "^1.2.29",
105
105
  "@itcase/icons": "^1.2.19",
106
- "@itcase/storybook-config": "^1.2.5",
106
+ "@itcase/storybook-config": "^1.2.6",
107
107
  "@itcase/tokens-am": "^1.1.19",
108
108
  "@itcase/tokens-baikal": "^1.1.17",
109
109
  "@itcase/tokens-palette": "^1.1.11",
@@ -112,7 +112,7 @@
112
112
  "framer-motion": "^12.23.12",
113
113
  "js-cookie": "^3.0.5",
114
114
  "lodash": "^4.17.21",
115
- "luxon": "^3.7.1",
115
+ "luxon": "^3.7.2",
116
116
  "motion": "^12.23.12",
117
117
  "rc-slider": "^11.1.8",
118
118
  "react": "^18.3.1",
@@ -121,7 +121,7 @@
121
121
  "react-dom": "^18.3.1",
122
122
  "react-indiana-drag-scroll": "^3.0.3-alpha",
123
123
  "react-inlinesvg": "^4.2.0",
124
- "react-modal-sheet": "^4.4.0",
124
+ "react-modal-sheet": "^5.1.1",
125
125
  "react-modern-drawer": "^1.4.0",
126
126
  "react-otp-input": "^3.1.1",
127
127
  "react-paginate": "^8.3.0",
@@ -131,16 +131,16 @@
131
131
  "react-select": "^5.10.2",
132
132
  "simplebar-react": "^3.3.2",
133
133
  "swiper": "^11.2.10",
134
- "uuid": "^11.1.0"
134
+ "uuid": "^13.0.0"
135
135
  },
136
136
  "devDependencies": {
137
- "@babel/core": "^7.28.3",
137
+ "@babel/core": "^7.28.4",
138
138
  "@babel/preset-env": "^7.28.3",
139
139
  "@babel/preset-react": "^7.27.1",
140
140
  "@commitlint/cli": "^19.8.1",
141
141
  "@commitlint/config-conventional": "^19.8.1",
142
142
  "@itcase/config": "^1.0.57",
143
- "@itcase/lint": "^1.1.48",
143
+ "@itcase/lint": "^1.1.57",
144
144
  "@itcase/types": "^1.0.45",
145
145
  "@rollup/plugin-alias": "^5.1.1",
146
146
  "@rollup/plugin-babel": "^6.0.4",
@@ -152,7 +152,7 @@
152
152
  "@rollup/plugin-typescript": "^12.1.4",
153
153
  "@semantic-release/changelog": "^6.0.3",
154
154
  "@semantic-release/git": "^10.0.1",
155
- "@semantic-release/release-notes-generator": "14.0.3",
155
+ "@semantic-release/release-notes-generator": "14.1.0",
156
156
  "@types/js-cookie": "^3.0.6",
157
157
  "@types/lodash": "^4.17.20",
158
158
  "@types/luxon": "^3.7.1",
@@ -166,19 +166,19 @@
166
166
  "babel-plugin-react-docgen": "^4.2.1",
167
167
  "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
168
168
  "conventional-changelog-conventionalcommits": "^9.1.0",
169
- "eslint": "9.34.0",
169
+ "eslint": "9.35.0",
170
170
  "husky": "^9.1.7",
171
171
  "lint-staged": "^16.1.6",
172
172
  "prettier": "^3.6.2",
173
173
  "react-docgen-typescript": "^2.4.0",
174
- "rollup": "^4.50.0",
174
+ "rollup": "^4.50.1",
175
175
  "rollup-plugin-copy": "^3.5.0",
176
176
  "rollup-plugin-dts": "^6.2.3",
177
177
  "rollup-plugin-peer-deps-external": "^2.2.4",
178
178
  "rollup-preserve-directives": "^1.1.3",
179
179
  "semantic-release": "^24.2.7",
180
- "storybook": "^9.1.4",
181
- "stylelint": "^16.23.1",
180
+ "storybook": "^9.1.5",
181
+ "stylelint": "^16.24.0",
182
182
  "typescript": "^5.9.2"
183
183
  }
184
184
  }