@plasmicpkgs/react-aria 0.0.146 → 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.
@@ -6,6 +6,7 @@ declare const TEXTAREA_VARIANTS: ("disabled" | "hovered" | "focused" | "focusVis
6
6
  export interface BaseTextAreaProps extends Omit<TextAreaProps, "className">, HasControlContextData, WithVariants<typeof TEXTAREA_VARIANTS> {
7
7
  className?: string;
8
8
  resize?: string;
9
+ autoResize?: boolean;
9
10
  }
10
11
  export declare const inputHelpers: {
11
12
  states: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicpkgs/react-aria",
3
- "version": "0.0.146",
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": "f7751c75698357a2c49f2e28818a6c2437e8341f"
77
+ "gitHead": "bb2b47af55bf72c0bdee073585b83623955bb804"
78
78
  }
@@ -67,13 +67,15 @@ function BaseTextArea_(props, ref) {
67
67
  plasmicUpdateVariant,
68
68
  setControlContextData,
69
69
  value,
70
- resize
70
+ resize,
71
+ autoResize
71
72
  } = _a, restProps = __objRest(_a, [
72
73
  "className",
73
74
  "plasmicUpdateVariant",
74
75
  "setControlContextData",
75
76
  "value",
76
- "resize"
77
+ "resize",
78
+ "autoResize"
77
79
  ]);
78
80
  const textFieldContext = React__default.default.useContext(contexts.PlasmicTextFieldContext);
79
81
  const [textAreaContextProps, textAreaRef] = reactAriaComponents.useContextProps(
@@ -92,7 +94,7 @@ function BaseTextArea_(props, ref) {
92
94
  hoverProps,
93
95
  {
94
96
  value: utils.isDefined(textFieldContext) ? void 0 : value,
95
- style: __spreadValues(__spreadValues({}, common.COMMON_STYLES), resize ? { resize } : {}),
97
+ style: __spreadValues(__spreadValues({}, common.COMMON_STYLES), autoResize ? { resize: "none" } : resize ? { resize } : {}),
96
98
  className
97
99
  }
98
100
  );
@@ -101,6 +103,13 @@ function BaseTextArea_(props, ref) {
101
103
  setControlContextData == null ? void 0 : setControlContextData({
102
104
  parent: textFieldContext
103
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]);
104
113
  React.useEffect(() => {
105
114
  if (plasmicUpdateVariant) {
106
115
  plasmicUpdateVariant({
@@ -161,6 +170,12 @@ function registerTextArea(loader, overrides) {
161
170
  "onBeforeInput",
162
171
  "onInput"
163
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
+ },
164
179
  resize: {
165
180
  type: "choice",
166
181
  description: "Controls if and how the element can be resized.",
@@ -172,7 +187,9 @@ function registerTextArea(loader, overrides) {
172
187
  "inline",
173
188
  "none"
174
189
  ],
175
- defaultValueHint: "both"
190
+ defaultValueHint: "both",
191
+ hidden: (props) => Boolean(props.autoResize),
192
+ advanced: true
176
193
  }
177
194
  }),
178
195
  states: {
@@ -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 resize?: 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 resize,\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 ...(resize ? { resize } : {}),\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 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 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 },\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,iBAAoB,GAAA;AAAA,EACxB,SAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE,QAAA,EAAa,GAAAA,sCAAA,CAA0B,iBAAiB,CAAA,CAAA;AAUzD,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,MAOI,EANF,GAAA,KAAA,EAAA;AAAA,IAAA,SAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,GAxDJ,GA0DM,EADC,EAAA,SAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IALH,WAAA;AAAA,IACA,sBAAA;AAAA,IACA,uBAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,GAAA,CAAA,CAAA;AAIF,EAAM,MAAA,gBAAA,GAAmBC,sBAAM,CAAA,UAAA,CAAWC,gCAAuB,CAAA,CAAA;AACjE,EAAM,MAAA,CAAC,oBAAsB,EAAA,WAAW,CAAI,GAAAC,mCAAA;AAAA,IAC1C,SAAA;AAAA,IACA,GAAA;AAAA,IACAC,mCAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,EAAE,UAAA,EAAY,SAAU,EAAA,GAAIC,mBAAS,oBAAoB,CAAA,CAAA;AAC/D,EAAA,MAAM,EAAE,SAAA,EAAW,cAAgB,EAAA,UAAA,KAAeC,sBAAa,CAAA;AAAA,IAC7D,WAAa,EAAA,IAAA;AAAA,IACb,WAAW,oBAAqB,CAAA,SAAA;AAAA,GACjC,CAAA,CAAA;AAED,EAAA,MAAM,WAAc,GAAAC,oBAAA;AAAA,IAClBC,uBAAiB,oBAAoB,CAAA;AAAA,IACrC,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,MACE,KAAO,EAAAC,eAAA,CAAU,gBAAgB,CAAA,GAAI,KAAY,CAAA,GAAA,KAAA;AAAA,MACjD,OAAO,cACF,CAAA,cAAA,CAAA,EAAA,EAAAC,oBAAA,CAAA,EACC,SAAS,EAAE,MAAA,KAAW,EAAC,CAAA;AAAA,MAE7B,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,EAAAC,eAAA,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,uBAAAV,sBAAA,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,GAAeA,sBAAM,CAAA,UAAA,CAAW,aAAa,EAAA;AAE1C,SAAA,gBAAA,CACd,QACA,SACA,EAAA;AACA,EAAAW,6BAAA;AAAA,IACE,MAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,MACE,IAAA,EAAMC,wBAAkB,UAAU,CAAA;AAAA,MAClC,WAAa,EAAA,eAAA;AAAA,MACb,UAAY,EAAA,iDAAA;AAAA,MACZ,UAAY,EAAA,cAAA;AAAA,MACZ,QAAA;AAAA,MACA,KAAA,EAAO,aACF,CAAA,cAAA,CAAA,EAAA,EAAAC,qBAAA,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,CA3BI,CAAA,EAAA;AAAA,QA4BL,MAAQ,EAAA;AAAA,UACN,IAAM,EAAA,QAAA;AAAA,UACN,WAAa,EAAA,iDAAA;AAAA,UACb,OAAS,EAAA;AAAA,YACP,MAAA;AAAA,YACA,YAAA;AAAA,YACA,UAAA;AAAA,YACA,OAAA;AAAA,YACA,QAAA;AAAA,YACA,MAAA;AAAA,WACF;AAAA,UACA,gBAAkB,EAAA,MAAA;AAAA,SACpB;AAAA,OACF,CAAA;AAAA,MACA,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.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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"}
@@ -6,6 +6,7 @@ declare const TEXTAREA_VARIANTS: ("disabled" | "hovered" | "focused" | "focusVis
6
6
  export interface BaseTextAreaProps extends Omit<TextAreaProps, "className">, HasControlContextData, WithVariants<typeof TEXTAREA_VARIANTS> {
7
7
  className?: string;
8
8
  resize?: string;
9
+ autoResize?: boolean;
9
10
  }
10
11
  export declare const inputHelpers: {
11
12
  states: {
@@ -61,13 +61,15 @@ function BaseTextArea_(props, ref) {
61
61
  plasmicUpdateVariant,
62
62
  setControlContextData,
63
63
  value,
64
- resize
64
+ resize,
65
+ autoResize
65
66
  } = _a, restProps = __objRest(_a, [
66
67
  "className",
67
68
  "plasmicUpdateVariant",
68
69
  "setControlContextData",
69
70
  "value",
70
- "resize"
71
+ "resize",
72
+ "autoResize"
71
73
  ]);
72
74
  const textFieldContext = React.useContext(PlasmicTextFieldContext);
73
75
  const [textAreaContextProps, textAreaRef] = useContextProps(
@@ -86,7 +88,7 @@ function BaseTextArea_(props, ref) {
86
88
  hoverProps,
87
89
  {
88
90
  value: isDefined(textFieldContext) ? void 0 : value,
89
- style: __spreadValues(__spreadValues({}, COMMON_STYLES), resize ? { resize } : {}),
91
+ style: __spreadValues(__spreadValues({}, COMMON_STYLES), autoResize ? { resize: "none" } : resize ? { resize } : {}),
90
92
  className
91
93
  }
92
94
  );
@@ -95,6 +97,13 @@ function BaseTextArea_(props, ref) {
95
97
  setControlContextData == null ? void 0 : setControlContextData({
96
98
  parent: textFieldContext
97
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]);
98
107
  useEffect(() => {
99
108
  if (plasmicUpdateVariant) {
100
109
  plasmicUpdateVariant({
@@ -155,6 +164,12 @@ function registerTextArea(loader, overrides) {
155
164
  "onBeforeInput",
156
165
  "onInput"
157
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
+ },
158
173
  resize: {
159
174
  type: "choice",
160
175
  description: "Controls if and how the element can be resized.",
@@ -166,7 +181,9 @@ function registerTextArea(loader, overrides) {
166
181
  "inline",
167
182
  "none"
168
183
  ],
169
- defaultValueHint: "both"
184
+ defaultValueHint: "both",
185
+ hidden: (props) => Boolean(props.autoResize),
186
+ advanced: true
170
187
  }
171
188
  }),
172
189
  states: {
@@ -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 resize?: 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 resize,\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 ...(resize ? { resize } : {}),\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 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 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 },\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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"}
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAWzD,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,MAQI,EAPF,GAAA,KAAA,EAAA;AAAA,IAAA,SAAA;AAAA,IACA,oBAAA;AAAA,IACA,qBAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,GA1DJ,GA4DM,EADC,EAAA,SAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IANH,WAAA;AAAA,IACA,sBAAA;AAAA,IACA,uBAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;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,cAAA,CAAA,cAAA,CAAA,EAAA,EACF,aACC,CAAA,EAAA,UAAA,GACA,EAAE,MAAA,EAAQ,MAAO,EAAA,GACjB,MACA,GAAA,EAAE,MAAO,EAAA,GACT,EAAC,CAAA;AAAA,MAEP,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,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,MAAM,KAAK,WAAY,CAAA,OAAA,CAAA;AACvB,IAAA,IAAI,cAAc,EAAI,EAAA;AAEpB,MAAA,EAAA,CAAG,MAAM,MAAS,GAAA,MAAA,CAAA;AAElB,MAAG,EAAA,CAAA,KAAA,CAAM,MAAS,GAAA,CAAA,EAAG,EAAG,CAAA,YAAA,CAAA,EAAA,CAAA,CAAA;AAAA,KAC1B;AAAA,GACC,EAAA,CAAC,WAAY,CAAA,KAAK,CAAC,CAAA,CAAA;AAEtB,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,aACF,CAAA,cAAA,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,CA3BI,CAAA,EAAA;AAAA,QA4BL,UAAY,EAAA;AAAA,UACV,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,aAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,WACE,EAAA,6FAAA;AAAA,SACJ;AAAA,QACA,MAAQ,EAAA;AAAA,UACN,IAAM,EAAA,QAAA;AAAA,UACN,WAAa,EAAA,iDAAA;AAAA,UACb,OAAS,EAAA;AAAA,YACP,MAAA;AAAA,YACA,YAAA;AAAA,YACA,UAAA;AAAA,YACA,OAAA;AAAA,YACA,QAAA;AAAA,YACA,MAAA;AAAA,WACF;AAAA,UACA,gBAAkB,EAAA,MAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,KAAU,KAAA,OAAA,CAAQ,MAAM,UAAU,CAAA;AAAA,UAC3C,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,OACF,CAAA;AAAA,MACA,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;;;;"}