@plasmicpkgs/react-aria 0.0.145 → 0.0.147

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.
@@ -5,6 +5,8 @@ import { WithVariants } from "./variant-utils";
5
5
  declare const TEXTAREA_VARIANTS: ("disabled" | "hovered" | "focused" | "focusVisible")[];
6
6
  export interface BaseTextAreaProps extends Omit<TextAreaProps, "className">, HasControlContextData, WithVariants<typeof TEXTAREA_VARIANTS> {
7
7
  className?: string;
8
+ resize?: string;
9
+ autoResize?: boolean;
8
10
  }
9
11
  export declare const inputHelpers: {
10
12
  states: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/react-aria",
3
- "version": "0.0.145",
3
+ "version": "0.0.147",
4
4
  "description": "Plasmic registration calls for react-aria based components",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -74,5 +74,5 @@
74
74
  "publishConfig": {
75
75
  "access": "public"
76
76
  },
77
- "gitHead": "131a98acb89746cee78ad0b55691e53bc673de8d"
77
+ "gitHead": "bb2b47af55bf72c0bdee073585b83623955bb804"
78
78
  }
@@ -66,12 +66,16 @@ function BaseTextArea_(props, ref) {
66
66
  className,
67
67
  plasmicUpdateVariant,
68
68
  setControlContextData,
69
- value
69
+ value,
70
+ resize,
71
+ autoResize
70
72
  } = _a, restProps = __objRest(_a, [
71
73
  "className",
72
74
  "plasmicUpdateVariant",
73
75
  "setControlContextData",
74
- "value"
76
+ "value",
77
+ "resize",
78
+ "autoResize"
75
79
  ]);
76
80
  const textFieldContext = React__default.default.useContext(contexts.PlasmicTextFieldContext);
77
81
  const [textAreaContextProps, textAreaRef] = reactAriaComponents.useContextProps(
@@ -90,7 +94,7 @@ function BaseTextArea_(props, ref) {
90
94
  hoverProps,
91
95
  {
92
96
  value: utils.isDefined(textFieldContext) ? void 0 : value,
93
- style: common.COMMON_STYLES,
97
+ style: __spreadValues(__spreadValues({}, common.COMMON_STYLES), autoResize ? { resize: "none" } : resize ? { resize } : {}),
94
98
  className
95
99
  }
96
100
  );
@@ -99,6 +103,13 @@ function BaseTextArea_(props, ref) {
99
103
  setControlContextData == null ? void 0 : setControlContextData({
100
104
  parent: textFieldContext
101
105
  });
106
+ React__default.default.useEffect(() => {
107
+ const el = textAreaRef.current;
108
+ if (autoResize && el) {
109
+ el.style.height = "auto";
110
+ el.style.height = `${el.scrollHeight}px`;
111
+ }
112
+ }, [mergedProps.value]);
102
113
  React.useEffect(() => {
103
114
  if (plasmicUpdateVariant) {
104
115
  plasmicUpdateVariant({
@@ -132,7 +143,7 @@ function registerTextArea(loader, overrides) {
132
143
  importPath: "@plasmicpkgs/react-aria/skinny/registerTextArea",
133
144
  importName: "BaseTextArea",
134
145
  variants,
135
- props: __spreadValues({}, common.getCommonProps("Text Area", [
146
+ props: __spreadProps(__spreadValues({}, common.getCommonProps("Text Area", [
136
147
  "name",
137
148
  "disabled",
138
149
  "readOnly",
@@ -158,7 +169,29 @@ function registerTextArea(loader, overrides) {
158
169
  "onSelect",
159
170
  "onBeforeInput",
160
171
  "onInput"
161
- ])),
172
+ ])), {
173
+ autoResize: {
174
+ type: "boolean",
175
+ displayName: "Auto resize",
176
+ defaultValueHint: false,
177
+ description: "Grows or shrinks the element automatically based on text content. Disables manual resizing."
178
+ },
179
+ resize: {
180
+ type: "choice",
181
+ description: "Controls if and how the element can be resized.",
182
+ options: [
183
+ "both",
184
+ "horizontal",
185
+ "vertical",
186
+ "block",
187
+ "inline",
188
+ "none"
189
+ ],
190
+ defaultValueHint: "both",
191
+ hidden: (props) => Boolean(props.autoResize),
192
+ advanced: true
193
+ }
194
+ }),
162
195
  states: {
163
196
  value: __spreadValues({
164
197
  type: "writable",
@@ -1 +1 @@
1
- {"version":3,"file":"registerTextArea.cjs.js","sources":["../src/registerTextArea.tsx"],"sourcesContent":["import React, { ChangeEvent, ForwardedRef, useEffect } from \"react\";\nimport { mergeProps, useFocusRing, useHover } from \"react-aria\";\nimport {\n TextAreaContext,\n TextAreaProps,\n useContextProps,\n} from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps } from \"./common\";\nimport { PlasmicTextFieldContext } from \"./contexts\";\nimport {\n CodeComponentMetaOverrides,\n filterHoverProps,\n HasControlContextData,\n isDefined,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nconst TEXTAREA_VARIANTS = [\n \"focused\" as const,\n \"focusVisible\" as const,\n \"hovered\" as const,\n \"disabled\" as const,\n];\n\nconst { variants } = pickAriaComponentVariants(TEXTAREA_VARIANTS);\n\nexport interface BaseTextAreaProps\n extends Omit<TextAreaProps, \"className\">,\n HasControlContextData,\n WithVariants<typeof TEXTAREA_VARIANTS> {\n className?: string;\n}\n\nexport const inputHelpers = {\n states: {\n value: {\n onChangeArgsToValue: (e: ChangeEvent<HTMLInputElement>) => {\n return e.target.value;\n },\n },\n },\n};\n\nfunction BaseTextArea_(\n props: BaseTextAreaProps,\n ref: ForwardedRef<HTMLTextAreaElement>\n) {\n const {\n className,\n plasmicUpdateVariant,\n setControlContextData,\n value,\n ...restProps\n } = props;\n\n const textFieldContext = React.useContext(PlasmicTextFieldContext);\n const [textAreaContextProps, textAreaRef] = useContextProps(\n restProps,\n ref,\n TextAreaContext\n );\n\n const { hoverProps, isHovered } = useHover(textAreaContextProps);\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n isTextInput: true,\n autoFocus: textAreaContextProps.autoFocus,\n });\n\n const mergedProps = mergeProps(\n filterHoverProps(textAreaContextProps),\n focusProps,\n hoverProps,\n {\n value: isDefined(textFieldContext) ? undefined : value,\n style: COMMON_STYLES,\n className,\n }\n );\n\n const isDisabled = mergedProps.disabled || false;\n const isInvalid =\n !!mergedProps[\"aria-invalid\"] && mergedProps[\"aria-invalid\"] !== \"false\";\n\n setControlContextData?.({\n parent: textFieldContext,\n });\n\n useEffect(() => {\n if (plasmicUpdateVariant) {\n plasmicUpdateVariant({\n disabled: isDisabled,\n focused: isFocused,\n focusVisible: isFocusVisible,\n hovered: isHovered,\n });\n }\n }, [isFocused, isFocusVisible, isHovered, isDisabled, plasmicUpdateVariant]);\n\n return (\n <textarea\n {...mergedProps}\n ref={textAreaRef}\n data-focused={isFocused || undefined}\n data-disabled={isDisabled || undefined}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-invalid={isInvalid || undefined}\n />\n );\n}\n\nexport const BaseTextArea = React.forwardRef(BaseTextArea_);\n\nexport function registerTextArea(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseTextArea>\n) {\n registerComponentHelper(\n loader,\n BaseTextArea,\n {\n name: makeComponentName(\"textarea\"),\n displayName: \"Aria TextArea\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextArea\",\n importName: \"BaseTextArea\",\n variants,\n props: {\n ...getCommonProps<BaseTextAreaProps>(\"Text Area\", [\n \"name\",\n \"disabled\",\n \"readOnly\",\n \"autoFocus\",\n \"aria-label\",\n \"required\",\n \"placeholder\",\n \"value\",\n \"maxLength\",\n \"minLength\",\n \"inputMode\",\n \"onChange\",\n \"onFocus\",\n \"onBlur\",\n \"onKeyDown\",\n \"onKeyUp\",\n \"onCopy\",\n \"onCut\",\n \"onPaste\",\n \"onCompositionStart\",\n \"onCompositionEnd\",\n \"onCompositionUpdate\",\n \"onSelect\",\n \"onBeforeInput\",\n \"onInput\",\n ]),\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n ...inputHelpers.states.value,\n },\n },\n componentHelpers: {\n helpers: inputHelpers,\n importName: \"inputHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextArea\",\n },\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","PlasmicTextFieldContext","useContextProps","TextAreaContext","useHover","useFocusRing","mergeProps","filterHoverProps","isDefined","COMMON_STYLES","useEffect","registerComponentHelper","makeComponentName","getCommonProps"],"mappings":"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"}
1
+ {"version":3,"file":"registerTextArea.cjs.js","sources":["../src/registerTextArea.tsx"],"sourcesContent":["import React, { ChangeEvent, ForwardedRef, useEffect } from \"react\";\nimport { mergeProps, useFocusRing, useHover } from \"react-aria\";\nimport {\n TextAreaContext,\n TextAreaProps,\n useContextProps,\n} from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps } from \"./common\";\nimport { PlasmicTextFieldContext } from \"./contexts\";\nimport {\n CodeComponentMetaOverrides,\n filterHoverProps,\n HasControlContextData,\n isDefined,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nconst TEXTAREA_VARIANTS = [\n \"focused\" as const,\n \"focusVisible\" as const,\n \"hovered\" as const,\n \"disabled\" as const,\n];\n\nconst { variants } = pickAriaComponentVariants(TEXTAREA_VARIANTS);\n\nexport interface BaseTextAreaProps\n extends Omit<TextAreaProps, \"className\">,\n HasControlContextData,\n WithVariants<typeof TEXTAREA_VARIANTS> {\n className?: string;\n resize?: string;\n autoResize?: boolean;\n}\n\nexport const inputHelpers = {\n states: {\n value: {\n onChangeArgsToValue: (e: ChangeEvent<HTMLInputElement>) => {\n return e.target.value;\n },\n },\n },\n};\n\nfunction BaseTextArea_(\n props: BaseTextAreaProps,\n ref: ForwardedRef<HTMLTextAreaElement>\n) {\n const {\n className,\n plasmicUpdateVariant,\n setControlContextData,\n value,\n resize,\n autoResize,\n ...restProps\n } = props;\n\n const textFieldContext = React.useContext(PlasmicTextFieldContext);\n const [textAreaContextProps, textAreaRef] = useContextProps(\n restProps,\n ref,\n TextAreaContext\n );\n\n const { hoverProps, isHovered } = useHover(textAreaContextProps);\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n isTextInput: true,\n autoFocus: textAreaContextProps.autoFocus,\n });\n\n const mergedProps = mergeProps(\n filterHoverProps(textAreaContextProps),\n focusProps,\n hoverProps,\n {\n value: isDefined(textFieldContext) ? undefined : value,\n style: {\n ...COMMON_STYLES,\n ...(autoResize\n ? { resize: \"none\" } // Auto-resize disables manual resizing\n : resize\n ? { resize }\n : {}),\n },\n className,\n }\n );\n\n const isDisabled = mergedProps.disabled || false;\n const isInvalid =\n !!mergedProps[\"aria-invalid\"] && mergedProps[\"aria-invalid\"] !== \"false\";\n\n setControlContextData?.({\n parent: textFieldContext,\n });\n\n React.useEffect(() => {\n const el = textAreaRef.current;\n if (autoResize && el) {\n // Reset height to allow shrinking when text is deleted\n el.style.height = \"auto\";\n // Then set to scrollHeight so it expands to fit new content\n el.style.height = `${el.scrollHeight}px`;\n }\n }, [mergedProps.value]);\n\n useEffect(() => {\n if (plasmicUpdateVariant) {\n plasmicUpdateVariant({\n disabled: isDisabled,\n focused: isFocused,\n focusVisible: isFocusVisible,\n hovered: isHovered,\n });\n }\n }, [isFocused, isFocusVisible, isHovered, isDisabled, plasmicUpdateVariant]);\n\n return (\n <textarea\n {...mergedProps}\n ref={textAreaRef}\n data-focused={isFocused || undefined}\n data-disabled={isDisabled || undefined}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-invalid={isInvalid || undefined}\n />\n );\n}\n\nexport const BaseTextArea = React.forwardRef(BaseTextArea_);\n\nexport function registerTextArea(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseTextArea>\n) {\n registerComponentHelper(\n loader,\n BaseTextArea,\n {\n name: makeComponentName(\"textarea\"),\n displayName: \"Aria TextArea\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextArea\",\n importName: \"BaseTextArea\",\n variants,\n props: {\n ...getCommonProps<BaseTextAreaProps>(\"Text Area\", [\n \"name\",\n \"disabled\",\n \"readOnly\",\n \"autoFocus\",\n \"aria-label\",\n \"required\",\n \"placeholder\",\n \"value\",\n \"maxLength\",\n \"minLength\",\n \"inputMode\",\n \"onChange\",\n \"onFocus\",\n \"onBlur\",\n \"onKeyDown\",\n \"onKeyUp\",\n \"onCopy\",\n \"onCut\",\n \"onPaste\",\n \"onCompositionStart\",\n \"onCompositionEnd\",\n \"onCompositionUpdate\",\n \"onSelect\",\n \"onBeforeInput\",\n \"onInput\",\n ]),\n autoResize: {\n type: \"boolean\",\n displayName: \"Auto resize\",\n defaultValueHint: false,\n description:\n \"Grows or shrinks the element automatically based on text content. Disables manual resizing.\",\n },\n resize: {\n type: \"choice\",\n description: \"Controls if and how the element can be resized.\",\n options: [\n \"both\",\n \"horizontal\",\n \"vertical\",\n \"block\",\n \"inline\",\n \"none\",\n ],\n defaultValueHint: \"both\",\n hidden: (props) => Boolean(props.autoResize),\n advanced: true,\n },\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n ...inputHelpers.states.value,\n },\n },\n componentHelpers: {\n helpers: inputHelpers,\n importName: \"inputHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextArea\",\n },\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","PlasmicTextFieldContext","useContextProps","TextAreaContext","useHover","useFocusRing","mergeProps","filterHoverProps","isDefined","COMMON_STYLES","useEffect","registerComponentHelper","makeComponentName","getCommonProps"],"mappings":"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"}
@@ -5,6 +5,8 @@ import { WithVariants } from "./variant-utils";
5
5
  declare const TEXTAREA_VARIANTS: ("disabled" | "hovered" | "focused" | "focusVisible")[];
6
6
  export interface BaseTextAreaProps extends Omit<TextAreaProps, "className">, HasControlContextData, WithVariants<typeof TEXTAREA_VARIANTS> {
7
7
  className?: string;
8
+ resize?: string;
9
+ autoResize?: boolean;
8
10
  }
9
11
  export declare const inputHelpers: {
10
12
  states: {
@@ -60,12 +60,16 @@ function BaseTextArea_(props, ref) {
60
60
  className,
61
61
  plasmicUpdateVariant,
62
62
  setControlContextData,
63
- value
63
+ value,
64
+ resize,
65
+ autoResize
64
66
  } = _a, restProps = __objRest(_a, [
65
67
  "className",
66
68
  "plasmicUpdateVariant",
67
69
  "setControlContextData",
68
- "value"
70
+ "value",
71
+ "resize",
72
+ "autoResize"
69
73
  ]);
70
74
  const textFieldContext = React.useContext(PlasmicTextFieldContext);
71
75
  const [textAreaContextProps, textAreaRef] = useContextProps(
@@ -84,7 +88,7 @@ function BaseTextArea_(props, ref) {
84
88
  hoverProps,
85
89
  {
86
90
  value: isDefined(textFieldContext) ? void 0 : value,
87
- style: COMMON_STYLES,
91
+ style: __spreadValues(__spreadValues({}, COMMON_STYLES), autoResize ? { resize: "none" } : resize ? { resize } : {}),
88
92
  className
89
93
  }
90
94
  );
@@ -93,6 +97,13 @@ function BaseTextArea_(props, ref) {
93
97
  setControlContextData == null ? void 0 : setControlContextData({
94
98
  parent: textFieldContext
95
99
  });
100
+ React.useEffect(() => {
101
+ const el = textAreaRef.current;
102
+ if (autoResize && el) {
103
+ el.style.height = "auto";
104
+ el.style.height = `${el.scrollHeight}px`;
105
+ }
106
+ }, [mergedProps.value]);
96
107
  useEffect(() => {
97
108
  if (plasmicUpdateVariant) {
98
109
  plasmicUpdateVariant({
@@ -126,7 +137,7 @@ function registerTextArea(loader, overrides) {
126
137
  importPath: "@plasmicpkgs/react-aria/skinny/registerTextArea",
127
138
  importName: "BaseTextArea",
128
139
  variants,
129
- props: __spreadValues({}, getCommonProps("Text Area", [
140
+ props: __spreadProps(__spreadValues({}, getCommonProps("Text Area", [
130
141
  "name",
131
142
  "disabled",
132
143
  "readOnly",
@@ -152,7 +163,29 @@ function registerTextArea(loader, overrides) {
152
163
  "onSelect",
153
164
  "onBeforeInput",
154
165
  "onInput"
155
- ])),
166
+ ])), {
167
+ autoResize: {
168
+ type: "boolean",
169
+ displayName: "Auto resize",
170
+ defaultValueHint: false,
171
+ description: "Grows or shrinks the element automatically based on text content. Disables manual resizing."
172
+ },
173
+ resize: {
174
+ type: "choice",
175
+ description: "Controls if and how the element can be resized.",
176
+ options: [
177
+ "both",
178
+ "horizontal",
179
+ "vertical",
180
+ "block",
181
+ "inline",
182
+ "none"
183
+ ],
184
+ defaultValueHint: "both",
185
+ hidden: (props) => Boolean(props.autoResize),
186
+ advanced: true
187
+ }
188
+ }),
156
189
  states: {
157
190
  value: __spreadValues({
158
191
  type: "writable",
@@ -1 +1 @@
1
- {"version":3,"file":"registerTextArea.esm.js","sources":["../src/registerTextArea.tsx"],"sourcesContent":["import React, { ChangeEvent, ForwardedRef, useEffect } from \"react\";\nimport { mergeProps, useFocusRing, useHover } from \"react-aria\";\nimport {\n TextAreaContext,\n TextAreaProps,\n useContextProps,\n} from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps } from \"./common\";\nimport { PlasmicTextFieldContext } from \"./contexts\";\nimport {\n CodeComponentMetaOverrides,\n filterHoverProps,\n HasControlContextData,\n isDefined,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nconst TEXTAREA_VARIANTS = [\n \"focused\" as const,\n \"focusVisible\" as const,\n \"hovered\" as const,\n \"disabled\" as const,\n];\n\nconst { variants } = pickAriaComponentVariants(TEXTAREA_VARIANTS);\n\nexport interface BaseTextAreaProps\n extends Omit<TextAreaProps, \"className\">,\n HasControlContextData,\n WithVariants<typeof TEXTAREA_VARIANTS> {\n className?: string;\n}\n\nexport const inputHelpers = {\n states: {\n value: {\n onChangeArgsToValue: (e: ChangeEvent<HTMLInputElement>) => {\n return e.target.value;\n },\n },\n },\n};\n\nfunction BaseTextArea_(\n props: BaseTextAreaProps,\n ref: ForwardedRef<HTMLTextAreaElement>\n) {\n const {\n className,\n plasmicUpdateVariant,\n setControlContextData,\n value,\n ...restProps\n } = props;\n\n const textFieldContext = React.useContext(PlasmicTextFieldContext);\n const [textAreaContextProps, textAreaRef] = useContextProps(\n restProps,\n ref,\n TextAreaContext\n );\n\n const { hoverProps, isHovered } = useHover(textAreaContextProps);\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n isTextInput: true,\n autoFocus: textAreaContextProps.autoFocus,\n });\n\n const mergedProps = mergeProps(\n filterHoverProps(textAreaContextProps),\n focusProps,\n hoverProps,\n {\n value: isDefined(textFieldContext) ? undefined : value,\n style: COMMON_STYLES,\n className,\n }\n );\n\n const isDisabled = mergedProps.disabled || false;\n const isInvalid =\n !!mergedProps[\"aria-invalid\"] && mergedProps[\"aria-invalid\"] !== \"false\";\n\n setControlContextData?.({\n parent: textFieldContext,\n });\n\n useEffect(() => {\n if (plasmicUpdateVariant) {\n plasmicUpdateVariant({\n disabled: isDisabled,\n focused: isFocused,\n focusVisible: isFocusVisible,\n hovered: isHovered,\n });\n }\n }, [isFocused, isFocusVisible, isHovered, isDisabled, plasmicUpdateVariant]);\n\n return (\n <textarea\n {...mergedProps}\n ref={textAreaRef}\n data-focused={isFocused || undefined}\n data-disabled={isDisabled || undefined}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-invalid={isInvalid || undefined}\n />\n );\n}\n\nexport const BaseTextArea = React.forwardRef(BaseTextArea_);\n\nexport function registerTextArea(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseTextArea>\n) {\n registerComponentHelper(\n loader,\n BaseTextArea,\n {\n name: makeComponentName(\"textarea\"),\n displayName: \"Aria TextArea\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextArea\",\n importName: \"BaseTextArea\",\n variants,\n props: {\n ...getCommonProps<BaseTextAreaProps>(\"Text Area\", [\n \"name\",\n \"disabled\",\n \"readOnly\",\n \"autoFocus\",\n \"aria-label\",\n \"required\",\n \"placeholder\",\n \"value\",\n \"maxLength\",\n \"minLength\",\n \"inputMode\",\n \"onChange\",\n \"onFocus\",\n \"onBlur\",\n \"onKeyDown\",\n \"onKeyUp\",\n \"onCopy\",\n \"onCut\",\n \"onPaste\",\n \"onCompositionStart\",\n \"onCompositionEnd\",\n \"onCompositionUpdate\",\n \"onSelect\",\n \"onBeforeInput\",\n \"onInput\",\n ]),\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n ...inputHelpers.states.value,\n },\n },\n componentHelpers: {\n helpers: inputHelpers,\n importName: \"inputHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextArea\",\n },\n },\n overrides\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,iBAAoB,GAAA;AAAA,EACxB,SAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE,QAAA,EAAa,GAAA,yBAAA,CAA0B,iBAAiB,CAAA,CAAA;AASzD,MAAM,YAAe,GAAA;AAAA,EAC1B,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA;AAAA,MACL,mBAAA,EAAqB,CAAC,CAAqC,KAAA;AACzD,QAAA,OAAO,EAAE,MAAO,CAAA,KAAA,CAAA;AAAA,OAClB;AAAA,KACF;AAAA,GACF;AACF,EAAA;AAEA,SAAS,aAAA,CACP,OACA,GACA,EAAA;AACA,EAAA,MAMI,EALF,GAAA,KAAA,EAAA;AAAA,IAAA,SAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,KAAA;AAAA,GAtDJ,GAwDM,EADC,EAAA,SAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAJH,WAAA;AAAA,IACA,sBAAA;AAAA,IACA,uBAAA;AAAA,IACA,OAAA;AAAA,GAAA,CAAA,CAAA;AAIF,EAAM,MAAA,gBAAA,GAAmB,KAAM,CAAA,UAAA,CAAW,uBAAuB,CAAA,CAAA;AACjE,EAAM,MAAA,CAAC,oBAAsB,EAAA,WAAW,CAAI,GAAA,eAAA;AAAA,IAC1C,SAAA;AAAA,IACA,GAAA;AAAA,IACA,eAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,EAAE,UAAA,EAAY,SAAU,EAAA,GAAI,SAAS,oBAAoB,CAAA,CAAA;AAC/D,EAAA,MAAM,EAAE,SAAA,EAAW,cAAgB,EAAA,UAAA,KAAe,YAAa,CAAA;AAAA,IAC7D,WAAa,EAAA,IAAA;AAAA,IACb,WAAW,oBAAqB,CAAA,SAAA;AAAA,GACjC,CAAA,CAAA;AAED,EAAA,MAAM,WAAc,GAAA,UAAA;AAAA,IAClB,iBAAiB,oBAAoB,CAAA;AAAA,IACrC,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,MACE,KAAO,EAAA,SAAA,CAAU,gBAAgB,CAAA,GAAI,KAAY,CAAA,GAAA,KAAA;AAAA,MACjD,KAAO,EAAA,aAAA;AAAA,MACP,SAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,UAAA,GAAa,YAAY,QAAY,IAAA,KAAA,CAAA;AAC3C,EAAM,MAAA,SAAA,GACJ,CAAC,CAAC,WAAA,CAAY,cAAc,CAAK,IAAA,WAAA,CAAY,cAAc,CAAM,KAAA,OAAA,CAAA;AAEnE,EAAwB,qBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA;AAAA,IACtB,MAAQ,EAAA,gBAAA;AAAA,GACV,CAAA,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAsB,EAAA;AACxB,MAAqB,oBAAA,CAAA;AAAA,QACnB,QAAU,EAAA,UAAA;AAAA,QACV,OAAS,EAAA,SAAA;AAAA,QACT,YAAc,EAAA,cAAA;AAAA,QACd,OAAS,EAAA,SAAA;AAAA,OACV,CAAA,CAAA;AAAA,KACH;AAAA,KACC,CAAC,SAAA,EAAW,gBAAgB,SAAW,EAAA,UAAA,EAAY,oBAAoB,CAAC,CAAA,CAAA;AAE3E,EACE,uBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,WADL,CAAA,EAAA;AAAA,MAEC,GAAK,EAAA,WAAA;AAAA,MACL,gBAAc,SAAa,IAAA,KAAA,CAAA;AAAA,MAC3B,iBAAe,UAAc,IAAA,KAAA,CAAA;AAAA,MAC7B,gBAAc,SAAa,IAAA,KAAA,CAAA;AAAA,MAC3B,sBAAoB,cAAkB,IAAA,KAAA,CAAA;AAAA,MACtC,gBAAc,SAAa,IAAA,KAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAC7B,CAAA;AAEJ,CAAA;AAEa,MAAA,YAAA,GAAe,KAAM,CAAA,UAAA,CAAW,aAAa,EAAA;AAE1C,SAAA,gBAAA,CACd,QACA,SACA,EAAA;AACA,EAAA,uBAAA;AAAA,IACE,MAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,MACE,IAAA,EAAM,kBAAkB,UAAU,CAAA;AAAA,MAClC,WAAa,EAAA,eAAA;AAAA,MACb,UAAY,EAAA,iDAAA;AAAA,MACZ,UAAY,EAAA,cAAA;AAAA,MACZ,QAAA;AAAA,MACA,KAAA,EAAO,cACF,CAAA,EAAA,EAAA,cAAA,CAAkC,WAAa,EAAA;AAAA,QAChD,MAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,WAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA,aAAA;AAAA,QACA,OAAA;AAAA,QACA,WAAA;AAAA,QACA,WAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,SAAA;AAAA,QACA,oBAAA;AAAA,QACA,kBAAA;AAAA,QACA,qBAAA;AAAA,QACA,UAAA;AAAA,QACA,eAAA;AAAA,QACA,SAAA;AAAA,OACD,CAAA,CAAA;AAAA,MAEH,MAAQ,EAAA;AAAA,QACN,KAAO,EAAA,cAAA,CAAA;AAAA,UACL,IAAM,EAAA,UAAA;AAAA,UACN,SAAW,EAAA,OAAA;AAAA,UACX,YAAc,EAAA,UAAA;AAAA,UACd,YAAc,EAAA,MAAA;AAAA,SAAA,EACX,aAAa,MAAO,CAAA,KAAA,CAAA;AAAA,OAE3B;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,OAAS,EAAA,YAAA;AAAA,QACT,UAAY,EAAA,cAAA;AAAA,QACZ,UAAY,EAAA,iDAAA;AAAA,OACd;AAAA,KACF;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}
1
+ {"version":3,"file":"registerTextArea.esm.js","sources":["../src/registerTextArea.tsx"],"sourcesContent":["import React, { ChangeEvent, ForwardedRef, useEffect } from \"react\";\nimport { mergeProps, useFocusRing, useHover } from \"react-aria\";\nimport {\n TextAreaContext,\n TextAreaProps,\n useContextProps,\n} from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps } from \"./common\";\nimport { PlasmicTextFieldContext } from \"./contexts\";\nimport {\n CodeComponentMetaOverrides,\n filterHoverProps,\n HasControlContextData,\n isDefined,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nconst TEXTAREA_VARIANTS = [\n \"focused\" as const,\n \"focusVisible\" as const,\n \"hovered\" as const,\n \"disabled\" as const,\n];\n\nconst { variants } = pickAriaComponentVariants(TEXTAREA_VARIANTS);\n\nexport interface BaseTextAreaProps\n extends Omit<TextAreaProps, \"className\">,\n HasControlContextData,\n WithVariants<typeof TEXTAREA_VARIANTS> {\n className?: string;\n resize?: string;\n autoResize?: boolean;\n}\n\nexport const inputHelpers = {\n states: {\n value: {\n onChangeArgsToValue: (e: ChangeEvent<HTMLInputElement>) => {\n return e.target.value;\n },\n },\n },\n};\n\nfunction BaseTextArea_(\n props: BaseTextAreaProps,\n ref: ForwardedRef<HTMLTextAreaElement>\n) {\n const {\n className,\n plasmicUpdateVariant,\n setControlContextData,\n value,\n resize,\n autoResize,\n ...restProps\n } = props;\n\n const textFieldContext = React.useContext(PlasmicTextFieldContext);\n const [textAreaContextProps, textAreaRef] = useContextProps(\n restProps,\n ref,\n TextAreaContext\n );\n\n const { hoverProps, isHovered } = useHover(textAreaContextProps);\n const { isFocused, isFocusVisible, focusProps } = useFocusRing({\n isTextInput: true,\n autoFocus: textAreaContextProps.autoFocus,\n });\n\n const mergedProps = mergeProps(\n filterHoverProps(textAreaContextProps),\n focusProps,\n hoverProps,\n {\n value: isDefined(textFieldContext) ? undefined : value,\n style: {\n ...COMMON_STYLES,\n ...(autoResize\n ? { resize: \"none\" } // Auto-resize disables manual resizing\n : resize\n ? { resize }\n : {}),\n },\n className,\n }\n );\n\n const isDisabled = mergedProps.disabled || false;\n const isInvalid =\n !!mergedProps[\"aria-invalid\"] && mergedProps[\"aria-invalid\"] !== \"false\";\n\n setControlContextData?.({\n parent: textFieldContext,\n });\n\n React.useEffect(() => {\n const el = textAreaRef.current;\n if (autoResize && el) {\n // Reset height to allow shrinking when text is deleted\n el.style.height = \"auto\";\n // Then set to scrollHeight so it expands to fit new content\n el.style.height = `${el.scrollHeight}px`;\n }\n }, [mergedProps.value]);\n\n useEffect(() => {\n if (plasmicUpdateVariant) {\n plasmicUpdateVariant({\n disabled: isDisabled,\n focused: isFocused,\n focusVisible: isFocusVisible,\n hovered: isHovered,\n });\n }\n }, [isFocused, isFocusVisible, isHovered, isDisabled, plasmicUpdateVariant]);\n\n return (\n <textarea\n {...mergedProps}\n ref={textAreaRef}\n data-focused={isFocused || undefined}\n data-disabled={isDisabled || undefined}\n data-hovered={isHovered || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-invalid={isInvalid || undefined}\n />\n );\n}\n\nexport const BaseTextArea = React.forwardRef(BaseTextArea_);\n\nexport function registerTextArea(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseTextArea>\n) {\n registerComponentHelper(\n loader,\n BaseTextArea,\n {\n name: makeComponentName(\"textarea\"),\n displayName: \"Aria TextArea\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextArea\",\n importName: \"BaseTextArea\",\n variants,\n props: {\n ...getCommonProps<BaseTextAreaProps>(\"Text Area\", [\n \"name\",\n \"disabled\",\n \"readOnly\",\n \"autoFocus\",\n \"aria-label\",\n \"required\",\n \"placeholder\",\n \"value\",\n \"maxLength\",\n \"minLength\",\n \"inputMode\",\n \"onChange\",\n \"onFocus\",\n \"onBlur\",\n \"onKeyDown\",\n \"onKeyUp\",\n \"onCopy\",\n \"onCut\",\n \"onPaste\",\n \"onCompositionStart\",\n \"onCompositionEnd\",\n \"onCompositionUpdate\",\n \"onSelect\",\n \"onBeforeInput\",\n \"onInput\",\n ]),\n autoResize: {\n type: \"boolean\",\n displayName: \"Auto resize\",\n defaultValueHint: false,\n description:\n \"Grows or shrinks the element automatically based on text content. Disables manual resizing.\",\n },\n resize: {\n type: \"choice\",\n description: \"Controls if and how the element can be resized.\",\n options: [\n \"both\",\n \"horizontal\",\n \"vertical\",\n \"block\",\n \"inline\",\n \"none\",\n ],\n defaultValueHint: \"both\",\n hidden: (props) => Boolean(props.autoResize),\n advanced: true,\n },\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n ...inputHelpers.states.value,\n },\n },\n componentHelpers: {\n helpers: inputHelpers,\n importName: \"inputHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextArea\",\n },\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}