apps/mobile/assets/file-icons/pierre_agents.png | Bin 0 -> 2500 bytes apps/mobile/assets/file-icons/pierre_astro.png | Bin 0 -> 1975 bytes apps/mobile/assets/file-icons/pierre_babel.png | Bin 0 -> 2899 bytes apps/mobile/assets/file-icons/pierre_bash.png | Bin 0 -> 1944 bytes apps/mobile/assets/file-icons/pierre_biome.png | Bin 0 -> 1865 bytes apps/mobile/assets/file-icons/pierre_bootstrap.png | Bin 0 -> 1949 bytes apps/mobile/assets/file-icons/pierre_browserslist.png | Bin 0 -> 3352 bytes apps/mobile/assets/file-icons/pierre_bun.png | Bin 0 -> 2620 bytes apps/mobile/assets/file-icons/pierre_c.png | Bin 0 -> 2019 bytes apps/mobile/assets/file-icons/pierre_claude.png | Bin 0 -> 3782 bytes apps/mobile/assets/file-icons/pierre_cpp.png | Bin 0 -> 2019 bytes apps/mobile/assets/file-icons/pierre_css.png | Bin 0 -> 2806 bytes apps/mobile/assets/file-icons/pierre_database.png | Bin 0 -> 2175 bytes apps/mobile/assets/file-icons/pierre_default.png | Bin 0 -> 1054 bytes apps/mobile/assets/file-icons/pierre_docker.png | Bin 0 -> 1799 bytes apps/mobile/assets/file-icons/pierre_eslint.png | Bin 0 -> 2689 bytes apps/mobile/assets/file-icons/pierre_font.png | Bin 0 -> 2463 bytes apps/mobile/assets/file-icons/pierre_git.png | Bin 0 -> 1584 bytes apps/mobile/assets/file-icons/pierre_go.png | Bin 0 -> 2104 bytes apps/mobile/assets/file-icons/pierre_graphql.png | Bin 0 -> 2691 bytes apps/mobile/assets/file-icons/pierre_html.png | Bin 0 -> 2130 bytes apps/mobile/assets/file-icons/pierre_image.png | Bin 0 -> 1776 bytes apps/mobile/assets/file-icons/pierre_javascript.png | Bin 0 -> 2271 bytes apps/mobile/assets/file-icons/pierre_json.png | Bin 0 -> 1620 bytes apps/mobile/assets/file-icons/pierre_markdown.png | Bin 0 -> 870 bytes apps/mobile/assets/file-icons/pierre_mcp.png | Bin 0 -> 4074 bytes apps/mobile/assets/file-icons/pierre_nextjs.png | Bin 0 -> 1434 bytes apps/mobile/assets/file-icons/pierre_npm.png | Bin 0 -> 534 bytes apps/mobile/assets/file-icons/pierre_oxc.png | Bin 0 -> 2436 bytes apps/mobile/assets/file-icons/pierre_pnpm.png | Bin 0 -> 620 bytes apps/mobile/assets/file-icons/pierre_postcss.png | Bin 0 -> 3765 bytes apps/mobile/assets/file-icons/pierre_prettier.png | Bin 0 -> 497 bytes apps/mobile/assets/file-icons/pierre_python.png | Bin 0 -> 2236 bytes apps/mobile/assets/file-icons/pierre_react.png | Bin 0 -> 3993 bytes apps/mobile/assets/file-icons/pierre_ruby.png | Bin 0 -> 2115 bytes apps/mobile/assets/file-icons/pierre_rust.png | Bin 0 -> 3548 bytes apps/mobile/assets/file-icons/pierre_sass.png | Bin 0 -> 2792 bytes apps/mobile/assets/file-icons/pierre_stylelint.png | Bin 0 -> 2103 bytes apps/mobile/assets/file-icons/pierre_svelte.png | Bin 0 -> 3335 bytes apps/mobile/assets/file-icons/pierre_svg.png | Bin 0 -> 1453 bytes apps/mobile/assets/file-icons/pierre_svgo.png | Bin 0 -> 3222 bytes apps/mobile/assets/file-icons/pierre_swift.png | Bin 0 -> 2663 bytes apps/mobile/assets/file-icons/pierre_table.png | Bin 0 -> 1195 bytes apps/mobile/assets/file-icons/pierre_tailwind.png | Bin 0 -> 1258 bytes apps/mobile/assets/file-icons/pierre_terraform.png | Bin 0 -> 1939 bytes apps/mobile/assets/file-icons/pierre_text.png | Bin 0 -> 1142 bytes apps/mobile/assets/file-icons/pierre_typescript.png | Bin 0 -> 2103 bytes apps/mobile/assets/file-icons/pierre_video.png | Bin 0 -> 676 bytes apps/mobile/assets/file-icons/pierre_vite.png | Bin 0 -> 1556 bytes apps/mobile/assets/file-icons/pierre_vscode.png | Bin 0 -> 2387 bytes apps/mobile/assets/file-icons/pierre_vue.png | Bin 0 -> 1541 bytes apps/mobile/assets/file-icons/pierre_wasm.png | Bin 0 -> 1939 bytes apps/mobile/assets/file-icons/pierre_webpack.png | Bin 0 -> 3337 bytes apps/mobile/assets/file-icons/pierre_yml.png | Bin 0 -> 1039 bytes apps/mobile/assets/file-icons/pierre_zig.png | Bin 0 -> 2199 bytes apps/mobile/assets/file-icons/pierre_zip.png | Bin 0 -> 1081 bytes apps/mobile/assets/link-icons/github.png | Bin 0 -> 1727 bytes apps/mobile/deps/README.md | 3 + apps/mobile/deps/react-native-enriched-markdown-1.2.0-t3.10.tgz | Bin 0 -> 1092871 bytes apps/mobile/modules/t3-composer-editor/android/build.gradle | 1 - apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ComposerEditorView.kt | 1 - apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ContextChip.kt | 184 +++++ apps/mobile/modules/t3-markdown-text/LICENSE | 20 - apps/mobile/modules/t3-markdown-text/T3MarkdownText.podspec | 25 - apps/mobile/modules/t3-markdown-text/UPSTREAM.md | 12 - apps/mobile/modules/t3-markdown-text/android/build.gradle | 32 - apps/mobile/modules/t3-markdown-text/android/src/main/java/expo/modules/t3markdowntext/T3ContextChip.kt | 184 ----- apps/mobile/modules/t3-markdown-text/android/src/main/java/expo/modules/t3markdowntext/T3MarkdownTextSelectionModule.kt | 302 -------- apps/mobile/modules/t3-markdown-text/android/src/test/java/expo/modules/t3markdowntext/MarkdownSelectionColorTest.kt | 67 -- apps/mobile/modules/t3-markdown-text/android/src/test/java/expo/modules/t3markdowntext/MarkdownSelectionCopyTest.kt | 48 -- apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_agents.png | Bin 2500 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_astro.png | Bin 1975 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_babel.png | Bin 2899 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_bash.png | Bin 1944 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_biome.png | Bin 1865 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_bootstrap.png | Bin 1949 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_browserslist.png | Bin 3352 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_bun.png | Bin 2620 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_c.png | Bin 2019 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_claude.png | Bin 3782 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_cpp.png | Bin 2019 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_css.png | Bin 2806 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_database.png | Bin 2175 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_default.png | Bin 1054 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_docker.png | Bin 1799 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_eslint.png | Bin 2689 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_font.png | Bin 2463 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_git.png | Bin 1584 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_go.png | Bin 2104 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_graphql.png | Bin 2691 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_html.png | Bin 2130 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_image.png | Bin 1776 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_javascript.png | Bin 2271 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_json.png | Bin 1620 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_markdown.png | Bin 870 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_mcp.png | Bin 4074 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_nextjs.png | Bin 1434 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_npm.png | Bin 534 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_oxc.png | Bin 2436 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_pnpm.png | Bin 620 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_postcss.png | Bin 3765 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_prettier.png | Bin 497 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_python.png | Bin 2236 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_react.png | Bin 3993 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_ruby.png | Bin 2115 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_rust.png | Bin 3548 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_sass.png | Bin 2792 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_stylelint.png | Bin 2103 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_svelte.png | Bin 3335 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_svg.png | Bin 1453 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_svgo.png | Bin 3222 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_swift.png | Bin 2663 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_table.png | Bin 1195 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_tailwind.png | Bin 1258 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_terraform.png | Bin 1939 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_text.png | Bin 1142 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_typescript.png | Bin 2103 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_video.png | Bin 676 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_vite.png | Bin 1556 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_vscode.png | Bin 2387 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_vue.png | Bin 1541 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_wasm.png | Bin 1939 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_webpack.png | Bin 3337 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_yml.png | Bin 1039 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_zig.png | Bin 2199 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/file-icons/pierre_zip.png | Bin 1081 -> 0 bytes apps/mobile/modules/t3-markdown-text/assets/link-icons/github.png | Bin 1727 -> 0 bytes apps/mobile/modules/t3-markdown-text/expo-module.config.json | 6 - apps/mobile/modules/t3-markdown-text/index.ts | 29 - apps/mobile/modules/t3-markdown-text/ios/T3ContextChip.h | 162 ---- apps/mobile/modules/t3-markdown-text/ios/T3MarkdownText.h | 13 - apps/mobile/modules/t3-markdown-text/ios/T3MarkdownText.mm | 839 -------------------- apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextComponentDescriptor.h | 13 - apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextManager.mm | 35 - apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextRun.h | 28 - apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextRun.mm | 140 ---- apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextRunComponentDescriptor.h | 13 - apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextRunShadowNode.cpp | 6 - apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextRunShadowNode.h | 16 - apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextShadowNode.h | 82 -- apps/mobile/modules/t3-markdown-text/ios/T3MarkdownTextShadowNode.mm | 303 -------- apps/mobile/modules/t3-markdown-text/package.json | 57 -- apps/mobile/modules/t3-markdown-text/react-native.config.js | 10 - apps/mobile/modules/t3-markdown-text/scripts/sync-pierre-file-icons.mjs | 134 ---- apps/mobile/modules/t3-markdown-text/src/CopyTextButton.tsx | 73 -- apps/mobile/modules/t3-markdown-text/src/MarkdownTextPrimitive.tsx | 179 ----- apps/mobile/modules/t3-markdown-text/src/NativeMarkdownBlock.tsx | 687 ---------------- apps/mobile/modules/t3-markdown-text/src/NativeMarkdownSelectableText.tsx | 446 ----------- apps/mobile/modules/t3-markdown-text/src/SelectableMarkdownText.tsx | 125 --- apps/mobile/modules/t3-markdown-text/src/SelectableMarkdownText.types.ts | 92 --- apps/mobile/modules/t3-markdown-text/src/T3MarkdownTextNativeComponent.ts | 50 -- apps/mobile/modules/t3-markdown-text/src/T3MarkdownTextRunNativeComponent.ts | 55 -- apps/mobile/modules/t3-markdown-text/src/T3MarkdownTextSelectionModule.ts | 30 - apps/mobile/modules/t3-markdown-text/src/githubAlert.test.ts | 42 - apps/mobile/modules/t3-markdown-text/src/githubAlert.ts | 52 -- apps/mobile/modules/t3-markdown-text/src/markdownFileIcons.generated.ts | 60 -- apps/mobile/modules/t3-markdown-text/src/markdownFileIcons.ts | 17 - apps/mobile/modules/t3-markdown-text/src/markdownLinkIcons.ts | 12 - apps/mobile/modules/t3-markdown-text/src/markdownLinks.ts | 313 -------- apps/mobile/modules/t3-markdown-text/src/nativeMarkdownText.ts | 1159 --------------------------- apps/mobile/modules/t3-markdown-text/src/pendingCodeHighlight.test.ts | 28 - apps/mobile/modules/t3-markdown-text/src/pendingCodeHighlight.ts | 19 - apps/mobile/modules/t3-markdown-text/src/useHighlightedCode.test.tsx | 189 ----- apps/mobile/modules/t3-markdown-text/src/useHighlightedCode.ts | 149 ---- apps/mobile/modules/t3-markdown-text/src/util.ts | 62 -- apps/mobile/modules/t3-source-text/LICENSE | 20 + apps/mobile/modules/t3-source-text/T3SourceText.podspec | 25 + apps/mobile/modules/t3-source-text/UPSTREAM.md | 11 + apps/mobile/modules/t3-source-text/index.ts | 1 + apps/mobile/modules/t3-source-text/ios/T3SourceText.h | 13 + apps/mobile/modules/t3-source-text/ios/T3SourceText.mm | 302 ++++++++ apps/mobile/modules/t3-source-text/ios/T3SourceTextComponentDescriptor.h | 14 + apps/mobile/modules/t3-source-text/ios/T3SourceTextManager.mm | 28 + apps/mobile/modules/t3-source-text/ios/T3SourceTextRun.h | 20 + apps/mobile/modules/t3-source-text/ios/T3SourceTextRun.mm | 54 ++ apps/mobile/modules/t3-source-text/ios/T3SourceTextRunComponentDescriptor.h | 14 + apps/mobile/modules/t3-source-text/ios/T3SourceTextRunShadowNode.cpp | 6 + apps/mobile/modules/t3-source-text/ios/T3SourceTextRunShadowNode.h | 14 + apps/mobile/modules/t3-source-text/ios/T3SourceTextShadowNode.h | 45 ++ apps/mobile/modules/t3-source-text/ios/T3SourceTextShadowNode.mm | 171 ++++ apps/mobile/modules/t3-source-text/package.json | 35 + apps/mobile/modules/t3-source-text/react-native.config.js | 10 + apps/mobile/modules/t3-source-text/src/SourceText.tsx | 54 ++ apps/mobile/modules/t3-source-text/src/T3SourceTextNativeComponent.ts | 45 ++ apps/mobile/modules/t3-source-text/src/T3SourceTextRunNativeComponent.ts | 39 + apps/mobile/modules/t3-source-text/src/util.ts | 79 ++ apps/mobile/package.json | 18 +- apps/mobile/scripts/sync-pierre-file-icons.mjs | 134 ++++ apps/mobile/src/components/AppSheet.tsx | 80 ++ apps/mobile/src/components/ComposerContextSheet.tsx | 459 +++++------ apps/mobile/src/components/ContextSheetSize.ios.tsx | 17 - apps/mobile/src/components/ContextSheetSize.tsx | 4 - apps/mobile/src/components/PierreEntryIcon.tsx | 4 +- apps/mobile/src/features/files/FileMarkdownPreview.tsx | 249 +++--- apps/mobile/src/features/files/SourceFileSurface.tsx | 15 +- apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx | 9 +- apps/mobile/src/features/pull-requests/PullRequestDescription.tsx | 8 +- apps/mobile/src/features/pull-requests/PullRequestMarkdown.tsx | 80 +- apps/mobile/src/features/pull-requests/PullRequestTimeline.tsx | 15 +- apps/mobile/src/features/pull-requests/pullRequestDescription.test.ts | 57 +- apps/mobile/src/features/pull-requests/pullRequestDescriptionContent.test.ts | 10 +- apps/mobile/src/features/pull-requests/pullRequestDescriptionContent.ts | 18 +- apps/mobile/src/features/terminal/TerminalContextSheet.tsx | 65 +- apps/mobile/src/features/threads/ThreadFeed.tsx | 802 +++---------------- apps/mobile/src/features/threads/ThreadMarkdownImage.tsx | 97 ++- apps/mobile/src/features/threads/ThreadMarkdownVideo.tsx | 45 ++ apps/mobile/src/features/threads/fileChipMenu.ts | 4 +- apps/mobile/src/features/threads/markdownImageSize.test.ts | 18 + apps/mobile/src/features/threads/markdownImageSize.ts | 28 + apps/mobile/src/features/threads/worktree-setup-card.tsx | 1 + apps/mobile/src/features/threads/worktree-setup-sheet.tsx | 62 +- apps/mobile/src/lib/composerChipPresentation.test.ts | 85 ++ apps/mobile/src/lib/composerChipPresentation.ts | 87 +++ apps/mobile/src/lib/enrichedLinkPresentation.test.ts | 112 +++ apps/mobile/src/lib/enrichedLinkPresentation.ts | 69 ++ apps/mobile/src/lib/markdownDocument.ts | 146 ++++ apps/mobile/src/lib/markdownFileIcons.generated.ts | 60 ++ apps/mobile/src/lib/markdownFileIcons.ts | 13 + apps/mobile/src/lib/markdownHtml.test.ts | 98 ++- apps/mobile/src/lib/markdownImageSources.ts | 14 +- apps/mobile/src/lib/markdownLinkIcons.ts | 12 + apps/mobile/src/lib/markdownLinks.test.ts | 10 +- apps/mobile/src/lib/markdownLinks.ts | 313 ++++++++ apps/mobile/src/lib/markdownMedia.test.ts | 55 ++ apps/mobile/src/lib/markdownMedia.ts | 75 +- apps/mobile/src/lib/markdownMediaSource.test.ts | 41 + apps/mobile/src/lib/markdownMediaSource.ts | 22 + apps/mobile/src/lib/mediaActions.test.ts | 2 +- apps/mobile/src/lib/nativeMarkdownText.test.ts | 1337 -------------------------------- apps/mobile/src/native/EnrichedMarkdownText.tsx | 360 +++++++++ apps/mobile/src/native/SelectableMarkdownText.android.tsx | 40 - apps/mobile/src/native/SelectableMarkdownText.ios.tsx | 25 - apps/mobile/src/native/SelectableMarkdownText.tsx | 30 +- apps/mobile/src/native/SelectableMarkdownText.types.ts | 84 ++ apps/mobile/src/native/T3ComposerEditor.ios.tsx | 12 +- apps/mobile/src/native/T3ComposerEditor.native.tsx | 12 +- apps/mobile/src/native/createV5StackNavigator.ios.tsx | 4 + apps/mobile/src/native/useEnrichedLinkVariants.ts | 105 +++ apps/mobile/src/native/useMarkdownImageSource.ts | 73 ++ apps/mobile/src/state/mediaActions.ts | 2 +- knip.jsonc | 2 +- patches/react-native-nitro-markdown@0.5.8.patch | 70 -- patches/react-native-nitro-modules@0.35.9.patch | 32 - pnpm-lock.yaml | 112 ++- pnpm-workspace.yaml | 5 +- scripts/release-smoke.ts | 2 +- third-party-licenses.config.json | 2 +- vite.config.ts | 2 +- 248 files changed, 3950 insertions(+), 9478 deletions(-)