Ingo Wagner 9aeb2c01f8 feat: emoji-first onboarding flow with accessory/pose customization, language step
- Rewrite Onboarding.tsx: 5-step flow (emoji → preferences → language → integrations → bot)
- Remove model selection from onboarding entirely
- Add shape selector (8 GrokShapes), color picker (12 colors), accessory (9 options), pose (8 poses)
- Add user preference form (name, timezone, hobbies, work style, communication style)
- Add language selection step with 9 locales persisting to localStorage
- Persist avatarValue ({color}::shape_{index}) on bot creation
- Persist user preferences to bot instructions
- Update onboarding-discovery: 3 items (profile, tools, crew), no model
- Update OnboardingDiscoveryShell: remove model-ready source label
- Export GROK_COLOR_LIST, GROK_SHAPES, GrokColorDef, SHIPPED_SHAPE_KEYS from ui-web
- Update onboarding-discovery.test.ts with proper mock types
2026-09-21 23:18:34 +00:00

66 lines
2.2 KiB
TypeScript

export { type AvatarStyle, AvatarStyleProvider, useAvatarStyle } from "./avatar-style.js";
export { type GrokColorDef } from "./bot-avatar.js";
export {
BotAvatar,
DEFAULT_GROK_BOT_COLOR,
GROK_BOT_COLORS,
GROK_COLOR_LIST,
GROK_MASCOT_SHAPES,
GROK_SHAPES,
GrokShapePreview,
parseBotAvatar,
resolvePersonaColorDef,
resolvePersonaShape,
SHIPPED_SHAPE_KEYS,
} from "./bot-avatar.js";
export * from "./components/ui/alert-dialog.js";
export * from "./components/ui/badge.js";
export * from "./components/ui/button.js";
export * from "./components/ui/card.js";
export * from "./components/ui/checkbox.js";
export * from "./components/ui/command.js";
export * from "./components/ui/dialog.js";
export * from "./components/ui/dropdown-menu.js";
export * from "./components/ui/field.js";
export * from "./components/ui/icon.js";
export * from "./components/ui/input.js";
export * from "./components/ui/input-group.js";
export * from "./components/ui/kbd.js";
export * from "./components/ui/label.js";
export * from "./components/ui/native-select.js";
export * from "./components/ui/popover.js";
export * from "./components/ui/scroll-area.js";
export * from "./components/ui/select.js";
export * from "./components/ui/separator.js";
export * from "./components/ui/skeleton.js";
export * from "./components/ui/spinner.js";
export * from "./components/ui/switch.js";
export * from "./components/ui/tabs.js";
export * from "./components/ui/textarea.js";
export * from "./components/ui/toggle.js";
export * from "./components/ui/tooltip.js";
export * from "./components/ui/typography.js";
export {
EvooMascot,
type EvooMascotProps,
type EvooPose,
type PointerTracking,
pupilOffsetFromPointer,
Wordmark,
mapBotStatusToPose,
mapCollaborationToPose,
mapOnboardingToPose,
mapPersonaArchetypeToIdlePose,
mapStreamingToPose,
mapVoicePhaseToPose,
mapWelcomeContextToPose,
EVOO_OO_TRADEMARK,
normalizeEvooPose,
resolveEvooPose,
type VoicePresencePhase,
} from "./evoo-brand.js";
export { POSE_DEFINITIONS } from "./evoo-character/index.js";
export { GroupAvatar, type GroupAvatarMember, type GroupAvatarProps } from "./group-avatar.js";
export { cn } from "./lib/utils.js";
export { ModelThinkingOptions } from "./model-thinking-options.js";