@vaneui/ui 0.3.1-alpha.20251201135827.a31cb1e → 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.
Files changed (40) hide show
  1. package/dist/components/ui/badge.d.ts +36 -2
  2. package/dist/components/ui/badge.d.ts.map +1 -1
  3. package/dist/components/ui/button.d.ts +39 -3
  4. package/dist/components/ui/button.d.ts.map +1 -1
  5. package/dist/components/ui/card.d.ts +43 -2
  6. package/dist/components/ui/card.d.ts.map +1 -1
  7. package/dist/components/ui/checkbox.d.ts +39 -2
  8. package/dist/components/ui/checkbox.d.ts.map +1 -1
  9. package/dist/components/ui/chip.d.ts +36 -2
  10. package/dist/components/ui/chip.d.ts.map +1 -1
  11. package/dist/components/ui/code.d.ts +36 -2
  12. package/dist/components/ui/code.d.ts.map +1 -1
  13. package/dist/components/ui/col.d.ts +41 -2
  14. package/dist/components/ui/col.d.ts.map +1 -1
  15. package/dist/components/ui/container.d.ts +38 -2
  16. package/dist/components/ui/container.d.ts.map +1 -1
  17. package/dist/components/ui/divider.d.ts +32 -2
  18. package/dist/components/ui/divider.d.ts.map +1 -1
  19. package/dist/components/ui/grid.d.ts +117 -10
  20. package/dist/components/ui/grid.d.ts.map +1 -1
  21. package/dist/components/ui/img.d.ts +36 -2
  22. package/dist/components/ui/img.d.ts.map +1 -1
  23. package/dist/components/ui/input.d.ts +36 -2
  24. package/dist/components/ui/input.d.ts.map +1 -1
  25. package/dist/components/ui/label.d.ts +42 -2
  26. package/dist/components/ui/label.d.ts.map +1 -1
  27. package/dist/components/ui/row.d.ts +40 -2
  28. package/dist/components/ui/row.d.ts.map +1 -1
  29. package/dist/components/ui/section.d.ts +39 -2
  30. package/dist/components/ui/section.d.ts.map +1 -1
  31. package/dist/components/ui/stack.d.ts +40 -2
  32. package/dist/components/ui/stack.d.ts.map +1 -1
  33. package/dist/components/ui/typography.d.ts +223 -14
  34. package/dist/components/ui/typography.d.ts.map +1 -1
  35. package/dist/index.esm.js +839 -0
  36. package/dist/index.esm.js.map +1 -1
  37. package/dist/index.js +839 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/ui.css +15 -0
  40. 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, 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
+ */
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 outlined>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 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
+ */
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 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
+ */
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 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
+ */
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 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
+ */
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 });