@shohojdhara/atomix 0.3.14 → 0.3.15
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/CHANGELOG.md +20 -0
- package/build-tools/EXAMPLES.md +372 -0
- package/build-tools/README.md +242 -0
- package/build-tools/__tests__/error-handler.test.js +230 -0
- package/build-tools/__tests__/index.test.js +141 -0
- package/build-tools/__tests__/rollup-plugin.test.js +194 -0
- package/build-tools/__tests__/utils.test.js +161 -0
- package/build-tools/__tests__/vite-plugin.test.js +129 -0
- package/build-tools/__tests__/webpack-loader.test.js +190 -0
- package/build-tools/error-handler.js +308 -0
- package/build-tools/index.d.ts +43 -0
- package/build-tools/index.js +88 -0
- package/build-tools/package.json +67 -0
- package/build-tools/rollup-plugin.js +236 -0
- package/build-tools/types.d.ts +163 -0
- package/build-tools/utils.js +203 -0
- package/build-tools/vite-plugin.js +161 -0
- package/build-tools/webpack-loader.js +123 -0
- package/dist/atomix.css +203 -90
- package/dist/atomix.css.map +1 -1
- package/dist/atomix.min.css +3 -3
- package/dist/atomix.min.css.map +1 -1
- package/dist/build-tools/EXAMPLES.md +372 -0
- package/dist/build-tools/README.md +242 -0
- package/dist/build-tools/__tests__/error-handler.test.js +230 -0
- package/dist/build-tools/__tests__/index.test.js +141 -0
- package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
- package/dist/build-tools/__tests__/utils.test.js +161 -0
- package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
- package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
- package/dist/build-tools/error-handler.js +308 -0
- package/dist/build-tools/index.d.ts +43 -0
- package/dist/build-tools/index.js +88 -0
- package/dist/build-tools/package.json +67 -0
- package/dist/build-tools/rollup-plugin.js +236 -0
- package/dist/build-tools/types.d.ts +163 -0
- package/dist/build-tools/utils.js +203 -0
- package/dist/build-tools/vite-plugin.js +161 -0
- package/dist/build-tools/webpack-loader.js +123 -0
- package/dist/charts.d.ts +1 -1
- package/dist/charts.js +86 -57
- package/dist/charts.js.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +136 -112
- package/dist/core.js.map +1 -1
- package/dist/forms.d.ts +2 -5
- package/dist/forms.js +140 -128
- package/dist/forms.js.map +1 -1
- package/dist/heavy.d.ts +1 -1
- package/dist/heavy.js +136 -112
- package/dist/heavy.js.map +1 -1
- package/dist/index.d.ts +9 -61
- package/dist/index.esm.js +237 -286
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +250 -299
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +23 -8
- package/scripts/atomix-cli.js +170 -73
- package/scripts/cli/__tests__/README.md +81 -0
- package/scripts/cli/__tests__/basic.test.js +115 -0
- package/scripts/cli/__tests__/component-generator.test.js +332 -0
- package/scripts/cli/__tests__/integration.test.js +327 -0
- package/scripts/cli/__tests__/test-setup.js +133 -0
- package/scripts/cli/__tests__/token-manager.test.js +251 -0
- package/scripts/cli/__tests__/utils.test.js +161 -0
- package/scripts/cli/component-generator.js +253 -299
- package/scripts/cli/dependency-checker.js +355 -0
- package/scripts/cli/interactive-init.js +46 -5
- package/scripts/cli/template-manager.js +0 -2
- package/scripts/cli/templates/common-templates.js +636 -0
- package/scripts/cli/templates/composable-templates.js +148 -126
- package/scripts/cli/templates/index.js +23 -16
- package/scripts/cli/templates/project-templates.js +151 -23
- package/scripts/cli/templates/react-templates.js +280 -210
- package/scripts/cli/templates/scss-templates.js +90 -91
- package/scripts/cli/templates/testing-templates.js +206 -27
- package/scripts/cli/templates/testing-utils.js +278 -0
- package/scripts/cli/templates/types-templates.js +70 -56
- package/scripts/cli/theme-bridge.js +8 -2
- package/scripts/cli/token-manager.js +318 -206
- package/scripts/cli/utils.js +0 -1
- package/src/components/Accordion/Accordion.stories.tsx +369 -870
- package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
- package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
- package/src/components/AtomixGlass/glass-utils.ts +2 -2
- package/src/components/AtomixGlass/shader-utils.ts +5 -0
- package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
- package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
- package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
- package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
- package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
- package/src/components/AtomixGlass/stories/Playground.stories.tsx +50 -35
- package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +1 -1
- package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
- package/src/components/Avatar/Avatar.stories.tsx +213 -1
- package/src/components/Badge/Badge.stories.tsx +121 -362
- package/src/components/Block/Block.stories.tsx +21 -12
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +141 -23
- package/src/components/Button/Button.stories.tsx +463 -1126
- package/src/components/Button/Button.test.tsx +107 -0
- package/src/components/Button/Button.tsx +46 -50
- package/src/components/Button/ButtonGroup.stories.tsx +373 -217
- package/src/components/Callout/Callout.stories.tsx +289 -634
- package/src/components/Card/Card.stories.tsx +248 -68
- package/src/components/Chart/Chart.stories.tsx +150 -8
- package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +151 -69
- package/src/components/Countdown/Countdown.stories.tsx +115 -8
- package/src/components/DataTable/DataTable.stories.tsx +346 -146
- package/src/components/DatePicker/DatePicker.stories.tsx +325 -1066
- package/src/components/Dropdown/Dropdown.stories.tsx +153 -33
- package/src/components/EdgePanel/EdgePanel.stories.tsx +230 -21
- package/src/components/Footer/Footer.stories.tsx +392 -328
- package/src/components/Form/Checkbox.stories.tsx +140 -6
- package/src/components/Form/Checkbox.test.tsx +63 -0
- package/src/components/Form/Checkbox.tsx +87 -51
- package/src/components/Form/Form.stories.tsx +119 -20
- package/src/components/Form/FormGroup.stories.tsx +127 -4
- package/src/components/Form/Radio.stories.tsx +140 -5
- package/src/components/Form/Select.stories.tsx +140 -8
- package/src/components/Form/Textarea.stories.tsx +149 -6
- package/src/components/Hero/Hero.stories.tsx +333 -32
- package/src/components/List/List.stories.tsx +141 -3
- package/src/components/Modal/Modal.stories.tsx +181 -42
- package/src/components/Popover/Popover.stories.tsx +448 -98
- package/src/components/Progress/Progress.stories.tsx +167 -5
- package/src/components/River/River.stories.tsx +1 -1
- package/src/components/SectionIntro/SectionIntro.stories.tsx +240 -48
- package/src/components/Spinner/Spinner.stories.tsx +102 -8
- package/src/components/Steps/Steps.stories.tsx +172 -43
- package/src/components/Tabs/Tabs.stories.tsx +136 -10
- package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
- package/src/components/Todo/Todo.stories.tsx +198 -9
- package/src/components/Toggle/Toggle.stories.tsx +126 -39
- package/src/components/Tooltip/Tooltip.stories.tsx +194 -104
- package/src/components/Upload/Upload.stories.tsx +113 -24
- package/src/lib/README.md +2 -2
- package/src/lib/__tests__/theme-tools.test.ts +193 -0
- package/src/lib/composables/index.ts +2 -2
- package/src/lib/composables/useAtomixGlass.ts +28 -56
- package/src/lib/composables/useChartExport.ts +2 -7
- package/src/lib/composables/useDataTable.ts +46 -29
- package/src/lib/constants/components.ts +9 -32
- package/src/lib/theme/devtools/CLI.ts +1 -1
- package/src/lib/types/components.ts +1 -1
- package/src/lib/utils/__tests__/csv.test.ts +45 -0
- package/src/lib/utils/csv.ts +17 -0
- package/src/lib/utils/dataTableExport.ts +1 -10
- package/src/styles/01-settings/_index.scss +2 -1
- package/src/styles/01-settings/_settings.accordion.scss +28 -7
- package/src/styles/01-settings/_settings.colors.scss +11 -11
- package/src/styles/01-settings/_settings.typography.scss +5 -5
- package/src/styles/02-tools/_tools.utility-api.scss +14 -0
- package/src/styles/06-components/_components.accordion.scss +56 -14
- package/src/styles/06-components/_components.checkbox.scss +23 -17
- package/src/styles/99-utilities/_index.scss +2 -0
- package/src/styles/99-utilities/_utilities.scss +3 -1
- package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
- package/themes/dark-complementary/README.md +98 -0
- package/themes/dark-complementary/index.scss +158 -0
- package/themes/default-light/README.md +81 -0
- package/themes/default-light/index.scss +154 -0
- package/themes/high-contrast/README.md +105 -0
- package/themes/high-contrast/index.scss +172 -0
- package/themes/test-theme/README.md +38 -0
- package/themes/test-theme/index.scss +47 -0
- package/scripts/cli/templates-original-backup.js +0 -1655
- package/scripts/cli/templates_backup.js +0 -684
- package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
- package/src/lib/composables/useButton.ts +0 -93
- package/src/lib/composables/useCheckbox.ts +0 -70
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { fn } from '@storybook/test';
|
|
2
3
|
import { Textarea } from './Textarea';
|
|
3
4
|
import { SIZES, THEME_COLORS } from '../../lib/constants/components';
|
|
4
5
|
|
|
@@ -9,8 +10,74 @@ const meta = {
|
|
|
9
10
|
layout: 'centered',
|
|
10
11
|
docs: {
|
|
11
12
|
description: {
|
|
12
|
-
component:
|
|
13
|
-
|
|
13
|
+
component: `
|
|
14
|
+
# Textarea
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Textarea component provides a multi-line text input field for longer content. It supports various sizes, validation states, and can be customized with different variants. Textareas are ideal for comments, descriptions, or any content requiring multiple lines of input.
|
|
19
|
+
|
|
20
|
+
## Features
|
|
21
|
+
|
|
22
|
+
- Multi-line text input
|
|
23
|
+
- Various size options
|
|
24
|
+
- Color variants
|
|
25
|
+
- Validation states (valid/invalid)
|
|
26
|
+
- Placeholder support
|
|
27
|
+
- Disabled state
|
|
28
|
+
- Glass morphism effect
|
|
29
|
+
- Accessible design
|
|
30
|
+
- Responsive behavior
|
|
31
|
+
|
|
32
|
+
## Accessibility
|
|
33
|
+
|
|
34
|
+
- Keyboard support: Navigate and input text with keyboard
|
|
35
|
+
- Screen reader: Label and content announced properly
|
|
36
|
+
- ARIA support: Proper roles and properties for textarea components
|
|
37
|
+
- Focus management: Visible focus indicators maintained
|
|
38
|
+
|
|
39
|
+
## Usage Examples
|
|
40
|
+
|
|
41
|
+
### Basic Usage
|
|
42
|
+
|
|
43
|
+
\`\`\`tsx
|
|
44
|
+
<Textarea
|
|
45
|
+
placeholder="Enter your text here"
|
|
46
|
+
rows={4}
|
|
47
|
+
onChange={handleChange}
|
|
48
|
+
/>
|
|
49
|
+
\`\`\`
|
|
50
|
+
|
|
51
|
+
### With Value
|
|
52
|
+
|
|
53
|
+
\`\`\`tsx
|
|
54
|
+
<Textarea
|
|
55
|
+
value={textValue}
|
|
56
|
+
placeholder="Enter your text here"
|
|
57
|
+
rows={6}
|
|
58
|
+
onChange={handleChange}
|
|
59
|
+
/>
|
|
60
|
+
\`\`\`
|
|
61
|
+
|
|
62
|
+
## API Reference
|
|
63
|
+
|
|
64
|
+
### Props
|
|
65
|
+
|
|
66
|
+
| Prop | Type | Default | Description |
|
|
67
|
+
| ---- | ---- | ------- | ----------- |
|
|
68
|
+
| value | string | - | Textarea value |
|
|
69
|
+
| placeholder | string | - | Placeholder text |
|
|
70
|
+
| rows | number | 2 | Number of visible text lines |
|
|
71
|
+
| cols | number | - | Number of average character widths |
|
|
72
|
+
| size | 'sm' \\| 'md' \\| 'lg' | 'md' | Size of the textarea |
|
|
73
|
+
| variant | ThemeColor | 'secondary' | Color variant of the textarea |
|
|
74
|
+
| disabled | boolean | false | Whether the textarea is disabled |
|
|
75
|
+
| invalid | boolean | false | Whether the textarea is invalid |
|
|
76
|
+
| valid | boolean | false | Whether the textarea is valid |
|
|
77
|
+
| glass | boolean | false | Enable glass morphism effect |
|
|
78
|
+
| defaultValue | string | - | Initial value for uncontrolled textarea |
|
|
79
|
+
| onChange | (event: ChangeEvent) => void | - | Callback when textarea value changes |
|
|
80
|
+
`,
|
|
14
81
|
},
|
|
15
82
|
},
|
|
16
83
|
},
|
|
@@ -19,48 +86,96 @@ const meta = {
|
|
|
19
86
|
value: {
|
|
20
87
|
control: 'text',
|
|
21
88
|
description: 'Textarea value',
|
|
89
|
+
table: {
|
|
90
|
+
type: { summary: 'string' },
|
|
91
|
+
defaultValue: { summary: '-' },
|
|
92
|
+
},
|
|
22
93
|
},
|
|
23
94
|
placeholder: {
|
|
24
95
|
control: 'text',
|
|
25
96
|
description: 'Placeholder text',
|
|
97
|
+
table: {
|
|
98
|
+
type: { summary: 'string' },
|
|
99
|
+
defaultValue: { summary: '-' },
|
|
100
|
+
},
|
|
26
101
|
},
|
|
27
102
|
rows: {
|
|
28
103
|
control: 'number',
|
|
29
104
|
description: 'Number of visible text lines',
|
|
105
|
+
table: {
|
|
106
|
+
type: { summary: 'number' },
|
|
107
|
+
defaultValue: { summary: 2 },
|
|
108
|
+
},
|
|
30
109
|
},
|
|
31
110
|
cols: {
|
|
32
111
|
control: 'number',
|
|
33
112
|
description: 'Number of average character widths',
|
|
113
|
+
table: {
|
|
114
|
+
type: { summary: 'number' },
|
|
115
|
+
defaultValue: { summary: '-' },
|
|
116
|
+
},
|
|
34
117
|
},
|
|
35
118
|
size: {
|
|
36
119
|
control: { type: 'select' },
|
|
37
120
|
options: SIZES,
|
|
38
121
|
description: 'Size of the textarea',
|
|
122
|
+
table: {
|
|
123
|
+
type: { summary: '"sm" | "md" | "lg"' },
|
|
124
|
+
defaultValue: { summary: 'md' },
|
|
125
|
+
},
|
|
39
126
|
},
|
|
40
127
|
variant: {
|
|
41
128
|
control: { type: 'select' },
|
|
42
129
|
options: THEME_COLORS,
|
|
43
130
|
description: 'Color variant of the textarea',
|
|
131
|
+
table: {
|
|
132
|
+
type: { summary: 'ThemeColor' },
|
|
133
|
+
defaultValue: { summary: 'secondary' },
|
|
134
|
+
},
|
|
44
135
|
},
|
|
45
136
|
disabled: {
|
|
46
137
|
control: 'boolean',
|
|
47
138
|
description: 'Whether the textarea is disabled',
|
|
139
|
+
table: {
|
|
140
|
+
type: { summary: 'boolean' },
|
|
141
|
+
defaultValue: { summary: false },
|
|
142
|
+
},
|
|
48
143
|
},
|
|
49
144
|
invalid: {
|
|
50
145
|
control: 'boolean',
|
|
51
146
|
description: 'Whether the textarea is invalid',
|
|
147
|
+
table: {
|
|
148
|
+
type: { summary: 'boolean' },
|
|
149
|
+
defaultValue: { summary: false },
|
|
150
|
+
},
|
|
52
151
|
},
|
|
53
152
|
valid: {
|
|
54
153
|
control: 'boolean',
|
|
55
154
|
description: 'Whether the textarea is valid',
|
|
155
|
+
table: {
|
|
156
|
+
type: { summary: 'boolean' },
|
|
157
|
+
defaultValue: { summary: false },
|
|
158
|
+
},
|
|
56
159
|
},
|
|
57
160
|
glass: {
|
|
58
161
|
control: 'boolean',
|
|
59
162
|
description: 'Enable glass morphism effect',
|
|
163
|
+
table: {
|
|
164
|
+
type: { summary: 'boolean' },
|
|
165
|
+
defaultValue: { summary: false },
|
|
166
|
+
},
|
|
60
167
|
},
|
|
61
168
|
defaultValue: {
|
|
62
169
|
control: 'text',
|
|
63
170
|
description: 'Initial value for uncontrolled textarea',
|
|
171
|
+
table: {
|
|
172
|
+
type: { summary: 'string' },
|
|
173
|
+
defaultValue: { summary: '-' },
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
onChange: {
|
|
177
|
+
action: 'changed',
|
|
178
|
+
description: 'Callback when textarea value changes',
|
|
64
179
|
},
|
|
65
180
|
},
|
|
66
181
|
} satisfies Meta<typeof Textarea>;
|
|
@@ -69,11 +184,18 @@ export default meta;
|
|
|
69
184
|
type Story = StoryObj<typeof meta>;
|
|
70
185
|
|
|
71
186
|
// Basic textarea
|
|
72
|
-
export const
|
|
187
|
+
export const BasicUsage: Story = {
|
|
73
188
|
args: {
|
|
74
189
|
placeholder: 'Enter text here',
|
|
75
190
|
rows: 4,
|
|
76
191
|
},
|
|
192
|
+
parameters: {
|
|
193
|
+
docs: {
|
|
194
|
+
description: {
|
|
195
|
+
story: 'Basic textarea with placeholder and 4 rows.',
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
},
|
|
77
199
|
};
|
|
78
200
|
|
|
79
201
|
/**
|
|
@@ -85,6 +207,13 @@ export const Uncontrolled: Story = {
|
|
|
85
207
|
placeholder: 'Type something...',
|
|
86
208
|
rows: 4,
|
|
87
209
|
},
|
|
210
|
+
parameters: {
|
|
211
|
+
docs: {
|
|
212
|
+
description: {
|
|
213
|
+
story: 'Uncontrolled textarea with initial value.',
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
},
|
|
88
217
|
};
|
|
89
218
|
|
|
90
219
|
// With value
|
|
@@ -93,17 +222,31 @@ export const WithValue: Story = {
|
|
|
93
222
|
value: 'This is some sample text in the textarea.',
|
|
94
223
|
rows: 4,
|
|
95
224
|
},
|
|
225
|
+
parameters: {
|
|
226
|
+
docs: {
|
|
227
|
+
description: {
|
|
228
|
+
story: 'Textarea with pre-filled value.',
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
},
|
|
96
232
|
};
|
|
97
233
|
|
|
98
234
|
// Textarea sizes
|
|
99
235
|
export const Sizes: Story = {
|
|
100
236
|
render: () => (
|
|
101
237
|
<div className="u-flex u-flex-column u-gap-3" style={{ width: '300px' }}>
|
|
102
|
-
<Textarea
|
|
103
|
-
<Textarea
|
|
104
|
-
<Textarea
|
|
238
|
+
<Textarea placeholder="Small textarea" size="sm" rows={2} />
|
|
239
|
+
<Textarea placeholder="Medium textarea" size="md" rows={3} />
|
|
240
|
+
<Textarea placeholder="Large textarea" size="lg" rows={4} />
|
|
105
241
|
</div>
|
|
106
242
|
),
|
|
243
|
+
parameters: {
|
|
244
|
+
docs: {
|
|
245
|
+
description: {
|
|
246
|
+
story: 'Textarea in all available sizes.',
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
},
|
|
107
250
|
};
|
|
108
251
|
|
|
109
252
|
// Textarea rows
|