newOS Dev Portal
newOS Component Inventory
Complete documentation of 83 input/output components in the newOS platform.
Input Components
ChatInput685 linesMain chat input with AI prompts, file attachments, @mentions, web search & swarm toggles
Model/folder/ChatInput.tsx
OneOnOneDirect messaging component for 1:1 conversations
Model/folder/OneOnOne.tsx
PromptSuggestionAI prompt suggestion pills
Components/PromptSuggestion.tsx
PostCreateCreate new posts
Model/post/PostCreate.tsx
PostCreatePromptPrompt-based post creation
Model/post/PostCreatePrompt.tsx
FolderCreate28,346 bytesCreate new Moods/Spaces - complex multi-step flow
Model/folder/FolderCreate.tsx
FolderCreateAIAI-assisted mood creation
Model/folder/Views/FolderCreateAI.tsx
UploadGeneric file upload wrapper
Components/Upload.tsx
UploadOverlayDrag & drop upload overlay
Components/UploadOverlay.tsx
UploadDialog494 linesFile selection dialog with preview, type detection
MediaComponents/UploadDialog.tsx
UploadPictureImage-specific upload
MediaComponents/UploadPicture.tsx
PicturesWallMulti-image gallery upload/display
MediaComponents/PicturesWall.tsx
SearchBoxGlobal search input
Components/SearchBox.tsx
UserSelectBoxUser picker/autocomplete
Components/UserSelectBox.tsx
UserFolderSelectFolder selection for attachments
Components/UserFolderSelect.tsx
PhoneSignIn16,695 bytesPhone number authentication
Forms/PhoneSignIn.tsx
ConnectDialogWeb3/wallet connection dialog
Components/ConnectDialog.tsx
FolderAttachAttach posts to folders
Model/folder/FolderAttach.tsx
Output Components
PostSingle post renderer
Model/post/Post.tsx
PostWidget30,260 bytesFull post card with actions
Model/post/PostWidget.tsx
PostActionPanelLike, share, save actions
Model/post/PostActionPanel.tsx
PostThinkingClaimsAI reasoning/claims display
Model/post/PostThinkingClaims.tsx
ReasoningV222,992 bytesAI reasoning chain display
Model/post/ReasoningV2.tsx
VotingPostItemPost with voting UI
Model/post/VotingPostItem.tsx
Folder42,782 bytesMain folder/mood view - complex
Model/folder/Folder.tsx
FolderWidgetFolder card widget
Model/folder/FolderWidget.tsx
FolderCore38,412 bytesCore folder layout
Model/folder/Views/FolderCore.tsx
FolderChat35,767 bytesChat view inside folder
Model/folder/Views/FolderChat.tsx
FolderAnalyticsFolder analytics dashboard
Model/folder/Views/FolderAnalytics.tsx
FolderInfoWrapperFolder metadata display
Model/folder/Views/FolderInfoWrapper.tsx
ContributorsWidgetsFolder contributors display
Model/folder/Views/ContributorsWidgets.tsx
UserBasic user display
Model/user/User.tsx
UserAvatarUser avatar with fallback
Model/user/UserAvatar.tsx
UserCardUser summary card
Model/user/UserCard.tsx
UserCardExtended20,046 bytesFull user profile card
Model/user/UserCardExtended.tsx
UserChipInline user mention chip
Model/user/UserChip.tsx
UserFoldersUser's folders list
Model/user/UserFolders.tsx
UsersGridGrid of users
Model/user/UsersGrid.tsx
WattsWATTS token display
Model/user/Watts.tsx
outgraph8,629 bytesSocial graph visualization
Model/user/outgraph.tsx
MediaComponentUniversal media renderer
MediaComponents/MediaComponent.tsx
ImageMediaComponentImage display with zoom
MediaComponents/ImageMediaComponent.tsx
VideoMediaComponentVideo player
MediaComponents/VideoMediaComponent.tsx
TextMediaComponent13,834 bytesRich text renderer
MediaComponents/TextMediaComponent.tsx
UniversalComponentAuto-detect media type
MediaComponents/UniversalComponent.tsx
ItemGrid12,571 bytesMain content grid
Components/ItemGrid.tsx
ItemMatrixMatrix layout component
Components/ItemMatrix.tsx
FlexibleListFlexible item list
Components/FlexibleList.tsx
LeaderBoard13,260 bytesRanking display
Components/LeaderBoard.tsx
Hybrid Components
React Hooks
useProgressiveLiveQueryProgressive data loading with live updates
hooks/useProgressiveLiveQuery.ts
useRatingStreamReal-time voting/rating stream
hooks/useRatingStream.ts
useChatHistoryChat message history management
hooks/useChatHistory.ts
useFolderAttachmentsFolder attachment state
hooks/useFolderAttachments.ts
useScrollItemsInfinite scroll pagination
hooks/useScrollItems.ts
useAlertAlert/toast notifications
hooks/useAlert.tsx
useDialogModal dialog management
hooks/useDialog.tsx
useFlowSettingsMulti-step flow configuration
hooks/useFlowSettings.tsx
useIsWideScreenResponsive layout detection
hooks/useIsWideScreen.tsx
useVisibilityElement visibility tracking
hooks/useVisibility.ts
useContentImageUrlImage URL resolution
hooks/useContentImageUrl.ts
useEmbedEmbed/preview detection
hooks/useEmbed.tsx
useOpenGraphOpenGraph metadata fetching
hooks/useOpenGraph.tsx
useTypewriterTypewriter effect
hooks/useTypewriter.tsx
usePresigninRedirectPre-auth URL handling
hooks/usePresigninRedirect.tsx
useSubscriberInfoSubscription status
hooks/useSubscriberInfo.tsx
useRatingUser rating actions
hooks/useRating.tsx
useNotificationPromptPush notification opt-in
hooks/useNotificationPrompt.ts
usePWAPromptPWA install prompt
hooks/usePWAPrompt.ts
API Actions
auth.ts6,028 bytesLogin, logout, token management
newgraph-signals/src/actions/auth.ts
folder.ts31,665 bytesMood CRUD, subscriptions
newgraph-signals/src/actions/folder.ts
post.ts18,056 bytesPost CRUD, attachments
newgraph-signals/src/actions/post.ts
user.ts17,565 bytesProfile, avatar, following
newgraph-signals/src/actions/user.ts
search.tsGlobal search
newgraph-signals/src/actions/search.ts
agent.ts7,333 bytesAI agent orchestration
newgraph-signals/src/actions/agent.ts
uploadFile upload flow
newgraph-signals/src/actions/upload/
payment.tsSubscription payments
newgraph-signals/src/actions/payment.ts
ratingStream.tsReal-time voting
newgraph-signals/src/actions/ratingStream.ts
activityStreamActivity feed
newgraph-signals/src/actions/activityStream/
firebase.tsPush notifications
newgraph-signals/src/actions/firebase.ts
metamask.tsWeb3 wallet connection
newgraph-signals/src/actions/metamask.ts
Core Data Types
// Post with local enhancements
type EnrichedPost = PostReadResponse & {
uploadState?: PostUploadState;
thumbUrl?: string;
aiMeta?: AIMeta;
reasoning?: string[];
relativeRating?: number;
};
// Folder/Mood with local state
type EnrichedFolder = MoodReadResponse &
FolderVotingState &
LocalFolderExhancements;
// Upload state machine
type PostUploadState = {
status: "preparing" | "created" | "attached" |
"upload-requested" | "uploaded";
filename: string;
blob: Blob;
thumb: string;
foldersToAttach: { id: string }[];
};
// AI response metadata
interface AIMeta {
model?: { name?: string; provider?: string };
usage?: { tokens?: { prompt?: number; completion?: number } };
request?: {
prompt?: string;
completion?: string;
reasoning?: string[];
references?: string[];
swarm?: string[];
};
}