@dangerousthings/react-native 0.1.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.
- package/dist/components/DTAccordion.d.ts +75 -0
- package/dist/components/DTAccordion.d.ts.map +1 -0
- package/dist/components/DTAccordion.js +147 -0
- package/dist/components/DTAccordion.js.map +1 -0
- package/dist/components/DTButton.d.ts +68 -0
- package/dist/components/DTButton.d.ts.map +1 -0
- package/dist/components/DTButton.js +59 -0
- package/dist/components/DTButton.js.map +1 -0
- package/dist/components/DTCard.d.ts +97 -0
- package/dist/components/DTCard.d.ts.map +1 -0
- package/dist/components/DTCard.js +81 -0
- package/dist/components/DTCard.js.map +1 -0
- package/dist/components/DTCheckbox.d.ts +63 -0
- package/dist/components/DTCheckbox.d.ts.map +1 -0
- package/dist/components/DTCheckbox.js +55 -0
- package/dist/components/DTCheckbox.js.map +1 -0
- package/dist/components/DTChip.d.ts +40 -0
- package/dist/components/DTChip.d.ts.map +1 -0
- package/dist/components/DTChip.js +55 -0
- package/dist/components/DTChip.js.map +1 -0
- package/dist/components/DTDrawer.d.ts +82 -0
- package/dist/components/DTDrawer.d.ts.map +1 -0
- package/dist/components/DTDrawer.js +146 -0
- package/dist/components/DTDrawer.js.map +1 -0
- package/dist/components/DTGallery.d.ts +83 -0
- package/dist/components/DTGallery.d.ts.map +1 -0
- package/dist/components/DTGallery.js +160 -0
- package/dist/components/DTGallery.js.map +1 -0
- package/dist/components/DTHexagon.d.ts +81 -0
- package/dist/components/DTHexagon.d.ts.map +1 -0
- package/dist/components/DTHexagon.js +110 -0
- package/dist/components/DTHexagon.js.map +1 -0
- package/dist/components/DTLabel.d.ts +100 -0
- package/dist/components/DTLabel.d.ts.map +1 -0
- package/dist/components/DTLabel.js +189 -0
- package/dist/components/DTLabel.js.map +1 -0
- package/dist/components/DTMediaFrame.d.ts +77 -0
- package/dist/components/DTMediaFrame.d.ts.map +1 -0
- package/dist/components/DTMediaFrame.js +84 -0
- package/dist/components/DTMediaFrame.js.map +1 -0
- package/dist/components/DTMenu.d.ts +119 -0
- package/dist/components/DTMenu.d.ts.map +1 -0
- package/dist/components/DTMenu.js +188 -0
- package/dist/components/DTMenu.js.map +1 -0
- package/dist/components/DTModal.d.ts +64 -0
- package/dist/components/DTModal.d.ts.map +1 -0
- package/dist/components/DTModal.js +45 -0
- package/dist/components/DTModal.js.map +1 -0
- package/dist/components/DTProgressBar.d.ts +66 -0
- package/dist/components/DTProgressBar.d.ts.map +1 -0
- package/dist/components/DTProgressBar.js +82 -0
- package/dist/components/DTProgressBar.js.map +1 -0
- package/dist/components/DTQuantityStepper.d.ts +76 -0
- package/dist/components/DTQuantityStepper.d.ts.map +1 -0
- package/dist/components/DTQuantityStepper.js +108 -0
- package/dist/components/DTQuantityStepper.js.map +1 -0
- package/dist/components/DTRadioGroup.d.ts +79 -0
- package/dist/components/DTRadioGroup.d.ts.map +1 -0
- package/dist/components/DTRadioGroup.js +107 -0
- package/dist/components/DTRadioGroup.js.map +1 -0
- package/dist/components/DTSearchInput.d.ts +72 -0
- package/dist/components/DTSearchInput.d.ts.map +1 -0
- package/dist/components/DTSearchInput.js +71 -0
- package/dist/components/DTSearchInput.js.map +1 -0
- package/dist/components/DTSwitch.d.ts +52 -0
- package/dist/components/DTSwitch.d.ts.map +1 -0
- package/dist/components/DTSwitch.js +85 -0
- package/dist/components/DTSwitch.js.map +1 -0
- package/dist/components/DTTextInput.d.ts +58 -0
- package/dist/components/DTTextInput.d.ts.map +1 -0
- package/dist/components/DTTextInput.js +85 -0
- package/dist/components/DTTextInput.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/theme/DTThemeProvider.d.ts +49 -0
- package/dist/theme/DTThemeProvider.d.ts.map +1 -0
- package/dist/theme/DTThemeProvider.js +52 -0
- package/dist/theme/DTThemeProvider.js.map +1 -0
- package/dist/theme/colors.d.ts +42 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +59 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/theme/paperTheme.d.ts +39 -0
- package/dist/theme/paperTheme.d.ts.map +1 -0
- package/dist/theme/paperTheme.js +116 -0
- package/dist/theme/paperTheme.js.map +1 -0
- package/dist/theme/typography.d.ts +57 -0
- package/dist/theme/typography.d.ts.map +1 -0
- package/dist/theme/typography.js +170 -0
- package/dist/theme/typography.js.map +1 -0
- package/dist/utils/bevelPaths.d.ts +42 -0
- package/dist/utils/bevelPaths.d.ts.map +1 -0
- package/dist/utils/bevelPaths.js +105 -0
- package/dist/utils/bevelPaths.js.map +1 -0
- package/dist/utils/useComponentLayout.d.ts +18 -0
- package/dist/utils/useComponentLayout.d.ts.map +1 -0
- package/dist/utils/useComponentLayout.js +24 -0
- package/dist/utils/useComponentLayout.js.map +1 -0
- package/dist/utils/variantColors.d.ts +12 -0
- package/dist/utils/variantColors.d.ts.map +1 -0
- package/dist/utils/variantColors.js +20 -0
- package/dist/utils/variantColors.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTGallery.js","sourceRoot":"","sources":["../../src/components/DTGallery.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DT Hexagon Component
|
|
3
|
+
*
|
|
4
|
+
* Decorative hexagon shape following the Dangerous Things design language.
|
|
5
|
+
* No RNP equivalent — purely SVG-based.
|
|
6
|
+
*
|
|
7
|
+
* Web CSS reference (AnimatedHexagon / HexagonHamburgerMenu):
|
|
8
|
+
* - Flat-top hexagon shape
|
|
9
|
+
* - Optional rotation and pulse animations
|
|
10
|
+
* - Used for loading indicators, backgrounds, menu icons
|
|
11
|
+
*/
|
|
12
|
+
import { ViewStyle, StyleProp } from 'react-native';
|
|
13
|
+
import { type DTVariant } from '../utils/variantColors';
|
|
14
|
+
interface DTHexagonProps {
|
|
15
|
+
/**
|
|
16
|
+
* Hexagon diameter in pixels
|
|
17
|
+
*/
|
|
18
|
+
size: number;
|
|
19
|
+
/**
|
|
20
|
+
* Visual variant
|
|
21
|
+
* @default 'normal'
|
|
22
|
+
*/
|
|
23
|
+
variant?: DTVariant;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the hexagon has a solid fill
|
|
26
|
+
* @default true
|
|
27
|
+
*/
|
|
28
|
+
filled?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether to animate
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
animated?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Animation type
|
|
36
|
+
* @default 'none'
|
|
37
|
+
*/
|
|
38
|
+
animationType?: 'rotate' | 'pulse' | 'none';
|
|
39
|
+
/**
|
|
40
|
+
* Animation duration in milliseconds
|
|
41
|
+
* @default 2000
|
|
42
|
+
*/
|
|
43
|
+
animationDuration?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Stroke/border width when not filled
|
|
46
|
+
* @default 2
|
|
47
|
+
*/
|
|
48
|
+
borderWidth?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Custom color (overrides variant)
|
|
51
|
+
*/
|
|
52
|
+
color?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Opacity
|
|
55
|
+
* @default 1
|
|
56
|
+
*/
|
|
57
|
+
opacity?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Additional styles
|
|
60
|
+
*/
|
|
61
|
+
style?: StyleProp<ViewStyle>;
|
|
62
|
+
/**
|
|
63
|
+
* Content rendered centered inside the hexagon
|
|
64
|
+
*/
|
|
65
|
+
children?: React.ReactNode;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* DT-styled decorative Hexagon
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* <DTHexagon size={60} variant="normal" />
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* <DTHexagon size={40} variant="emphasis" animated animationType="rotate" />
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* <DTHexagon size={80} variant="success" filled={false} animated animationType="pulse" />
|
|
78
|
+
*/
|
|
79
|
+
export declare function DTHexagon({ size, variant, filled, animated, animationType, animationDuration, borderWidth, color, opacity: opacityProp, style, children, }: DTHexagonProps): import("react/jsx-runtime").JSX.Element;
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=DTHexagon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTHexagon.d.ts","sourceRoot":"","sources":["../../src/components/DTHexagon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAmB,SAAS,EAAE,SAAS,EAAW,MAAM,cAAc,CAAC;AAE9E,OAAO,EAAC,KAAK,SAAS,EAAkB,MAAM,wBAAwB,CAAC;AAEvE,UAAU,cAAc;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC5C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAoBD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAkB,EAClB,MAAa,EACb,QAAgB,EAChB,aAAsB,EACtB,iBAAwB,EACxB,WAAe,EACf,KAAK,EACL,OAAO,EAAE,WAAe,EACxB,KAAK,EACL,QAAQ,GACT,EAAE,cAAc,2CAwFhB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* DT Hexagon Component
|
|
4
|
+
*
|
|
5
|
+
* Decorative hexagon shape following the Dangerous Things design language.
|
|
6
|
+
* No RNP equivalent — purely SVG-based.
|
|
7
|
+
*
|
|
8
|
+
* Web CSS reference (AnimatedHexagon / HexagonHamburgerMenu):
|
|
9
|
+
* - Flat-top hexagon shape
|
|
10
|
+
* - Optional rotation and pulse animations
|
|
11
|
+
* - Used for loading indicators, backgrounds, menu icons
|
|
12
|
+
*/
|
|
13
|
+
import { useRef, useEffect } from 'react';
|
|
14
|
+
import { StyleSheet, View, Animated } from 'react-native';
|
|
15
|
+
import Svg, { Polygon } from 'react-native-svg';
|
|
16
|
+
import { getVariantColor } from '../utils/variantColors';
|
|
17
|
+
/**
|
|
18
|
+
* Build flat-top hexagon SVG polygon points
|
|
19
|
+
*/
|
|
20
|
+
function buildHexagonPoints(size) {
|
|
21
|
+
const cx = size / 2;
|
|
22
|
+
const cy = size / 2;
|
|
23
|
+
const r = size / 2;
|
|
24
|
+
return [0, 1, 2, 3, 4, 5]
|
|
25
|
+
.map(i => {
|
|
26
|
+
const angle = (Math.PI / 3) * i - Math.PI / 6; // flat-top orientation
|
|
27
|
+
const x = cx + r * Math.cos(angle);
|
|
28
|
+
const y = cy + r * Math.sin(angle);
|
|
29
|
+
return `${x},${y}`;
|
|
30
|
+
})
|
|
31
|
+
.join(' ');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* DT-styled decorative Hexagon
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* <DTHexagon size={60} variant="normal" />
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* <DTHexagon size={40} variant="emphasis" animated animationType="rotate" />
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* <DTHexagon size={80} variant="success" filled={false} animated animationType="pulse" />
|
|
44
|
+
*/
|
|
45
|
+
export function DTHexagon({ size, variant = 'normal', filled = true, animated = false, animationType = 'none', animationDuration = 2000, borderWidth = 2, color, opacity: opacityProp = 1, style, children, }) {
|
|
46
|
+
const accentColor = getVariantColor(variant, color);
|
|
47
|
+
const rotateAnim = useRef(new Animated.Value(0)).current;
|
|
48
|
+
const pulseAnim = useRef(new Animated.Value(1)).current;
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (!animated) {
|
|
51
|
+
rotateAnim.setValue(0);
|
|
52
|
+
pulseAnim.setValue(1);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (animationType === 'rotate') {
|
|
56
|
+
const animation = Animated.loop(Animated.timing(rotateAnim, {
|
|
57
|
+
toValue: 1,
|
|
58
|
+
duration: animationDuration,
|
|
59
|
+
useNativeDriver: true,
|
|
60
|
+
}));
|
|
61
|
+
animation.start();
|
|
62
|
+
return () => {
|
|
63
|
+
animation.stop();
|
|
64
|
+
rotateAnim.setValue(0);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (animationType === 'pulse') {
|
|
68
|
+
const animation = Animated.loop(Animated.sequence([
|
|
69
|
+
Animated.timing(pulseAnim, {
|
|
70
|
+
toValue: 0.3,
|
|
71
|
+
duration: animationDuration / 2,
|
|
72
|
+
useNativeDriver: true,
|
|
73
|
+
}),
|
|
74
|
+
Animated.timing(pulseAnim, {
|
|
75
|
+
toValue: 1,
|
|
76
|
+
duration: animationDuration / 2,
|
|
77
|
+
useNativeDriver: true,
|
|
78
|
+
}),
|
|
79
|
+
]));
|
|
80
|
+
animation.start();
|
|
81
|
+
return () => {
|
|
82
|
+
animation.stop();
|
|
83
|
+
pulseAnim.setValue(1);
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}, [animated, animationType, animationDuration, rotateAnim, pulseAnim]);
|
|
87
|
+
const rotation = rotateAnim.interpolate({
|
|
88
|
+
inputRange: [0, 1],
|
|
89
|
+
outputRange: ['0deg', '360deg'],
|
|
90
|
+
});
|
|
91
|
+
const animatedOpacity = animated && animationType === 'pulse' ? pulseAnim : opacityProp;
|
|
92
|
+
const transform = animated && animationType === 'rotate'
|
|
93
|
+
? [{ rotate: rotation }]
|
|
94
|
+
: [];
|
|
95
|
+
const points = buildHexagonPoints(size);
|
|
96
|
+
return (_jsxs(Animated.View, { style: [
|
|
97
|
+
styles.container,
|
|
98
|
+
{ width: size, height: size, opacity: animatedOpacity },
|
|
99
|
+
transform.length > 0 ? { transform } : undefined,
|
|
100
|
+
style,
|
|
101
|
+
], children: [_jsx(Svg, { width: size, height: size, viewBox: `0 0 ${size} ${size}`, children: _jsx(Polygon, { points: points, fill: filled ? accentColor : 'transparent', stroke: accentColor, strokeWidth: filled ? 0 : borderWidth }) }), children && (_jsx(View, { style: [StyleSheet.absoluteFill, styles.childrenContainer], children: children }))] }));
|
|
102
|
+
}
|
|
103
|
+
const styles = StyleSheet.create({
|
|
104
|
+
container: {},
|
|
105
|
+
childrenContainer: {
|
|
106
|
+
justifyContent: 'center',
|
|
107
|
+
alignItems: 'center',
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=DTHexagon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTHexagon.js","sourceRoot":"","sources":["../../src/components/DTHexagon.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DT Label Component
|
|
3
|
+
*
|
|
4
|
+
* A themed label following the Dangerous Things design language
|
|
5
|
+
* with an SVG-based beveled top-right corner.
|
|
6
|
+
*
|
|
7
|
+
* Web CSS reference (CyberLabel):
|
|
8
|
+
* - Top-right bevel: 1em (~16px)
|
|
9
|
+
* - Solid filled background using mode color
|
|
10
|
+
* - Black text on colored background
|
|
11
|
+
*/
|
|
12
|
+
import { ReactNode } from 'react';
|
|
13
|
+
import { ViewStyle, StyleProp } from 'react-native';
|
|
14
|
+
import { type DTVariant } from '../utils/variantColors';
|
|
15
|
+
type DTLabelSize = 'small' | 'medium' | 'large';
|
|
16
|
+
interface DTLabelProps {
|
|
17
|
+
/**
|
|
18
|
+
* Primary text content
|
|
19
|
+
*/
|
|
20
|
+
primaryText: ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Secondary text (displayed bold, after primary)
|
|
23
|
+
*/
|
|
24
|
+
secondaryText?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Color mode for the label
|
|
27
|
+
* @default 'normal'
|
|
28
|
+
*/
|
|
29
|
+
mode?: DTVariant;
|
|
30
|
+
/**
|
|
31
|
+
* Size of the label - affects text size and scales all dimensions
|
|
32
|
+
* @default 'medium'
|
|
33
|
+
*/
|
|
34
|
+
size?: DTLabelSize;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the label should fill its container width
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
fullWidth?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Whether to animate the label on mount
|
|
42
|
+
* @default true
|
|
43
|
+
*/
|
|
44
|
+
animated?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Animation delay in milliseconds
|
|
47
|
+
* @default 100
|
|
48
|
+
*/
|
|
49
|
+
animationDelay?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Animation duration in milliseconds
|
|
52
|
+
* @default 330
|
|
53
|
+
*/
|
|
54
|
+
animationDuration?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Whether to show the pinging indicator
|
|
57
|
+
* @default true
|
|
58
|
+
*/
|
|
59
|
+
showIndicator?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Top-right bevel size in pixels (overrides size-based default)
|
|
62
|
+
*/
|
|
63
|
+
bevelSize?: number;
|
|
64
|
+
/**
|
|
65
|
+
* Additional styles for the label container
|
|
66
|
+
*/
|
|
67
|
+
style?: StyleProp<ViewStyle>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* DT-styled Label component with SVG beveled top-right corner
|
|
71
|
+
*
|
|
72
|
+
* Based on CyberLabel from the Dangerous Things web storefront.
|
|
73
|
+
* Features a solid colored background with black text and an optional
|
|
74
|
+
* animated ping indicator.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* <DTLabel primaryText="Detected" secondaryText="NTAG215" mode="normal" />
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* <DTLabel primaryText="Status" secondaryText="Ready to scan" mode="success" fullWidth />
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* <DTLabel primaryText="Warning" mode="warning" showIndicator={false} />
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* <DTLabel primaryText="Small label" size="small" />
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* <DTLabel primaryText="Large label" size="large" mode="emphasis" />
|
|
90
|
+
*/
|
|
91
|
+
export declare function DTLabel({ primaryText, secondaryText, mode, size, fullWidth, animated, animationDelay, animationDuration, showIndicator, bevelSize, style, }: DTLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
/**
|
|
93
|
+
* DT Label design constants matching web CSS
|
|
94
|
+
*/
|
|
95
|
+
export declare const DTLabelClipPath: {
|
|
96
|
+
css: string;
|
|
97
|
+
bevelSize: number;
|
|
98
|
+
};
|
|
99
|
+
export {};
|
|
100
|
+
//# sourceMappingURL=DTLabel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTLabel.d.ts","sourceRoot":"","sources":["../../src/components/DTLabel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAC,SAAS,EAAoB,MAAM,OAAO,CAAC;AACnD,OAAO,EAAmB,SAAS,EAAE,SAAS,EAAW,MAAM,cAAc,CAAC;AAI9E,OAAO,EAAC,KAAK,SAAS,EAAkB,MAAM,wBAAwB,CAAC;AAIvE,KAAK,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AA0ChD,UAAU,YAAY;IACpB;;OAEG;IACH,WAAW,EAAE,SAAS,CAAC;IACvB;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,OAAO,CAAC,EACtB,WAAW,EACX,aAAa,EACb,IAAe,EACf,IAAe,EACf,SAAiB,EACjB,QAAe,EACf,cAAoB,EACpB,iBAAuB,EACvB,aAAoB,EACpB,SAAS,EACT,KAAK,GACN,EAAE,YAAY,2CA8Gd;AAED;;GAEG;AACH,eAAO,MAAM,eAAe;;;CAW3B,CAAC"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* DT Label Component
|
|
4
|
+
*
|
|
5
|
+
* A themed label following the Dangerous Things design language
|
|
6
|
+
* with an SVG-based beveled top-right corner.
|
|
7
|
+
*
|
|
8
|
+
* Web CSS reference (CyberLabel):
|
|
9
|
+
* - Top-right bevel: 1em (~16px)
|
|
10
|
+
* - Solid filled background using mode color
|
|
11
|
+
* - Black text on colored background
|
|
12
|
+
*/
|
|
13
|
+
import { useEffect, useRef } from 'react';
|
|
14
|
+
import { StyleSheet, View, Animated } from 'react-native';
|
|
15
|
+
import { Text } from 'react-native-paper';
|
|
16
|
+
import Svg, { Path } from 'react-native-svg';
|
|
17
|
+
import { DTColors } from '../theme/colors';
|
|
18
|
+
import { getVariantColor } from '../utils/variantColors';
|
|
19
|
+
import { buildLabelBevelPath } from '../utils/bevelPaths';
|
|
20
|
+
import { useComponentLayout } from '../utils/useComponentLayout';
|
|
21
|
+
const sizeConfigs = {
|
|
22
|
+
small: {
|
|
23
|
+
fontSize: 11,
|
|
24
|
+
fontSizeSecondary: 11,
|
|
25
|
+
paddingHorizontal: 8,
|
|
26
|
+
paddingVertical: 4,
|
|
27
|
+
bevel: 10,
|
|
28
|
+
indicatorWidth: 12,
|
|
29
|
+
gap: 3,
|
|
30
|
+
},
|
|
31
|
+
medium: {
|
|
32
|
+
fontSize: 14,
|
|
33
|
+
fontSizeSecondary: 14,
|
|
34
|
+
paddingHorizontal: 12,
|
|
35
|
+
paddingVertical: 8,
|
|
36
|
+
bevel: 16,
|
|
37
|
+
indicatorWidth: 16,
|
|
38
|
+
gap: 4,
|
|
39
|
+
},
|
|
40
|
+
large: {
|
|
41
|
+
fontSize: 18,
|
|
42
|
+
fontSizeSecondary: 18,
|
|
43
|
+
paddingHorizontal: 16,
|
|
44
|
+
paddingVertical: 12,
|
|
45
|
+
bevel: 22,
|
|
46
|
+
indicatorWidth: 20,
|
|
47
|
+
gap: 6,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* DT-styled Label component with SVG beveled top-right corner
|
|
52
|
+
*
|
|
53
|
+
* Based on CyberLabel from the Dangerous Things web storefront.
|
|
54
|
+
* Features a solid colored background with black text and an optional
|
|
55
|
+
* animated ping indicator.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* <DTLabel primaryText="Detected" secondaryText="NTAG215" mode="normal" />
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* <DTLabel primaryText="Status" secondaryText="Ready to scan" mode="success" fullWidth />
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* <DTLabel primaryText="Warning" mode="warning" showIndicator={false} />
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* <DTLabel primaryText="Small label" size="small" />
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* <DTLabel primaryText="Large label" size="large" mode="emphasis" />
|
|
71
|
+
*/
|
|
72
|
+
export function DTLabel({ primaryText, secondaryText, mode = 'normal', size = 'medium', fullWidth = false, animated = true, animationDelay = 100, animationDuration = 330, showIndicator = true, bevelSize, style, }) {
|
|
73
|
+
const { dimensions, onLayout, hasDimensions } = useComponentLayout();
|
|
74
|
+
const scaleAnim = useRef(new Animated.Value(animated ? 0 : 1)).current;
|
|
75
|
+
const pingAnim = useRef(new Animated.Value(1)).current;
|
|
76
|
+
const backgroundColor = getVariantColor(mode);
|
|
77
|
+
const sizeConfig = sizeConfigs[size];
|
|
78
|
+
const effectiveBevelSize = bevelSize ?? sizeConfig.bevel;
|
|
79
|
+
// Mount animation
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
if (animated) {
|
|
82
|
+
Animated.timing(scaleAnim, {
|
|
83
|
+
toValue: 1,
|
|
84
|
+
duration: animationDuration,
|
|
85
|
+
delay: animationDelay,
|
|
86
|
+
useNativeDriver: true,
|
|
87
|
+
}).start();
|
|
88
|
+
}
|
|
89
|
+
}, [animated, animationDelay, animationDuration, scaleAnim]);
|
|
90
|
+
// Ping animation loop
|
|
91
|
+
useEffect(() => {
|
|
92
|
+
if (showIndicator) {
|
|
93
|
+
const pingAnimation = Animated.loop(Animated.sequence([
|
|
94
|
+
Animated.timing(pingAnim, {
|
|
95
|
+
toValue: 0.3,
|
|
96
|
+
duration: 1000,
|
|
97
|
+
useNativeDriver: true,
|
|
98
|
+
}),
|
|
99
|
+
Animated.timing(pingAnim, {
|
|
100
|
+
toValue: 1,
|
|
101
|
+
duration: 1000,
|
|
102
|
+
useNativeDriver: true,
|
|
103
|
+
}),
|
|
104
|
+
]));
|
|
105
|
+
pingAnimation.start();
|
|
106
|
+
return () => {
|
|
107
|
+
pingAnimation.stop();
|
|
108
|
+
pingAnim.setValue(1);
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
pingAnim.setValue(1);
|
|
112
|
+
}, [showIndicator, pingAnim]);
|
|
113
|
+
const { width, height } = dimensions;
|
|
114
|
+
return (_jsxs(Animated.View, { style: [
|
|
115
|
+
styles.container,
|
|
116
|
+
fullWidth && styles.fullWidth,
|
|
117
|
+
{ transform: [{ scale: scaleAnim }] },
|
|
118
|
+
style,
|
|
119
|
+
], onLayout: onLayout, children: [hasDimensions && (_jsx(Svg, { style: StyleSheet.absoluteFill, width: width, height: height, viewBox: `0 0 ${width} ${height}`, children: _jsx(Path, { d: buildLabelBevelPath(width, height, effectiveBevelSize), fill: backgroundColor }) })), _jsxs(View, { style: styles.innerContainer, children: [_jsxs(View, { style: [
|
|
120
|
+
styles.textContainer,
|
|
121
|
+
{
|
|
122
|
+
paddingHorizontal: sizeConfig.paddingHorizontal,
|
|
123
|
+
paddingVertical: sizeConfig.paddingVertical,
|
|
124
|
+
gap: sizeConfig.gap,
|
|
125
|
+
},
|
|
126
|
+
], children: [_jsx(Text, { style: [
|
|
127
|
+
styles.primaryText,
|
|
128
|
+
{ fontSize: sizeConfig.fontSize },
|
|
129
|
+
], children: primaryText }), secondaryText && (_jsx(Text, { style: [
|
|
130
|
+
styles.secondaryText,
|
|
131
|
+
{ fontSize: sizeConfig.fontSizeSecondary },
|
|
132
|
+
], children: secondaryText }))] }), showIndicator && (_jsx(Animated.View, { style: [
|
|
133
|
+
styles.indicator,
|
|
134
|
+
{ opacity: pingAnim, paddingLeft: sizeConfig.paddingHorizontal / 1.5 },
|
|
135
|
+
], children: _jsx(View, { style: [
|
|
136
|
+
styles.indicatorLine,
|
|
137
|
+
{ borderColor: DTColors.dark, width: sizeConfig.indicatorWidth },
|
|
138
|
+
] }) }))] })] }));
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* DT Label design constants matching web CSS
|
|
142
|
+
*/
|
|
143
|
+
export const DTLabelClipPath = {
|
|
144
|
+
// CSS-style clip path (for web reference)
|
|
145
|
+
css: `polygon(
|
|
146
|
+
0% 0%,
|
|
147
|
+
calc(100% - 1em) 0%,
|
|
148
|
+
100% 1em,
|
|
149
|
+
100% 100%,
|
|
150
|
+
0% 100%
|
|
151
|
+
)`,
|
|
152
|
+
// Default bevel size in pixels (matching 1em at 16px base)
|
|
153
|
+
bevelSize: 16,
|
|
154
|
+
};
|
|
155
|
+
const styles = StyleSheet.create({
|
|
156
|
+
container: {
|
|
157
|
+
position: 'relative',
|
|
158
|
+
alignSelf: 'flex-start',
|
|
159
|
+
margin: 8,
|
|
160
|
+
},
|
|
161
|
+
fullWidth: {
|
|
162
|
+
alignSelf: 'stretch',
|
|
163
|
+
},
|
|
164
|
+
innerContainer: {
|
|
165
|
+
flexDirection: 'row',
|
|
166
|
+
justifyContent: 'space-between',
|
|
167
|
+
alignItems: 'center',
|
|
168
|
+
position: 'relative',
|
|
169
|
+
zIndex: 1,
|
|
170
|
+
},
|
|
171
|
+
textContainer: {
|
|
172
|
+
flexDirection: 'row',
|
|
173
|
+
flexWrap: 'wrap',
|
|
174
|
+
alignItems: 'center',
|
|
175
|
+
},
|
|
176
|
+
primaryText: {
|
|
177
|
+
color: DTColors.dark,
|
|
178
|
+
fontWeight: '500',
|
|
179
|
+
},
|
|
180
|
+
secondaryText: {
|
|
181
|
+
color: DTColors.dark,
|
|
182
|
+
fontWeight: '800',
|
|
183
|
+
},
|
|
184
|
+
indicator: {},
|
|
185
|
+
indicatorLine: {
|
|
186
|
+
borderBottomWidth: 2,
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
//# sourceMappingURL=DTLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTLabel.js","sourceRoot":"","sources":["../../src/components/DTLabel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DT MediaFrame Component
|
|
3
|
+
*
|
|
4
|
+
* A beveled frame for images and video content following the
|
|
5
|
+
* Dangerous Things design language. No RNP equivalent.
|
|
6
|
+
*
|
|
7
|
+
* Web CSS reference (CyberMediaFrame / .media-frame-clipped):
|
|
8
|
+
* - Top-left + bottom-right diagonal symmetry bevels
|
|
9
|
+
* - Colored border with dark inner background
|
|
10
|
+
* - Optional mount scale animation
|
|
11
|
+
*/
|
|
12
|
+
import { ReactNode } from 'react';
|
|
13
|
+
import { ViewStyle, StyleProp } from 'react-native';
|
|
14
|
+
import { type DTVariant } from '../utils/variantColors';
|
|
15
|
+
interface DTMediaFrameProps {
|
|
16
|
+
/**
|
|
17
|
+
* Content to frame (Image, Video, etc.)
|
|
18
|
+
*/
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Visual variant
|
|
22
|
+
* @default 'normal'
|
|
23
|
+
*/
|
|
24
|
+
variant?: DTVariant;
|
|
25
|
+
/**
|
|
26
|
+
* Aspect ratio (e.g., 16/9, 1, 4/3)
|
|
27
|
+
*/
|
|
28
|
+
aspectRatio?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Border width in pixels
|
|
31
|
+
* @default 3
|
|
32
|
+
*/
|
|
33
|
+
borderWidth?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Bevel size in pixels (top-left and bottom-right)
|
|
36
|
+
* @default 32
|
|
37
|
+
*/
|
|
38
|
+
bevelSize?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Whether to animate on mount
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
animated?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Animation delay in milliseconds
|
|
46
|
+
* @default 0
|
|
47
|
+
*/
|
|
48
|
+
animationDelay?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Custom color (overrides variant)
|
|
51
|
+
*/
|
|
52
|
+
color?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Additional styles for outer container
|
|
55
|
+
*/
|
|
56
|
+
style?: StyleProp<ViewStyle>;
|
|
57
|
+
/**
|
|
58
|
+
* Additional styles for the content area
|
|
59
|
+
*/
|
|
60
|
+
contentStyle?: StyleProp<ViewStyle>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* DT-styled MediaFrame with diagonal-symmetry beveled corners
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* <DTMediaFrame variant="normal" aspectRatio={16/9}>
|
|
67
|
+
* <Image source={{uri: imageUrl}} style={{flex: 1}} />
|
|
68
|
+
* </DTMediaFrame>
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* <DTMediaFrame variant="emphasis" bevelSize={24}>
|
|
72
|
+
* <Video source={videoSource} />
|
|
73
|
+
* </DTMediaFrame>
|
|
74
|
+
*/
|
|
75
|
+
export declare function DTMediaFrame({ children, variant, aspectRatio, borderWidth, bevelSize, animated, animationDelay, color, style, contentStyle, }: DTMediaFrameProps): import("react/jsx-runtime").JSX.Element;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=DTMediaFrame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DTMediaFrame.d.ts","sourceRoot":"","sources":["../../src/components/DTMediaFrame.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAC,SAAS,EAAoB,MAAM,OAAO,CAAC;AACnD,OAAO,EAAmB,SAAS,EAAE,SAAS,EAAW,MAAM,cAAc,CAAC;AAG9E,OAAO,EAAC,KAAK,SAAS,EAAkB,MAAM,wBAAwB,CAAC;AAIvE,UAAU,iBAAiB;IACzB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B;;OAEG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAkB,EAClB,WAAW,EACX,WAAe,EACf,SAAc,EACd,QAAe,EACf,cAAkB,EAClB,KAAK,EACL,KAAK,EACL,YAAY,GACb,EAAE,iBAAiB,2CAsGnB"}
|