@vaneui/ui 0.3.1-alpha.20251130172447.8795285 → 0.3.1-alpha.20251201144940.b3e097b
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/ui/badge.d.ts +36 -2
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/button.d.ts +39 -3
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/card.d.ts +43 -2
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/checkbox.d.ts +39 -2
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/chip.d.ts +36 -2
- package/dist/components/ui/chip.d.ts.map +1 -1
- package/dist/components/ui/code.d.ts +36 -2
- package/dist/components/ui/code.d.ts.map +1 -1
- package/dist/components/ui/col.d.ts +41 -2
- package/dist/components/ui/col.d.ts.map +1 -1
- package/dist/components/ui/container.d.ts +38 -2
- package/dist/components/ui/container.d.ts.map +1 -1
- package/dist/components/ui/divider.d.ts +32 -2
- package/dist/components/ui/divider.d.ts.map +1 -1
- package/dist/components/ui/grid.d.ts +117 -10
- package/dist/components/ui/grid.d.ts.map +1 -1
- package/dist/components/ui/img.d.ts +36 -2
- package/dist/components/ui/img.d.ts.map +1 -1
- package/dist/components/ui/input.d.ts +36 -2
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/label.d.ts +42 -2
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/props/keys.d.ts +4 -28
- package/dist/components/ui/props/keys.d.ts.map +1 -1
- package/dist/components/ui/row.d.ts +40 -2
- package/dist/components/ui/row.d.ts.map +1 -1
- package/dist/components/ui/section.d.ts +39 -2
- package/dist/components/ui/section.d.ts.map +1 -1
- package/dist/components/ui/stack.d.ts +40 -2
- package/dist/components/ui/stack.d.ts.map +1 -1
- package/dist/components/ui/theme/appearance/appearanceTheme.d.ts.map +1 -1
- package/dist/components/ui/typography.d.ts +223 -14
- package/dist/components/ui/typography.d.ts.map +1 -1
- package/dist/index.esm.js +877 -124
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +876 -152
- package/dist/index.js.map +1 -1
- package/dist/ui.css +15 -0
- package/package.json +1 -1
- package/dist/components/ui/props/appearance.d.ts +0 -3
- package/dist/components/ui/props/appearance.d.ts.map +0 -1
- package/dist/components/ui/props/border.d.ts +0 -9
- package/dist/components/ui/props/border.d.ts.map +0 -1
- package/dist/components/ui/props/breakpoint.d.ts +0 -3
- package/dist/components/ui/props/breakpoint.d.ts.map +0 -1
- package/dist/components/ui/props/display.d.ts +0 -3
- package/dist/components/ui/props/display.d.ts.map +0 -1
- package/dist/components/ui/props/flexDirection.d.ts +0 -3
- package/dist/components/ui/props/flexDirection.d.ts.map +0 -1
- package/dist/components/ui/props/focusVisible.d.ts +0 -3
- package/dist/components/ui/props/focusVisible.d.ts.map +0 -1
- package/dist/components/ui/props/fontFamily.d.ts +0 -3
- package/dist/components/ui/props/fontFamily.d.ts.map +0 -1
- package/dist/components/ui/props/fontStyle.d.ts +0 -3
- package/dist/components/ui/props/fontStyle.d.ts.map +0 -1
- package/dist/components/ui/props/fontWeight.d.ts +0 -3
- package/dist/components/ui/props/fontWeight.d.ts.map +0 -1
- package/dist/components/ui/props/gap.d.ts +0 -3
- package/dist/components/ui/props/gap.d.ts.map +0 -1
- package/dist/components/ui/props/hide.d.ts +0 -3
- package/dist/components/ui/props/hide.d.ts.map +0 -1
- package/dist/components/ui/props/items.d.ts +0 -3
- package/dist/components/ui/props/items.d.ts.map +0 -1
- package/dist/components/ui/props/justify.d.ts +0 -3
- package/dist/components/ui/props/justify.d.ts.map +0 -1
- package/dist/components/ui/props/listStyle.d.ts +0 -3
- package/dist/components/ui/props/listStyle.d.ts.map +0 -1
- package/dist/components/ui/props/overflow.d.ts +0 -3
- package/dist/components/ui/props/overflow.d.ts.map +0 -1
- package/dist/components/ui/props/padding.d.ts +0 -3
- package/dist/components/ui/props/padding.d.ts.map +0 -1
- package/dist/components/ui/props/position.d.ts +0 -3
- package/dist/components/ui/props/position.d.ts.map +0 -1
- package/dist/components/ui/props/reverse.d.ts +0 -3
- package/dist/components/ui/props/reverse.d.ts.map +0 -1
- package/dist/components/ui/props/ring.d.ts +0 -3
- package/dist/components/ui/props/ring.d.ts.map +0 -1
- package/dist/components/ui/props/shadow.d.ts +0 -3
- package/dist/components/ui/props/shadow.d.ts.map +0 -1
- package/dist/components/ui/props/shape.d.ts +0 -3
- package/dist/components/ui/props/shape.d.ts.map +0 -1
- package/dist/components/ui/props/size.d.ts +0 -3
- package/dist/components/ui/props/size.d.ts.map +0 -1
- package/dist/components/ui/props/textAlign.d.ts +0 -3
- package/dist/components/ui/props/textAlign.d.ts.map +0 -1
- package/dist/components/ui/props/textDecoration.d.ts +0 -3
- package/dist/components/ui/props/textDecoration.d.ts.map +0 -1
- package/dist/components/ui/props/textTransform.d.ts +0 -3
- package/dist/components/ui/props/textTransform.d.ts.map +0 -1
- package/dist/components/ui/props/transparent.d.ts +0 -3
- package/dist/components/ui/props/transparent.d.ts.map +0 -1
- package/dist/components/ui/props/variant.d.ts +0 -3
- package/dist/components/ui/props/variant.d.ts.map +0 -1
- package/dist/components/ui/props/wrap.d.ts +0 -3
- package/dist/components/ui/props/wrap.d.ts.map +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -9,99 +9,6 @@ import { createContext, useContext, useMemo, forwardRef } from 'react';
|
|
|
9
9
|
class BaseTheme {
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
/** All appearance property values */
|
|
13
|
-
const APPEARANCE_VALUES = ['default', 'accent', 'primary', 'secondary', 'tertiary', 'success', 'danger', 'warning', 'info', 'link'];
|
|
14
|
-
|
|
15
|
-
/** Hide border - removes border styling (overrides appearance colors) */
|
|
16
|
-
const NO_BORDER = 'noBorder';
|
|
17
|
-
/** All border property values - includes all border variations and noBorder */
|
|
18
|
-
const BORDER_VALUES = ['border', 'borderT', 'borderB', 'borderL', 'borderR', 'borderX', 'borderY', 'noBorder'];
|
|
19
|
-
/** All border side keys (excluding noBorder since it doesn't have a CSS class) */
|
|
20
|
-
const BORDER_KEYS = ['border', 'borderT', 'borderB', 'borderL', 'borderR', 'borderX', 'borderY'];
|
|
21
|
-
|
|
22
|
-
/** All breakpoint property values */
|
|
23
|
-
const BREAKPOINT_VALUES = ['mobileCol', 'tabletCol', 'laptopCol', 'desktopCol'];
|
|
24
|
-
|
|
25
|
-
/** All display property values */
|
|
26
|
-
const DISPLAY_VALUES = ['inline', 'block', 'inlineBlock', 'flex', 'inlineFlex', 'grid', 'inlineGrid', 'contents', 'table', 'tableCell', 'hidden'];
|
|
27
|
-
|
|
28
|
-
/** All flex direction property values */
|
|
29
|
-
const FLEX_DIRECTION_VALUES = ['row', 'column', 'rowReverse', 'columnReverse'];
|
|
30
|
-
|
|
31
|
-
/** All font family property values */
|
|
32
|
-
const FONT_FAMILY_VALUES = ['sans', 'serif', 'mono'];
|
|
33
|
-
|
|
34
|
-
/** All font style property values */
|
|
35
|
-
const FONT_STYLE_VALUES = ['italic', 'notItalic'];
|
|
36
|
-
|
|
37
|
-
/** All font weight property values */
|
|
38
|
-
const FONT_WEIGHT_VALUES = ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'];
|
|
39
|
-
|
|
40
|
-
/** All gap property values */
|
|
41
|
-
const GAP_VALUES = ['gap', 'noGap'];
|
|
42
|
-
|
|
43
|
-
/** All hide property values */
|
|
44
|
-
const HIDE_VALUES = ['mobileHide', 'tabletHide', 'laptopHide', 'desktopHide'];
|
|
45
|
-
|
|
46
|
-
/** All items property values */
|
|
47
|
-
const ITEMS_VALUES = ['itemsStart', 'itemsEnd', 'itemsCenter', 'itemsBaseline', 'itemsStretch'];
|
|
48
|
-
|
|
49
|
-
/** All justify property values */
|
|
50
|
-
const JUSTIFY_VALUES = ['justifyStart', 'justifyEnd', 'justifyCenter', 'justifyBetween', 'justifyAround', 'justifyEvenly', 'justifyStretch', 'justifyBaseline'];
|
|
51
|
-
|
|
52
|
-
/** All list style property values */
|
|
53
|
-
const LIST_STYLE_VALUES = ['disc', 'decimal'];
|
|
54
|
-
|
|
55
|
-
/** All overflow property values */
|
|
56
|
-
const OVERFLOW_VALUES = [
|
|
57
|
-
'overflowAuto', 'overflowHidden', 'overflowClip', 'overflowVisible', 'overflowScroll',
|
|
58
|
-
'overflowXAuto', 'overflowYAuto', 'overflowXHidden', 'overflowYHidden',
|
|
59
|
-
'overflowXClip', 'overflowYClip', 'overflowXVisible', 'overflowYVisible',
|
|
60
|
-
'overflowXScroll', 'overflowYScroll'
|
|
61
|
-
];
|
|
62
|
-
|
|
63
|
-
/** All padding property values */
|
|
64
|
-
const PADDING_VALUES = ['padding', 'noPadding'];
|
|
65
|
-
|
|
66
|
-
/** All position property values */
|
|
67
|
-
const POSITION_VALUES = ['relative', 'absolute', 'fixed', 'sticky', 'static'];
|
|
68
|
-
|
|
69
|
-
/** All reverse property values */
|
|
70
|
-
const REVERSE_VALUES = ['reverse'];
|
|
71
|
-
|
|
72
|
-
/** All ring property values */
|
|
73
|
-
const RING_VALUES = ['ring', 'noRing'];
|
|
74
|
-
|
|
75
|
-
/** All shadow property values */
|
|
76
|
-
const SHADOW_VALUES = ['shadow', 'noShadow'];
|
|
77
|
-
|
|
78
|
-
/** All focusVisible property values */
|
|
79
|
-
const FOCUS_VISIBLE_VALUES = ['focusVisible', 'noFocusVisible'];
|
|
80
|
-
|
|
81
|
-
/** All shape property values */
|
|
82
|
-
const SHAPE_VALUES = ['pill', 'sharp', 'rounded'];
|
|
83
|
-
|
|
84
|
-
/** All size property values */
|
|
85
|
-
const SIZE_VALUES = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
86
|
-
|
|
87
|
-
/** All text align property values */
|
|
88
|
-
const TEXT_ALIGN_VALUES = ['textLeft', 'textCenter', 'textRight', 'textJustify'];
|
|
89
|
-
|
|
90
|
-
/** All text decoration property values */
|
|
91
|
-
const TEXT_DECORATION_VALUES = ['underline', 'lineThrough', 'noUnderline', 'overline'];
|
|
92
|
-
|
|
93
|
-
/** All text transform property values */
|
|
94
|
-
const TEXT_TRANSFORM_VALUES = ['uppercase', 'lowercase', 'capitalize', 'normalCase'];
|
|
95
|
-
|
|
96
|
-
/** All transparent property values */
|
|
97
|
-
const TRANSPARENT_VALUES = ['transparent'];
|
|
98
|
-
|
|
99
|
-
/** All variant property values */
|
|
100
|
-
const VARIANT_VALUES = ['filled', 'outline'];
|
|
101
|
-
|
|
102
|
-
/** All wrap property values */
|
|
103
|
-
const WRAP_VALUES = ['flexWrap', 'flexNoWrap', 'flexWrapReverse'];
|
|
104
|
-
|
|
105
12
|
/** Base state - default resting appearance */
|
|
106
13
|
const BASE = 'base';
|
|
107
14
|
/** Hover state - appearance when cursor hovers over element */
|
|
@@ -166,62 +73,69 @@ const APPEARANCE_CATEGORY = ['text', 'border', 'ring', 'shadow', 'bg', 'accent',
|
|
|
166
73
|
/** Component property keys mapping categories to their available values */
|
|
167
74
|
const ComponentKeys = {
|
|
168
75
|
/** Color appearance options */
|
|
169
|
-
appearance:
|
|
76
|
+
appearance: ['default', 'accent', 'primary', 'secondary', 'tertiary', 'success', 'danger', 'warning', 'info', 'link'],
|
|
170
77
|
/** Border visibility: includes all border variations and noBorder (border, borderT, borderB, etc., noBorder) */
|
|
171
|
-
border:
|
|
78
|
+
border: ['border', 'borderT', 'borderB', 'borderL', 'borderR', 'borderX', 'borderY', 'noBorder'],
|
|
172
79
|
/** Column breakpoints for responsive grid layouts */
|
|
173
|
-
breakpoint:
|
|
80
|
+
breakpoint: ['mobileCol', 'tabletCol', 'laptopCol', 'desktopCol'],
|
|
174
81
|
/** CSS display property values for element layout behavior */
|
|
175
|
-
display:
|
|
82
|
+
display: ['inline', 'block', 'inlineBlock', 'flex', 'inlineFlex', 'grid', 'inlineGrid', 'contents', 'table', 'tableCell', 'hidden'],
|
|
176
83
|
/** Flex direction: row (horizontal), column (vertical), or reversed variants */
|
|
177
|
-
flexDirection:
|
|
84
|
+
flexDirection: ['row', 'column', 'rowReverse', 'columnReverse'],
|
|
178
85
|
/** Font family types: sans-serif, serif, or monospace */
|
|
179
|
-
fontFamily:
|
|
86
|
+
fontFamily: ['sans', 'serif', 'mono'],
|
|
180
87
|
/** Font style: italic or notItalic (normal) */
|
|
181
|
-
fontStyle:
|
|
88
|
+
fontStyle: ['italic', 'notItalic'],
|
|
182
89
|
/** Font weight from thin (100) to black (900) */
|
|
183
|
-
fontWeight:
|
|
90
|
+
fontWeight: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],
|
|
184
91
|
/** Spacing between flex/grid items: gap (enabled) or noGap (disabled) */
|
|
185
|
-
gap:
|
|
92
|
+
gap: ['gap', 'noGap'],
|
|
186
93
|
/** Hide elements at specific breakpoint sizes */
|
|
187
|
-
hide:
|
|
94
|
+
hide: ['mobileHide', 'tabletHide', 'laptopHide', 'desktopHide'],
|
|
188
95
|
/** Cross-axis alignment for flex items (align-items) */
|
|
189
|
-
items:
|
|
96
|
+
items: ['itemsStart', 'itemsEnd', 'itemsCenter', 'itemsBaseline', 'itemsStretch'],
|
|
190
97
|
/** Main-axis alignment for flex items (justify-content) */
|
|
191
|
-
justify:
|
|
98
|
+
justify: ['justifyStart', 'justifyEnd', 'justifyCenter', 'justifyBetween', 'justifyAround', 'justifyEvenly', 'justifyStretch', 'justifyBaseline'],
|
|
192
99
|
/** List bullet/numbering style: disc (bullets) or decimal (numbers) */
|
|
193
|
-
listStyle:
|
|
100
|
+
listStyle: ['disc', 'decimal'],
|
|
194
101
|
/** Overflow behavior for content that exceeds container bounds */
|
|
195
|
-
overflow:
|
|
102
|
+
overflow: [
|
|
103
|
+
'overflowAuto', 'overflowHidden', 'overflowClip', 'overflowVisible', 'overflowScroll',
|
|
104
|
+
'overflowXAuto', 'overflowYAuto', 'overflowXHidden', 'overflowYHidden',
|
|
105
|
+
'overflowXClip', 'overflowYClip', 'overflowXVisible', 'overflowYVisible',
|
|
106
|
+
'overflowXScroll', 'overflowYScroll'
|
|
107
|
+
],
|
|
196
108
|
/** Internal spacing: padding (enabled) or noPadding (disabled) */
|
|
197
|
-
padding:
|
|
109
|
+
padding: ['padding', 'noPadding'],
|
|
198
110
|
/** CSS positioning: relative, absolute, fixed, sticky, static */
|
|
199
|
-
position:
|
|
111
|
+
position: ['relative', 'absolute', 'fixed', 'sticky', 'static'],
|
|
200
112
|
/** Reverse the order of flex items */
|
|
201
|
-
reverse:
|
|
113
|
+
reverse: ['reverse'],
|
|
202
114
|
/** Focus ring visibility: ring (show) or noRing (hide) */
|
|
203
|
-
ring:
|
|
115
|
+
ring: ['ring', 'noRing'],
|
|
204
116
|
/** Drop shadow visibility: shadow (enabled) or noShadow (disabled) */
|
|
205
|
-
shadow:
|
|
117
|
+
shadow: ['shadow', 'noShadow'],
|
|
206
118
|
/** Focus-visible outline visibility: focusVisible (show) or noFocusVisible (hide) */
|
|
207
|
-
focusVisible:
|
|
119
|
+
focusVisible: ['focusVisible', 'noFocusVisible'],
|
|
208
120
|
/** Border radius shape: pill (fully rounded), sharp (no radius), rounded (medium radius) */
|
|
209
|
-
shape:
|
|
121
|
+
shape: ['pill', 'sharp', 'rounded'],
|
|
210
122
|
/** Size scale from extra-small to extra-large */
|
|
211
|
-
size:
|
|
123
|
+
size: ['xs', 'sm', 'md', 'lg', 'xl'],
|
|
212
124
|
/** Text alignment: left, center, right, justify */
|
|
213
|
-
textAlign:
|
|
125
|
+
textAlign: ['textLeft', 'textCenter', 'textRight', 'textJustify'],
|
|
214
126
|
/** Text decoration: underline, strikethrough (lineThrough), none (noUnderline), overline */
|
|
215
|
-
textDecoration:
|
|
127
|
+
textDecoration: ['underline', 'lineThrough', 'noUnderline', 'overline'],
|
|
216
128
|
/** Text case transformation: UPPERCASE, lowercase, Capitalize, normalCase */
|
|
217
|
-
textTransform:
|
|
129
|
+
textTransform: ['uppercase', 'lowercase', 'capitalize', 'normalCase'],
|
|
218
130
|
/** Make background (layout/UI) or text (typography) transparent */
|
|
219
|
-
transparent:
|
|
131
|
+
transparent: ['transparent'],
|
|
220
132
|
/** Style variant: filled (solid background) or outline (border only) */
|
|
221
|
-
variant:
|
|
133
|
+
variant: ['filled', 'outline'],
|
|
222
134
|
/** Flex item wrapping behavior: wrap, no-wrap, or wrap-reverse */
|
|
223
|
-
wrap:
|
|
135
|
+
wrap: ['flexWrap', 'flexNoWrap', 'flexWrapReverse'],
|
|
224
136
|
};
|
|
137
|
+
/** All border side keys (excluding noBorder since it doesn't have a CSS class) */
|
|
138
|
+
const BORDER_KEYS = ['border', 'borderT', 'borderB', 'borderL', 'borderR', 'borderX', 'borderY'];
|
|
225
139
|
/** Composite categories built from core blocks */
|
|
226
140
|
/** Complete layout category including core and flex properties */
|
|
227
141
|
const LAYOUT_FULL = [...LAYOUT_CORE, ...LAYOUT_FLEX];
|
|
@@ -3795,11 +3709,11 @@ class AppearanceTheme extends BaseTheme {
|
|
|
3795
3709
|
var _a;
|
|
3796
3710
|
if (this.category === 'border') {
|
|
3797
3711
|
// If noBorder is selected from the border category, don't apply appearance colors
|
|
3798
|
-
if (extractedKeys.border ===
|
|
3712
|
+
if (extractedKeys.border === 'noBorder') {
|
|
3799
3713
|
return [];
|
|
3800
3714
|
}
|
|
3801
3715
|
// Only apply appearance colors if any border prop is set (and not noBorder)
|
|
3802
|
-
const hasBorderProps = extractedKeys.border !== undefined && extractedKeys.border !==
|
|
3716
|
+
const hasBorderProps = extractedKeys.border !== undefined && extractedKeys.border !== 'noBorder';
|
|
3803
3717
|
// If no border props are set, don't apply appearance colors
|
|
3804
3718
|
if (!hasBorderProps) {
|
|
3805
3719
|
return [];
|
|
@@ -5495,31 +5409,228 @@ const ThemedComponent = forwardRef(function ThemedComponent(allProps, ref) {
|
|
|
5495
5409
|
return (jsx(Tag, { ref: ref, className: finalClasses, ...finalProps, children: props.children }));
|
|
5496
5410
|
});
|
|
5497
5411
|
|
|
5412
|
+
/**
|
|
5413
|
+
* A clickable button component with customizable appearance, size, and behavior.
|
|
5414
|
+
*
|
|
5415
|
+
* Supports rendering as a button element or anchor tag when href is provided.
|
|
5416
|
+
* Can be styled with different appearances (primary, secondary, success, etc.),
|
|
5417
|
+
* sizes (xs to xl), and variants (filled, outlined, ghost).
|
|
5418
|
+
*
|
|
5419
|
+
* @example
|
|
5420
|
+
* ```tsx
|
|
5421
|
+
* // Basic button
|
|
5422
|
+
* <Button>Click me</Button>
|
|
5423
|
+
* ```
|
|
5424
|
+
*
|
|
5425
|
+
* @example
|
|
5426
|
+
* ```tsx
|
|
5427
|
+
* // Primary filled button with large size
|
|
5428
|
+
* <Button primary lg filled>Submit</Button>
|
|
5429
|
+
* ```
|
|
5430
|
+
*
|
|
5431
|
+
* @example
|
|
5432
|
+
* ```tsx
|
|
5433
|
+
* // Button as a link
|
|
5434
|
+
* <Button href="/about" secondary>About</Button>
|
|
5435
|
+
* ```
|
|
5436
|
+
*
|
|
5437
|
+
* @example
|
|
5438
|
+
* ```tsx
|
|
5439
|
+
* // Danger button with custom styling
|
|
5440
|
+
* <Button danger outlined className="w-full">Delete</Button>
|
|
5441
|
+
* ```
|
|
5442
|
+
*
|
|
5443
|
+
* @see {@link ButtonProps} for all available props
|
|
5444
|
+
*/
|
|
5498
5445
|
const Button = forwardRef(function Button(props, ref) {
|
|
5499
5446
|
const theme = useTheme();
|
|
5500
5447
|
return jsx(ThemedComponent, { ref: ref, theme: theme.button, ...props });
|
|
5501
5448
|
});
|
|
5502
5449
|
|
|
5450
|
+
/**
|
|
5451
|
+
* A compact badge component for displaying status, labels, or counts.
|
|
5452
|
+
*
|
|
5453
|
+
* Badges are typically used to highlight important information or indicate
|
|
5454
|
+
* status (e.g., "New", "Beta", notification counts). Supports the same
|
|
5455
|
+
* customization options as buttons including appearances, sizes, and variants.
|
|
5456
|
+
*
|
|
5457
|
+
* @example
|
|
5458
|
+
* ```tsx
|
|
5459
|
+
* // Basic badge
|
|
5460
|
+
* <Badge>New</Badge>
|
|
5461
|
+
* ```
|
|
5462
|
+
*
|
|
5463
|
+
* @example
|
|
5464
|
+
* ```tsx
|
|
5465
|
+
* // Success badge with filled variant
|
|
5466
|
+
* <Badge success filled>Active</Badge>
|
|
5467
|
+
* ```
|
|
5468
|
+
*
|
|
5469
|
+
* @example
|
|
5470
|
+
* ```tsx
|
|
5471
|
+
* // Notification count badge
|
|
5472
|
+
* <Badge danger pill xs>3</Badge>
|
|
5473
|
+
* ```
|
|
5474
|
+
*
|
|
5475
|
+
* @example
|
|
5476
|
+
* ```tsx
|
|
5477
|
+
* // Badge as a link
|
|
5478
|
+
* <Badge href="/beta" info outlined>Beta</Badge>
|
|
5479
|
+
* ```
|
|
5480
|
+
*
|
|
5481
|
+
* @see {@link BadgeProps} for all available props
|
|
5482
|
+
*/
|
|
5503
5483
|
const Badge = forwardRef(function Badge(props, ref) {
|
|
5504
5484
|
const theme = useTheme();
|
|
5505
5485
|
return jsx(ThemedComponent, { theme: theme.badge, ref: ref, ...props });
|
|
5506
5486
|
});
|
|
5507
5487
|
|
|
5488
|
+
/**
|
|
5489
|
+
* A visual separator component for dividing content sections.
|
|
5490
|
+
*
|
|
5491
|
+
* Renders a horizontal line to separate content blocks. Can be styled
|
|
5492
|
+
* with different appearances and sizes. Useful for creating visual
|
|
5493
|
+
* hierarchy and content organization.
|
|
5494
|
+
*
|
|
5495
|
+
* @example
|
|
5496
|
+
* ```tsx
|
|
5497
|
+
* // Basic divider
|
|
5498
|
+
* <Text>Section 1</Text>
|
|
5499
|
+
* <Divider />
|
|
5500
|
+
* <Text>Section 2</Text>
|
|
5501
|
+
* ```
|
|
5502
|
+
*
|
|
5503
|
+
* @example
|
|
5504
|
+
* ```tsx
|
|
5505
|
+
* // Styled divider
|
|
5506
|
+
* <Divider primary lg />
|
|
5507
|
+
* ```
|
|
5508
|
+
*
|
|
5509
|
+
* @example
|
|
5510
|
+
* ```tsx
|
|
5511
|
+
* // Divider with padding
|
|
5512
|
+
* <Divider padding />
|
|
5513
|
+
* ```
|
|
5514
|
+
*
|
|
5515
|
+
* @see {@link DividerProps} for all available props
|
|
5516
|
+
*/
|
|
5508
5517
|
const Divider = forwardRef(function Divider(props, ref) {
|
|
5509
5518
|
const theme = useTheme();
|
|
5510
5519
|
return jsx(ThemedComponent, { theme: theme.divider, ref: ref, ...props });
|
|
5511
5520
|
});
|
|
5512
5521
|
|
|
5522
|
+
/**
|
|
5523
|
+
* A chip component for displaying tags, filters, or selections.
|
|
5524
|
+
*
|
|
5525
|
+
* Chips are interactive elements commonly used to represent tags, filters,
|
|
5526
|
+
* or user selections. They typically appear in pill shape and can be
|
|
5527
|
+
* removed or clicked. Similar to badges but more interactive in nature.
|
|
5528
|
+
*
|
|
5529
|
+
* @example
|
|
5530
|
+
* ```tsx
|
|
5531
|
+
* // Basic chip
|
|
5532
|
+
* <Chip>React</Chip>
|
|
5533
|
+
* ```
|
|
5534
|
+
*
|
|
5535
|
+
* @example
|
|
5536
|
+
* ```tsx
|
|
5537
|
+
* // Filter chip with primary color
|
|
5538
|
+
* <Chip primary pill>JavaScript</Chip>
|
|
5539
|
+
* ```
|
|
5540
|
+
*
|
|
5541
|
+
* @example
|
|
5542
|
+
* ```tsx
|
|
5543
|
+
* // Removable tag chip
|
|
5544
|
+
* <Chip secondary outlined xs>TypeScript ×</Chip>
|
|
5545
|
+
* ```
|
|
5546
|
+
*
|
|
5547
|
+
* @example
|
|
5548
|
+
* ```tsx
|
|
5549
|
+
* // Clickable chip as link
|
|
5550
|
+
* <Chip href="/tag/react" accent>React</Chip>
|
|
5551
|
+
* ```
|
|
5552
|
+
*
|
|
5553
|
+
* @see {@link ChipProps} for all available props
|
|
5554
|
+
*/
|
|
5513
5555
|
const Chip = forwardRef(function Chip(props, ref) {
|
|
5514
5556
|
const theme = useTheme();
|
|
5515
5557
|
return jsx(ThemedComponent, { theme: theme.chip, ref: ref, ...props });
|
|
5516
5558
|
});
|
|
5517
5559
|
|
|
5560
|
+
/**
|
|
5561
|
+
* An inline code component for displaying code snippets or technical terms.
|
|
5562
|
+
*
|
|
5563
|
+
* Renders text in a monospace font with subtle background styling to
|
|
5564
|
+
* distinguish code from regular text. Ideal for inline code references,
|
|
5565
|
+
* variable names, or short code snippets within paragraphs.
|
|
5566
|
+
*
|
|
5567
|
+
* @example
|
|
5568
|
+
* ```tsx
|
|
5569
|
+
* // Basic inline code
|
|
5570
|
+
* <Code>const x = 10</Code>
|
|
5571
|
+
* ```
|
|
5572
|
+
*
|
|
5573
|
+
* @example
|
|
5574
|
+
* ```tsx
|
|
5575
|
+
* // Code with custom appearance
|
|
5576
|
+
* <Code primary filled>npm install</Code>
|
|
5577
|
+
* ```
|
|
5578
|
+
*
|
|
5579
|
+
* @example
|
|
5580
|
+
* ```tsx
|
|
5581
|
+
* // Code block style
|
|
5582
|
+
* <Code secondary outlined lg mono>function hello() {}</Code>
|
|
5583
|
+
* ```
|
|
5584
|
+
*
|
|
5585
|
+
* @example
|
|
5586
|
+
* ```tsx
|
|
5587
|
+
* // Code with custom styling
|
|
5588
|
+
* <Code className="px-4 py-2">git commit -m "message"</Code>
|
|
5589
|
+
* ```
|
|
5590
|
+
*
|
|
5591
|
+
* @see {@link CodeProps} for all available props
|
|
5592
|
+
*/
|
|
5518
5593
|
const Code = forwardRef(function Code(props, ref) {
|
|
5519
5594
|
const theme = useTheme();
|
|
5520
5595
|
return jsx(ThemedComponent, { theme: theme.code, ref: ref, ...props });
|
|
5521
5596
|
});
|
|
5522
5597
|
|
|
5598
|
+
/**
|
|
5599
|
+
* A styled checkbox component for forms and selections.
|
|
5600
|
+
*
|
|
5601
|
+
* Provides a custom-styled checkbox with checkmark visualization. Supports
|
|
5602
|
+
* all standard HTML checkbox attributes (checked, onChange, disabled, etc.)
|
|
5603
|
+
* and can be customized with appearances, sizes, and variants.
|
|
5604
|
+
*
|
|
5605
|
+
* @example
|
|
5606
|
+
* ```tsx
|
|
5607
|
+
* // Basic checkbox
|
|
5608
|
+
* <Checkbox />
|
|
5609
|
+
* ```
|
|
5610
|
+
*
|
|
5611
|
+
* @example
|
|
5612
|
+
* ```tsx
|
|
5613
|
+
* // Controlled checkbox with label
|
|
5614
|
+
* <Label>
|
|
5615
|
+
* <Checkbox checked={accepted} onChange={(e) => setAccepted(e.target.checked)} />
|
|
5616
|
+
* I accept the terms
|
|
5617
|
+
* </Label>
|
|
5618
|
+
* ```
|
|
5619
|
+
*
|
|
5620
|
+
* @example
|
|
5621
|
+
* ```tsx
|
|
5622
|
+
* // Primary checkbox with custom size
|
|
5623
|
+
* <Checkbox primary lg defaultChecked />
|
|
5624
|
+
* ```
|
|
5625
|
+
*
|
|
5626
|
+
* @example
|
|
5627
|
+
* ```tsx
|
|
5628
|
+
* // Disabled checkbox
|
|
5629
|
+
* <Checkbox disabled checked />
|
|
5630
|
+
* ```
|
|
5631
|
+
*
|
|
5632
|
+
* @see {@link CheckboxProps} for all available props
|
|
5633
|
+
*/
|
|
5523
5634
|
const Checkbox = forwardRef(function Checkbox(props, ref) {
|
|
5524
5635
|
const theme = useTheme();
|
|
5525
5636
|
// Extract only theme-relevant props for wrapper and check components
|
|
@@ -5553,101 +5664,743 @@ const Checkbox = forwardRef(function Checkbox(props, ref) {
|
|
|
5553
5664
|
return (jsxs(ThemedComponent, { theme: theme.checkbox.wrapper, ref: ref, ...themeProps, children: [jsx(ThemedComponent, { theme: theme.checkbox.input, ...inputProps }), jsx(ThemedComponent, { theme: theme.checkbox.check, ...themeProps, children: theme.checkbox.check.themes.checkElement() })] }));
|
|
5554
5665
|
});
|
|
5555
5666
|
|
|
5667
|
+
/**
|
|
5668
|
+
* A label component for form fields and inputs.
|
|
5669
|
+
*
|
|
5670
|
+
* Renders a semantic HTML label element with typography and styling support.
|
|
5671
|
+
* Typically used with form inputs like Input or Checkbox to provide
|
|
5672
|
+
* accessible labels. Clicking the label focuses the associated input.
|
|
5673
|
+
*
|
|
5674
|
+
* @example
|
|
5675
|
+
* ```tsx
|
|
5676
|
+
* // Basic label
|
|
5677
|
+
* <Label htmlFor="email">Email Address</Label>
|
|
5678
|
+
* ```
|
|
5679
|
+
*
|
|
5680
|
+
* @example
|
|
5681
|
+
* ```tsx
|
|
5682
|
+
* // Label with checkbox
|
|
5683
|
+
* <Label>
|
|
5684
|
+
* <Checkbox id="terms" />
|
|
5685
|
+
* I agree to the terms
|
|
5686
|
+
* </Label>
|
|
5687
|
+
* ```
|
|
5688
|
+
*
|
|
5689
|
+
* @example
|
|
5690
|
+
* ```tsx
|
|
5691
|
+
* // Styled label with custom appearance
|
|
5692
|
+
* <Label semibold primary>Username</Label>
|
|
5693
|
+
* ```
|
|
5694
|
+
*
|
|
5695
|
+
* @example
|
|
5696
|
+
* ```tsx
|
|
5697
|
+
* // Label with input
|
|
5698
|
+
* <Label htmlFor="password" className="block mb-2">
|
|
5699
|
+
* Password
|
|
5700
|
+
* </Label>
|
|
5701
|
+
* <Input id="password" type="password" />
|
|
5702
|
+
* ```
|
|
5703
|
+
*
|
|
5704
|
+
* @see {@link LabelProps} for all available props
|
|
5705
|
+
*/
|
|
5556
5706
|
const Label = forwardRef(function Label(props, ref) {
|
|
5557
5707
|
const theme = useTheme();
|
|
5558
5708
|
return jsx(ThemedComponent, { theme: theme.label, ref: ref, ...props });
|
|
5559
5709
|
});
|
|
5560
5710
|
|
|
5711
|
+
/**
|
|
5712
|
+
* An image component with styling and layout support.
|
|
5713
|
+
*
|
|
5714
|
+
* Wraps the HTML img element with VaneUI's styling system. Supports all
|
|
5715
|
+
* standard image attributes (src, alt, width, height, etc.) plus additional
|
|
5716
|
+
* props for borders, shadows, shapes, and positioning.
|
|
5717
|
+
*
|
|
5718
|
+
* @example
|
|
5719
|
+
* ```tsx
|
|
5720
|
+
* // Basic image
|
|
5721
|
+
* <Img src="/photo.jpg" alt="Description" />
|
|
5722
|
+
* ```
|
|
5723
|
+
*
|
|
5724
|
+
* @example
|
|
5725
|
+
* ```tsx
|
|
5726
|
+
* // Rounded image with border
|
|
5727
|
+
* <Img src="/avatar.jpg" alt="User" pill border primary />
|
|
5728
|
+
* ```
|
|
5729
|
+
*
|
|
5730
|
+
* @example
|
|
5731
|
+
* ```tsx
|
|
5732
|
+
* // Image with shadow and custom size
|
|
5733
|
+
* <Img src="/product.jpg" alt="Product" shadow lg />
|
|
5734
|
+
* ```
|
|
5735
|
+
*
|
|
5736
|
+
* @example
|
|
5737
|
+
* ```tsx
|
|
5738
|
+
* // Full width responsive image
|
|
5739
|
+
* <Img src="/banner.jpg" alt="Banner" className="w-full h-auto" />
|
|
5740
|
+
* ```
|
|
5741
|
+
*
|
|
5742
|
+
* @see {@link ImgProps} for all available props
|
|
5743
|
+
*/
|
|
5561
5744
|
const Img = forwardRef(function Img(props, ref) {
|
|
5562
5745
|
const theme = useTheme();
|
|
5563
5746
|
return (jsx(ThemedComponent, { theme: theme.img, ref: ref, ...props }));
|
|
5564
5747
|
});
|
|
5565
5748
|
|
|
5749
|
+
/**
|
|
5750
|
+
* A text input field component for forms and user data entry.
|
|
5751
|
+
*
|
|
5752
|
+
* Provides a styled input element with support for all standard HTML input
|
|
5753
|
+
* attributes and types. Can be customized with appearances, sizes, and variants
|
|
5754
|
+
* to match your design system. Supports all native input types (text, email, password, etc.).
|
|
5755
|
+
*
|
|
5756
|
+
* @example
|
|
5757
|
+
* ```tsx
|
|
5758
|
+
* // Basic text input
|
|
5759
|
+
* <Input placeholder="Enter your name" />
|
|
5760
|
+
* ```
|
|
5761
|
+
*
|
|
5762
|
+
* @example
|
|
5763
|
+
* ```tsx
|
|
5764
|
+
* // Email input with primary styling
|
|
5765
|
+
* <Input type="email" primary outlined placeholder="Email address" />
|
|
5766
|
+
* ```
|
|
5767
|
+
*
|
|
5768
|
+
* @example
|
|
5769
|
+
* ```tsx
|
|
5770
|
+
* // Large input with custom styling
|
|
5771
|
+
* <Input lg className="w-full" placeholder="Search..." />
|
|
5772
|
+
* ```
|
|
5773
|
+
*
|
|
5774
|
+
* @example
|
|
5775
|
+
* ```tsx
|
|
5776
|
+
* // Controlled input with state
|
|
5777
|
+
* <Input value={value} onChange={(e) => setValue(e.target.value)} />
|
|
5778
|
+
* ```
|
|
5779
|
+
*
|
|
5780
|
+
* @see {@link InputProps} for all available props
|
|
5781
|
+
*/
|
|
5566
5782
|
const Input = forwardRef(function Input(props, ref) {
|
|
5567
5783
|
const theme = useTheme();
|
|
5568
5784
|
return jsx(ThemedComponent, { ref: ref, theme: theme.input, ...props });
|
|
5569
5785
|
});
|
|
5570
5786
|
|
|
5787
|
+
/**
|
|
5788
|
+
* A semantic section container for grouping related content.
|
|
5789
|
+
*
|
|
5790
|
+
* Renders as a semantic HTML section element with generous layout spacing.
|
|
5791
|
+
* Use to organize page content into logical sections. Supports responsive
|
|
5792
|
+
* flex direction with breakpoint props (mobileCol, tabletCol, etc.).
|
|
5793
|
+
*
|
|
5794
|
+
* @example
|
|
5795
|
+
* ```tsx
|
|
5796
|
+
* // Basic section
|
|
5797
|
+
* <Section>
|
|
5798
|
+
* <SectionTitle>About</SectionTitle>
|
|
5799
|
+
* <Text>Section content here.</Text>
|
|
5800
|
+
* </Section>
|
|
5801
|
+
* ```
|
|
5802
|
+
*
|
|
5803
|
+
* @example
|
|
5804
|
+
* ```tsx
|
|
5805
|
+
* // Section with padding and gap
|
|
5806
|
+
* <Section padding gap>
|
|
5807
|
+
* <Title>Features</Title>
|
|
5808
|
+
* <Text>Feature descriptions...</Text>
|
|
5809
|
+
* </Section>
|
|
5810
|
+
* ```
|
|
5811
|
+
*
|
|
5812
|
+
* @example
|
|
5813
|
+
* ```tsx
|
|
5814
|
+
* // Responsive section that stacks on tablets
|
|
5815
|
+
* <Section tabletCol gap>
|
|
5816
|
+
* <Card>Card 1</Card>
|
|
5817
|
+
* <Card>Card 2</Card>
|
|
5818
|
+
* </Section>
|
|
5819
|
+
* ```
|
|
5820
|
+
*
|
|
5821
|
+
* @see {@link SectionProps} for all available props
|
|
5822
|
+
*/
|
|
5571
5823
|
const Section = forwardRef(function Section(props, ref) {
|
|
5572
5824
|
const theme = useTheme();
|
|
5573
5825
|
return jsx(ThemedComponent, { theme: theme.section, ref: ref, ...props });
|
|
5574
5826
|
});
|
|
5575
5827
|
|
|
5828
|
+
/**
|
|
5829
|
+
* A page-level content wrapper with maximum width constraints.
|
|
5830
|
+
*
|
|
5831
|
+
* Provides consistent horizontal padding and centers content on the page.
|
|
5832
|
+
* Typically the outermost wrapper for page content. Uses layout spacing
|
|
5833
|
+
* (larger gaps) for structural organization.
|
|
5834
|
+
*
|
|
5835
|
+
* @example
|
|
5836
|
+
* ```tsx
|
|
5837
|
+
* // Basic container
|
|
5838
|
+
* <Container>
|
|
5839
|
+
* <PageTitle>My Page</PageTitle>
|
|
5840
|
+
* <Text>Page content goes here.</Text>
|
|
5841
|
+
* </Container>
|
|
5842
|
+
* ```
|
|
5843
|
+
*
|
|
5844
|
+
* @example
|
|
5845
|
+
* ```tsx
|
|
5846
|
+
* // Container with custom spacing
|
|
5847
|
+
* <Container lg gap>
|
|
5848
|
+
* <Section>Section 1</Section>
|
|
5849
|
+
* <Section>Section 2</Section>
|
|
5850
|
+
* </Container>
|
|
5851
|
+
* ```
|
|
5852
|
+
*
|
|
5853
|
+
* @example
|
|
5854
|
+
* ```tsx
|
|
5855
|
+
* // Full-width container
|
|
5856
|
+
* <Container className="max-w-none">
|
|
5857
|
+
* Wide content
|
|
5858
|
+
* </Container>
|
|
5859
|
+
* ```
|
|
5860
|
+
*
|
|
5861
|
+
* @see {@link ContainerProps} for all available props
|
|
5862
|
+
*/
|
|
5576
5863
|
const Container = forwardRef(function Container(props, ref) {
|
|
5577
5864
|
const theme = useTheme();
|
|
5578
5865
|
return jsx(ThemedComponent, { theme: theme.container, ref: ref, ...props });
|
|
5579
5866
|
});
|
|
5580
5867
|
|
|
5868
|
+
/**
|
|
5869
|
+
* A column flex container for vertical content organization.
|
|
5870
|
+
*
|
|
5871
|
+
* Arranges children in a column (vertical) layout with consistent spacing.
|
|
5872
|
+
* Similar to Stack but without responsive breakpoints. Use for predictable
|
|
5873
|
+
* vertical layouts that don't need to change based on screen size.
|
|
5874
|
+
*
|
|
5875
|
+
* @example
|
|
5876
|
+
* ```tsx
|
|
5877
|
+
* // Basic column
|
|
5878
|
+
* <Col gap>
|
|
5879
|
+
* <Title>Column Content</Title>
|
|
5880
|
+
* <Text>First paragraph</Text>
|
|
5881
|
+
* <Text>Second paragraph</Text>
|
|
5882
|
+
* </Col>
|
|
5883
|
+
* ```
|
|
5884
|
+
*
|
|
5885
|
+
* @example
|
|
5886
|
+
* ```tsx
|
|
5887
|
+
* // Column with centered items
|
|
5888
|
+
* <Col itemsCenter justifyCenter gap>
|
|
5889
|
+
* <Badge>Status</Badge>
|
|
5890
|
+
* <Button>Action</Button>
|
|
5891
|
+
* </Col>
|
|
5892
|
+
* ```
|
|
5893
|
+
*
|
|
5894
|
+
* @example
|
|
5895
|
+
* ```tsx
|
|
5896
|
+
* // Full-height column
|
|
5897
|
+
* <Col className="h-screen" justifyBetween>
|
|
5898
|
+
* <header>Header</header>
|
|
5899
|
+
* <main>Main Content</main>
|
|
5900
|
+
* <footer>Footer</footer>
|
|
5901
|
+
* </Col>
|
|
5902
|
+
* ```
|
|
5903
|
+
*
|
|
5904
|
+
* @see {@link ColProps} for all available props
|
|
5905
|
+
*/
|
|
5581
5906
|
const Col = forwardRef(function Col(props, ref) {
|
|
5582
5907
|
const theme = useTheme();
|
|
5583
5908
|
return jsx(ThemedComponent, { theme: theme.col, ref: ref, ...props });
|
|
5584
5909
|
});
|
|
5585
5910
|
|
|
5911
|
+
/**
|
|
5912
|
+
* A horizontal flex container for arranging elements side-by-side.
|
|
5913
|
+
*
|
|
5914
|
+
* Arranges children horizontally with consistent spacing. Supports responsive
|
|
5915
|
+
* breakpoints to switch to vertical stacking on smaller screens. Uses layout
|
|
5916
|
+
* spacing for structural organization.
|
|
5917
|
+
*
|
|
5918
|
+
* @example
|
|
5919
|
+
* ```tsx
|
|
5920
|
+
* // Basic horizontal row
|
|
5921
|
+
* <Row gap>
|
|
5922
|
+
* <Button>Action 1</Button>
|
|
5923
|
+
* <Button>Action 2</Button>
|
|
5924
|
+
* </Row>
|
|
5925
|
+
* ```
|
|
5926
|
+
*
|
|
5927
|
+
* @example
|
|
5928
|
+
* ```tsx
|
|
5929
|
+
* // Row with space-between
|
|
5930
|
+
* <Row justifyBetween itemsCenter>
|
|
5931
|
+
* <Title>Page Header</Title>
|
|
5932
|
+
* <Button>CTA</Button>
|
|
5933
|
+
* </Row>
|
|
5934
|
+
* ```
|
|
5935
|
+
*
|
|
5936
|
+
* @example
|
|
5937
|
+
* ```tsx
|
|
5938
|
+
* // Responsive row (stacks on tablets and below)
|
|
5939
|
+
* <Row tabletCol gap>
|
|
5940
|
+
* <Card>Card 1</Card>
|
|
5941
|
+
* <Card>Card 2</Card>
|
|
5942
|
+
* <Card>Card 3</Card>
|
|
5943
|
+
* </Row>
|
|
5944
|
+
* ```
|
|
5945
|
+
*
|
|
5946
|
+
* @see {@link RowProps} for all available props
|
|
5947
|
+
*/
|
|
5586
5948
|
const Row = forwardRef(function Row(props, ref) {
|
|
5587
5949
|
const theme = useTheme();
|
|
5588
5950
|
return jsx(ThemedComponent, { theme: theme.row, ref: ref, ...props });
|
|
5589
5951
|
});
|
|
5590
5952
|
|
|
5953
|
+
/**
|
|
5954
|
+
* A 2-column CSS grid container.
|
|
5955
|
+
*
|
|
5956
|
+
* Creates a responsive grid with 2 equal-width columns. Grid items automatically
|
|
5957
|
+
* fill available columns. Uses CSS Grid for precise layout control.
|
|
5958
|
+
*
|
|
5959
|
+
* @example
|
|
5960
|
+
* ```tsx
|
|
5961
|
+
* // Basic 2-column grid
|
|
5962
|
+
* <Grid2 gap>
|
|
5963
|
+
* <Card>Item 1</Card>
|
|
5964
|
+
* <Card>Item 2</Card>
|
|
5965
|
+
* <Card>Item 3</Card>
|
|
5966
|
+
* <Card>Item 4</Card>
|
|
5967
|
+
* </Grid2>
|
|
5968
|
+
* ```
|
|
5969
|
+
*
|
|
5970
|
+
* @example
|
|
5971
|
+
* ```tsx
|
|
5972
|
+
* // Grid with custom styling
|
|
5973
|
+
* <Grid2 gap lg className="auto-rows-fr">
|
|
5974
|
+
* <div>Column 1</div>
|
|
5975
|
+
* <div>Column 2</div>
|
|
5976
|
+
* </Grid2>
|
|
5977
|
+
* ```
|
|
5978
|
+
*
|
|
5979
|
+
* @see {@link GridProps} for all available props
|
|
5980
|
+
*/
|
|
5591
5981
|
const Grid2 = forwardRef(function Grid2(props, ref) {
|
|
5592
5982
|
const theme = useTheme();
|
|
5593
5983
|
return jsx(ThemedComponent, { theme: theme.grid2, ref: ref, ...props });
|
|
5594
5984
|
});
|
|
5985
|
+
/**
|
|
5986
|
+
* A 3-column CSS grid container.
|
|
5987
|
+
*
|
|
5988
|
+
* Creates a responsive grid with 3 equal-width columns. Ideal for card
|
|
5989
|
+
* layouts and feature displays. Grid items automatically wrap to new rows.
|
|
5990
|
+
*
|
|
5991
|
+
* @example
|
|
5992
|
+
* ```tsx
|
|
5993
|
+
* // Basic 3-column grid
|
|
5994
|
+
* <Grid3 gap>
|
|
5995
|
+
* <Card>Feature 1</Card>
|
|
5996
|
+
* <Card>Feature 2</Card>
|
|
5997
|
+
* <Card>Feature 3</Card>
|
|
5998
|
+
* </Grid3>
|
|
5999
|
+
* ```
|
|
6000
|
+
*
|
|
6001
|
+
* @see {@link GridProps} for all available props
|
|
6002
|
+
*/
|
|
5595
6003
|
const Grid3 = forwardRef(function Grid3(props, ref) {
|
|
5596
6004
|
const theme = useTheme();
|
|
5597
6005
|
return jsx(ThemedComponent, { theme: theme.grid3, ref: ref, ...props });
|
|
5598
6006
|
});
|
|
6007
|
+
/**
|
|
6008
|
+
* A 4-column CSS grid container.
|
|
6009
|
+
*
|
|
6010
|
+
* Creates a responsive grid with 4 equal-width columns. Perfect for
|
|
6011
|
+
* image galleries or product listings with multiple items per row.
|
|
6012
|
+
*
|
|
6013
|
+
* @example
|
|
6014
|
+
* ```tsx
|
|
6015
|
+
* // Basic 4-column grid
|
|
6016
|
+
* <Grid4 gap>
|
|
6017
|
+
* <Img src="/img1.jpg" alt="1" />
|
|
6018
|
+
* <Img src="/img2.jpg" alt="2" />
|
|
6019
|
+
* <Img src="/img3.jpg" alt="3" />
|
|
6020
|
+
* <Img src="/img4.jpg" alt="4" />
|
|
6021
|
+
* </Grid4>
|
|
6022
|
+
* ```
|
|
6023
|
+
*
|
|
6024
|
+
* @see {@link GridProps} for all available props
|
|
6025
|
+
*/
|
|
5599
6026
|
const Grid4 = forwardRef(function Grid4(props, ref) {
|
|
5600
6027
|
const theme = useTheme();
|
|
5601
6028
|
return jsx(ThemedComponent, { theme: theme.grid4, ref: ref, ...props });
|
|
5602
6029
|
});
|
|
6030
|
+
/**
|
|
6031
|
+
* A 5-column CSS grid container.
|
|
6032
|
+
*
|
|
6033
|
+
* Creates a responsive grid with 5 equal-width columns. Useful for
|
|
6034
|
+
* dense layouts with many small items, like icon grids or tag clouds.
|
|
6035
|
+
*
|
|
6036
|
+
* @example
|
|
6037
|
+
* ```tsx
|
|
6038
|
+
* // Basic 5-column grid
|
|
6039
|
+
* <Grid5 gap>
|
|
6040
|
+
* <Badge>Tag 1</Badge>
|
|
6041
|
+
* <Badge>Tag 2</Badge>
|
|
6042
|
+
* <Badge>Tag 3</Badge>
|
|
6043
|
+
* <Badge>Tag 4</Badge>
|
|
6044
|
+
* <Badge>Tag 5</Badge>
|
|
6045
|
+
* </Grid5>
|
|
6046
|
+
* ```
|
|
6047
|
+
*
|
|
6048
|
+
* @see {@link GridProps} for all available props
|
|
6049
|
+
*/
|
|
5603
6050
|
const Grid5 = forwardRef(function Grid5(props, ref) {
|
|
5604
6051
|
const theme = useTheme();
|
|
5605
6052
|
return jsx(ThemedComponent, { theme: theme.grid5, ref: ref, ...props });
|
|
5606
6053
|
});
|
|
6054
|
+
/**
|
|
6055
|
+
* A 6-column CSS grid container.
|
|
6056
|
+
*
|
|
6057
|
+
* Creates a responsive grid with 6 equal-width columns. Ideal for very
|
|
6058
|
+
* dense layouts or dashboard widgets with many small components.
|
|
6059
|
+
*
|
|
6060
|
+
* @example
|
|
6061
|
+
* ```tsx
|
|
6062
|
+
* // Basic 6-column grid
|
|
6063
|
+
* <Grid6 gap>
|
|
6064
|
+
* <Chip>Item 1</Chip>
|
|
6065
|
+
* <Chip>Item 2</Chip>
|
|
6066
|
+
* <Chip>Item 3</Chip>
|
|
6067
|
+
* <Chip>Item 4</Chip>
|
|
6068
|
+
* <Chip>Item 5</Chip>
|
|
6069
|
+
* <Chip>Item 6</Chip>
|
|
6070
|
+
* </Grid6>
|
|
6071
|
+
* ```
|
|
6072
|
+
*
|
|
6073
|
+
* @see {@link GridProps} for all available props
|
|
6074
|
+
*/
|
|
5607
6075
|
const Grid6 = forwardRef(function Grid6(props, ref) {
|
|
5608
6076
|
const theme = useTheme();
|
|
5609
6077
|
return jsx(ThemedComponent, { theme: theme.grid6, ref: ref, ...props });
|
|
5610
6078
|
});
|
|
5611
6079
|
|
|
6080
|
+
/**
|
|
6081
|
+
* A container component for grouping related content with padding and borders.
|
|
6082
|
+
*
|
|
6083
|
+
* Cards provide visual separation and organization for content blocks. Support
|
|
6084
|
+
* responsive flex direction with breakpoint props. Use for content cards,
|
|
6085
|
+
* feature boxes, or any grouped content that needs visual distinction.
|
|
6086
|
+
*
|
|
6087
|
+
* @example
|
|
6088
|
+
* ```tsx
|
|
6089
|
+
* // Basic card
|
|
6090
|
+
* <Card>
|
|
6091
|
+
* <Title>Card Title</Title>
|
|
6092
|
+
* <Text>Card content goes here.</Text>
|
|
6093
|
+
* </Card>
|
|
6094
|
+
* ```
|
|
6095
|
+
*
|
|
6096
|
+
* @example
|
|
6097
|
+
* ```tsx
|
|
6098
|
+
* // Card with styling
|
|
6099
|
+
* <Card primary outlined shadow padding gap>
|
|
6100
|
+
* <Title>Feature</Title>
|
|
6101
|
+
* <Text>Description of the feature</Text>
|
|
6102
|
+
* <Button>Learn More</Button>
|
|
6103
|
+
* </Card>
|
|
6104
|
+
* ```
|
|
6105
|
+
*
|
|
6106
|
+
* @example
|
|
6107
|
+
* ```tsx
|
|
6108
|
+
* // Responsive card layout
|
|
6109
|
+
* <Card tabletCol gap padding>
|
|
6110
|
+
* <Img src="/image.jpg" alt="Image" />
|
|
6111
|
+
* <div>
|
|
6112
|
+
* <Title>Content</Title>
|
|
6113
|
+
* <Text>Details here</Text>
|
|
6114
|
+
* </div>
|
|
6115
|
+
* </Card>
|
|
6116
|
+
* ```
|
|
6117
|
+
*
|
|
6118
|
+
* @see {@link CardProps} for all available props
|
|
6119
|
+
*/
|
|
5612
6120
|
const Card = forwardRef(function Card(props, ref) {
|
|
5613
6121
|
const theme = useTheme();
|
|
5614
6122
|
return jsx(ThemedComponent, { ref: ref, theme: theme.card, ...props });
|
|
5615
6123
|
});
|
|
5616
6124
|
|
|
6125
|
+
/**
|
|
6126
|
+
* A vertical flex container for stacking elements.
|
|
6127
|
+
*
|
|
6128
|
+
* Arranges children vertically with consistent spacing. Supports responsive
|
|
6129
|
+
* breakpoints to switch to horizontal layout on larger screens. Uses layout
|
|
6130
|
+
* spacing for structural organization.
|
|
6131
|
+
*
|
|
6132
|
+
* @example
|
|
6133
|
+
* ```tsx
|
|
6134
|
+
* // Basic vertical stack
|
|
6135
|
+
* <Stack gap>
|
|
6136
|
+
* <Button>Button 1</Button>
|
|
6137
|
+
* <Button>Button 2</Button>
|
|
6138
|
+
* <Button>Button 3</Button>
|
|
6139
|
+
* </Stack>
|
|
6140
|
+
* ```
|
|
6141
|
+
*
|
|
6142
|
+
* @example
|
|
6143
|
+
* ```tsx
|
|
6144
|
+
* // Stack with padding and alignment
|
|
6145
|
+
* <Stack padding gap itemsCenter>
|
|
6146
|
+
* <Title>Centered Content</Title>
|
|
6147
|
+
* <Text>All items are centered</Text>
|
|
6148
|
+
* </Stack>
|
|
6149
|
+
* ```
|
|
6150
|
+
*
|
|
6151
|
+
* @example
|
|
6152
|
+
* ```tsx
|
|
6153
|
+
* // Responsive stack (becomes horizontal on desktop)
|
|
6154
|
+
* <Stack desktopCol gap>
|
|
6155
|
+
* <Card>Item 1</Card>
|
|
6156
|
+
* <Card>Item 2</Card>
|
|
6157
|
+
* </Stack>
|
|
6158
|
+
* ```
|
|
6159
|
+
*
|
|
6160
|
+
* @see {@link StackProps} for all available props
|
|
6161
|
+
*/
|
|
5617
6162
|
const Stack = forwardRef(function Stack(props, ref) {
|
|
5618
6163
|
const theme = useTheme();
|
|
5619
6164
|
const stackTheme = theme.stack;
|
|
5620
6165
|
return jsx(ThemedComponent, { theme: stackTheme, ref: ref, ...props });
|
|
5621
6166
|
});
|
|
5622
6167
|
|
|
6168
|
+
/**
|
|
6169
|
+
* A top-level page heading component (h1).
|
|
6170
|
+
*
|
|
6171
|
+
* Renders the main heading for a page with large, bold typography.
|
|
6172
|
+
* Automatically scales down on smaller screens for responsive design.
|
|
6173
|
+
* Can be rendered as a link when href prop is provided.
|
|
6174
|
+
*
|
|
6175
|
+
* @example
|
|
6176
|
+
* ```tsx
|
|
6177
|
+
* // Basic page title
|
|
6178
|
+
* <PageTitle>Welcome to My Site</PageTitle>
|
|
6179
|
+
* ```
|
|
6180
|
+
*
|
|
6181
|
+
* @example
|
|
6182
|
+
* ```tsx
|
|
6183
|
+
* // Page title with custom styling
|
|
6184
|
+
* <PageTitle primary xl>Product Launch</PageTitle>
|
|
6185
|
+
* ```
|
|
6186
|
+
*
|
|
6187
|
+
* @example
|
|
6188
|
+
* ```tsx
|
|
6189
|
+
* // Page title as a link
|
|
6190
|
+
* <PageTitle href="/">Home Page</PageTitle>
|
|
6191
|
+
* ```
|
|
6192
|
+
*
|
|
6193
|
+
* @see {@link TypographyProps} for all available props
|
|
6194
|
+
*/
|
|
5623
6195
|
const PageTitle = forwardRef(function PageTitle(props, ref) {
|
|
5624
6196
|
const theme = useTheme();
|
|
5625
6197
|
return jsx(ThemedComponent, { ref: ref, theme: theme.pageTitle, ...props });
|
|
5626
6198
|
});
|
|
6199
|
+
/**
|
|
6200
|
+
* A section heading component (h2).
|
|
6201
|
+
*
|
|
6202
|
+
* Renders a heading for major sections of content. Medium-large size with
|
|
6203
|
+
* responsive scaling on smaller screens. Typically used to divide page
|
|
6204
|
+
* content into logical sections.
|
|
6205
|
+
*
|
|
6206
|
+
* @example
|
|
6207
|
+
* ```tsx
|
|
6208
|
+
* // Basic section title
|
|
6209
|
+
* <SectionTitle>Features</SectionTitle>
|
|
6210
|
+
* ```
|
|
6211
|
+
*
|
|
6212
|
+
* @example
|
|
6213
|
+
* ```tsx
|
|
6214
|
+
* // Section title with styling
|
|
6215
|
+
* <SectionTitle secondary bold>About Us</SectionTitle>
|
|
6216
|
+
* ```
|
|
6217
|
+
*
|
|
6218
|
+
* @example
|
|
6219
|
+
* ```tsx
|
|
6220
|
+
* // Section title as a link
|
|
6221
|
+
* <SectionTitle href="#features">Jump to Features</SectionTitle>
|
|
6222
|
+
* ```
|
|
6223
|
+
*
|
|
6224
|
+
* @see {@link TypographyProps} for all available props
|
|
6225
|
+
*/
|
|
5627
6226
|
const SectionTitle = forwardRef(function SectionTitle(props, ref) {
|
|
5628
6227
|
const theme = useTheme();
|
|
5629
6228
|
return jsx(ThemedComponent, { ref: ref, theme: theme.sectionTitle, ...props });
|
|
5630
6229
|
});
|
|
6230
|
+
/**
|
|
6231
|
+
* A subsection heading component (h3).
|
|
6232
|
+
*
|
|
6233
|
+
* Renders a heading for subsections or cards. Medium size with subtle
|
|
6234
|
+
* responsive scaling. Use for content organization below section titles.
|
|
6235
|
+
*
|
|
6236
|
+
* @example
|
|
6237
|
+
* ```tsx
|
|
6238
|
+
* // Basic title
|
|
6239
|
+
* <Title>Getting Started</Title>
|
|
6240
|
+
* ```
|
|
6241
|
+
*
|
|
6242
|
+
* @example
|
|
6243
|
+
* ```tsx
|
|
6244
|
+
* // Title with custom appearance
|
|
6245
|
+
* <Title primary semibold>Installation</Title>
|
|
6246
|
+
* ```
|
|
6247
|
+
*
|
|
6248
|
+
* @example
|
|
6249
|
+
* ```tsx
|
|
6250
|
+
* // Title as a link
|
|
6251
|
+
* <Title href="/docs/intro">Documentation</Title>
|
|
6252
|
+
* ```
|
|
6253
|
+
*
|
|
6254
|
+
* @see {@link TypographyProps} for all available props
|
|
6255
|
+
*/
|
|
5631
6256
|
const Title = forwardRef(function Title(props, ref) {
|
|
5632
6257
|
const theme = useTheme();
|
|
5633
6258
|
return jsx(ThemedComponent, { ref: ref, theme: theme.title, ...props });
|
|
5634
6259
|
});
|
|
6260
|
+
/**
|
|
6261
|
+
* A body text component (p).
|
|
6262
|
+
*
|
|
6263
|
+
* Renders paragraph text with automatic URL detection and link conversion.
|
|
6264
|
+
* Use for main content, descriptions, and body copy. Can be rendered as
|
|
6265
|
+
* a link when href prop is provided.
|
|
6266
|
+
*
|
|
6267
|
+
* @example
|
|
6268
|
+
* ```tsx
|
|
6269
|
+
* // Basic paragraph
|
|
6270
|
+
* <Text>This is a paragraph of body text.</Text>
|
|
6271
|
+
* ```
|
|
6272
|
+
*
|
|
6273
|
+
* @example
|
|
6274
|
+
* ```tsx
|
|
6275
|
+
* // Text with custom styling
|
|
6276
|
+
* <Text secondary lg>Large secondary text content.</Text>
|
|
6277
|
+
* ```
|
|
6278
|
+
*
|
|
6279
|
+
* @example
|
|
6280
|
+
* ```tsx
|
|
6281
|
+
* // Text as a link
|
|
6282
|
+
* <Text href="/about">Learn more</Text>
|
|
6283
|
+
* ```
|
|
6284
|
+
*
|
|
6285
|
+
* @example
|
|
6286
|
+
* ```tsx
|
|
6287
|
+
* // Text with typography props
|
|
6288
|
+
* <Text mono semibold>Monospace bold text</Text>
|
|
6289
|
+
* ```
|
|
6290
|
+
*
|
|
6291
|
+
* @see {@link TypographyProps} for all available props
|
|
6292
|
+
*/
|
|
5635
6293
|
const Text = forwardRef(function Text(props, ref) {
|
|
5636
6294
|
const theme = useTheme();
|
|
5637
6295
|
return jsx(ThemedComponent, { ref: ref, theme: theme.text, ...props });
|
|
5638
6296
|
});
|
|
6297
|
+
/**
|
|
6298
|
+
* An anchor link component (a).
|
|
6299
|
+
*
|
|
6300
|
+
* Renders a hyperlink with hover underline effect. Inherits text styling
|
|
6301
|
+
* from parent or can be customized with typography props. Use for
|
|
6302
|
+
* navigation links and clickable text.
|
|
6303
|
+
*
|
|
6304
|
+
* @example
|
|
6305
|
+
* ```tsx
|
|
6306
|
+
* // Basic link
|
|
6307
|
+
* <Link href="/about">About Us</Link>
|
|
6308
|
+
* ```
|
|
6309
|
+
*
|
|
6310
|
+
* @example
|
|
6311
|
+
* ```tsx
|
|
6312
|
+
* // Styled link
|
|
6313
|
+
* <Link href="/contact" primary semibold>Contact</Link>
|
|
6314
|
+
* ```
|
|
6315
|
+
*
|
|
6316
|
+
* @example
|
|
6317
|
+
* ```tsx
|
|
6318
|
+
* // External link
|
|
6319
|
+
* <Link href="https://example.com" target="_blank" rel="noopener">
|
|
6320
|
+
* Visit Example
|
|
6321
|
+
* </Link>
|
|
6322
|
+
* ```
|
|
6323
|
+
*
|
|
6324
|
+
* @see {@link TypographyProps} for all available props
|
|
6325
|
+
*/
|
|
5639
6326
|
const Link = forwardRef(function Link(props, ref) {
|
|
5640
6327
|
const theme = useTheme();
|
|
5641
6328
|
return jsx(ThemedComponent, { ref: ref, theme: theme.link, ...props });
|
|
5642
6329
|
});
|
|
6330
|
+
/**
|
|
6331
|
+
* A list item component (li).
|
|
6332
|
+
*
|
|
6333
|
+
* Renders an individual list item within a List component. Supports
|
|
6334
|
+
* typography styling and can be rendered as a link when href is provided.
|
|
6335
|
+
* Use within List for bullet points or numbered lists.
|
|
6336
|
+
*
|
|
6337
|
+
* @example
|
|
6338
|
+
* ```tsx
|
|
6339
|
+
* // Basic list item
|
|
6340
|
+
* <List>
|
|
6341
|
+
* <ListItem>First item</ListItem>
|
|
6342
|
+
* <ListItem>Second item</ListItem>
|
|
6343
|
+
* </List>
|
|
6344
|
+
* ```
|
|
6345
|
+
*
|
|
6346
|
+
* @example
|
|
6347
|
+
* ```tsx
|
|
6348
|
+
* // Styled list item
|
|
6349
|
+
* <ListItem primary semibold>Important item</ListItem>
|
|
6350
|
+
* ```
|
|
6351
|
+
*
|
|
6352
|
+
* @example
|
|
6353
|
+
* ```tsx
|
|
6354
|
+
* // List item as a link
|
|
6355
|
+
* <ListItem href="/item/1">Click to view details</ListItem>
|
|
6356
|
+
* ```
|
|
6357
|
+
*
|
|
6358
|
+
* @see {@link TypographyProps} for all available props
|
|
6359
|
+
*/
|
|
5643
6360
|
const ListItem = forwardRef(function ListItem(props, ref) {
|
|
5644
6361
|
const theme = useTheme();
|
|
5645
6362
|
return jsx(ThemedComponent, { ref: ref, theme: theme.listItem, ...props });
|
|
5646
6363
|
});
|
|
6364
|
+
/**
|
|
6365
|
+
* A list container component (ul or ol).
|
|
6366
|
+
*
|
|
6367
|
+
* Renders an unordered (bullets) or ordered (numbers) list. Automatically
|
|
6368
|
+
* switches between ul and ol based on the `decimal` prop. Use with ListItem
|
|
6369
|
+
* components for structured lists.
|
|
6370
|
+
*
|
|
6371
|
+
* @example
|
|
6372
|
+
* ```tsx
|
|
6373
|
+
* // Unordered list (bullets)
|
|
6374
|
+
* <List>
|
|
6375
|
+
* <ListItem>Item one</ListItem>
|
|
6376
|
+
* <ListItem>Item two</ListItem>
|
|
6377
|
+
* </List>
|
|
6378
|
+
* ```
|
|
6379
|
+
*
|
|
6380
|
+
* @example
|
|
6381
|
+
* ```tsx
|
|
6382
|
+
* // Ordered list (numbers)
|
|
6383
|
+
* <List decimal>
|
|
6384
|
+
* <ListItem>First step</ListItem>
|
|
6385
|
+
* <ListItem>Second step</ListItem>
|
|
6386
|
+
* </List>
|
|
6387
|
+
* ```
|
|
6388
|
+
*
|
|
6389
|
+
* @example
|
|
6390
|
+
* ```tsx
|
|
6391
|
+
* // Styled list
|
|
6392
|
+
* <List primary lg padding>
|
|
6393
|
+
* <ListItem>Feature A</ListItem>
|
|
6394
|
+
* <ListItem>Feature B</ListItem>
|
|
6395
|
+
* </List>
|
|
6396
|
+
* ```
|
|
6397
|
+
*
|
|
6398
|
+
* @see {@link ListProps} for all available props
|
|
6399
|
+
*/
|
|
5647
6400
|
const List = forwardRef(function List(props, ref) {
|
|
5648
6401
|
const theme = useTheme();
|
|
5649
6402
|
return jsx(ThemedComponent, { ref: ref, theme: theme.list, ...props });
|
|
5650
6403
|
});
|
|
5651
6404
|
|
|
5652
|
-
export { ACTIVE, APPEARANCE_CATEGORY,
|
|
6405
|
+
export { ACTIVE, APPEARANCE_CATEGORY, BADGE_CATEGORIES, BASE, BORDER, BORDER_KEYS, BREAKPOINT, BUTTON_CATEGORIES, Badge, Button, CARD_CATEGORIES, CHECKBOX_CATEGORIES, CHIP_CATEGORIES, CODE_CATEGORIES, COL_CATEGORIES, COMPONENT, COMPONENT_PROPS_CATEGORY, CONTAINER_CATEGORIES, Card, Checkbox, Chip, Code, Col, ComponentCategories, ComponentKeys, Container, DIVIDER_CATEGORIES, Divider, FOCUS, FOCUS_VISIBLE, GRID_CATEGORIES, Grid2, Grid3, Grid4, Grid5, Grid6, HOVER, IMG_CATEGORIES, INPUT_CATEGORIES, INTERACTIVE_CATEGORIES, Img, Input, LABEL_CATEGORIES, LAYOUT_CORE, LAYOUT_FLEX, LAYOUT_FULL, LIST_CATEGORIES, LIST_STYLE, Label, Link, List, ListItem, MODE_VALUES, ModeKeys, PADDING, PageTitle, ROW_CATEGORIES, Row, SECTION_CATEGORIES, SHAPE, STACK_CATEGORIES, Section, SectionTitle, Stack, TYPOGRAPHY_CATEGORIES, TYPOGRAPHY_FULL, TYPOGRAPHY_STYLE, Text, ThemeProvider, Title, VARIANT, VISUAL_CORE, VISUAL_DECORATION, VISUAL_DECORATION_LAYOUT, VISUAL_FULL, VISUAL_LAYOUT, defaultTheme, themeDefaults, useTheme };
|
|
5653
6406
|
//# sourceMappingURL=index.esm.js.map
|