@chrryai/chrry 1.5.66 → 1.5.71

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.
@@ -389,12 +389,13 @@
389
389
  gap: toRem.toRem(2);
390
390
  align-items: center;
391
391
  vertical-align: middle;
392
+ margin-left: toRem.toRem(6);
392
393
  }
393
394
 
394
- .dots span {
395
+ .dotsSpan {
395
396
  width: toRem.toRem(4);
396
397
  height: toRem.toRem(4);
397
- background: var(--shade-4);
398
+ background: var(--accent-4);
398
399
  border-radius: 50%;
399
400
  animation: typing 1.4s infinite ease-in-out;
400
401
  }
package/README.md CHANGED
@@ -27,7 +27,7 @@ Chrry is a comprehensive React component library built for AI applications. It i
27
27
 
28
28
  ## 🌶️ Pepper Router
29
29
 
30
- Chrry pairs perfectly with **[Pepper Router](https://github.com/askvex/pepper)** - our universal router with view transitions:
30
+ Chrry pairs perfectly with **[Pepper Router](https://github.comchrryAIpepper)** - our universal router with view transitions:
31
31
 
32
32
  ```bash
33
33
  npm install @chrryai/pepper
@@ -1,5 +1,5 @@
1
- @use "./breakpoints.scss";
2
- @use "./toRem.scss";
1
+ @use "../breakpoints.scss";
2
+ @use "../toRem.scss";
3
3
 
4
4
  .ossLink,
5
5
  .oss {
@@ -1,4 +1,4 @@
1
- @use "./toRem.scss";
1
+ @use "../toRem.scss";
2
2
 
3
3
  .accountButton {
4
4
  display: flex;
@@ -1,5 +1,5 @@
1
- @use "./breakpoints.scss";
2
- @use "./utils.scss";
1
+ @use "../breakpoints.scss";
2
+ @use "../utils.scss";
3
3
 
4
4
  .addToHomeScreen {
5
5
  height: 100vh;
@@ -1,6 +1,6 @@
1
- @use "./toRem.scss";
2
- @use "./breakpoints.scss";
3
- @use "./utils.scss";
1
+ @use "../toRem.scss";
2
+ @use "../breakpoints.scss";
3
+ @use "../utils.scss";
4
4
 
5
5
  .affiliate {
6
6
  width: 100%;
@@ -1,5 +1,5 @@
1
- @use "./toRem.scss";
2
- @use "./breakpoints.scss";
1
+ @use "../toRem.scss";
2
+ @use "../breakpoints.scss";
3
3
 
4
4
  .affiliate {
5
5
  width: 100%;
@@ -1,6 +1,6 @@
1
- @use "./breakpoints.scss";
2
- @use "./utils.scss";
3
- @use "./toRem.scss";
1
+ @use "../breakpoints.scss";
2
+ @use "../utils.scss";
3
+ @use "../toRem.scss";
4
4
 
5
5
  .newAgent {
6
6
  margin: 0 auto;
package/dist/index.d.mts CHANGED
@@ -666,6 +666,7 @@ declare function replaceLinks({ text, pageUrl, }: {
666
666
  pageUrl?: string;
667
667
  }): Array<TextSegment>;
668
668
 
669
+ declare const isCI: string | undefined;
669
670
  declare const checkIsExtension: () => boolean;
670
671
  declare const getExtensionUrl: () => any;
671
672
  declare const isProduction: boolean;
@@ -785,7 +786,6 @@ declare const PROMPT_LIMITS: {
785
786
  declare const expenseCategory: readonly ["food", "transport", "entertainment", "shopping", "bills", "health", "education", "travel", "other"];
786
787
  type expenseCategoryType = (typeof expenseCategory)[number];
787
788
  declare const budgetCategory: readonly ["food", "transport", "entertainment", "shopping", "bills", "health", "education", "travel", "other"];
788
- declare const isCI: string | undefined;
789
789
  declare const isE2E: boolean;
790
790
  declare const extensionSuggestions: {
791
791
  text: string;
@@ -1077,6 +1077,40 @@ declare function useAppMetadata(app?: appWithStore, enabled?: boolean): void;
1077
1077
  */
1078
1078
  declare function useThreadMetadata(thread?: thread): void;
1079
1079
 
1080
+ /**
1081
+ * A hook that syncs local state with a derived/computed value.
1082
+ * Useful when you need local state that can be overridden by user interaction,
1083
+ * but should reset to the computed value when dependencies change.
1084
+ *
1085
+ * @param computedValue - The value to sync with (derived from props/context)
1086
+ * @param deps - Dependencies that should trigger a reset to computedValue
1087
+ * @returns [value, setValue] - Tuple like useState
1088
+ *
1089
+ * @example
1090
+ * ```tsx
1091
+ * // Syncs with floatingInitial, resets when threadId changes
1092
+ * const [isChatFloating, setIsChatFloating] = useSyncedState(
1093
+ * floatingInitial,
1094
+ * [threadId]
1095
+ * )
1096
+ * ```
1097
+ */
1098
+ declare function useSyncedState<T>(computedValue: T, deps?: React.DependencyList): [T, React.Dispatch<React.SetStateAction<T>>];
1099
+ /**
1100
+ * A simpler version that ALWAYS syncs with the computed value.
1101
+ * Use this when you don't need to override the value locally.
1102
+ *
1103
+ * @param computedValue - The value to always use
1104
+ * @returns The computed value (for consistency with useSyncedState API)
1105
+ *
1106
+ * @example
1107
+ * ```tsx
1108
+ * // Always uses floatingInitial, no local override
1109
+ * const isChatFloating = useComputedValue(floatingInitial)
1110
+ * ```
1111
+ */
1112
+ declare function useComputedValue<T>(computedValue: T): T;
1113
+
1080
1114
  declare function useHasHydrated(): boolean;
1081
1115
  declare function useCountdown(targetDate: Date | null): number | null;
1082
1116
 
@@ -1757,4 +1791,4 @@ interface HistoryRouterProviderProps {
1757
1791
  */
1758
1792
  declare function HistoryRouterProvider({ children, }: HistoryRouterProviderProps): React.ReactElement;
1759
1793
 
1760
- export { ADDITIONAL_CREDITS, API_URL, type AgentCapabilities, type AgentModel, type AiAgent, type AiAgentCapabilities, type ApiActions, BrowserInstance, CHRRY_URL, CREDITS_PRICE, type CalendarEventFormData, type CreateCustomAiAgent, FREE_DAYS, FRONTEND_URL, type FileValidationResult, GUEST_TASKS_COUNT, HistoryRouterProvider, MAX_FILE_LIMITS, MAX_FILE_SIZES, MAX_TOOL_CALLS_PER_MESSAGE, MEMBER_TASKS_COUNT, OWNER_CREDITS, PDF_LIMITS, PLUS_PRICE, PLUS_TASKS_COUNT, PROD_FRONTEND_URL, PROMPT_LIMITS, PRO_PRICE, Sidebar, Store, VERSION, WS_URL, addParam, aiAgentCapabilitiesSchema, aiAgentSchema, apiFetch, type appFormData, appSchema, budgetCategory, capitalizeFirstLetter, checkIsExtension, checkThreadSummaryLimit, createApp, createCalendarEvent, createCustomAiAgentSchema, deleteApp, deleteCalendarEvent, deleteMemories, deleteMessage, deleteSubscription, exampleInstructions, expenseCategory, type expenseCategoryType, exportToGoogleCalendar, extensionSuggestions, formatFileSize, generateAppMetadata, generateStoreMetadata, getActions, getApp, getApps, getBrowserAPI, getBrowserIdentity, getCalendarEvents, getDailyImageLimit, getExampleInstructions, getExtensionUrl, getExtensionUrls, getFlag, getGuest, getHourlyLimit, getImageSrc, getInstructionConfig, getLastMessage, getMaxFileSize, getMetadata, getRedirectURL, getSession, getSlugFromPathname, getThread, getThreadId, getThreads, getTranslations, getUser, getUsers, getWeatherCacheTime, type instructionBase, isCI, isCollaborator, isDeepEqual, isDevelopment, isE2E, isFirefox, isOwner, isProduction, isSameDay, isTestingDevice, isTextFile, isValidUsername, isValidUuidV4, pageSizes, removeParam, removeUser, reorderApps, replaceLinks, storage, syncGoogleCalendar, updateApp, updateCalendarEvent, updateCollaboration, updateGuest, updateMessage, updateThread, updateUser, uploadUserImage, useAppMetadata, useCookieOrLocalStorage, useCountdown, useDeviceInfo, useHasHydrated, useLocalStorage, usePWAInstall, useStoreMetadata, useThreadMetadata, utcToday, validateFile };
1794
+ export { ADDITIONAL_CREDITS, API_URL, type AgentCapabilities, type AgentModel, type AiAgent, type AiAgentCapabilities, type ApiActions, BrowserInstance, CHRRY_URL, CREDITS_PRICE, type CalendarEventFormData, type CreateCustomAiAgent, FREE_DAYS, FRONTEND_URL, type FileValidationResult, GUEST_TASKS_COUNT, HistoryRouterProvider, MAX_FILE_LIMITS, MAX_FILE_SIZES, MAX_TOOL_CALLS_PER_MESSAGE, MEMBER_TASKS_COUNT, OWNER_CREDITS, PDF_LIMITS, PLUS_PRICE, PLUS_TASKS_COUNT, PROD_FRONTEND_URL, PROMPT_LIMITS, PRO_PRICE, Sidebar, Store, VERSION, WS_URL, addParam, aiAgentCapabilitiesSchema, aiAgentSchema, apiFetch, type appFormData, appSchema, budgetCategory, capitalizeFirstLetter, checkIsExtension, checkThreadSummaryLimit, createApp, createCalendarEvent, createCustomAiAgentSchema, deleteApp, deleteCalendarEvent, deleteMemories, deleteMessage, deleteSubscription, exampleInstructions, expenseCategory, type expenseCategoryType, exportToGoogleCalendar, extensionSuggestions, formatFileSize, generateAppMetadata, generateStoreMetadata, getActions, getApp, getApps, getBrowserAPI, getBrowserIdentity, getCalendarEvents, getDailyImageLimit, getExampleInstructions, getExtensionUrl, getExtensionUrls, getFlag, getGuest, getHourlyLimit, getImageSrc, getInstructionConfig, getLastMessage, getMaxFileSize, getMetadata, getRedirectURL, getSession, getSlugFromPathname, getThread, getThreadId, getThreads, getTranslations, getUser, getUsers, getWeatherCacheTime, type instructionBase, isCI, isCollaborator, isDeepEqual, isDevelopment, isE2E, isFirefox, isOwner, isProduction, isSameDay, isTestingDevice, isTextFile, isValidUsername, isValidUuidV4, pageSizes, removeParam, removeUser, reorderApps, replaceLinks, storage, syncGoogleCalendar, updateApp, updateCalendarEvent, updateCollaboration, updateGuest, updateMessage, updateThread, updateUser, uploadUserImage, useAppMetadata, useComputedValue, useCookieOrLocalStorage, useCountdown, useDeviceInfo, useHasHydrated, useLocalStorage, usePWAInstall, useStoreMetadata, useSyncedState, useThreadMetadata, utcToday, validateFile };
package/dist/index.d.ts CHANGED
@@ -666,6 +666,7 @@ declare function replaceLinks({ text, pageUrl, }: {
666
666
  pageUrl?: string;
667
667
  }): Array<TextSegment>;
668
668
 
669
+ declare const isCI: string | undefined;
669
670
  declare const checkIsExtension: () => boolean;
670
671
  declare const getExtensionUrl: () => any;
671
672
  declare const isProduction: boolean;
@@ -785,7 +786,6 @@ declare const PROMPT_LIMITS: {
785
786
  declare const expenseCategory: readonly ["food", "transport", "entertainment", "shopping", "bills", "health", "education", "travel", "other"];
786
787
  type expenseCategoryType = (typeof expenseCategory)[number];
787
788
  declare const budgetCategory: readonly ["food", "transport", "entertainment", "shopping", "bills", "health", "education", "travel", "other"];
788
- declare const isCI: string | undefined;
789
789
  declare const isE2E: boolean;
790
790
  declare const extensionSuggestions: {
791
791
  text: string;
@@ -1077,6 +1077,40 @@ declare function useAppMetadata(app?: appWithStore, enabled?: boolean): void;
1077
1077
  */
1078
1078
  declare function useThreadMetadata(thread?: thread): void;
1079
1079
 
1080
+ /**
1081
+ * A hook that syncs local state with a derived/computed value.
1082
+ * Useful when you need local state that can be overridden by user interaction,
1083
+ * but should reset to the computed value when dependencies change.
1084
+ *
1085
+ * @param computedValue - The value to sync with (derived from props/context)
1086
+ * @param deps - Dependencies that should trigger a reset to computedValue
1087
+ * @returns [value, setValue] - Tuple like useState
1088
+ *
1089
+ * @example
1090
+ * ```tsx
1091
+ * // Syncs with floatingInitial, resets when threadId changes
1092
+ * const [isChatFloating, setIsChatFloating] = useSyncedState(
1093
+ * floatingInitial,
1094
+ * [threadId]
1095
+ * )
1096
+ * ```
1097
+ */
1098
+ declare function useSyncedState<T>(computedValue: T, deps?: React.DependencyList): [T, React.Dispatch<React.SetStateAction<T>>];
1099
+ /**
1100
+ * A simpler version that ALWAYS syncs with the computed value.
1101
+ * Use this when you don't need to override the value locally.
1102
+ *
1103
+ * @param computedValue - The value to always use
1104
+ * @returns The computed value (for consistency with useSyncedState API)
1105
+ *
1106
+ * @example
1107
+ * ```tsx
1108
+ * // Always uses floatingInitial, no local override
1109
+ * const isChatFloating = useComputedValue(floatingInitial)
1110
+ * ```
1111
+ */
1112
+ declare function useComputedValue<T>(computedValue: T): T;
1113
+
1080
1114
  declare function useHasHydrated(): boolean;
1081
1115
  declare function useCountdown(targetDate: Date | null): number | null;
1082
1116
 
@@ -1757,4 +1791,4 @@ interface HistoryRouterProviderProps {
1757
1791
  */
1758
1792
  declare function HistoryRouterProvider({ children, }: HistoryRouterProviderProps): React.ReactElement;
1759
1793
 
1760
- export { ADDITIONAL_CREDITS, API_URL, type AgentCapabilities, type AgentModel, type AiAgent, type AiAgentCapabilities, type ApiActions, BrowserInstance, CHRRY_URL, CREDITS_PRICE, type CalendarEventFormData, type CreateCustomAiAgent, FREE_DAYS, FRONTEND_URL, type FileValidationResult, GUEST_TASKS_COUNT, HistoryRouterProvider, MAX_FILE_LIMITS, MAX_FILE_SIZES, MAX_TOOL_CALLS_PER_MESSAGE, MEMBER_TASKS_COUNT, OWNER_CREDITS, PDF_LIMITS, PLUS_PRICE, PLUS_TASKS_COUNT, PROD_FRONTEND_URL, PROMPT_LIMITS, PRO_PRICE, Sidebar, Store, VERSION, WS_URL, addParam, aiAgentCapabilitiesSchema, aiAgentSchema, apiFetch, type appFormData, appSchema, budgetCategory, capitalizeFirstLetter, checkIsExtension, checkThreadSummaryLimit, createApp, createCalendarEvent, createCustomAiAgentSchema, deleteApp, deleteCalendarEvent, deleteMemories, deleteMessage, deleteSubscription, exampleInstructions, expenseCategory, type expenseCategoryType, exportToGoogleCalendar, extensionSuggestions, formatFileSize, generateAppMetadata, generateStoreMetadata, getActions, getApp, getApps, getBrowserAPI, getBrowserIdentity, getCalendarEvents, getDailyImageLimit, getExampleInstructions, getExtensionUrl, getExtensionUrls, getFlag, getGuest, getHourlyLimit, getImageSrc, getInstructionConfig, getLastMessage, getMaxFileSize, getMetadata, getRedirectURL, getSession, getSlugFromPathname, getThread, getThreadId, getThreads, getTranslations, getUser, getUsers, getWeatherCacheTime, type instructionBase, isCI, isCollaborator, isDeepEqual, isDevelopment, isE2E, isFirefox, isOwner, isProduction, isSameDay, isTestingDevice, isTextFile, isValidUsername, isValidUuidV4, pageSizes, removeParam, removeUser, reorderApps, replaceLinks, storage, syncGoogleCalendar, updateApp, updateCalendarEvent, updateCollaboration, updateGuest, updateMessage, updateThread, updateUser, uploadUserImage, useAppMetadata, useCookieOrLocalStorage, useCountdown, useDeviceInfo, useHasHydrated, useLocalStorage, usePWAInstall, useStoreMetadata, useThreadMetadata, utcToday, validateFile };
1794
+ export { ADDITIONAL_CREDITS, API_URL, type AgentCapabilities, type AgentModel, type AiAgent, type AiAgentCapabilities, type ApiActions, BrowserInstance, CHRRY_URL, CREDITS_PRICE, type CalendarEventFormData, type CreateCustomAiAgent, FREE_DAYS, FRONTEND_URL, type FileValidationResult, GUEST_TASKS_COUNT, HistoryRouterProvider, MAX_FILE_LIMITS, MAX_FILE_SIZES, MAX_TOOL_CALLS_PER_MESSAGE, MEMBER_TASKS_COUNT, OWNER_CREDITS, PDF_LIMITS, PLUS_PRICE, PLUS_TASKS_COUNT, PROD_FRONTEND_URL, PROMPT_LIMITS, PRO_PRICE, Sidebar, Store, VERSION, WS_URL, addParam, aiAgentCapabilitiesSchema, aiAgentSchema, apiFetch, type appFormData, appSchema, budgetCategory, capitalizeFirstLetter, checkIsExtension, checkThreadSummaryLimit, createApp, createCalendarEvent, createCustomAiAgentSchema, deleteApp, deleteCalendarEvent, deleteMemories, deleteMessage, deleteSubscription, exampleInstructions, expenseCategory, type expenseCategoryType, exportToGoogleCalendar, extensionSuggestions, formatFileSize, generateAppMetadata, generateStoreMetadata, getActions, getApp, getApps, getBrowserAPI, getBrowserIdentity, getCalendarEvents, getDailyImageLimit, getExampleInstructions, getExtensionUrl, getExtensionUrls, getFlag, getGuest, getHourlyLimit, getImageSrc, getInstructionConfig, getLastMessage, getMaxFileSize, getMetadata, getRedirectURL, getSession, getSlugFromPathname, getThread, getThreadId, getThreads, getTranslations, getUser, getUsers, getWeatherCacheTime, type instructionBase, isCI, isCollaborator, isDeepEqual, isDevelopment, isE2E, isFirefox, isOwner, isProduction, isSameDay, isTestingDevice, isTextFile, isValidUsername, isValidUuidV4, pageSizes, removeParam, removeUser, reorderApps, replaceLinks, storage, syncGoogleCalendar, updateApp, updateCalendarEvent, updateCollaboration, updateGuest, updateMessage, updateThread, updateUser, uploadUserImage, useAppMetadata, useComputedValue, useCookieOrLocalStorage, useCountdown, useDeviceInfo, useHasHydrated, useLocalStorage, usePWAInstall, useStoreMetadata, useSyncedState, useThreadMetadata, utcToday, validateFile };