@mt-gloss/ui 0.0.2

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 (135) hide show
  1. package/README.md +33 -0
  2. package/index.css +1 -0
  3. package/index.d.ts +80 -0
  4. package/index.js +17560 -0
  5. package/lib/Accordion.d.ts +103 -0
  6. package/lib/AsyncLoader.d.ts +41 -0
  7. package/lib/Badge.d.ts +42 -0
  8. package/lib/Button.d.ts +73 -0
  9. package/lib/ButtonGroup.d.ts +72 -0
  10. package/lib/Card.d.ts +140 -0
  11. package/lib/Checkbox.d.ts +70 -0
  12. package/lib/CheckboxGroup.d.ts +162 -0
  13. package/lib/Chip.d.ts +68 -0
  14. package/lib/ColorPicker.d.ts +82 -0
  15. package/lib/DatePicker.d.ts +102 -0
  16. package/lib/DateRangePicker.d.ts +109 -0
  17. package/lib/Dropdown.d.ts +65 -0
  18. package/lib/FileUpload.d.ts +109 -0
  19. package/lib/Form.d.ts +119 -0
  20. package/lib/FormField.d.ts +69 -0
  21. package/lib/Input.d.ts +89 -0
  22. package/lib/InputGroup.d.ts +59 -0
  23. package/lib/Link.d.ts +69 -0
  24. package/lib/MaskedInput.d.ts +95 -0
  25. package/lib/Menu.d.ts +132 -0
  26. package/lib/NumberInput.d.ts +81 -0
  27. package/lib/Radio.d.ts +60 -0
  28. package/lib/RadioGroup.d.ts +163 -0
  29. package/lib/RangeSlider.d.ts +105 -0
  30. package/lib/Rating.d.ts +115 -0
  31. package/lib/SegmentedControl.d.ts +96 -0
  32. package/lib/Select.d.ts +205 -0
  33. package/lib/Slider.d.ts +111 -0
  34. package/lib/SplitButton.d.ts +84 -0
  35. package/lib/Textarea.d.ts +59 -0
  36. package/lib/TimePicker.d.ts +93 -0
  37. package/lib/Toggle.d.ts +68 -0
  38. package/lib/Tooltip.d.ts +89 -0
  39. package/lib/Transition.d.ts +107 -0
  40. package/lib/composed/AddressSelect.d.ts +132 -0
  41. package/lib/composed/PasswordInput.d.ts +75 -0
  42. package/lib/composed/PaymentMethodSelect.d.ts +96 -0
  43. package/lib/composed/PhoneInput.d.ts +71 -0
  44. package/lib/composed/SearchInput.d.ts +80 -0
  45. package/lib/composed/TagInput.d.ts +98 -0
  46. package/lib/composed/index.d.ts +12 -0
  47. package/lib/dashboard/ChartControlBar/ChartControlBar.d.ts +45 -0
  48. package/lib/dashboard/ChartControlBar/FilterInput.d.ts +34 -0
  49. package/lib/dashboard/ChartControlBar/FusedShape.d.ts +32 -0
  50. package/lib/dashboard/ChartControlBar/Row1Controls.d.ts +62 -0
  51. package/lib/dashboard/ChartControlBar/Row2FilterTray.d.ts +62 -0
  52. package/lib/dashboard/ChartControlBar/fixtures/controlBarStates.d.ts +4 -0
  53. package/lib/dashboard/ChartControlBar/index.d.ts +8 -0
  54. package/lib/dashboard/ChartControlBar/types.d.ts +37 -0
  55. package/lib/dashboard/ChartControlBar/useFilterLayout.d.ts +51 -0
  56. package/lib/dashboard/FilterChip/FilterChip.d.ts +26 -0
  57. package/lib/dashboard/FilterChip/fixtures/filterChips.d.ts +11 -0
  58. package/lib/dashboard/FilterChip/index.d.ts +3 -0
  59. package/lib/dashboard/FilterChip/types.d.ts +17 -0
  60. package/lib/dashboard/MetricCard/CardShell.d.ts +22 -0
  61. package/lib/dashboard/MetricCard/GutterActions.d.ts +56 -0
  62. package/lib/dashboard/MetricCard/MetricCard.d.ts +33 -0
  63. package/lib/dashboard/MetricCard/StackedGroupCard.d.ts +43 -0
  64. package/lib/dashboard/MetricCard/TrendIndicator.d.ts +20 -0
  65. package/lib/dashboard/MetricCard/fixtures/allVariants.d.ts +6 -0
  66. package/lib/dashboard/MetricCard/fixtures/sparklineCard.d.ts +5 -0
  67. package/lib/dashboard/MetricCard/fixtures/standardCard.d.ts +7 -0
  68. package/lib/dashboard/MetricCard/fixtures/states.d.ts +19 -0
  69. package/lib/dashboard/MetricCard/index.d.ts +20 -0
  70. package/lib/dashboard/MetricCard/types.d.ts +109 -0
  71. package/lib/dashboard/MetricCard/useSlideOutReveal.d.ts +42 -0
  72. package/lib/dashboard/MetricCard/utils/formatTrend.d.ts +2 -0
  73. package/lib/dashboard/MetricCard/utils/formatValue.d.ts +2 -0
  74. package/lib/dashboard/MetricCard/visualizations/BarsBg.d.ts +25 -0
  75. package/lib/dashboard/MetricCard/visualizations/DonutChart.d.ts +26 -0
  76. package/lib/dashboard/MetricCard/visualizations/ObjectArrow.d.ts +28 -0
  77. package/lib/dashboard/MetricCard/visualizations/SparklineBg.d.ts +24 -0
  78. package/lib/dashboard/MetricCardGrid/MetricCardGrid.d.ts +28 -0
  79. package/lib/dashboard/MetricCardGrid/fixtures/gridCards.d.ts +3 -0
  80. package/lib/dashboard/MetricCardGrid/fixtures/layouts.d.ts +7 -0
  81. package/lib/dashboard/MetricCardGrid/index.d.ts +4 -0
  82. package/lib/dashboard/MetricCardGrid/types.d.ts +28 -0
  83. package/lib/dashboard/Skeleton/Skeleton.d.ts +25 -0
  84. package/lib/dashboard/Skeleton/SkeletonCard.d.ts +20 -0
  85. package/lib/dashboard/Skeleton/SkeletonChart.d.ts +18 -0
  86. package/lib/dashboard/Skeleton/SkeletonTable.d.ts +18 -0
  87. package/lib/dashboard/Skeleton/fixtures/skeletonSamples.d.ts +7 -0
  88. package/lib/dashboard/Skeleton/index.d.ts +6 -0
  89. package/lib/dashboard/Skeleton/types.d.ts +55 -0
  90. package/lib/dashboard/TabGroup/TabGroup.d.ts +27 -0
  91. package/lib/dashboard/TabGroup/fixtures/tabGroups.d.ts +7 -0
  92. package/lib/dashboard/TabGroup/index.d.ts +3 -0
  93. package/lib/dashboard/TabGroup/types.d.ts +22 -0
  94. package/lib/dashboard/TabbedDataView/TabbedDataView.d.ts +29 -0
  95. package/lib/dashboard/TabbedDataView/fixtures/tabConfigs.d.ts +9 -0
  96. package/lib/dashboard/TabbedDataView/index.d.ts +3 -0
  97. package/lib/dashboard/TabbedDataView/types.d.ts +20 -0
  98. package/lib/dashboard/TimeFrame/ExpandableChip.d.ts +22 -0
  99. package/lib/dashboard/TimeFrame/HybridDatePicker.d.ts +24 -0
  100. package/lib/dashboard/TimeFrame/MarketPresetRow.d.ts +16 -0
  101. package/lib/dashboard/TimeFrame/MiniCalendar.d.ts +16 -0
  102. package/lib/dashboard/TimeFrame/TimeFrame.d.ts +21 -0
  103. package/lib/dashboard/TimeFrame/fixtures/timeFrameSamples.d.ts +17 -0
  104. package/lib/dashboard/TimeFrame/index.d.ts +14 -0
  105. package/lib/dashboard/TimeFrame/types.d.ts +202 -0
  106. package/lib/dashboard/TimeFrame/utils/dateHelpers.d.ts +1 -0
  107. package/lib/dashboard/TimeFrame/utils/presets.d.ts +1 -0
  108. package/lib/dashboard/TimeFrame/utils/smartDateFormat.d.ts +1 -0
  109. package/lib/dashboard/UnifiedBreakdownTable/UnifiedBreakdownTable.d.ts +24 -0
  110. package/lib/dashboard/UnifiedBreakdownTable/fixtures/columns.d.ts +5 -0
  111. package/lib/dashboard/UnifiedBreakdownTable/fixtures/itemRows.d.ts +15 -0
  112. package/lib/dashboard/UnifiedBreakdownTable/fixtures/orderRows.d.ts +15 -0
  113. package/lib/dashboard/UnifiedBreakdownTable/index.d.ts +7 -0
  114. package/lib/dashboard/UnifiedBreakdownTable/types.d.ts +61 -0
  115. package/lib/dashboard/UnifiedContextMenu/UnifiedContextMenu.d.ts +5 -0
  116. package/lib/dashboard/UnifiedContextMenu/fixtures/menuActions.d.ts +9 -0
  117. package/lib/dashboard/UnifiedContextMenu/index.d.ts +3 -0
  118. package/lib/dashboard/UnifiedContextMenu/types.d.ts +130 -0
  119. package/lib/dashboard/index.d.ts +10 -0
  120. package/lib/hooks/index.d.ts +3 -0
  121. package/lib/hooks/useArrowNavigation.d.ts +106 -0
  122. package/lib/hooks/useFocusReturn.d.ts +26 -0
  123. package/lib/hooks/useFocusTrap.d.ts +50 -0
  124. package/lib/patterns/feedback/DestructiveModal.d.ts +31 -0
  125. package/lib/patterns/feedback/index.d.ts +1 -0
  126. package/lib/patterns/forms/AddressGroup.d.ts +37 -0
  127. package/lib/patterns/forms/CreditCardForm.d.ts +41 -0
  128. package/lib/patterns/forms/LoginForm.d.ts +38 -0
  129. package/lib/patterns/forms/index.d.ts +3 -0
  130. package/lib/patterns/index.d.ts +14 -0
  131. package/lib/patterns/types.d.ts +63 -0
  132. package/lib/types/icon.d.ts +27 -0
  133. package/lib/utils/animations.d.ts +60 -0
  134. package/lib/utils/renderIcon.d.ts +21 -0
  135. package/package.json +59 -0
@@ -0,0 +1,103 @@
1
+ import { default as React } from 'react';
2
+ export type AccordionShowCount = 'always' | 'collapsed-only' | 'never';
3
+ export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * Content of the accordion (AccordionItem components)
6
+ */
7
+ children: React.ReactNode;
8
+ /**
9
+ * Additional CSS class names
10
+ */
11
+ className?: string;
12
+ }
13
+ /**
14
+ * Accordion - container for collapsible sections
15
+ *
16
+ * DOM Structure: `<div class="gloss-accordion">`
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <Accordion>
21
+ * <AccordionItem defaultOpen>
22
+ * <AccordionTrigger>Section 1</AccordionTrigger>
23
+ * <AccordionContent>Content here</AccordionContent>
24
+ * </AccordionItem>
25
+ * </Accordion>
26
+ * ```
27
+ */
28
+ export declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<HTMLDivElement>>;
29
+ export interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {
30
+ /**
31
+ * Whether the item is expanded by default (uncontrolled)
32
+ */
33
+ defaultOpen?: boolean;
34
+ /**
35
+ * Controlled open state
36
+ */
37
+ open?: boolean;
38
+ /**
39
+ * Callback when open state changes
40
+ */
41
+ onOpenChange?: (open: boolean) => void;
42
+ /**
43
+ * When to show the item count badge
44
+ * - 'always': Always show count
45
+ * - 'collapsed-only': Show count only when collapsed (default)
46
+ * - 'never': Never show count
47
+ */
48
+ showCount?: AccordionShowCount;
49
+ /**
50
+ * Whether the item is disabled
51
+ */
52
+ disabled?: boolean;
53
+ /**
54
+ * Content of the item (AccordionTrigger and AccordionContent)
55
+ */
56
+ children: React.ReactNode;
57
+ /**
58
+ * Additional CSS class names
59
+ */
60
+ className?: string;
61
+ }
62
+ /**
63
+ * AccordionItem - individual collapsible section
64
+ *
65
+ * DOM Structure: `<div class="gloss-accordion-item">`
66
+ */
67
+ export declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<HTMLDivElement>>;
68
+ export interface AccordionTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
69
+ /**
70
+ * Icon to display on the left side
71
+ */
72
+ icon?: React.ReactNode;
73
+ /**
74
+ * Content of the trigger (label text)
75
+ */
76
+ children: React.ReactNode;
77
+ /**
78
+ * Additional CSS class names
79
+ */
80
+ className?: string;
81
+ }
82
+ /**
83
+ * AccordionTrigger - clickable header that toggles the accordion
84
+ *
85
+ * DOM Structure: `<button class="gloss-accordion-trigger">`
86
+ */
87
+ export declare const AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>>;
88
+ export interface AccordionContentProps extends React.HTMLAttributes<HTMLDivElement> {
89
+ /**
90
+ * Content to display when expanded
91
+ */
92
+ children: React.ReactNode;
93
+ /**
94
+ * Additional CSS class names
95
+ */
96
+ className?: string;
97
+ }
98
+ /**
99
+ * AccordionContent - collapsible content area
100
+ *
101
+ * DOM Structure: `<div class="gloss-accordion-content">`
102
+ */
103
+ export declare const AccordionContent: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,41 @@
1
+ import { default as React } from 'react';
2
+ export interface AsyncLoaderProps {
3
+ /**
4
+ * Color variant for the loading animation
5
+ * @default 'blue'
6
+ */
7
+ color?: 'blue' | 'green';
8
+ /**
9
+ * Whether the loading animation is active
10
+ */
11
+ isLoading?: boolean;
12
+ /**
13
+ * Content to wrap (typically an Input component)
14
+ */
15
+ children?: React.ReactNode;
16
+ /**
17
+ * Additional CSS class names
18
+ */
19
+ className?: string;
20
+ }
21
+ /**
22
+ * AsyncLoader component - perimeter-tracing SVG animation wrapper
23
+ *
24
+ * DOM Structure:
25
+ * - `.gloss-async` wrapper (with `--loading` and `--{color}` modifiers)
26
+ * - `.gloss-async__container` containing two SVG elements
27
+ * - `.gloss-async__rect` (static background rect)
28
+ * - `.gloss-async__chaser` (animated chasing rect)
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <AsyncLoader isLoading color="blue">
33
+ * <Input value="checking..." />
34
+ * </AsyncLoader>
35
+ *
36
+ * <AsyncLoader isLoading color="green">
37
+ * <Input status="success" value="verified" />
38
+ * </AsyncLoader>
39
+ * ```
40
+ */
41
+ export declare const AsyncLoader: React.ForwardRefExoticComponent<AsyncLoaderProps & React.RefAttributes<HTMLDivElement>>;
package/lib/Badge.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ import { default as React } from 'react';
2
+ export type BadgeVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';
3
+ export type BadgeSize = 'sm' | 'md' | 'lg';
4
+ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
5
+ /**
6
+ * Color variant of the badge
7
+ */
8
+ variant?: BadgeVariant;
9
+ /**
10
+ * Size of the badge
11
+ */
12
+ size?: BadgeSize;
13
+ /**
14
+ * Whether to display as a small dot (ignores children)
15
+ */
16
+ dot?: boolean;
17
+ /**
18
+ * Whether the badge should have a subtle/soft appearance
19
+ */
20
+ soft?: boolean;
21
+ /**
22
+ * Content of the badge
23
+ */
24
+ children?: React.ReactNode;
25
+ /**
26
+ * Additional CSS class names
27
+ */
28
+ className?: string;
29
+ }
30
+ /**
31
+ * Badge component - small status indicator for labeling and categorization
32
+ *
33
+ * DOM Structure: `<span class="gloss-badge">`
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * <Badge variant="success">Active</Badge>
38
+ * <Badge variant="error" dot />
39
+ * <Badge variant="primary" size="lg">New</Badge>
40
+ * ```
41
+ */
42
+ export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,73 @@
1
+ import { default as React } from 'react';
2
+ import { IconSlotProps } from './types/icon';
3
+ import { TooltipPlacement } from './Tooltip';
4
+ export type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'outline' | 'danger' | 'danger-outline';
5
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, IconSlotProps {
6
+ /**
7
+ * Visual style variant
8
+ * @default 'primary'
9
+ */
10
+ variant?: ButtonVariant;
11
+ /**
12
+ * Button size
13
+ * @default 'md'
14
+ */
15
+ size?: 'sm' | 'md' | 'lg';
16
+ /**
17
+ * Loading state - shows spinner and disables interaction
18
+ */
19
+ isLoading?: boolean;
20
+ /**
21
+ * Disabled state
22
+ */
23
+ disabled?: boolean;
24
+ /**
25
+ * Error state - shows error icon and makes button clickable to fix errors
26
+ * If string, displays as tooltip. If true, shows icon without tooltip.
27
+ */
28
+ error?: string | boolean;
29
+ /**
30
+ * Renders button as icon-only (square aspect ratio)
31
+ * Requires leftIcon or rightIcon, and aria-label for accessibility
32
+ */
33
+ iconOnly?: boolean;
34
+ /**
35
+ * Makes button full width of container
36
+ */
37
+ fullWidth?: boolean;
38
+ /**
39
+ * Tooltip content - wraps button with Tooltip component
40
+ */
41
+ tooltip?: React.ReactNode;
42
+ /**
43
+ * Tooltip placement
44
+ * @default 'top'
45
+ */
46
+ tooltipPlacement?: TooltipPlacement;
47
+ /**
48
+ * Delay before showing tooltip (ms)
49
+ * @default 200
50
+ */
51
+ tooltipDelay?: number;
52
+ /**
53
+ * Content of the button
54
+ */
55
+ children?: React.ReactNode;
56
+ /**
57
+ * Additional CSS class names
58
+ */
59
+ className?: string;
60
+ }
61
+ /**
62
+ * Button component with tactile feedback and multiple variants
63
+ *
64
+ * DOM Structure: `<button class="gloss-btn gloss-btn--{variant}">`
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * <Button variant="primary">Save</Button>
69
+ * <Button variant="secondary" disabled>Cancel</Button>
70
+ * <Button variant="ghost" isLoading>Loading...</Button>
71
+ * ```
72
+ */
73
+ export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,72 @@
1
+ import { default as React } from 'react';
2
+ import { ButtonVariant } from './Button';
3
+ export interface ButtonGroupProps {
4
+ /**
5
+ * Button elements to group
6
+ */
7
+ children: React.ReactNode;
8
+ /**
9
+ * Orientation of the group
10
+ * @default 'horizontal'
11
+ */
12
+ orientation?: 'horizontal' | 'vertical';
13
+ /**
14
+ * Visual style for connected buttons (removes gaps, merges borders)
15
+ * @default false
16
+ */
17
+ attached?: boolean;
18
+ /**
19
+ * Size applied to all child buttons via context
20
+ */
21
+ size?: 'sm' | 'md' | 'lg';
22
+ /**
23
+ * Variant applied to all child buttons via context
24
+ */
25
+ variant?: ButtonVariant;
26
+ /**
27
+ * Full width distribution - buttons share available space equally
28
+ * @default false
29
+ */
30
+ fullWidth?: boolean;
31
+ /**
32
+ * Gap between buttons when not attached
33
+ * @default 'md'
34
+ */
35
+ gap?: 'none' | 'sm' | 'md' | 'lg';
36
+ /**
37
+ * Additional CSS class names
38
+ */
39
+ className?: string;
40
+ }
41
+ /**
42
+ * Context for sharing ButtonGroup props with child buttons
43
+ */
44
+ export interface ButtonGroupContextValue {
45
+ size?: 'sm' | 'md' | 'lg';
46
+ variant?: ButtonVariant;
47
+ isInGroup: boolean;
48
+ }
49
+ export declare const ButtonGroupContext: React.Context<ButtonGroupContextValue>;
50
+ /**
51
+ * ButtonGroup component for grouping related buttons
52
+ *
53
+ * DOM Structure: `<div class="gloss-btn-group">`
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * // Attached button group
58
+ * <ButtonGroup attached>
59
+ * <Button>Left</Button>
60
+ * <Button>Center</Button>
61
+ * <Button>Right</Button>
62
+ * </ButtonGroup>
63
+ *
64
+ * // Vertical button group
65
+ * <ButtonGroup orientation="vertical" variant="secondary">
66
+ * <Button>Option 1</Button>
67
+ * <Button>Option 2</Button>
68
+ * <Button>Option 3</Button>
69
+ * </ButtonGroup>
70
+ * ```
71
+ */
72
+ export declare const ButtonGroup: React.ForwardRefExoticComponent<ButtonGroupProps & React.RefAttributes<HTMLDivElement>>;
package/lib/Card.d.ts ADDED
@@ -0,0 +1,140 @@
1
+ import { default as React } from 'react';
2
+ export type CardVariant = 'elevated' | 'outlined' | 'filled';
3
+ export type CardSize = 'sm' | 'md' | 'lg';
4
+ export type CardPadding = 'none' | 'sm' | 'md' | 'lg';
5
+ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
6
+ /**
7
+ * Visual style variant
8
+ * - elevated: Default style with shadow (default)
9
+ * - outlined: Border-focused, no shadow
10
+ * - filled: Subtle background fill
11
+ */
12
+ variant?: CardVariant;
13
+ /**
14
+ * Size of the card (affects padding)
15
+ */
16
+ size?: CardSize;
17
+ /**
18
+ * Whether the card should have interactive hover effects
19
+ */
20
+ interactive?: boolean;
21
+ /**
22
+ * Whether the card is in a selected state
23
+ */
24
+ selected?: boolean;
25
+ /**
26
+ * Content of the card
27
+ */
28
+ children?: React.ReactNode;
29
+ /**
30
+ * Additional CSS class names
31
+ */
32
+ className?: string;
33
+ }
34
+ /**
35
+ * Card component - flexible container for grouping related content
36
+ *
37
+ * DOM Structure: `<div class="gloss-card">`
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <Card variant="elevated" interactive>
42
+ * <CardHeader>
43
+ * <CardTitle>Title</CardTitle>
44
+ * </CardHeader>
45
+ * <CardBody>Content here</CardBody>
46
+ * <CardFooter>Actions</CardFooter>
47
+ * </Card>
48
+ * ```
49
+ */
50
+ export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
51
+ export interface CardMediaProps extends React.HTMLAttributes<HTMLDivElement> {
52
+ /**
53
+ * Image source URL
54
+ */
55
+ src?: string;
56
+ /**
57
+ * Alt text for the image
58
+ */
59
+ alt?: string;
60
+ /**
61
+ * Height of the media container
62
+ */
63
+ height?: number | string;
64
+ children?: React.ReactNode;
65
+ className?: string;
66
+ }
67
+ /**
68
+ * CardMedia - media/image section of a card
69
+ *
70
+ * DOM Structure: `<div class="gloss-card__media">`
71
+ */
72
+ export declare const CardMedia: React.ForwardRefExoticComponent<CardMediaProps & React.RefAttributes<HTMLDivElement>>;
73
+ export interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
74
+ children?: React.ReactNode;
75
+ className?: string;
76
+ }
77
+ /**
78
+ * CardHeader - header section of a card
79
+ *
80
+ * DOM Structure: `<div class="gloss-card__header">`
81
+ */
82
+ export declare const CardHeader: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<HTMLDivElement>>;
83
+ export interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
84
+ /**
85
+ * HTML heading level (h1-h6)
86
+ */
87
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
88
+ children?: React.ReactNode;
89
+ className?: string;
90
+ }
91
+ /**
92
+ * CardTitle - title element for card headers
93
+ *
94
+ * DOM Structure: `<h3 class="gloss-card__title">`
95
+ */
96
+ export declare const CardTitle: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<HTMLHeadingElement>>;
97
+ export interface CardSubtitleProps extends React.HTMLAttributes<HTMLParagraphElement> {
98
+ children?: React.ReactNode;
99
+ className?: string;
100
+ }
101
+ /**
102
+ * CardSubtitle - subtitle element for card headers
103
+ *
104
+ * DOM Structure: `<p class="gloss-card__subtitle">`
105
+ */
106
+ export declare const CardSubtitle: React.ForwardRefExoticComponent<CardSubtitleProps & React.RefAttributes<HTMLParagraphElement>>;
107
+ export interface CardBodyProps extends React.HTMLAttributes<HTMLDivElement> {
108
+ children?: React.ReactNode;
109
+ className?: string;
110
+ }
111
+ /**
112
+ * CardBody - main content section of a card
113
+ *
114
+ * DOM Structure: `<div class="gloss-card__body">`
115
+ */
116
+ export declare const CardBody: React.ForwardRefExoticComponent<CardBodyProps & React.RefAttributes<HTMLDivElement>>;
117
+ export interface CardActionsProps extends React.HTMLAttributes<HTMLDivElement> {
118
+ /**
119
+ * Alignment of actions
120
+ */
121
+ align?: 'start' | 'center' | 'end' | 'between';
122
+ children?: React.ReactNode;
123
+ className?: string;
124
+ }
125
+ /**
126
+ * CardActions - inline action area (different from Footer, no background)
127
+ *
128
+ * DOM Structure: `<div class="gloss-card__actions">`
129
+ */
130
+ export declare const CardActions: React.ForwardRefExoticComponent<CardActionsProps & React.RefAttributes<HTMLDivElement>>;
131
+ export interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {
132
+ children?: React.ReactNode;
133
+ className?: string;
134
+ }
135
+ /**
136
+ * CardFooter - footer/action section of a card (with background)
137
+ *
138
+ * DOM Structure: `<div class="gloss-card__footer">`
139
+ */
140
+ export declare const CardFooter: React.ForwardRefExoticComponent<CardFooterProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,70 @@
1
+ import { default as React } from 'react';
2
+ export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
3
+ /**
4
+ * Whether the checkbox is checked (controlled)
5
+ */
6
+ checked?: boolean;
7
+ /**
8
+ * Default checked state (uncontrolled)
9
+ */
10
+ defaultChecked?: boolean;
11
+ /**
12
+ * Whether the checkbox is in an indeterminate state
13
+ * (represents a partially-selected parent of a group)
14
+ */
15
+ indeterminate?: boolean;
16
+ /**
17
+ * Callback when checked state changes
18
+ */
19
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
20
+ /**
21
+ * Callback with just the boolean value (convenience)
22
+ */
23
+ onCheckedChange?: (checked: boolean) => void;
24
+ /**
25
+ * Label text displayed next to the checkbox
26
+ */
27
+ label?: React.ReactNode;
28
+ /**
29
+ * Helper text displayed below the checkbox
30
+ */
31
+ helperText?: string;
32
+ /**
33
+ * Validation/status state
34
+ * @default 'default'
35
+ */
36
+ status?: 'default' | 'success' | 'error';
37
+ /**
38
+ * Whether the field is required
39
+ */
40
+ required?: boolean;
41
+ /**
42
+ * Size of the checkbox
43
+ * @default 'md'
44
+ */
45
+ size?: 'sm' | 'md' | 'lg';
46
+ /**
47
+ * Position of the label relative to the checkbox
48
+ * @default 'right'
49
+ */
50
+ labelPosition?: 'left' | 'right';
51
+ /**
52
+ * Additional CSS class names
53
+ */
54
+ className?: string;
55
+ }
56
+ /**
57
+ * Checkbox component for boolean input with label support
58
+ *
59
+ * Supports controlled/uncontrolled modes, indeterminate state, and form integration.
60
+ * Uses convex physics - checkbox elevates slightly on hover.
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * <Checkbox label="Accept terms" />
65
+ * <Checkbox label="Subscribe" defaultChecked />
66
+ * <Checkbox label="Select all" indeterminate />
67
+ * <Checkbox label="Agree" status="error" helperText="Required" />
68
+ * ```
69
+ */
70
+ export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;