From 70fb21269a49f35387b2c521aac2512727aec002 Mon Sep 17 00:00:00 2001 From: Lee White Date: Thu, 16 Jun 2022 15:42:33 -0700 Subject: [PATCH] feat: allow textarea vertical resize, create @twilio-paste/react-textarea-autosize (#2454) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .changeset/late-rings-poke.md | 6 + .changeset/slow-buttons-film.md | 6 + .codesandbox/ci.json | 1 + .../textarea/__tests__/textarea.test.tsx | 28 +- .../components/textarea/package.json | 5 +- .../components/textarea/src/TextArea.tsx | 12 +- .../textarea/stories/textarea.stories.tsx | 139 +- packages/paste-core/core-bundle/.gitignore | 1 + packages/paste-core/core-bundle/package.json | 1 + .../src/react-textarea-autosize-library.tsx | 1 + .../react-textarea-autosize/README.md | 3 + .../react-textarea-autosize/build.js | 3 + .../react-textarea-autosize/package.json | 39 + .../__snapshots__/index.test.tsx.snap | 15 + .../src/__tests__/index.test.tsx | 142 ++ .../src/calculateNodeHeight.ts | 50 + .../src/forceHiddenStyles.ts | 17 + .../react-textarea-autosize/src/getHeight.ts | 13 + .../src/getSizingData.ts | 87 + .../react-textarea-autosize/src/index.tsx | 94 + .../src/useHiddenTextarea.tsx | 24 + .../src/useWindowResizeListener.tsx | 18 + .../react-textarea-autosize/tsconfig.json | 8 + .../src/pages/components/textarea/index.mdx | 13 + .../__fixtures__/random_package/src/index.tsx | 4 +- .../compiledImports.test.ts.snap | 1984 +++++++++++++---- tools/build/__tests__/compiledImports.test.ts | 1 - yarn.lock | 92 +- 28 files changed, 2258 insertions(+), 549 deletions(-) create mode 100644 .changeset/late-rings-poke.md create mode 100644 .changeset/slow-buttons-film.md create mode 100644 packages/paste-core/core-bundle/src/react-textarea-autosize-library.tsx create mode 100644 packages/paste-libraries/react-textarea-autosize/README.md create mode 100644 packages/paste-libraries/react-textarea-autosize/build.js create mode 100644 packages/paste-libraries/react-textarea-autosize/package.json create mode 100644 packages/paste-libraries/react-textarea-autosize/src/__tests__/__snapshots__/index.test.tsx.snap create mode 100644 packages/paste-libraries/react-textarea-autosize/src/__tests__/index.test.tsx create mode 100644 packages/paste-libraries/react-textarea-autosize/src/calculateNodeHeight.ts create mode 100644 packages/paste-libraries/react-textarea-autosize/src/forceHiddenStyles.ts create mode 100644 packages/paste-libraries/react-textarea-autosize/src/getHeight.ts create mode 100644 packages/paste-libraries/react-textarea-autosize/src/getSizingData.ts create mode 100644 packages/paste-libraries/react-textarea-autosize/src/index.tsx create mode 100644 packages/paste-libraries/react-textarea-autosize/src/useHiddenTextarea.tsx create mode 100644 packages/paste-libraries/react-textarea-autosize/src/useWindowResizeListener.tsx create mode 100644 packages/paste-libraries/react-textarea-autosize/tsconfig.json diff --git a/.changeset/late-rings-poke.md b/.changeset/late-rings-poke.md new file mode 100644 index 0000000000..6da9e43fc0 --- /dev/null +++ b/.changeset/late-rings-poke.md @@ -0,0 +1,6 @@ +--- +'@twilio-paste/textarea': major +'@twilio-paste/core': major +--- + +[Textarea] Update textarea to use @twilio-paste/react-autosize-textarea library and add the resize prop which allows users to resize the textarea height. diff --git a/.changeset/slow-buttons-film.md b/.changeset/slow-buttons-film.md new file mode 100644 index 0000000000..a64ad36720 --- /dev/null +++ b/.changeset/slow-buttons-film.md @@ -0,0 +1,6 @@ +--- +'@twilio-paste/core': major +'@twilio-paste/react-textarea-autosize-library': major +--- + +[react-textarea-autosize-library] add react-textarea-autosize library diff --git a/.codesandbox/ci.json b/.codesandbox/ci.json index a89a9de051..cc85f6f33f 100644 --- a/.codesandbox/ci.json +++ b/.codesandbox/ci.json @@ -51,6 +51,7 @@ "/packages/paste-core/components/paragraph", "/packages/paste-core/components/popover", "/packages/paste-core/components/radio-group", + "/packages/paste-libraries/react-textarea-autosize", "/packages/paste-libraries/reakit", "/packages/paste-core/components/screen-reader-only", "/packages/paste-core/components/select", diff --git a/packages/paste-core/components/textarea/__tests__/textarea.test.tsx b/packages/paste-core/components/textarea/__tests__/textarea.test.tsx index 347dda2ba4..2e88e8b809 100644 --- a/packages/paste-core/components/textarea/__tests__/textarea.test.tsx +++ b/packages/paste-core/components/textarea/__tests__/textarea.test.tsx @@ -6,7 +6,7 @@ import {HelpText} from '@twilio-paste/help-text'; // @ts-ignore typescript doesn't like js imports import axe from '../../../../../.jest/axe-helper'; import {TextArea} from '../src'; -import {CustomizedTextarea} from '../stories/textarea.stories'; +import {CustomizedTextarea, MultipleTextareas} from '../stories/textarea.stories'; const NOOP = (): void => {}; @@ -23,6 +23,11 @@ describe('TextArea render', () => { expect(getByRole('textbox')).not.toBeNull(); }); + it('should render a hidden textarea', () => { + render(