cleanplate 0.1.7 → 0.1.8
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/dist/components/accordion/Accordion.d.ts +15 -0
- package/dist/components/accordion/Accordion.d.ts.map +1 -0
- package/dist/components/accordion/index.d.ts +3 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/alert/Alert.d.ts +20 -0
- package/dist/components/alert/Alert.d.ts.map +1 -0
- package/dist/components/alert/index.d.ts +3 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/animated/Animated.d.ts +21 -0
- package/dist/components/animated/Animated.d.ts.map +1 -0
- package/dist/components/animated/index.d.ts +3 -0
- package/dist/components/animated/index.d.ts.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +5 -0
- package/dist/components/app-shell/AppShell.d.ts.map +1 -0
- package/dist/components/app-shell/index.d.ts +3 -0
- package/dist/components/app-shell/index.d.ts.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +22 -0
- package/dist/components/avatar/Avatar.d.ts.map +1 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/badge/Badge.d.ts +13 -0
- package/dist/components/badge/Badge.d.ts.map +1 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/bottom-sheet/BottomSheet.d.ts +18 -0
- package/dist/components/bottom-sheet/BottomSheet.d.ts.map +1 -0
- package/dist/components/bottom-sheet/index.d.ts +3 -0
- package/dist/components/bottom-sheet/index.d.ts.map +1 -0
- package/dist/components/breadcrumb/AppShell.d.ts +5 -0
- package/dist/components/breadcrumb/AppShell.d.ts.map +1 -0
- package/dist/components/breadcrumb/index.d.ts +3 -0
- package/dist/components/breadcrumb/index.d.ts.map +1 -0
- package/dist/components/button/Button.d.ts +21 -0
- package/dist/components/button/Button.d.ts.map +1 -0
- package/dist/components/button/index.d.ts +4 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/confirm-dialog/ConfirmDialog.d.ts +38 -0
- package/dist/components/confirm-dialog/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/confirm-dialog/index.d.ts +3 -0
- package/dist/components/confirm-dialog/index.d.ts.map +1 -0
- package/dist/components/container/Container.d.ts +30 -0
- package/dist/components/container/Container.d.ts.map +1 -0
- package/dist/components/container/index.d.ts +3 -0
- package/dist/components/container/index.d.ts.map +1 -0
- package/dist/components/dropdown/Dropdown.d.ts +32 -0
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/dropdown/index.d.ts +3 -0
- package/dist/components/dropdown/index.d.ts.map +1 -0
- package/dist/components/footer/Footer.d.ts +22 -0
- package/dist/components/footer/Footer.d.ts.map +1 -0
- package/dist/components/footer/index.d.ts +3 -0
- package/dist/components/footer/index.d.ts.map +1 -0
- package/dist/components/form-controls/Checkbox.d.ts +14 -0
- package/dist/components/form-controls/Checkbox.d.ts.map +1 -0
- package/dist/components/form-controls/Date.d.ts +11 -0
- package/dist/components/form-controls/Date.d.ts.map +1 -0
- package/dist/components/form-controls/File.d.ts +15 -0
- package/dist/components/form-controls/File.d.ts.map +1 -0
- package/dist/components/form-controls/Input.d.ts +18 -0
- package/dist/components/form-controls/Input.d.ts.map +1 -0
- package/dist/components/form-controls/Radio.d.ts +15 -0
- package/dist/components/form-controls/Radio.d.ts.map +1 -0
- package/dist/components/form-controls/Select.d.ts +18 -0
- package/dist/components/form-controls/Select.d.ts.map +1 -0
- package/dist/components/form-controls/Stepper.d.ts +17 -0
- package/dist/components/form-controls/Stepper.d.ts.map +1 -0
- package/dist/components/form-controls/TextArea.d.ts +16 -0
- package/dist/components/form-controls/TextArea.d.ts.map +1 -0
- package/dist/components/form-controls/Toggle.d.ts +15 -0
- package/dist/components/form-controls/Toggle.d.ts.map +1 -0
- package/dist/components/form-controls/index.d.ts +22 -0
- package/dist/components/form-controls/index.d.ts.map +1 -0
- package/dist/components/header/Header.d.ts +30 -0
- package/dist/components/header/Header.d.ts.map +1 -0
- package/dist/components/header/index.d.ts +3 -0
- package/dist/components/header/index.d.ts.map +1 -0
- package/dist/components/icon/Icon.d.ts +12 -0
- package/dist/components/icon/Icon.d.ts.map +1 -0
- package/dist/components/icon/index.d.ts +4 -0
- package/dist/components/icon/index.d.ts.map +1 -0
- package/dist/components/media-object/MediaObject.d.ts +18 -0
- package/dist/components/media-object/MediaObject.d.ts.map +1 -0
- package/dist/components/media-object/index.d.ts +4 -0
- package/dist/components/media-object/index.d.ts.map +1 -0
- package/dist/components/menu-list/MenuList.d.ts +24 -0
- package/dist/components/menu-list/MenuList.d.ts.map +1 -0
- package/dist/components/menu-list/index.d.ts +3 -0
- package/dist/components/menu-list/index.d.ts.map +1 -0
- package/dist/components/modal/Modal.d.ts +40 -0
- package/dist/components/modal/Modal.d.ts.map +1 -0
- package/dist/components/modal/index.d.ts +3 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/page-header/PageHeader.d.ts +5 -0
- package/dist/components/page-header/PageHeader.d.ts.map +1 -0
- package/dist/components/page-header/index.d.ts +3 -0
- package/dist/components/page-header/index.d.ts.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +30 -0
- package/dist/components/pagination/Pagination.d.ts.map +1 -0
- package/dist/components/pagination/index.d.ts +3 -0
- package/dist/components/pagination/index.d.ts.map +1 -0
- package/dist/components/pills/Pills.d.ts +24 -0
- package/dist/components/pills/Pills.d.ts.map +1 -0
- package/dist/components/pills/index.d.ts +3 -0
- package/dist/components/pills/index.d.ts.map +1 -0
- package/dist/components/progress-bar/ProgressBar.d.ts +20 -0
- package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -0
- package/dist/components/progress-bar/index.d.ts +3 -0
- package/dist/components/progress-bar/index.d.ts.map +1 -0
- package/dist/components/spinner/Spinner.d.ts +15 -0
- package/dist/components/spinner/Spinner.d.ts.map +1 -0
- package/dist/components/spinner/index.d.ts +3 -0
- package/dist/components/spinner/index.d.ts.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +16 -0
- package/dist/components/stepper/Stepper.d.ts.map +1 -0
- package/dist/components/stepper/index.d.ts +3 -0
- package/dist/components/stepper/index.d.ts.map +1 -0
- package/dist/components/table/Table.d.ts +37 -0
- package/dist/components/table/Table.d.ts.map +1 -0
- package/dist/components/table/index.d.ts +3 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/toast/Toast.d.ts +15 -0
- package/dist/components/toast/Toast.d.ts.map +1 -0
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/typography/Typography.d.ts +20 -0
- package/dist/components/typography/Typography.d.ts.map +1 -0
- package/dist/components/typography/index.d.ts +4 -0
- package/dist/components/typography/index.d.ts.map +1 -0
- package/dist/constants/common.d.ts +17 -0
- package/dist/constants/common.d.ts.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +3 -3
- package/dist/index.js +3 -3
- package/dist/utils/common.d.ts +9 -0
- package/dist/utils/common.d.ts.map +1 -0
- package/dist/utils/get-class-names.d.ts +2 -0
- package/dist/utils/get-class-names.d.ts.map +1 -0
- package/docs/Button.md +175 -0
- package/docs/Icon.md +194 -0
- package/docs/MediaObject.md +303 -0
- package/docs/Typography.md +226 -0
- package/docs-template-sample.md +67 -0
- package/llms.txt +76 -0
- package/package.json +12 -3
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# Typography Component
|
|
2
|
+
|
|
3
|
+
Purpose: Provides a consistent set of text styles for headings, paragraphs, and inline elements, ensuring clear hierarchy, readability, and brand-aligned communication across the interface.
|
|
4
|
+
|
|
5
|
+
## Props / Inputs
|
|
6
|
+
|
|
7
|
+
| Prop | Type | Required | Default | Description |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| children | React.ReactNode | no | — | Text content to display. |
|
|
10
|
+
| variant | "h1" \| "h2" \| "h3" \| "h4" \| "h5" \| "h6" \| "p" \| "span" \| "small" | no | "p" | HTML element type to render. Determines the semantic meaning and default styling. |
|
|
11
|
+
| margin | string \| string[] | no | "m-0" | Spacing utility token(s), such as `m-0` or `["m-1", "m-b-2"]`. |
|
|
12
|
+
| className | string | no | "" | Additional class names for the root element. |
|
|
13
|
+
| isBold | boolean | no | false | Applies bold font weight to the text. |
|
|
14
|
+
| align | "left" \| "center" \| "right" | no | "left" | Text alignment within its container. |
|
|
15
|
+
| wordBreak | "normal" \| "all" \| "wrap" | no | "normal" | Controls how words break when text overflows. |
|
|
16
|
+
| ...rest | any | no | — | All other standard HTML attributes are supported and passed through to the rendered element. |
|
|
17
|
+
|
|
18
|
+
## Types
|
|
19
|
+
|
|
20
|
+
### TypographyVariant
|
|
21
|
+
```typescript
|
|
22
|
+
type TypographyVariant = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "small";
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### TypographyAlign
|
|
26
|
+
```typescript
|
|
27
|
+
type TypographyAlign = "left" | "right" | "center";
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### TypographyWordBreak
|
|
31
|
+
```typescript
|
|
32
|
+
type TypographyWordBreak = "normal" | "all" | "wrap";
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### TypographyMargin
|
|
36
|
+
```typescript
|
|
37
|
+
type TypographyMargin = string | SpacingOption[];
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### SpacingOption
|
|
41
|
+
```typescript
|
|
42
|
+
type SpacingOption = typeof SPACING_OPTIONS[number];
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### TypographyProps
|
|
46
|
+
```typescript
|
|
47
|
+
interface TypographyProps {
|
|
48
|
+
children?: React.ReactNode;
|
|
49
|
+
variant?: TypographyVariant;
|
|
50
|
+
margin?: TypographyMargin;
|
|
51
|
+
className?: string;
|
|
52
|
+
isBold?: boolean;
|
|
53
|
+
align?: TypographyAlign;
|
|
54
|
+
wordBreak?: TypographyWordBreak;
|
|
55
|
+
[key: string]: any; // Allow other HTML attributes to be passed through
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Usage Examples
|
|
60
|
+
|
|
61
|
+
### Headings
|
|
62
|
+
|
|
63
|
+
```jsx
|
|
64
|
+
import { Typography } from "cleanplate";
|
|
65
|
+
|
|
66
|
+
export const Example = () => (
|
|
67
|
+
<>
|
|
68
|
+
<Typography variant="h1">Heading 1</Typography>
|
|
69
|
+
<Typography variant="h2">Heading 2</Typography>
|
|
70
|
+
<Typography variant="h3">Heading 3</Typography>
|
|
71
|
+
<Typography variant="h4">Heading 4</Typography>
|
|
72
|
+
<Typography variant="h5">Heading 5</Typography>
|
|
73
|
+
<Typography variant="h6">Heading 6</Typography>
|
|
74
|
+
</>
|
|
75
|
+
);
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Paragraph (default)
|
|
79
|
+
|
|
80
|
+
```jsx
|
|
81
|
+
import { Typography } from "cleanplate";
|
|
82
|
+
|
|
83
|
+
export const Example = () => (
|
|
84
|
+
<Typography>
|
|
85
|
+
This is a paragraph. When no variant is specified, it defaults to a paragraph element.
|
|
86
|
+
</Typography>
|
|
87
|
+
);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Small text
|
|
91
|
+
|
|
92
|
+
```jsx
|
|
93
|
+
import { Typography } from "cleanplate";
|
|
94
|
+
|
|
95
|
+
export const Example = () => (
|
|
96
|
+
<Typography variant="small">
|
|
97
|
+
This is small text, typically used for captions or fine print.
|
|
98
|
+
</Typography>
|
|
99
|
+
);
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Inline span
|
|
103
|
+
|
|
104
|
+
```jsx
|
|
105
|
+
import { Typography } from "cleanplate";
|
|
106
|
+
|
|
107
|
+
export const Example = () => (
|
|
108
|
+
<Typography variant="span">
|
|
109
|
+
This text is rendered as an inline span element.
|
|
110
|
+
</Typography>
|
|
111
|
+
);
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Text alignment
|
|
115
|
+
|
|
116
|
+
```jsx
|
|
117
|
+
import { Typography } from "cleanplate";
|
|
118
|
+
|
|
119
|
+
export const Example = () => (
|
|
120
|
+
<>
|
|
121
|
+
<Typography align="left">Left aligned text</Typography>
|
|
122
|
+
<Typography align="center">Center aligned text</Typography>
|
|
123
|
+
<Typography align="right">Right aligned text</Typography>
|
|
124
|
+
</>
|
|
125
|
+
);
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Bold text
|
|
129
|
+
|
|
130
|
+
```jsx
|
|
131
|
+
import { Typography } from "cleanplate";
|
|
132
|
+
|
|
133
|
+
export const Example = () => (
|
|
134
|
+
<>
|
|
135
|
+
<Typography>Normal weight text</Typography>
|
|
136
|
+
<Typography isBold>Bold text</Typography>
|
|
137
|
+
</>
|
|
138
|
+
);
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Word breaking
|
|
142
|
+
|
|
143
|
+
```jsx
|
|
144
|
+
import { Typography } from "cleanplate";
|
|
145
|
+
|
|
146
|
+
export const Example = () => (
|
|
147
|
+
<>
|
|
148
|
+
<Typography wordBreak="normal">
|
|
149
|
+
Normal word breaking behavior
|
|
150
|
+
</Typography>
|
|
151
|
+
<Typography wordBreak="all">
|
|
152
|
+
Break words at any point if needed
|
|
153
|
+
</Typography>
|
|
154
|
+
<Typography wordBreak="wrap">
|
|
155
|
+
Wrap text with word breaking
|
|
156
|
+
</Typography>
|
|
157
|
+
</>
|
|
158
|
+
);
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### With margin spacing
|
|
162
|
+
|
|
163
|
+
```jsx
|
|
164
|
+
import { Typography } from "cleanplate";
|
|
165
|
+
|
|
166
|
+
export const Example = () => (
|
|
167
|
+
<>
|
|
168
|
+
<Typography variant="h1" margin="m-2">
|
|
169
|
+
Heading with margin
|
|
170
|
+
</Typography>
|
|
171
|
+
<Typography margin={["m-1", "m-b-3"]}>
|
|
172
|
+
Paragraph with multiple margins
|
|
173
|
+
</Typography>
|
|
174
|
+
</>
|
|
175
|
+
);
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Combined properties
|
|
179
|
+
|
|
180
|
+
```jsx
|
|
181
|
+
import { Typography } from "cleanplate";
|
|
182
|
+
|
|
183
|
+
export const Example = () => (
|
|
184
|
+
<Typography
|
|
185
|
+
variant="h2"
|
|
186
|
+
isBold
|
|
187
|
+
align="center"
|
|
188
|
+
margin="m-4"
|
|
189
|
+
>
|
|
190
|
+
Centered, bold heading with margin
|
|
191
|
+
</Typography>
|
|
192
|
+
);
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### With HTML attributes
|
|
196
|
+
|
|
197
|
+
```jsx
|
|
198
|
+
import { Typography } from "cleanplate";
|
|
199
|
+
|
|
200
|
+
export const Example = () => (
|
|
201
|
+
<Typography
|
|
202
|
+
variant="p"
|
|
203
|
+
id="description"
|
|
204
|
+
data-testid="typography-description"
|
|
205
|
+
aria-label="Product description"
|
|
206
|
+
>
|
|
207
|
+
This paragraph has additional HTML attributes.
|
|
208
|
+
</Typography>
|
|
209
|
+
);
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Behavior Notes
|
|
213
|
+
|
|
214
|
+
- When no `variant` is specified, the component defaults to rendering a `<p>` (paragraph) element.
|
|
215
|
+
- The `variant` prop determines both the HTML element type (h1, h2, p, etc.) and the default styling applied.
|
|
216
|
+
- The component uses semantic HTML elements, which is important for accessibility and SEO.
|
|
217
|
+
- All standard HTML attributes can be passed through via the spread operator (`...rest`), allowing for custom `id`, `data-*`, `aria-*`, and other attributes.
|
|
218
|
+
- The `align` prop controls text alignment using CSS classes, not inline styles.
|
|
219
|
+
- The `wordBreak` prop provides control over how text wraps when it exceeds container width.
|
|
220
|
+
- Margin spacing accepts either a single string token (e.g., `"m-2"`) or an array of tokens (e.g., `["m-1", "m-b-3"]`).
|
|
221
|
+
- The `isBold` prop applies bold font weight, which can be combined with any variant.
|
|
222
|
+
|
|
223
|
+
## Related Components / Links
|
|
224
|
+
|
|
225
|
+
- Container (often used to wrap typography content)
|
|
226
|
+
- MediaObject (commonly uses Typography for text content)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Avatar Component
|
|
2
|
+
|
|
3
|
+
Purpose: Display a user avatar as an image, icon, or initials.
|
|
4
|
+
|
|
5
|
+
## Props / Inputs
|
|
6
|
+
|
|
7
|
+
| Prop | Type | Required | Default | Description |
|
|
8
|
+
| --- | --- | --- | --- | --- |
|
|
9
|
+
| name | string | no | "" | Used for initials, title text, and background color seed. |
|
|
10
|
+
| image | string | no | "" | Image URL to render when `icon` is not set. |
|
|
11
|
+
| icon | string | no | "" | Icon name to render when `image` is not set. |
|
|
12
|
+
| size | "small" \| "medium" | no | "medium" | Size variant. |
|
|
13
|
+
| margin | string \| string[] | no | "m-0" | Spacing utility token(s), such as `m-0` or `m-b-2`. |
|
|
14
|
+
| className | string | no | "" | Additional class names for the root element. |
|
|
15
|
+
| onClick | function | no | — | Called with the click event. |
|
|
16
|
+
|
|
17
|
+
## Types
|
|
18
|
+
|
|
19
|
+
None.
|
|
20
|
+
|
|
21
|
+
## Usage Examples
|
|
22
|
+
|
|
23
|
+
### Initials (default)
|
|
24
|
+
|
|
25
|
+
```jsx
|
|
26
|
+
import { Avatar } from "cleanplate";
|
|
27
|
+
|
|
28
|
+
export const Example = () => (
|
|
29
|
+
<Avatar name="Jane Doe" />
|
|
30
|
+
);
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Image avatar
|
|
34
|
+
|
|
35
|
+
```jsx
|
|
36
|
+
import { Avatar } from "cleanplate";
|
|
37
|
+
|
|
38
|
+
export const Example = () => (
|
|
39
|
+
<Avatar
|
|
40
|
+
name="Jane Doe"
|
|
41
|
+
image="https://example.com/jane.jpg"
|
|
42
|
+
size="small"
|
|
43
|
+
/>
|
|
44
|
+
);
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Icon avatar
|
|
48
|
+
|
|
49
|
+
```jsx
|
|
50
|
+
import { Avatar } from "cleanplate";
|
|
51
|
+
|
|
52
|
+
export const Example = () => (
|
|
53
|
+
<Avatar icon="person" />
|
|
54
|
+
);
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Behavior Notes
|
|
58
|
+
|
|
59
|
+
- Initials are derived from the first letter of each word and limited to 2 characters.
|
|
60
|
+
- Background color is generated from `name`, so the same name yields the same color.
|
|
61
|
+
- Provide only one of `image` or `icon`. If both are set, the component renders no content.
|
|
62
|
+
- The root element sets `title` to the value of `name`.
|
|
63
|
+
|
|
64
|
+
## Related Components / Links
|
|
65
|
+
|
|
66
|
+
- MediaObject
|
|
67
|
+
- Icon
|
package/llms.txt
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# CleanPlate Component Documentation Index
|
|
2
|
+
|
|
3
|
+
This file contains an index of all available component documentation for the CleanPlate UI framework.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
CleanPlate is a Headless React UI Framework providing reusable, accessible, and customizable components for building modern web applications.
|
|
8
|
+
|
|
9
|
+
## Component Documentation
|
|
10
|
+
|
|
11
|
+
All component documentation is located in the `docs/` folder. The following documentation files are available:
|
|
12
|
+
|
|
13
|
+
### Button Component
|
|
14
|
+
- File: `docs/Button.md`
|
|
15
|
+
- Purpose: A highly customizable and interactive UI element designed to handle user actions with various styles, sizes, and variants. Supports loading states, disabled states, and click events.
|
|
16
|
+
- Key Features: Variants (solid, outline, ghost, icon), sizes (small, medium), loading states, disabled states, fluid layout, margin spacing
|
|
17
|
+
- Types: ButtonProps, ButtonSize, ButtonVariant, ButtonMargin, SpacingOption
|
|
18
|
+
|
|
19
|
+
### Typography Component
|
|
20
|
+
- File: `docs/Typography.md`
|
|
21
|
+
- Purpose: Provides a consistent set of text styles for headings, paragraphs, and inline elements, ensuring clear hierarchy, readability, and brand-aligned communication across the interface.
|
|
22
|
+
- Key Features: Variants (h1-h6, p, span, small), text alignment, word breaking, bold text, margin spacing
|
|
23
|
+
- Types: TypographyProps, TypographyVariant, TypographyAlign, TypographyWordBreak, TypographyMargin, SpacingOption
|
|
24
|
+
|
|
25
|
+
### Icon Component
|
|
26
|
+
- File: `docs/Icon.md`
|
|
27
|
+
- Purpose: A versatile and reusable element for displaying scalable vector icons, supporting various sizes, colors, and custom classes. Uses Google Material Symbols.
|
|
28
|
+
- Key Features: Material Symbols integration, sizes (small, medium, large), colors (black, white, gray, blue, green, red, yellow, orange)
|
|
29
|
+
- Types: IconProps, IconSize, IconColor
|
|
30
|
+
- Note: Requires Material Symbols font to be included in the project
|
|
31
|
+
|
|
32
|
+
### MediaObject Component
|
|
33
|
+
- File: `docs/MediaObject.md`
|
|
34
|
+
- Purpose: A flexible layout pattern that combines media (icon, image, or avatar) with content (title and description). Perfect for displaying user profiles, product cards, notifications, and any content that needs a media element alongside text.
|
|
35
|
+
- Key Features: Media types (icon, image, avatar), title and description, margin and padding spacing, clickable support
|
|
36
|
+
- Types: MediaObjectProps, MediaObjectMargin, MediaObjectPadding, SpacingOption
|
|
37
|
+
- Related Components: Uses Avatar and Typography internally
|
|
38
|
+
|
|
39
|
+
## Documentation Format
|
|
40
|
+
|
|
41
|
+
All documentation files follow a consistent format:
|
|
42
|
+
1. Component name and purpose
|
|
43
|
+
2. Props/Inputs table with types, defaults, and descriptions
|
|
44
|
+
3. TypeScript type definitions
|
|
45
|
+
4. Usage examples covering common use cases
|
|
46
|
+
5. Behavior notes explaining important details
|
|
47
|
+
6. Related components and links
|
|
48
|
+
|
|
49
|
+
## Quick Reference
|
|
50
|
+
|
|
51
|
+
| Component | File | Primary Use Case |
|
|
52
|
+
|-----------|------|------------------|
|
|
53
|
+
| Button | `docs/Button.md` | User actions and interactions |
|
|
54
|
+
| Typography | `docs/Typography.md` | Text content and headings |
|
|
55
|
+
| Icon | `docs/Icon.md` | Visual icons and symbols |
|
|
56
|
+
| MediaObject | `docs/MediaObject.md` | Media + content layouts |
|
|
57
|
+
|
|
58
|
+
## Additional Resources
|
|
59
|
+
|
|
60
|
+
- Component source code: `src/components/`
|
|
61
|
+
- Storybook documentation: Available at the project's Storybook instance
|
|
62
|
+
- Type definitions: `src/types/` and component-specific type exports
|
|
63
|
+
- Storybook static build: `storybook-static/`
|
|
64
|
+
- Component stories: `src/stories/`
|
|
65
|
+
|
|
66
|
+
## Installation
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm install cleanplate
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Usage
|
|
73
|
+
|
|
74
|
+
```jsx
|
|
75
|
+
import { Button, Typography, Icon, MediaObject } from "cleanplate";
|
|
76
|
+
```
|
package/package.json
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cleanplate",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.8",
|
|
4
4
|
"description": "CleanPlate - A Headless React UI Framework",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.es.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
7
8
|
"scripts": {
|
|
8
9
|
"storybook": "storybook dev -p 6001",
|
|
9
10
|
"build-storybook": "storybook build",
|
|
10
|
-
"build-package": "rollup -c",
|
|
11
|
+
"build-package": "rollup -c && npm run build-types",
|
|
12
|
+
"build-types": "tsc --emitDeclarationOnly",
|
|
13
|
+
"type-check": "tsc --noEmit",
|
|
11
14
|
"generate-llms-txt": "storybook-llms-extractor --config llms.config.js"
|
|
12
15
|
},
|
|
13
16
|
"repository": {
|
|
@@ -27,6 +30,7 @@
|
|
|
27
30
|
"homepage": "https://cleanplate.sivadass.in",
|
|
28
31
|
"devDependencies": {
|
|
29
32
|
"@babel/preset-react": "^7.23.3",
|
|
33
|
+
"@babel/preset-typescript": "^7.28.5",
|
|
30
34
|
"@floating-ui/react": "^0.27.16",
|
|
31
35
|
"@fluentui/storybook-llms-extractor": "^0.0.2",
|
|
32
36
|
"@rollup/plugin-babel": "^6.0.4",
|
|
@@ -40,6 +44,10 @@
|
|
|
40
44
|
"@storybook/react": "^7.5.3",
|
|
41
45
|
"@storybook/react-vite": "^7.5.3",
|
|
42
46
|
"@storybook/testing-library": "^0.2.2",
|
|
47
|
+
"@types/node": "^25.0.9",
|
|
48
|
+
"@types/react": "^19.2.8",
|
|
49
|
+
"@types/react-dom": "^19.2.3",
|
|
50
|
+
"baseline-browser-mapping": "^2.9.16",
|
|
43
51
|
"prop-types": "^15.8.1",
|
|
44
52
|
"react": "^18.2.0",
|
|
45
53
|
"react-dom": "^18.2.0",
|
|
@@ -47,7 +55,8 @@
|
|
|
47
55
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
48
56
|
"rollup-plugin-postcss": "^4.0.2",
|
|
49
57
|
"sass": "^1.72.0",
|
|
50
|
-
"storybook": "^7.5.3"
|
|
58
|
+
"storybook": "^7.5.3",
|
|
59
|
+
"typescript": "^5.9.3"
|
|
51
60
|
},
|
|
52
61
|
"peerDependencies": {
|
|
53
62
|
"react": ">=18",
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
5
|
+
"jsx": "react-jsx",
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"moduleResolution": "node",
|
|
8
|
+
"resolveJsonModule": true,
|
|
9
|
+
"allowJs": true,
|
|
10
|
+
"checkJs": false,
|
|
11
|
+
"outDir": "./dist",
|
|
12
|
+
"declaration": true,
|
|
13
|
+
"declarationMap": true,
|
|
14
|
+
"emitDeclarationOnly": true,
|
|
15
|
+
"sourceMap": true,
|
|
16
|
+
"strict": false,
|
|
17
|
+
"noImplicitAny": false,
|
|
18
|
+
"esModuleInterop": true,
|
|
19
|
+
"skipLibCheck": true,
|
|
20
|
+
"forceConsistentCasingInFileNames": true,
|
|
21
|
+
"isolatedModules": true,
|
|
22
|
+
"allowSyntheticDefaultImports": true
|
|
23
|
+
},
|
|
24
|
+
"include": ["src/**/*"],
|
|
25
|
+
"exclude": ["node_modules", "dist", "storybook-static", "**/*.stories.*", "**/*.test.*", "**/*.spec.*"]
|
|
26
|
+
}
|