@semcore/bulk-textarea 1.5.0-prerelease.4 → 1.5.0-prerelease.5

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 (48) hide show
  1. package/lib/cjs/BulkTextarea.js +35 -38
  2. package/lib/cjs/BulkTextarea.js.map +1 -1
  3. package/lib/cjs/BulkTextarea.types.js.map +1 -1
  4. package/lib/cjs/components/ClearAll.js +2 -2
  5. package/lib/cjs/components/ClearAll.js.map +1 -1
  6. package/lib/cjs/components/Counter.js +5 -5
  7. package/lib/cjs/components/Counter.js.map +1 -1
  8. package/lib/cjs/components/ErrorsNavigation.js +14 -14
  9. package/lib/cjs/components/ErrorsNavigation.js.map +1 -1
  10. package/lib/cjs/components/InputField/InputField.js +219 -167
  11. package/lib/cjs/components/InputField/InputField.js.map +1 -1
  12. package/lib/cjs/components/InputField/InputField.types.js.map +1 -1
  13. package/lib/cjs/components/InputField/inputField.shadow.css +56 -18
  14. package/lib/cjs/index.js +1 -1
  15. package/lib/cjs/index.js.map +1 -1
  16. package/lib/cjs/translations/__intergalactic-dynamic-locales.js +4 -5
  17. package/lib/cjs/translations/__intergalactic-dynamic-locales.js.map +1 -1
  18. package/lib/es6/BulkTextarea.js +31 -32
  19. package/lib/es6/BulkTextarea.js.map +1 -1
  20. package/lib/es6/BulkTextarea.types.js.map +1 -1
  21. package/lib/es6/components/ClearAll.js +2 -2
  22. package/lib/es6/components/ClearAll.js.map +1 -1
  23. package/lib/es6/components/Counter.js +2 -2
  24. package/lib/es6/components/Counter.js.map +1 -1
  25. package/lib/es6/components/ErrorsNavigation.js +10 -10
  26. package/lib/es6/components/ErrorsNavigation.js.map +1 -1
  27. package/lib/es6/components/InputField/InputField.js +219 -165
  28. package/lib/es6/components/InputField/InputField.js.map +1 -1
  29. package/lib/es6/components/InputField/InputField.types.js.map +1 -1
  30. package/lib/es6/components/InputField/inputField.shadow.css +56 -18
  31. package/lib/es6/index.js.map +1 -1
  32. package/lib/es6/translations/__intergalactic-dynamic-locales.js +2 -2
  33. package/lib/es6/translations/__intergalactic-dynamic-locales.js.map +1 -1
  34. package/lib/esm/BulkTextarea.mjs +33 -35
  35. package/lib/esm/components/ClearAll.mjs +1 -1
  36. package/lib/esm/components/Counter.mjs +2 -2
  37. package/lib/esm/components/ErrorsNavigation.mjs +4 -4
  38. package/lib/esm/components/InputField/InputField.mjs +181 -136
  39. package/lib/esm/components/InputField/inputField.shadow.css +56 -18
  40. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +2 -2
  41. package/lib/types/BulkTextarea.d.ts +1 -1
  42. package/lib/types/BulkTextarea.types.d.ts +113 -8
  43. package/lib/types/components/ClearAll.d.ts +2 -2
  44. package/lib/types/components/Counter.d.ts +4 -4
  45. package/lib/types/components/ErrorsNavigation.d.ts +2 -2
  46. package/lib/types/components/InputField/InputField.d.ts +12 -7
  47. package/lib/types/components/InputField/InputField.types.d.ts +11 -125
  48. package/package.json +10 -10
@@ -1,4 +1,4 @@
1
- SInputField > div {
1
+ SInputField>div {
2
2
  box-sizing: content-box;
3
3
  outline: none;
4
4
  border-radius: var(--intergalactic-control-rounded, 6px);
@@ -37,7 +37,7 @@ SInputField > div {
37
37
  }
38
38
  }
39
39
 
40
- > p {
40
+ >p {
41
41
  counter-increment: row;
42
42
  /*display: inline-block;*/
43
43
  margin: 0 0 var(--intergalactic-spacing-1x, 4px) 0;
@@ -68,38 +68,60 @@ SInputField > div {
68
68
  }
69
69
 
70
70
  &:has(p:nth-child(n + 10)) {
71
- > p {
71
+ >p {
72
72
  padding-left: var(--intergalactic-spacing-6x, 24px);
73
73
  }
74
- > p:nth-child(-n + 9)::before {
74
+
75
+ >p:nth-child(-n + 9)::before {
75
76
  padding-left: var(--intergalactic-spacing-2x, 8px);
76
77
  }
77
78
  }
78
79
 
79
80
  &:has(p:nth-child(n + 100)) {
80
- > p {
81
+ >p {
81
82
  padding-left: var(--intergalactic-spacing-8x, 32px);
82
83
  }
83
- > p:nth-child(-n + 9)::before {
84
+
85
+ >p:nth-child(-n + 9)::before {
84
86
  padding-left: var(--intergalactic-spacing-4x, 16px);
85
87
  }
86
- > p:nth-child(n + 10)::before {
88
+
89
+ >p:nth-child(n + 10)::before {
87
90
  padding-left: var(--intergalactic-spacing-2x, 8px);
88
91
  }
92
+
93
+ >p:nth-child(n + 100)::before {
94
+ padding-left: 0;
95
+ }
96
+ }
97
+
98
+ &:has(p:nth-child(n + 1000)) {
99
+ > p {
100
+ padding-left: calc(var(--intergalactic-spacing-10x, 40px) + var(--intergalactic-spacing-1x, 4px));
101
+ }
102
+ > p:nth-child(-n + 9)::before {
103
+ padding-left: var(--intergalactic-spacing-6x, 24px);
104
+ }
105
+ > p:nth-child(n + 10)::before {
106
+ padding-left: var(--intergalactic-spacing-4x, 16px);
107
+ }
89
108
  > p:nth-child(n + 100)::before {
109
+ padding-left: var(--intergalactic-spacing-2x, 8px);
110
+ }
111
+ > p:nth-child(n + 1000)::before {
90
112
  padding-left: 0;
91
113
  }
92
114
  }
93
115
  }
94
116
 
95
- SInputField[showErrors] > div[aria-invalid] > p[aria-invalid]:after {
117
+ SInputField[showErrors]>div[aria-invalid]>p[aria-invalid]:after {
96
118
  content: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZDEwMDJmIj48cGF0aCBkPSJNNyA2aDJ2NEg3VjZabTIgN3YtMkg3djJoMloiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYuMTUyIDEuMTcyYy43MTktMS41NjMgMi45NzctMS41NjMgMy42OTYgMGw2LjA0MyAxMy4xNDFjLjM2My43OTEtLjIyNSAxLjY4Ny0xLjEwOSAxLjY4N0gxLjIxOGMtLjg4NCAwLTEuNDcyLS44OTYtMS4xMDktMS42ODdMNi4xNTIgMS4xNzJabTcuMzc0IDEyLjgzN0w4IDEuOTkgMi40NzQgMTQuMDFoMTEuMDUyWiIvPjwvc3ZnPgo= ");
97
119
  position: absolute;
98
120
  right: 0;
99
121
  top: var(--intergalactic-spacing-05x, 2px);
100
122
  }
101
123
 
102
- SInputField[size='m'] > div {
124
+ SInputField[size='m']>div {
103
125
  padding: var(--intergalactic-spacing-2x, 8px) var(--intergalactic-spacing-4x, 16px);
104
126
  font-size: var(--intergalactic-fs-200, 14px);
105
127
  line-height: var(--intergalactic-lh-200, 142%);
@@ -110,13 +132,14 @@ SInputField[size='m'] > div {
110
132
 
111
133
  &:empty {
112
134
  padding-left: var(--intergalactic-spacing-8x, 32px);
135
+
113
136
  &::before {
114
137
  left: var(--intergalactic-spacing-4x, 16px);
115
138
  }
116
139
  }
117
140
  }
118
141
 
119
- SInputField[size='l'] > div {
142
+ SInputField[size='l']>div {
120
143
  padding: var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-4x, 16px);
121
144
  font-size: var(--intergalactic-fs-300, 16px);
122
145
  line-height: var(--intergalactic-lh-300, 150%);
@@ -126,6 +149,7 @@ SInputField[size='l'] > div {
126
149
 
127
150
  &:empty {
128
151
  padding-left: calc(var(--intergalactic-spacing-8x, 32px) + var(--intergalactic-spacing-05x, 2px));
152
+
129
153
  &::before {
130
154
  left: var(--intergalactic-spacing-4x, 16px);
131
155
  }
@@ -133,26 +157,39 @@ SInputField[size='l'] > div {
133
157
  }
134
158
 
135
159
 
136
- SInputField[state='normal']:not([disabled]) > div:focus {
160
+ SInputField[state='normal']:not([disabled])>div {
137
161
  &:focus {
138
- box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px oklch(0.424 0.269 264.2 / 0.469));
139
162
  border-color: var(--intergalactic-border-info-active, oklch(0.443 0.273 264.2 / 0.419));
163
+ @mixin focus-outline-mixin {
164
+ outline-offset: 0;
165
+ transition-property: outline-color, outline-width;
166
+ }
140
167
  }
141
168
  }
142
169
 
143
- SInputField[state='valid'] > div {
170
+ SInputField[state='valid']>div {
144
171
  border-color: var(--intergalactic-border-success-active, oklch(0.75 0.153 167.5));
145
172
 
146
173
  &:focus {
147
- box-shadow: var(--intergalactic-keyboard-focus-valid, 0px 0px 0px 3px oklch(0.711 0.146 166.9));
174
+ border-color: var(--intergalactic-border-success-active, oklch(0.75 0.153 167.5));
175
+ @mixin focus-outline-mixin {
176
+ outline-offset: 0;
177
+ transition-property: outline-color, outline-width;
178
+ }
179
+ outline-color: var(--intergalactic-keyboard-focus-valid-outline, oklch(0.711 0.146 166.9));
148
180
  }
149
181
  }
150
182
 
151
- SInputField[state='invalid'] > div {
183
+ SInputField[state='invalid']>div {
152
184
  border-color: var(--intergalactic-border-critical-active, oklch(0.628 0.258 29 / 0.56));
153
185
 
154
186
  &:focus {
155
- box-shadow: var(--intergalactic-keyboard-focus-invalid, 0px 0px 0px 3px oklch(0.628 0.257 28.9 / 0.652));
187
+ border-color: var(--intergalactic-border-critical-active, oklch(0.628 0.258 29 / 0.56));
188
+ @mixin focus-outline-mixin {
189
+ outline-offset: 0;
190
+ transition-property: outline-color, outline-width;
191
+ }
192
+ outline-color: var(--intergalactic-keyboard-focus-invalid-outline, oklch(0.628 0.257 28.9 / 0.652));
156
193
  }
157
194
 
158
195
  background-image: var(--intergalactic-border-critical-pattern, repeating-linear-gradient(315deg, oklch(0.628 0.258 29 / 0.56) 0, oklch(0.628 0.258 29 / 0.56) 1px, transparent 0, transparent 50%));
@@ -163,9 +200,10 @@ SInputField[state='invalid'] > div {
163
200
  background-repeat: repeat-y;
164
201
  }
165
202
 
166
- SInputField[readonly] > div {
203
+ SInputField[readonly]>div {
167
204
  background-color: var(--intergalactic-bg-secondary-neutral, oklch(0.98 0.001 180));
168
205
  }
169
- SInputField[disabled] > div {
206
+
207
+ SInputField[disabled]>div {
170
208
  opacity: var(--intergalactic-disabled-opacity, 0.4);
171
209
  }
package/lib/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_BulkTextarea","_interopRequireDefault","require"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './BulkTextarea';\nexport type { BulkTextareaProps } from './BulkTextarea.types';\nexport type { ErrorItem } from './components/InputField/InputField.types';\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_BulkTextarea","_interopRequireDefault","require"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './BulkTextarea';\nexport type { BulkTextareaProps } from './BulkTextarea.types';\nexport type { ErrorItem } from './components/InputField/InputField.types';\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
@@ -13,13 +13,13 @@ var _it = _interopRequireDefault(require("./it.json"));
13
13
  var _ja = _interopRequireDefault(require("./ja.json"));
14
14
  var _ko = _interopRequireDefault(require("./ko.json"));
15
15
  var _nl = _interopRequireDefault(require("./nl.json"));
16
+ var _pl = _interopRequireDefault(require("./pl.json"));
16
17
  var _pt = _interopRequireDefault(require("./pt.json"));
18
+ var _sv = _interopRequireDefault(require("./sv.json"));
17
19
  var _tr = _interopRequireDefault(require("./tr.json"));
18
20
  var _vi = _interopRequireDefault(require("./vi.json"));
19
21
  var _zh = _interopRequireDefault(require("./zh.json"));
20
- var _pl = _interopRequireDefault(require("./pl.json"));
21
- var _sv = _interopRequireDefault(require("./sv.json"));
22
- var localizedMessages = {
22
+ var localizedMessages = exports.localizedMessages = {
23
23
  de: _de["default"],
24
24
  en: _en["default"],
25
25
  es: _es["default"],
@@ -35,5 +35,4 @@ var localizedMessages = {
35
35
  pl: _pl["default"],
36
36
  sv: _sv["default"]
37
37
  };
38
- exports.localizedMessages = localizedMessages;
39
38
  //# sourceMappingURL=__intergalactic-dynamic-locales.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"__intergalactic-dynamic-locales.js","names":["_de","_interopRequireDefault","require","_en","_es","_fr","_it","_ja","_ko","_nl","_pt","_tr","_vi","_zh","_pl","_sv","localizedMessages","de","en","es","fr","it","ja","ko","nl","pt","tr","vi","zh","pl","sv","exports"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport nl from './nl.json';\nimport pt from './pt.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\nimport pl from './pl.json';\nimport sv from './sv.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n nl,\n pt,\n tr,\n vi,\n zh,\n pl,\n sv,\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,GAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,GAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,GAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,GAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,GAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,GAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,GAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,GAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,GAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,GAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,GAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,GAAA,GAAAd,sBAAA,CAAAC,OAAA;AAEO,IAAMc,iBAAiB,GAAG;EAC/BC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA;AACF,CAAC;AAACC,OAAA,CAAAf,iBAAA,GAAAA,iBAAA"}
1
+ {"version":3,"file":"__intergalactic-dynamic-locales.js","names":["_de","_interopRequireDefault","require","_en","_es","_fr","_it","_ja","_ko","_nl","_pl","_pt","_sv","_tr","_vi","_zh","localizedMessages","exports","de","en","es","fr","it","ja","ko","nl","pt","tr","vi","zh","pl","sv"],"sources":["../../../src/translations/__intergalactic-dynamic-locales.ts"],"sourcesContent":["import de from './de.json';\nimport en from './en.json';\nimport es from './es.json';\nimport fr from './fr.json';\nimport it from './it.json';\nimport ja from './ja.json';\nimport ko from './ko.json';\nimport nl from './nl.json';\nimport pl from './pl.json';\nimport pt from './pt.json';\nimport sv from './sv.json';\nimport tr from './tr.json';\nimport vi from './vi.json';\nimport zh from './zh.json';\n\nexport const localizedMessages = {\n de,\n en,\n es,\n fr,\n it,\n ja,\n ko,\n nl,\n pt,\n tr,\n vi,\n zh,\n pl,\n sv,\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,GAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,GAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,GAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,GAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,GAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,GAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,GAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,GAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,GAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,GAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,GAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,GAAA,GAAAd,sBAAA,CAAAC,OAAA;AAEO,IAAMc,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA,cAAE;EACFC,EAAE,EAAFA;AACF,CAAC","ignoreList":[]}
@@ -1,43 +1,39 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
3
+ import _callSuper from "@babel/runtime/helpers/callSuper";
4
4
  import _inherits from "@babel/runtime/helpers/inherits";
5
- import _createSuper from "@babel/runtime/helpers/createSuper";
6
5
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
6
  import { assignProps as _assignProps } from "@semcore/core";
7
+ import { Box } from '@semcore/base-components';
8
+ import { createComponent, Component, Root, lastInteraction } from '@semcore/core';
9
+ import i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';
10
+ import uniqueIdEnhance from '@semcore/core/lib/utils/uniqueID';
8
11
  import React from 'react';
9
- import createComponent, { Component, Root } from '@semcore/core';
10
- import { Box } from '@semcore/flex-box';
11
- import { InputField } from './components/InputField/InputField';
12
- import { Counter } from './components/Counter';
13
12
  import { ClearAll } from './components/ClearAll';
13
+ import { Counter } from './components/Counter';
14
14
  import { ErrorsNavigation } from './components/ErrorsNavigation';
15
+ import { InputField } from './components/InputField/InputField';
15
16
  import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
16
- import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
17
- import focusSourceEnhance from '@semcore/utils/lib/enhances/focusSourceEnhance';
18
- import uniqueIdEnhance from '@semcore/utils/lib/uniqueID';
19
17
  var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
20
- _inherits(BulkTextareaRoot, _Component);
21
- var _super = _createSuper(BulkTextareaRoot);
22
18
  function BulkTextareaRoot() {
23
19
  var _this;
24
20
  _classCallCheck(this, BulkTextareaRoot);
25
21
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
26
22
  args[_key] = arguments[_key];
27
23
  }
28
- _this = _super.call.apply(_super, [this].concat(args));
29
- _defineProperty(_assertThisInitialized(_this), "inputFieldRef", /*#__PURE__*/React.createRef());
30
- _defineProperty(_assertThisInitialized(_this), "clearAllButtonRef", /*#__PURE__*/React.createRef());
31
- _defineProperty(_assertThisInitialized(_this), "nextButtonRef", /*#__PURE__*/React.createRef());
32
- _defineProperty(_assertThisInitialized(_this), "prevButtonRef", /*#__PURE__*/React.createRef());
33
- _defineProperty(_assertThisInitialized(_this), "counterRef", /*#__PURE__*/React.createRef());
34
- _defineProperty(_assertThisInitialized(_this), "state", {
24
+ _this = _callSuper(this, BulkTextareaRoot, [].concat(args));
25
+ _defineProperty(_this, "inputFieldRef", /*#__PURE__*/React.createRef());
26
+ _defineProperty(_this, "clearAllButtonRef", /*#__PURE__*/React.createRef());
27
+ _defineProperty(_this, "nextButtonRef", /*#__PURE__*/React.createRef());
28
+ _defineProperty(_this, "prevButtonRef", /*#__PURE__*/React.createRef());
29
+ _defineProperty(_this, "counterRef", /*#__PURE__*/React.createRef());
30
+ _defineProperty(_this, "state", {
35
31
  linesCount: 0,
36
32
  isEmptyText: true,
37
33
  errorIndex: -1,
38
34
  highlightErrorIndex: false
39
35
  });
40
- _defineProperty(_assertThisInitialized(_this), "handleChangeLinesCount", function (linesCount) {
36
+ _defineProperty(_this, "handleChangeLinesCount", function (linesCount) {
41
37
  var isEmpty = !linesCount;
42
38
  _this.setState({
43
39
  linesCount: linesCount,
@@ -49,19 +45,22 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
49
45
  _this.handlers.state('normal');
50
46
  }
51
47
  });
52
- _defineProperty(_assertThisInitialized(_this), "handleClickClearAll", function (e) {
48
+ _defineProperty(_this, "handleClickClearAll", function (e) {
53
49
  var _this$inputFieldRef$c;
54
50
  _this.handlers.showErrors(false);
55
51
  _this.handlers.errors([]);
56
52
  _this.setState({
57
53
  errorIndex: -1
58
54
  });
55
+ // @ts-ignore
59
56
  _this.handlers.value('', e);
60
57
  _this.handlers.state('normal');
61
58
  var textarea = (_this$inputFieldRef$c = _this.inputFieldRef.current) === null || _this$inputFieldRef$c === void 0 ? void 0 : _this$inputFieldRef$c.querySelector('[role="textbox"]');
62
- textarea instanceof HTMLDivElement && textarea.focus();
59
+ if (textarea instanceof HTMLDivElement) {
60
+ textarea.focus();
61
+ }
63
62
  });
64
- _defineProperty(_assertThisInitialized(_this), "handleChangeErrorIndex", function (amount) {
63
+ _defineProperty(_this, "handleChangeErrorIndex", function (amount) {
65
64
  return function () {
66
65
  var _this$asProps$errors = _this.asProps.errors,
67
66
  errors = _this$asProps$errors === void 0 ? [] : _this$asProps$errors;
@@ -92,7 +91,8 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
92
91
  });
93
92
  return _this;
94
93
  }
95
- _createClass(BulkTextareaRoot, [{
94
+ _inherits(BulkTextareaRoot, _Component);
95
+ return _createClass(BulkTextareaRoot, [{
96
96
  key: "uncontrolledProps",
97
97
  value: function uncontrolledProps() {
98
98
  return {
@@ -127,13 +127,14 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
127
127
  lineProcessing = _this$asProps.lineProcessing,
128
128
  _this$asProps$errors2 = _this$asProps.errors,
129
129
  errors = _this$asProps$errors2 === void 0 ? [] : _this$asProps$errors2,
130
- showErrors = _this$asProps.showErrors;
130
+ showErrors = _this$asProps.showErrors,
131
+ onImmediatelyChange = _this$asProps.onImmediatelyChange;
131
132
  var _this$state = this.state,
132
133
  errorIndex = _this$state.errorIndex,
133
134
  prevError = _this$state.prevError,
134
135
  linesCount = _this$state.linesCount,
135
136
  highlightErrorIndex = _this$state.highlightErrorIndex;
136
- return _defineProperty({
137
+ return _defineProperty(_defineProperty({
137
138
  value: value,
138
139
  size: size,
139
140
  state: showErrors && (errors === null || errors === void 0 ? void 0 : errors.length) > 0 ? 'invalid' : 'normal',
@@ -155,16 +156,16 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
155
156
  },
156
157
  onBlur: function onBlur(value, event) {
157
158
  var _this2$props$onChange, _this2$props;
158
- if (validateOn !== null && validateOn !== void 0 && validateOn.includes('blur') && (_this2.asProps.focusSourceRef.current === 'keyboard' || event instanceof FocusEvent && event.relatedTarget !== _this2.clearAllButtonRef.current)) {
159
+ if (validateOn !== null && validateOn !== void 0 && validateOn.includes('blur') && (lastInteraction.isKeyboard() || event instanceof FocusEvent && event.relatedTarget !== _this2.clearAllButtonRef.current)) {
159
160
  _this2.handlers.showErrors(true);
160
161
  }
161
162
  if (_this2.asProps.showErrors === false && (validateOn !== null && validateOn !== void 0 && validateOn.includes('blur') || validateOn !== null && validateOn !== void 0 && validateOn.includes('blurLine'))) {
162
163
  setTimeout(function () {
163
164
  var _this2$nextButtonRef$;
164
- (_this2$nextButtonRef$ = _this2.nextButtonRef.current) === null || _this2$nextButtonRef$ === void 0 ? void 0 : _this2$nextButtonRef$.focus();
165
+ (_this2$nextButtonRef$ = _this2.nextButtonRef.current) === null || _this2$nextButtonRef$ === void 0 || _this2$nextButtonRef$.focus();
165
166
  }, 250);
166
167
  }
167
- (_this2$props$onChange = (_this2$props = _this2.props).onChange) === null || _this2$props$onChange === void 0 ? void 0 : _this2$props$onChange.call(_this2$props, value, event);
168
+ (_this2$props$onChange = (_this2$props = _this2.props).onChange) === null || _this2$props$onChange === void 0 || _this2$props$onChange.call(_this2$props, value, event);
168
169
  },
169
170
  showErrors: showErrors,
170
171
  validateOn: validateOn,
@@ -194,7 +195,6 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
194
195
  }
195
196
  }, 10); // this timeout to be sure that code will be after state change
196
197
  },
197
-
198
198
  highlightErrorIndex: highlightErrorIndex,
199
199
  errorIndex: errorIndex,
200
200
  onErrorIndexChange: function onErrorIndexChange(newErrorIndex) {
@@ -207,7 +207,7 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
207
207
  },
208
208
  linesDelimiters: linesDelimiters,
209
209
  ref: this.inputFieldRef
210
- }, 'aria-describedby', this.counterId);
210
+ }, 'aria-describedby', this.counterId), "onImmediatelyChange", onImmediatelyChange);
211
211
  }
212
212
  }, {
213
213
  key: "getCounterProps",
@@ -286,7 +286,6 @@ var BulkTextareaRoot = /*#__PURE__*/function (_Component) {
286
286
  }, _ref));
287
287
  }
288
288
  }]);
289
- return BulkTextareaRoot;
290
289
  }(Component);
291
290
  _defineProperty(BulkTextareaRoot, "displayName", 'BulkTextarea');
292
291
  _defineProperty(BulkTextareaRoot, "defaultProps", {
@@ -301,7 +300,7 @@ _defineProperty(BulkTextareaRoot, "defaultProps", {
301
300
  defaultErrors: [],
302
301
  defaultShowErrors: false
303
302
  });
304
- _defineProperty(BulkTextareaRoot, "enhance", [i18nEnhance(localizedMessages), focusSourceEnhance(), uniqueIdEnhance()]);
303
+ _defineProperty(BulkTextareaRoot, "enhance", [i18nEnhance(localizedMessages), uniqueIdEnhance()]);
305
304
  var BulkTextarea = function () {
306
305
  return createComponent(BulkTextareaRoot, {
307
306
  InputField: InputField,
@@ -1 +1 @@
1
- {"version":3,"file":"BulkTextarea.js","names":["React","createComponent","Component","Root","Box","InputField","Counter","ClearAll","ErrorsNavigation","localizedMessages","i18nEnhance","focusSourceEnhance","uniqueIdEnhance","BulkTextareaRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","linesCount","isEmptyText","errorIndex","highlightErrorIndex","isEmpty","setState","handlers","showErrors","errors","state","e","_this$inputFieldRef$c","value","textarea","inputFieldRef","current","querySelector","HTMLDivElement","focus","amount","_this$asProps$errors","asProps","itemsIndex","newIndex","handleChangeErrorIndex","setTimeout","_createClass","key","uncontrolledProps","get","uid","getInputFieldProps","_this2","_this$asProps","size","minRows","maxRows","lineValidation","placeholder","validateOn","linesDelimiters","maxLines","disabled","readonly","pasteProps","lineProcessing","_this$asProps$errors2","_this$state","prevError","onChangeLinesCount","handleChangeLinesCount","onChangeLineIndex","includes","onBlur","event","_this2$props$onChange","_this2$props","focusSourceRef","FocusEvent","relatedTarget","clearAllButtonRef","_this2$nextButtonRef$","nextButtonRef","props","onChange","onErrorsChange","newErrors","undefined","_this2$asProps","newState","onErrorIndexChange","newErrorIndex","ref","counterId","getCounterProps","_this$asProps2","getI18nText","_this$state2","counterTheme","id","counterRef","theme","getClearAllProps","_this$asProps3","onClick","handleClickClearAll","isHidden","getErrorsNavigationProps","_this$asProps4","_this$asProps4$errors","onPrevError","onNextError","errorsCount","map","Boolean","prevButtonRef","render","_ref","createElement","_assignProps","defaultValue","defaultState","locale","defaultErrors","defaultShowErrors","BulkTextarea"],"sources":["../../src/BulkTextarea.tsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\n\nimport { BulkTextareaType, BulkTextareaProps } from './BulkTextarea.types';\n\nimport { InputField, InputFieldProps } from './components/InputField/InputField';\nimport { Counter } from './components/Counter';\nimport { ClearAll } from './components/ClearAll';\nimport { ErrorsNavigation } from './components/ErrorsNavigation';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport focusSourceEnhance from '@semcore/utils/lib/enhances/focusSourceEnhance';\nimport uniqueIdEnhance from '@semcore/utils/lib/uniqueID';\n\ntype State<T extends string | string[]> = {\n linesCount: number;\n isEmptyText: boolean;\n errorIndex: number;\n highlightErrorIndex: boolean;\n prevError?: InputFieldProps<T>['errors'][number];\n};\n\nclass BulkTextareaRoot<T extends string | string[]> extends Component<\n BulkTextareaProps<T>,\n {},\n State<T>,\n typeof BulkTextareaRoot.enhance\n> {\n static displayName = 'BulkTextarea';\n static defaultProps = {\n defaultValue: '',\n size: 'm',\n defaultState: 'normal',\n minRows: 2,\n maxRows: 10,\n maxLines: 100,\n validateOn: 'blur',\n locale: 'en',\n defaultErrors: [],\n defaultShowErrors: false,\n };\n\n static enhance = [\n i18nEnhance(localizedMessages),\n focusSourceEnhance(),\n uniqueIdEnhance(),\n ] as const;\n\n inputFieldRef = React.createRef<HTMLDivElement>();\n clearAllButtonRef = React.createRef<HTMLButtonElement>();\n nextButtonRef = React.createRef<HTMLButtonElement>();\n prevButtonRef = React.createRef<HTMLButtonElement>();\n counterRef = React.createRef<HTMLDivElement>();\n\n state: State<T> = {\n linesCount: 0,\n isEmptyText: true,\n errorIndex: -1,\n highlightErrorIndex: false,\n };\n\n uncontrolledProps() {\n return {\n value: null,\n state: null,\n showErrors: null,\n errors: null,\n };\n }\n\n get counterId() {\n return `${this.asProps.uid}_counter`;\n }\n\n getInputFieldProps() {\n const {\n value,\n size,\n minRows,\n maxRows,\n lineValidation,\n placeholder,\n validateOn,\n linesDelimiters,\n maxLines,\n disabled,\n readonly,\n pasteProps,\n lineProcessing,\n errors = [],\n showErrors,\n } = this.asProps;\n const { errorIndex, prevError, linesCount, highlightErrorIndex } = this.state;\n\n return {\n value,\n size,\n state: showErrors && errors?.length > 0 ? 'invalid' : 'normal',\n disabled,\n readonly,\n minRows,\n maxRows,\n maxLines,\n placeholder,\n prevError,\n pasteProps,\n linesCount,\n lineProcessing,\n onChangeLinesCount: this.handleChangeLinesCount,\n onChangeLineIndex: () => {\n if (validateOn?.includes('blurLine')) {\n this.handlers.showErrors(true);\n }\n },\n onBlur: (value: T, event: Event) => {\n if (\n validateOn?.includes('blur') &&\n (this.asProps.focusSourceRef.current === 'keyboard' ||\n (event instanceof FocusEvent && event.relatedTarget !== this.clearAllButtonRef.current))\n ) {\n this.handlers.showErrors(true);\n }\n\n if (\n this.asProps.showErrors === false &&\n (validateOn?.includes('blur') || validateOn?.includes('blurLine'))\n ) {\n setTimeout(() => {\n this.nextButtonRef.current?.focus();\n }, 250);\n }\n\n this.props.onChange?.(value, event);\n },\n showErrors,\n validateOn,\n lineValidation: lineValidation,\n errors,\n onErrorsChange: (newErrors: InputFieldProps<T>['errors']) => {\n const prevError = newErrors.length === 0 ? errors[0] : undefined;\n this.handlers.errors(newErrors);\n this.setState({ prevError });\n setTimeout(() => {\n const { showErrors, errors } = this.asProps;\n if (showErrors) {\n const newState = newErrors.length === 0 ? 'normal' : 'invalid';\n this.handlers.state(newState);\n }\n if (errors?.length === 0) {\n this.handlers.showErrors(false);\n\n setTimeout(() => {\n this.setState({ prevError: undefined });\n }, 150);\n }\n }, 10); // this timeout to be sure that code will be after state change\n },\n highlightErrorIndex,\n errorIndex,\n onErrorIndexChange: (newErrorIndex: number) => {\n const prevError = errors[errorIndex];\n\n this.setState({ errorIndex: newErrorIndex, prevError, highlightErrorIndex: false });\n },\n linesDelimiters,\n ref: this.inputFieldRef,\n ['aria-describedby']: this.counterId,\n };\n }\n\n getCounterProps() {\n const { maxLines, getI18nText, size } = this.asProps;\n const { linesCount, isEmptyText } = this.state;\n\n let counterTheme = '';\n\n if (linesCount === maxLines) {\n counterTheme = 'warning';\n } else if (linesCount > maxLines!) {\n counterTheme = 'danger';\n }\n\n return {\n id: this.counterId,\n ref: this.counterRef,\n getI18nText,\n theme: counterTheme,\n linesCount: isEmptyText ? 0 : linesCount,\n maxLines,\n size,\n };\n }\n\n getClearAllProps() {\n const { size, getI18nText, disabled, readonly } = this.asProps;\n\n return {\n onClick: this.handleClickClearAll,\n isHidden: this.state.isEmptyText,\n size,\n getI18nText,\n ref: this.clearAllButtonRef,\n disabled: disabled || readonly,\n };\n }\n\n getErrorsNavigationProps() {\n const { size, getI18nText, disabled, readonly, errors = [], showErrors } = this.asProps;\n const { errorIndex } = this.state;\n return {\n size,\n getI18nText,\n errorIndex: errorIndex,\n onPrevError: this.handleChangeErrorIndex(-1),\n onNextError: this.handleChangeErrorIndex(1),\n errorsCount: errors.map(Boolean).length,\n showErrors,\n disabled: disabled || readonly || false,\n nextButtonRef: this.nextButtonRef,\n prevButtonRef: this.prevButtonRef,\n };\n }\n\n handleChangeLinesCount = (linesCount: number) => {\n const isEmpty = !linesCount;\n this.setState({ linesCount, isEmptyText: isEmpty });\n\n if (isEmpty) {\n this.handlers.showErrors(false);\n this.handlers.errors([]);\n this.handlers.state('normal');\n }\n };\n\n handleClickClearAll = (e: Event) => {\n this.handlers.showErrors(false);\n this.handlers.errors([]);\n this.setState({ errorIndex: -1 });\n this.handlers.value('', e);\n this.handlers.state('normal');\n\n const textarea = this.inputFieldRef.current?.querySelector('[role=\"textbox\"]');\n textarea instanceof HTMLDivElement && textarea.focus();\n };\n\n handleChangeErrorIndex = (amount: number) => () => {\n const { errors = [] } = this.asProps;\n const { errorIndex } = this.state;\n const itemsIndex = errors.length - 1;\n let newIndex = errorIndex + amount;\n\n if (newIndex < 0) {\n newIndex = amount + itemsIndex + 1;\n } else if (newIndex > itemsIndex) {\n newIndex = newIndex - itemsIndex - 1;\n }\n\n if (!errors[newIndex]) {\n this.handleChangeErrorIndex(amount < 0 ? amount - 1 : amount + 1)();\n } else {\n this.handlers.showErrors(false);\n this.setState({ errorIndex: -1 });\n\n setTimeout(() => {\n this.handlers.showErrors(true);\n this.setState({ errorIndex: newIndex, highlightErrorIndex: true });\n });\n }\n };\n\n render() {\n return <Root render={Box} __excludeProps={['onBlur', 'value', 'placeholder']} />;\n }\n}\n\nconst BulkTextarea = (<T extends string | string[]>() =>\n createComponent(BulkTextareaRoot, {\n InputField,\n Counter,\n ClearAll,\n ErrorsNavigation,\n }) as BulkTextareaType<T>)();\n\nexport default BulkTextarea;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BulkTextarea.js","names":["Box","createComponent","Component","Root","lastInteraction","i18nEnhance","uniqueIdEnhance","React","ClearAll","Counter","ErrorsNavigation","InputField","localizedMessages","BulkTextareaRoot","_Component","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","createRef","linesCount","isEmptyText","errorIndex","highlightErrorIndex","isEmpty","setState","handlers","showErrors","errors","state","e","_this$inputFieldRef$c","value","textarea","inputFieldRef","current","querySelector","HTMLDivElement","focus","amount","_this$asProps$errors","asProps","itemsIndex","newIndex","handleChangeErrorIndex","setTimeout","_inherits","_createClass","key","uncontrolledProps","get","uid","getInputFieldProps","_this2","_this$asProps","size","minRows","maxRows","lineValidation","placeholder","validateOn","linesDelimiters","maxLines","disabled","readonly","pasteProps","lineProcessing","_this$asProps$errors2","onImmediatelyChange","_this$state","prevError","onChangeLinesCount","handleChangeLinesCount","onChangeLineIndex","includes","onBlur","event","_this2$props$onChange","_this2$props","isKeyboard","FocusEvent","relatedTarget","clearAllButtonRef","_this2$nextButtonRef$","nextButtonRef","props","onChange","call","onErrorsChange","newErrors","undefined","_this2$asProps","newState","onErrorIndexChange","newErrorIndex","ref","counterId","getCounterProps","_this$asProps2","getI18nText","_this$state2","counterTheme","id","counterRef","theme","getClearAllProps","_this$asProps3","onClick","handleClickClearAll","isHidden","getErrorsNavigationProps","_this$asProps4","_this$asProps4$errors","onPrevError","onNextError","errorsCount","map","Boolean","prevButtonRef","render","_ref","createElement","_assignProps","defaultValue","defaultState","locale","defaultErrors","defaultShowErrors","BulkTextarea"],"sources":["../../src/BulkTextarea.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, Component, Root, lastInteraction } from '@semcore/core';\nimport i18nEnhance from '@semcore/core/lib/utils/enhances/i18nEnhance';\nimport uniqueIdEnhance from '@semcore/core/lib/utils/uniqueID';\nimport React from 'react';\n\nimport type { BulkTextareaType, BulkTextareaProps } from './BulkTextarea.types';\nimport { ClearAll } from './components/ClearAll';\nimport { Counter } from './components/Counter';\nimport { ErrorsNavigation } from './components/ErrorsNavigation';\nimport { InputField, type InputFieldProps } from './components/InputField/InputField';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\ntype State<T extends string | string[]> = {\n linesCount: number;\n isEmptyText: boolean;\n errorIndex: number;\n highlightErrorIndex: boolean;\n prevError?: InputFieldProps<T>['errors'][number];\n};\n\nclass BulkTextareaRoot<T extends string | string[]> extends Component<\n BulkTextareaProps<T>,\n typeof BulkTextareaRoot.enhance,\n {\n value: null;\n state: null;\n showErrors: null;\n errors: null;\n },\n {},\n State<T>\n> {\n static displayName = 'BulkTextarea';\n static defaultProps = {\n defaultValue: '',\n size: 'm',\n defaultState: 'normal',\n minRows: 2,\n maxRows: 10,\n maxLines: 100,\n validateOn: 'blur',\n locale: 'en',\n defaultErrors: [],\n defaultShowErrors: false,\n };\n\n static enhance = [i18nEnhance(localizedMessages), uniqueIdEnhance()] as const;\n\n inputFieldRef = React.createRef<HTMLDivElement>();\n clearAllButtonRef = React.createRef<HTMLButtonElement>();\n nextButtonRef = React.createRef<HTMLButtonElement>();\n prevButtonRef = React.createRef<HTMLButtonElement>();\n counterRef = React.createRef<HTMLDivElement>();\n\n state: State<T> = {\n linesCount: 0,\n isEmptyText: true,\n errorIndex: -1,\n highlightErrorIndex: false,\n };\n\n uncontrolledProps() {\n return {\n value: null,\n state: null,\n showErrors: null,\n errors: null,\n };\n }\n\n get counterId() {\n return `${this.asProps.uid}_counter`;\n }\n\n getInputFieldProps() {\n const {\n value,\n size,\n minRows,\n maxRows,\n lineValidation,\n placeholder,\n validateOn,\n linesDelimiters,\n maxLines,\n disabled,\n readonly,\n pasteProps,\n lineProcessing,\n errors = [],\n showErrors,\n onImmediatelyChange,\n } = this.asProps;\n const { errorIndex, prevError, linesCount, highlightErrorIndex } = this.state;\n\n return {\n value,\n size,\n state: showErrors && errors?.length > 0 ? 'invalid' : 'normal',\n disabled,\n readonly,\n minRows,\n maxRows,\n maxLines,\n placeholder,\n prevError,\n pasteProps,\n linesCount,\n lineProcessing,\n onChangeLinesCount: this.handleChangeLinesCount,\n onChangeLineIndex: () => {\n if (validateOn?.includes('blurLine')) {\n this.handlers.showErrors(true);\n }\n },\n onBlur: (value: T, event: Event) => {\n if (\n validateOn?.includes('blur') &&\n (lastInteraction.isKeyboard() ||\n (event instanceof FocusEvent && event.relatedTarget !== this.clearAllButtonRef.current))\n ) {\n this.handlers.showErrors(true);\n }\n\n if (\n this.asProps.showErrors === false &&\n (validateOn?.includes('blur') || validateOn?.includes('blurLine'))\n ) {\n setTimeout(() => {\n this.nextButtonRef.current?.focus();\n }, 250);\n }\n\n this.props.onChange?.(value, event);\n },\n showErrors,\n validateOn,\n lineValidation: lineValidation,\n errors,\n onErrorsChange: (newErrors: InputFieldProps<T>['errors']) => {\n const prevError = newErrors.length === 0 ? errors[0] : undefined;\n this.handlers.errors(newErrors);\n this.setState({ prevError });\n setTimeout(() => {\n const { showErrors, errors } = this.asProps;\n if (showErrors) {\n const newState = newErrors.length === 0 ? 'normal' : 'invalid';\n this.handlers.state(newState);\n }\n if (errors?.length === 0) {\n this.handlers.showErrors(false);\n\n setTimeout(() => {\n this.setState({ prevError: undefined });\n }, 150);\n }\n }, 10); // this timeout to be sure that code will be after state change\n },\n highlightErrorIndex,\n errorIndex,\n onErrorIndexChange: (newErrorIndex: number) => {\n const prevError = errors[errorIndex];\n\n this.setState({ errorIndex: newErrorIndex, prevError, highlightErrorIndex: false });\n },\n linesDelimiters,\n ref: this.inputFieldRef,\n ['aria-describedby']: this.counterId,\n onImmediatelyChange,\n };\n }\n\n getCounterProps() {\n const { maxLines, getI18nText, size } = this.asProps;\n const { linesCount, isEmptyText } = this.state;\n\n let counterTheme = '';\n\n if (linesCount === maxLines) {\n counterTheme = 'warning';\n } else if (linesCount > maxLines!) {\n counterTheme = 'danger';\n }\n\n return {\n id: this.counterId,\n ref: this.counterRef,\n getI18nText,\n theme: counterTheme,\n linesCount: isEmptyText ? 0 : linesCount,\n maxLines,\n size,\n };\n }\n\n getClearAllProps() {\n const { size, getI18nText, disabled, readonly } = this.asProps;\n\n return {\n onClick: this.handleClickClearAll,\n isHidden: this.state.isEmptyText,\n size,\n getI18nText,\n ref: this.clearAllButtonRef,\n disabled: disabled || readonly,\n };\n }\n\n getErrorsNavigationProps() {\n const { size, getI18nText, disabled, readonly, errors = [], showErrors } = this.asProps;\n const { errorIndex } = this.state;\n return {\n size,\n getI18nText,\n errorIndex: errorIndex,\n onPrevError: this.handleChangeErrorIndex(-1),\n onNextError: this.handleChangeErrorIndex(1),\n errorsCount: errors.map(Boolean).length,\n showErrors,\n disabled: disabled || readonly || false,\n nextButtonRef: this.nextButtonRef,\n prevButtonRef: this.prevButtonRef,\n };\n }\n\n handleChangeLinesCount = (linesCount: number) => {\n const isEmpty = !linesCount;\n this.setState({ linesCount, isEmptyText: isEmpty });\n\n if (isEmpty) {\n this.handlers.showErrors(false);\n this.handlers.errors([]);\n this.handlers.state('normal');\n }\n };\n\n handleClickClearAll = (e: Event) => {\n this.handlers.showErrors(false);\n this.handlers.errors([]);\n this.setState({ errorIndex: -1 });\n // @ts-ignore\n this.handlers.value('', e);\n this.handlers.state('normal');\n\n const textarea = this.inputFieldRef.current?.querySelector('[role=\"textbox\"]');\n if (textarea instanceof HTMLDivElement) {\n textarea.focus();\n }\n };\n\n handleChangeErrorIndex = (amount: number) => () => {\n const { errors = [] } = this.asProps;\n const { errorIndex } = this.state;\n const itemsIndex = errors.length - 1;\n let newIndex = errorIndex + amount;\n\n if (newIndex < 0) {\n newIndex = amount + itemsIndex + 1;\n } else if (newIndex > itemsIndex) {\n newIndex = newIndex - itemsIndex - 1;\n }\n\n if (!errors[newIndex]) {\n this.handleChangeErrorIndex(amount < 0 ? amount - 1 : amount + 1)();\n } else {\n this.handlers.showErrors(false);\n this.setState({ errorIndex: -1 });\n\n setTimeout(() => {\n this.handlers.showErrors(true);\n this.setState({ errorIndex: newIndex, highlightErrorIndex: true });\n });\n }\n };\n\n render() {\n return <Root render={Box} __excludeProps={['onBlur', 'value', 'placeholder']} />;\n }\n}\n\nconst BulkTextarea = (<T extends string | string[]>() =>\n createComponent(BulkTextareaRoot, {\n InputField,\n Counter,\n ClearAll,\n ErrorsNavigation,\n }) as unknown as BulkTextareaType<T>)();\n\nexport default BulkTextarea;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BulkTextarea.types.js","names":[],"sources":["../../src/BulkTextarea.types.ts"],"sourcesContent":["import { Intergalactic } from '@semcore/utils/lib/core';\nimport { BoxProps } from '@semcore/flex-box';\nimport Button from '@semcore/button';\nimport { InputFieldProps } from './components/InputField/InputField';\nimport { CounterProps } from './components/Counter';\nimport { ErrorsNavigationProps } from './components/ErrorsNavigation';\n\nexport type BulkTextareaProps<T extends string | string[]> = {\n value?: InputFieldProps<T>['value'];\n onChange?: InputFieldProps<T>['onBlur'];\n placeholder?: InputFieldProps<T>['placeholder'];\n size?: InputFieldProps<T>['size'];\n state?: InputFieldProps<T>['state'];\n disabled?: InputFieldProps<T>['disabled'];\n readonly?: InputFieldProps<T>['readonly'];\n\n minRows?: InputFieldProps<T>['minRows'];\n maxRows?: InputFieldProps<T>['maxRows'];\n\n validateOn?: InputFieldProps<T>['validateOn'];\n lineValidation?: InputFieldProps<T>['lineValidation'];\n linesDelimiters?: InputFieldProps<T>['linesDelimiters'];\n pasteProps?: InputFieldProps<T>['pasteProps'];\n\n maxLines?: InputFieldProps<T>['maxLines'];\n lineProcessing?: InputFieldProps<T>['lineProcessing'];\n\n errors?: InputFieldProps<T>['errors'];\n showErrors?: boolean;\n\n onErrorsChange?: InputFieldProps<T>['onErrorsChange'];\n onShowErrorsChange?: InputFieldProps<T>['onShowErrorsChange'];\n};\n\ntype BulkTextareaComponent = (<T extends string | string[]>(\n props: Intergalactic.InternalTypings.ComponentProps<\n 'div',\n 'div',\n BoxProps & BulkTextareaProps<T>\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', {}>;\n\nexport type BulkTextareaType<T extends string | string[]> = BulkTextareaComponent & {\n InputField: Intergalactic.Component<\n 'div',\n Pick<InputFieldProps<T>, 'commonErrorMessage' | 'id'> & Partial<BulkTextareaProps<T>> & BoxProps\n >;\n Counter: Intergalactic.Component<'div', Partial<CounterProps>>;\n ClearAll: typeof Button;\n ErrorsNavigation: Intergalactic.Component<'div', Partial<ErrorsNavigationProps>>;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"BulkTextarea.types.js","names":[],"sources":["../../src/BulkTextarea.types.ts"],"sourcesContent":["import type { BoxProps } from '@semcore/base-components';\nimport type Button from '@semcore/button';\nimport type { Intergalactic } from '@semcore/core';\n\nimport type { CounterProps } from './components/Counter';\nimport type { ErrorsNavigationProps } from './components/ErrorsNavigation';\nimport type { InputFieldProps } from './components/InputField/InputField';\nimport type { PasteProps } from './components/InputField/InputField.types';\n\nexport type BulkTextareaProps<T extends string | string[]> = {\n /** The current value */\n value?: InputFieldProps<T>['value'];\n /** Callback triggered when the onBlur event is emmited */\n onChange?: InputFieldProps<T>['onBlur'];\n /** Placeholder text */\n placeholder?: InputFieldProps<T>['placeholder'];\n /** Component size */\n size?: InputFieldProps<T>['size'];\n /** State for show errors or valid(green) borders */\n state?: InputFieldProps<T>['state'];\n /** Defines whether the textarea is disabled */\n disabled?: InputFieldProps<T>['disabled'];\n /** Defines whether the textarea is readonly */\n readonly?: InputFieldProps<T>['readonly'];\n /** Minimum number of rows to display */\n minRows?: InputFieldProps<T>['minRows'];\n /** Maximum number of rows to display */\n maxRows?: InputFieldProps<T>['maxRows'];\n /** An event when a validation occurs */\n validateOn?: InputFieldProps<T>['validateOn'];\n /** A function to valide the line */\n lineValidation?: InputFieldProps<T>['lineValidation'];\n /** Line delimeters */\n linesDelimiters?: InputFieldProps<T>['linesDelimiters'];\n /** Defines the props for paste action */\n pasteProps?: InputFieldProps<T>['pasteProps'];\n /** Maximum number of allowed lines/values */\n maxLines?: InputFieldProps<T>['maxLines'];\n /** Function to process individual lines during input */\n lineProcessing?: InputFieldProps<T>['lineProcessing'];\n /** List of errors */\n errors?: InputFieldProps<T>['errors'];\n /** Defines whether to show errors or not */\n showErrors?: InputFieldProps<T>['showErrors'];\n /** Internal */\n onErrorsChange?: InputFieldProps<T>['onErrorsChange'];\n /** Internal */\n onShowErrorsChange?: InputFieldProps<T>['onShowErrorsChange'];\n /** Internal */\n onImmediatelyChange?: InputFieldProps<T>['onImmediatelyChange'];\n};\n\ntype BulkTextareaComponent = (<T extends string | string[]>(\n props: Intergalactic.InternalTypings.ComponentProps<\n 'div',\n 'div',\n BoxProps & BulkTextareaProps<T>\n >,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\nIntergalactic.InternalTypings.ComponentAdditive<'div', 'div', {}>;\n\nexport type BulkTextareaInputFieldProps<T extends string | string[] = string | string[]> = BoxProps & {\n /**\n * Unique id\n */\n id?: string;\n /**\n * Placeholder for field\n */\n placeholder?: string;\n /**\n * String to render in textarea. OnChanging value, it will go throw paste pipeline\n */\n value?: T;\n /**\n * This component doesn't have default onChange callback, because we think that you need only the result after every changes/fixes\n */\n onBlur?: (value: T, e: Event) => void;\n /**\n * Size of component\n * @default m\n */\n size?: 'm' | 'l';\n /**\n * State for show errors or valid(green) borders\n * @default normal\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Flag for disabling field\n * @default false\n */\n disabled?: boolean;\n /**\n * Flag for readonly field\n * @default false\n */\n readonly?: boolean;\n /**\n * Min rows\n * @default 2\n */\n minRows?: number;\n /**\n * Max rows\n * @default 10\n */\n maxRows?: number;\n /**\n * List of available points to validate value\n * @default blur\n */\n validateOn?: ('blur' | 'blurLine' | 'paste')[];\n /**\n * Function to validate line\n */\n lineValidation?: (line: string, lines: string[]) => { isValid: boolean; errorMessage: string };\n /**\n * Message for display error about whole field, not only one line.\n * If set empty string, field will not have invalid state.\n */\n commonErrorMessage: string;\n /**\n * Delimiters (event.key) for lines\n * @default Enter\n */\n linesDelimiters?: string[];\n /**\n * Count of max lines in badge\n * @default 100\n */\n maxLines?: number;\n /**\n * Paste props\n */\n pasteProps?: PasteProps;\n /**\n * Function for process line after it was blurred\n */\n lineProcessing?: (line: string, lines: string[]) => string;\n};\n\nexport type BulkTextareaType<T extends string | string[]> = BulkTextareaComponent & {\n InputField: Intergalactic.Component<\n 'div',\n BulkTextareaInputFieldProps<T>\n >;\n Counter: Intergalactic.Component<'div', Partial<CounterProps>>;\n ClearAll: typeof Button;\n ErrorsNavigation: Intergalactic.Component<'div', Partial<ErrorsNavigationProps>>;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import { assignProps as _assignProps } from "@semcore/core";
3
- import React from 'react';
4
- import { Root, sstyled } from '@semcore/core';
5
3
  import Button from '@semcore/button';
4
+ import { Root, sstyled } from '@semcore/core';
6
5
  import CloseM from '@semcore/icon/Close/m';
6
+ import React from 'react';
7
7
  export function ClearAll(props) {
8
8
  var _ref = arguments[0],
9
9
  _ref2;
@@ -1 +1 @@
1
- {"version":3,"file":"ClearAll.js","names":["React","Root","sstyled","Button","CloseM","ClearAll","props","_ref","arguments[0]","_ref2","SButton","isHidden","styles","createElement","cn","_objectSpread","_assignProps","getI18nText"],"sources":["../../../src/components/ClearAll.tsx"],"sourcesContent":["import React from 'react';\nimport { IRootComponentProps, Root, sstyled } from '@semcore/core';\nimport Button from '@semcore/button';\nimport CloseM from '@semcore/icon/Close/m';\nimport { useI18n } from '@semcore/utils/lib/enhances/WithI18n';\n\nexport function ClearAll(\n props: IRootComponentProps & { isHidden: boolean; getI18nText: ReturnType<typeof useI18n> },\n) {\n const SButton = Root;\n return (\n !props.isHidden &&\n sstyled(props.styles)(\n <SButton render={Button} theme='muted' use='tertiary' addonLeft={CloseM}>\n {props.getI18nText('BulkTextarea.ClearAllButton.buttonText')}\n </SButton>,\n )\n );\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAA8BC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AAClE,OAAOC,MAAM,MAAM,iBAAiB;AACpC,OAAOC,MAAM,MAAM,uBAAuB;AAG1C,OAAO,SAASC,QAAQA,CACtBC,KAA2F,EAC3F;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACA,IAAMC,OAAO,GAIQP,MAAM;EAH3B,OACE,CAACG,KAAK,CAACK,QAAQ,KAAAF,KAAA,GACfP,OAAO,CAACI,KAAK,CAACM,MAAM,CAAC,eACnBZ,KAAA,CAAAa,aAAA,CAACH,OAAO,EAAAD,KAAA,CAAAK,EAAA,YAAAC,aAAA,KAAAC,YAAA;IAAA,SAAuB,OAAO;IAAA,OAAK,UAAU;IAAA,aAAYZ;EAAM,GAAAG,IAAA,KACpED,KAAK,CAACW,WAAW,CAAC,wCAAwC,CAAC,CACpD,CACX;AAEL"}
1
+ {"version":3,"file":"ClearAll.js","names":["Button","Root","sstyled","CloseM","React","ClearAll","props","_ref","arguments[0]","_ref2","SButton","isHidden","styles","createElement","cn","_objectSpread","_assignProps","getI18nText"],"sources":["../../../src/components/ClearAll.tsx"],"sourcesContent":["import Button from '@semcore/button';\nimport { type IRootComponentProps, Root, sstyled } from '@semcore/core';\nimport type { useI18n } from '@semcore/core/lib/utils/enhances/WithI18n';\nimport CloseM from '@semcore/icon/Close/m';\nimport React from 'react';\n\nexport function ClearAll(\n props: IRootComponentProps & { isHidden: boolean; getI18nText: ReturnType<typeof useI18n> },\n) {\n const SButton = Root;\n return (\n !props.isHidden &&\n sstyled(props.styles)(\n <SButton render={Button} theme='muted' use='tertiary' addonLeft={CloseM}>\n {props.getI18nText('BulkTextarea.ClearAllButton.buttonText')}\n </SButton>,\n )\n );\n}\n"],"mappings":";;AAAA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAAmCC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AAEvE,OAAOC,MAAM,MAAM,uBAAuB;AAC1C,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAO,SAASC,QAAQA,CACtBC,KAA2F,EAC3F;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACA,IAAMC,OAAO,GAIQV,MAAM;EAH3B,OACE,CAACM,KAAK,CAACK,QAAQ,KAAAF,KAAA,GACfP,OAAO,CAACI,KAAK,CAACM,MAAM,CAAC,eACnBR,KAAA,CAAAS,aAAA,CAACH,OAAO,EAAAD,KAAA,CAAAK,EAAA,YAAAC,aAAA,KAAAC,YAAA;IAAA,SAAuB,OAAO;IAAA,OAAK,UAAU;IAAA,aAAYb;EAAM,GAAAI,IAAA,KACpED,KAAK,CAACW,WAAW,CAAC,wCAAwC,CACpD,CAAC,CACX;AAEL","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import { assignProps as _assignProps } from "@semcore/core";
2
- import React from 'react';
2
+ import { ScreenReaderOnly } from '@semcore/base-components';
3
3
  import { Root } from '@semcore/core';
4
- import { ScreenReaderOnly } from '@semcore/flex-box';
5
4
  import CounterKit from '@semcore/counter';
5
+ import React from 'react';
6
6
  export function Counter(props) {
7
7
  var _ref = arguments[0];
8
8
  var theme = props.theme,
@@ -1 +1 @@
1
- {"version":3,"file":"Counter.js","names":["React","Root","ScreenReaderOnly","CounterKit","Counter","props","_ref","arguments[0]","theme","linesCount","maxLines","getI18nText","createElement","_assignProps","rowsNumber"],"sources":["../../../src/components/Counter.tsx"],"sourcesContent":["import React from 'react';\nimport { Root } from '@semcore/core';\nimport { ScreenReaderOnly } from '@semcore/flex-box';\nimport CounterKit, { CounterProps as CounterPropsKit } from '@semcore/counter';\nimport { useI18n } from '@semcore/utils/lib/enhances/WithI18n';\n\nexport type CounterProps = {\n theme: CounterPropsKit['theme'];\n linesCount: number;\n maxLines: number;\n getI18nText: ReturnType<typeof useI18n>;\n};\n\nexport function Counter(props: CounterProps) {\n const { theme, linesCount, maxLines, getI18nText } = props;\n\n return (\n <Root render={CounterKit} ml={1} theme={theme}>\n {linesCount}\n <span aria-hidden='true'>/{maxLines}</span>\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.ofAllowedRows:sr-message', { rowsNumber: maxLines })}\n </ScreenReaderOnly>\n {theme === 'warning' && (\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.limitReached:sr-message')}\n </ScreenReaderOnly>\n )}\n {theme === 'danger' && (\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.limitExceeded:sr-message')}\n </ScreenReaderOnly>\n )}\n </Root>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,gBAAgB,QAAQ,mBAAmB;AACpD,OAAOC,UAAU,MAA2C,kBAAkB;AAU9E,OAAO,SAASC,OAAOA,CAACC,KAAmB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;EAC3C,IAAQC,KAAK,GAAwCH,KAAK,CAAlDG,KAAK;IAAEC,UAAU,GAA4BJ,KAAK,CAA3CI,UAAU;IAAEC,QAAQ,GAAkBL,KAAK,CAA/BK,QAAQ;IAAEC,WAAW,GAAKN,KAAK,CAArBM,WAAW;EAEhD,oBACEX,KAAA,CAAAY,aAAA,CAAcT,UAAU,EAAAU,YAAA;IAAA,MAAM,CAAC;IAAA,SAASL;EAAK,GAAAF,IAAA,GAC1CG,UAAU,eACXT,KAAA,CAAAY,aAAA;IAAM,eAAY;EAAM,GAAC,GAAC,EAACF,QAAQ,CAAQ,eAC3CV,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,+CAA+C,EAAE;IAAEG,UAAU,EAAEJ;EAAS,CAAC,CAAC,CACtE,EAClBF,KAAK,KAAK,SAAS,iBAClBR,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,8CAA8C,CAAC,CAE/D,EACAH,KAAK,KAAK,QAAQ,iBACjBR,KAAA,CAAAY,aAAA,CAACV,gBAAgB,QACdS,WAAW,CAAC,+CAA+C,CAAC,CAEhE,CACI;AAEX"}
1
+ {"version":3,"file":"Counter.js","names":["ScreenReaderOnly","Root","CounterKit","React","Counter","props","_ref","arguments[0]","theme","linesCount","maxLines","getI18nText","createElement","_assignProps","rowsNumber"],"sources":["../../../src/components/Counter.tsx"],"sourcesContent":["import { ScreenReaderOnly } from '@semcore/base-components';\nimport { Root } from '@semcore/core';\nimport type { useI18n } from '@semcore/core/lib/utils/enhances/WithI18n';\nimport CounterKit, { type CounterProps as CounterPropsKit } from '@semcore/counter';\nimport React from 'react';\n\nexport type CounterProps = {\n theme: CounterPropsKit['theme'];\n linesCount: number;\n maxLines: number;\n getI18nText: ReturnType<typeof useI18n>;\n};\n\nexport function Counter(props: CounterProps) {\n const { theme, linesCount, maxLines, getI18nText } = props;\n\n return (\n <Root render={CounterKit} ml={1} theme={theme}>\n {linesCount}\n <span aria-hidden='true'>\n /\n {maxLines}\n </span>\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.ofAllowedRows:sr-message', { rowsNumber: maxLines })}\n </ScreenReaderOnly>\n {theme === 'warning' && (\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.limitReached:sr-message')}\n </ScreenReaderOnly>\n )}\n {theme === 'danger' && (\n <ScreenReaderOnly>\n {getI18nText('BulkTextarea.Counter.limitExceeded:sr-message')}\n </ScreenReaderOnly>\n )}\n </Root>\n );\n}\n"],"mappings":";AAAA,SAASA,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,IAAI,QAAQ,eAAe;AAEpC,OAAOC,UAAU,MAAgD,kBAAkB;AACnF,OAAOC,KAAK,MAAM,OAAO;AASzB,OAAO,SAASC,OAAOA,CAACC,KAAmB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;EAC3C,IAAQC,KAAK,GAAwCH,KAAK,CAAlDG,KAAK;IAAEC,UAAU,GAA4BJ,KAAK,CAA3CI,UAAU;IAAEC,QAAQ,GAAkBL,KAAK,CAA/BK,QAAQ;IAAEC,WAAW,GAAKN,KAAK,CAArBM,WAAW;EAEhD,oBACER,KAAA,CAAAS,aAAA,CAAcV,UAAU,EAAAW,YAAA;IAAA,MAAM,CAAC;IAAA,SAASL;EAAK,GAAAF,IAAA,GAC1CG,UAAU,eACXN,KAAA,CAAAS,aAAA;IAAM,eAAY;EAAM,GAAC,GAEvB,EAACF,QACG,CAAC,eACPP,KAAA,CAAAS,aAAA,CAACZ,gBAAgB,QACdW,WAAW,CAAC,+CAA+C,EAAE;IAAEG,UAAU,EAAEJ;EAAS,CAAC,CACtE,CAAC,EAClBF,KAAK,KAAK,SAAS,iBAClBL,KAAA,CAAAS,aAAA,CAACZ,gBAAgB,QACdW,WAAW,CAAC,8CAA8C,CAC3C,CACnB,EACAH,KAAK,KAAK,QAAQ,iBACjBL,KAAA,CAAAS,aAAA,CAACZ,gBAAgB,QACdW,WAAW,CAAC,+CAA+C,CAC5C,CAEhB,CAAC;AAEX","ignoreList":[]}
@@ -1,9 +1,9 @@
1
- import React from 'react';
1
+ import { Flex } from '@semcore/base-components';
2
2
  import Button from '@semcore/button';
3
- import { Flex } from '@semcore/flex-box';
4
- import { Text } from '@semcore/typography';
5
- import ChevronUpM from '@semcore/icon/ChevronUp/m';
6
3
  import ChevronDownM from '@semcore/icon/ChevronDown/m';
4
+ import ChevronUpM from '@semcore/icon/ChevronUp/m';
5
+ import { Text } from '@semcore/typography';
6
+ import React from 'react';
7
7
  export function ErrorsNavigation(props) {
8
8
  var errorIndex = props.errorIndex,
9
9
  errorsCount = props.errorsCount,
@@ -20,19 +20,19 @@ export function ErrorsNavigation(props) {
20
20
  }, errorsCount > 0 && showErrors && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
21
21
  onClick: onNextError,
22
22
  addonLeft: ChevronDownM,
23
- use: 'tertiary',
24
- theme: 'muted',
23
+ use: "tertiary",
24
+ theme: "muted",
25
25
  "aria-label": getI18nText('BulkTextarea.ErrorsNavigation.nextError:aria-label'),
26
- hintPlacement: 'bottom',
26
+ hintPlacement: "bottom",
27
27
  disabled: disabled,
28
28
  ref: nextButtonRef
29
29
  }), /*#__PURE__*/React.createElement(Button, {
30
30
  onClick: onPrevError,
31
31
  addonLeft: ChevronUpM,
32
- use: 'tertiary',
33
- theme: 'muted',
32
+ use: "tertiary",
33
+ theme: "muted",
34
34
  "aria-label": getI18nText('BulkTextarea.ErrorsNavigation.previousError:aria-label'),
35
- hintPlacement: 'bottom',
35
+ hintPlacement: "bottom",
36
36
  disabled: disabled,
37
37
  ref: prevButtonRef
38
38
  }), /*#__PURE__*/React.createElement(Text, {