@krpkg/ui 0.0.0-stage → 0.3.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.
Files changed (77) hide show
  1. package/README.md +138 -2
  2. package/assets/android-background-alley.svg +3 -0
  3. package/assets/android-background-clean.svg +3 -0
  4. package/assets/android-background-default.svg +3 -0
  5. package/assets/android-background-mono.svg +3 -0
  6. package/assets/android-background-teal.svg +3 -0
  7. package/assets/android-foreground-alley.svg +3 -0
  8. package/assets/android-foreground-clean.svg +3 -0
  9. package/assets/android-foreground-default.svg +3 -0
  10. package/assets/android-foreground-mono.svg +3 -0
  11. package/assets/android-foreground-teal.svg +3 -0
  12. package/assets/android-icon-background.png +0 -0
  13. package/assets/android-icon-foreground.png +0 -0
  14. package/assets/android-icon-monochrome.png +0 -0
  15. package/assets/apple-touch-icon-120x120.png +0 -0
  16. package/assets/apple-touch-icon-152x152.png +0 -0
  17. package/assets/apple-touch-icon-167x167.png +0 -0
  18. package/assets/apple-touch-icon-180x180.png +0 -0
  19. package/assets/apple-touch-icon.png +0 -0
  20. package/assets/favicon-128x128.png +0 -0
  21. package/assets/favicon-16x16.png +0 -0
  22. package/assets/favicon-32x32.png +0 -0
  23. package/assets/favicon-48x48.png +0 -0
  24. package/assets/favicon-64x64.png +0 -0
  25. package/assets/favicon-96x96.png +0 -0
  26. package/assets/favicon.ico +0 -0
  27. package/assets/favicon.png +0 -0
  28. package/assets/favicon.svg +11 -0
  29. package/assets/icon-alley.png +0 -0
  30. package/assets/icon-teal.png +0 -0
  31. package/assets/icon.png +0 -0
  32. package/assets/logo-alley.svg +11 -0
  33. package/assets/logo-badge.svg +11 -0
  34. package/assets/logo-clean.svg +11 -0
  35. package/assets/logo-default.svg +11 -0
  36. package/assets/logo-icon.svg +3 -0
  37. package/assets/logo-mono.svg +11 -0
  38. package/assets/logo-teal.svg +11 -0
  39. package/assets/logo.svg +3 -0
  40. package/assets/pwa-192x192.png +0 -0
  41. package/assets/pwa-256x256.png +0 -0
  42. package/assets/pwa-384x384.png +0 -0
  43. package/assets/pwa-512x512.png +0 -0
  44. package/assets/pwa-maskable-192x192.png +0 -0
  45. package/assets/pwa-maskable-512x512.png +0 -0
  46. package/assets/splash-icon.png +0 -0
  47. package/dist/chunk-HAD2NPEW.mjs +155 -0
  48. package/dist/chunk-HAD2NPEW.mjs.map +1 -0
  49. package/dist/chunk-ZJSL4I3W.mjs +38 -0
  50. package/dist/chunk-ZJSL4I3W.mjs.map +1 -0
  51. package/dist/index.css +2053 -0
  52. package/dist/index.css.map +1 -0
  53. package/dist/index.d.mts +245 -0
  54. package/dist/index.d.ts +245 -0
  55. package/dist/index.js +1331 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/index.mjs +1110 -0
  58. package/dist/index.mjs.map +1 -0
  59. package/dist/native.d.mts +51 -0
  60. package/dist/native.d.ts +51 -0
  61. package/dist/native.js +514 -0
  62. package/dist/native.js.map +1 -0
  63. package/dist/native.mjs +431 -0
  64. package/dist/native.mjs.map +1 -0
  65. package/dist/tokens.d.mts +183 -0
  66. package/dist/tokens.d.ts +183 -0
  67. package/dist/tokens.js +185 -0
  68. package/dist/tokens.js.map +1 -0
  69. package/dist/tokens.mjs +19 -0
  70. package/dist/tokens.mjs.map +1 -0
  71. package/dist/utils.d.mts +13 -0
  72. package/dist/utils.d.ts +13 -0
  73. package/dist/utils.js +65 -0
  74. package/dist/utils.js.map +1 -0
  75. package/dist/utils.mjs +9 -0
  76. package/dist/utils.mjs.map +1 -0
  77. package/package.json +71 -4
package/dist/native.js ADDED
@@ -0,0 +1,514 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/native/index.ts
21
+ var native_exports = {};
22
+ __export(native_exports, {
23
+ Badge: () => Badge,
24
+ BracketCard: () => BracketCard,
25
+ Button: () => Button,
26
+ CyberSwitch: () => CyberSwitch,
27
+ Dot: () => Dot,
28
+ TechLabel: () => TechLabel
29
+ });
30
+ module.exports = __toCommonJS(native_exports);
31
+
32
+ // src/native/Button.tsx
33
+ var import_react_native = require("react-native");
34
+
35
+ // src/tokens.ts
36
+ var colors = {
37
+ // Baseline / Obsidian Dark
38
+ bg: "#0a0a0c",
39
+ bg0: "#0a0a0c",
40
+ bg1: "#111114",
41
+ bg2: "#18181c",
42
+ bg3: "#1f1f24",
43
+ bgCard: "#121215",
44
+ bgCardHover: "#18181d",
45
+ bgCardActive: "#222228",
46
+ border: "#2a2a30",
47
+ borderSubtle: "#1e1e24",
48
+ borderLight: "#3f3f46",
49
+ text: "#f4f4f5",
50
+ text0: "#e2ded6",
51
+ text1: "#b0aca4",
52
+ text2: "#706c66",
53
+ text3: "#4a4844",
54
+ textMuted: "#a1a1aa",
55
+ textDim: "#71717a",
56
+ // Accents & Signals
57
+ accent: "#c49368",
58
+ accentHover: "#d4a478",
59
+ accentDim: "rgba(196, 147, 104, 0.12)",
60
+ accentMuted: "rgba(224, 169, 109, 0.15)",
61
+ teal: "#6a9e9e",
62
+ tealDim: "rgba(106, 158, 158, 0.12)",
63
+ warm: "#a08060",
64
+ redSoft: "#b05050",
65
+ greenSoft: "#6a9a6a",
66
+ danger: "#ef4444",
67
+ success: "#22c55e",
68
+ blue: "#3b82f6",
69
+ purple: "#a855f7",
70
+ // Sticky Note Themes
71
+ sticky1: "#e8e0b8",
72
+ sticky2: "#e0c8c0",
73
+ sticky3: "#c0d0d8",
74
+ sticky4: "#c8d8c0"
75
+ };
76
+ var spacing = {
77
+ none: 0,
78
+ xs: 4,
79
+ sm: 8,
80
+ md: 12,
81
+ lg: 16,
82
+ xl: 24,
83
+ xxl: 32,
84
+ xxxl: 48
85
+ };
86
+ var borderRadius = {
87
+ none: 0,
88
+ sm: 4,
89
+ md: 6,
90
+ lg: 10,
91
+ full: 9999
92
+ };
93
+
94
+ // src/native/Button.tsx
95
+ var import_jsx_runtime = require("react/jsx-runtime");
96
+ function Button({
97
+ label,
98
+ variant = "outline",
99
+ size = "md",
100
+ style,
101
+ textStyle,
102
+ disabled,
103
+ ...props
104
+ }) {
105
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
106
+ import_react_native.Pressable,
107
+ {
108
+ disabled,
109
+ style: ({ pressed }) => [
110
+ styles.base,
111
+ styles[variant],
112
+ styles[`size_${size}`],
113
+ pressed && !disabled && styles.pressed,
114
+ disabled && styles.disabled,
115
+ style
116
+ ],
117
+ ...props,
118
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
119
+ import_react_native.Text,
120
+ {
121
+ style: [
122
+ styles.text,
123
+ styles[`text_${variant}`],
124
+ styles[`textSize_${size}`],
125
+ disabled && styles.textDisabled,
126
+ textStyle
127
+ ],
128
+ children: label
129
+ }
130
+ )
131
+ }
132
+ );
133
+ }
134
+ var styles = import_react_native.StyleSheet.create({
135
+ base: {
136
+ borderRadius: borderRadius.sm,
137
+ alignItems: "center",
138
+ justifyContent: "center",
139
+ flexDirection: "row"
140
+ },
141
+ size_sm: {
142
+ paddingVertical: spacing.xs,
143
+ paddingHorizontal: spacing.sm
144
+ },
145
+ size_md: {
146
+ paddingVertical: spacing.sm,
147
+ paddingHorizontal: spacing.lg
148
+ },
149
+ size_lg: {
150
+ paddingVertical: spacing.md,
151
+ paddingHorizontal: spacing.xl
152
+ },
153
+ primary: {
154
+ backgroundColor: colors.accent
155
+ },
156
+ outline: {
157
+ borderWidth: 1,
158
+ borderColor: colors.accent,
159
+ backgroundColor: "transparent"
160
+ },
161
+ ghost: {
162
+ backgroundColor: "transparent"
163
+ },
164
+ danger: {
165
+ backgroundColor: colors.danger
166
+ },
167
+ pressed: {
168
+ opacity: 0.75
169
+ },
170
+ disabled: {
171
+ opacity: 0.4
172
+ },
173
+ text: {
174
+ fontFamily: "monospace",
175
+ fontWeight: "600"
176
+ },
177
+ textSize_sm: {
178
+ fontSize: 12
179
+ },
180
+ textSize_md: {
181
+ fontSize: 14
182
+ },
183
+ textSize_lg: {
184
+ fontSize: 16
185
+ },
186
+ text_primary: {
187
+ color: colors.bg0
188
+ },
189
+ text_outline: {
190
+ color: colors.accent
191
+ },
192
+ text_ghost: {
193
+ color: colors.text0
194
+ },
195
+ text_danger: {
196
+ color: "#ffffff"
197
+ },
198
+ textDisabled: {
199
+ color: colors.textMuted
200
+ }
201
+ });
202
+
203
+ // src/native/BracketCard.tsx
204
+ var import_react_native2 = require("react-native");
205
+ var import_jsx_runtime2 = require("react/jsx-runtime");
206
+ function BracketCard({
207
+ active = false,
208
+ style,
209
+ children,
210
+ ...props
211
+ }) {
212
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
213
+ import_react_native2.View,
214
+ {
215
+ style: [
216
+ styles2.card,
217
+ active && styles2.active,
218
+ style
219
+ ],
220
+ ...props,
221
+ children: [
222
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native2.View, { style: [styles2.corner, styles2.cornerTL, active && styles2.cornerActive] }),
223
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native2.View, { style: [styles2.corner, styles2.cornerTR, active && styles2.cornerActive] }),
224
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native2.View, { style: [styles2.corner, styles2.cornerBL, active && styles2.cornerActive] }),
225
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_native2.View, { style: [styles2.corner, styles2.cornerBR, active && styles2.cornerActive] }),
226
+ children
227
+ ]
228
+ }
229
+ );
230
+ }
231
+ var styles2 = import_react_native2.StyleSheet.create({
232
+ card: {
233
+ backgroundColor: colors.bgCard,
234
+ borderWidth: 1,
235
+ borderColor: colors.borderSubtle,
236
+ borderRadius: borderRadius.md,
237
+ padding: spacing.md,
238
+ position: "relative"
239
+ },
240
+ active: {
241
+ borderColor: colors.accent
242
+ },
243
+ corner: {
244
+ position: "absolute",
245
+ width: 6,
246
+ height: 6,
247
+ borderColor: colors.textDim
248
+ },
249
+ cornerActive: {
250
+ borderColor: colors.accent
251
+ },
252
+ cornerTL: {
253
+ top: -1,
254
+ left: -1,
255
+ borderTopWidth: 2,
256
+ borderLeftWidth: 2
257
+ },
258
+ cornerTR: {
259
+ top: -1,
260
+ right: -1,
261
+ borderTopWidth: 2,
262
+ borderRightWidth: 2
263
+ },
264
+ cornerBL: {
265
+ bottom: -1,
266
+ left: -1,
267
+ borderBottomWidth: 2,
268
+ borderLeftWidth: 2
269
+ },
270
+ cornerBR: {
271
+ bottom: -1,
272
+ right: -1,
273
+ borderBottomWidth: 2,
274
+ borderRightWidth: 2
275
+ }
276
+ });
277
+
278
+ // src/native/Badge.tsx
279
+ var import_react_native3 = require("react-native");
280
+ var import_jsx_runtime3 = require("react/jsx-runtime");
281
+ function Badge({ label, variant = "default", style }) {
282
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native3.View, { style: [styles3.badge, styles3[variant], style], children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_native3.Text, { style: [styles3.text, styles3[`text_${variant}`]], children: label }) });
283
+ }
284
+ var styles3 = import_react_native3.StyleSheet.create({
285
+ badge: {
286
+ paddingHorizontal: spacing.sm,
287
+ paddingVertical: 2,
288
+ borderRadius: borderRadius.sm,
289
+ alignSelf: "flex-start"
290
+ },
291
+ default: {
292
+ backgroundColor: colors.borderSubtle
293
+ },
294
+ accent: {
295
+ backgroundColor: colors.accentDim,
296
+ borderWidth: 1,
297
+ borderColor: colors.accent
298
+ },
299
+ teal: {
300
+ backgroundColor: colors.tealDim,
301
+ borderWidth: 1,
302
+ borderColor: colors.teal
303
+ },
304
+ purple: {
305
+ backgroundColor: "rgba(168, 85, 247, 0.15)",
306
+ borderWidth: 1,
307
+ borderColor: colors.purple
308
+ },
309
+ outline: {
310
+ borderWidth: 1,
311
+ borderColor: colors.borderLight,
312
+ backgroundColor: "transparent"
313
+ },
314
+ text: {
315
+ fontSize: 11,
316
+ fontFamily: "monospace",
317
+ fontWeight: "700",
318
+ textTransform: "uppercase"
319
+ },
320
+ text_default: {
321
+ color: colors.text1
322
+ },
323
+ text_accent: {
324
+ color: colors.accent
325
+ },
326
+ text_teal: {
327
+ color: colors.teal
328
+ },
329
+ text_purple: {
330
+ color: colors.purple
331
+ },
332
+ text_outline: {
333
+ color: colors.textDim
334
+ }
335
+ });
336
+
337
+ // src/native/Dot.tsx
338
+ var import_react_native4 = require("react-native");
339
+ var import_jsx_runtime4 = require("react/jsx-runtime");
340
+ function Dot({ color = "accent", size = 6, style }) {
341
+ const colorMap = {
342
+ accent: colors.accent,
343
+ green: colors.success,
344
+ red: colors.danger,
345
+ teal: colors.teal,
346
+ purple: colors.purple
347
+ };
348
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
349
+ import_react_native4.View,
350
+ {
351
+ style: [
352
+ styles4.dot,
353
+ {
354
+ width: size,
355
+ height: size,
356
+ borderRadius: size / 2,
357
+ backgroundColor: colorMap[color]
358
+ },
359
+ style
360
+ ]
361
+ }
362
+ );
363
+ }
364
+ var styles4 = import_react_native4.StyleSheet.create({
365
+ dot: {
366
+ alignSelf: "center"
367
+ }
368
+ });
369
+
370
+ // src/native/TechLabel.tsx
371
+ var import_react_native5 = require("react-native");
372
+ var import_jsx_runtime5 = require("react/jsx-runtime");
373
+ function TechLabel({ label, jp, coord, style }) {
374
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_native5.View, { style: [styles5.container, style], children: [
375
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native5.Text, { style: styles5.label, children: label }),
376
+ jp && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react_native5.Text, { style: styles5.jp, children: jp }),
377
+ coord && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_react_native5.Text, { style: styles5.coord, children: [
378
+ "[",
379
+ coord,
380
+ "]"
381
+ ] })
382
+ ] });
383
+ }
384
+ var styles5 = import_react_native5.StyleSheet.create({
385
+ container: {
386
+ flexDirection: "row",
387
+ alignItems: "center",
388
+ gap: spacing.xs
389
+ },
390
+ label: {
391
+ fontFamily: "monospace",
392
+ fontSize: 12,
393
+ color: colors.text0,
394
+ fontWeight: "700",
395
+ letterSpacing: 0.5
396
+ },
397
+ jp: {
398
+ fontSize: 11,
399
+ color: colors.text2
400
+ },
401
+ coord: {
402
+ fontFamily: "monospace",
403
+ fontSize: 10,
404
+ color: colors.accent
405
+ }
406
+ });
407
+
408
+ // src/native/CyberSwitch.tsx
409
+ var import_react_native6 = require("react-native");
410
+ var import_jsx_runtime6 = require("react/jsx-runtime");
411
+ function CyberSwitch({
412
+ checked,
413
+ onChange,
414
+ label,
415
+ sublabel,
416
+ disabled = false,
417
+ style
418
+ }) {
419
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
420
+ import_react_native6.Pressable,
421
+ {
422
+ disabled,
423
+ onPress: () => onChange(!checked),
424
+ style: [styles6.container, disabled && styles6.disabled, style],
425
+ children: [
426
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_native6.View, { style: [styles6.track, checked && styles6.trackChecked], children: [
427
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native6.Text, { style: [styles6.bitText, styles6.bitLeft], children: checked ? "1" : "" }),
428
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native6.View, { style: [styles6.thumb, checked ? styles6.thumbChecked : styles6.thumbUnchecked] }),
429
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native6.Text, { style: [styles6.bitText, styles6.bitRight], children: !checked ? "0" : "" })
430
+ ] }),
431
+ (label || sublabel) && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react_native6.View, { style: styles6.textGroup, children: [
432
+ label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native6.Text, { style: styles6.label, children: label }),
433
+ sublabel && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_native6.Text, { style: styles6.sublabel, children: sublabel })
434
+ ] })
435
+ ]
436
+ }
437
+ );
438
+ }
439
+ var styles6 = import_react_native6.StyleSheet.create({
440
+ container: {
441
+ flexDirection: "row",
442
+ alignItems: "center",
443
+ gap: spacing.sm
444
+ },
445
+ disabled: {
446
+ opacity: 0.4
447
+ },
448
+ track: {
449
+ width: 48,
450
+ height: 24,
451
+ borderRadius: borderRadius.sm,
452
+ backgroundColor: colors.bg1,
453
+ borderWidth: 1,
454
+ borderColor: colors.border,
455
+ flexDirection: "row",
456
+ alignItems: "center",
457
+ justifyContent: "space-between",
458
+ paddingHorizontal: 3,
459
+ position: "relative"
460
+ },
461
+ trackChecked: {
462
+ borderColor: colors.accent,
463
+ backgroundColor: colors.accentDim
464
+ },
465
+ thumb: {
466
+ width: 18,
467
+ height: 18,
468
+ borderRadius: borderRadius.sm - 2,
469
+ backgroundColor: colors.borderLight,
470
+ position: "absolute"
471
+ },
472
+ thumbUnchecked: {
473
+ left: 2
474
+ },
475
+ thumbChecked: {
476
+ right: 2,
477
+ backgroundColor: colors.accent
478
+ },
479
+ bitText: {
480
+ fontFamily: "monospace",
481
+ fontSize: 9,
482
+ fontWeight: "700",
483
+ color: colors.text2
484
+ },
485
+ bitLeft: {
486
+ marginLeft: 3
487
+ },
488
+ bitRight: {
489
+ marginRight: 3
490
+ },
491
+ textGroup: {
492
+ flexDirection: "column"
493
+ },
494
+ label: {
495
+ fontFamily: "monospace",
496
+ fontSize: 13,
497
+ color: colors.text0,
498
+ fontWeight: "600"
499
+ },
500
+ sublabel: {
501
+ fontSize: 11,
502
+ color: colors.text2
503
+ }
504
+ });
505
+ // Annotate the CommonJS export names for ESM import in node:
506
+ 0 && (module.exports = {
507
+ Badge,
508
+ BracketCard,
509
+ Button,
510
+ CyberSwitch,
511
+ Dot,
512
+ TechLabel
513
+ });
514
+ //# sourceMappingURL=native.js.map
@@ -0,0 +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"]}