@platform-blocks/ui 0.6.0 → 0.7.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 (74) hide show
  1. package/README.md +0 -24
  2. package/lib/cjs/index.js +476 -720
  3. package/lib/cjs/index.js.map +1 -1
  4. package/lib/components/Accordion/types.d.ts +5 -5
  5. package/lib/components/AutoComplete/types.d.ts +3 -3
  6. package/lib/components/Avatar/types.d.ts +3 -3
  7. package/lib/components/Badge/types.d.ts +3 -3
  8. package/lib/components/Block/types.d.ts +2 -2
  9. package/lib/components/Blockquote/types.d.ts +2 -2
  10. package/lib/components/Breadcrumbs/types.d.ts +4 -4
  11. package/lib/components/Calendar/types.d.ts +2 -2
  12. package/lib/components/Carousel/types.d.ts +3 -3
  13. package/lib/components/Chip/types.d.ts +3 -3
  14. package/lib/components/CodeBlock/types.d.ts +4 -4
  15. package/lib/components/ColorPicker/types.d.ts +4 -4
  16. package/lib/components/CopyButton/types.d.ts +2 -2
  17. package/lib/components/DatePicker/types.d.ts +2 -2
  18. package/lib/components/Dialog/Dialog.d.ts +1 -1
  19. package/lib/components/Dialog/types.d.ts +23 -2
  20. package/lib/components/Divider/types.d.ts +2 -2
  21. package/lib/components/Grid/types.d.ts +3 -3
  22. package/lib/components/HoverCard/types.d.ts +3 -3
  23. package/lib/components/Image/Image.d.ts +1 -1
  24. package/lib/components/Image/types.d.ts +6 -6
  25. package/lib/components/Indicator/types.d.ts +2 -2
  26. package/lib/components/Input/styles.d.ts +1 -12
  27. package/lib/components/Knob/components/SurfaceLayers.d.ts +2 -2
  28. package/lib/components/Knob/components/ThumbLayer.d.ts +1 -1
  29. package/lib/components/Knob/components/TickLayers.d.ts +2 -2
  30. package/lib/components/Knob/types.d.ts +11 -11
  31. package/lib/components/Layout/Layout.d.ts +1 -0
  32. package/lib/components/ListGroup/types.d.ts +4 -4
  33. package/lib/components/Loader/types.d.ts +2 -2
  34. package/lib/components/Masonry/types.d.ts +4 -4
  35. package/lib/components/Menu/types.d.ts +2 -2
  36. package/lib/components/Navigation/types.d.ts +2 -2
  37. package/lib/components/Notice/types.d.ts +2 -2
  38. package/lib/components/Pagination/types.d.ts +6 -6
  39. package/lib/components/Popover/types.d.ts +5 -5
  40. package/lib/components/Progress/types.d.ts +3 -3
  41. package/lib/components/QRCode/types.d.ts +2 -2
  42. package/lib/components/Rating/types.d.ts +2 -2
  43. package/lib/components/Ring/types.d.ts +7 -7
  44. package/lib/components/SegmentedControl/types.d.ts +4 -4
  45. package/lib/components/Select/Select.types.d.ts +1 -1
  46. package/lib/components/Skeleton/types.d.ts +4 -4
  47. package/lib/components/Slider/types.d.ts +7 -7
  48. package/lib/components/Spotlight/types.d.ts +6 -6
  49. package/lib/components/Table/Table.d.ts +4 -4
  50. package/lib/components/Tabs/types.d.ts +5 -5
  51. package/lib/components/TextArea/types.d.ts +2 -2
  52. package/lib/components/Timeline/types.d.ts +20 -0
  53. package/lib/components/Toast/types.d.ts +2 -2
  54. package/lib/components/Tooltip/types.d.ts +2 -2
  55. package/lib/components/Video/NativeVideoPlayer.d.ts +2 -2
  56. package/lib/components/Video/VideoControls.d.ts +2 -2
  57. package/lib/components/Video/YouTubePlayer.d.ts +2 -2
  58. package/lib/components/Video/types.d.ts +6 -6
  59. package/lib/components/Waveform/WaveformSkeleton.d.ts +2 -2
  60. package/lib/components/Waveform/types.d.ts +2 -2
  61. package/lib/components/index.d.ts +0 -2
  62. package/lib/components/types.d.ts +0 -1
  63. package/lib/core/utils/layout.d.ts +13 -16
  64. package/lib/core/utils/positioning-enhanced.d.ts +2 -0
  65. package/lib/esm/index.js +478 -720
  66. package/lib/esm/index.js.map +1 -1
  67. package/lib/index.d.ts +0 -4
  68. package/package.json +67 -57
  69. package/lib/components/Lottie/Lottie.d.ts +0 -30
  70. package/lib/components/Lottie/index.d.ts +0 -2
  71. package/lib/components/RichTextEditor/RichTextEditor.d.ts +0 -3
  72. package/lib/components/RichTextEditor/index.d.ts +0 -2
  73. package/lib/components/RichTextEditor/styles.d.ts +0 -61
  74. package/lib/components/RichTextEditor/types.d.ts +0 -150
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { ViewStyle } from 'react-native';
2
+ import type { ViewStyle, StyleProp } from 'react-native';
3
3
  import type { FlashListProps } from '@shopify/flash-list';
4
4
  import type { SpacingProps } from '../../core/utils/spacing';
5
5
  import type { SizeValue } from '../../core/theme/sizes';
@@ -11,7 +11,7 @@ export interface MasonryItem {
11
11
  /** Optional custom height ratio (default: 1) */
12
12
  heightRatio?: number;
13
13
  /** Optional custom styling for the item */
14
- style?: ViewStyle;
14
+ style?: StyleProp<ViewStyle>;
15
15
  }
16
16
  export interface MasonryProps extends SpacingProps {
17
17
  /** Array of items to display in masonry layout */
@@ -25,9 +25,9 @@ export interface MasonryProps extends SpacingProps {
25
25
  /** Custom item renderer - receives item and index */
26
26
  renderItem?: (item: MasonryItem, index: number) => ReactNode;
27
27
  /** Content container style */
28
- contentContainerStyle?: ViewStyle;
28
+ contentContainerStyle?: StyleProp<ViewStyle>;
29
29
  /** Custom styles */
30
- style?: ViewStyle;
30
+ style?: StyleProp<ViewStyle>;
31
31
  /** Test ID for testing */
32
32
  testID?: string;
33
33
  /** Loading state */
@@ -17,9 +17,9 @@ export interface MenuProps extends SpacingProps {
17
17
  /** Callback when menu closes */
18
18
  onClose?: () => void;
19
19
  /** Menu content width */
20
- width?: number | 'target' | 'auto';
20
+ w?: number | 'target' | 'auto';
21
21
  /** Maximum height for scrollable content */
22
- maxHeight?: number;
22
+ maxH?: number;
23
23
  /** Menu content shadow */
24
24
  shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
25
25
  /** Border radius */
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { ViewStyle } from 'react-native';
2
+ import type { ViewStyle, StyleProp } from 'react-native';
3
3
  export interface NavigationState {
4
4
  routes: Route[];
5
5
  index: number;
@@ -46,7 +46,7 @@ export interface DrawerScreenProps extends Omit<ScreenProps, 'options'> {
46
46
  }
47
47
  export interface DrawerNavigatorProps extends NavigatorProps {
48
48
  screenOptions?: DrawerOptions;
49
- drawerStyle?: ViewStyle;
49
+ drawerStyle?: StyleProp<ViewStyle>;
50
50
  drawerContent?: (props: any) => ReactNode;
51
51
  }
52
52
  export interface StackOptions extends NavigationOptions {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { View, ViewStyle } from 'react-native';
2
+ import { View, ViewStyle, StyleProp } from 'react-native';
3
3
  import { SpacingProps } from '../../core/utils';
4
4
  import { BorderRadiusProps } from '../../core/theme/radius';
5
5
  export type NoticeVariant = 'light' | 'filled' | 'outline' | 'subtle';
@@ -16,7 +16,7 @@ export interface NoticeProps extends SpacingProps, BorderRadiusProps {
16
16
  withCloseButton?: boolean;
17
17
  closeButtonLabel?: string;
18
18
  onClose?: () => void;
19
- style?: ViewStyle;
19
+ style?: StyleProp<ViewStyle>;
20
20
  testID?: string;
21
21
  }
22
22
  export interface NoticeFactoryPayload {
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { ViewStyle, TextStyle } from 'react-native';
2
+ import { ViewStyle, TextStyle, StyleProp } from 'react-native';
3
3
  import { SpacingProps } from '../../core/theme/types';
4
4
  import type { ComponentSizeValue } from '../../core/theme/componentSize';
5
5
  export interface PaginationMetrics {
@@ -41,15 +41,15 @@ export interface PaginationProps extends SpacingProps {
41
41
  /** Whether pagination is disabled */
42
42
  disabled?: boolean;
43
43
  /** Custom styles */
44
- style?: ViewStyle;
44
+ style?: StyleProp<ViewStyle>;
45
45
  /** Custom button styles */
46
- buttonStyle?: ViewStyle;
46
+ buttonStyle?: StyleProp<ViewStyle>;
47
47
  /** Custom active button styles */
48
- activeButtonStyle?: ViewStyle;
48
+ activeButtonStyle?: StyleProp<ViewStyle>;
49
49
  /** Custom text styles */
50
- textStyle?: TextStyle;
50
+ textStyle?: StyleProp<TextStyle>;
51
51
  /** Custom active text styles */
52
- activeTextStyle?: TextStyle;
52
+ activeTextStyle?: StyleProp<TextStyle>;
53
53
  /** Hide pagination when there's only one page */
54
54
  hideOnSinglePage?: boolean;
55
55
  /** Show page size selector */
@@ -52,15 +52,15 @@ export interface PopoverProps extends SpacingProps {
52
52
  /** Overlay component props */
53
53
  overlayProps?: Record<string, unknown>;
54
54
  /** Dropdown width, number or 'target' to match target width */
55
- width?: number | 'target';
55
+ w?: number | 'target';
56
56
  /** Dropdown max-width */
57
- maxWidth?: number;
57
+ maxW?: number;
58
58
  /** Dropdown max-height */
59
- maxHeight?: number;
59
+ maxH?: number;
60
60
  /** Dropdown min-width */
61
- minWidth?: number;
61
+ minW?: number;
62
62
  /** Dropdown min-height */
63
- minHeight?: number;
63
+ minH?: number;
64
64
  /** Border radius */
65
65
  radius?: RadiusValue | number;
66
66
  /** Box shadow */
@@ -1,4 +1,4 @@
1
- import type { View, Text, ViewStyle } from 'react-native';
1
+ import type { View, Text, ViewStyle, StyleProp } from 'react-native';
2
2
  import type { SpacingProps } from '../../core/utils';
3
3
  import type { SizeValue } from '../../core/theme/sizes';
4
4
  export type ProgressColor = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'gray';
@@ -11,7 +11,7 @@ export interface ProgressProps extends SpacingProps {
11
11
  animate?: boolean;
12
12
  transitionDuration?: number;
13
13
  fullWidth?: boolean;
14
- style?: ViewStyle;
14
+ style?: StyleProp<ViewStyle>;
15
15
  'aria-label'?: string;
16
16
  testID?: string;
17
17
  }
@@ -24,7 +24,7 @@ export interface ProgressRootProps extends SpacingProps {
24
24
  size?: SizeValue;
25
25
  radius?: SizeValue;
26
26
  children: React.ReactNode;
27
- style?: ViewStyle;
27
+ style?: StyleProp<ViewStyle>;
28
28
  testID?: string;
29
29
  }
30
30
  export interface ProgressLabelProps {
@@ -1,4 +1,4 @@
1
- import { ViewStyle } from 'react-native';
1
+ import { ViewStyle, StyleProp } from 'react-native';
2
2
  import { SpacingProps, LayoutProps } from '../../core/utils';
3
3
  export interface QRCodeProps extends SpacingProps, LayoutProps {
4
4
  /** The data/text to encode in the QR code */
@@ -46,7 +46,7 @@ export interface QRCodeProps extends SpacingProps, LayoutProps {
46
46
  borderRadius?: number;
47
47
  };
48
48
  /** Custom container style */
49
- style?: ViewStyle;
49
+ style?: StyleProp<ViewStyle>;
50
50
  /** Test ID for testing */
51
51
  testID?: string;
52
52
  /** Accessibility label */
@@ -1,4 +1,4 @@
1
- import { View, ViewStyle } from 'react-native';
1
+ import { View, ViewStyle, StyleProp } from 'react-native';
2
2
  import { SpacingProps } from '../../core/utils';
3
3
  import { SizeValue } from '../../core/theme/sizes';
4
4
  import type { DisclaimerSupport } from '../_internal/Disclaimer';
@@ -22,7 +22,7 @@ export interface RatingProps extends SpacingProps, DisclaimerSupport {
22
22
  character?: string | React.ReactNode;
23
23
  emptyCharacter?: string | React.ReactNode;
24
24
  gap?: SizeValue | number;
25
- style?: ViewStyle;
25
+ style?: StyleProp<ViewStyle>;
26
26
  testID?: string;
27
27
  accessibilityLabel?: string;
28
28
  accessibilityHint?: string;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ViewStyle, TextStyle } from 'react-native';
2
+ import { ViewStyle, TextStyle, StyleProp } from 'react-native';
3
3
  import { SpacingProps } from '../../core/utils';
4
4
  export interface RingColorStop {
5
5
  /** Threshold (0-100) that determines when the color becomes active */
@@ -49,17 +49,17 @@ export interface RingProps extends SpacingProps {
49
49
  /** Controls whether the progress stroke has rounded caps. Defaults to true. */
50
50
  roundedCaps?: boolean;
51
51
  /** Container style for the outer wrapper */
52
- style?: ViewStyle;
52
+ style?: StyleProp<ViewStyle>;
53
53
  /** Style applied to the ring wrapper */
54
- ringStyle?: ViewStyle;
54
+ ringStyle?: StyleProp<ViewStyle>;
55
55
  /** Style applied to the center content container */
56
- contentStyle?: ViewStyle;
56
+ contentStyle?: StyleProp<ViewStyle>;
57
57
  /** Style overrides for the main label */
58
- labelStyle?: TextStyle;
58
+ labelStyle?: StyleProp<TextStyle>;
59
59
  /** Style overrides for the secondary label */
60
- subLabelStyle?: TextStyle;
60
+ subLabelStyle?: StyleProp<TextStyle>;
61
61
  /** Style overrides for the caption */
62
- captionStyle?: TextStyle;
62
+ captionStyle?: StyleProp<TextStyle>;
63
63
  /** Color override for the main label */
64
64
  labelColor?: string;
65
65
  /** Color override for the secondary label */
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { ViewStyle } from 'react-native';
2
+ import type { ViewStyle, StyleProp } from 'react-native';
3
3
  import type { SpacingProps, LayoutProps } from '../../core/utils';
4
4
  import type { BorderRadiusProps } from '../../core/theme/radius';
5
5
  import type { SizeValue } from '../../core/theme/sizes';
@@ -50,11 +50,11 @@ export interface SegmentedControlProps extends SpacingProps, LayoutProps, Border
50
50
  /** Visual style variant */
51
51
  variant?: 'default' | 'filled' | 'outline' | 'ghost';
52
52
  /** Custom style for indicator */
53
- indicatorStyle?: ViewStyle;
53
+ indicatorStyle?: StyleProp<ViewStyle>;
54
54
  /** Custom style applied to every item */
55
- itemStyle?: ViewStyle;
55
+ itemStyle?: StyleProp<ViewStyle>;
56
56
  /** Style applied to the container */
57
- style?: ViewStyle;
57
+ style?: StyleProp<ViewStyle>;
58
58
  /** Test identifier applied to container */
59
59
  testID?: string;
60
60
  /** Accessibility label for the entire control */
@@ -48,7 +48,7 @@ export interface SelectProps<T = any> extends SpacingProps, LayoutProps {
48
48
  /** Stretches the trigger to occupy the full width of its container. */
49
49
  fullWidth?: boolean;
50
50
  /** Maximum height the dropdown may reach before it scrolls. */
51
- maxHeight?: number;
51
+ maxH?: number;
52
52
  /** Whether the dropdown should close immediately after selection. */
53
53
  closeOnSelect?: boolean;
54
54
  /** Allows the user to clear the current selection. */
@@ -1,4 +1,4 @@
1
- import { DimensionValue, ViewStyle, View } from 'react-native';
1
+ import { DimensionValue, ViewStyle, View, StyleProp } from 'react-native';
2
2
  import { SpacingProps } from '../../core/utils';
3
3
  import { SizeValue } from '../../core/theme/sizes';
4
4
  export type SkeletonShape = 'text' | 'chip' | 'avatar' | 'button' | 'card' | 'circle' | 'rectangle' | 'rounded';
@@ -6,9 +6,9 @@ export interface SkeletonProps extends SpacingProps {
6
6
  /** Shape of the skeleton placeholder */
7
7
  shape?: SkeletonShape;
8
8
  /** Width of the skeleton component */
9
- width?: DimensionValue;
9
+ w?: DimensionValue;
10
10
  /** Height of the skeleton component */
11
- height?: DimensionValue;
11
+ h?: DimensionValue;
12
12
  /** Size of the skeleton component (overrides width/height) */
13
13
  size?: SizeValue;
14
14
  /** Border radius for rectangle/rounded shapes */
@@ -20,7 +20,7 @@ export interface SkeletonProps extends SpacingProps {
20
20
  /** Gradient colors for the shimmer effect */
21
21
  colors?: [string, string];
22
22
  /** Style overrides for the skeleton container */
23
- style?: ViewStyle;
23
+ style?: StyleProp<ViewStyle>;
24
24
  /** Optional test identifier */
25
25
  testID?: string;
26
26
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ViewStyle } from 'react-native';
2
+ import { ViewStyle, StyleProp } from 'react-native';
3
3
  import { BaseInputProps } from '../Input/types';
4
4
  import { ColorValue, SizeValue, PlatformBlocksTheme } from '../../core/theme/types';
5
5
  export type SliderColorScheme = keyof PlatformBlocksTheme['colors'] | (string & {});
@@ -39,11 +39,11 @@ export interface SliderProps extends Omit<BaseInputProps, 'value' | 'onChangeTex
39
39
  /** Theme color palette or custom color to drive active elements */
40
40
  colorScheme?: SliderColorScheme;
41
41
  /** Additional styling for the inactive track */
42
- trackStyle?: ViewStyle;
42
+ trackStyle?: StyleProp<ViewStyle>;
43
43
  /** Additional styling for the active track */
44
- activeTrackStyle?: ViewStyle;
44
+ activeTrackStyle?: StyleProp<ViewStyle>;
45
45
  /** Additional styling for the thumb */
46
- thumbStyle?: ViewStyle;
46
+ thumbStyle?: StyleProp<ViewStyle>;
47
47
  /** Override inactive tick color */
48
48
  tickColor?: ColorValue;
49
49
  /** Override active tick color */
@@ -113,8 +113,8 @@ export interface SliderTrackProps {
113
113
  isRange?: boolean;
114
114
  trackColor?: ColorValue;
115
115
  activeTrackColor?: ColorValue;
116
- trackStyle?: ViewStyle;
117
- activeTrackStyle?: ViewStyle;
116
+ trackStyle?: StyleProp<ViewStyle>;
117
+ activeTrackStyle?: StyleProp<ViewStyle>;
118
118
  trackHeight?: number;
119
119
  thumbSize?: number;
120
120
  }
@@ -145,7 +145,7 @@ export interface SliderThumbProps {
145
145
  zIndex?: number;
146
146
  panHandlers?: any;
147
147
  thumbColor?: ColorValue;
148
- thumbStyle?: ViewStyle;
148
+ thumbStyle?: StyleProp<ViewStyle>;
149
149
  thumbSize?: number;
150
150
  }
151
151
  export interface SliderLabelProps {
@@ -1,4 +1,4 @@
1
- import type { ViewStyle, TextInput } from 'react-native';
1
+ import type { ViewStyle, TextInput, StyleProp } from 'react-native';
2
2
  import React from 'react';
3
3
  import { SpotlightItem } from './SpotlightTypes';
4
4
  import type { HighlightProps as HighlightComponentProps } from '../Highlight';
@@ -23,7 +23,7 @@ export interface SpotlightRootProps {
23
23
  opened?: boolean;
24
24
  onClose?: () => void;
25
25
  shortcut?: string | string[] | null;
26
- style?: ViewStyle;
26
+ style?: StyleProp<ViewStyle>;
27
27
  }
28
28
  export interface SpotlightSearchProps {
29
29
  value?: string;
@@ -41,7 +41,7 @@ export interface SpotlightActionsListProps {
41
41
  children: React.ReactNode;
42
42
  scrollable?: boolean;
43
43
  maxHeight?: number;
44
- style?: ViewStyle;
44
+ style?: StyleProp<ViewStyle>;
45
45
  scrollRef?: any;
46
46
  onScrollChange?: (y: number) => void;
47
47
  }
@@ -54,7 +54,7 @@ export interface SpotlightActionProps {
54
54
  disabled?: boolean;
55
55
  selected?: boolean;
56
56
  children?: React.ReactNode;
57
- style?: ViewStyle;
57
+ style?: StyleProp<ViewStyle>;
58
58
  innerRef?: any;
59
59
  onLayout?: (e: any) => void;
60
60
  highlightQuery?: HighlightComponentProps['highlight'];
@@ -62,9 +62,9 @@ export interface SpotlightActionProps {
62
62
  export interface SpotlightActionsGroupProps {
63
63
  label: string;
64
64
  children: React.ReactNode;
65
- style?: ViewStyle;
65
+ style?: StyleProp<ViewStyle>;
66
66
  }
67
67
  export interface SpotlightEmptyProps {
68
68
  children: React.ReactNode;
69
- style?: ViewStyle;
69
+ style?: StyleProp<ViewStyle>;
70
70
  }
@@ -53,9 +53,9 @@ export interface TableProps extends SpacingProps {
53
53
  export interface TableScrollContainerProps extends SpacingProps {
54
54
  children?: React.ReactNode;
55
55
  /** Minimum width before scrolling kicks in */
56
- minWidth?: number;
56
+ minW?: number;
57
57
  /** Maximum height before vertical scrolling */
58
- maxHeight?: number;
58
+ maxH?: number;
59
59
  /** Scroll type for web */
60
60
  type?: 'native' | 'custom';
61
61
  style?: any;
@@ -84,9 +84,9 @@ export interface TableCellProps extends SpacingProps {
84
84
  /** Text alignment */
85
85
  align?: 'left' | 'center' | 'right';
86
86
  /** Minimum width for auto-sizing */
87
- minWidth?: number;
87
+ minW?: number;
88
88
  /** Maximum width for auto-sizing */
89
- maxWidth?: number;
89
+ maxW?: number;
90
90
  /** Flex grow factor for flexible sizing */
91
91
  flex?: number;
92
92
  /** Width strategy for responsive behavior */
@@ -4,7 +4,7 @@ interface RadiusProp {
4
4
  radius?: number | string;
5
5
  }
6
6
  import type { SizeValue } from '../../core/theme/sizes';
7
- import type { ViewStyle, TextStyle } from 'react-native';
7
+ import type { ViewStyle, TextStyle, StyleProp } from 'react-native';
8
8
  /**
9
9
  * Describes a single tab rendered by the {@link Tabs} component.
10
10
  */
@@ -115,19 +115,19 @@ export interface TabsProps extends SpacingProps, RadiusProp {
115
115
  /**
116
116
  * Style overrides for the outer container.
117
117
  */
118
- style?: ViewStyle;
118
+ style?: StyleProp<ViewStyle>;
119
119
  /**
120
120
  * Style overrides applied to each tab pressable.
121
121
  */
122
- tabStyle?: ViewStyle;
122
+ tabStyle?: StyleProp<ViewStyle>;
123
123
  /**
124
124
  * Style for the active tab content wrapper.
125
125
  */
126
- contentStyle?: ViewStyle;
126
+ contentStyle?: StyleProp<ViewStyle>;
127
127
  /**
128
128
  * Additional text style applied to tab labels.
129
129
  */
130
- textStyle?: TextStyle;
130
+ textStyle?: StyleProp<TextStyle>;
131
131
  /**
132
132
  * Array of tab keys that should be rendered disabled.
133
133
  */
@@ -17,7 +17,7 @@ export interface TextAreaProps extends BaseInputProps {
17
17
  /** Show character counter */
18
18
  showCharCounter?: boolean;
19
19
  /** Fixed height for the TextArea */
20
- height?: number;
20
+ h?: number;
21
21
  /** Resize behavior */
22
22
  resize?: 'none' | 'vertical' | 'horizontal' | 'both';
23
23
  /** Additional TextInput props */
@@ -30,5 +30,5 @@ export interface TextAreaStyleProps {
30
30
  error?: boolean;
31
31
  rows?: number;
32
32
  resize?: 'none' | 'vertical' | 'horizontal' | 'both';
33
- height?: number;
33
+ h?: number;
34
34
  }
@@ -12,6 +12,8 @@ export interface TimelineItemProps extends Omit<ViewProps, 'children'> {
12
12
  children?: ReactNode;
13
13
  /** Item title */
14
14
  title?: string;
15
+ /** Optional timestamp text or node */
16
+ timestamp?: ReactNode;
15
17
  /** Custom bullet content (icon, avatar, etc.) */
16
18
  bullet?: ReactNode;
17
19
  /** Line variant for this item */
@@ -20,6 +22,12 @@ export interface TimelineItemProps extends Omit<ViewProps, 'children'> {
20
22
  color?: string;
21
23
  /** Item color variant token (e.g. primary.5 or primary) used if color not provided */
22
24
  colorVariant?: string;
25
+ /** Override title text color for this item */
26
+ titleColor?: string;
27
+ /** Override description text color for this item */
28
+ descriptionColor?: string;
29
+ /** Override timestamp text color for this item */
30
+ timestampColor?: string;
23
31
  /** Whether this item is active */
24
32
  active?: boolean;
25
33
  /** Override timeline alignment for this specific item */
@@ -34,6 +42,12 @@ export interface TimelineProps extends Omit<ViewProps, 'children'> {
34
42
  color?: string;
35
43
  /** Timeline color variant token (e.g. primary.5) used when color not provided */
36
44
  colorVariant?: string;
45
+ /** Default title color for all items */
46
+ titleColor?: string;
47
+ /** Default description color for all items */
48
+ descriptionColor?: string;
49
+ /** Default timestamp color for all items */
50
+ timestampColor?: string;
37
51
  /** Line width */
38
52
  lineWidth?: number;
39
53
  /** Bullet size */
@@ -58,4 +72,10 @@ export interface TimelineContextValue {
58
72
  metrics: TimelineSizeMetrics;
59
73
  /** Whether layout is split with centered vertical line */
60
74
  centerMode?: boolean;
75
+ /** Default title color for items */
76
+ titleColor?: string;
77
+ /** Default description color for items */
78
+ descriptionColor?: string;
79
+ /** Default timestamp color for items */
80
+ timestampColor?: string;
61
81
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ViewStyle } from 'react-native';
2
+ import { ViewStyle, StyleProp } from 'react-native';
3
3
  import { SpacingProps } from '../../core/utils';
4
4
  import { BorderRadiusProps } from '../../core/theme/radius';
5
5
  export type ToastVariant = 'light' | 'filled' | 'outline';
@@ -58,7 +58,7 @@ export interface ToastProps extends SpacingProps, BorderRadiusProps {
58
58
  /** Position of the toast for animation direction */
59
59
  position?: ToastPosition;
60
60
  /** Container style */
61
- style?: ViewStyle;
61
+ style?: StyleProp<ViewStyle>;
62
62
  /** Test ID for testing */
63
63
  testID?: string;
64
64
  /** Action buttons */
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ViewStyle, View } from 'react-native';
2
+ import { ViewStyle, View, StyleProp } from 'react-native';
3
3
  import { SizeValue } from '../../core/theme/sizes';
4
4
  export type TooltipPositionType = 'top' | 'bottom' | 'left' | 'right';
5
5
  export interface TooltipProps {
@@ -34,7 +34,7 @@ export interface TooltipProps {
34
34
  /** Children element to attach tooltip to */
35
35
  children: React.ReactElement;
36
36
  /** Container style */
37
- style?: ViewStyle;
37
+ style?: StyleProp<ViewStyle>;
38
38
  /** Test ID for testing */
39
39
  testID?: string;
40
40
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ImageStyle } from 'react-native';
2
+ import { ImageStyle, StyleProp } from 'react-native';
3
3
  import type { VideoSource, VideoPlaybackRate } from './types';
4
4
  interface NativeVideoPlayerProps {
5
5
  source: VideoSource;
@@ -17,7 +17,7 @@ interface NativeVideoPlayerProps {
17
17
  onLoad?: () => void;
18
18
  onLoadStart?: () => void;
19
19
  onBuffer?: (buffering: boolean) => void;
20
- style?: ImageStyle;
20
+ style?: StyleProp<ImageStyle>;
21
21
  accessibilityLabel?: string;
22
22
  }
23
23
  interface NativeVideoPlayerRef {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ViewStyle } from 'react-native';
2
+ import { ViewStyle, StyleProp } from 'react-native';
3
3
  import type { VideoControls as VideoControlsConfig, VideoState, VideoPlaybackRate } from './types';
4
4
  interface VideoControlsProps {
5
5
  config: VideoControlsConfig;
@@ -11,7 +11,7 @@ interface VideoControlsProps {
11
11
  onPlaybackRateChange: (rate: VideoPlaybackRate) => void;
12
12
  onToggleFullscreen: () => void;
13
13
  onScrubbingChange?: (isScrubbing: boolean) => void;
14
- style?: ViewStyle;
14
+ style?: StyleProp<ViewStyle>;
15
15
  }
16
16
  export declare function VideoControls({ config, state, onPlay, onPause, onSeek, onVolumeChange, onPlaybackRateChange, onToggleFullscreen, onScrubbingChange, style }: VideoControlsProps): React.JSX.Element;
17
17
  export {};
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ImageStyle } from 'react-native';
2
+ import { ImageStyle, StyleProp } from 'react-native';
3
3
  import type { VideoSource, VideoPlaybackRate, VideoQuality } from './types';
4
4
  interface YouTubePlayerProps {
5
5
  source: VideoSource;
@@ -28,7 +28,7 @@ interface YouTubePlayerProps {
28
28
  onLoad?: () => void;
29
29
  onLoadStart?: () => void;
30
30
  onBuffer?: (buffering: boolean) => void;
31
- style?: ImageStyle;
31
+ style?: StyleProp<ImageStyle>;
32
32
  accessibilityLabel?: string;
33
33
  }
34
34
  interface YouTubePlayerRef {
@@ -1,4 +1,4 @@
1
- import { ViewStyle, ImageStyle } from 'react-native';
1
+ import { ViewStyle, ImageStyle, StyleProp } from 'react-native';
2
2
  import type { SpacingProps } from '../../core/utils';
3
3
  export type VideoSource = {
4
4
  /** Video URL (mp4, webm, etc.) */
@@ -74,8 +74,8 @@ export interface VideoProps extends SpacingProps {
74
74
  /** Video source configuration */
75
75
  source: VideoSource;
76
76
  /** Display and sizing */
77
- width?: number | string;
78
- height?: number | string;
77
+ w?: number | string;
78
+ h?: number | string;
79
79
  aspectRatio?: number;
80
80
  poster?: string;
81
81
  /** Playback configuration */
@@ -118,9 +118,9 @@ export interface VideoProps extends SpacingProps {
118
118
  onBuffer?: (buffering: boolean) => void;
119
119
  onTimelineEvent?: (event: VideoTimelineEvent, state: VideoState) => void;
120
120
  /** Styling */
121
- style?: ViewStyle;
122
- videoStyle?: ImageStyle;
123
- controlsStyle?: ViewStyle;
121
+ style?: StyleProp<ViewStyle>;
122
+ videoStyle?: StyleProp<ImageStyle>;
123
+ controlsStyle?: StyleProp<ViewStyle>;
124
124
  /** Accessibility */
125
125
  accessibilityLabel?: string;
126
126
  testID?: string;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  interface WaveformSkeletonProps {
3
- width?: number;
4
- height?: number;
3
+ w?: number;
4
+ h?: number;
5
5
  fullWidth?: boolean;
6
6
  barsCount?: number;
7
7
  }
@@ -4,9 +4,9 @@ export interface WaveformProps extends Omit<ViewProps, 'children'> {
4
4
  /** Array of peak values (normalized between -1 and 1) */
5
5
  peaks: number[];
6
6
  /** Width of the waveform */
7
- width?: number;
7
+ w?: number;
8
8
  /** Height of the waveform */
9
- height?: number;
9
+ h?: number;
10
10
  /** Color of the waveform */
11
11
  color?: string;
12
12
  /** Visual variant of the waveform */
@@ -50,7 +50,6 @@ export { Slider, RangeSlider } from './Slider';
50
50
  export { Knob } from './Knob';
51
51
  export { AutoComplete } from './AutoComplete';
52
52
  export { FileInput } from './FileInput';
53
- export { RichTextEditor } from './RichTextEditor';
54
53
  export { Form } from './Form';
55
54
  export { FormLayout, FormSection, FormGroup, FormField } from './FormLayout';
56
55
  export { Row, Column } from './Layout';
@@ -133,7 +132,6 @@ export type { SliderProps, RangeSliderProps } from './Slider';
133
132
  export type { KnobProps, KnobMark } from './Knob';
134
133
  export type { AutoCompleteProps, AutoCompleteOption } from './AutoComplete';
135
134
  export type { FileInputProps, FileInputFile } from './FileInput';
136
- export type { RichTextEditorProps, RichTextEditorContent, RichTextEditorFormat, RichTextEditorSelection } from './RichTextEditor';
137
135
  export type { FormProps, FormFieldProps, FormInputProps, FormLabelProps, FormErrorProps, FormSubmitProps } from './Form';
138
136
  export type { RowProps, ColumnProps } from './Layout';
139
137
  export type { ToastOptions, ToastPosition } from './Toast';
@@ -35,7 +35,6 @@ export type { SliderProps, RangeSliderProps } from './Slider';
35
35
  export type { KnobProps, KnobMark } from './Knob';
36
36
  export type { AutoCompleteProps, AutoCompleteOption } from './AutoComplete';
37
37
  export type { FileInputProps, FileInputFile } from './FileInput';
38
- export type { RichTextEditorProps } from './RichTextEditor';
39
38
  export type { FormProps } from './Form';
40
39
  export type { RowProps, ColumnProps } from './Layout';
41
40
  export type { ProgressProps } from './Progress';