@frosted-ui/react-native 0.0.1-canary.100

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 (207) hide show
  1. package/README.md +160 -0
  2. package/dist/components/accordion.d.ts +21 -0
  3. package/dist/components/accordion.d.ts.map +1 -0
  4. package/dist/components/accordion.js +94 -0
  5. package/dist/components/accordion.js.map +1 -0
  6. package/dist/components/alert-dialog.d.ts +67 -0
  7. package/dist/components/alert-dialog.d.ts.map +1 -0
  8. package/dist/components/alert-dialog.js +170 -0
  9. package/dist/components/alert-dialog.js.map +1 -0
  10. package/dist/components/aspect-ratio.d.ts +4 -0
  11. package/dist/components/aspect-ratio.d.ts.map +1 -0
  12. package/dist/components/aspect-ratio.js +4 -0
  13. package/dist/components/aspect-ratio.js.map +1 -0
  14. package/dist/components/avatar.d.ts +23 -0
  15. package/dist/components/avatar.d.ts.map +1 -0
  16. package/dist/components/avatar.js +128 -0
  17. package/dist/components/avatar.js.map +1 -0
  18. package/dist/components/badge.d.ts +15 -0
  19. package/dist/components/badge.d.ts.map +1 -0
  20. package/dist/components/badge.js +81 -0
  21. package/dist/components/badge.js.map +1 -0
  22. package/dist/components/button.d.ts +14 -0
  23. package/dist/components/button.d.ts.map +1 -0
  24. package/dist/components/button.js +81 -0
  25. package/dist/components/button.js.map +1 -0
  26. package/dist/components/callout.d.ts +23 -0
  27. package/dist/components/callout.d.ts.map +1 -0
  28. package/dist/components/callout.js +128 -0
  29. package/dist/components/callout.js.map +1 -0
  30. package/dist/components/card.d.ts +9 -0
  31. package/dist/components/card.d.ts.map +1 -0
  32. package/dist/components/card.js +41 -0
  33. package/dist/components/card.js.map +1 -0
  34. package/dist/components/checkbox.d.ts +12 -0
  35. package/dist/components/checkbox.d.ts.map +1 -0
  36. package/dist/components/checkbox.js +100 -0
  37. package/dist/components/checkbox.js.map +1 -0
  38. package/dist/components/circular-progress.d.ts +21 -0
  39. package/dist/components/circular-progress.d.ts.map +1 -0
  40. package/dist/components/circular-progress.js +78 -0
  41. package/dist/components/circular-progress.js.map +1 -0
  42. package/dist/components/code.d.ts +18 -0
  43. package/dist/components/code.d.ts.map +1 -0
  44. package/dist/components/code.js +83 -0
  45. package/dist/components/code.js.map +1 -0
  46. package/dist/components/context-menu.d.ts +65 -0
  47. package/dist/components/context-menu.d.ts.map +1 -0
  48. package/dist/components/context-menu.js +441 -0
  49. package/dist/components/context-menu.js.map +1 -0
  50. package/dist/components/dialog.d.ts +49 -0
  51. package/dist/components/dialog.d.ts.map +1 -0
  52. package/dist/components/dialog.js +141 -0
  53. package/dist/components/dialog.js.map +1 -0
  54. package/dist/components/dropdown-menu.d.ts +65 -0
  55. package/dist/components/dropdown-menu.d.ts.map +1 -0
  56. package/dist/components/dropdown-menu.js +441 -0
  57. package/dist/components/dropdown-menu.js.map +1 -0
  58. package/dist/components/heading.d.ts +15 -0
  59. package/dist/components/heading.d.ts.map +1 -0
  60. package/dist/components/heading.js +8 -0
  61. package/dist/components/heading.js.map +1 -0
  62. package/dist/components/hover-card.d.ts +24 -0
  63. package/dist/components/hover-card.d.ts.map +1 -0
  64. package/dist/components/hover-card.js +49 -0
  65. package/dist/components/hover-card.js.map +1 -0
  66. package/dist/components/icon-button.d.ts +14 -0
  67. package/dist/components/icon-button.d.ts.map +1 -0
  68. package/dist/components/icon-button.js +81 -0
  69. package/dist/components/icon-button.js.map +1 -0
  70. package/dist/components/icon.d.ts +27 -0
  71. package/dist/components/icon.d.ts.map +1 -0
  72. package/dist/components/icon.js +30 -0
  73. package/dist/components/icon.js.map +1 -0
  74. package/dist/components/index.d.ts +37 -0
  75. package/dist/components/index.d.ts.map +1 -0
  76. package/dist/components/index.js +49 -0
  77. package/dist/components/index.js.map +1 -0
  78. package/dist/components/label.d.ts +8 -0
  79. package/dist/components/label.d.ts.map +1 -0
  80. package/dist/components/label.js +26 -0
  81. package/dist/components/label.js.map +1 -0
  82. package/dist/components/link.d.ts +19 -0
  83. package/dist/components/link.d.ts.map +1 -0
  84. package/dist/components/link.js +68 -0
  85. package/dist/components/link.js.map +1 -0
  86. package/dist/components/list.d.ts +37 -0
  87. package/dist/components/list.d.ts.map +1 -0
  88. package/dist/components/list.js +112 -0
  89. package/dist/components/list.js.map +1 -0
  90. package/dist/components/native-only-animated-view.d.ts +219 -0
  91. package/dist/components/native-only-animated-view.d.ts.map +1 -0
  92. package/dist/components/native-only-animated-view.js +26 -0
  93. package/dist/components/native-only-animated-view.js.map +1 -0
  94. package/dist/components/popover.d.ts +24 -0
  95. package/dist/components/popover.d.ts.map +1 -0
  96. package/dist/components/popover.js +52 -0
  97. package/dist/components/popover.js.map +1 -0
  98. package/dist/components/progress.d.ts +14 -0
  99. package/dist/components/progress.d.ts.map +1 -0
  100. package/dist/components/progress.js +52 -0
  101. package/dist/components/progress.js.map +1 -0
  102. package/dist/components/radio-group.d.ts +18 -0
  103. package/dist/components/radio-group.d.ts.map +1 -0
  104. package/dist/components/radio-group.js +122 -0
  105. package/dist/components/radio-group.js.map +1 -0
  106. package/dist/components/segmented-control.d.ts +21 -0
  107. package/dist/components/segmented-control.d.ts.map +1 -0
  108. package/dist/components/segmented-control.js +113 -0
  109. package/dist/components/segmented-control.js.map +1 -0
  110. package/dist/components/select.d.ts +58 -0
  111. package/dist/components/select.d.ts.map +1 -0
  112. package/dist/components/select.js +491 -0
  113. package/dist/components/select.js.map +1 -0
  114. package/dist/components/separator.d.ts +12 -0
  115. package/dist/components/separator.d.ts.map +1 -0
  116. package/dist/components/separator.js +47 -0
  117. package/dist/components/separator.js.map +1 -0
  118. package/dist/components/skeleton.d.ts +28 -0
  119. package/dist/components/skeleton.d.ts.map +1 -0
  120. package/dist/components/skeleton.js +137 -0
  121. package/dist/components/skeleton.js.map +1 -0
  122. package/dist/components/slider.d.ts +30 -0
  123. package/dist/components/slider.d.ts.map +1 -0
  124. package/dist/components/slider.js +248 -0
  125. package/dist/components/slider.js.map +1 -0
  126. package/dist/components/spinner.d.ts +17 -0
  127. package/dist/components/spinner.d.ts.map +1 -0
  128. package/dist/components/spinner.js +199 -0
  129. package/dist/components/spinner.js.map +1 -0
  130. package/dist/components/switch.d.ts +12 -0
  131. package/dist/components/switch.d.ts.map +1 -0
  132. package/dist/components/switch.js +188 -0
  133. package/dist/components/switch.js.map +1 -0
  134. package/dist/components/tabs.d.ts +26 -0
  135. package/dist/components/tabs.d.ts.map +1 -0
  136. package/dist/components/tabs.js +125 -0
  137. package/dist/components/tabs.js.map +1 -0
  138. package/dist/components/text-area.d.ts +16 -0
  139. package/dist/components/text-area.d.ts.map +1 -0
  140. package/dist/components/text-area.js +121 -0
  141. package/dist/components/text-area.js.map +1 -0
  142. package/dist/components/text-field.d.ts +35 -0
  143. package/dist/components/text-field.d.ts.map +1 -0
  144. package/dist/components/text-field.js +300 -0
  145. package/dist/components/text-field.js.map +1 -0
  146. package/dist/components/text.d.ts +23 -0
  147. package/dist/components/text.d.ts.map +1 -0
  148. package/dist/components/text.js +44 -0
  149. package/dist/components/text.js.map +1 -0
  150. package/dist/components/tooltip.d.ts +24 -0
  151. package/dist/components/tooltip.d.ts.map +1 -0
  152. package/dist/components/tooltip.js +63 -0
  153. package/dist/components/tooltip.js.map +1 -0
  154. package/dist/index.d.ts +9 -0
  155. package/dist/index.d.ts.map +1 -0
  156. package/dist/index.js +18 -0
  157. package/dist/index.js.map +1 -0
  158. package/dist/lib/button-styles.d.ts +13 -0
  159. package/dist/lib/button-styles.d.ts.map +1 -0
  160. package/dist/lib/button-styles.js +115 -0
  161. package/dist/lib/button-styles.js.map +1 -0
  162. package/dist/lib/color-utils.d.ts +26 -0
  163. package/dist/lib/color-utils.d.ts.map +1 -0
  164. package/dist/lib/color-utils.js +48 -0
  165. package/dist/lib/color-utils.js.map +1 -0
  166. package/dist/lib/dialog-styles.d.ts +42 -0
  167. package/dist/lib/dialog-styles.d.ts.map +1 -0
  168. package/dist/lib/dialog-styles.js +162 -0
  169. package/dist/lib/dialog-styles.js.map +1 -0
  170. package/dist/lib/full-window-overlay.d.ts +11 -0
  171. package/dist/lib/full-window-overlay.d.ts.map +1 -0
  172. package/dist/lib/full-window-overlay.js +16 -0
  173. package/dist/lib/full-window-overlay.js.map +1 -0
  174. package/dist/lib/panel-styles.d.ts +32 -0
  175. package/dist/lib/panel-styles.d.ts.map +1 -0
  176. package/dist/lib/panel-styles.js +96 -0
  177. package/dist/lib/panel-styles.js.map +1 -0
  178. package/dist/lib/text-input-styles.d.ts +36 -0
  179. package/dist/lib/text-input-styles.d.ts.map +1 -0
  180. package/dist/lib/text-input-styles.js +88 -0
  181. package/dist/lib/text-input-styles.js.map +1 -0
  182. package/dist/lib/theme-context.d.ts +80 -0
  183. package/dist/lib/theme-context.d.ts.map +1 -0
  184. package/dist/lib/theme-context.js +97 -0
  185. package/dist/lib/theme-context.js.map +1 -0
  186. package/dist/lib/theme-tokens.d.ts +222 -0
  187. package/dist/lib/theme-tokens.d.ts.map +1 -0
  188. package/dist/lib/theme-tokens.js +158 -0
  189. package/dist/lib/theme-tokens.js.map +1 -0
  190. package/dist/lib/theme.d.ts +40 -0
  191. package/dist/lib/theme.d.ts.map +1 -0
  192. package/dist/lib/theme.js +194 -0
  193. package/dist/lib/theme.js.map +1 -0
  194. package/dist/lib/types.d.ts +18 -0
  195. package/dist/lib/types.d.ts.map +1 -0
  196. package/dist/lib/types.js +2 -0
  197. package/dist/lib/types.js.map +1 -0
  198. package/dist/lib/use-theme-tokens.d.ts +593 -0
  199. package/dist/lib/use-theme-tokens.d.ts.map +1 -0
  200. package/dist/lib/use-theme-tokens.js +44 -0
  201. package/dist/lib/use-theme-tokens.js.map +1 -0
  202. package/docs/llm/COLOR_SYSTEM.md +799 -0
  203. package/docs/llm/COMPONENTS.md +1329 -0
  204. package/docs/llm/DESIGN_PATTERNS.md +2567 -0
  205. package/docs/llm/README.md +118 -0
  206. package/docs/llm/TYPOGRAPHY.md +516 -0
  207. package/package.json +106 -0
@@ -0,0 +1,100 @@
1
+ import { useThemeTokens } from '../lib/use-theme-tokens';
2
+ import * as CheckboxPrimitive from '@rn-primitives/checkbox';
3
+ import { Check } from 'lucide-react-native';
4
+ import * as React from 'react';
5
+ import { Platform, View } from 'react-native';
6
+ // Size styles from CSS:
7
+ // Size 1: --checkbox-size: var(--space-4) = 16px, border-radius: var(--radius-2) = 4px
8
+ // Size 2: --checkbox-size: calc(var(--space-4) * 1.25) = 20px, border-radius: var(--radius-3) = 6px
9
+ // Size 3: --checkbox-size: var(--space-5) = 24px, border-radius: var(--radius-3) = 6px
10
+ function getSizeStyle(size) {
11
+ switch (size) {
12
+ case '1':
13
+ return { boxSize: 16, borderRadius: 4, iconSize: 12 };
14
+ case '2':
15
+ return { boxSize: 20, borderRadius: 6, iconSize: 14 };
16
+ case '3':
17
+ return { boxSize: 24, borderRadius: 6, iconSize: 18 };
18
+ }
19
+ }
20
+ function Checkbox({ size = '2', color, checked, disabled, onFocus, onBlur, ...props }) {
21
+ const { colors } = useThemeTokens();
22
+ const [focused, setFocused] = React.useState(false);
23
+ const gray = colors.palettes.gray;
24
+ // Semantic colors (accent, danger, etc.) are added by useThemeTokens
25
+ // Fallback to gray if palette key doesn't exist
26
+ const palette = colors.palettes[color ?? 'accent'] ?? gray;
27
+ const { boxSize, borderRadius, iconSize } = getSizeStyle(size);
28
+ // Base style
29
+ const baseStyle = {
30
+ width: boxSize,
31
+ height: boxSize,
32
+ borderRadius,
33
+ alignItems: 'center',
34
+ justifyContent: 'center',
35
+ overflow: 'hidden',
36
+ };
37
+ // State-based styles
38
+ let stateStyle;
39
+ if (disabled) {
40
+ stateStyle = {
41
+ backgroundColor: gray.a2,
42
+ borderWidth: 1,
43
+ borderColor: gray.a5,
44
+ };
45
+ }
46
+ else if (checked) {
47
+ stateStyle = {
48
+ backgroundColor: palette['9'],
49
+ };
50
+ }
51
+ else {
52
+ stateStyle = {
53
+ backgroundColor: colors.surface,
54
+ borderWidth: 1,
55
+ borderColor: gray.a7,
56
+ };
57
+ }
58
+ // Focus style - accent-a8 outline
59
+ const focusStyle = focused && !disabled
60
+ ? {
61
+ outlineWidth: 2,
62
+ outlineStyle: 'solid',
63
+ outlineColor: palette.a8,
64
+ outlineOffset: 2,
65
+ }
66
+ : undefined;
67
+ const combinedStyle = {
68
+ ...baseStyle,
69
+ ...stateStyle,
70
+ ...focusStyle,
71
+ };
72
+ // Icon color
73
+ const iconColor = disabled ? gray.a8 : palette['9-contrast'];
74
+ const handleFocus = React.useCallback((e) => {
75
+ if (Platform.OS === 'web') {
76
+ const target = e.target;
77
+ if (target?.matches?.(':focus-visible')) {
78
+ setFocused(true);
79
+ }
80
+ }
81
+ onFocus?.(e);
82
+ }, [onFocus]);
83
+ const handleBlur = React.useCallback((e) => {
84
+ setFocused(false);
85
+ onBlur?.(e);
86
+ }, [onBlur]);
87
+ // Reset default focus styles on the root
88
+ const rootStyle = {
89
+ outlineWidth: 0,
90
+ };
91
+ return (<CheckboxPrimitive.Root checked={checked} disabled={disabled} onFocus={handleFocus} onBlur={handleBlur} style={rootStyle} {...props}>
92
+ <View style={combinedStyle}>
93
+ <CheckboxPrimitive.Indicator>
94
+ <Check size={iconSize} strokeWidth={Platform.OS === 'web' ? 2.5 : 3.5} color={iconColor}/>
95
+ </CheckboxPrimitive.Indicator>
96
+ </View>
97
+ </CheckboxPrimitive.Root>);
98
+ }
99
+ export { Checkbox };
100
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Color } from '../lib/types';
2
+ import * as React from 'react';
3
+ import { type ViewProps } from 'react-native';
4
+ type CircularProgressSize = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
5
+ type CircularProgressProps = ViewProps & {
6
+ /** Size of the circular progress indicator */
7
+ size?: CircularProgressSize;
8
+ /** Color theme for the progress indicator */
9
+ color?: Color;
10
+ /** Current progress value */
11
+ value?: number;
12
+ /** Maximum progress value */
13
+ max?: number;
14
+ };
15
+ declare function CircularProgress({ size, color, value, max, style, ...props }: CircularProgressProps): React.JSX.Element;
16
+ declare namespace CircularProgress {
17
+ var displayName: string;
18
+ }
19
+ export { CircularProgress };
20
+ export type { CircularProgressProps, CircularProgressSize };
21
+ //# sourceMappingURL=circular-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circular-progress.d.ts","sourceRoot":"","sources":["../../src/components/circular-progress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAQ,KAAK,SAAS,EAAkB,MAAM,cAAc,CAAC;AAOpE,KAAK,oBAAoB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhF,KAAK,qBAAqB,GAAG,SAAS,GAAG;IACvC,8CAA8C;IAC9C,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAsCF,iBAAS,gBAAgB,CAAC,EACxB,IAAU,EACV,KAAK,EACL,KAAS,EACT,GAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,qBAAqB,qBAqFvB;kBA5FQ,gBAAgB;;;AAgGzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { useThemeTokens } from '../lib/use-theme-tokens';
2
+ import * as React from 'react';
3
+ import { View } from 'react-native';
4
+ import Svg, { Circle } from 'react-native-svg';
5
+ function getSizeConfig(size) {
6
+ switch (size) {
7
+ case '1':
8
+ return { diameter: 16, strokeWidth: 3 };
9
+ case '2':
10
+ return { diameter: 20, strokeWidth: 4 };
11
+ case '3':
12
+ return { diameter: 24, strokeWidth: 5 };
13
+ case '4':
14
+ return { diameter: 32, strokeWidth: 5 };
15
+ case '5':
16
+ return { diameter: 40, strokeWidth: 6 };
17
+ case '6':
18
+ return { diameter: 48, strokeWidth: 7 };
19
+ case '7':
20
+ return { diameter: 56, strokeWidth: 8 };
21
+ case '8':
22
+ return { diameter: 64, strokeWidth: 9 };
23
+ case '9':
24
+ return { diameter: 72, strokeWidth: 10 };
25
+ }
26
+ }
27
+ // ============================================================================
28
+ // Component
29
+ // ============================================================================
30
+ function CircularProgress({ size = '3', color, value = 0, max = 100, style, ...props }) {
31
+ const { colors } = useThemeTokens();
32
+ // Get size configuration
33
+ const { diameter, strokeWidth } = getSizeConfig(size);
34
+ // Calculate SVG geometry
35
+ const radius = (diameter - strokeWidth) / 2;
36
+ const circumference = 2 * Math.PI * radius;
37
+ const center = diameter / 2;
38
+ // Calculate progress (0 to 1)
39
+ const progress = Math.max(0, Math.min((value || 0) / max, 1));
40
+ // Round caps add visual length beyond the arc endpoints
41
+ // Each cap extends by strokeWidth/2, total extension = strokeWidth
42
+ const capArcLength = strokeWidth / 2;
43
+ const totalCapArc = strokeWidth;
44
+ // Calculate the arc to draw (reduced to account for cap visual extension)
45
+ // Minimum arc ensures at least a dot (rounded cap) is visible when progress > 0
46
+ const targetVisualArc = progress * circumference;
47
+ const compensatedArc = targetVisualArc - totalCapArc;
48
+ const minArc = progress > 0 ? 0.1 : 0;
49
+ const actualArcToDraw = Math.max(minArc, compensatedArc);
50
+ // Stroke dash offset (how much of the circumference to hide)
51
+ const strokeDashoffset = circumference - actualArcToDraw;
52
+ // Rotate to position start cap's outer edge at 12 o'clock
53
+ const capAngle = (capArcLength / circumference) * 360;
54
+ const rotation = -90 + capAngle;
55
+ // Get colors
56
+ const gray = colors.palettes.gray;
57
+ const palette = colors.palettes[color ?? 'accent'] ?? gray;
58
+ // Track color (background circle) - uses alpha variant
59
+ const trackColor = palette.a3;
60
+ // Indicator color
61
+ const indicatorColor = palette['9'];
62
+ const containerStyle = {
63
+ width: diameter,
64
+ height: diameter,
65
+ };
66
+ return (<View role="progressbar" aria-valuemin={0} aria-valuemax={max} aria-valuenow={value} style={[containerStyle, style]} {...props}>
67
+ <Svg width={diameter} height={diameter} viewBox={`0 0 ${diameter} ${diameter}`}>
68
+ {/* Track (background circle) */}
69
+ <Circle cx={center} cy={center} r={radius} stroke={trackColor} strokeWidth={strokeWidth} fill="none"/>
70
+
71
+ {/* Progress indicator */}
72
+ {progress > 0 && (<Circle cx={center} cy={center} r={radius} stroke={indicatorColor} strokeWidth={strokeWidth} fill="none" strokeDasharray={progress >= 1 ? undefined : circumference} strokeDashoffset={progress >= 1 ? undefined : strokeDashoffset} strokeLinecap={progress >= 1 ? 'butt' : 'round'} transform={progress >= 1 ? undefined : `rotate(${rotation} ${center} ${center})`}/>)}
73
+ </Svg>
74
+ </View>);
75
+ }
76
+ CircularProgress.displayName = 'CircularProgress';
77
+ export { CircularProgress };
78
+ //# sourceMappingURL=circular-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circular-progress.js","sourceRoot":"","sources":["../../src/components/circular-progress.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { themeTokens } from '../lib/theme-tokens';
2
+ import type { Color } from '../lib/types';
3
+ import * as React from 'react';
4
+ import { Text as RNText, type TextStyle } from 'react-native';
5
+ type CodeSize = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
6
+ type CodeVariant = 'solid' | 'soft' | 'outline' | 'ghost';
7
+ type CodeWeight = keyof typeof themeTokens.fontWeights;
8
+ type CodeProps = Omit<React.ComponentProps<typeof RNText>, 'style'> & {
9
+ size?: CodeSize;
10
+ variant?: CodeVariant;
11
+ weight?: CodeWeight;
12
+ color?: Color;
13
+ style?: TextStyle;
14
+ };
15
+ declare function Code({ size, variant, weight, color, style, ...props }: CodeProps): React.JSX.Element;
16
+ export { Code };
17
+ export type { CodeProps, CodeSize, CodeVariant };
18
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/components/code.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAY,IAAI,IAAI,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAExE,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACpE,KAAK,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAC1D,KAAK,UAAU,GAAG,MAAM,OAAO,WAAW,CAAC,WAAW,CAAC;AAEvD,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG;IACpE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iBAAS,IAAI,CAAC,EAAE,IAAU,EAAE,OAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,qBAwFxF;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { useThemeTokens } from '../lib/use-theme-tokens';
2
+ import * as React from 'react';
3
+ import { Platform, Text as RNText } from 'react-native';
4
+ function Code({ size = '2', variant = 'soft', weight, color, style, ...props }) {
5
+ const { colors, typography, fontWeights } = useThemeTokens();
6
+ const gray = colors.palettes.gray;
7
+ // Default to accent color, fallback to gray
8
+ const palette = colors.palettes[color ?? 'accent'] ?? gray;
9
+ // Typography from theme, with 0.95 font size adjustment like web
10
+ const typo = typography[size];
11
+ const fontSizeAdjust = 0.95;
12
+ const adjustedFontSize = typo.fontSize * fontSizeAdjust;
13
+ // Base typography style
14
+ const baseStyle = {
15
+ fontFamily: Platform.select({
16
+ ios: 'Menlo',
17
+ android: 'monospace',
18
+ default: 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace',
19
+ }),
20
+ fontSize: adjustedFontSize,
21
+ lineHeight: typo.lineHeight,
22
+ letterSpacing: typo.letterSpacing,
23
+ };
24
+ // Font weight
25
+ const weightStyle = weight
26
+ ? { fontWeight: fontWeights[weight] }
27
+ : undefined;
28
+ // Variant styles
29
+ let variantStyle = {};
30
+ // Padding for non-ghost variants (matches web: 0.25em horizontal)
31
+ const horizontalPadding = adjustedFontSize * 0.25;
32
+ // Border radius: calc((0.5px + 0.2em) * var(--radius-factor))
33
+ // Assuming radius-factor of 1, this is roughly 0.5 + 0.2 * fontSize
34
+ const borderRadius = 0.5 + 0.2 * adjustedFontSize;
35
+ switch (variant) {
36
+ case 'ghost':
37
+ variantStyle = {
38
+ color: palette.a11,
39
+ };
40
+ break;
41
+ case 'solid':
42
+ variantStyle = {
43
+ paddingHorizontal: horizontalPadding,
44
+ paddingVertical: 1,
45
+ backgroundColor: palette.a9,
46
+ color: palette['9-contrast'],
47
+ borderRadius,
48
+ overflow: 'hidden',
49
+ };
50
+ break;
51
+ case 'soft':
52
+ variantStyle = {
53
+ paddingHorizontal: horizontalPadding,
54
+ paddingVertical: 1,
55
+ backgroundColor: palette.a3,
56
+ color: palette.a11,
57
+ borderRadius,
58
+ overflow: 'hidden',
59
+ };
60
+ break;
61
+ case 'outline':
62
+ variantStyle = {
63
+ paddingHorizontal: horizontalPadding,
64
+ paddingVertical: 1,
65
+ color: palette.a11,
66
+ borderRadius,
67
+ overflow: 'hidden',
68
+ // Use borderWidth on native, boxShadow on web
69
+ ...(Platform.OS === 'web'
70
+ ? {
71
+ boxShadow: `inset 0 0 0 1px ${palette.a8}`,
72
+ }
73
+ : {
74
+ borderWidth: 1,
75
+ borderColor: palette.a8,
76
+ }),
77
+ };
78
+ break;
79
+ }
80
+ return <RNText style={[baseStyle, weightStyle, variantStyle, style]} {...props}/>;
81
+ }
82
+ export { Code };
83
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/components/code.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import type { Color } from '../lib/types';
2
+ import * as ContextMenuPrimitive from '@rn-primitives/context-menu';
3
+ import * as React from 'react';
4
+ type ContextMenuSize = '1' | '2' | '3';
5
+ type ContextMenuVariant = 'solid' | 'soft';
6
+ type ContextMenuRootProps = ContextMenuPrimitive.RootProps & {
7
+ size?: ContextMenuSize;
8
+ variant?: ContextMenuVariant;
9
+ color?: Color;
10
+ };
11
+ declare function ContextMenuRoot({ size, variant, color, ...props }: ContextMenuRootProps): React.JSX.Element;
12
+ type ContextMenuTriggerProps = ContextMenuPrimitive.TriggerProps;
13
+ declare function ContextMenuTrigger(props: ContextMenuTriggerProps): React.JSX.Element;
14
+ type ContextMenuContentProps = Omit<ContextMenuPrimitive.ContentProps, 'children'> & {
15
+ portalHost?: string;
16
+ children?: React.ReactNode;
17
+ };
18
+ declare function ContextMenuContent({ portalHost, children, ...props }: ContextMenuContentProps): React.JSX.Element;
19
+ type ContextMenuItemProps = Omit<ContextMenuPrimitive.ItemProps, 'children'> & {
20
+ color?: Color;
21
+ children?: React.ReactNode;
22
+ };
23
+ declare function ContextMenuItem({ children, disabled, color, ...props }: ContextMenuItemProps): React.JSX.Element;
24
+ type ContextMenuCheckboxItemProps = Omit<ContextMenuPrimitive.CheckboxItemProps, 'children'> & {
25
+ children?: React.ReactNode;
26
+ };
27
+ declare function ContextMenuCheckboxItem({ children, disabled, ...props }: ContextMenuCheckboxItemProps): React.JSX.Element;
28
+ type ContextMenuRadioGroupProps = ContextMenuPrimitive.RadioGroupProps;
29
+ declare function ContextMenuRadioGroup(props: ContextMenuRadioGroupProps): React.JSX.Element;
30
+ type ContextMenuRadioItemProps = Omit<ContextMenuPrimitive.RadioItemProps, 'children'> & {
31
+ children?: React.ReactNode;
32
+ };
33
+ declare function ContextMenuRadioItem({ children, disabled, ...props }: ContextMenuRadioItemProps): React.JSX.Element;
34
+ type ContextMenuLabelProps = ContextMenuPrimitive.LabelProps;
35
+ declare function ContextMenuLabel({ children, ...props }: ContextMenuLabelProps): React.JSX.Element;
36
+ type ContextMenuSeparatorProps = ContextMenuPrimitive.SeparatorProps;
37
+ declare function ContextMenuSeparator(props: ContextMenuSeparatorProps): React.JSX.Element;
38
+ type ContextMenuGroupProps = ContextMenuPrimitive.GroupProps;
39
+ declare function ContextMenuGroup(props: ContextMenuGroupProps): React.JSX.Element;
40
+ type ContextMenuSubProps = ContextMenuPrimitive.SubProps;
41
+ declare function ContextMenuSub(props: ContextMenuSubProps): React.JSX.Element;
42
+ type ContextMenuSubTriggerProps = Omit<ContextMenuPrimitive.SubTriggerProps, 'children'> & {
43
+ children?: React.ReactNode;
44
+ };
45
+ declare function ContextMenuSubTrigger({ children, disabled, ...props }: ContextMenuSubTriggerProps): React.JSX.Element;
46
+ type ContextMenuSubContentProps = ContextMenuPrimitive.SubContentProps;
47
+ declare function ContextMenuSubContent(props: ContextMenuSubContentProps): React.JSX.Element;
48
+ declare const ContextMenu: {
49
+ Root: typeof ContextMenuRoot;
50
+ Trigger: typeof ContextMenuTrigger;
51
+ Content: typeof ContextMenuContent;
52
+ Item: typeof ContextMenuItem;
53
+ CheckboxItem: typeof ContextMenuCheckboxItem;
54
+ RadioGroup: typeof ContextMenuRadioGroup;
55
+ RadioItem: typeof ContextMenuRadioItem;
56
+ Label: typeof ContextMenuLabel;
57
+ Separator: typeof ContextMenuSeparator;
58
+ Group: typeof ContextMenuGroup;
59
+ Sub: typeof ContextMenuSub;
60
+ SubTrigger: typeof ContextMenuSubTrigger;
61
+ SubContent: typeof ContextMenuSubContent;
62
+ };
63
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, };
64
+ export type { ContextMenuCheckboxItemProps, ContextMenuContentProps, ContextMenuGroupProps, ContextMenuItemProps, ContextMenuLabelProps, ContextMenuRadioGroupProps, ContextMenuRadioItemProps, ContextMenuRootProps, ContextMenuSeparatorProps, ContextMenuSize, ContextMenuSubContentProps, ContextMenuSubProps, ContextMenuSubTriggerProps, ContextMenuTriggerProps, ContextMenuVariant, };
65
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../src/components/context-menu.tsx"],"names":[],"mappings":"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"}