From 6de786eb34821b60639c24a860f475be5450bfe4 Mon Sep 17 00:00:00 2001 From: Sina Zinsaz Date: Tue, 14 Oct 2025 14:59:42 +0330 Subject: [PATCH 1/2] chore: add textarea component variations for Angular and React --- .../form-field/textarea/color.stories.ts | 48 +++++++++++++++++ .../form-field/textarea/index.stories.ts | 3 ++ .../form-field/textarea/size.stories.ts | 48 +++++++++++++++++ .../form-field/textarea/type.stories.ts | 48 +++++++++++++++++ .../form-field/textarea/index.stories.ts | 5 ++ .../textarea/overview/autoresize.stories.tsx | 50 +++++++++++++++++ .../textarea/overview/color.stories.tsx | 54 +++++++++++++++++++ .../textarea/overview/default.stories.tsx | 4 +- .../textarea/overview/error-state.stories.tsx | 53 ++++++++++++++++++ .../textarea/overview/size.stories.tsx | 53 ++++++++++++++++++ .../textarea/overview/type.stories.tsx | 53 ++++++++++++++++++ 11 files changed, 417 insertions(+), 2 deletions(-) create mode 100644 apps/angular-kits-doc/stories/ui-components/form-field/textarea/color.stories.ts create mode 100644 apps/angular-kits-doc/stories/ui-components/form-field/textarea/size.stories.ts create mode 100644 apps/angular-kits-doc/stories/ui-components/form-field/textarea/type.stories.ts create mode 100644 apps/react-kits-doc/stories/ui-components/form-field/textarea/overview/autoresize.stories.tsx create mode 100644 apps/react-kits-doc/stories/ui-components/form-field/textarea/overview/color.stories.tsx create mode 100644 apps/react-kits-doc/stories/ui-components/form-field/textarea/overview/error-state.stories.tsx create mode 100644 apps/react-kits-doc/stories/ui-components/form-field/textarea/overview/size.stories.tsx create mode 100644 apps/react-kits-doc/stories/ui-components/form-field/textarea/overview/type.stories.tsx diff --git a/apps/angular-kits-doc/stories/ui-components/form-field/textarea/color.stories.ts b/apps/angular-kits-doc/stories/ui-components/form-field/textarea/color.stories.ts new file mode 100644 index 00000000..611dfb6c --- /dev/null +++ b/apps/angular-kits-doc/stories/ui-components/form-field/textarea/color.stories.ts @@ -0,0 +1,48 @@ +import { TextareaComponent } from '@cocokits/angular-form-field'; +import { renderWithPageTab, renderWithThemeProp } from '@cocokits/storybook-addon-theme'; +import { StoryObj } from '@cocokits/storybook-addon-theme-angular'; + +export const Color: StoryObj = { + name: 'Color', + parameters: { + docs: { + description: { + story: 'This demonstrates the different color variations of the textarea.', + }, + }, + cckAddon: { + renderConditions: [renderWithThemeProp('color'), renderWithPageTab('Overview')], + source: [ + { + filename: 'example.component.html', + language: 'angular-html', + code: ` + <% themeComponentConfig.color.values.map(color => { %> + + <%= color %> + + + <% }) %> + `, + }, + ], + }, + }, + render: (args) => ({ + props: { + ...args, + }, + template: ` + @for (color of cckControl.themeComponentConfig.color.values; let col = $index; track color) { + + {{color}} + + + } + `, + }), +}; \ No newline at end of file diff --git a/apps/angular-kits-doc/stories/ui-components/form-field/textarea/index.stories.ts b/apps/angular-kits-doc/stories/ui-components/form-field/textarea/index.stories.ts index 344fea56..6124bdc5 100644 --- a/apps/angular-kits-doc/stories/ui-components/form-field/textarea/index.stories.ts +++ b/apps/angular-kits-doc/stories/ui-components/form-field/textarea/index.stories.ts @@ -7,6 +7,9 @@ import descriptionMd from './description.md'; export { Default } from './default.stories'; export { AutoResize } from './auto-resize.stories'; +export { Color } from './color.stories'; +export { Size } from './size.stories'; +export { Type } from './type.stories'; const meta: StoriesMeta = { component: TextareaComponent, diff --git a/apps/angular-kits-doc/stories/ui-components/form-field/textarea/size.stories.ts b/apps/angular-kits-doc/stories/ui-components/form-field/textarea/size.stories.ts new file mode 100644 index 00000000..a6076084 --- /dev/null +++ b/apps/angular-kits-doc/stories/ui-components/form-field/textarea/size.stories.ts @@ -0,0 +1,48 @@ +import { TextareaComponent } from '@cocokits/angular-form-field'; +import { renderWithPageTab, renderWithThemeProp } from '@cocokits/storybook-addon-theme'; +import { StoryObj } from '@cocokits/storybook-addon-theme-angular'; + +export const Size: StoryObj = { + name: 'Size', + parameters: { + docs: { + description: { + story: 'This demonstrates the different size variations of the textarea.', + }, + }, + cckAddon: { + renderConditions: [renderWithThemeProp('size'), renderWithPageTab('Overview')], + source: [ + { + filename: 'example.component.html', + language: 'angular-html', + code: ` + <% themeComponentConfig.size.values.map(size => { %> + + <%= size %> + + + <% }) %> + `, + }, + ], + }, + }, + render: (args) => ({ + props: { + ...args, + }, + template: ` + @for (size of cckControl.themeComponentConfig.size.values; let index = $index; track size) { + + {{size}} + + + } + `, + }), +}; \ No newline at end of file diff --git a/apps/angular-kits-doc/stories/ui-components/form-field/textarea/type.stories.ts b/apps/angular-kits-doc/stories/ui-components/form-field/textarea/type.stories.ts new file mode 100644 index 00000000..2d20b75f --- /dev/null +++ b/apps/angular-kits-doc/stories/ui-components/form-field/textarea/type.stories.ts @@ -0,0 +1,48 @@ +import { TextareaComponent } from '@cocokits/angular-form-field'; +import { renderWithPageTab, renderWithThemeProp } from '@cocokits/storybook-addon-theme'; +import { StoryObj } from '@cocokits/storybook-addon-theme-angular'; + +export const Type: StoryObj = { + name: 'Type', + parameters: { + docs: { + description: { + story: 'This demonstrates the different type variations of the textarea.', + }, + }, + cckAddon: { + renderConditions: [renderWithThemeProp('type'), renderWithPageTab('Overview')], + source: [ + { + filename: 'example.component.html', + language: 'angular-html', + code: ` + <% themeComponentConfig.type.values.map(type => { %> + + <%= type %> + + + <% }) %> + `, + }, + ], + }, + }, + render: (args) => ({ + props: { + ...args, + }, + template: ` + @for (type of cckControl.themeComponentConfig.type.values; let index = $index; track type) { + + {{type}} + + + } + `, + }), +}; \ No newline at end of file diff --git a/apps/react-kits-doc/stories/ui-components/form-field/textarea/index.stories.ts b/apps/react-kits-doc/stories/ui-components/form-field/textarea/index.stories.ts index eb68cb78..acd18c84 100644 --- a/apps/react-kits-doc/stories/ui-components/form-field/textarea/index.stories.ts +++ b/apps/react-kits-doc/stories/ui-components/form-field/textarea/index.stories.ts @@ -4,6 +4,11 @@ import { StoriesMeta } from '@cocokits/storybook-addon-theme-react'; import descriptionMd from './description.md?raw'; export { Default } from './overview/default.stories'; +export { ErrorState } from './overview/error-state.stories'; +export { AutoResize } from './overview/autoresize.stories'; +export { Color } from './overview/color.stories'; +export { Size } from './overview/size.stories'; +export { Type } from './overview/type.stories'; const meta: StoriesMeta = { component: Textarea, diff --git a/apps/react-kits-doc/stories/ui-components/form-field/textarea/overview/autoresize.stories.tsx b/apps/react-kits-doc/stories/ui-components/form-field/textarea/overview/autoresize.stories.tsx new file mode 100644 index 00000000..02c54c2f --- /dev/null +++ b/apps/react-kits-doc/stories/ui-components/form-field/textarea/overview/autoresize.stories.tsx @@ -0,0 +1,50 @@ +import { FormField, Label, Textarea } from '@cocokits/react-components'; +import { renderWithPageTab } from '@cocokits/storybook-addon-theme'; +import { StoryObj } from '@cocokits/storybook-addon-theme-react'; + +export const AutoResize: StoryObj = { + name: 'Auto Resize', + parameters: { + docs: { + description: { + story: + 'This demonstrates the textarea with the autoResize property enabled, allowing it to automatically adjust its height based on content.', + }, + }, + cckAddon: { + renderConditions: [renderWithPageTab('Overview')], + source: [ + { + filename: 'Source Code', + language: 'tsx', + code: ` + import { FormField, Label, Textarea } from "@cocokits/react-components"; + export const MyComponent = () => { + return ( + <> + + + + + + ); + } + `, + }, + ], + }, + }, + render: () => ( + <> + + + + + + <% }) %> + + ); + } + `, + }, + ], + }, + }, + render: (args) => ( + <> + {args.cckControl.themeComponentConfig.color?.values.map((color, index) => ( + + + + + + <% }) %> + + ); + } + `, + }, + ], + }, + }, + render: (args) => ( + <> + {args.cckControl.themeComponentConfig.size?.values.map((size, index) => ( + + + + + + <% }) %> + + ); + } + `, + }, + ], + }, + }, + render: (args) => ( + <> + {args.cckControl.themeComponentConfig.type?.values.map((type, index) => ( + + +