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

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 (188) hide show
  1. package/README.md +102 -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 +143 -0
  17. package/dist/components/avatar.js.map +1 -0
  18. package/dist/components/badge.d.ts +17 -0
  19. package/dist/components/badge.d.ts.map +1 -0
  20. package/dist/components/badge.js +95 -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 +85 -0
  25. package/dist/components/button.js.map +1 -0
  26. package/dist/components/callout.d.ts +25 -0
  27. package/dist/components/callout.d.ts.map +1 -0
  28. package/dist/components/callout.js +146 -0
  29. package/dist/components/callout.js.map +1 -0
  30. package/dist/components/card.d.ts +10 -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 +13 -0
  35. package/dist/components/checkbox.d.ts.map +1 -0
  36. package/dist/components/checkbox.js +116 -0
  37. package/dist/components/checkbox.js.map +1 -0
  38. package/dist/components/code.d.ts +20 -0
  39. package/dist/components/code.d.ts.map +1 -0
  40. package/dist/components/code.js +83 -0
  41. package/dist/components/code.js.map +1 -0
  42. package/dist/components/context-menu.d.ts +65 -0
  43. package/dist/components/context-menu.d.ts.map +1 -0
  44. package/dist/components/context-menu.js +441 -0
  45. package/dist/components/context-menu.js.map +1 -0
  46. package/dist/components/dialog.d.ts +49 -0
  47. package/dist/components/dialog.d.ts.map +1 -0
  48. package/dist/components/dialog.js +141 -0
  49. package/dist/components/dialog.js.map +1 -0
  50. package/dist/components/dropdown-menu.d.ts +65 -0
  51. package/dist/components/dropdown-menu.d.ts.map +1 -0
  52. package/dist/components/dropdown-menu.js +441 -0
  53. package/dist/components/dropdown-menu.js.map +1 -0
  54. package/dist/components/heading.d.ts +15 -0
  55. package/dist/components/heading.d.ts.map +1 -0
  56. package/dist/components/heading.js +8 -0
  57. package/dist/components/heading.js.map +1 -0
  58. package/dist/components/hover-card.d.ts +24 -0
  59. package/dist/components/hover-card.d.ts.map +1 -0
  60. package/dist/components/hover-card.js +49 -0
  61. package/dist/components/hover-card.js.map +1 -0
  62. package/dist/components/icon-button.d.ts +14 -0
  63. package/dist/components/icon-button.d.ts.map +1 -0
  64. package/dist/components/icon-button.js +85 -0
  65. package/dist/components/icon-button.js.map +1 -0
  66. package/dist/components/icon.d.ts +28 -0
  67. package/dist/components/icon.d.ts.map +1 -0
  68. package/dist/components/icon.js +45 -0
  69. package/dist/components/icon.js.map +1 -0
  70. package/dist/components/index.d.ts +33 -0
  71. package/dist/components/index.d.ts.map +1 -0
  72. package/dist/components/index.js +45 -0
  73. package/dist/components/index.js.map +1 -0
  74. package/dist/components/label.d.ts +8 -0
  75. package/dist/components/label.d.ts.map +1 -0
  76. package/dist/components/label.js +26 -0
  77. package/dist/components/label.js.map +1 -0
  78. package/dist/components/native-only-animated-view.d.ts +223 -0
  79. package/dist/components/native-only-animated-view.d.ts.map +1 -0
  80. package/dist/components/native-only-animated-view.js +26 -0
  81. package/dist/components/native-only-animated-view.js.map +1 -0
  82. package/dist/components/popover.d.ts +24 -0
  83. package/dist/components/popover.d.ts.map +1 -0
  84. package/dist/components/popover.js +52 -0
  85. package/dist/components/popover.js.map +1 -0
  86. package/dist/components/progress.d.ts +15 -0
  87. package/dist/components/progress.d.ts.map +1 -0
  88. package/dist/components/progress.js +68 -0
  89. package/dist/components/progress.js.map +1 -0
  90. package/dist/components/radio-group.d.ts +19 -0
  91. package/dist/components/radio-group.d.ts.map +1 -0
  92. package/dist/components/radio-group.js +138 -0
  93. package/dist/components/radio-group.js.map +1 -0
  94. package/dist/components/segmented-control.d.ts +21 -0
  95. package/dist/components/segmented-control.d.ts.map +1 -0
  96. package/dist/components/segmented-control.js +113 -0
  97. package/dist/components/segmented-control.js.map +1 -0
  98. package/dist/components/select.d.ts +58 -0
  99. package/dist/components/select.d.ts.map +1 -0
  100. package/dist/components/select.js +493 -0
  101. package/dist/components/select.js.map +1 -0
  102. package/dist/components/separator.d.ts +12 -0
  103. package/dist/components/separator.d.ts.map +1 -0
  104. package/dist/components/separator.js +64 -0
  105. package/dist/components/separator.js.map +1 -0
  106. package/dist/components/skeleton.d.ts +28 -0
  107. package/dist/components/skeleton.d.ts.map +1 -0
  108. package/dist/components/skeleton.js +153 -0
  109. package/dist/components/skeleton.js.map +1 -0
  110. package/dist/components/spinner.d.ts +17 -0
  111. package/dist/components/spinner.d.ts.map +1 -0
  112. package/dist/components/spinner.js +199 -0
  113. package/dist/components/spinner.js.map +1 -0
  114. package/dist/components/switch.d.ts +13 -0
  115. package/dist/components/switch.d.ts.map +1 -0
  116. package/dist/components/switch.js +204 -0
  117. package/dist/components/switch.js.map +1 -0
  118. package/dist/components/tabs.d.ts +25 -0
  119. package/dist/components/tabs.d.ts.map +1 -0
  120. package/dist/components/tabs.js +124 -0
  121. package/dist/components/tabs.js.map +1 -0
  122. package/dist/components/text-area.d.ts +16 -0
  123. package/dist/components/text-area.d.ts.map +1 -0
  124. package/dist/components/text-area.js +117 -0
  125. package/dist/components/text-area.js.map +1 -0
  126. package/dist/components/text-field.d.ts +35 -0
  127. package/dist/components/text-field.d.ts.map +1 -0
  128. package/dist/components/text-field.js +256 -0
  129. package/dist/components/text-field.js.map +1 -0
  130. package/dist/components/text.d.ts +23 -0
  131. package/dist/components/text.d.ts.map +1 -0
  132. package/dist/components/text.js +33 -0
  133. package/dist/components/text.js.map +1 -0
  134. package/dist/components/tooltip.d.ts +24 -0
  135. package/dist/components/tooltip.d.ts.map +1 -0
  136. package/dist/components/tooltip.js +63 -0
  137. package/dist/components/tooltip.js.map +1 -0
  138. package/dist/index.d.ts +4 -0
  139. package/dist/index.d.ts.map +1 -0
  140. package/dist/index.js +8 -0
  141. package/dist/index.js.map +1 -0
  142. package/dist/lib/button-styles.d.ts +13 -0
  143. package/dist/lib/button-styles.d.ts.map +1 -0
  144. package/dist/lib/button-styles.js +131 -0
  145. package/dist/lib/button-styles.js.map +1 -0
  146. package/dist/lib/color-utils.d.ts +21 -0
  147. package/dist/lib/color-utils.d.ts.map +1 -0
  148. package/dist/lib/color-utils.js +84 -0
  149. package/dist/lib/color-utils.js.map +1 -0
  150. package/dist/lib/dialog-styles.d.ts +42 -0
  151. package/dist/lib/dialog-styles.d.ts.map +1 -0
  152. package/dist/lib/dialog-styles.js +162 -0
  153. package/dist/lib/dialog-styles.js.map +1 -0
  154. package/dist/lib/native-colors.d.ts +8 -0
  155. package/dist/lib/native-colors.d.ts.map +1 -0
  156. package/dist/lib/native-colors.js +67 -0
  157. package/dist/lib/native-colors.js.map +1 -0
  158. package/dist/lib/panel-styles.d.ts +32 -0
  159. package/dist/lib/panel-styles.d.ts.map +1 -0
  160. package/dist/lib/panel-styles.js +96 -0
  161. package/dist/lib/panel-styles.js.map +1 -0
  162. package/dist/lib/text-input-styles.d.ts +35 -0
  163. package/dist/lib/text-input-styles.d.ts.map +1 -0
  164. package/dist/lib/text-input-styles.js +107 -0
  165. package/dist/lib/text-input-styles.js.map +1 -0
  166. package/dist/lib/theme-vars.d.ts +222 -0
  167. package/dist/lib/theme-vars.d.ts.map +1 -0
  168. package/dist/lib/theme-vars.js +173 -0
  169. package/dist/lib/theme-vars.js.map +1 -0
  170. package/dist/lib/theme.d.ts +57 -0
  171. package/dist/lib/theme.d.ts.map +1 -0
  172. package/dist/lib/theme.js +80 -0
  173. package/dist/lib/theme.js.map +1 -0
  174. package/dist/lib/types.d.ts +14 -0
  175. package/dist/lib/types.d.ts.map +1 -0
  176. package/dist/lib/types.js +2 -0
  177. package/dist/lib/types.js.map +1 -0
  178. package/dist/lib/use-theme-vars.d.ts +325 -0
  179. package/dist/lib/use-theme-vars.d.ts.map +1 -0
  180. package/dist/lib/use-theme-vars.js +17 -0
  181. package/dist/lib/use-theme-vars.js.map +1 -0
  182. package/dist/lib/utils.d.ts +3 -0
  183. package/dist/lib/utils.d.ts.map +1 -0
  184. package/dist/lib/utils.js +17 -0
  185. package/dist/lib/utils.js.map +1 -0
  186. package/global.css +1813 -0
  187. package/package.json +114 -0
  188. package/tailwind-preset.js +310 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/components/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,KAAK,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,aAAa,0BAA2B,CAAC;AAE/C,KAAK,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAqCnD,KAAK,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG;IACnE,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAChB,IAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAM,EACN,GAAG,KAAK,EACT,EAAE,aAAa,qBAwGf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { useThemeVars } from '../lib/use-theme-vars';
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
+ const checkboxSizes = ['1', '2', '3'];
7
+ function resolveAccentFromColor(color) {
8
+ if (!color)
9
+ return 'blue';
10
+ switch (color) {
11
+ case 'danger':
12
+ return 'red';
13
+ case 'warning':
14
+ return 'amber';
15
+ case 'success':
16
+ return 'green';
17
+ case 'info':
18
+ return 'blue';
19
+ default:
20
+ return color;
21
+ }
22
+ }
23
+ // Size styles from CSS:
24
+ // Size 1: --checkbox-size: var(--space-4) = 16px, border-radius: var(--radius-2) = 4px
25
+ // Size 2: --checkbox-size: calc(var(--space-4) * 1.25) = 20px, border-radius: var(--radius-3) = 6px
26
+ // Size 3: --checkbox-size: var(--space-5) = 24px, border-radius: var(--radius-3) = 6px
27
+ function getSizeStyle(size) {
28
+ switch (size) {
29
+ case '1':
30
+ return { boxSize: 16, borderRadius: 4, iconSize: 12 };
31
+ case '2':
32
+ return { boxSize: 20, borderRadius: 6, iconSize: 14 };
33
+ case '3':
34
+ return { boxSize: 24, borderRadius: 6, iconSize: 18 };
35
+ }
36
+ }
37
+ function Checkbox({ size = '2', color, checked, disabled, onFocus, onBlur, ...props }) {
38
+ const { colors } = useThemeVars();
39
+ const [focused, setFocused] = React.useState(false);
40
+ const accentColor = resolveAccentFromColor(color);
41
+ const palette = colors.palettes[accentColor];
42
+ const gray = colors.palettes.gray;
43
+ const { boxSize, borderRadius, iconSize } = getSizeStyle(size);
44
+ // Base style
45
+ const baseStyle = {
46
+ width: boxSize,
47
+ height: boxSize,
48
+ borderRadius,
49
+ alignItems: 'center',
50
+ justifyContent: 'center',
51
+ overflow: 'hidden',
52
+ };
53
+ // State-based styles
54
+ let stateStyle;
55
+ if (disabled) {
56
+ stateStyle = {
57
+ backgroundColor: gray.a2,
58
+ borderWidth: 1,
59
+ borderColor: gray.a5,
60
+ };
61
+ }
62
+ else if (checked) {
63
+ stateStyle = {
64
+ backgroundColor: palette['9'],
65
+ };
66
+ }
67
+ else {
68
+ stateStyle = {
69
+ backgroundColor: colors.surface,
70
+ borderWidth: 1,
71
+ borderColor: gray.a7,
72
+ };
73
+ }
74
+ // Focus style - accent-a8 outline
75
+ const focusStyle = focused && !disabled
76
+ ? {
77
+ outlineWidth: 2,
78
+ outlineStyle: 'solid',
79
+ outlineColor: palette.a8,
80
+ outlineOffset: 2,
81
+ }
82
+ : undefined;
83
+ const combinedStyle = {
84
+ ...baseStyle,
85
+ ...stateStyle,
86
+ ...focusStyle,
87
+ };
88
+ // Icon color
89
+ const iconColor = disabled ? gray.a8 : palette['9-contrast'];
90
+ const handleFocus = React.useCallback((e) => {
91
+ if (Platform.OS === 'web') {
92
+ const target = e.target;
93
+ if (target?.matches?.(':focus-visible')) {
94
+ setFocused(true);
95
+ }
96
+ }
97
+ onFocus?.(e);
98
+ }, [onFocus]);
99
+ const handleBlur = React.useCallback((e) => {
100
+ setFocused(false);
101
+ onBlur?.(e);
102
+ }, [onBlur]);
103
+ // Reset default focus styles on the root
104
+ const rootStyle = {
105
+ outlineWidth: 0,
106
+ };
107
+ return (<CheckboxPrimitive.Root checked={checked} disabled={disabled} onFocus={handleFocus} onBlur={handleBlur} style={rootStyle} {...props}>
108
+ <View style={combinedStyle}>
109
+ <CheckboxPrimitive.Indicator>
110
+ <Check size={iconSize} strokeWidth={Platform.OS === 'web' ? 2.5 : 3.5} color={iconColor}/>
111
+ </CheckboxPrimitive.Indicator>
112
+ </View>
113
+ </CheckboxPrimitive.Root>);
114
+ }
115
+ export { Checkbox };
116
+ //# 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,20 @@
1
+ import { themeVars } from '../lib/theme-vars';
2
+ import type { AccentColor } from '../lib/types';
3
+ import * as React from 'react';
4
+ import { Text as RNText, type TextStyle } from 'react-native';
5
+ declare const codeSizes: readonly ["1", "2", "3", "4", "5", "6", "7", "8", "9"];
6
+ declare const codeVariants: readonly ["solid", "soft", "outline", "ghost"];
7
+ type CodeSize = (typeof codeSizes)[number];
8
+ type CodeVariant = (typeof codeVariants)[number];
9
+ type CodeWeight = keyof typeof themeVars.fontWeights;
10
+ type CodeProps = Omit<React.ComponentProps<typeof RNText>, 'style'> & {
11
+ size?: CodeSize;
12
+ variant?: CodeVariant;
13
+ weight?: CodeWeight;
14
+ color?: AccentColor;
15
+ style?: TextStyle;
16
+ };
17
+ declare function Code({ size, variant, weight, color, style, ...props }: CodeProps): React.JSX.Element;
18
+ export { Code };
19
+ export type { CodeProps, CodeSize, CodeVariant };
20
+ //# 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,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAY,IAAI,IAAI,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAExE,QAAA,MAAM,SAAS,wDAAyD,CAAC;AACzE,QAAA,MAAM,YAAY,gDAAiD,CAAC;AAEpE,KAAK,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3C,KAAK,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AACjD,KAAK,UAAU,GAAG,MAAM,OAAO,SAAS,CAAC,WAAW,CAAC;AAErD,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,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iBAAS,IAAI,CAAC,EACZ,IAAU,EACV,OAAgB,EAChB,MAAM,EACN,KAAc,EACd,KAAK,EACL,GAAG,KAAK,EACT,EAAE,SAAS,qBAqFX;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { useThemeVars } from '../lib/use-theme-vars';
2
+ import * as React from 'react';
3
+ import { Platform, Text as RNText } from 'react-native';
4
+ const codeSizes = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
5
+ const codeVariants = ['solid', 'soft', 'outline', 'ghost'];
6
+ function Code({ size = '2', variant = 'soft', weight, color = 'gray', style, ...props }) {
7
+ const { colors, typography, fontWeights } = useThemeVars();
8
+ const palette = colors.palettes[color] ?? colors.palettes.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
+ web: 'var(--code-font-family), 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":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAkB,MAAM,cAAc,CAAC;AAExE,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AACzE,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC;AAcpE,SAAS,IAAI,CAAC,EACZ,IAAI,GAAG,GAAG,EACV,OAAO,GAAG,MAAM,EAChB,MAAM,EACN,KAAK,GAAG,MAAM,EACd,KAAK,EACL,GAAG,KAAK,EACE;IACV,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAE/D,iEAAiE;IACjE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;IAExD,wBAAwB;IACxB,MAAM,SAAS,GAAc;QAC3B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC1B,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,oCAAoC;SAC1C,CAAC;QACF,QAAQ,EAAE,gBAAgB;QAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC;IAEF,cAAc;IACd,MAAM,WAAW,GAA0B,MAAM;QAC/C,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE;QACrC,CAAC,CAAC,SAAS,CAAC;IAEd,iBAAiB;IACjB,IAAI,YAAY,GAAc,EAAE,CAAC;IAEjC,kEAAkE;IAClE,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAClD,8DAA8D;IAC9D,oEAAoE;IACpE,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,gBAAgB,CAAC;IAElD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,YAAY,GAAG;gBACb,KAAK,EAAE,OAAO,CAAC,GAAG;aACnB,CAAC;YACF,MAAM;QAER,KAAK,OAAO;YACV,YAAY,GAAG;gBACb,iBAAiB,EAAE,iBAAiB;gBACpC,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,OAAO,CAAC,EAAE;gBAC3B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC;gBAC5B,YAAY;gBACZ,QAAQ,EAAE,QAAQ;aACnB,CAAC;YACF,MAAM;QAER,KAAK,MAAM;YACT,YAAY,GAAG;gBACb,iBAAiB,EAAE,iBAAiB;gBACpC,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,OAAO,CAAC,EAAE;gBAC3B,KAAK,EAAE,OAAO,CAAC,GAAG;gBAClB,YAAY;gBACZ,QAAQ,EAAE,QAAQ;aACnB,CAAC;YACF,MAAM;QAER,KAAK,SAAS;YACZ,YAAY,GAAG;gBACb,iBAAiB,EAAE,iBAAiB;gBACpC,eAAe,EAAE,CAAC;gBAClB,KAAK,EAAE,OAAO,CAAC,GAAG;gBAClB,YAAY;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,8CAA8C;gBAC9C,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK;oBACvB,CAAC,CAAC;wBACE,SAAS,EAAE,mBAAmB,OAAO,CAAC,EAAE,EAAE;qBAC3C;oBACH,CAAC,CAAC;wBACE,WAAW,EAAE,CAAC;wBACd,WAAW,EAAE,OAAO,CAAC,EAAE;qBACxB,CAAC;aACP,CAAC;YACF,MAAM;IACV,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACrF,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -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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"}