@drdex0101/water-design-system 1.0.1 → 3.0.0

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 (50) hide show
  1. package/README.md +4 -4
  2. package/dist/components/Badge/Badge.d.ts +16 -0
  3. package/dist/components/Badge/index.d.ts +1 -0
  4. package/dist/components/BottomNav/BottomNav.d.ts +66 -0
  5. package/dist/components/BottomNav/index.d.ts +1 -0
  6. package/dist/components/BottomSheet/BottomSheet.d.ts +47 -0
  7. package/dist/components/BottomSheet/index.d.ts +1 -0
  8. package/dist/components/Button/Button.d.ts +20 -2
  9. package/dist/components/Card/Card.d.ts +149 -0
  10. package/dist/components/Card/index.d.ts +1 -0
  11. package/dist/components/Checkbox/Checkbox.d.ts +13 -0
  12. package/dist/components/Checkbox/index.d.ts +1 -0
  13. package/dist/components/DatePicker/Calendar.d.ts +21 -0
  14. package/dist/components/DatePicker/DatePicker.d.ts +44 -0
  15. package/dist/components/DatePicker/index.d.ts +2 -0
  16. package/dist/components/Divider/Divider.d.ts +9 -0
  17. package/dist/components/Divider/index.d.ts +1 -0
  18. package/dist/components/DropdownMenu/DropdownMenu.d.ts +78 -0
  19. package/dist/components/DropdownMenu/index.d.ts +1 -0
  20. package/dist/components/Icon/Icon.d.ts +132 -0
  21. package/dist/components/Icon/index.d.ts +1 -0
  22. package/dist/components/Input/Input.d.ts +20 -0
  23. package/dist/components/Input/index.d.ts +1 -0
  24. package/dist/components/Poker/PokerCard.d.ts +25 -0
  25. package/dist/components/Poker/index.d.ts +1 -0
  26. package/dist/components/Popup/Popup.d.ts +62 -0
  27. package/dist/components/Popup/index.d.ts +1 -0
  28. package/dist/components/SideMenu/SideMenu.d.ts +43 -0
  29. package/dist/components/SideMenu/index.d.ts +1 -0
  30. package/dist/components/Slider/Slider.d.ts +23 -0
  31. package/dist/components/Slider/index.d.ts +1 -0
  32. package/dist/components/Switch/Switch.d.ts +17 -0
  33. package/dist/components/Switch/index.d.ts +1 -0
  34. package/dist/components/Tabs/Tabs.d.ts +28 -0
  35. package/dist/components/Tabs/index.d.ts +1 -0
  36. package/dist/components/Toast/Toast.d.ts +18 -0
  37. package/dist/components/Toast/index.d.ts +1 -0
  38. package/dist/components/Toggle/Toggle.d.ts +34 -0
  39. package/dist/components/Toggle/index.d.ts +1 -0
  40. package/dist/index.d.ts +18 -0
  41. package/dist/logo.png +0 -0
  42. package/dist/pages/Showcase.d.ts +1 -0
  43. package/dist/pages/SpacingTokens.d.ts +2 -0
  44. package/dist/tokens/colors.d.ts +38 -204
  45. package/dist/tokens/index.d.ts +1 -5
  46. package/dist/tokens/semantic.d.ts +201 -114
  47. package/dist/tokens/spacing.d.ts +54 -0
  48. package/dist/water-design-system.es.js +4493 -586
  49. package/dist/water-design-system.umd.js +35 -4
  50. package/package.json +3 -2
package/README.md CHANGED
@@ -12,13 +12,13 @@ A modern React component library built with TypeScript and Vite.
12
12
  ## Installation
13
13
 
14
14
  ```bash
15
- npm install @jacky-water/water-design-system
15
+ npm install @drdex0101/water-design-system
16
16
  ```
17
17
 
18
18
  ## Usage
19
19
 
20
20
  ```tsx
21
- import { Button } from '@jacky-water/water-design-system';
21
+ import { Button } from '@drdex0101/water-design-system';
22
22
 
23
23
  const App = () => (
24
24
  <Button label="Click Me" onClick={() => console.log('Hello!')} />
@@ -44,8 +44,8 @@ To publish a new version:
44
44
  1. Update the version in `package.json`.
45
45
  2. Push a new tag:
46
46
  ```bash
47
- git tag v1.0.0
48
- git push origin v1.0.0
47
+ git tag v1.0.1
48
+ git push origin v1.0.1
49
49
  ```
50
50
  3. GitHub Actions will automatically build and publish to npm.
51
51
 
@@ -0,0 +1,16 @@
1
+ import { default as React } from 'react';
2
+
3
+ export type BadgeType = 'default' | 'positive' | 'warning' | 'error' | 'neutral' | 'outline';
4
+ export interface BadgeProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> {
5
+ /** Badge text content */
6
+ label: string;
7
+ /** Badge type/variant */
8
+ type?: BadgeType;
9
+ /** Show icon on the left side */
10
+ leftIcon?: React.ReactNode;
11
+ /** Show icon on the right side */
12
+ rightIcon?: React.ReactNode;
13
+ /** Callback when close icon is clicked (shows X icon on right) */
14
+ onClose?: () => void;
15
+ }
16
+ export declare const Badge: ({ label, type, leftIcon, rightIcon, onClose, style, ...props }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './Badge';
@@ -0,0 +1,66 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface NavItem {
4
+ /** Unique identifier */
5
+ id: string;
6
+ /** Item label */
7
+ label: string;
8
+ /** Icon element */
9
+ icon: React.ReactNode;
10
+ /** Active icon element (optional, uses icon if not provided) */
11
+ activeIcon?: React.ReactNode;
12
+ /** Show notification badge */
13
+ showBadge?: boolean;
14
+ }
15
+ export interface BottomNavProps {
16
+ /** Navigation items */
17
+ items: NavItem[];
18
+ /** Currently active item ID */
19
+ activeId?: string;
20
+ /** Callback when item is selected */
21
+ onChange?: (id: string) => void;
22
+ /** Custom style */
23
+ style?: React.CSSProperties;
24
+ }
25
+ export declare const BottomNav: ({ items, activeId, onChange, style, }: BottomNavProps) => import("react/jsx-runtime").JSX.Element;
26
+ export interface NavMenuItemProps {
27
+ /** Item label */
28
+ label: string;
29
+ /** Icon element */
30
+ icon: React.ReactNode;
31
+ /** Whether item is selected */
32
+ selected?: boolean;
33
+ /** Show notification badge */
34
+ showBadge?: boolean;
35
+ /** Click handler */
36
+ onClick?: () => void;
37
+ /** Custom style */
38
+ style?: React.CSSProperties;
39
+ }
40
+ export declare const NavMenuItem: ({ label, icon, selected, showBadge, onClick, style, }: NavMenuItemProps) => import("react/jsx-runtime").JSX.Element;
41
+ export interface ToolMenuProps {
42
+ /** Icon element */
43
+ icon: React.ReactNode;
44
+ /** Label */
45
+ label: string;
46
+ /** Click handler */
47
+ onClick?: () => void;
48
+ /** Custom style */
49
+ style?: React.CSSProperties;
50
+ }
51
+ export declare const ToolMenu: ({ icon, label, onClick, style, }: ToolMenuProps) => import("react/jsx-runtime").JSX.Element;
52
+ export declare const NavHomeIcon: ({ color }: {
53
+ color?: string;
54
+ }) => import("react/jsx-runtime").JSX.Element;
55
+ export declare const NavAIIcon: ({ color }: {
56
+ color?: string;
57
+ }) => import("react/jsx-runtime").JSX.Element;
58
+ export declare const NavEventIcon: ({ color }: {
59
+ color?: string;
60
+ }) => import("react/jsx-runtime").JSX.Element;
61
+ export declare const NavHandRecordIcon: ({ color }: {
62
+ color?: string;
63
+ }) => import("react/jsx-runtime").JSX.Element;
64
+ export declare const NavMoreIcon: ({ color }: {
65
+ color?: string;
66
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './BottomNav';
@@ -0,0 +1,47 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface BottomSheetProps {
4
+ /** Whether the sheet is open */
5
+ open: boolean;
6
+ /** Callback when sheet should close */
7
+ onClose?: () => void;
8
+ /** Sheet title */
9
+ title?: React.ReactNode;
10
+ /** Snap points as percentages (e.g., [0.5, 0.9] for 50% and 90% height) */
11
+ snapPoints?: number[];
12
+ /** Initial snap point percentage */
13
+ initialSnapPoint?: number;
14
+ /** Sheet content */
15
+ children?: React.ReactNode;
16
+ /** Custom style */
17
+ style?: React.CSSProperties;
18
+ }
19
+ export declare const BottomSheet: ({ open, onClose, title, snapPoints, initialSnapPoint, children, style, }: BottomSheetProps) => import("react/jsx-runtime").JSX.Element | null;
20
+ export interface OverlayProps {
21
+ /** Whether the overlay is visible */
22
+ visible: boolean;
23
+ /** Callback when overlay is clicked */
24
+ onClick?: () => void;
25
+ /** Children */
26
+ children?: React.ReactNode;
27
+ /** Custom style */
28
+ style?: React.CSSProperties;
29
+ }
30
+ export declare const Overlay: ({ visible, onClick, children, style, }: OverlayProps) => import("react/jsx-runtime").JSX.Element | null;
31
+ export interface SheetTitleProps {
32
+ /** Title type */
33
+ type?: 'main' | 'detail' | 'subtitle';
34
+ /** Title text */
35
+ children: React.ReactNode;
36
+ /** Show back button (for detail type) */
37
+ showBackButton?: boolean;
38
+ /** Back button click handler */
39
+ onBack?: () => void;
40
+ /** Right icon/tool */
41
+ rightIcon?: React.ReactNode;
42
+ /** Right text */
43
+ rightText?: string;
44
+ /** Custom style */
45
+ style?: React.CSSProperties;
46
+ }
47
+ export declare const SheetTitle: ({ type, children, showBackButton, onBack, rightIcon, rightText, style, }: SheetTitleProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './BottomSheet';
@@ -1,6 +1,24 @@
1
1
  import { default as React } from 'react';
2
2
 
3
+ export type ButtonType = 'primary' | 'secondary' | 'outline' | 'warning' | 'call' | 'raise' | 'disabled';
4
+ export type ButtonSize = 'L' | 'M' | 'S';
5
+ export type ButtonShape = 'rounded' | 'full-rounded';
3
6
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
4
- label: string;
7
+ /** Button text content */
8
+ label?: string;
9
+ /** Button variant type */
10
+ variant?: ButtonType;
11
+ /** Button size */
12
+ size?: ButtonSize;
13
+ /** Button shape */
14
+ shape?: ButtonShape;
15
+ /** Loading state */
16
+ loading?: boolean;
17
+ /** Icon to display on the left */
18
+ leftIcon?: React.ReactNode;
19
+ /** Icon to display on the right */
20
+ rightIcon?: React.ReactNode;
21
+ /** Children content (alternative to label) */
22
+ children?: React.ReactNode;
5
23
  }
6
- export declare const Button: ({ label, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const Button: ({ label, variant, size, shape, loading, leftIcon, rightIcon, children, disabled, style, onMouseEnter, onMouseLeave, onMouseDown, onMouseUp, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,149 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /** Card variant */
5
+ variant?: 'default' | 'outlined' | 'elevated';
6
+ /** Padding size */
7
+ padding?: 'none' | 'sm' | 'md' | 'lg';
8
+ /** Border radius */
9
+ rounded?: 'sm' | 'md' | 'lg' | 'xl';
10
+ /** Children */
11
+ children?: React.ReactNode;
12
+ }
13
+ export declare const Card: ({ variant, padding, rounded, children, style, ...props }: CardProps) => import("react/jsx-runtime").JSX.Element;
14
+ export interface TournamentCardProps {
15
+ /** Card image URL */
16
+ imageUrl?: string;
17
+ /** Badge text */
18
+ badge?: string;
19
+ /** Tournament title */
20
+ title: string;
21
+ /** Location */
22
+ location?: string;
23
+ /** Date range */
24
+ dateRange?: string;
25
+ /** Click handler */
26
+ onClick?: () => void;
27
+ /** Custom style */
28
+ style?: React.CSSProperties;
29
+ }
30
+ export declare const TournamentCard: ({ imageUrl, badge, title, location, dateRange, onClick, style, }: TournamentCardProps) => import("react/jsx-runtime").JSX.Element;
31
+ export interface ListItemCardProps {
32
+ /** Left icon */
33
+ leftIcon?: React.ReactNode;
34
+ /** Title */
35
+ title: string;
36
+ /** Description */
37
+ description?: string;
38
+ /** Right element */
39
+ rightElement?: React.ReactNode;
40
+ /** Badge text */
41
+ badge?: string;
42
+ /** Badge variant */
43
+ badgeVariant?: 'default' | 'success' | 'warning' | 'error';
44
+ /** Credit info */
45
+ creditInfo?: string;
46
+ /** Amount info */
47
+ amount?: string;
48
+ /** Amount variant */
49
+ amountVariant?: 'default' | 'positive' | 'negative';
50
+ /** Additional info (e.g., Buy-in, Cash-out) */
51
+ additionalInfo?: {
52
+ label: string;
53
+ value: string;
54
+ }[];
55
+ /** Click handler */
56
+ onClick?: () => void;
57
+ /** Selected state */
58
+ selected?: boolean;
59
+ /** Custom style */
60
+ style?: React.CSSProperties;
61
+ }
62
+ export declare const ListItemCard: ({ leftIcon, title, description, rightElement, badge, badgeVariant, creditInfo, amount, amountVariant, additionalInfo, onClick, selected, style, }: ListItemCardProps) => import("react/jsx-runtime").JSX.Element;
63
+ export interface EventCardProps {
64
+ /** Event ID */
65
+ id?: number;
66
+ /** Banner image URL */
67
+ banner_url?: string | null;
68
+ /** Event name */
69
+ event_name: string;
70
+ /** Event code */
71
+ event_code: string;
72
+ /** Start date */
73
+ date_from?: string;
74
+ /** End date */
75
+ date_to?: string;
76
+ /** Custom date text */
77
+ dateText?: string;
78
+ /** Click handler */
79
+ onClick?: () => void;
80
+ /** Custom style */
81
+ style?: React.CSSProperties;
82
+ /** Custom class name */
83
+ className?: string;
84
+ }
85
+ export declare const EventCard: ({ banner_url, event_name, event_code, date_from, date_to, dateText, onClick, style, className, }: EventCardProps) => import("react/jsx-runtime").JSX.Element;
86
+ export interface HandRecordCardProps {
87
+ /** Poker cards */
88
+ cards?: Array<{
89
+ suit: 'heart' | 'spade' | 'diamond' | 'club';
90
+ value: string;
91
+ }>;
92
+ /** Title */
93
+ title: string;
94
+ /** Subtitle */
95
+ subtitle?: string;
96
+ /** Date */
97
+ date?: string;
98
+ /** Badge text */
99
+ badge?: string;
100
+ /** Badge color */
101
+ badgeColor?: 'blue' | 'green' | 'red';
102
+ /** Click handler */
103
+ onClick?: () => void;
104
+ /** Custom style */
105
+ style?: React.CSSProperties;
106
+ }
107
+ export declare const HandRecordCard: ({ cards, title, subtitle, date, badge, badgeColor, onClick, style, }: HandRecordCardProps) => import("react/jsx-runtime").JSX.Element;
108
+ export declare const LocationIcon: () => import("react/jsx-runtime").JSX.Element;
109
+ export declare const CalendarIcon: () => import("react/jsx-runtime").JSX.Element;
110
+ export declare const FavoriteIcon: ({ filled }: {
111
+ filled?: boolean;
112
+ }) => import("react/jsx-runtime").JSX.Element;
113
+ export interface SubEventCardProps {
114
+ /** Event date (YYYY-MM-DD format) */
115
+ eventDate: string;
116
+ /** Start time (HH:mm:ss format) */
117
+ startTime: string;
118
+ /** Late registration time (HH:mm:ss format) */
119
+ lateRegTime?: string;
120
+ /** Event name */
121
+ eventName: string;
122
+ /** Guaranteed prize pool */
123
+ guaranteedPrizePool?: number;
124
+ /** Buy-in amount in TWD */
125
+ buyInTwd?: number | null;
126
+ /** Blind level time in minutes */
127
+ blindLevelTime?: number;
128
+ /** Starting stack */
129
+ stack?: number;
130
+ /** Banner image URL */
131
+ bannerUrl?: string | null;
132
+ /** Festival name */
133
+ festivalName?: string;
134
+ /** Festival ID */
135
+ festivalId?: number;
136
+ /** Event sequence number */
137
+ eventSeq?: number;
138
+ /** Click handler */
139
+ onClick?: () => void;
140
+ /** Whether the event is favorited */
141
+ isFavorite?: boolean;
142
+ /** Alias for isFavorite */
143
+ initialIsFavorite?: boolean;
144
+ /** Callback when favorite is toggled */
145
+ onFavoriteToggle?: () => void;
146
+ /** Custom style */
147
+ style?: React.CSSProperties;
148
+ }
149
+ export declare const SubEventCard: ({ eventDate, startTime, lateRegTime, eventName, buyInTwd, blindLevelTime, stack, bannerUrl, festivalName, festivalId, eventSeq, onClick, isFavorite, initialIsFavorite, onFavoriteToggle, style, }: SubEventCardProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './Card';
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> {
4
+ /** Checkbox label text */
5
+ label?: string;
6
+ /** Controlled checked state */
7
+ checked?: boolean;
8
+ /** Default checked state for uncontrolled usage */
9
+ defaultChecked?: boolean;
10
+ /** Callback when checkbox value changes */
11
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
12
+ }
13
+ export declare const Checkbox: ({ label, checked, defaultChecked, disabled, onChange, id, style, ...props }: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './Checkbox';
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface CalendarProps {
4
+ /** The currently viewed date (determines the month/year shown) */
5
+ viewDate: Date;
6
+ /** Callback when the viewed month/year changes */
7
+ onViewDateChange: (date: Date) => void;
8
+ /** The currently selected day (1-31) */
9
+ selectedDay: number | null;
10
+ /** Callback when a day is clicked */
11
+ onDaySelect: (day: number) => void;
12
+ /** Set of days (1-31) in the current month that have events (to show indicators) */
13
+ datesWithEvents?: Set<number>;
14
+ /** Custom style for the container */
15
+ style?: React.CSSProperties;
16
+ }
17
+ /**
18
+ * A standalone Calendar component extracted from the MyEventListMobile view.
19
+ * Displays a monthly calendar grid with navigation and optional event indicators.
20
+ */
21
+ export declare const Calendar: ({ viewDate, onViewDateChange, selectedDay, onDaySelect, datesWithEvents, style, }: CalendarProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,44 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface DatePickerProps {
4
+ /** Selected start date */
5
+ selectedStartDate?: Date;
6
+ /** Selected end date (for range mode) */
7
+ selectedEndDate?: Date;
8
+ /** Start time (for details mode) */
9
+ startTime?: string;
10
+ /** End time (for details mode) */
11
+ endTime?: string;
12
+ /** Callback when date range changes */
13
+ onDateRangeChange?: (startDate: Date | null, endDate: Date | null) => void;
14
+ /** Callback when single date is selected (for single mode) */
15
+ onSingleDateChange?: (date: Date | null) => void;
16
+ /** Callback when time changes (for details mode) */
17
+ onTimeChange?: (startTime: string, endTime: string) => void;
18
+ /** Callback when apply button is clicked */
19
+ onApply?: () => void;
20
+ /** Whether the picker is open */
21
+ isOpen?: boolean;
22
+ /** Callback when picker should close */
23
+ onClose?: () => void;
24
+ /** Picker mode: 'normal' (range), 'single', or 'details' (range + time) */
25
+ mode?: 'normal' | 'single' | 'details';
26
+ /** Custom style */
27
+ style?: React.CSSProperties;
28
+ }
29
+ export declare const DatePicker: ({ selectedStartDate, selectedEndDate, startTime, endTime, onDateRangeChange, onSingleDateChange, onTimeChange, onApply, isOpen, onClose, mode, style, }: DatePickerProps) => import("react/jsx-runtime").JSX.Element | null;
30
+ export interface DatePickerInputProps {
31
+ /** Selected date or date range text (overrides startDate/endDate display) */
32
+ value?: string;
33
+ /** Start date for range selection */
34
+ startDate?: Date;
35
+ /** End date for range selection */
36
+ endDate?: Date;
37
+ /** Placeholder text */
38
+ placeholder?: string;
39
+ /** Click handler */
40
+ onClick?: () => void;
41
+ /** Custom style */
42
+ style?: React.CSSProperties;
43
+ }
44
+ export declare const DatePickerInput: ({ value, startDate, endDate, placeholder, onClick, style, }: DatePickerInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export * from './DatePicker';
2
+ export * from './Calendar';
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface DividerProps extends React.HTMLAttributes<HTMLHRElement> {
4
+ /** Orientation of the divider */
5
+ orientation?: 'horizontal' | 'vertical';
6
+ /** Custom color for the divider */
7
+ color?: string;
8
+ }
9
+ export declare const Divider: ({ orientation, color, style, ...props }: DividerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './Divider';
@@ -0,0 +1,78 @@
1
+ import { default as React } from 'react';
2
+
3
+ export interface DropdownMenuItem {
4
+ /** Unique identifier */
5
+ id: string;
6
+ /** Item label */
7
+ label: string;
8
+ /** Left icon */
9
+ icon?: React.ReactNode;
10
+ /** Disabled state */
11
+ disabled?: boolean;
12
+ /** Danger/destructive item */
13
+ danger?: boolean;
14
+ /** Divider after this item */
15
+ dividerAfter?: boolean;
16
+ }
17
+ export interface DropdownMenuProps {
18
+ /** Menu items */
19
+ items: DropdownMenuItem[];
20
+ /** Callback when item is selected */
21
+ onSelect?: (id: string) => void;
22
+ /** Currently selected item ID */
23
+ selectedId?: string;
24
+ /** Custom style */
25
+ style?: React.CSSProperties;
26
+ }
27
+ export declare const DropdownMenu: ({ items, onSelect, selectedId, style, }: DropdownMenuProps) => import("react/jsx-runtime").JSX.Element;
28
+ export interface DropdownTriggerProps {
29
+ /** Trigger content */
30
+ children: React.ReactNode;
31
+ /** Whether dropdown is open */
32
+ open?: boolean;
33
+ /** Toggle handler */
34
+ onClick?: () => void;
35
+ /** Custom style */
36
+ style?: React.CSSProperties;
37
+ }
38
+ export declare const DropdownTrigger: ({ children, open, onClick, style, }: DropdownTriggerProps) => import("react/jsx-runtime").JSX.Element;
39
+ export interface DropdownProps {
40
+ /** Trigger element */
41
+ trigger: React.ReactNode;
42
+ /** Menu items */
43
+ items: DropdownMenuItem[];
44
+ /** Callback when item is selected */
45
+ onSelect?: (id: string) => void;
46
+ /** Selected item ID */
47
+ selectedId?: string;
48
+ /** Controlled open state */
49
+ open?: boolean;
50
+ /** Controlled open change handler */
51
+ onOpenChange?: (open: boolean) => void;
52
+ /** Placement */
53
+ placement?: 'bottom-start' | 'bottom-end' | 'bottom';
54
+ /** Custom style */
55
+ style?: React.CSSProperties;
56
+ }
57
+ export declare const Dropdown: ({ trigger, items, onSelect, selectedId, open: controlledOpen, onOpenChange, placement, style, }: DropdownProps) => import("react/jsx-runtime").JSX.Element;
58
+ export declare const DropdownDefaultIcon: ({ color }: {
59
+ color?: string;
60
+ }) => import("react/jsx-runtime").JSX.Element;
61
+ export interface SelectProps {
62
+ /** List of options to select from */
63
+ options: string[];
64
+ /** Currently selected value */
65
+ value: string;
66
+ /** Callback when value changes */
67
+ onChange: (value: string) => void;
68
+ /** Left icon (optional) */
69
+ icon?: React.ReactNode;
70
+ /** Placeholder text when no value selected */
71
+ placeholder?: string;
72
+ /** Disabled state */
73
+ disabled?: boolean;
74
+ /** Custom style */
75
+ style?: React.CSSProperties;
76
+ }
77
+ export declare const Select: ({ options, value, onChange, icon, placeholder, disabled, style, }: SelectProps) => import("react/jsx-runtime").JSX.Element;
78
+ export declare const SelectDefaultIcon: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './DropdownMenu';