@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.
- package/README.md +160 -0
- package/dist/components/accordion.d.ts +21 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +94 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +67 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +170 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/aspect-ratio.d.ts +4 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +4 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/avatar.d.ts +23 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +128 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +15 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +81 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/button.d.ts +14 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +81 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/callout.d.ts +23 -0
- package/dist/components/callout.d.ts.map +1 -0
- package/dist/components/callout.js +128 -0
- package/dist/components/callout.js.map +1 -0
- package/dist/components/card.d.ts +9 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +41 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/checkbox.d.ts +12 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +100 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/circular-progress.d.ts +21 -0
- package/dist/components/circular-progress.d.ts.map +1 -0
- package/dist/components/circular-progress.js +78 -0
- package/dist/components/circular-progress.js.map +1 -0
- package/dist/components/code.d.ts +18 -0
- package/dist/components/code.d.ts.map +1 -0
- package/dist/components/code.js +83 -0
- package/dist/components/code.js.map +1 -0
- package/dist/components/context-menu.d.ts +65 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +441 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.d.ts +49 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +141 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +65 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +441 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/heading.d.ts +15 -0
- package/dist/components/heading.d.ts.map +1 -0
- package/dist/components/heading.js +8 -0
- package/dist/components/heading.js.map +1 -0
- package/dist/components/hover-card.d.ts +24 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +49 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/icon-button.d.ts +14 -0
- package/dist/components/icon-button.d.ts.map +1 -0
- package/dist/components/icon-button.js +81 -0
- package/dist/components/icon-button.js.map +1 -0
- package/dist/components/icon.d.ts +27 -0
- package/dist/components/icon.d.ts.map +1 -0
- package/dist/components/icon.js +30 -0
- package/dist/components/icon.js.map +1 -0
- package/dist/components/index.d.ts +37 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +49 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/label.d.ts +8 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +26 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/link.d.ts +19 -0
- package/dist/components/link.d.ts.map +1 -0
- package/dist/components/link.js +68 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/list.d.ts +37 -0
- package/dist/components/list.d.ts.map +1 -0
- package/dist/components/list.js +112 -0
- package/dist/components/list.js.map +1 -0
- package/dist/components/native-only-animated-view.d.ts +219 -0
- package/dist/components/native-only-animated-view.d.ts.map +1 -0
- package/dist/components/native-only-animated-view.js +26 -0
- package/dist/components/native-only-animated-view.js.map +1 -0
- package/dist/components/popover.d.ts +24 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +52 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +14 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +52 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.d.ts +18 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +122 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/segmented-control.d.ts +21 -0
- package/dist/components/segmented-control.d.ts.map +1 -0
- package/dist/components/segmented-control.js +113 -0
- package/dist/components/segmented-control.js.map +1 -0
- package/dist/components/select.d.ts +58 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +491 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +12 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +47 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/skeleton.d.ts +28 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +137 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +30 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +248 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/spinner.d.ts +17 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +199 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/switch.d.ts +12 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +188 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/tabs.d.ts +26 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +125 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text-area.d.ts +16 -0
- package/dist/components/text-area.d.ts.map +1 -0
- package/dist/components/text-area.js +121 -0
- package/dist/components/text-area.js.map +1 -0
- package/dist/components/text-field.d.ts +35 -0
- package/dist/components/text-field.d.ts.map +1 -0
- package/dist/components/text-field.js +300 -0
- package/dist/components/text-field.js.map +1 -0
- package/dist/components/text.d.ts +23 -0
- package/dist/components/text.d.ts.map +1 -0
- package/dist/components/text.js +44 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/tooltip.d.ts +24 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +63 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/button-styles.d.ts +13 -0
- package/dist/lib/button-styles.d.ts.map +1 -0
- package/dist/lib/button-styles.js +115 -0
- package/dist/lib/button-styles.js.map +1 -0
- package/dist/lib/color-utils.d.ts +26 -0
- package/dist/lib/color-utils.d.ts.map +1 -0
- package/dist/lib/color-utils.js +48 -0
- package/dist/lib/color-utils.js.map +1 -0
- package/dist/lib/dialog-styles.d.ts +42 -0
- package/dist/lib/dialog-styles.d.ts.map +1 -0
- package/dist/lib/dialog-styles.js +162 -0
- package/dist/lib/dialog-styles.js.map +1 -0
- package/dist/lib/full-window-overlay.d.ts +11 -0
- package/dist/lib/full-window-overlay.d.ts.map +1 -0
- package/dist/lib/full-window-overlay.js +16 -0
- package/dist/lib/full-window-overlay.js.map +1 -0
- package/dist/lib/panel-styles.d.ts +32 -0
- package/dist/lib/panel-styles.d.ts.map +1 -0
- package/dist/lib/panel-styles.js +96 -0
- package/dist/lib/panel-styles.js.map +1 -0
- package/dist/lib/text-input-styles.d.ts +36 -0
- package/dist/lib/text-input-styles.d.ts.map +1 -0
- package/dist/lib/text-input-styles.js +88 -0
- package/dist/lib/text-input-styles.js.map +1 -0
- package/dist/lib/theme-context.d.ts +80 -0
- package/dist/lib/theme-context.d.ts.map +1 -0
- package/dist/lib/theme-context.js +97 -0
- package/dist/lib/theme-context.js.map +1 -0
- package/dist/lib/theme-tokens.d.ts +222 -0
- package/dist/lib/theme-tokens.d.ts.map +1 -0
- package/dist/lib/theme-tokens.js +158 -0
- package/dist/lib/theme-tokens.js.map +1 -0
- package/dist/lib/theme.d.ts +40 -0
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/lib/theme.js +194 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/lib/types.d.ts +18 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/use-theme-tokens.d.ts +593 -0
- package/dist/lib/use-theme-tokens.d.ts.map +1 -0
- package/dist/lib/use-theme-tokens.js +44 -0
- package/dist/lib/use-theme-tokens.js.map +1 -0
- package/docs/llm/COLOR_SYSTEM.md +799 -0
- package/docs/llm/COMPONENTS.md +1329 -0
- package/docs/llm/DESIGN_PATTERNS.md +2567 -0
- package/docs/llm/README.md +118 -0
- package/docs/llm/TYPOGRAPHY.md +516 -0
- 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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"}
|