managarten/apps/picture/packages/design-tokens/native/theme.js
Till-JS 60b7cad508 🔧 chore: gitignore build artifacts and misc updates
- Add drizzle.config.* compiled files to gitignore
- Add packages/*/src/*.js patterns for compiled TS
- Update picture design tokens
- Update matrix-tts-bot storage state
- Add microservices API overview doc
2026-01-29 18:37:42 +01:00

577 lines
12 KiB
JavaScript

"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// native/theme.ts
var theme_exports = {};
__export(theme_exports, {
createNativeTheme: () => createNativeTheme,
getThemeColors: () => getThemeColors,
getThemeVariants: () => getThemeVariants,
isValidThemeVariant: () => isValidThemeVariant
});
module.exports = __toCommonJS(theme_exports);
// src/colors.ts
var baseColors = {
// Pure colors
black: "#000000",
white: "#ffffff",
// Grays
gray: {
50: "#f9fafb",
100: "#f3f4f6",
200: "#e5e7eb",
300: "#d1d5db",
400: "#9ca3af",
500: "#6b7280",
600: "#4b5563",
700: "#374151",
800: "#1f2937",
900: "#111827",
950: "#0a0a0a"
},
// Indigo (Default primary)
indigo: {
200: "#c7d2fe",
300: "#a5b4fc",
400: "#818cf8",
500: "#6366f1",
600: "#4f46e5",
700: "#4338ca",
800: "#3730a3"
},
// Violet (Default secondary)
violet: {
300: "#c4b5fd",
400: "#a78bfa",
500: "#8b5cf6",
600: "#7c3aed"
},
// Orange (Sunset theme)
orange: {
300: "#fdba74",
400: "#fb923c",
500: "#f97316",
600: "#ea580c"
},
// Pink (Sunset theme)
pink: {
300: "#f9a8d4",
400: "#f472b6",
500: "#ec4899",
600: "#db2777"
},
// Sky (Ocean theme)
sky: {
300: "#7dd3fc",
400: "#38bdf8",
500: "#0ea5e9",
600: "#0284c7"
},
// Emerald (Ocean theme + status)
emerald: {
300: "#6ee7b7",
400: "#34d399",
500: "#10b981",
600: "#059669"
},
// Status colors
red: {
500: "#ef4444",
600: "#dc2626"
},
amber: {
500: "#f59e0b"
},
blue: {
500: "#3b82f6"
}
};
var semanticColors = {
/**
* Dark mode colors
*/
dark: {
// Backgrounds
background: baseColors.black,
surface: "#1a1a1a",
elevated: "#242424",
overlay: "rgba(0, 0, 0, 0.8)",
// Borders & Dividers
border: "#383838",
divider: "#2a2a2a",
// Input fields
input: {
background: "#1f1f1f",
border: "#383838",
text: baseColors.gray[100],
placeholder: baseColors.gray[500]
},
// Text colors
text: {
primary: baseColors.gray[100],
secondary: baseColors.gray[300],
tertiary: baseColors.gray[400],
disabled: baseColors.gray[500],
inverse: baseColors.black
},
// Primary brand color (Indigo)
primary: {
default: baseColors.indigo[400],
hover: baseColors.indigo[300],
active: baseColors.indigo[500],
light: baseColors.indigo[200],
dark: baseColors.indigo[600],
contrast: baseColors.white
},
// Secondary accent color (Violet)
secondary: {
default: baseColors.violet[400],
light: baseColors.violet[300],
dark: baseColors.violet[500],
contrast: baseColors.white
},
// Status colors
success: baseColors.emerald[500],
warning: baseColors.amber[500],
error: baseColors.red[500],
info: baseColors.blue[500],
// Semantic colors
favorite: baseColors.red[500],
like: baseColors.red[500],
tag: baseColors.indigo[400],
// Special UI elements
skeleton: "#2a2a2a",
shimmer: "#383838"
},
/**
* Light mode colors
*/
light: {
// Backgrounds
background: baseColors.white,
surface: baseColors.gray[50],
elevated: baseColors.white,
overlay: "rgba(0, 0, 0, 0.5)",
// Borders & Dividers
border: baseColors.gray[200],
divider: baseColors.gray[100],
// Input fields
input: {
background: baseColors.white,
border: baseColors.gray[300],
text: baseColors.gray[900],
placeholder: baseColors.gray[400]
},
// Text colors
text: {
primary: baseColors.gray[900],
secondary: baseColors.gray[700],
tertiary: baseColors.gray[500],
disabled: baseColors.gray[400],
inverse: baseColors.white
},
// Primary brand color (Indigo)
primary: {
default: baseColors.indigo[500],
hover: baseColors.indigo[600],
active: baseColors.indigo[700],
light: baseColors.indigo[400],
dark: baseColors.indigo[800],
contrast: baseColors.white
},
// Secondary accent color (Violet)
secondary: {
default: baseColors.violet[500],
light: baseColors.violet[400],
dark: baseColors.violet[600],
contrast: baseColors.white
},
// Status colors
success: baseColors.emerald[500],
warning: baseColors.amber[500],
error: baseColors.red[500],
info: baseColors.blue[500],
// Semantic colors
favorite: baseColors.red[500],
like: baseColors.red[500],
tag: baseColors.indigo[500],
// Special UI elements
skeleton: baseColors.gray[200],
shimmer: baseColors.gray[100]
}
};
// src/shadows.ts
var shadows = {
dark: {
sm: {
shadowColor: "#000",
shadowOffset: { width: 0, height: 1 },
shadowOpacity: 0.2,
shadowRadius: 2,
elevation: 2
// Android
},
md: {
shadowColor: "#000",
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.3,
shadowRadius: 6,
elevation: 4
},
lg: {
shadowColor: "#000",
shadowOffset: { width: 0, height: 10 },
shadowOpacity: 0.4,
shadowRadius: 15,
elevation: 8
}
},
light: {
sm: {
shadowColor: "#000",
shadowOffset: { width: 0, height: 1 },
shadowOpacity: 0.1,
shadowRadius: 2,
elevation: 2
},
md: {
shadowColor: "#000",
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.15,
shadowRadius: 6,
elevation: 4
},
lg: {
shadowColor: "#000",
shadowOffset: { width: 0, height: 10 },
shadowOpacity: 0.2,
shadowRadius: 15,
elevation: 8
}
}
};
var opacity = {
disabled: 0.5,
overlay: 0.8,
hover: 0.9,
pressed: 0.7
};
// src/themes/default.ts
var defaultTheme = {
name: "default",
displayName: "Indigo",
colors: {
light: semanticColors.light,
dark: semanticColors.dark
},
shadows,
opacity
};
// src/themes/sunset.ts
var sunsetTheme = {
name: "sunset",
displayName: "Sunset",
colors: {
light: semanticColors.light,
// Uses default light mode
dark: {
...semanticColors.dark,
// Override backgrounds for warmer tone
background: "#0a0a0a",
surface: "#1f1410",
elevated: "#2a1f1a",
// Override borders
border: "#3d2f28",
divider: "#2a1f1a",
// Override input
input: {
background: "#1a1410",
border: "#3d2f28",
text: "#fef3c7",
// amber-100
placeholder: "#92400e"
// amber-800
},
// Override text colors (warmer)
text: {
primary: "#fef3c7",
// amber-100
secondary: "#fcd34d",
// amber-300
tertiary: "#f59e0b",
// amber-500
disabled: "#92400e",
// amber-800
inverse: "#0a0a0a"
},
// Primary: Orange
primary: {
default: baseColors.orange[400],
hover: baseColors.orange[300],
active: baseColors.orange[500],
light: "#fed7aa",
// orange-200
dark: baseColors.orange[600],
contrast: baseColors.white
},
// Secondary: Pink
secondary: {
default: baseColors.pink[400],
light: baseColors.pink[300],
dark: baseColors.pink[500],
contrast: baseColors.white
},
// Status
success: baseColors.emerald[500],
warning: "#fbbf24",
// amber-400
error: "#f43f5e",
// rose-500
info: "#60a5fa",
// blue-400
// Semantic
favorite: "#f43f5e",
// rose-500
like: "#f43f5e",
// rose-500
tag: baseColors.orange[400],
// Special
skeleton: "#2a1f1a",
shimmer: "#3d2f28"
}
},
shadows,
opacity
};
// src/themes/ocean.ts
var oceanColors = {
teal: {
200: "#99f6e4",
300: "#5eead4",
400: "#2dd4bf",
500: "#14b8a6",
600: "#0d9488"
},
cyan: {
300: "#67e8f9",
400: "#22d3ee",
500: "#06b6d4"
},
slate: {
700: "#334155",
800: "#1e293b",
900: "#0f172a",
950: "#020617"
}
};
var oceanTheme = {
name: "ocean",
displayName: "Ocean",
colors: {
light: semanticColors.light,
// Uses default light mode
dark: {
...semanticColors.dark,
// Override backgrounds for cooler tone
background: oceanColors.slate[950],
surface: oceanColors.slate[900],
elevated: oceanColors.slate[800],
// Override borders
border: oceanColors.slate[700],
divider: oceanColors.slate[800],
// Override input
input: {
background: oceanColors.slate[900],
border: oceanColors.slate[700],
text: "#e0f2fe",
// sky-100
placeholder: "#0c4a6e"
// sky-900
},
// Override text colors (cooler)
text: {
primary: "#e0f2fe",
// sky-100
secondary: "#7dd3fc",
// sky-300
tertiary: "#38bdf8",
// sky-400
disabled: "#0c4a6e",
// sky-900
inverse: oceanColors.slate[950]
},
// Primary: Teal
primary: {
default: oceanColors.teal[400],
hover: oceanColors.teal[300],
active: oceanColors.teal[500],
light: oceanColors.teal[200],
dark: oceanColors.teal[600],
contrast: baseColors.white
},
// Secondary: Cyan
secondary: {
default: oceanColors.cyan[400],
light: oceanColors.cyan[300],
dark: oceanColors.cyan[500],
contrast: baseColors.white
},
// Status
success: baseColors.emerald[500],
warning: "#fbbf24",
// amber-400
error: "#f43f5e",
// rose-500
info: "#0ea5e9",
// sky-500
// Semantic
favorite: "#f43f5e",
// rose-500
like: "#f43f5e",
// rose-500
tag: oceanColors.teal[400],
// Special
skeleton: oceanColors.slate[800],
shimmer: oceanColors.slate[700]
}
},
shadows,
opacity
};
// src/themes/index.ts
var themes = {
default: defaultTheme,
sunset: sunsetTheme,
ocean: oceanTheme
};
// src/spacing.ts
var spacing = {
0: 0,
1: 4,
// 0.25rem
2: 8,
// 0.5rem
3: 12,
// 0.75rem
4: 16,
// 1rem
5: 20,
// 1.25rem
6: 24,
// 1.5rem
7: 28,
// 1.75rem
8: 32,
// 2rem
9: 36,
// 2.25rem
10: 40,
// 2.5rem
11: 44,
// 2.75rem
12: 48,
// 3rem
14: 56,
// 3.5rem
16: 64,
// 4rem
20: 80,
// 5rem
24: 96,
// 6rem
28: 112,
// 7rem
32: 128
// 8rem
};
var borderRadius = {
none: 0,
sm: 4,
DEFAULT: 8,
md: 8,
lg: 12,
xl: 16,
"2xl": 24,
"3xl": 32,
full: 9999
};
// src/typography.ts
var fontSize = {
xs: 12,
sm: 14,
base: 16,
lg: 18,
xl: 20,
"2xl": 24,
"3xl": 30,
"4xl": 36,
"5xl": 48,
"6xl": 60,
"7xl": 72,
"8xl": 96
};
var fontWeight = {
regular: "400",
medium: "500",
semibold: "600",
bold: "700"
};
// native/theme.ts
function getThemeColors(variant = "default", mode = "dark") {
const theme = themes[variant];
return theme.colors[mode];
}
function createNativeTheme(variant = "default", mode = "dark") {
const theme = themes[variant];
const colors = theme.colors[mode];
const shadows2 = theme.shadows[mode];
return {
variant,
mode,
colors,
spacing,
borderRadius,
fontSize,
fontWeight,
shadows: shadows2,
opacity: theme.opacity
};
}
function getThemeVariants() {
return Object.keys(themes);
}
function isValidThemeVariant(variant) {
return variant in themes;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
createNativeTheme,
getThemeColors,
getThemeVariants,
isValidThemeVariant
});