@krpkg/ui 0.3.0 → 0.4.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/index.css +436 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +66 -1
- package/dist/index.d.ts +66 -1
- package/dist/index.js +399 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +392 -44
- package/dist/index.mjs.map +1 -1
- package/dist/native.d.mts +17 -3
- package/dist/native.d.ts +17 -3
- package/dist/native.js +139 -15
- package/dist/native.js.map +1 -1
- package/dist/native.mjs +148 -25
- package/dist/native.mjs.map +1 -1
- package/package.json +1 -1
package/dist/native.js
CHANGED
|
@@ -23,6 +23,7 @@ __export(native_exports, {
|
|
|
23
23
|
Badge: () => Badge,
|
|
24
24
|
BracketCard: () => BracketCard,
|
|
25
25
|
Button: () => Button,
|
|
26
|
+
ColorPicker: () => ColorPicker,
|
|
26
27
|
CyberSwitch: () => CyberSwitch,
|
|
27
28
|
Dot: () => Dot,
|
|
28
29
|
TechLabel: () => TechLabel
|
|
@@ -95,6 +96,8 @@ var borderRadius = {
|
|
|
95
96
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
96
97
|
function Button({
|
|
97
98
|
label,
|
|
99
|
+
icon,
|
|
100
|
+
children,
|
|
98
101
|
variant = "outline",
|
|
99
102
|
size = "md",
|
|
100
103
|
style,
|
|
@@ -102,7 +105,7 @@ function Button({
|
|
|
102
105
|
disabled,
|
|
103
106
|
...props
|
|
104
107
|
}) {
|
|
105
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.
|
|
108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
106
109
|
import_react_native.Pressable,
|
|
107
110
|
{
|
|
108
111
|
disabled,
|
|
@@ -115,19 +118,23 @@ function Button({
|
|
|
115
118
|
style
|
|
116
119
|
],
|
|
117
120
|
...props,
|
|
118
|
-
children:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
121
|
+
children: [
|
|
122
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: icon }),
|
|
123
|
+
children ? children : label ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
124
|
+
import_react_native.Text,
|
|
125
|
+
{
|
|
126
|
+
style: [
|
|
127
|
+
styles.text,
|
|
128
|
+
styles[`text_${variant}`],
|
|
129
|
+
styles[`textSize_${size}`],
|
|
130
|
+
disabled && styles.textDisabled,
|
|
131
|
+
icon ? styles.textWithIcon : null,
|
|
132
|
+
textStyle
|
|
133
|
+
],
|
|
134
|
+
children: label
|
|
135
|
+
}
|
|
136
|
+
) : null
|
|
137
|
+
]
|
|
131
138
|
}
|
|
132
139
|
);
|
|
133
140
|
}
|
|
@@ -136,7 +143,8 @@ var styles = import_react_native.StyleSheet.create({
|
|
|
136
143
|
borderRadius: borderRadius.sm,
|
|
137
144
|
alignItems: "center",
|
|
138
145
|
justifyContent: "center",
|
|
139
|
-
flexDirection: "row"
|
|
146
|
+
flexDirection: "row",
|
|
147
|
+
gap: spacing.xs
|
|
140
148
|
},
|
|
141
149
|
size_sm: {
|
|
142
150
|
paddingVertical: spacing.xs,
|
|
@@ -174,6 +182,9 @@ var styles = import_react_native.StyleSheet.create({
|
|
|
174
182
|
fontFamily: "monospace",
|
|
175
183
|
fontWeight: "600"
|
|
176
184
|
},
|
|
185
|
+
textWithIcon: {
|
|
186
|
+
marginLeft: 2
|
|
187
|
+
},
|
|
177
188
|
textSize_sm: {
|
|
178
189
|
fontSize: 12
|
|
179
190
|
},
|
|
@@ -502,11 +513,124 @@ var styles6 = import_react_native6.StyleSheet.create({
|
|
|
502
513
|
color: colors.text2
|
|
503
514
|
}
|
|
504
515
|
});
|
|
516
|
+
|
|
517
|
+
// src/native/ColorPicker.tsx
|
|
518
|
+
var import_react_native7 = require("react-native");
|
|
519
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
520
|
+
function ColorPicker({
|
|
521
|
+
value,
|
|
522
|
+
onChange,
|
|
523
|
+
presets = [
|
|
524
|
+
"#000000",
|
|
525
|
+
"#ffffff",
|
|
526
|
+
"#c49368",
|
|
527
|
+
"#6a9e9e",
|
|
528
|
+
"#a855f7",
|
|
529
|
+
"#3b82f6",
|
|
530
|
+
"#22c55e",
|
|
531
|
+
"#ef4444",
|
|
532
|
+
"#eab308",
|
|
533
|
+
"#ec4899",
|
|
534
|
+
"#64748b",
|
|
535
|
+
"#1e293b"
|
|
536
|
+
],
|
|
537
|
+
label,
|
|
538
|
+
jp,
|
|
539
|
+
coord,
|
|
540
|
+
style,
|
|
541
|
+
labelStyle
|
|
542
|
+
}) {
|
|
543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_native7.View, { style: [styles7.container, style], children: [
|
|
544
|
+
(label || jp || coord) && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_native7.View, { style: styles7.header, children: [
|
|
545
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_native7.View, { style: styles7.labelGroup, children: [
|
|
546
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native7.Text, { style: [styles7.label, labelStyle], children: label }),
|
|
547
|
+
jp && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native7.Text, { style: styles7.jp, children: jp }),
|
|
548
|
+
coord && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_react_native7.Text, { style: styles7.coord, children: [
|
|
549
|
+
"[",
|
|
550
|
+
coord,
|
|
551
|
+
"]"
|
|
552
|
+
] })
|
|
553
|
+
] }),
|
|
554
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native7.Text, { style: styles7.hexValue, children: value.toUpperCase() })
|
|
555
|
+
] }),
|
|
556
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react_native7.View, { style: styles7.palette, children: presets.map((color) => {
|
|
557
|
+
const isSelected = value.toLowerCase() === color.toLowerCase();
|
|
558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
559
|
+
import_react_native7.Pressable,
|
|
560
|
+
{
|
|
561
|
+
onPress: () => onChange(color),
|
|
562
|
+
style: [
|
|
563
|
+
styles7.swatch,
|
|
564
|
+
{ backgroundColor: color },
|
|
565
|
+
isSelected && styles7.swatchSelected
|
|
566
|
+
]
|
|
567
|
+
},
|
|
568
|
+
color
|
|
569
|
+
);
|
|
570
|
+
}) })
|
|
571
|
+
] });
|
|
572
|
+
}
|
|
573
|
+
var styles7 = import_react_native7.StyleSheet.create({
|
|
574
|
+
container: {
|
|
575
|
+
marginVertical: spacing.sm
|
|
576
|
+
},
|
|
577
|
+
header: {
|
|
578
|
+
flexDirection: "row",
|
|
579
|
+
justifyContent: "space-between",
|
|
580
|
+
alignItems: "baseline",
|
|
581
|
+
marginBottom: spacing.xs
|
|
582
|
+
},
|
|
583
|
+
labelGroup: {
|
|
584
|
+
flexDirection: "row",
|
|
585
|
+
alignItems: "center",
|
|
586
|
+
gap: spacing.xs
|
|
587
|
+
},
|
|
588
|
+
label: {
|
|
589
|
+
fontFamily: "monospace",
|
|
590
|
+
fontSize: 11,
|
|
591
|
+
fontWeight: "700",
|
|
592
|
+
color: colors.text1,
|
|
593
|
+
textTransform: "uppercase"
|
|
594
|
+
},
|
|
595
|
+
jp: {
|
|
596
|
+
fontSize: 10,
|
|
597
|
+
color: colors.text3
|
|
598
|
+
},
|
|
599
|
+
coord: {
|
|
600
|
+
fontFamily: "monospace",
|
|
601
|
+
fontSize: 9,
|
|
602
|
+
color: colors.accent
|
|
603
|
+
},
|
|
604
|
+
hexValue: {
|
|
605
|
+
fontFamily: "monospace",
|
|
606
|
+
fontSize: 11,
|
|
607
|
+
color: colors.accent,
|
|
608
|
+
fontWeight: "700"
|
|
609
|
+
},
|
|
610
|
+
palette: {
|
|
611
|
+
flexDirection: "row",
|
|
612
|
+
flexWrap: "wrap",
|
|
613
|
+
gap: spacing.xs
|
|
614
|
+
},
|
|
615
|
+
swatch: {
|
|
616
|
+
width: 28,
|
|
617
|
+
height: 28,
|
|
618
|
+
borderRadius: borderRadius.sm,
|
|
619
|
+
borderWidth: 1,
|
|
620
|
+
borderColor: "rgba(255, 255, 255, 0.2)"
|
|
621
|
+
},
|
|
622
|
+
swatchSelected: {
|
|
623
|
+
borderColor: "#ffffff",
|
|
624
|
+
borderWidth: 2,
|
|
625
|
+
transform: [{ scale: 1.1 }]
|
|
626
|
+
}
|
|
627
|
+
});
|
|
505
628
|
// Annotate the CommonJS export names for ESM import in node:
|
|
506
629
|
0 && (module.exports = {
|
|
507
630
|
Badge,
|
|
508
631
|
BracketCard,
|
|
509
632
|
Button,
|
|
633
|
+
ColorPicker,
|
|
510
634
|
CyberSwitch,
|
|
511
635
|
Dot,
|
|
512
636
|
TechLabel
|
package/dist/native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/native/index.ts","../src/native/Button.tsx","../src/tokens.ts","../src/native/BracketCard.tsx","../src/native/Badge.tsx","../src/native/Dot.tsx","../src/native/TechLabel.tsx","../src/native/CyberSwitch.tsx"],"sourcesContent":["export * from './Button';\nexport * from './BracketCard';\nexport * from './Badge';\nexport * from './Dot';\nexport * from './TechLabel';\nexport * from './CyberSwitch';\n","import React from 'react';\nimport {\n Pressable,\n Text,\n StyleSheet,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n type TextStyle,\n} from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeButtonProps extends Omit<PressableProps, 'style'> {\n label: string;\n variant?: 'primary' | 'outline' | 'ghost' | 'danger';\n size?: 'sm' | 'md' | 'lg';\n style?: StyleProp<ViewStyle>;\n textStyle?: StyleProp<TextStyle>;\n}\n\nexport function Button({\n label,\n variant = 'outline',\n size = 'md',\n style,\n textStyle,\n disabled,\n ...props\n}: NativeButtonProps) {\n return (\n <Pressable\n disabled={disabled}\n style={({ pressed }) => [\n styles.base,\n styles[variant],\n styles[`size_${size}`],\n pressed && !disabled && styles.pressed,\n disabled && styles.disabled,\n style,\n ]}\n {...props}\n >\n <Text\n style={[\n styles.text,\n styles[`text_${variant}`],\n styles[`textSize_${size}`],\n disabled && styles.textDisabled,\n textStyle,\n ]}\n >\n {label}\n </Text>\n </Pressable>\n );\n}\n\nconst styles = StyleSheet.create({\n base: {\n borderRadius: borderRadius.sm,\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n },\n size_sm: {\n paddingVertical: spacing.xs,\n paddingHorizontal: spacing.sm,\n },\n size_md: {\n paddingVertical: spacing.sm,\n paddingHorizontal: spacing.lg,\n },\n size_lg: {\n paddingVertical: spacing.md,\n paddingHorizontal: spacing.xl,\n },\n primary: {\n backgroundColor: colors.accent,\n },\n outline: {\n borderWidth: 1,\n borderColor: colors.accent,\n backgroundColor: 'transparent',\n },\n ghost: {\n backgroundColor: 'transparent',\n },\n danger: {\n backgroundColor: colors.danger,\n },\n pressed: {\n opacity: 0.75,\n },\n disabled: {\n opacity: 0.4,\n },\n text: {\n fontFamily: 'monospace',\n fontWeight: '600',\n },\n textSize_sm: {\n fontSize: 12,\n },\n textSize_md: {\n fontSize: 14,\n },\n textSize_lg: {\n fontSize: 16,\n },\n text_primary: {\n color: colors.bg0,\n },\n text_outline: {\n color: colors.accent,\n },\n text_ghost: {\n color: colors.text0,\n },\n text_danger: {\n color: '#ffffff',\n },\n textDisabled: {\n color: colors.textMuted,\n },\n});\n","/**\n * Raw design tokens - source of truth across Web, Tauri Desktop, and React Native\n */\n\nexport const colors = {\n // Baseline / Obsidian Dark\n bg: '#0a0a0c',\n bg0: '#0a0a0c',\n bg1: '#111114',\n bg2: '#18181c',\n bg3: '#1f1f24',\n bgCard: '#121215',\n bgCardHover: '#18181d',\n bgCardActive: '#222228',\n border: '#2a2a30',\n borderSubtle: '#1e1e24',\n borderLight: '#3f3f46',\n text: '#f4f4f5',\n text0: '#e2ded6',\n text1: '#b0aca4',\n text2: '#706c66',\n text3: '#4a4844',\n textMuted: '#a1a1aa',\n textDim: '#71717a',\n\n // Accents & Signals\n accent: '#c49368',\n accentHover: '#d4a478',\n accentDim: 'rgba(196, 147, 104, 0.12)',\n accentMuted: 'rgba(224, 169, 109, 0.15)',\n teal: '#6a9e9e',\n tealDim: 'rgba(106, 158, 158, 0.12)',\n warm: '#a08060',\n redSoft: '#b05050',\n greenSoft: '#6a9a6a',\n danger: '#ef4444',\n success: '#22c55e',\n blue: '#3b82f6',\n purple: '#a855f7',\n\n // Sticky Note Themes\n sticky1: '#e8e0b8',\n sticky2: '#e0c8c0',\n sticky3: '#c0d0d8',\n sticky4: '#c8d8c0',\n} as const;\n\nexport const themePalettes = {\n default: {\n name: 'Amber Baseline',\n accent: '#c49368',\n bg0: '#0a0a0c',\n bg1: '#111114',\n bg2: '#18181c',\n border: '#2a2a30',\n },\n citlali: {\n name: 'Citlali Star-Gaze',\n accent: '#f2a9c8',\n bg0: '#090d1d',\n bg1: '#10172d',\n bg2: '#172343',\n border: '#334879',\n },\n furina: {\n name: 'Furina Hydro-Overture',\n accent: '#5ab2ff',\n bg0: '#060d16',\n bg1: '#0b1624',\n bg2: '#122238',\n border: '#1f3c5e',\n },\n alley: {\n name: 'Alley Neon-Noir',\n accent: '#b066ff',\n bg0: '#050409',\n bg1: '#0b0914',\n bg2: '#141021',\n border: '#382c54',\n },\n} as const;\n\nexport const typography = {\n fontMono: 'IBMPlexMono_400Regular',\n fontMonoLight: 'IBMPlexMono_300Light',\n fontMonoMedium: 'IBMPlexMono_500Medium',\n fontMonoBold: 'IBMPlexMono_600SemiBold',\n fontSans: 'IBMPlexSans_400Regular',\n fontSansLight: 'IBMPlexSans_300Light',\n fontSansMedium: 'IBMPlexSans_500Medium',\n fontSansBold: 'IBMPlexSans_600SemiBold',\n fontJp: 'NotoSansJP_400Regular',\n fontJpMedium: 'NotoSansJP_500Medium',\n fontJpBold: 'NotoSansJP_700Bold',\n\n webMono: \"'IBM Plex Mono', monospace\",\n webSans: \"'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n webJp: \"'Noto Sans JP', sans-serif\",\n} as const;\n\nexport const spacing = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n xxl: 32,\n xxxl: 48,\n} as const;\n\nexport const borderRadius = {\n none: 0,\n sm: 4,\n md: 6,\n lg: 10,\n full: 9999,\n} as const;\n\n/**\n * CSS Variable references for DOM & Tauri Webview contexts\n */\nexport const cssTokens = {\n colors: {\n bg0: 'var(--kz-bg-0)',\n bg1: 'var(--kz-bg-1)',\n bg2: 'var(--kz-bg-2)',\n bg3: 'var(--kz-bg-3)',\n border: 'var(--kz-border)',\n borderSubtle: 'var(--kz-border-subtle)',\n borderLight: 'var(--kz-border-light)',\n text0: 'var(--kz-text-0)',\n text1: 'var(--kz-text-1)',\n text2: 'var(--kz-text-2)',\n text3: 'var(--kz-text-3)',\n accent: 'var(--kz-accent)',\n accentHover: 'var(--kz-accent-hover)',\n accentDim: 'var(--kz-accent-dim)',\n teal: 'var(--kz-teal)',\n tealDim: 'var(--kz-teal-dim)',\n warm: 'var(--kz-warm)',\n redSoft: 'var(--kz-red-soft)',\n greenSoft: 'var(--kz-green-soft)',\n blue: 'var(--kz-blue)',\n purple: 'var(--kz-purple)',\n },\n typography: {\n mono: 'var(--kz-mono)',\n sans: 'var(--kz-sans)',\n jp: 'var(--kz-jp)',\n },\n radius: {\n sm: 'var(--kz-radius-sm)',\n md: 'var(--kz-radius-md)',\n lg: 'var(--kz-radius-lg)',\n },\n} as const;\n\nexport const tokens = cssTokens;\n\nexport type ThemeName = 'default' | 'citlali' | 'furina' | 'alley';\n","import React from 'react';\nimport { View, StyleSheet, type ViewProps, type StyleProp, type ViewStyle } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeBracketCardProps extends ViewProps {\n active?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function BracketCard({\n active = false,\n style,\n children,\n ...props\n}: NativeBracketCardProps) {\n return (\n <View\n style={[\n styles.card,\n active && styles.active,\n style,\n ]}\n {...props}\n >\n <View style={[styles.corner, styles.cornerTL, active && styles.cornerActive]} />\n <View style={[styles.corner, styles.cornerTR, active && styles.cornerActive]} />\n <View style={[styles.corner, styles.cornerBL, active && styles.cornerActive]} />\n <View style={[styles.corner, styles.cornerBR, active && styles.cornerActive]} />\n {children}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n card: {\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderColor: colors.borderSubtle,\n borderRadius: borderRadius.md,\n padding: spacing.md,\n position: 'relative',\n },\n active: {\n borderColor: colors.accent,\n },\n corner: {\n position: 'absolute',\n width: 6,\n height: 6,\n borderColor: colors.textDim,\n },\n cornerActive: {\n borderColor: colors.accent,\n },\n cornerTL: {\n top: -1,\n left: -1,\n borderTopWidth: 2,\n borderLeftWidth: 2,\n },\n cornerTR: {\n top: -1,\n right: -1,\n borderTopWidth: 2,\n borderRightWidth: 2,\n },\n cornerBL: {\n bottom: -1,\n left: -1,\n borderBottomWidth: 2,\n borderLeftWidth: 2,\n },\n cornerBR: {\n bottom: -1,\n right: -1,\n borderBottomWidth: 2,\n borderRightWidth: 2,\n },\n});\n","import React from 'react';\nimport { View, Text, StyleSheet, type ViewStyle, type StyleProp } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeBadgeProps {\n label: string;\n variant?: 'default' | 'accent' | 'teal' | 'purple' | 'outline';\n style?: StyleProp<ViewStyle>;\n}\n\nexport function Badge({ label, variant = 'default', style }: NativeBadgeProps) {\n return (\n <View style={[styles.badge, styles[variant], style]}>\n <Text style={[styles.text, styles[`text_${variant}`]]}>{label}</Text>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n badge: {\n paddingHorizontal: spacing.sm,\n paddingVertical: 2,\n borderRadius: borderRadius.sm,\n alignSelf: 'flex-start',\n },\n default: {\n backgroundColor: colors.borderSubtle,\n },\n accent: {\n backgroundColor: colors.accentDim,\n borderWidth: 1,\n borderColor: colors.accent,\n },\n teal: {\n backgroundColor: colors.tealDim,\n borderWidth: 1,\n borderColor: colors.teal,\n },\n purple: {\n backgroundColor: 'rgba(168, 85, 247, 0.15)',\n borderWidth: 1,\n borderColor: colors.purple,\n },\n outline: {\n borderWidth: 1,\n borderColor: colors.borderLight,\n backgroundColor: 'transparent',\n },\n text: {\n fontSize: 11,\n fontFamily: 'monospace',\n fontWeight: '700',\n textTransform: 'uppercase',\n },\n text_default: {\n color: colors.text1,\n },\n text_accent: {\n color: colors.accent,\n },\n text_teal: {\n color: colors.teal,\n },\n text_purple: {\n color: colors.purple,\n },\n text_outline: {\n color: colors.textDim,\n },\n});\n","import React from 'react';\nimport { View, StyleSheet, type ViewStyle, type StyleProp } from 'react-native';\nimport { colors } from '../tokens';\n\nexport interface NativeDotProps {\n color?: 'accent' | 'green' | 'red' | 'teal' | 'purple';\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function Dot({ color = 'accent', size = 6, style }: NativeDotProps) {\n const colorMap = {\n accent: colors.accent,\n green: colors.success,\n red: colors.danger,\n teal: colors.teal,\n purple: colors.purple,\n };\n\n return (\n <View\n style={[\n styles.dot,\n {\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor: colorMap[color],\n },\n style,\n ]}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n dot: {\n alignSelf: 'center',\n },\n});\n","import React from 'react';\nimport { View, Text, StyleSheet, type ViewStyle, type StyleProp } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeTechLabelProps {\n label: string;\n jp?: string;\n coord?: string;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function TechLabel({ label, jp, coord, style }: NativeTechLabelProps) {\n return (\n <View style={[styles.container, style]}>\n <Text style={styles.label}>{label}</Text>\n {jp && <Text style={styles.jp}>{jp}</Text>}\n {coord && <Text style={styles.coord}>[{coord}]</Text>}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.xs,\n },\n label: {\n fontFamily: 'monospace',\n fontSize: 12,\n color: colors.text0,\n fontWeight: '700',\n letterSpacing: 0.5,\n },\n jp: {\n fontSize: 11,\n color: colors.text2,\n },\n coord: {\n fontFamily: 'monospace',\n fontSize: 10,\n color: colors.accent,\n },\n});\n","import React from 'react';\nimport { View, Text, Pressable, StyleSheet, type ViewStyle, type StyleProp } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeCyberSwitchProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n label?: string;\n sublabel?: string;\n disabled?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function CyberSwitch({\n checked,\n onChange,\n label,\n sublabel,\n disabled = false,\n style,\n}: NativeCyberSwitchProps) {\n return (\n <Pressable\n disabled={disabled}\n onPress={() => onChange(!checked)}\n style={[styles.container, disabled && styles.disabled, style]}\n >\n <View style={[styles.track, checked && styles.trackChecked]}>\n <Text style={[styles.bitText, styles.bitLeft]}>{checked ? '1' : ''}</Text>\n <View style={[styles.thumb, checked ? styles.thumbChecked : styles.thumbUnchecked]} />\n <Text style={[styles.bitText, styles.bitRight]}>{!checked ? '0' : ''}</Text>\n </View>\n {(label || sublabel) && (\n <View style={styles.textGroup}>\n {label && <Text style={styles.label}>{label}</Text>}\n {sublabel && <Text style={styles.sublabel}>{sublabel}</Text>}\n </View>\n )}\n </Pressable>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.sm,\n },\n disabled: {\n opacity: 0.4,\n },\n track: {\n width: 48,\n height: 24,\n borderRadius: borderRadius.sm,\n backgroundColor: colors.bg1,\n borderWidth: 1,\n borderColor: colors.border,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 3,\n position: 'relative',\n },\n trackChecked: {\n borderColor: colors.accent,\n backgroundColor: colors.accentDim,\n },\n thumb: {\n width: 18,\n height: 18,\n borderRadius: borderRadius.sm - 2,\n backgroundColor: colors.borderLight,\n position: 'absolute',\n },\n thumbUnchecked: {\n left: 2,\n },\n thumbChecked: {\n right: 2,\n backgroundColor: colors.accent,\n },\n bitText: {\n fontFamily: 'monospace',\n fontSize: 9,\n fontWeight: '700',\n color: colors.text2,\n },\n bitLeft: {\n marginLeft: 3,\n },\n bitRight: {\n marginRight: 3,\n },\n textGroup: {\n flexDirection: 'column',\n },\n label: {\n fontFamily: 'monospace',\n fontSize: 13,\n color: colors.text0,\n fontWeight: '600',\n },\n sublabel: {\n fontSize: 11,\n color: colors.text2,\n },\n});\n"],"mappings":"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","names":["import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles"]}
|
|
1
|
+
{"version":3,"sources":["../src/native/index.ts","../src/native/Button.tsx","../src/tokens.ts","../src/native/BracketCard.tsx","../src/native/Badge.tsx","../src/native/Dot.tsx","../src/native/TechLabel.tsx","../src/native/CyberSwitch.tsx","../src/native/ColorPicker.tsx"],"sourcesContent":["export * from './Button';\nexport * from './BracketCard';\nexport * from './Badge';\nexport * from './Dot';\nexport * from './TechLabel';\nexport * from './CyberSwitch';\nexport * from './ColorPicker';\n","import React from 'react';\nimport {\n Pressable,\n Text,\n StyleSheet,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n type TextStyle,\n} from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeButtonProps extends Omit<PressableProps, 'style'> {\n label?: string;\n icon?: React.ReactNode;\n children?: React.ReactNode;\n variant?: 'primary' | 'outline' | 'ghost' | 'danger';\n size?: 'sm' | 'md' | 'lg';\n style?: StyleProp<ViewStyle>;\n textStyle?: StyleProp<TextStyle>;\n}\n\nexport function Button({\n label,\n icon,\n children,\n variant = 'outline',\n size = 'md',\n style,\n textStyle,\n disabled,\n ...props\n}: NativeButtonProps) {\n return (\n <Pressable\n disabled={disabled}\n style={({ pressed }) => [\n styles.base,\n styles[variant],\n styles[`size_${size}`],\n pressed && !disabled && styles.pressed,\n disabled && styles.disabled,\n style,\n ]}\n {...props}\n >\n {icon && <>{icon}</>}\n {children ? (\n children\n ) : label ? (\n <Text\n style={[\n styles.text,\n styles[`text_${variant}`],\n styles[`textSize_${size}`],\n disabled && styles.textDisabled,\n icon ? styles.textWithIcon : null,\n textStyle,\n ]}\n >\n {label}\n </Text>\n ) : null}\n </Pressable>\n );\n}\n\nconst styles = StyleSheet.create({\n base: {\n borderRadius: borderRadius.sm,\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n gap: spacing.xs,\n },\n size_sm: {\n paddingVertical: spacing.xs,\n paddingHorizontal: spacing.sm,\n },\n size_md: {\n paddingVertical: spacing.sm,\n paddingHorizontal: spacing.lg,\n },\n size_lg: {\n paddingVertical: spacing.md,\n paddingHorizontal: spacing.xl,\n },\n primary: {\n backgroundColor: colors.accent,\n },\n outline: {\n borderWidth: 1,\n borderColor: colors.accent,\n backgroundColor: 'transparent',\n },\n ghost: {\n backgroundColor: 'transparent',\n },\n danger: {\n backgroundColor: colors.danger,\n },\n pressed: {\n opacity: 0.75,\n },\n disabled: {\n opacity: 0.4,\n },\n text: {\n fontFamily: 'monospace',\n fontWeight: '600',\n },\n textWithIcon: {\n marginLeft: 2,\n },\n textSize_sm: {\n fontSize: 12,\n },\n textSize_md: {\n fontSize: 14,\n },\n textSize_lg: {\n fontSize: 16,\n },\n text_primary: {\n color: colors.bg0,\n },\n text_outline: {\n color: colors.accent,\n },\n text_ghost: {\n color: colors.text0,\n },\n text_danger: {\n color: '#ffffff',\n },\n textDisabled: {\n color: colors.textMuted,\n },\n});\n","/**\n * Raw design tokens - source of truth across Web, Tauri Desktop, and React Native\n */\n\nexport const colors = {\n // Baseline / Obsidian Dark\n bg: '#0a0a0c',\n bg0: '#0a0a0c',\n bg1: '#111114',\n bg2: '#18181c',\n bg3: '#1f1f24',\n bgCard: '#121215',\n bgCardHover: '#18181d',\n bgCardActive: '#222228',\n border: '#2a2a30',\n borderSubtle: '#1e1e24',\n borderLight: '#3f3f46',\n text: '#f4f4f5',\n text0: '#e2ded6',\n text1: '#b0aca4',\n text2: '#706c66',\n text3: '#4a4844',\n textMuted: '#a1a1aa',\n textDim: '#71717a',\n\n // Accents & Signals\n accent: '#c49368',\n accentHover: '#d4a478',\n accentDim: 'rgba(196, 147, 104, 0.12)',\n accentMuted: 'rgba(224, 169, 109, 0.15)',\n teal: '#6a9e9e',\n tealDim: 'rgba(106, 158, 158, 0.12)',\n warm: '#a08060',\n redSoft: '#b05050',\n greenSoft: '#6a9a6a',\n danger: '#ef4444',\n success: '#22c55e',\n blue: '#3b82f6',\n purple: '#a855f7',\n\n // Sticky Note Themes\n sticky1: '#e8e0b8',\n sticky2: '#e0c8c0',\n sticky3: '#c0d0d8',\n sticky4: '#c8d8c0',\n} as const;\n\nexport const themePalettes = {\n default: {\n name: 'Amber Baseline',\n accent: '#c49368',\n bg0: '#0a0a0c',\n bg1: '#111114',\n bg2: '#18181c',\n border: '#2a2a30',\n },\n citlali: {\n name: 'Citlali Star-Gaze',\n accent: '#f2a9c8',\n bg0: '#090d1d',\n bg1: '#10172d',\n bg2: '#172343',\n border: '#334879',\n },\n furina: {\n name: 'Furina Hydro-Overture',\n accent: '#5ab2ff',\n bg0: '#060d16',\n bg1: '#0b1624',\n bg2: '#122238',\n border: '#1f3c5e',\n },\n alley: {\n name: 'Alley Neon-Noir',\n accent: '#b066ff',\n bg0: '#050409',\n bg1: '#0b0914',\n bg2: '#141021',\n border: '#382c54',\n },\n} as const;\n\nexport const typography = {\n fontMono: 'IBMPlexMono_400Regular',\n fontMonoLight: 'IBMPlexMono_300Light',\n fontMonoMedium: 'IBMPlexMono_500Medium',\n fontMonoBold: 'IBMPlexMono_600SemiBold',\n fontSans: 'IBMPlexSans_400Regular',\n fontSansLight: 'IBMPlexSans_300Light',\n fontSansMedium: 'IBMPlexSans_500Medium',\n fontSansBold: 'IBMPlexSans_600SemiBold',\n fontJp: 'NotoSansJP_400Regular',\n fontJpMedium: 'NotoSansJP_500Medium',\n fontJpBold: 'NotoSansJP_700Bold',\n\n webMono: \"'IBM Plex Mono', monospace\",\n webSans: \"'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n webJp: \"'Noto Sans JP', sans-serif\",\n} as const;\n\nexport const spacing = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n xxl: 32,\n xxxl: 48,\n} as const;\n\nexport const borderRadius = {\n none: 0,\n sm: 4,\n md: 6,\n lg: 10,\n full: 9999,\n} as const;\n\n/**\n * CSS Variable references for DOM & Tauri Webview contexts\n */\nexport const cssTokens = {\n colors: {\n bg0: 'var(--kz-bg-0)',\n bg1: 'var(--kz-bg-1)',\n bg2: 'var(--kz-bg-2)',\n bg3: 'var(--kz-bg-3)',\n border: 'var(--kz-border)',\n borderSubtle: 'var(--kz-border-subtle)',\n borderLight: 'var(--kz-border-light)',\n text0: 'var(--kz-text-0)',\n text1: 'var(--kz-text-1)',\n text2: 'var(--kz-text-2)',\n text3: 'var(--kz-text-3)',\n accent: 'var(--kz-accent)',\n accentHover: 'var(--kz-accent-hover)',\n accentDim: 'var(--kz-accent-dim)',\n teal: 'var(--kz-teal)',\n tealDim: 'var(--kz-teal-dim)',\n warm: 'var(--kz-warm)',\n redSoft: 'var(--kz-red-soft)',\n greenSoft: 'var(--kz-green-soft)',\n blue: 'var(--kz-blue)',\n purple: 'var(--kz-purple)',\n },\n typography: {\n mono: 'var(--kz-mono)',\n sans: 'var(--kz-sans)',\n jp: 'var(--kz-jp)',\n },\n radius: {\n sm: 'var(--kz-radius-sm)',\n md: 'var(--kz-radius-md)',\n lg: 'var(--kz-radius-lg)',\n },\n} as const;\n\nexport const tokens = cssTokens;\n\nexport type ThemeName = 'default' | 'citlali' | 'furina' | 'alley';\n","import React from 'react';\nimport { View, StyleSheet, type ViewProps, type StyleProp, type ViewStyle } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeBracketCardProps extends ViewProps {\n active?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function BracketCard({\n active = false,\n style,\n children,\n ...props\n}: NativeBracketCardProps) {\n return (\n <View\n style={[\n styles.card,\n active && styles.active,\n style,\n ]}\n {...props}\n >\n <View style={[styles.corner, styles.cornerTL, active && styles.cornerActive]} />\n <View style={[styles.corner, styles.cornerTR, active && styles.cornerActive]} />\n <View style={[styles.corner, styles.cornerBL, active && styles.cornerActive]} />\n <View style={[styles.corner, styles.cornerBR, active && styles.cornerActive]} />\n {children}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n card: {\n backgroundColor: colors.bgCard,\n borderWidth: 1,\n borderColor: colors.borderSubtle,\n borderRadius: borderRadius.md,\n padding: spacing.md,\n position: 'relative',\n },\n active: {\n borderColor: colors.accent,\n },\n corner: {\n position: 'absolute',\n width: 6,\n height: 6,\n borderColor: colors.textDim,\n },\n cornerActive: {\n borderColor: colors.accent,\n },\n cornerTL: {\n top: -1,\n left: -1,\n borderTopWidth: 2,\n borderLeftWidth: 2,\n },\n cornerTR: {\n top: -1,\n right: -1,\n borderTopWidth: 2,\n borderRightWidth: 2,\n },\n cornerBL: {\n bottom: -1,\n left: -1,\n borderBottomWidth: 2,\n borderLeftWidth: 2,\n },\n cornerBR: {\n bottom: -1,\n right: -1,\n borderBottomWidth: 2,\n borderRightWidth: 2,\n },\n});\n","import React from 'react';\nimport { View, Text, StyleSheet, type ViewStyle, type StyleProp } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeBadgeProps {\n label: string;\n variant?: 'default' | 'accent' | 'teal' | 'purple' | 'outline';\n style?: StyleProp<ViewStyle>;\n}\n\nexport function Badge({ label, variant = 'default', style }: NativeBadgeProps) {\n return (\n <View style={[styles.badge, styles[variant], style]}>\n <Text style={[styles.text, styles[`text_${variant}`]]}>{label}</Text>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n badge: {\n paddingHorizontal: spacing.sm,\n paddingVertical: 2,\n borderRadius: borderRadius.sm,\n alignSelf: 'flex-start',\n },\n default: {\n backgroundColor: colors.borderSubtle,\n },\n accent: {\n backgroundColor: colors.accentDim,\n borderWidth: 1,\n borderColor: colors.accent,\n },\n teal: {\n backgroundColor: colors.tealDim,\n borderWidth: 1,\n borderColor: colors.teal,\n },\n purple: {\n backgroundColor: 'rgba(168, 85, 247, 0.15)',\n borderWidth: 1,\n borderColor: colors.purple,\n },\n outline: {\n borderWidth: 1,\n borderColor: colors.borderLight,\n backgroundColor: 'transparent',\n },\n text: {\n fontSize: 11,\n fontFamily: 'monospace',\n fontWeight: '700',\n textTransform: 'uppercase',\n },\n text_default: {\n color: colors.text1,\n },\n text_accent: {\n color: colors.accent,\n },\n text_teal: {\n color: colors.teal,\n },\n text_purple: {\n color: colors.purple,\n },\n text_outline: {\n color: colors.textDim,\n },\n});\n","import React from 'react';\nimport { View, StyleSheet, type ViewStyle, type StyleProp } from 'react-native';\nimport { colors } from '../tokens';\n\nexport interface NativeDotProps {\n color?: 'accent' | 'green' | 'red' | 'teal' | 'purple';\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function Dot({ color = 'accent', size = 6, style }: NativeDotProps) {\n const colorMap = {\n accent: colors.accent,\n green: colors.success,\n red: colors.danger,\n teal: colors.teal,\n purple: colors.purple,\n };\n\n return (\n <View\n style={[\n styles.dot,\n {\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor: colorMap[color],\n },\n style,\n ]}\n />\n );\n}\n\nconst styles = StyleSheet.create({\n dot: {\n alignSelf: 'center',\n },\n});\n","import React from 'react';\nimport { View, Text, StyleSheet, type ViewStyle, type StyleProp } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeTechLabelProps {\n label: string;\n jp?: string;\n coord?: string;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function TechLabel({ label, jp, coord, style }: NativeTechLabelProps) {\n return (\n <View style={[styles.container, style]}>\n <Text style={styles.label}>{label}</Text>\n {jp && <Text style={styles.jp}>{jp}</Text>}\n {coord && <Text style={styles.coord}>[{coord}]</Text>}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.xs,\n },\n label: {\n fontFamily: 'monospace',\n fontSize: 12,\n color: colors.text0,\n fontWeight: '700',\n letterSpacing: 0.5,\n },\n jp: {\n fontSize: 11,\n color: colors.text2,\n },\n coord: {\n fontFamily: 'monospace',\n fontSize: 10,\n color: colors.accent,\n },\n});\n","import React from 'react';\nimport { View, Text, Pressable, StyleSheet, type ViewStyle, type StyleProp } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeCyberSwitchProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n label?: string;\n sublabel?: string;\n disabled?: boolean;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function CyberSwitch({\n checked,\n onChange,\n label,\n sublabel,\n disabled = false,\n style,\n}: NativeCyberSwitchProps) {\n return (\n <Pressable\n disabled={disabled}\n onPress={() => onChange(!checked)}\n style={[styles.container, disabled && styles.disabled, style]}\n >\n <View style={[styles.track, checked && styles.trackChecked]}>\n <Text style={[styles.bitText, styles.bitLeft]}>{checked ? '1' : ''}</Text>\n <View style={[styles.thumb, checked ? styles.thumbChecked : styles.thumbUnchecked]} />\n <Text style={[styles.bitText, styles.bitRight]}>{!checked ? '0' : ''}</Text>\n </View>\n {(label || sublabel) && (\n <View style={styles.textGroup}>\n {label && <Text style={styles.label}>{label}</Text>}\n {sublabel && <Text style={styles.sublabel}>{sublabel}</Text>}\n </View>\n )}\n </Pressable>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.sm,\n },\n disabled: {\n opacity: 0.4,\n },\n track: {\n width: 48,\n height: 24,\n borderRadius: borderRadius.sm,\n backgroundColor: colors.bg1,\n borderWidth: 1,\n borderColor: colors.border,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: 3,\n position: 'relative',\n },\n trackChecked: {\n borderColor: colors.accent,\n backgroundColor: colors.accentDim,\n },\n thumb: {\n width: 18,\n height: 18,\n borderRadius: borderRadius.sm - 2,\n backgroundColor: colors.borderLight,\n position: 'absolute',\n },\n thumbUnchecked: {\n left: 2,\n },\n thumbChecked: {\n right: 2,\n backgroundColor: colors.accent,\n },\n bitText: {\n fontFamily: 'monospace',\n fontSize: 9,\n fontWeight: '700',\n color: colors.text2,\n },\n bitLeft: {\n marginLeft: 3,\n },\n bitRight: {\n marginRight: 3,\n },\n textGroup: {\n flexDirection: 'column',\n },\n label: {\n fontFamily: 'monospace',\n fontSize: 13,\n color: colors.text0,\n fontWeight: '600',\n },\n sublabel: {\n fontSize: 11,\n color: colors.text2,\n },\n});\n","import React from 'react';\nimport { View, Text, Pressable, StyleSheet, StyleProp, ViewStyle, TextStyle } from 'react-native';\nimport { colors, spacing, borderRadius } from '../tokens';\n\nexport interface NativeColorPickerProps {\n value: string;\n onChange: (color: string) => void;\n presets?: string[];\n label?: string;\n jp?: string;\n coord?: string;\n style?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n}\n\nexport function ColorPicker({\n value,\n onChange,\n presets = [\n '#000000', '#ffffff', '#c49368', '#6a9e9e', '#a855f7',\n '#3b82f6', '#22c55e', '#ef4444', '#eab308', '#ec4899',\n '#64748b', '#1e293b'\n ],\n label,\n jp,\n coord,\n style,\n labelStyle,\n}: NativeColorPickerProps) {\n return (\n <View style={[styles.container, style]}>\n {(label || jp || coord) && (\n <View style={styles.header}>\n <View style={styles.labelGroup}>\n {label && <Text style={[styles.label, labelStyle]}>{label}</Text>}\n {jp && <Text style={styles.jp}>{jp}</Text>}\n {coord && <Text style={styles.coord}>[{coord}]</Text>}\n </View>\n <Text style={styles.hexValue}>{value.toUpperCase()}</Text>\n </View>\n )}\n\n <View style={styles.palette}>\n {presets.map((color) => {\n const isSelected = value.toLowerCase() === color.toLowerCase();\n return (\n <Pressable\n key={color}\n onPress={() => onChange(color)}\n style={[\n styles.swatch,\n { backgroundColor: color },\n isSelected && styles.swatchSelected,\n ]}\n />\n );\n })}\n </View>\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n marginVertical: spacing.sm,\n },\n header: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'baseline',\n marginBottom: spacing.xs,\n },\n labelGroup: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: spacing.xs,\n },\n label: {\n fontFamily: 'monospace',\n fontSize: 11,\n fontWeight: '700',\n color: colors.text1,\n textTransform: 'uppercase',\n },\n jp: {\n fontSize: 10,\n color: colors.text3,\n },\n coord: {\n fontFamily: 'monospace',\n fontSize: 9,\n color: colors.accent,\n },\n hexValue: {\n fontFamily: 'monospace',\n fontSize: 11,\n color: colors.accent,\n fontWeight: '700',\n },\n palette: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: spacing.xs,\n },\n swatch: {\n width: 28,\n height: 28,\n borderRadius: borderRadius.sm,\n borderWidth: 1,\n borderColor: 'rgba(255, 255, 255, 0.2)',\n },\n swatchSelected: {\n borderColor: '#ffffff',\n borderWidth: 2,\n transform: [{ scale: 1.1 }],\n },\n});\n"],"mappings":"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","names":["import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles","import_react_native","import_jsx_runtime","styles"]}
|
package/dist/native.mjs
CHANGED
|
@@ -10,9 +10,11 @@ import {
|
|
|
10
10
|
Text,
|
|
11
11
|
StyleSheet
|
|
12
12
|
} from "react-native";
|
|
13
|
-
import { jsx } from "react/jsx-runtime";
|
|
13
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
function Button({
|
|
15
15
|
label,
|
|
16
|
+
icon,
|
|
17
|
+
children,
|
|
16
18
|
variant = "outline",
|
|
17
19
|
size = "md",
|
|
18
20
|
style,
|
|
@@ -20,7 +22,7 @@ function Button({
|
|
|
20
22
|
disabled,
|
|
21
23
|
...props
|
|
22
24
|
}) {
|
|
23
|
-
return /* @__PURE__ */
|
|
25
|
+
return /* @__PURE__ */ jsxs(
|
|
24
26
|
Pressable,
|
|
25
27
|
{
|
|
26
28
|
disabled,
|
|
@@ -33,19 +35,23 @@ function Button({
|
|
|
33
35
|
style
|
|
34
36
|
],
|
|
35
37
|
...props,
|
|
36
|
-
children:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
children: [
|
|
39
|
+
icon && /* @__PURE__ */ jsx(Fragment, { children: icon }),
|
|
40
|
+
children ? children : label ? /* @__PURE__ */ jsx(
|
|
41
|
+
Text,
|
|
42
|
+
{
|
|
43
|
+
style: [
|
|
44
|
+
styles.text,
|
|
45
|
+
styles[`text_${variant}`],
|
|
46
|
+
styles[`textSize_${size}`],
|
|
47
|
+
disabled && styles.textDisabled,
|
|
48
|
+
icon ? styles.textWithIcon : null,
|
|
49
|
+
textStyle
|
|
50
|
+
],
|
|
51
|
+
children: label
|
|
52
|
+
}
|
|
53
|
+
) : null
|
|
54
|
+
]
|
|
49
55
|
}
|
|
50
56
|
);
|
|
51
57
|
}
|
|
@@ -54,7 +60,8 @@ var styles = StyleSheet.create({
|
|
|
54
60
|
borderRadius: borderRadius.sm,
|
|
55
61
|
alignItems: "center",
|
|
56
62
|
justifyContent: "center",
|
|
57
|
-
flexDirection: "row"
|
|
63
|
+
flexDirection: "row",
|
|
64
|
+
gap: spacing.xs
|
|
58
65
|
},
|
|
59
66
|
size_sm: {
|
|
60
67
|
paddingVertical: spacing.xs,
|
|
@@ -92,6 +99,9 @@ var styles = StyleSheet.create({
|
|
|
92
99
|
fontFamily: "monospace",
|
|
93
100
|
fontWeight: "600"
|
|
94
101
|
},
|
|
102
|
+
textWithIcon: {
|
|
103
|
+
marginLeft: 2
|
|
104
|
+
},
|
|
95
105
|
textSize_sm: {
|
|
96
106
|
fontSize: 12
|
|
97
107
|
},
|
|
@@ -120,14 +130,14 @@ var styles = StyleSheet.create({
|
|
|
120
130
|
|
|
121
131
|
// src/native/BracketCard.tsx
|
|
122
132
|
import { View, StyleSheet as StyleSheet2 } from "react-native";
|
|
123
|
-
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
133
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
124
134
|
function BracketCard({
|
|
125
135
|
active = false,
|
|
126
136
|
style,
|
|
127
137
|
children,
|
|
128
138
|
...props
|
|
129
139
|
}) {
|
|
130
|
-
return /* @__PURE__ */
|
|
140
|
+
return /* @__PURE__ */ jsxs2(
|
|
131
141
|
View,
|
|
132
142
|
{
|
|
133
143
|
style: [
|
|
@@ -287,12 +297,12 @@ var styles4 = StyleSheet4.create({
|
|
|
287
297
|
|
|
288
298
|
// src/native/TechLabel.tsx
|
|
289
299
|
import { View as View4, Text as Text3, StyleSheet as StyleSheet5 } from "react-native";
|
|
290
|
-
import { jsx as jsx5, jsxs as
|
|
300
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
291
301
|
function TechLabel({ label, jp, coord, style }) {
|
|
292
|
-
return /* @__PURE__ */
|
|
302
|
+
return /* @__PURE__ */ jsxs3(View4, { style: [styles5.container, style], children: [
|
|
293
303
|
/* @__PURE__ */ jsx5(Text3, { style: styles5.label, children: label }),
|
|
294
304
|
jp && /* @__PURE__ */ jsx5(Text3, { style: styles5.jp, children: jp }),
|
|
295
|
-
coord && /* @__PURE__ */
|
|
305
|
+
coord && /* @__PURE__ */ jsxs3(Text3, { style: styles5.coord, children: [
|
|
296
306
|
"[",
|
|
297
307
|
coord,
|
|
298
308
|
"]"
|
|
@@ -325,7 +335,7 @@ var styles5 = StyleSheet5.create({
|
|
|
325
335
|
|
|
326
336
|
// src/native/CyberSwitch.tsx
|
|
327
337
|
import { View as View5, Text as Text4, Pressable as Pressable2, StyleSheet as StyleSheet6 } from "react-native";
|
|
328
|
-
import { jsx as jsx6, jsxs as
|
|
338
|
+
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
329
339
|
function CyberSwitch({
|
|
330
340
|
checked,
|
|
331
341
|
onChange,
|
|
@@ -334,19 +344,19 @@ function CyberSwitch({
|
|
|
334
344
|
disabled = false,
|
|
335
345
|
style
|
|
336
346
|
}) {
|
|
337
|
-
return /* @__PURE__ */
|
|
347
|
+
return /* @__PURE__ */ jsxs4(
|
|
338
348
|
Pressable2,
|
|
339
349
|
{
|
|
340
350
|
disabled,
|
|
341
351
|
onPress: () => onChange(!checked),
|
|
342
352
|
style: [styles6.container, disabled && styles6.disabled, style],
|
|
343
353
|
children: [
|
|
344
|
-
/* @__PURE__ */
|
|
354
|
+
/* @__PURE__ */ jsxs4(View5, { style: [styles6.track, checked && styles6.trackChecked], children: [
|
|
345
355
|
/* @__PURE__ */ jsx6(Text4, { style: [styles6.bitText, styles6.bitLeft], children: checked ? "1" : "" }),
|
|
346
356
|
/* @__PURE__ */ jsx6(View5, { style: [styles6.thumb, checked ? styles6.thumbChecked : styles6.thumbUnchecked] }),
|
|
347
357
|
/* @__PURE__ */ jsx6(Text4, { style: [styles6.bitText, styles6.bitRight], children: !checked ? "0" : "" })
|
|
348
358
|
] }),
|
|
349
|
-
(label || sublabel) && /* @__PURE__ */
|
|
359
|
+
(label || sublabel) && /* @__PURE__ */ jsxs4(View5, { style: styles6.textGroup, children: [
|
|
350
360
|
label && /* @__PURE__ */ jsx6(Text4, { style: styles6.label, children: label }),
|
|
351
361
|
sublabel && /* @__PURE__ */ jsx6(Text4, { style: styles6.sublabel, children: sublabel })
|
|
352
362
|
] })
|
|
@@ -420,10 +430,123 @@ var styles6 = StyleSheet6.create({
|
|
|
420
430
|
color: colors.text2
|
|
421
431
|
}
|
|
422
432
|
});
|
|
433
|
+
|
|
434
|
+
// src/native/ColorPicker.tsx
|
|
435
|
+
import { View as View6, Text as Text5, Pressable as Pressable3, StyleSheet as StyleSheet7 } from "react-native";
|
|
436
|
+
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
437
|
+
function ColorPicker({
|
|
438
|
+
value,
|
|
439
|
+
onChange,
|
|
440
|
+
presets = [
|
|
441
|
+
"#000000",
|
|
442
|
+
"#ffffff",
|
|
443
|
+
"#c49368",
|
|
444
|
+
"#6a9e9e",
|
|
445
|
+
"#a855f7",
|
|
446
|
+
"#3b82f6",
|
|
447
|
+
"#22c55e",
|
|
448
|
+
"#ef4444",
|
|
449
|
+
"#eab308",
|
|
450
|
+
"#ec4899",
|
|
451
|
+
"#64748b",
|
|
452
|
+
"#1e293b"
|
|
453
|
+
],
|
|
454
|
+
label,
|
|
455
|
+
jp,
|
|
456
|
+
coord,
|
|
457
|
+
style,
|
|
458
|
+
labelStyle
|
|
459
|
+
}) {
|
|
460
|
+
return /* @__PURE__ */ jsxs5(View6, { style: [styles7.container, style], children: [
|
|
461
|
+
(label || jp || coord) && /* @__PURE__ */ jsxs5(View6, { style: styles7.header, children: [
|
|
462
|
+
/* @__PURE__ */ jsxs5(View6, { style: styles7.labelGroup, children: [
|
|
463
|
+
label && /* @__PURE__ */ jsx7(Text5, { style: [styles7.label, labelStyle], children: label }),
|
|
464
|
+
jp && /* @__PURE__ */ jsx7(Text5, { style: styles7.jp, children: jp }),
|
|
465
|
+
coord && /* @__PURE__ */ jsxs5(Text5, { style: styles7.coord, children: [
|
|
466
|
+
"[",
|
|
467
|
+
coord,
|
|
468
|
+
"]"
|
|
469
|
+
] })
|
|
470
|
+
] }),
|
|
471
|
+
/* @__PURE__ */ jsx7(Text5, { style: styles7.hexValue, children: value.toUpperCase() })
|
|
472
|
+
] }),
|
|
473
|
+
/* @__PURE__ */ jsx7(View6, { style: styles7.palette, children: presets.map((color) => {
|
|
474
|
+
const isSelected = value.toLowerCase() === color.toLowerCase();
|
|
475
|
+
return /* @__PURE__ */ jsx7(
|
|
476
|
+
Pressable3,
|
|
477
|
+
{
|
|
478
|
+
onPress: () => onChange(color),
|
|
479
|
+
style: [
|
|
480
|
+
styles7.swatch,
|
|
481
|
+
{ backgroundColor: color },
|
|
482
|
+
isSelected && styles7.swatchSelected
|
|
483
|
+
]
|
|
484
|
+
},
|
|
485
|
+
color
|
|
486
|
+
);
|
|
487
|
+
}) })
|
|
488
|
+
] });
|
|
489
|
+
}
|
|
490
|
+
var styles7 = StyleSheet7.create({
|
|
491
|
+
container: {
|
|
492
|
+
marginVertical: spacing.sm
|
|
493
|
+
},
|
|
494
|
+
header: {
|
|
495
|
+
flexDirection: "row",
|
|
496
|
+
justifyContent: "space-between",
|
|
497
|
+
alignItems: "baseline",
|
|
498
|
+
marginBottom: spacing.xs
|
|
499
|
+
},
|
|
500
|
+
labelGroup: {
|
|
501
|
+
flexDirection: "row",
|
|
502
|
+
alignItems: "center",
|
|
503
|
+
gap: spacing.xs
|
|
504
|
+
},
|
|
505
|
+
label: {
|
|
506
|
+
fontFamily: "monospace",
|
|
507
|
+
fontSize: 11,
|
|
508
|
+
fontWeight: "700",
|
|
509
|
+
color: colors.text1,
|
|
510
|
+
textTransform: "uppercase"
|
|
511
|
+
},
|
|
512
|
+
jp: {
|
|
513
|
+
fontSize: 10,
|
|
514
|
+
color: colors.text3
|
|
515
|
+
},
|
|
516
|
+
coord: {
|
|
517
|
+
fontFamily: "monospace",
|
|
518
|
+
fontSize: 9,
|
|
519
|
+
color: colors.accent
|
|
520
|
+
},
|
|
521
|
+
hexValue: {
|
|
522
|
+
fontFamily: "monospace",
|
|
523
|
+
fontSize: 11,
|
|
524
|
+
color: colors.accent,
|
|
525
|
+
fontWeight: "700"
|
|
526
|
+
},
|
|
527
|
+
palette: {
|
|
528
|
+
flexDirection: "row",
|
|
529
|
+
flexWrap: "wrap",
|
|
530
|
+
gap: spacing.xs
|
|
531
|
+
},
|
|
532
|
+
swatch: {
|
|
533
|
+
width: 28,
|
|
534
|
+
height: 28,
|
|
535
|
+
borderRadius: borderRadius.sm,
|
|
536
|
+
borderWidth: 1,
|
|
537
|
+
borderColor: "rgba(255, 255, 255, 0.2)"
|
|
538
|
+
},
|
|
539
|
+
swatchSelected: {
|
|
540
|
+
borderColor: "#ffffff",
|
|
541
|
+
borderWidth: 2,
|
|
542
|
+
transform: [{ scale: 1.1 }]
|
|
543
|
+
}
|
|
544
|
+
});
|
|
423
545
|
export {
|
|
424
546
|
Badge,
|
|
425
547
|
BracketCard,
|
|
426
548
|
Button,
|
|
549
|
+
ColorPicker,
|
|
427
550
|
CyberSwitch,
|
|
428
551
|
Dot,
|
|
429
552
|
TechLabel
|