@vaneui/ui 0.3.1-alpha.20251201135827.a31cb1e → 0.3.1-alpha.20251213103636.79707b4
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/docs/propDocs.d.ts +2 -2
- package/dist/components/ui/docs/propDocs.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/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/typography.d.ts +223 -14
- package/dist/components/ui/typography.d.ts.map +1 -1
- package/dist/index.esm.js +839 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +839 -0
- package/dist/index.js.map +1 -1
- package/dist/ui.css +15 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -5409,31 +5409,228 @@ const ThemedComponent = forwardRef(function ThemedComponent(allProps, ref) {
|
|
|
5409
5409
|
return (jsx(Tag, { ref: ref, className: finalClasses, ...finalProps, children: props.children }));
|
|
5410
5410
|
});
|
|
5411
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, outline).
|
|
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 outline className="w-full">Delete</Button>
|
|
5441
|
+
* ```
|
|
5442
|
+
*
|
|
5443
|
+
* @see {@link ButtonProps} for all available props
|
|
5444
|
+
*/
|
|
5412
5445
|
const Button = forwardRef(function Button(props, ref) {
|
|
5413
5446
|
const theme = useTheme();
|
|
5414
5447
|
return jsx(ThemedComponent, { ref: ref, theme: theme.button, ...props });
|
|
5415
5448
|
});
|
|
5416
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 outline>Beta</Badge>
|
|
5479
|
+
* ```
|
|
5480
|
+
*
|
|
5481
|
+
* @see {@link BadgeProps} for all available props
|
|
5482
|
+
*/
|
|
5417
5483
|
const Badge = forwardRef(function Badge(props, ref) {
|
|
5418
5484
|
const theme = useTheme();
|
|
5419
5485
|
return jsx(ThemedComponent, { theme: theme.badge, ref: ref, ...props });
|
|
5420
5486
|
});
|
|
5421
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
|
+
*/
|
|
5422
5517
|
const Divider = forwardRef(function Divider(props, ref) {
|
|
5423
5518
|
const theme = useTheme();
|
|
5424
5519
|
return jsx(ThemedComponent, { theme: theme.divider, ref: ref, ...props });
|
|
5425
5520
|
});
|
|
5426
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 outline 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
|
+
*/
|
|
5427
5555
|
const Chip = forwardRef(function Chip(props, ref) {
|
|
5428
5556
|
const theme = useTheme();
|
|
5429
5557
|
return jsx(ThemedComponent, { theme: theme.chip, ref: ref, ...props });
|
|
5430
5558
|
});
|
|
5431
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 outline 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
|
+
*/
|
|
5432
5593
|
const Code = forwardRef(function Code(props, ref) {
|
|
5433
5594
|
const theme = useTheme();
|
|
5434
5595
|
return jsx(ThemedComponent, { theme: theme.code, ref: ref, ...props });
|
|
5435
5596
|
});
|
|
5436
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
|
+
*/
|
|
5437
5634
|
const Checkbox = forwardRef(function Checkbox(props, ref) {
|
|
5438
5635
|
const theme = useTheme();
|
|
5439
5636
|
// Extract only theme-relevant props for wrapper and check components
|
|
@@ -5467,97 +5664,739 @@ const Checkbox = forwardRef(function Checkbox(props, ref) {
|
|
|
5467
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() })] }));
|
|
5468
5665
|
});
|
|
5469
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
|
+
*/
|
|
5470
5706
|
const Label = forwardRef(function Label(props, ref) {
|
|
5471
5707
|
const theme = useTheme();
|
|
5472
5708
|
return jsx(ThemedComponent, { theme: theme.label, ref: ref, ...props });
|
|
5473
5709
|
});
|
|
5474
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
|
+
*/
|
|
5475
5744
|
const Img = forwardRef(function Img(props, ref) {
|
|
5476
5745
|
const theme = useTheme();
|
|
5477
5746
|
return (jsx(ThemedComponent, { theme: theme.img, ref: ref, ...props }));
|
|
5478
5747
|
});
|
|
5479
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 outline 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
|
+
*/
|
|
5480
5782
|
const Input = forwardRef(function Input(props, ref) {
|
|
5481
5783
|
const theme = useTheme();
|
|
5482
5784
|
return jsx(ThemedComponent, { ref: ref, theme: theme.input, ...props });
|
|
5483
5785
|
});
|
|
5484
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
|
+
*/
|
|
5485
5823
|
const Section = forwardRef(function Section(props, ref) {
|
|
5486
5824
|
const theme = useTheme();
|
|
5487
5825
|
return jsx(ThemedComponent, { theme: theme.section, ref: ref, ...props });
|
|
5488
5826
|
});
|
|
5489
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
|
+
*/
|
|
5490
5863
|
const Container = forwardRef(function Container(props, ref) {
|
|
5491
5864
|
const theme = useTheme();
|
|
5492
5865
|
return jsx(ThemedComponent, { theme: theme.container, ref: ref, ...props });
|
|
5493
5866
|
});
|
|
5494
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
|
+
*/
|
|
5495
5906
|
const Col = forwardRef(function Col(props, ref) {
|
|
5496
5907
|
const theme = useTheme();
|
|
5497
5908
|
return jsx(ThemedComponent, { theme: theme.col, ref: ref, ...props });
|
|
5498
5909
|
});
|
|
5499
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
|
+
*/
|
|
5500
5948
|
const Row = forwardRef(function Row(props, ref) {
|
|
5501
5949
|
const theme = useTheme();
|
|
5502
5950
|
return jsx(ThemedComponent, { theme: theme.row, ref: ref, ...props });
|
|
5503
5951
|
});
|
|
5504
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
|
+
*/
|
|
5505
5981
|
const Grid2 = forwardRef(function Grid2(props, ref) {
|
|
5506
5982
|
const theme = useTheme();
|
|
5507
5983
|
return jsx(ThemedComponent, { theme: theme.grid2, ref: ref, ...props });
|
|
5508
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
|
+
*/
|
|
5509
6003
|
const Grid3 = forwardRef(function Grid3(props, ref) {
|
|
5510
6004
|
const theme = useTheme();
|
|
5511
6005
|
return jsx(ThemedComponent, { theme: theme.grid3, ref: ref, ...props });
|
|
5512
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
|
+
*/
|
|
5513
6026
|
const Grid4 = forwardRef(function Grid4(props, ref) {
|
|
5514
6027
|
const theme = useTheme();
|
|
5515
6028
|
return jsx(ThemedComponent, { theme: theme.grid4, ref: ref, ...props });
|
|
5516
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
|
+
*/
|
|
5517
6050
|
const Grid5 = forwardRef(function Grid5(props, ref) {
|
|
5518
6051
|
const theme = useTheme();
|
|
5519
6052
|
return jsx(ThemedComponent, { theme: theme.grid5, ref: ref, ...props });
|
|
5520
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
|
+
*/
|
|
5521
6075
|
const Grid6 = forwardRef(function Grid6(props, ref) {
|
|
5522
6076
|
const theme = useTheme();
|
|
5523
6077
|
return jsx(ThemedComponent, { theme: theme.grid6, ref: ref, ...props });
|
|
5524
6078
|
});
|
|
5525
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 outline 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
|
+
*/
|
|
5526
6120
|
const Card = forwardRef(function Card(props, ref) {
|
|
5527
6121
|
const theme = useTheme();
|
|
5528
6122
|
return jsx(ThemedComponent, { ref: ref, theme: theme.card, ...props });
|
|
5529
6123
|
});
|
|
5530
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
|
+
*/
|
|
5531
6162
|
const Stack = forwardRef(function Stack(props, ref) {
|
|
5532
6163
|
const theme = useTheme();
|
|
5533
6164
|
const stackTheme = theme.stack;
|
|
5534
6165
|
return jsx(ThemedComponent, { theme: stackTheme, ref: ref, ...props });
|
|
5535
6166
|
});
|
|
5536
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
|
+
*/
|
|
5537
6195
|
const PageTitle = forwardRef(function PageTitle(props, ref) {
|
|
5538
6196
|
const theme = useTheme();
|
|
5539
6197
|
return jsx(ThemedComponent, { ref: ref, theme: theme.pageTitle, ...props });
|
|
5540
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
|
+
*/
|
|
5541
6226
|
const SectionTitle = forwardRef(function SectionTitle(props, ref) {
|
|
5542
6227
|
const theme = useTheme();
|
|
5543
6228
|
return jsx(ThemedComponent, { ref: ref, theme: theme.sectionTitle, ...props });
|
|
5544
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
|
+
*/
|
|
5545
6256
|
const Title = forwardRef(function Title(props, ref) {
|
|
5546
6257
|
const theme = useTheme();
|
|
5547
6258
|
return jsx(ThemedComponent, { ref: ref, theme: theme.title, ...props });
|
|
5548
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
|
+
*/
|
|
5549
6293
|
const Text = forwardRef(function Text(props, ref) {
|
|
5550
6294
|
const theme = useTheme();
|
|
5551
6295
|
return jsx(ThemedComponent, { ref: ref, theme: theme.text, ...props });
|
|
5552
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
|
+
*/
|
|
5553
6326
|
const Link = forwardRef(function Link(props, ref) {
|
|
5554
6327
|
const theme = useTheme();
|
|
5555
6328
|
return jsx(ThemedComponent, { ref: ref, theme: theme.link, ...props });
|
|
5556
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
|
+
*/
|
|
5557
6360
|
const ListItem = forwardRef(function ListItem(props, ref) {
|
|
5558
6361
|
const theme = useTheme();
|
|
5559
6362
|
return jsx(ThemedComponent, { ref: ref, theme: theme.listItem, ...props });
|
|
5560
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
|
+
*/
|
|
5561
6400
|
const List = forwardRef(function List(props, ref) {
|
|
5562
6401
|
const theme = useTheme();
|
|
5563
6402
|
return jsx(ThemedComponent, { ref: ref, theme: theme.list, ...props });
|