@uipath/apollo-wind 2.28.0 → 2.29.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.
@@ -15,7 +15,7 @@ var __webpack_modules__ = {
15
15
  "./avatar" (module) {
16
16
  module.exports = require("./avatar.cjs");
17
17
  },
18
- "@/components/ui/badge" (module) {
18
+ "./badge" (module) {
19
19
  module.exports = require("./badge.cjs");
20
20
  },
21
21
  "./breadcrumb" (module) {
@@ -30,13 +30,13 @@ var __webpack_modules__ = {
30
30
  "./calendar" (module) {
31
31
  module.exports = require("./calendar.cjs");
32
32
  },
33
- "@/components/ui/card" (module) {
33
+ "./card" (module) {
34
34
  module.exports = require("./card.cjs");
35
35
  },
36
- "@/components/ui/checkbox" (module) {
36
+ "./checkbox" (module) {
37
37
  module.exports = require("./checkbox.cjs");
38
38
  },
39
- "@/components/ui/collapsible" (module) {
39
+ "./collapsible" (module) {
40
40
  module.exports = require("./collapsible.cjs");
41
41
  },
42
42
  "./combobox" (module) {
@@ -45,7 +45,7 @@ var __webpack_modules__ = {
45
45
  "@/components/ui/command" (module) {
46
46
  module.exports = require("./command.cjs");
47
47
  },
48
- "@/components/ui/context-menu" (module) {
48
+ "./context-menu" (module) {
49
49
  module.exports = require("./context-menu.cjs");
50
50
  },
51
51
  "./data-table" (module) {
@@ -60,10 +60,10 @@ var __webpack_modules__ = {
60
60
  "./dialog" (module) {
61
61
  module.exports = require("./dialog.cjs");
62
62
  },
63
- "@/components/ui/dropdown-menu" (module) {
63
+ "./dropdown-menu" (module) {
64
64
  module.exports = require("./dropdown-menu.cjs");
65
65
  },
66
- "@/components/ui/editable-cell" (module) {
66
+ "./editable-cell" (module) {
67
67
  module.exports = require("./editable-cell.cjs");
68
68
  },
69
69
  "./empty-state" (module) {
@@ -72,16 +72,16 @@ var __webpack_modules__ = {
72
72
  "./file-upload" (module) {
73
73
  module.exports = require("./file-upload.cjs");
74
74
  },
75
- "@/components/ui/hover-card" (module) {
75
+ "./hover-card" (module) {
76
76
  module.exports = require("./hover-card.cjs");
77
77
  },
78
78
  "@/components/ui/input-group" (module) {
79
79
  module.exports = require("./input-group.cjs");
80
80
  },
81
- "@/components/ui/input" (module) {
81
+ "./input" (module) {
82
82
  module.exports = require("./input.cjs");
83
83
  },
84
- "@/components/ui/label" (module) {
84
+ "./label" (module) {
85
85
  module.exports = require("./label.cjs");
86
86
  },
87
87
  "./layout" (module) {
@@ -150,13 +150,13 @@ var __webpack_modules__ = {
150
150
  "./tabs" (module) {
151
151
  module.exports = require("./tabs.cjs");
152
152
  },
153
- "./textarea" (module) {
153
+ "@/components/ui/textarea" (module) {
154
154
  module.exports = require("./textarea.cjs");
155
155
  },
156
156
  "./toggle-group" (module) {
157
157
  module.exports = require("./toggle-group.cjs");
158
158
  },
159
- "./toggle" (module) {
159
+ "@/components/ui/toggle" (module) {
160
160
  module.exports = require("./toggle.cjs");
161
161
  },
162
162
  "./tooltip" (module) {
@@ -247,7 +247,7 @@ var __webpack_exports__ = {};
247
247
  "default"
248
248
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_avatar__rspack_import_4[__rspack_import_key];
249
249
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
250
- var _badge__rspack_import_5 = __webpack_require__("@/components/ui/badge");
250
+ var _badge__rspack_import_5 = __webpack_require__("./badge");
251
251
  var __rspack_reexport = {};
252
252
  for(const __rspack_import_key in _badge__rspack_import_5)if ([
253
253
  "TreeView",
@@ -282,21 +282,21 @@ var __webpack_exports__ = {};
282
282
  "default"
283
283
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_calendar__rspack_import_9[__rspack_import_key];
284
284
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
285
- var _card__rspack_import_10 = __webpack_require__("@/components/ui/card");
285
+ var _card__rspack_import_10 = __webpack_require__("./card");
286
286
  var __rspack_reexport = {};
287
287
  for(const __rspack_import_key in _card__rspack_import_10)if ([
288
288
  "TreeView",
289
289
  "default"
290
290
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_card__rspack_import_10[__rspack_import_key];
291
291
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
292
- var _checkbox__rspack_import_11 = __webpack_require__("@/components/ui/checkbox");
292
+ var _checkbox__rspack_import_11 = __webpack_require__("./checkbox");
293
293
  var __rspack_reexport = {};
294
294
  for(const __rspack_import_key in _checkbox__rspack_import_11)if ([
295
295
  "TreeView",
296
296
  "default"
297
297
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_checkbox__rspack_import_11[__rspack_import_key];
298
298
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
299
- var _collapsible__rspack_import_12 = __webpack_require__("@/components/ui/collapsible");
299
+ var _collapsible__rspack_import_12 = __webpack_require__("./collapsible");
300
300
  var __rspack_reexport = {};
301
301
  for(const __rspack_import_key in _collapsible__rspack_import_12)if ([
302
302
  "TreeView",
@@ -317,7 +317,7 @@ var __webpack_exports__ = {};
317
317
  "default"
318
318
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_command__rspack_import_14[__rspack_import_key];
319
319
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
320
- var _context_menu__rspack_import_15 = __webpack_require__("@/components/ui/context-menu");
320
+ var _context_menu__rspack_import_15 = __webpack_require__("./context-menu");
321
321
  var __rspack_reexport = {};
322
322
  for(const __rspack_import_key in _context_menu__rspack_import_15)if ([
323
323
  "TreeView",
@@ -352,14 +352,14 @@ var __webpack_exports__ = {};
352
352
  "default"
353
353
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_dialog__rspack_import_19[__rspack_import_key];
354
354
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
355
- var _dropdown_menu__rspack_import_20 = __webpack_require__("@/components/ui/dropdown-menu");
355
+ var _dropdown_menu__rspack_import_20 = __webpack_require__("./dropdown-menu");
356
356
  var __rspack_reexport = {};
357
357
  for(const __rspack_import_key in _dropdown_menu__rspack_import_20)if ([
358
358
  "TreeView",
359
359
  "default"
360
360
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_dropdown_menu__rspack_import_20[__rspack_import_key];
361
361
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
362
- var _editable_cell__rspack_import_21 = __webpack_require__("@/components/ui/editable-cell");
362
+ var _editable_cell__rspack_import_21 = __webpack_require__("./editable-cell");
363
363
  var __rspack_reexport = {};
364
364
  for(const __rspack_import_key in _editable_cell__rspack_import_21)if ([
365
365
  "TreeView",
@@ -380,14 +380,14 @@ var __webpack_exports__ = {};
380
380
  "default"
381
381
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_file_upload__rspack_import_23[__rspack_import_key];
382
382
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
383
- var _hover_card__rspack_import_24 = __webpack_require__("@/components/ui/hover-card");
383
+ var _hover_card__rspack_import_24 = __webpack_require__("./hover-card");
384
384
  var __rspack_reexport = {};
385
385
  for(const __rspack_import_key in _hover_card__rspack_import_24)if ([
386
386
  "TreeView",
387
387
  "default"
388
388
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_hover_card__rspack_import_24[__rspack_import_key];
389
389
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
390
- var _input__rspack_import_25 = __webpack_require__("@/components/ui/input");
390
+ var _input__rspack_import_25 = __webpack_require__("./input");
391
391
  var __rspack_reexport = {};
392
392
  for(const __rspack_import_key in _input__rspack_import_25)if ([
393
393
  "TreeView",
@@ -401,7 +401,7 @@ var __webpack_exports__ = {};
401
401
  "default"
402
402
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_input_group__rspack_import_26[__rspack_import_key];
403
403
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
404
- var _label__rspack_import_27 = __webpack_require__("@/components/ui/label");
404
+ var _label__rspack_import_27 = __webpack_require__("./label");
405
405
  var __rspack_reexport = {};
406
406
  for(const __rspack_import_key in _label__rspack_import_27)if ([
407
407
  "TreeView",
@@ -562,14 +562,14 @@ var __webpack_exports__ = {};
562
562
  "default"
563
563
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_tabs__rspack_import_49[__rspack_import_key];
564
564
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
565
- var _textarea__rspack_import_50 = __webpack_require__("./textarea");
565
+ var _textarea__rspack_import_50 = __webpack_require__("@/components/ui/textarea");
566
566
  var __rspack_reexport = {};
567
567
  for(const __rspack_import_key in _textarea__rspack_import_50)if ([
568
568
  "TreeView",
569
569
  "default"
570
570
  ].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_textarea__rspack_import_50[__rspack_import_key];
571
571
  __webpack_require__.d(__webpack_exports__, __rspack_reexport);
572
- var _toggle__rspack_import_51 = __webpack_require__("./toggle");
572
+ var _toggle__rspack_import_51 = __webpack_require__("@/components/ui/toggle");
573
573
  var __rspack_reexport = {};
574
574
  for(const __rspack_import_key in _toggle__rspack_import_51)if ([
575
575
  "TreeView",
@@ -29,11 +29,135 @@ __webpack_require__.d(__webpack_exports__, {
29
29
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
30
30
  const external_react_namespaceObject = require("react");
31
31
  const index_cjs_namespaceObject = require("../../lib/index.cjs");
32
- const Textarea = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("textarea", {
33
- className: (0, index_cjs_namespaceObject.cn)('flex min-h-[80px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'future:rounded-xl future:border-0 future:bg-surface-overlay future:text-sm future:placeholder:text-foreground-muted future:placeholder:font-normal future:focus-visible:ring-offset-2 future:focus-visible:ring-offset-background', className),
34
- ref: ref,
32
+ function normalizeRows(value) {
33
+ if (void 0 === value || !Number.isFinite(value)) return;
34
+ return Math.max(1, Math.floor(value));
35
+ }
36
+ function measureRowMetrics(el) {
37
+ const styles = window.getComputedStyle(el);
38
+ const lineHeight = parseFloat(styles.lineHeight) || 1.2 * parseFloat(styles.fontSize) || 20;
39
+ const padding = parseFloat(styles.paddingTop) + parseFloat(styles.paddingBottom) || 0;
40
+ const border = parseFloat(styles.borderTopWidth) + parseFloat(styles.borderBottomWidth) || 0;
41
+ return {
42
+ lineHeight,
43
+ padding,
44
+ border,
45
+ borderBox: 'border-box' === styles.boxSizing
46
+ };
47
+ }
48
+ function cssLength(value) {
49
+ if (null == value) return '';
50
+ return 'number' == typeof value ? `${value}px` : String(value);
51
+ }
52
+ const Textarea = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, minRows, maxRows, onChange, style, ...props }, ref)=>{
53
+ const { effMinRows, effMaxRows } = external_react_namespaceObject.useMemo(()=>{
54
+ const nMin = normalizeRows(minRows);
55
+ const nMax = normalizeRows(maxRows);
56
+ return {
57
+ effMinRows: void 0 !== nMin && void 0 !== nMax ? Math.min(nMin, nMax) : nMin,
58
+ effMaxRows: nMax
59
+ };
60
+ }, [
61
+ minRows,
62
+ maxRows
63
+ ]);
64
+ const managed = void 0 !== effMinRows || void 0 !== effMaxRows;
65
+ const innerRef = external_react_namespaceObject.useRef(null);
66
+ const manuallyResized = external_react_namespaceObject.useRef(false);
67
+ const styleRef = external_react_namespaceObject.useRef(style);
68
+ styleRef.current = style;
69
+ const setRef = external_react_namespaceObject.useCallback((node)=>{
70
+ innerRef.current = node;
71
+ if ('function' == typeof ref) ref(node);
72
+ else if (ref) ref.current = node;
73
+ }, [
74
+ ref
75
+ ]);
76
+ const restoreOwnedStyles = external_react_namespaceObject.useCallback((el)=>{
77
+ const consumer = styleRef.current;
78
+ el.style.height = cssLength(consumer?.height);
79
+ el.style.minHeight = cssLength(consumer?.minHeight);
80
+ el.style.overflowY = cssLength(consumer?.overflowY);
81
+ }, []);
82
+ const resize = external_react_namespaceObject.useCallback(()=>{
83
+ const el = innerRef.current;
84
+ if (!el || !managed) return;
85
+ const { lineHeight, padding, border, borderBox } = measureRowMetrics(el);
86
+ const extra = borderBox ? padding + border : 0;
87
+ const minHeight = void 0 !== effMinRows ? effMinRows * lineHeight + extra : 0;
88
+ el.style.minHeight = void 0 !== effMinRows ? `${minHeight}px` : cssLength(styleRef.current?.minHeight);
89
+ if (void 0 === effMaxRows || manuallyResized.current) return;
90
+ const maxHeight = effMaxRows * lineHeight + extra;
91
+ el.style.height = 'auto';
92
+ const contentNeeded = borderBox ? el.scrollHeight + border : Math.max(0, el.scrollHeight - padding);
93
+ const target = Math.min(Math.max(contentNeeded, minHeight), maxHeight);
94
+ el.style.height = `${target}px`;
95
+ el.style.overflowY = contentNeeded > maxHeight ? 'auto' : 'hidden';
96
+ }, [
97
+ managed,
98
+ effMinRows,
99
+ effMaxRows
100
+ ]);
101
+ external_react_namespaceObject.useLayoutEffect(()=>{
102
+ resize();
103
+ }, [
104
+ resize,
105
+ props.value,
106
+ props.defaultValue
107
+ ]);
108
+ external_react_namespaceObject.useLayoutEffect(()=>{
109
+ manuallyResized.current = false;
110
+ const el = innerRef.current;
111
+ if (!el) return;
112
+ if (!managed) return void restoreOwnedStyles(el);
113
+ if (void 0 === effMaxRows) {
114
+ el.style.height = cssLength(styleRef.current?.height);
115
+ el.style.overflowY = cssLength(styleRef.current?.overflowY);
116
+ }
117
+ resize();
118
+ }, [
119
+ managed,
120
+ effMaxRows,
121
+ resize,
122
+ restoreOwnedStyles
123
+ ]);
124
+ external_react_namespaceObject.useLayoutEffect(()=>{
125
+ const el = innerRef.current;
126
+ if (!el || !managed || "u" < typeof ResizeObserver) return;
127
+ let lastWidth = el.clientWidth;
128
+ const observer = new ResizeObserver(()=>{
129
+ const width = el.clientWidth;
130
+ if (width !== lastWidth) {
131
+ lastWidth = width;
132
+ resize();
133
+ return;
134
+ }
135
+ if (void 0 === effMaxRows || manuallyResized.current) return;
136
+ const { lineHeight, padding, border, borderBox } = measureRowMetrics(el);
137
+ const maxHeight = effMaxRows * lineHeight + (borderBox ? padding + border : 0);
138
+ if (el.offsetHeight > maxHeight + 1) {
139
+ manuallyResized.current = true;
140
+ el.style.overflowY = cssLength(styleRef.current?.overflowY) || 'auto';
141
+ }
142
+ });
143
+ observer.observe(el);
144
+ return ()=>observer.disconnect();
145
+ }, [
146
+ managed,
147
+ effMaxRows,
148
+ resize
149
+ ]);
150
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("textarea", {
151
+ className: (0, index_cjs_namespaceObject.cn)('flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-base transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'future:rounded-xl future:border-0 future:bg-surface-overlay future:text-sm future:placeholder:text-foreground-muted future:placeholder:font-normal future:focus-visible:ring-offset-2 future:focus-visible:ring-offset-background', !managed && 'min-h-[80px]', managed && 'resize-y', className),
152
+ ref: setRef,
153
+ style: style,
154
+ onChange: (event)=>{
155
+ onChange?.(event);
156
+ resize();
157
+ },
35
158
  ...props
36
- }));
159
+ });
160
+ });
37
161
  Textarea.displayName = 'Textarea';
38
162
  exports.Textarea = __webpack_exports__.Textarea;
39
163
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -1,4 +1,14 @@
1
1
  import * as React from 'react';
2
- export type TextareaProps = React.ComponentProps<'textarea'>;
3
- declare const Textarea: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
2
+ export type TextareaProps = React.ComponentProps<'textarea'> & {
3
+ /**
4
+ * Minimum number of visible rows.
5
+ */
6
+ minRows?: number;
7
+ /**
8
+ * Enables auto-grow and sets the ceiling, in rows. The field grows with its content
9
+ * up to `maxRows`, then scrolls.
10
+ */
11
+ maxRows?: number;
12
+ };
13
+ declare const Textarea: React.ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
4
14
  export { Textarea };
@@ -1,10 +1,134 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
2
+ import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef } from "react";
3
3
  import { cn } from "../../lib/index.js";
4
- const Textarea = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("textarea", {
5
- className: cn('flex min-h-[80px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'future:rounded-xl future:border-0 future:bg-surface-overlay future:text-sm future:placeholder:text-foreground-muted future:placeholder:font-normal future:focus-visible:ring-offset-2 future:focus-visible:ring-offset-background', className),
6
- ref: ref,
4
+ function normalizeRows(value) {
5
+ if (void 0 === value || !Number.isFinite(value)) return;
6
+ return Math.max(1, Math.floor(value));
7
+ }
8
+ function measureRowMetrics(el) {
9
+ const styles = window.getComputedStyle(el);
10
+ const lineHeight = parseFloat(styles.lineHeight) || 1.2 * parseFloat(styles.fontSize) || 20;
11
+ const padding = parseFloat(styles.paddingTop) + parseFloat(styles.paddingBottom) || 0;
12
+ const border = parseFloat(styles.borderTopWidth) + parseFloat(styles.borderBottomWidth) || 0;
13
+ return {
14
+ lineHeight,
15
+ padding,
16
+ border,
17
+ borderBox: 'border-box' === styles.boxSizing
18
+ };
19
+ }
20
+ function cssLength(value) {
21
+ if (null == value) return '';
22
+ return 'number' == typeof value ? `${value}px` : String(value);
23
+ }
24
+ const Textarea = /*#__PURE__*/ forwardRef(({ className, minRows, maxRows, onChange, style, ...props }, ref)=>{
25
+ const { effMinRows, effMaxRows } = useMemo(()=>{
26
+ const nMin = normalizeRows(minRows);
27
+ const nMax = normalizeRows(maxRows);
28
+ return {
29
+ effMinRows: void 0 !== nMin && void 0 !== nMax ? Math.min(nMin, nMax) : nMin,
30
+ effMaxRows: nMax
31
+ };
32
+ }, [
33
+ minRows,
34
+ maxRows
35
+ ]);
36
+ const managed = void 0 !== effMinRows || void 0 !== effMaxRows;
37
+ const innerRef = useRef(null);
38
+ const manuallyResized = useRef(false);
39
+ const styleRef = useRef(style);
40
+ styleRef.current = style;
41
+ const setRef = useCallback((node)=>{
42
+ innerRef.current = node;
43
+ if ('function' == typeof ref) ref(node);
44
+ else if (ref) ref.current = node;
45
+ }, [
46
+ ref
47
+ ]);
48
+ const restoreOwnedStyles = useCallback((el)=>{
49
+ const consumer = styleRef.current;
50
+ el.style.height = cssLength(consumer?.height);
51
+ el.style.minHeight = cssLength(consumer?.minHeight);
52
+ el.style.overflowY = cssLength(consumer?.overflowY);
53
+ }, []);
54
+ const resize = useCallback(()=>{
55
+ const el = innerRef.current;
56
+ if (!el || !managed) return;
57
+ const { lineHeight, padding, border, borderBox } = measureRowMetrics(el);
58
+ const extra = borderBox ? padding + border : 0;
59
+ const minHeight = void 0 !== effMinRows ? effMinRows * lineHeight + extra : 0;
60
+ el.style.minHeight = void 0 !== effMinRows ? `${minHeight}px` : cssLength(styleRef.current?.minHeight);
61
+ if (void 0 === effMaxRows || manuallyResized.current) return;
62
+ const maxHeight = effMaxRows * lineHeight + extra;
63
+ el.style.height = 'auto';
64
+ const contentNeeded = borderBox ? el.scrollHeight + border : Math.max(0, el.scrollHeight - padding);
65
+ const target = Math.min(Math.max(contentNeeded, minHeight), maxHeight);
66
+ el.style.height = `${target}px`;
67
+ el.style.overflowY = contentNeeded > maxHeight ? 'auto' : 'hidden';
68
+ }, [
69
+ managed,
70
+ effMinRows,
71
+ effMaxRows
72
+ ]);
73
+ useLayoutEffect(()=>{
74
+ resize();
75
+ }, [
76
+ resize,
77
+ props.value,
78
+ props.defaultValue
79
+ ]);
80
+ useLayoutEffect(()=>{
81
+ manuallyResized.current = false;
82
+ const el = innerRef.current;
83
+ if (!el) return;
84
+ if (!managed) return void restoreOwnedStyles(el);
85
+ if (void 0 === effMaxRows) {
86
+ el.style.height = cssLength(styleRef.current?.height);
87
+ el.style.overflowY = cssLength(styleRef.current?.overflowY);
88
+ }
89
+ resize();
90
+ }, [
91
+ managed,
92
+ effMaxRows,
93
+ resize,
94
+ restoreOwnedStyles
95
+ ]);
96
+ useLayoutEffect(()=>{
97
+ const el = innerRef.current;
98
+ if (!el || !managed || "u" < typeof ResizeObserver) return;
99
+ let lastWidth = el.clientWidth;
100
+ const observer = new ResizeObserver(()=>{
101
+ const width = el.clientWidth;
102
+ if (width !== lastWidth) {
103
+ lastWidth = width;
104
+ resize();
105
+ return;
106
+ }
107
+ if (void 0 === effMaxRows || manuallyResized.current) return;
108
+ const { lineHeight, padding, border, borderBox } = measureRowMetrics(el);
109
+ const maxHeight = effMaxRows * lineHeight + (borderBox ? padding + border : 0);
110
+ if (el.offsetHeight > maxHeight + 1) {
111
+ manuallyResized.current = true;
112
+ el.style.overflowY = cssLength(styleRef.current?.overflowY) || 'auto';
113
+ }
114
+ });
115
+ observer.observe(el);
116
+ return ()=>observer.disconnect();
117
+ }, [
118
+ managed,
119
+ effMaxRows,
120
+ resize
121
+ ]);
122
+ return /*#__PURE__*/ jsx("textarea", {
123
+ className: cn('flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-base transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', 'future:rounded-xl future:border-0 future:bg-surface-overlay future:text-sm future:placeholder:text-foreground-muted future:placeholder:font-normal future:focus-visible:ring-offset-2 future:focus-visible:ring-offset-background', !managed && 'min-h-[80px]', managed && 'resize-y', className),
124
+ ref: setRef,
125
+ style: style,
126
+ onChange: (event)=>{
127
+ onChange?.(event);
128
+ resize();
129
+ },
7
130
  ...props
8
- }));
131
+ });
132
+ });
9
133
  Textarea.displayName = 'Textarea';
10
134
  export { Textarea };
package/dist/styles.css CHANGED
@@ -1665,6 +1665,9 @@
1665
1665
  .resize-none {
1666
1666
  resize: none;
1667
1667
  }
1668
+ .resize-y {
1669
+ resize: vertical;
1670
+ }
1668
1671
  .list-inside {
1669
1672
  list-style-position: inside;
1670
1673
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/apollo-wind",
3
- "version": "2.28.0",
3
+ "version": "2.29.0",
4
4
  "description": "UiPath wind design system - A Tailwind CSS based React component library",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",