@adminide-stack/yantra-mobile 12.0.28-alpha.59 → 12.0.28-alpha.62

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.
@@ -1,4 +1,4 @@
1
- import {jsx,jsxs}from'react/jsx-runtime';import React,{useState,useMemo,useCallback,useEffect}from'react';import {View,StyleSheet,Pressable}from'react-native';import {MaterialCommunityIcons}from'@expo/vector-icons';import {getDefaultLeftItems,getDefaultRightItems,Box,Text,InputToolBar}from'@admin-layout/gluestack-ui-mobile';import {useSafeAreaInsets,SafeAreaView}from'react-native-safe-area-context';import {useNavigation,useRoute,CommonActions}from'@react-navigation/native';import {MessagesContainerUI}from'@messenger-box/platform-mobile';import {v4}from'uuid';import {ContributionSchemaId}from'common';import {useGetContextDataQuery,useGetPageSettingsQuery}from'common/graphql';import {useGatewayContext}from'../../contexts/GatewayContext.js';import {GatewayToolbarButtonMobile}from'../../components/GatewayToolbarButtonMobile.js';import {useCdecliAutoConnect}from'../../hooks/useCdecliAutoConnect.js';import {usePrerequisiteIds}from'../../hooks/usePrerequisiteIds.js';import {useChatMutations,useChatSessions}from'../../hooks/useChatApi.js';import {useChatStream}from'../../hooks/useChatStream.js';import DeepSearchModal from'./components/DeepSearchModal.js';import ChatHistoryLanding from'./components/ChatHistoryLanding.js';import {normalizeSummaryText,extractDeepSearchSources}from'./deepSearchUtils.js';import {YantraBrandLoader,YANTRA_LOADER_SIZE_COMPACT}from'../../components/YantraBrandLoader.js';import {navigationRef}from'@common-stack/client-react';var __defProp = Object.defineProperty;
1
+ import {jsx,jsxs}from'react/jsx-runtime';import React,{useState,useMemo,useCallback,useEffect}from'react';import {useWindowDimensions,useColorScheme,View,StyleSheet,Pressable,Platform,Keyboard,TouchableWithoutFeedback}from'react-native';import {MaterialCommunityIcons}from'@expo/vector-icons';import {getDefaultLeftItems,getDefaultRightItems,Box,Text,InputToolBar}from'@admin-layout/gluestack-ui-mobile';import {useSafeAreaInsets,SafeAreaView}from'react-native-safe-area-context';import {useNavigation,useRoute,CommonActions}from'@react-navigation/native';import {MessagesContainerUI}from'@messenger-box/platform-mobile';import {v4}from'uuid';import {ContributionSchemaId}from'common';import {useGetContextDataQuery,useGetPageSettingsQuery}from'common/graphql';import {useGatewayContext}from'../../contexts/GatewayContext.js';import {GatewayToolbarButtonMobile}from'../../components/GatewayToolbarButtonMobile.js';import {useCdecliAutoConnect}from'../../hooks/useCdecliAutoConnect.js';import {usePrerequisiteIds}from'../../hooks/usePrerequisiteIds.js';import {useChatMutations,useChatSessions}from'../../hooks/useChatApi.js';import {useChatStream}from'../../hooks/useChatStream.js';import DeepSearchModal from'./components/DeepSearchModal.js';import ChatHistoryLanding from'./components/ChatHistoryLanding.js';import {normalizeSummaryText,extractDeepSearchSources}from'./deepSearchUtils.js';import {YantraBrandLoader,YANTRA_LOADER_SIZE_COMPACT}from'../../components/YantraBrandLoader.js';import {navigationRef}from'@common-stack/client-react';import {mobileTokens}from'../../theme/mobileTokens.js';var __defProp = Object.defineProperty;
2
2
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
3
  var __hasOwnProp = Object.prototype.hasOwnProperty;
4
4
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -15,6 +15,8 @@ var __spreadValues = (a, b) => {
15
15
  return a;
16
16
  };
17
17
  const SENDING_LOADER_COMPOSER_RESERVE_PX = 156;
18
+ const IOS_KEYBOARD_DOCKING_ADJUST_PX = 10;
19
+ const COMPOSER_SCROLL_RESERVE_PX = 136;
18
20
  function organizationFromSettingsValue(settings) {
19
21
  if (settings == null) return null;
20
22
  if (typeof settings === "string") {
@@ -57,6 +59,11 @@ function HomeScreenContent({
57
59
  disabled = false
58
60
  }) {
59
61
  var _a, _b, _c, _d, _e, _f, _g;
62
+ const {
63
+ width: screenWidth
64
+ } = useWindowDimensions();
65
+ const colorScheme = useColorScheme();
66
+ const isDark = colorScheme === "dark";
60
67
  const navigation = useNavigation();
61
68
  const route = useRoute();
62
69
  const hasRehydratedOrgRef = React.useRef(false);
@@ -149,6 +156,7 @@ function HomeScreenContent({
149
156
  const pinSendingLoaderNearComposer = useMemo(() => messages.length > 0 || Boolean((response != null ? response : "").trim()), [messages.length, response]);
150
157
  const showSendingLoader = !showChatHistory && (channelBootstrap || waitingForAssistant);
151
158
  const insets = useSafeAreaInsets();
159
+ const [keyboardHeight, setKeyboardHeight] = useState(0);
152
160
  const handleModeSwitch = useCallback((mode) => {
153
161
  setActiveMode(mode);
154
162
  }, []);
@@ -235,6 +243,14 @@ function HomeScreenContent({
235
243
  const gatewayToolbarTone = "default";
236
244
  const gatewayToolbarLabel = cdecli.status === "connecting" ? "Checking..." : void 0;
237
245
  const gatewayToolbarError = cdecli.error;
246
+ const surfaceColor = isDark ? "#0f172a" : mobileTokens.color.bg;
247
+ const primaryTextColor = isDark ? "#e5e7eb" : mobileTokens.color.text;
248
+ const secondaryTextColor = isDark ? "#94a3b8" : mobileTokens.color.textMuted;
249
+ const accentColor = isDark ? "#a5b4fc" : "#4338ca";
250
+ const newChatIconColor = isDark ? "#e5e7eb" : "#000000";
251
+ const composerBarBackground = isDark ? "rgba(15, 23, 42, 0.94)" : "rgba(248, 250, 252, 0.97)";
252
+ const composerBarBorder = isDark ? "rgba(71, 85, 105, 0.5)" : "rgba(148, 163, 184, 0.25)";
253
+ const contentMaxWidth = Math.min(720, Math.max(360, screenWidth - 24));
238
254
  useEffect(() => {
239
255
  var _a2, _b2, _c2;
240
256
  const currentOrgName = ((_b2 = (_a2 = route == null ? void 0 : route.params) == null ? void 0 : _a2.orgName) == null ? void 0 : _b2.trim()) || "";
@@ -264,18 +280,18 @@ function HomeScreenContent({
264
280
  headerTitle: showChatHistory ? "Chats" : "Yantra",
265
281
  headerLeft: showChatHistory ? () => /* @__PURE__ */ jsx(Pressable, { onPress: handleCloseChatHistory, style: ({
266
282
  pressed
267
- }) => [styles.backButton, pressed && styles.newChatButtonPressed], accessibilityLabel: "Back to chat", children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "chevron-left", size: 24, color: "#111827" }) }) : void 0,
283
+ }) => [styles.backButton, pressed && styles.newChatButtonPressed], accessibilityLabel: "Back to chat", children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "chevron-left", size: 24, color: primaryTextColor }) }) : void 0,
268
284
  headerRight: () => /* @__PURE__ */ jsxs(View, { style: styles.headerRight, children: [
269
285
  /* @__PURE__ */ jsx(GatewayToolbarButtonMobile, { gatewayStatus: gatewayToolbarStatus, gatewayError: gatewayToolbarError, onToggleGateway: handleToggleGateway, disabled: false, statusLabel: gatewayToolbarLabel, tone: gatewayToolbarTone }),
270
286
  !showChatHistory ? /* @__PURE__ */ jsx(Pressable, { onPress: handleOpenChatHistory, style: ({
271
287
  pressed
272
- }) => [styles.historyHeaderButton, pressed && styles.historyHeaderButtonPressed], accessibilityLabel: "Chat history", accessibilityRole: "button", children: /* @__PURE__ */ jsx(View, { style: styles.historyHeaderButtonInner, children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "history", size: 19, color: "#4338ca" }) }) }) : null,
288
+ }) => [styles.historyHeaderButton, pressed && styles.historyHeaderButtonPressed], accessibilityLabel: "Chat history", accessibilityRole: "button", children: /* @__PURE__ */ jsx(View, { style: [styles.historyHeaderButtonInner, isDark ? styles.historyHeaderButtonInnerDark : null], children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "history", size: 19, color: accentColor }) }) }) : null,
273
289
  /* @__PURE__ */ jsx(Pressable, { onPress: handleNewChat, style: ({
274
290
  pressed
275
- }) => [styles.newChatButton, pressed && styles.newChatButtonPressed], accessibilityLabel: "New chat", children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "chat-plus-outline", size: 26, color: "#000" }) })
291
+ }) => [styles.newChatButton, pressed && styles.newChatButtonPressed], accessibilityLabel: "New chat", children: /* @__PURE__ */ jsx(View, { style: [styles.newChatButtonInner, isDark ? styles.newChatButtonInnerDark : null], children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "chat-plus-outline", size: 20, color: newChatIconColor }) }) })
276
292
  ] })
277
293
  });
278
- }, [navigation, showChatHistory, handleCloseChatHistory, handleOpenChatHistory, handleNewChat, handleToggleGateway, gatewayToolbarStatus, gatewayToolbarError, gatewayToolbarLabel, gatewayToolbarTone]);
294
+ }, [navigation, showChatHistory, handleCloseChatHistory, handleOpenChatHistory, handleNewChat, handleToggleGateway, gatewayToolbarStatus, gatewayToolbarError, gatewayToolbarLabel, gatewayToolbarTone, primaryTextColor, accentColor, newChatIconColor, isDark]);
279
295
  const handleSendMessage = useCallback(async (text) => {
280
296
  if (!text.trim() || isLoading || disabled) return;
281
297
  const submission = {
@@ -381,12 +397,47 @@ function HomeScreenContent({
381
397
  setDeepSearchSummary(normalizeSummaryText(latestAssistantMessage));
382
398
  setDeepSearchSources(extractDeepSearchSources(latestAssistantMessage));
383
399
  }, [deepSearchQuery, isStreaming, latestAssistantMessage]);
400
+ useEffect(() => {
401
+ if (Platform.OS === "ios") {
402
+ const frameSub = Keyboard.addListener("keyboardWillChangeFrame", (event) => {
403
+ var _a2, _b2;
404
+ return setKeyboardHeight((_b2 = (_a2 = event.endCoordinates) == null ? void 0 : _a2.height) != null ? _b2 : 0);
405
+ });
406
+ const showSub2 = Keyboard.addListener("keyboardWillShow", (event) => {
407
+ var _a2, _b2;
408
+ return setKeyboardHeight((_b2 = (_a2 = event.endCoordinates) == null ? void 0 : _a2.height) != null ? _b2 : 0);
409
+ });
410
+ const hideSub2 = Keyboard.addListener("keyboardWillHide", () => setKeyboardHeight(0));
411
+ return () => {
412
+ frameSub.remove();
413
+ showSub2.remove();
414
+ hideSub2.remove();
415
+ };
416
+ }
417
+ const showSub = Keyboard.addListener("keyboardDidShow", (event) => {
418
+ var _a2, _b2;
419
+ return setKeyboardHeight((_b2 = (_a2 = event.endCoordinates) == null ? void 0 : _a2.height) != null ? _b2 : 0);
420
+ });
421
+ const hideSub = Keyboard.addListener("keyboardDidHide", () => setKeyboardHeight(0));
422
+ return () => {
423
+ showSub.remove();
424
+ hideSub.remove();
425
+ };
426
+ }, []);
427
+ const composerBottomOffset = Math.max(0, keyboardHeight - insets.bottom - (Platform.OS === "ios" ? IOS_KEYBOARD_DOCKING_ADJUST_PX : 0));
428
+ const composerScrollBottomPadding = COMPOSER_SCROLL_RESERVE_PX;
384
429
  return /* @__PURE__ */ jsxs(SafeAreaView, { edges: ["left", "right", "bottom"], style: {
385
430
  flex: 1,
386
- backgroundColor: "#fff"
431
+ backgroundColor: surfaceColor
387
432
  }, children: [
388
- /* @__PURE__ */ jsxs(Box, { flex: 1, width: "100%", position: "relative", children: [
389
- (chatError || cdecli.error) && /* @__PURE__ */ jsx(Box, { mb: "$2", mx: "$4", p: "$3", bg: "$gray200", borderRadius: "$md", children: /* @__PURE__ */ jsx(Text, { fontSize: "$sm", color: "$gray900", children: chatError || cdecli.error }) }),
433
+ /* @__PURE__ */ jsx(TouchableWithoutFeedback, { onPress: Keyboard.dismiss, accessible: false, children: /* @__PURE__ */ jsxs(Box, { flex: 1, width: "100%", position: "relative", children: [
434
+ (chatError || cdecli.error) && /* @__PURE__ */ jsx(Box, { mb: "$2", mx: "$4", p: "$3", borderRadius: "$md", style: {
435
+ backgroundColor: isDark ? "#2b1a1d" : "#fef2f2",
436
+ borderWidth: 1,
437
+ borderColor: isDark ? "#7f1d1d" : "#fecaca"
438
+ }, children: /* @__PURE__ */ jsx(Text, { fontSize: "$sm", style: {
439
+ color: isDark ? "#fecaca" : "#991b1b"
440
+ }, children: chatError || cdecli.error }) }),
390
441
  showChatHistory ? /* @__PURE__ */ jsx(ChatHistoryLanding, { onSelectSession: (channelId) => {
391
442
  setShowChatHistory(false);
392
443
  setActiveSessionId(channelId);
@@ -396,13 +447,21 @@ function HomeScreenContent({
396
447
  setActiveSessionId(null);
397
448
  setValue("");
398
449
  clearMessages();
399
- } }) : hasMessages || response ? /* @__PURE__ */ jsx(Box, { flex: 1, width: "100%", alignSelf: "stretch", children: /* @__PURE__ */ jsx(MessagesContainerUI, { mode: "chat", showBackButton: false, onBackPress: handleNewChat, compactTop: false, messagesContainerStyle: {
450
+ } }) : hasMessages || response ? /* @__PURE__ */ jsx(Box, { flex: 1, width: "100%", alignSelf: "stretch", children: /* @__PURE__ */ jsx(MessagesContainerUI, { mode: "chat", showBackButton: false, onBackPress: handleNewChat, compactTop: true, messagesContainerStyle: {
400
451
  paddingHorizontal: 0,
401
- paddingTop: 6,
402
- margin: 0
452
+ paddingTop: 0,
453
+ paddingBottom: composerScrollBottomPadding,
454
+ margin: 0,
455
+ marginTop: 0,
456
+ alignSelf: "center",
457
+ width: contentMaxWidth
403
458
  }, listContentStyle: {
404
- paddingTop: 8,
405
- margin: 0
459
+ paddingTop: 0,
460
+ paddingBottom: composerScrollBottomPadding,
461
+ margin: 0,
462
+ marginTop: 0,
463
+ width: contentMaxWidth,
464
+ alignSelf: "center"
406
465
  }, messages: messages.map((msg, index) => ({
407
466
  id: `msg-${index}-${msg.role}`,
408
467
  role: msg.role,
@@ -410,46 +469,61 @@ function HomeScreenContent({
410
469
  metadata: msg.metadata
411
470
  })), streamingContent: response, currentUser: {
412
471
  id: "user"
413
- }, onSend: handleSendMessage, disabled: isLoading || disabled, isLoading, onStop: isStreaming ? cancel : onStop, renderPlanInputToolbar: ({
414
- value: value2,
415
- onChange,
416
- onSend,
417
- disabled: inputDisabled
418
- }) => /* @__PURE__ */ jsx(InputToolBar, { inputConfig: {
419
- value: value2,
420
- onChange: (e) => onChange(e.nativeEvent.text),
472
+ }, onSend: handleSendMessage, disabled: isLoading || disabled, isLoading, onStop: isStreaming ? cancel : onStop, renderPlanInputToolbar: () => null, renderBuildInputToolbar: () => null }) }) : /* @__PURE__ */ jsx(Box, { flex: 1, width: "100%", children: /* @__PURE__ */ jsxs(View, { style: styles.emptyCenterTitleWrap, children: [
473
+ /* @__PURE__ */ jsx(Text, { style: [styles.emptyEyebrow, {
474
+ color: secondaryTextColor
475
+ }], children: "Choose your mode" }),
476
+ /* @__PURE__ */ jsxs(View, { style: [styles.emptyModePillRow, {
477
+ backgroundColor: isDark ? "rgba(30, 41, 59, 0.9)" : "#eef2ff",
478
+ borderColor: isDark ? "rgba(148, 163, 184, 0.26)" : "rgba(67, 56, 202, 0.15)"
479
+ }], children: [
480
+ /* @__PURE__ */ jsxs(Pressable, { onPress: () => handleModeSwitch("chat"), style: [styles.emptyModePill, activeMode === "chat" && styles.emptyModePillActive, activeMode === "chat" && {
481
+ backgroundColor: isDark ? "#312e81" : "#4338ca"
482
+ }], accessibilityRole: "button", accessibilityLabel: "Switch to chat mode", children: [
483
+ /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "magnify", size: 14, color: activeMode === "chat" ? "#ffffff" : secondaryTextColor }),
484
+ /* @__PURE__ */ jsx(Text, { style: [styles.emptyModePillLabel, {
485
+ color: activeMode === "chat" ? "#ffffff" : secondaryTextColor
486
+ }], children: "Chat" })
487
+ ] }),
488
+ /* @__PURE__ */ jsxs(Pressable, { onPress: () => handleModeSwitch("deep-search"), style: [styles.emptyModePill, activeMode === "deep-search" && styles.emptyModePillActive, activeMode === "deep-search" && {
489
+ backgroundColor: isDark ? "#312e81" : "#4338ca"
490
+ }], accessibilityRole: "button", accessibilityLabel: "Switch to deep-search mode", children: [
491
+ /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "lightning-bolt-outline", size: 14, color: activeMode === "deep-search" ? "#ffffff" : secondaryTextColor }),
492
+ /* @__PURE__ */ jsx(Text, { style: [styles.emptyModePillLabel, {
493
+ color: activeMode === "deep-search" ? "#ffffff" : secondaryTextColor
494
+ }], children: "Deep Search" })
495
+ ] })
496
+ ] }),
497
+ /* @__PURE__ */ jsx(Text, { style: [styles.emptyCenterTitle, {
498
+ color: primaryTextColor
499
+ }], children: "How do you want to start?" }),
500
+ /* @__PURE__ */ jsx(Text, { style: [styles.emptySubtitle, {
501
+ color: secondaryTextColor
502
+ }], children: "Use Chat for quick help, or Deep Search for researched, source-backed answers." })
503
+ ] }) }),
504
+ !showChatHistory ? /* @__PURE__ */ jsx(View, { style: [styles.bottomComposerWrap, {
505
+ paddingBottom: Math.max(insets.bottom - 6, 2) + composerBottomOffset,
506
+ backgroundColor: composerBarBackground,
507
+ borderTopColor: composerBarBorder
508
+ }], children: /* @__PURE__ */ jsx(View, { style: [styles.bottomComposerInner, {
509
+ width: contentMaxWidth
510
+ }], children: /* @__PURE__ */ jsx(InputToolBar, { inputConfig: {
511
+ value,
512
+ onChange: (e) => setValue(e.nativeEvent.text),
421
513
  placeholder: inputPlaceholder,
422
- disabled: inputDisabled
514
+ disabled: isLoading || disabled
423
515
  }, leftItems, rightItems, templateButton: null, templateModalConfig: null, micSendButton: {
424
- hasContent: value2.trim().length > 0,
425
- onSend: () => onSend(value2.trim()),
516
+ hasContent: canSubmit,
517
+ onSend: () => handleSubmit(),
426
518
  onMic: () => console.log("mic"),
427
- disabled: inputDisabled,
519
+ disabled: isLoading || disabled,
428
520
  isLoading,
429
521
  onStop: isStreaming ? cancel : onStop
430
- } }), renderBuildInputToolbar: () => null }) }) : /* @__PURE__ */ jsxs(Box, { flex: 1, width: "100%", children: [
431
- /* @__PURE__ */ jsx(View, { style: styles.emptyCenterTitleWrap, children: /* @__PURE__ */ jsx(Text, { style: styles.emptyCenterTitle, children: "What can I do for you?" }) }),
432
- /* @__PURE__ */ jsx(View, { style: [styles.bottomComposerWrap, {
433
- paddingBottom: Math.max(insets.bottom - 6, 2),
434
- marginBottom: -Math.max(insets.bottom - 2, 0)
435
- }], children: /* @__PURE__ */ jsx(InputToolBar, { inputConfig: {
436
- value,
437
- onChange: (e) => setValue(e.nativeEvent.text),
438
- placeholder: inputPlaceholder,
439
- disabled: isLoading || disabled
440
- }, leftItems, rightItems, templateButton: null, templateModalConfig: null, micSendButton: {
441
- hasContent: canSubmit,
442
- onSend: () => handleSubmit(),
443
- onMic: () => console.log("mic"),
444
- disabled: isLoading || disabled,
445
- isLoading,
446
- onStop
447
- } }) })
448
- ] }),
522
+ } }) }) }) : null,
449
523
  showSendingLoader ? /* @__PURE__ */ jsx(View, { pointerEvents: "none", style: pinSendingLoaderNearComposer ? [styles.sendingLoaderAboveComposer, {
450
524
  bottom: Math.max(insets.bottom, 12) + SENDING_LOADER_COMPOSER_RESERVE_PX
451
525
  }] : styles.sendingLoaderEmptyState, children: /* @__PURE__ */ jsx(YantraBrandLoader, { size: YANTRA_LOADER_SIZE_COMPACT }) }) : null
452
- ] }),
526
+ ] }) }),
453
527
  /* @__PURE__ */ jsx(DeepSearchModal, { visible: isDeepSearchModalOpen, query: deepSearchQuery, summaryText: deepSearchPreviewNormalized, sources: deepSearchSources, isStreaming, researchProcessOpen, sourcesAccordionOpen, onToggleResearchProcess: () => setResearchProcessOpen((prev) => !prev), onToggleSourcesAccordion: () => setSourcesAccordionOpen((prev) => !prev), onRetry: () => {
454
528
  void handleRetryDeepSearch();
455
529
  }, onStop: cancel, onClose: handleDeepSearchClose })
@@ -480,39 +554,67 @@ const styles = StyleSheet.create({
480
554
  headerRight: {
481
555
  flexDirection: "row",
482
556
  alignItems: "center",
483
- marginRight: 4,
484
- gap: 2
557
+ marginRight: 6,
558
+ gap: 6
485
559
  },
486
560
  historyHeaderButton: {
487
- marginHorizontal: 2,
488
- padding: 4,
561
+ marginHorizontal: 0,
562
+ padding: 0,
489
563
  borderRadius: 22
490
564
  },
491
565
  historyHeaderButtonPressed: {
492
566
  opacity: 0.72
493
567
  },
494
568
  historyHeaderButtonInner: {
495
- width: 36,
496
- height: 36,
497
- borderRadius: 18,
569
+ width: 32,
570
+ height: 32,
571
+ borderRadius: 16,
498
572
  alignItems: "center",
499
573
  justifyContent: "center",
500
- backgroundColor: "#eef2ff",
574
+ backgroundColor: mobileTokens.color.primarySoft,
501
575
  borderWidth: StyleSheet.hairlineWidth,
502
- borderColor: "rgba(67, 56, 202, 0.22)",
503
- shadowColor: "#4338ca",
504
- shadowOpacity: 0.12,
505
- shadowRadius: 6,
576
+ borderColor: mobileTokens.color.primaryBorder,
577
+ shadowColor: "#312e81",
578
+ shadowOpacity: 0.1,
579
+ shadowRadius: 5,
506
580
  shadowOffset: {
507
581
  width: 0,
508
582
  height: 2
509
583
  },
510
584
  elevation: 2
511
585
  },
586
+ historyHeaderButtonInnerDark: {
587
+ backgroundColor: "#1e293b",
588
+ borderColor: "rgba(148, 163, 184, 0.35)",
589
+ shadowColor: "#111827"
590
+ },
512
591
  newChatButton: {
513
- padding: 6,
592
+ padding: 0,
593
+ alignItems: "center",
594
+ justifyContent: "center",
595
+ borderRadius: 22
596
+ },
597
+ newChatButtonInner: {
598
+ width: 32,
599
+ height: 32,
600
+ borderRadius: 16,
514
601
  alignItems: "center",
515
- justifyContent: "center"
602
+ justifyContent: "center",
603
+ backgroundColor: mobileTokens.color.surface,
604
+ borderWidth: 1,
605
+ borderColor: mobileTokens.color.border,
606
+ shadowColor: "#0f172a",
607
+ shadowOpacity: 0.08,
608
+ shadowRadius: 5,
609
+ shadowOffset: {
610
+ width: 0,
611
+ height: 2
612
+ },
613
+ elevation: 2
614
+ },
615
+ newChatButtonInnerDark: {
616
+ backgroundColor: "#0f172a",
617
+ borderColor: "#334155"
516
618
  },
517
619
  backButton: {
518
620
  marginLeft: 6,
@@ -529,19 +631,95 @@ const styles = StyleSheet.create({
529
631
  emptyCenterTitleWrap: {
530
632
  flex: 1,
531
633
  alignItems: "center",
532
- justifyContent: "center",
634
+ justifyContent: "flex-start",
533
635
  paddingHorizontal: 24,
534
- paddingTop: 44
636
+ paddingTop: 88,
637
+ paddingBottom: 52,
638
+ maxWidth: 520,
639
+ alignSelf: "center"
640
+ },
641
+ emptyEyebrow: {
642
+ fontSize: 12,
643
+ fontWeight: "600",
644
+ letterSpacing: 0.4,
645
+ textTransform: "uppercase",
646
+ marginBottom: 10
535
647
  },
536
648
  emptyCenterTitle: {
537
- fontSize: 52 / 2,
538
- fontWeight: "400",
539
- color: "#111827",
649
+ marginTop: 2,
650
+ fontSize: 30,
651
+ fontWeight: "700",
540
652
  textAlign: "center",
541
- letterSpacing: 0.2
653
+ letterSpacing: -0.5
654
+ },
655
+ emptySubtitle: {
656
+ marginTop: 12,
657
+ fontSize: 14,
658
+ lineHeight: 22,
659
+ textAlign: "center",
660
+ paddingHorizontal: 16,
661
+ maxWidth: 360
542
662
  },
543
663
  bottomComposerWrap: {
544
- paddingHorizontal: 14
664
+ position: "absolute",
665
+ left: 0,
666
+ right: 0,
667
+ bottom: 0,
668
+ alignItems: "center",
669
+ justifyContent: "flex-end",
670
+ borderTopWidth: 1,
671
+ shadowColor: "#0f172a",
672
+ shadowOpacity: 0.08,
673
+ shadowRadius: 8,
674
+ shadowOffset: {
675
+ width: 0,
676
+ height: -2
677
+ },
678
+ elevation: 6
679
+ },
680
+ bottomComposerInner: {
681
+ paddingHorizontal: 14,
682
+ paddingTop: 10,
683
+ paddingBottom: 4
684
+ },
685
+ emptyModePillRow: {
686
+ flexDirection: "row",
687
+ alignItems: "center",
688
+ gap: 8,
689
+ marginBottom: 22,
690
+ borderRadius: 16,
691
+ padding: 6,
692
+ borderWidth: 1,
693
+ shadowColor: "#312e81",
694
+ shadowOpacity: 0.08,
695
+ shadowRadius: 8,
696
+ shadowOffset: {
697
+ width: 0,
698
+ height: 3
699
+ },
700
+ elevation: 3
701
+ },
702
+ emptyModePill: {
703
+ flexDirection: "row",
704
+ alignItems: "center",
705
+ gap: 4,
706
+ paddingHorizontal: 12,
707
+ paddingVertical: 7,
708
+ borderRadius: 11
709
+ },
710
+ emptyModePillActive: {
711
+ shadowColor: "#312e81",
712
+ shadowOpacity: 0.18,
713
+ shadowRadius: 6,
714
+ shadowOffset: {
715
+ width: 0,
716
+ height: 2
717
+ },
718
+ elevation: 2
719
+ },
720
+ emptyModePillLabel: {
721
+ fontSize: 12,
722
+ fontWeight: "600"
545
723
  }
546
724
  });
547
725
  const HomeScreen = (props) => /* @__PURE__ */ jsx(HomeScreenContent, __spreadValues({}, props));export{HomeScreen as default};//# sourceMappingURL=HomeScreen.js.map