@pittorica/text-area-react 0.25.0 → 0.26.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.
package/README.md CHANGED
@@ -4,16 +4,33 @@ The `TextArea` component.
4
4
 
5
5
  ## Installation
6
6
 
7
- ```bash
7
+ \`\`\`bash
8
8
  npm install @pittorica/text-area-react
9
- ```
9
+ \`\`\`
10
10
 
11
11
  ## Usage
12
12
 
13
- ```jsx
13
+ \`\`\`jsx
14
14
  import { TextArea } from '@pittorica/text-area-react';
15
- // TODO: Add usage example
16
- ```
15
+
16
+ function MyForm() {
17
+ return (
18
+
19
+ <form>
20
+ <TextArea.Root
21
+ label="Comments"
22
+ name="comments"
23
+ required // Mark as required
24
+ color="source" // Default color is now 'source'
25
+ size="sm"
26
+ helperText="Enter your feedback below." >
27
+ <TextArea.Content placeholder="Type your message here..." />
28
+ </TextArea.Root>
29
+ <button type="submit">Submit</button>
30
+ </form>
31
+ );
32
+ }
33
+ \`\`\`
17
34
 
18
35
  ## License
19
36
 
@@ -12,6 +12,7 @@ export type TextAreaRootProps<E extends ElementType = 'div'> = BoxProps<E> & {
12
12
  color?: PittoricaColor;
13
13
  disabled?: boolean;
14
14
  name?: string;
15
+ required?: boolean;
15
16
  /** @default 'sm' */
16
17
  size?: TextAreaSize;
17
18
  };
@@ -19,7 +20,7 @@ export type TextAreaRootProps<E extends ElementType = 'div'> = BoxProps<E> & {
19
20
  * Radix-like Outlined TextArea Root with support for multiple sizes.
20
21
  * Polymorphic and agnostic implementation.
21
22
  */
22
- export declare const TextAreaRoot: <E extends ElementType = "div">({ children, label, helperText, error, color, disabled, name, size, className, style, as, ...props }: TextAreaRootProps<E>) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const TextAreaRoot: <E extends ElementType = "div">({ children, label, helperText, error, color, disabled, name, required, size, className, style, as, ...props }: TextAreaRootProps<E>) => import("react/jsx-runtime").JSX.Element;
23
24
  export interface TextAreaContentProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
24
25
  /** Enables automatic vertical resizing based on content */
25
26
  autoResize?: boolean;
@@ -27,10 +28,10 @@ export interface TextAreaContentProps extends React.TextareaHTMLAttributes<HTMLT
27
28
  /**
28
29
  * Textarea element optimized for SSR and fluid interactions.
29
30
  */
30
- export declare const TextAreaContent: ({ className, autoResize, onChange, value, defaultValue, name: propsName, ...props }: TextAreaContentProps) => import("react/jsx-runtime").JSX.Element;
31
+ export declare const TextAreaContent: ({ className, autoResize, onChange, value, defaultValue, name: propsName, required, ...props }: TextAreaContentProps) => import("react/jsx-runtime").JSX.Element;
31
32
  export declare const TextArea: {
32
- Root: <E extends ElementType = "div">({ children, label, helperText, error, color, disabled, name, size, className, style, as, ...props }: TextAreaRootProps<E>) => import("react/jsx-runtime").JSX.Element;
33
- Content: ({ className, autoResize, onChange, value, defaultValue, name: propsName, ...props }: TextAreaContentProps) => import("react/jsx-runtime").JSX.Element;
33
+ Root: <E extends ElementType = "div">({ children, label, helperText, error, color, disabled, name, required, size, className, style, as, ...props }: TextAreaRootProps<E>) => import("react/jsx-runtime").JSX.Element;
34
+ Content: ({ className, autoResize, onChange, value, defaultValue, name: propsName, required, ...props }: TextAreaContentProps) => import("react/jsx-runtime").JSX.Element;
34
35
  };
35
36
  export {};
36
37
  //# sourceMappingURL=TextArea.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../src/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,KAAK,WAAW,EAChB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAqBrD;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAC3E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,qGAazD,iBAAiB,CAAC,CAAC,CAAC,4CA2DtB,CAAC;AAIF,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;IAC7F,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,qFAQ7B,oBAAoB,4CAkDtB,CAAC;AAEF,eAAO,MAAM,QAAQ;WAhJQ,CAAC,SAAS,WAAW,+GAa/C,iBAAiB,CAAC,CAAC,CAAC;mGA+EpB,oBAAoB;CAuDtB,CAAC"}
1
+ {"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../src/TextArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,KAAK,WAAW,EAChB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAsBrD;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAC3E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,GAAG,KAAK,EAAE,+GAczD,iBAAiB,CAAC,CAAC,CAAC,4CA6DtB,CAAC;AAIF,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;IAC7F,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,+FAS7B,oBAAoB,4CAmDtB,CAAC;AAEF,eAAO,MAAM,QAAQ;WArJQ,CAAC,SAAS,WAAW,yHAc/C,iBAAiB,CAAC,CAAC,CAAC;6GAkFpB,oBAAoB;CAwDtB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- export type { TextAreaContentProps, TextAreaRootProps } from './TextArea.js';
2
- export { TextArea, TextAreaContent, TextAreaRoot } from './TextArea.js';
1
+ export * from './TextArea.js';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- import { jsx as x, jsxs as q } from "react/jsx-runtime";
2
- import { createContext as D, useRef as G, useEffect as J, useId as R, use as K } from "react";
3
- function W(t) {
1
+ import { jsx as x, jsxs as j } from "react/jsx-runtime";
2
+ import { createContext as G, useRef as J, useEffect as K, useId as S, use as M } from "react";
3
+ function q(t) {
4
4
  var a, i, r = "";
5
5
  if (typeof t == "string" || typeof t == "number") r += t;
6
6
  else if (typeof t == "object") if (Array.isArray(t)) {
7
7
  var n = t.length;
8
- for (a = 0; a < n; a++) t[a] && (i = W(t[a])) && (r && (r += " "), r += i);
8
+ for (a = 0; a < n; a++) t[a] && (i = q(t[a])) && (r && (r += " "), r += i);
9
9
  } else for (i in t) t[i] && (r && (r += " "), r += i);
10
10
  return r;
11
11
  }
12
12
  function z() {
13
- for (var t, a, i = 0, r = "", n = arguments.length; i < n; i++) (t = arguments[i]) && (a = W(t)) && (r && (r += " "), r += a);
13
+ for (var t, a, i = 0, r = "", n = arguments.length; i < n; i++) (t = arguments[i]) && (a = q(t)) && (r && (r += " "), r += a);
14
14
  return r;
15
15
  }
16
16
  function C(t) {
@@ -22,7 +22,7 @@ function C(t) {
22
22
  } else for (i in t) t[i] && (r && (r += " "), r += i);
23
23
  return r;
24
24
  }
25
- function M() {
25
+ function O() {
26
26
  for (var t, a, i = 0, r = "", n = arguments.length; i < n; i++) (t = arguments[i]) && (a = C(t)) && (r && (r += " "), r += a);
27
27
  return r;
28
28
  }
@@ -32,17 +32,17 @@ const I = ({
32
32
  display: i,
33
33
  m: r,
34
34
  mt: n,
35
- mr: l,
35
+ mr: m,
36
36
  mb: o,
37
- ml: g,
37
+ ml: c,
38
38
  mx: p,
39
- my: c,
39
+ my: d,
40
40
  p: f,
41
- pt: m,
42
- pr: d,
43
- pb: h,
44
- pl: s,
45
- px: v,
41
+ pt: h,
42
+ pr: g,
43
+ pb: l,
44
+ pl: v,
45
+ px: s,
46
46
  py: u,
47
47
  width: $,
48
48
  height: y,
@@ -50,69 +50,71 @@ const I = ({
50
50
  style: T,
51
51
  className: A,
52
52
  disabled: w,
53
- ...N
53
+ required: N,
54
+ ...B
54
55
  }) => {
55
- const B = t || "div", e = {};
56
- i && (e.display = i), $ && (e.width = $), y && (e.height = y), b && (e.position = b), r && (e.margin = `var(--pittorica-space-${r})`), n && (e.marginTop = `var(--pittorica-space-${n})`), l && (e.marginRight = `var(--pittorica-space-${l})`), o && (e.marginBottom = `var(--pittorica-space-${o})`), g && (e.marginLeft = `var(--pittorica-space-${g})`), p && (e.marginLeft = `var(--pittorica-space-${p})`, e.marginRight = `var(--pittorica-space-${p})`), c && (e.marginTop = `var(--pittorica-space-${c})`, e.marginBottom = `var(--pittorica-space-${c})`), f && (e.padding = `var(--pittorica-space-${f})`), m && (e.paddingTop = `var(--pittorica-space-${m})`), d && (e.paddingRight = `var(--pittorica-space-${d})`), h && (e.paddingBottom = `var(--pittorica-space-${h})`), s && (e.paddingLeft = `var(--pittorica-space-${s})`), v && (e.paddingLeft = `var(--pittorica-space-${v})`, e.paddingRight = `var(--pittorica-space-${v})`), u && (e.paddingTop = `var(--pittorica-space-${u})`, e.paddingBottom = `var(--pittorica-space-${u})`);
57
- const L = {
56
+ const L = t || "div", e = {};
57
+ i && (e.display = i), $ && (e.width = $), y && (e.height = y), b && (e.position = b), r && (e.margin = `var(--pittorica-space-${r})`), n && (e.marginTop = `var(--pittorica-space-${n})`), m && (e.marginRight = `var(--pittorica-space-${m})`), o && (e.marginBottom = `var(--pittorica-space-${o})`), c && (e.marginLeft = `var(--pittorica-space-${c})`), p && (e.marginLeft = `var(--pittorica-space-${p})`, e.marginRight = `var(--pittorica-space-${p})`), d && (e.marginTop = `var(--pittorica-space-${d})`, e.marginBottom = `var(--pittorica-space-${d})`), f && (e.padding = `var(--pittorica-space-${f})`), h && (e.paddingTop = `var(--pittorica-space-${h})`), g && (e.paddingRight = `var(--pittorica-space-${g})`), l && (e.paddingBottom = `var(--pittorica-space-${l})`), v && (e.paddingLeft = `var(--pittorica-space-${v})`), s && (e.paddingLeft = `var(--pittorica-space-${s})`, e.paddingRight = `var(--pittorica-space-${s})`), u && (e.paddingTop = `var(--pittorica-space-${u})`, e.paddingBottom = `var(--pittorica-space-${u})`);
58
+ const R = {
58
59
  ...T,
59
60
  ...e
60
61
  };
61
62
  return /* @__PURE__ */ x(
62
- B,
63
+ L,
63
64
  {
64
- className: M("pittorica-box", A),
65
- style: L,
65
+ className: O("pittorica-box", A),
66
+ style: R,
66
67
  disabled: w,
67
- ...N,
68
+ required: N,
69
+ ...B,
68
70
  children: a
69
71
  }
70
72
  );
71
73
  };
72
74
  I.displayName = "Box";
73
- function S(t) {
75
+ function k(t) {
74
76
  var a, i, r = "";
75
77
  if (typeof t == "string" || typeof t == "number") r += t;
76
78
  else if (typeof t == "object") if (Array.isArray(t)) {
77
79
  var n = t.length;
78
- for (a = 0; a < n; a++) t[a] && (i = S(t[a])) && (r && (r += " "), r += i);
80
+ for (a = 0; a < n; a++) t[a] && (i = k(t[a])) && (r && (r += " "), r += i);
79
81
  } else for (i in t) t[i] && (r && (r += " "), r += i);
80
82
  return r;
81
83
  }
82
- function j() {
83
- for (var t, a, i = 0, r = "", n = arguments.length; i < n; i++) (t = arguments[i]) && (a = S(t)) && (r && (r += " "), r += a);
84
+ function W() {
85
+ for (var t, a, i = 0, r = "", n = arguments.length; i < n; i++) (t = arguments[i]) && (a = k(t)) && (r && (r += " "), r += a);
84
86
  return r;
85
87
  }
86
- function k(t) {
88
+ function E(t) {
87
89
  var a, i, r = "";
88
90
  if (typeof t == "string" || typeof t == "number") r += t;
89
91
  else if (typeof t == "object") if (Array.isArray(t)) {
90
92
  var n = t.length;
91
- for (a = 0; a < n; a++) t[a] && (i = k(t[a])) && (r && (r += " "), r += i);
93
+ for (a = 0; a < n; a++) t[a] && (i = E(t[a])) && (r && (r += " "), r += i);
92
94
  } else for (i in t) t[i] && (r && (r += " "), r += i);
93
95
  return r;
94
96
  }
95
- function O() {
96
- for (var t, a, i = 0, r = "", n = arguments.length; i < n; i++) (t = arguments[i]) && (a = k(t)) && (r && (r += " "), r += a);
97
+ function P() {
98
+ for (var t, a, i = 0, r = "", n = arguments.length; i < n; i++) (t = arguments[i]) && (a = E(t)) && (r && (r += " "), r += a);
97
99
  return r;
98
100
  }
99
- const E = ({
101
+ const H = ({
100
102
  as: t,
101
103
  children: a,
102
104
  display: i,
103
105
  m: r,
104
106
  mt: n,
105
- mr: l,
107
+ mr: m,
106
108
  mb: o,
107
- ml: g,
109
+ ml: c,
108
110
  mx: p,
109
- my: c,
111
+ my: d,
110
112
  p: f,
111
- pt: m,
112
- pr: d,
113
- pb: h,
114
- pl: s,
115
- px: v,
113
+ pt: h,
114
+ pr: g,
115
+ pb: l,
116
+ pl: v,
117
+ px: s,
116
118
  py: u,
117
119
  width: $,
118
120
  height: y,
@@ -120,39 +122,41 @@ const E = ({
120
122
  style: T,
121
123
  className: A,
122
124
  disabled: w,
123
- ...N
125
+ required: N,
126
+ ...B
124
127
  }) => {
125
- const B = t || "div", e = {};
126
- i && (e.display = i), $ && (e.width = $), y && (e.height = y), b && (e.position = b), r && (e.margin = `var(--pittorica-space-${r})`), n && (e.marginTop = `var(--pittorica-space-${n})`), l && (e.marginRight = `var(--pittorica-space-${l})`), o && (e.marginBottom = `var(--pittorica-space-${o})`), g && (e.marginLeft = `var(--pittorica-space-${g})`), p && (e.marginLeft = `var(--pittorica-space-${p})`, e.marginRight = `var(--pittorica-space-${p})`), c && (e.marginTop = `var(--pittorica-space-${c})`, e.marginBottom = `var(--pittorica-space-${c})`), f && (e.padding = `var(--pittorica-space-${f})`), m && (e.paddingTop = `var(--pittorica-space-${m})`), d && (e.paddingRight = `var(--pittorica-space-${d})`), h && (e.paddingBottom = `var(--pittorica-space-${h})`), s && (e.paddingLeft = `var(--pittorica-space-${s})`), v && (e.paddingLeft = `var(--pittorica-space-${v})`, e.paddingRight = `var(--pittorica-space-${v})`), u && (e.paddingTop = `var(--pittorica-space-${u})`, e.paddingBottom = `var(--pittorica-space-${u})`);
127
- const L = {
128
+ const L = t || "div", e = {};
129
+ i && (e.display = i), $ && (e.width = $), y && (e.height = y), b && (e.position = b), r && (e.margin = `var(--pittorica-space-${r})`), n && (e.marginTop = `var(--pittorica-space-${n})`), m && (e.marginRight = `var(--pittorica-space-${m})`), o && (e.marginBottom = `var(--pittorica-space-${o})`), c && (e.marginLeft = `var(--pittorica-space-${c})`), p && (e.marginLeft = `var(--pittorica-space-${p})`, e.marginRight = `var(--pittorica-space-${p})`), d && (e.marginTop = `var(--pittorica-space-${d})`, e.marginBottom = `var(--pittorica-space-${d})`), f && (e.padding = `var(--pittorica-space-${f})`), h && (e.paddingTop = `var(--pittorica-space-${h})`), g && (e.paddingRight = `var(--pittorica-space-${g})`), l && (e.paddingBottom = `var(--pittorica-space-${l})`), v && (e.paddingLeft = `var(--pittorica-space-${v})`), s && (e.paddingLeft = `var(--pittorica-space-${s})`, e.paddingRight = `var(--pittorica-space-${s})`), u && (e.paddingTop = `var(--pittorica-space-${u})`, e.paddingBottom = `var(--pittorica-space-${u})`);
130
+ const R = {
128
131
  ...T,
129
132
  ...e
130
133
  };
131
134
  return /* @__PURE__ */ x(
132
- B,
135
+ L,
133
136
  {
134
- className: O("pittorica-box", A),
135
- style: L,
137
+ className: P("pittorica-box", A),
138
+ style: R,
136
139
  disabled: w,
137
- ...N,
140
+ required: N,
141
+ ...B,
138
142
  children: a
139
143
  }
140
144
  );
141
145
  };
142
- E.displayName = "Box";
143
- const H = ({
146
+ H.displayName = "Box";
147
+ const F = ({
144
148
  children: t,
145
149
  as: a,
146
150
  size: i,
147
151
  weight: r = "regular",
148
152
  align: n,
149
- truncate: l = !1,
153
+ truncate: m = !1,
150
154
  color: o,
151
- className: g,
155
+ className: c,
152
156
  style: p,
153
- ...c
157
+ ...d
154
158
  }) => {
155
- const f = a || "span", m = (o == null ? void 0 : o.startsWith("#")) || (o == null ? void 0 : o.startsWith("rgb")) || (o == null ? void 0 : o.startsWith("hsl")), d = /* @__PURE__ */ new Set([
159
+ const f = a || "span", h = (o == null ? void 0 : o.startsWith("#")) || (o == null ? void 0 : o.startsWith("rgb")) || (o == null ? void 0 : o.startsWith("hsl")), g = /* @__PURE__ */ new Set([
156
160
  "danger",
157
161
  "success",
158
162
  "error",
@@ -164,150 +168,164 @@ const H = ({
164
168
  "slate",
165
169
  "blue",
166
170
  "red"
167
- ]), h = (() => {
171
+ ]), l = (() => {
168
172
  if (o)
169
- return o === "inherit" ? "inherit" : m ? o : d.has(o) ? `var(--pittorica-${o}-9)` : o;
170
- })(), s = i ? typeof i == "string" ? `pittorica-text--size-${i}` : j({
173
+ return o === "inherit" ? "inherit" : h ? o : g.has(o) ? `var(--pittorica-${o}-9)` : o;
174
+ })(), v = i ? typeof i == "string" ? `pittorica-text--size-${i}` : W({
171
175
  [`pittorica-text--size-${i.initial}`]: i.initial,
172
176
  [`pittorica-text--xs-size-${i.xs}`]: i.xs,
173
177
  [`pittorica-text--sm-size-${i.sm}`]: i.sm,
174
178
  [`pittorica-text--md-size-${i.md}`]: i.md,
175
179
  [`pittorica-text--lg-size-${i.lg}`]: i.lg,
176
180
  [`pittorica-text--xl-size-${i.xl}`]: i.xl
177
- }) : null, v = {
181
+ }) : null, s = {
178
182
  ...p,
179
183
  textAlign: n,
180
- color: h
184
+ color: l
181
185
  };
182
186
  return /* @__PURE__ */ x(
183
- E,
187
+ H,
184
188
  {
185
189
  as: f,
186
- className: j(
190
+ className: W(
187
191
  "pittorica-text",
188
- s,
189
- { "pittorica-text--truncate": l },
190
- g
192
+ v,
193
+ { "pittorica-text--truncate": m },
194
+ c
191
195
  ),
192
196
  "data-weight": r,
193
- style: v,
194
- ...c,
197
+ style: s,
198
+ ...d,
195
199
  children: t
196
200
  }
197
201
  );
198
202
  };
199
- H.displayName = "Text";
200
- const F = D(null), P = () => {
201
- const t = K(F);
203
+ F.displayName = "Text";
204
+ const D = G(null), Q = () => {
205
+ const t = M(D);
202
206
  if (!t)
203
207
  throw new Error("TextArea components must be wrapped in <TextArea.Root />");
204
208
  return t;
205
- }, Q = ({
209
+ }, U = ({
206
210
  children: t,
207
211
  label: a,
208
212
  helperText: i,
209
213
  error: r,
210
- color: n = "indigo",
211
- disabled: l,
214
+ color: n = "source",
215
+ disabled: m,
212
216
  name: o,
213
- size: g = "sm",
214
- className: p,
215
- style: c,
216
- as: f,
217
- ...m
217
+ required: c,
218
+ size: p = "sm",
219
+ className: d,
220
+ style: f,
221
+ as: h,
222
+ ...g
218
223
  }) => {
219
- const d = R(), h = R(), v = n !== "inherit" && !(n != null && n.startsWith("#")) && !(n != null && n.startsWith("rgb")) ? `var(--pittorica-${n}-9)` : n;
220
- return /* @__PURE__ */ x(F, { value: { inputId: d, helperId: h, disabled: l, size: g, name: o }, children: /* @__PURE__ */ q(
221
- I,
224
+ const l = S(), v = S(), u = n !== "inherit" && !(n != null && n.startsWith("#")) && !(n != null && n.startsWith("rgb")) ? `var(--pittorica-${n}-9)` : n;
225
+ return /* @__PURE__ */ x(
226
+ D,
222
227
  {
223
- as: f || "div",
224
- className: z(
225
- "pittorica-textarea-root",
226
- `pittorica-textarea--${g}`,
227
- p
228
- ),
229
- "data-error": r,
230
- ...m,
231
- children: [
232
- a && /* @__PURE__ */ x(
233
- H,
234
- {
235
- as: "label",
236
- htmlFor: d,
237
- weight: "medium",
238
- style: {
239
- paddingLeft: "4px",
240
- fontSize: "var(--pittorica-font-size-1)",
241
- marginBottom: "4px",
242
- display: "inline-block"
243
- },
244
- children: a
245
- }
246
- ),
247
- /* @__PURE__ */ x(
248
- "div",
249
- {
250
- className: "pittorica-textarea-wrapper",
251
- "data-disabled": l,
252
- style: {
253
- "--pittorica-source-color": v,
254
- ...c
255
- },
256
- children: t
257
- }
258
- ),
259
- i && /* @__PURE__ */ x("div", { id: h, className: "pittorica-textarea-helper", children: i })
260
- ]
228
+ value: { inputId: l, helperId: v, disabled: m, size: p, name: o, required: c },
229
+ children: /* @__PURE__ */ j(
230
+ I,
231
+ {
232
+ as: h || "div",
233
+ className: z(
234
+ "pittorica-textarea-root",
235
+ `pittorica-textarea--${p}`,
236
+ d
237
+ ),
238
+ "data-error": r,
239
+ ...g,
240
+ children: [
241
+ a && /* @__PURE__ */ j(
242
+ F,
243
+ {
244
+ as: "label",
245
+ htmlFor: l,
246
+ weight: "medium",
247
+ style: {
248
+ paddingLeft: "4px",
249
+ fontSize: "var(--pittorica-font-size-1)",
250
+ marginBottom: "4px",
251
+ display: "inline-block"
252
+ },
253
+ children: [
254
+ a,
255
+ " ",
256
+ c && /* @__PURE__ */ x("span", { "aria-hidden": "true", children: "*" })
257
+ ]
258
+ }
259
+ ),
260
+ /* @__PURE__ */ x(
261
+ "div",
262
+ {
263
+ className: "pittorica-textarea-wrapper",
264
+ "data-disabled": m,
265
+ style: {
266
+ "--pittorica-source-color": u,
267
+ ...f
268
+ },
269
+ children: t
270
+ }
271
+ ),
272
+ i && /* @__PURE__ */ x("div", { id: v, className: "pittorica-textarea-helper", children: i })
273
+ ]
274
+ }
275
+ )
261
276
  }
262
- ) });
263
- }, U = ({
277
+ );
278
+ }, X = ({
264
279
  className: t,
265
280
  autoResize: a = !1,
266
281
  onChange: i,
267
282
  value: r,
268
283
  defaultValue: n,
269
- name: l,
270
- ...o
284
+ name: m,
285
+ required: o,
286
+ // Add required prop here
287
+ ...c
271
288
  }) => {
272
289
  const {
273
- inputId: g,
274
- helperId: p,
275
- disabled: c,
276
- name: f
277
- } = P(), m = G(null), d = () => {
290
+ inputId: p,
291
+ helperId: d,
292
+ disabled: f,
293
+ name: h
294
+ } = Q(), g = J(null), l = () => {
278
295
  if (globalThis.window === void 0) return;
279
- const s = m.current;
296
+ const s = g.current;
280
297
  !s || !a || (s.style.height = "auto", s.style.height = `${s.scrollHeight}px`);
281
298
  };
282
- return J(() => {
283
- a && d();
299
+ return K(() => {
300
+ a && l();
284
301
  }, [r, n, a]), /* @__PURE__ */ x(
285
302
  "textarea",
286
303
  {
287
- name: l ?? f,
288
- ...o,
289
- id: g,
290
- ref: m,
304
+ name: m ?? h,
305
+ ...c,
306
+ id: p,
307
+ ref: g,
291
308
  value: r,
292
309
  defaultValue: n,
293
- disabled: c,
294
- "aria-describedby": p,
310
+ disabled: f,
311
+ required: o,
312
+ "aria-describedby": d,
295
313
  onChange: (s) => {
296
- a && d(), i == null || i(s);
314
+ a && l(), i == null || i(s);
297
315
  },
298
316
  className: z("pittorica-textarea-input", t),
299
317
  style: {
300
318
  overflow: a ? "hidden" : void 0,
301
- ...o.style
319
+ ...c.style
302
320
  }
303
321
  }
304
322
  );
305
- }, Z = {
306
- Root: Q,
307
- Content: U
323
+ }, _ = {
324
+ Root: U,
325
+ Content: X
308
326
  };
309
327
  export {
310
- Z as TextArea,
311
- U as TextAreaContent,
312
- Q as TextAreaRoot
328
+ _ as TextArea,
329
+ X as TextAreaContent,
330
+ U as TextAreaRoot
313
331
  };
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@pittorica/text-area-react",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
4
+ "homepage": "https://pittorica.dcdavidev.me",
4
5
  "type": "module",
5
6
  "main": "./dist/index.js",
6
7
  "module": "./dist/index.js",
@@ -10,8 +11,8 @@
10
11
  ],
11
12
  "dependencies": {
12
13
  "clsx": "^2.1.1",
13
- "@pittorica/text-react": "0.25.0",
14
- "@pittorica/box-react": "0.25.0"
14
+ "@pittorica/box-react": "0.26.0",
15
+ "@pittorica/text-react": "0.26.0"
15
16
  },
16
17
  "devDependencies": {
17
18
  "@testing-library/jest-dom": "^6.9.1",
@@ -21,11 +22,11 @@
21
22
  "@vitejs/plugin-react": "^4.0.0",
22
23
  "jsdom": "^22.0.0",
23
24
  "typescript": "^5.0.0",
24
- "vite": "^5.0.0",
25
- "vitest": "^2.1.9",
26
- "@pittorica/theme-react": "0.25.0",
27
- "@pittorica/flex-react": "0.25.0",
28
- "pittorica": "0.25.0"
25
+ "vite": "^6.4.1",
26
+ "vitest": "^3.2.4",
27
+ "@pittorica/flex-react": "0.26.0",
28
+ "@pittorica/theme-react": "0.26.0",
29
+ "pittorica": "0.26.0"
29
30
  },
30
31
  "peerDependencies": {
31
32
  "react": ">=19",
@@ -35,7 +36,7 @@
35
36
  "build": "npm run clean && npm run build:js && npm run build:types",
36
37
  "build:js": "vite build",
37
38
  "build:types": "tsc -p tsconfig.json",
38
- "clean": "rm -rf dist",
39
+ "clean": "rm -rf dist *.tsbuildinfo",
39
40
  "test": "vitest run",
40
41
  "test:watch": "vitest"
41
42
  }
@@ -1,5 +0,0 @@
1
- /**
2
- * @vitest-environment jsdom
3
- */
4
- import '@testing-library/jest-dom';
5
- //# sourceMappingURL=TeaxtArea.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TeaxtArea.test.d.ts","sourceRoot":"","sources":["../src/TeaxtArea.test.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,2BAA2B,CAAC"}
@@ -1,16 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { TextArea } from './TextArea.js';
3
- /**
4
- * Storybook configuration for Outlined TextArea.
5
- * Supports 5 compact sizes and auto-resizing logic.
6
- */
7
- declare const meta: Meta<typeof TextArea.Root>;
8
- export default meta;
9
- export declare const Basic: StoryObj<typeof TextArea.Root>;
10
- /**
11
- * Visualization of the 5 sizes scaling min-height and typography.
12
- */
13
- export declare const AllSizes: StoryObj<typeof TextArea.Root>;
14
- export declare const AutoResizing: StoryObj<typeof TextArea.Root>;
15
- export declare const States: StoryObj<typeof TextArea.Root>;
16
- //# sourceMappingURL=TextArea.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextArea.stories.d.ts","sourceRoot":"","sources":["../src/TextArea.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAAC,IAAI,CA0BpC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,QAAQ,CAAC,IAAI,CAchD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,QAAQ,CAAC,IAAI,CAoBnD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,QAAQ,CAAC,IAAI,CAgBvD,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,QAAQ,CAAC,IAAI,CAsBjD,CAAC"}