@justeattakeaway/pie-textarea 0.10.2 → 0.11.0

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.
@@ -284,13 +284,29 @@
284
284
  "kind": "field",
285
285
  "name": "handleInput",
286
286
  "privacy": "private",
287
- "description": "Handles data processing in response to the input event. The native input event is left to bubble up.",
287
+ "description": "Handles input events and updates the component's value based on the input event or a provided new value.",
288
288
  "parameters": [
289
289
  {
290
- "description": "The input event.",
291
- "name": "event"
290
+ "description": "The input event triggered by user interaction. If null, the `newValue` is used.",
291
+ "name": "event",
292
+ "type": {
293
+ "text": "InputEvent | null"
294
+ }
295
+ },
296
+ {
297
+ "description": "An optional new value to set if the event is not provided.",
298
+ "name": "newValue",
299
+ "optional": true,
300
+ "type": {
301
+ "text": "string"
302
+ }
292
303
  }
293
- ]
304
+ ],
305
+ "return": {
306
+ "type": {
307
+ "text": "void"
308
+ }
309
+ }
294
310
  },
295
311
  {
296
312
  "kind": "field",
package/dist/index.d.ts CHANGED
@@ -70,8 +70,13 @@ export declare class PieTextarea extends PieTextarea_base implements TextareaPro
70
70
  private restrictInputLength;
71
71
  protected updated(changedProperties: PropertyValues<this>): void;
72
72
  /**
73
- * Handles data processing in response to the input event. The native input event is left to bubble up.
74
- * @param event - The input event.
73
+ * Handles input events and updates the component's value based on the input event or a provided new value.
74
+ *
75
+ * @param {InputEvent | null} event - The input event triggered by user interaction. If null, the `newValue` is used.
76
+ * @param {string} [newValue] - An optional new value to set if the event is not provided.
77
+ *
78
+ * @private
79
+ * @returns {void}
75
80
  */
76
81
  private handleInput;
77
82
  private handleChange;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { LitElement as M, html as E, nothing as V, unsafeCSS as P } from "lit";
2
- import { property as l, query as D } from "lit/decorators.js";
1
+ import { LitElement as M, html as j, nothing as q, unsafeCSS as P } from "lit";
2
+ import { property as l, query as V } from "lit/decorators.js";
3
3
  import { classMap as G } from "lit/directives/class-map.js";
4
- import { ifDefined as m } from "lit/directives/if-defined.js";
4
+ import { ifDefined as b } from "lit/directives/if-defined.js";
5
5
  import { live as H } from "lit/directives/live.js";
6
6
  import "@justeattakeaway/pie-assistive-text";
7
7
  import "@justeattakeaway/pie-form-label";
@@ -10,22 +10,22 @@ var T = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : ty
10
10
  function Y(t) {
11
11
  return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
12
12
  }
13
- var N = "Expected a function", q = NaN, Z = "[object Symbol]", ee = /^\s+|\s+$/g, te = /^[-+]0x[0-9a-f]+$/i, ae = /^0b[01]+$/i, re = /^0o[0-7]+$/i, ie = parseInt, oe = typeof T == "object" && T && T.Object === Object && T, ne = typeof self == "object" && self && self.Object === Object && self, se = oe || ne || Function("return this")(), le = Object.prototype, de = le.toString, ce = Math.max, ue = Math.min, j = function() {
13
+ var N = "Expected a function", B = NaN, Z = "[object Symbol]", ee = /^\s+|\s+$/g, te = /^[-+]0x[0-9a-f]+$/i, ae = /^0b[01]+$/i, re = /^0o[0-7]+$/i, ie = parseInt, oe = typeof T == "object" && T && T.Object === Object && T, ne = typeof self == "object" && self && self.Object === Object && self, se = oe || ne || Function("return this")(), le = Object.prototype, de = le.toString, ce = Math.max, ue = Math.min, w = function() {
14
14
  return se.Date.now();
15
15
  };
16
16
  function he(t, e, a) {
17
17
  var s, o, h, u, d, p, x = 0, k = !1, v = !1, y = !0;
18
18
  if (typeof t != "function")
19
19
  throw new TypeError(N);
20
- e = B(e) || 0, S(a) && (k = !!a.leading, v = "maxWait" in a, h = v ? ce(B(a.maxWait) || 0, e) : h, y = "trailing" in a ? !!a.trailing : y);
20
+ e = D(e) || 0, S(a) && (k = !!a.leading, v = "maxWait" in a, h = v ? ce(D(a.maxWait) || 0, e) : h, y = "trailing" in a ? !!a.trailing : y);
21
21
  function g(i) {
22
22
  var f = s, z = o;
23
23
  return s = o = void 0, x = i, u = t.apply(z, f), u;
24
24
  }
25
- function L(i) {
25
+ function _(i) {
26
26
  return x = i, d = setTimeout($, e), k ? g(i) : u;
27
27
  }
28
- function W(i) {
28
+ function E(i) {
29
29
  var f = i - p, z = i - x, R = e - f;
30
30
  return v ? ue(R, h - z) : R;
31
31
  }
@@ -34,10 +34,10 @@ function he(t, e, a) {
34
34
  return p === void 0 || f >= e || f < 0 || v && z >= h;
35
35
  }
36
36
  function $() {
37
- var i = j();
37
+ var i = w();
38
38
  if (O(i))
39
39
  return F(i);
40
- d = setTimeout($, W(i));
40
+ d = setTimeout($, E(i));
41
41
  }
42
42
  function F(i) {
43
43
  return d = void 0, y && s ? g(i) : (s = o = void 0, u);
@@ -46,19 +46,19 @@ function he(t, e, a) {
46
46
  d !== void 0 && clearTimeout(d), x = 0, s = p = o = d = void 0;
47
47
  }
48
48
  function K() {
49
- return d === void 0 ? u : F(j());
49
+ return d === void 0 ? u : F(w());
50
50
  }
51
- function w() {
52
- var i = j(), f = O(i);
51
+ function L() {
52
+ var i = w(), f = O(i);
53
53
  if (s = arguments, o = this, p = i, f) {
54
54
  if (d === void 0)
55
- return L(p);
55
+ return _(p);
56
56
  if (v)
57
57
  return d = setTimeout($, e), g(p);
58
58
  }
59
59
  return d === void 0 && (d = setTimeout($, e)), u;
60
60
  }
61
- return w.cancel = A, w.flush = K, w;
61
+ return L.cancel = A, L.flush = K, L;
62
62
  }
63
63
  function pe(t, e, a) {
64
64
  var s = !0, o = !0;
@@ -80,11 +80,11 @@ function fe(t) {
80
80
  function xe(t) {
81
81
  return typeof t == "symbol" || fe(t) && de.call(t) == Z;
82
82
  }
83
- function B(t) {
83
+ function D(t) {
84
84
  if (typeof t == "number")
85
85
  return t;
86
86
  if (xe(t))
87
- return q;
87
+ return B;
88
88
  if (S(t)) {
89
89
  var e = typeof t.valueOf == "function" ? t.valueOf() : t;
90
90
  t = S(e) ? e + "" : e;
@@ -93,10 +93,10 @@ function B(t) {
93
93
  return t === 0 ? t : +t;
94
94
  t = t.replace(ee, "");
95
95
  var a = ae.test(t);
96
- return a || re.test(t) ? ie(t.slice(2), a ? 2 : 8) : te.test(t) ? q : +t;
96
+ return a || re.test(t) ? ie(t.slice(2), a ? 2 : 8) : te.test(t) ? B : +t;
97
97
  }
98
98
  var ve = pe;
99
- const ge = /* @__PURE__ */ Y(ve), me = "*,*:after,*:before{box-sizing:inherit}.c-textareaWrapper{--textarea-line-height: calc(var(--dt-font-body-l-line-height) * 1px);--textarea-border-thickness: 1px;--textarea-resize: none;--textarea-padding-inline: var(--dt-spacing-c);--textarea-padding-block: var(--dt-spacing-b);--textarea-background-color: var(--dt-color-container-default);--textarea-border-color: var(--dt-color-interactive-form);--textarea-content-color: var(--dt-color-content-default);--textarea-placeholder-color: var(--dt-color-content-placeholder);--textarea-height: calc((var(--textarea-line-height) * 2) + (var(--textarea-padding-block) * 2));line-height:0;padding:var(--dt-spacing-a);border:var(--textarea-border-thickness) solid var(--textarea-border-color);background-color:var(--textarea-background-color);border-radius:var(--dt-radius-rounded-c);inline-size:100%}.c-textareaWrapper textarea{font-size:calc(var(--dt-font-body-l-size) * 1px);line-height:var(--textarea-line-height);font-family:var(--dt-font-body-l-family);resize:var(--textarea-resize);border:none;background-color:var(--textarea-background-color);color:var(--textarea-content-color);block-size:var(--textarea-height);max-block-size:var(--textarea-max-height);min-block-size:var(--textarea-min-height);inline-size:100%;padding-block-start:var(--textarea-padding-block);padding-block-end:var(--textarea-padding-block);padding-inline-start:var(--textarea-padding-inline);padding-inline-end:var(--textarea-padding-inline)}.c-textareaWrapper textarea:focus{box-shadow:none;outline:none}.c-textareaWrapper textarea::placeholder{color:var(--textarea-placeholder-color);opacity:1}.c-textareaWrapper.c-textarea--readonly{--textarea-background-color: var(--dt-color-container-subtle);--textarea-border-color: var(--dt-color-interactive-form)}.c-textareaWrapper.c-textarea--disabled{--textarea-background-color: var(--dt-color-disabled-01);--textarea-border-color: var(--dt-color-disabled-01);--textarea-content-color: var(--dt-color-content-disabled);--textarea-placeholder-color: var(--dt-color-content-disabled)}@media (hover: hover){.c-textareaWrapper:hover:not(.c-textarea--disabled,.c-textarea--readonly){--textarea-background-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + calc(-1 * var(--dt-color-hover-01))))}}.c-textareaWrapper:focus-within{box-shadow:0 0 0 2px var(--dt-color-focus-inner),0 0 0 4px var(--dt-color-focus-outer);outline:none}.c-textareaWrapper.c-textarea--large{--textarea-padding-block: var(--dt-spacing-c)}.c-textareaWrapper.c-textarea--small{--textarea-padding-block: var(--dt-spacing-a)}.c-textareaWrapper.c-textarea--resize-manual{--textarea-resize: vertical;--textarea-min-height: calc((var(--textarea-line-height) * 1) + (var(--textarea-padding-block) * 2))}@media (pointer: coarse){.c-textareaWrapper.c-textarea--resize-manual{--textarea-height: calc((var(--textarea-line-height) * 6) + (var(--textarea-padding-block) * 2));--textarea-min-height: calc((var(--textarea-line-height) * 6) + (var(--textarea-padding-block) * 2));--textarea-max-height: calc((var(--textarea-line-height) * 6) + (var(--textarea-padding-block) * 2));--textarea-resize: none}}.c-textareaWrapper.c-textarea--resize-auto{--textarea-max-height: calc((var(--textarea-line-height) * 6) + (var(--textarea-padding-block) * 2));--textarea-min-height: var(--textarea-height)}.c-textareaWrapper.c-textarea--error{--textarea-border-color: var(--dt-color-support-error)}", be = ["small", "medium", "large"], ye = ["auto", "manual"], ze = ["default", "success", "error"], c = {
99
+ const ge = /* @__PURE__ */ Y(ve), be = "*,*:after,*:before{box-sizing:inherit}.c-textareaWrapper{--textarea-line-height: calc(var(--dt-font-body-l-line-height) * 1px);--textarea-border-thickness: 1px;--textarea-resize: none;--textarea-padding-inline: var(--dt-spacing-c);--textarea-padding-block: var(--dt-spacing-b);--textarea-background-color: var(--dt-color-container-default);--textarea-border-color: var(--dt-color-interactive-form);--textarea-content-color: var(--dt-color-content-default);--textarea-placeholder-color: var(--dt-color-content-placeholder);--textarea-height: calc((var(--textarea-line-height) * 2) + (var(--textarea-padding-block) * 2));line-height:0;padding:var(--dt-spacing-a);border:var(--textarea-border-thickness) solid var(--textarea-border-color);background-color:var(--textarea-background-color);border-radius:var(--dt-radius-rounded-c);inline-size:100%}.c-textareaWrapper textarea{font-size:calc(var(--dt-font-body-l-size) * 1px);line-height:var(--textarea-line-height);font-family:var(--dt-font-body-l-family);resize:var(--textarea-resize);border:none;background-color:var(--textarea-background-color);color:var(--textarea-content-color);block-size:var(--textarea-height);max-block-size:var(--textarea-max-height);min-block-size:var(--textarea-min-height);inline-size:100%;padding-block-start:var(--textarea-padding-block);padding-block-end:var(--textarea-padding-block);padding-inline-start:var(--textarea-padding-inline);padding-inline-end:var(--textarea-padding-inline)}.c-textareaWrapper textarea:focus{box-shadow:none;outline:none}.c-textareaWrapper textarea::placeholder{color:var(--textarea-placeholder-color);opacity:1}.c-textareaWrapper.c-textarea--readonly{--textarea-background-color: var(--dt-color-container-subtle);--textarea-border-color: var(--dt-color-interactive-form)}.c-textareaWrapper.c-textarea--disabled{--textarea-background-color: var(--dt-color-disabled-01);--textarea-border-color: var(--dt-color-disabled-01);--textarea-content-color: var(--dt-color-content-disabled);--textarea-placeholder-color: var(--dt-color-content-disabled)}@media (hover: hover){.c-textareaWrapper:hover:not(.c-textarea--disabled,.c-textarea--readonly){--textarea-background-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + calc(-1 * var(--dt-color-hover-01))))}}.c-textareaWrapper:focus-within{box-shadow:0 0 0 2px var(--dt-color-focus-inner),0 0 0 4px var(--dt-color-focus-outer);outline:none}.c-textareaWrapper.c-textarea--large{--textarea-padding-block: var(--dt-spacing-c)}.c-textareaWrapper.c-textarea--small{--textarea-padding-block: var(--dt-spacing-a)}.c-textareaWrapper.c-textarea--resize-manual{--textarea-resize: vertical;--textarea-min-height: calc((var(--textarea-line-height) * 1) + (var(--textarea-padding-block) * 2))}@media (pointer: coarse){.c-textareaWrapper.c-textarea--resize-manual{--textarea-height: calc((var(--textarea-line-height) * 6) + (var(--textarea-padding-block) * 2));--textarea-min-height: calc((var(--textarea-line-height) * 6) + (var(--textarea-padding-block) * 2));--textarea-max-height: calc((var(--textarea-line-height) * 6) + (var(--textarea-padding-block) * 2));--textarea-resize: none}}.c-textareaWrapper.c-textarea--resize-auto{--textarea-max-height: calc((var(--textarea-line-height) * 6) + (var(--textarea-padding-block) * 2));--textarea-min-height: var(--textarea-height)}.c-textareaWrapper.c-textarea--error{--textarea-border-color: var(--dt-color-support-error)}", me = ["small", "medium", "large"], ye = ["auto", "manual"], ze = ["default", "success", "error"], c = {
100
100
  disabled: !1,
101
101
  size: "medium",
102
102
  resize: "auto",
@@ -113,12 +113,12 @@ var ke = Object.defineProperty, n = (t, e, a, s) => {
113
113
  (u = t[h]) && (o = u(e, a, o) || o);
114
114
  return o && ke(e, a, o), o;
115
115
  };
116
- const b = "pie-textarea", I = "assistive-text", _ = class _ extends U(X(M)) {
116
+ const m = "pie-textarea", I = "assistive-text", W = class W extends U(X(M)) {
117
117
  constructor() {
118
118
  super(...arguments), this.value = c.value, this.disabled = c.disabled, this.size = c.size, this.resize = c.resize, this.label = c.label, this.readonly = c.readonly, this.autoFocus = c.autoFocus, this.required = c.required, this.status = c.status, this._throttledResize = ge(() => {
119
119
  this.resize === "auto" && (this._textarea.style.height = "auto", this._textarea.style.height = `${this._textarea.scrollHeight}px`);
120
- }, 100), this.handleInput = (e) => {
121
- this.value = e.target.value, this.restrictInputLength(), this._internals.setFormValue(this.value), this.handleResize();
120
+ }, 100), this.handleInput = (e, a) => {
121
+ e ? this.value = e.target.value : a && (this.value = a), this.restrictInputLength(), this._internals.setFormValue(this.value), this.handleResize();
122
122
  }, this.handleChange = (e) => {
123
123
  const a = J(e);
124
124
  this.dispatchEvent(a);
@@ -162,24 +162,24 @@ const b = "pie-textarea", I = "assistive-text", _ = class _ extends U(X(M)) {
162
162
  }
163
163
  }
164
164
  updated(e) {
165
- e.has("value") && (this.restrictInputLength(), this._internals.setFormValue(this.value)), this.resize === "auto" && (e.has("resize") || e.has("size")) && this.handleResize();
165
+ e.has("value") && this.handleInput(null, this.value), this.resize === "auto" && (e.has("resize") || e.has("size")) && this.handleResize();
166
166
  }
167
167
  disconnectedCallback() {
168
168
  this._textarea.removeEventListener("keydown", this.handleKeyDown), window.removeEventListener("resize", () => this.handleResize());
169
169
  }
170
170
  renderLabel(e, a) {
171
171
  const s = a ? `${this.value.length}/${a}` : void 0;
172
- return e != null && e.length ? E`<pie-form-label for="${b}" trailing=${m(s)}>${e}</pie-form-label>` : V;
172
+ return e != null && e.length ? j`<pie-form-label for="${m}" trailing=${b(s)}>${e}</pie-form-label>` : q;
173
173
  }
174
174
  renderAssistiveText() {
175
- return this.assistiveText ? E`
175
+ return this.assistiveText ? j`
176
176
  <pie-assistive-text
177
177
  id="${I}"
178
- variant=${m(this.status)}
178
+ variant=${b(this.status)}
179
179
  data-test-id="pie-textarea-assistive-text">
180
180
  ${this.assistiveText}
181
181
  </pie-assistive-text>
182
- ` : V;
182
+ ` : q;
183
183
  }
184
184
  render() {
185
185
  const {
@@ -196,8 +196,8 @@ const b = "pie-textarea", I = "assistive-text", _ = class _ extends U(X(M)) {
196
196
  label: v,
197
197
  maxLength: y,
198
198
  status: g,
199
- assistiveText: L
200
- } = this, W = {
199
+ assistiveText: _
200
+ } = this, E = {
201
201
  "c-textareaWrapper": !0,
202
202
  "c-textarea--disabled": e,
203
203
  "c-textarea--readonly": d,
@@ -205,25 +205,25 @@ const b = "pie-textarea", I = "assistive-text", _ = class _ extends U(X(M)) {
205
205
  [`c-textarea--resize-${a}`]: !0,
206
206
  [`c-textarea--${s}`]: !0
207
207
  };
208
- return E`<div>
208
+ return j`<div>
209
209
  ${this.renderLabel(v, y)}
210
210
  <div
211
- class="${G(W)}"
211
+ class="${G(E)}"
212
212
  data-test-id="pie-textarea-wrapper">
213
213
  <textarea
214
- id="${b}"
215
- data-test-id="${b}"
216
- name=${m(u)}
217
- autocomplete=${m(o)}
218
- placeholder=${m(p)}
214
+ id="${m}"
215
+ data-test-id="${m}"
216
+ name=${b(u)}
217
+ autocomplete=${b(o)}
218
+ placeholder=${b(p)}
219
219
  .value=${H(x)}
220
220
  ?autofocus=${h}
221
221
  ?readonly=${d}
222
222
  ?required=${k}
223
223
  ?disabled=${e}
224
- aria-describedby=${m(L ? I : void 0)}
224
+ aria-describedby=${b(_ ? I : void 0)}
225
225
  aria-invalid=${g === "error" ? "true" : "false"}
226
- aria-errormessage="${m(g === "error" ? I : void 0)}"
226
+ aria-errormessage="${b(g === "error" ? I : void 0)}"
227
227
  @input=${this.handleInput}
228
228
  @change=${this.handleChange}
229
229
  ></textarea>
@@ -232,8 +232,8 @@ const b = "pie-textarea", I = "assistive-text", _ = class _ extends U(X(M)) {
232
232
  </div>`;
233
233
  }
234
234
  };
235
- _.shadowRootOptions = { ...M.shadowRootOptions, delegatesFocus: !0 }, _.styles = P(me);
236
- let r = _;
235
+ W.shadowRootOptions = { ...M.shadowRootOptions, delegatesFocus: !0 }, W.styles = P(be);
236
+ let r = W;
237
237
  n([
238
238
  l({ type: String })
239
239
  ], r.prototype, "value");
@@ -245,11 +245,11 @@ n([
245
245
  ], r.prototype, "disabled");
246
246
  n([
247
247
  l({ type: String }),
248
- C(b, be, c.size)
248
+ C(m, me, c.size)
249
249
  ], r.prototype, "size");
250
250
  n([
251
251
  l({ type: String }),
252
- C(b, ye, c.resize)
252
+ C(m, ye, c.resize)
253
253
  ], r.prototype, "resize");
254
254
  n([
255
255
  l({ type: String })
@@ -268,7 +268,7 @@ n([
268
268
  ], r.prototype, "required");
269
269
  n([
270
270
  l({ type: String }),
271
- C(b, ze, c.status)
271
+ C(m, ze, c.status)
272
272
  ], r.prototype, "status");
273
273
  n([
274
274
  l({ type: String })
@@ -283,16 +283,16 @@ n([
283
283
  l({ type: String })
284
284
  ], r.prototype, "placeholder");
285
285
  n([
286
- D("textarea")
286
+ V("textarea")
287
287
  ], r.prototype, "_textarea");
288
288
  n([
289
- D("textarea")
289
+ V("textarea")
290
290
  ], r.prototype, "focusTarget");
291
- Q(b, r);
291
+ Q(m, r);
292
292
  export {
293
293
  r as PieTextarea,
294
294
  c as defaultProps,
295
295
  ye as resizeModes,
296
- be as sizes,
296
+ me as sizes,
297
297
  ze as statusTypes
298
298
  };
package/dist/react.d.ts CHANGED
@@ -73,8 +73,13 @@ declare class PieTextarea_2 extends PieTextarea_base implements TextareaProps, P
73
73
  private restrictInputLength;
74
74
  protected updated(changedProperties: PropertyValues<this>): void;
75
75
  /**
76
- * Handles data processing in response to the input event. The native input event is left to bubble up.
77
- * @param event - The input event.
76
+ * Handles input events and updates the component's value based on the input event or a provided new value.
77
+ *
78
+ * @param {InputEvent | null} event - The input event triggered by user interaction. If null, the `newValue` is used.
79
+ * @param {string} [newValue] - An optional new value to set if the event is not provided.
80
+ *
81
+ * @private
82
+ * @returns {void}
78
83
  */
79
84
  private handleInput;
80
85
  private handleChange;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@justeattakeaway/pie-textarea",
3
3
  "description": "PIE Design System Textarea built using Web Components",
4
- "version": "0.10.2",
4
+ "version": "0.11.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
package/src/index.ts CHANGED
@@ -145,8 +145,7 @@ export class PieTextarea extends FormControlMixin(RtlMixin(LitElement)) implemen
145
145
 
146
146
  protected updated (changedProperties: PropertyValues<this>) {
147
147
  if (changedProperties.has('value')) {
148
- this.restrictInputLength();
149
- this._internals.setFormValue(this.value);
148
+ this.handleInput(null, this.value);
150
149
  }
151
150
 
152
151
  if (this.resize === 'auto' && (changedProperties.has('resize') || changedProperties.has('size'))) {
@@ -155,11 +154,21 @@ export class PieTextarea extends FormControlMixin(RtlMixin(LitElement)) implemen
155
154
  }
156
155
 
157
156
  /**
158
- * Handles data processing in response to the input event. The native input event is left to bubble up.
159
- * @param event - The input event.
157
+ * Handles input events and updates the component's value based on the input event or a provided new value.
158
+ *
159
+ * @param {InputEvent | null} event - The input event triggered by user interaction. If null, the `newValue` is used.
160
+ * @param {string} [newValue] - An optional new value to set if the event is not provided.
161
+ *
162
+ * @private
163
+ * @returns {void}
160
164
  */
161
- private handleInput = (event: InputEvent) => {
162
- this.value = (event.target as HTMLTextAreaElement).value;
165
+ private handleInput = (event: InputEvent | null, newValue?: string) => {
166
+ if (event) {
167
+ this.value = (event.target as HTMLTextAreaElement).value;
168
+ } else if (newValue) {
169
+ this.value = newValue;
170
+ }
171
+
163
172
  this.restrictInputLength();
164
173
  this._internals.setFormValue(this.value);
165
174