@orbit-work/ui 0.1.2-preview.0 β†’ 0.1.3

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.
Files changed (810) hide show
  1. package/README.md +59 -57
  2. package/dist/about-window.cjs +271 -1
  3. package/dist/about-window.cjs.map +1 -0
  4. package/dist/about-window.d.cts +20 -2
  5. package/dist/about-window.d.ts +20 -2
  6. package/dist/about-window.js +271 -1
  7. package/dist/about-window.js.map +1 -0
  8. package/dist/appearance.cjs +41 -1
  9. package/dist/appearance.cjs.map +1 -0
  10. package/dist/appearance.d.cts +7 -1
  11. package/dist/appearance.d.ts +7 -1
  12. package/dist/appearance.js +41 -1
  13. package/dist/appearance.js.map +1 -0
  14. package/dist/brand-preview.cjs +14 -0
  15. package/dist/brand-preview.cjs.map +1 -0
  16. package/dist/brand-preview.d.cts +13 -0
  17. package/dist/brand-preview.d.ts +13 -0
  18. package/dist/brand-preview.js +14 -0
  19. package/dist/brand-preview.js.map +1 -0
  20. package/dist/browser-annotation-popup.cjs +9 -1
  21. package/dist/browser-annotation-popup.cjs.map +1 -0
  22. package/dist/browser-annotation-popup.d.cts +6 -6
  23. package/dist/browser-annotation-popup.d.ts +6 -6
  24. package/dist/browser-annotation-popup.js +9 -1
  25. package/dist/browser-annotation-popup.js.map +1 -0
  26. package/dist/chunk-66VEV7G2.js +111 -0
  27. package/dist/chunk-66VEV7G2.js.map +1 -0
  28. package/dist/chunk-JC7BHKS4.cjs +734 -0
  29. package/dist/chunk-JC7BHKS4.cjs.map +1 -0
  30. package/dist/chunk-K7ONUTLA.cjs +240 -0
  31. package/dist/chunk-K7ONUTLA.cjs.map +1 -0
  32. package/dist/chunk-KTNWR3H5.js +399 -0
  33. package/dist/chunk-KTNWR3H5.js.map +1 -0
  34. package/dist/chunk-LSGO6AQR.js +734 -0
  35. package/dist/chunk-LSGO6AQR.js.map +1 -0
  36. package/dist/chunk-Q7B4M5GC.cjs +399 -0
  37. package/dist/chunk-Q7B4M5GC.cjs.map +1 -0
  38. package/dist/chunk-QS55W5Q5.cjs +111 -0
  39. package/dist/chunk-QS55W5Q5.cjs.map +1 -0
  40. package/dist/chunk-UT5LC6MR.js +38 -0
  41. package/dist/chunk-UT5LC6MR.js.map +1 -0
  42. package/dist/chunk-ZXMHCL6D.js +240 -0
  43. package/dist/chunk-ZXMHCL6D.js.map +1 -0
  44. package/dist/chunk-ZZTEY4YX.cjs +38 -0
  45. package/dist/chunk-ZZTEY4YX.cjs.map +1 -0
  46. package/dist/core.css +7895 -0
  47. package/dist/core.scoped.css +7888 -0
  48. package/dist/file-tree.css +85 -0
  49. package/dist/index-nLo7jMlP.d.cts +166 -0
  50. package/dist/index-nLo7jMlP.d.ts +166 -0
  51. package/dist/index.cjs +38996 -26
  52. package/dist/index.cjs.map +1 -0
  53. package/dist/index.d.cts +3797 -3027
  54. package/dist/index.d.ts +3797 -3027
  55. package/dist/index.js +38996 -26
  56. package/dist/index.js.map +1 -0
  57. package/dist/locale.cjs +15 -0
  58. package/dist/locale.cjs.map +1 -0
  59. package/dist/locale.d.cts +28 -0
  60. package/dist/locale.d.ts +28 -0
  61. package/dist/locale.js +15 -0
  62. package/dist/locale.js.map +1 -0
  63. package/dist/office.css +1146 -0
  64. package/dist/slot-core.cjs +200 -0
  65. package/dist/slot-core.cjs.map +1 -0
  66. package/dist/slot-core.d.cts +146 -0
  67. package/dist/slot-core.d.ts +146 -0
  68. package/dist/slot-core.js +200 -0
  69. package/dist/slot-core.js.map +1 -0
  70. package/dist/slot-react.cjs +153 -0
  71. package/dist/slot-react.cjs.map +1 -0
  72. package/dist/slot-react.d.cts +36 -0
  73. package/dist/slot-react.d.ts +36 -0
  74. package/dist/slot-react.js +153 -0
  75. package/dist/slot-react.js.map +1 -0
  76. package/dist/tailwind.css +137 -0
  77. package/dist/unifiedTheme-DQ-sETKO.d.cts +201 -0
  78. package/dist/unifiedTheme-DQ-sETKO.d.ts +201 -0
  79. package/dist/workbench.css +9023 -0
  80. package/package.json +126 -47
  81. package/dist/appearance-D5uQ53j3.d.cts +0 -210
  82. package/dist/appearance-D5uQ53j3.d.ts +0 -210
  83. package/dist/chunk-3KT7IU4X.js +0 -13
  84. package/dist/chunk-5VLBKOG7.cjs +0 -194
  85. package/dist/chunk-7YJY64LZ.js +0 -82
  86. package/dist/chunk-EF2BSN3K.cjs +0 -13
  87. package/dist/chunk-GMMYDILD.cjs +0 -82
  88. package/dist/chunk-VG7FQQ7K.js +0 -194
  89. package/dist/fonts/JetBrainsMono-Medium.ttf +0 -0
  90. package/dist/fonts/JetBrainsMono-Regular.ttf +0 -0
  91. package/dist/fonts/SpaceGrotesk-700-latin-ext.woff2 +0 -0
  92. package/dist/fonts/SpaceGrotesk-700-latin.woff2 +0 -0
  93. package/dist/index.css +0 -1
  94. package/dist/orbitwork.css +0 -22209
  95. package/src/components/Layout/AppLayout/AppLayout.stories.tsx +0 -246
  96. package/src/components/Layout/AppLayout/AppLayoutSource.test.mjs +0 -37
  97. package/src/components/Layout/AppLayout/index.tsx +0 -122
  98. package/src/components/Layout/Sidebar/index.tsx +0 -13
  99. package/src/components/Layout/SidebarShell/SidebarShell.stories.tsx +0 -676
  100. package/src/components/Layout/SidebarShell/SidebarShellSource.test.mjs +0 -161
  101. package/src/components/Layout/SidebarShell/index.tsx +0 -326
  102. package/src/components/Layout/index.ts +0 -10
  103. package/src/components/composite/ActionBar/ActionBar.stories.tsx +0 -26
  104. package/src/components/composite/ActionBar/index.tsx +0 -31
  105. package/src/components/composite/ActionStatus/ActionStatus.stories.tsx +0 -60
  106. package/src/components/composite/ActionStatus/index.tsx +0 -21
  107. package/src/components/composite/AskQuestionCardView/AskQuestionCardView.stories.tsx +0 -175
  108. package/src/components/composite/AskQuestionCardView/AskQuestionCardViewSource.test.mjs +0 -92
  109. package/src/components/composite/AskQuestionCardView/index.tsx +0 -119
  110. package/src/components/composite/AssistantChannelCard/AssistantChannelCard.stories.tsx +0 -265
  111. package/src/components/composite/AssistantChannelCard/AssistantChannelCardSource.test.mjs +0 -45
  112. package/src/components/composite/AssistantChannelCard/index.tsx +0 -102
  113. package/src/components/composite/AssistantToggleRow/AssistantToggleRow.stories.tsx +0 -197
  114. package/src/components/composite/AssistantToggleRow/index.tsx +0 -35
  115. package/src/components/composite/AttachmentCard/AttachmentCard.stories.tsx +0 -125
  116. package/src/components/composite/AttachmentCard/index.tsx +0 -80
  117. package/src/components/composite/BackButton/BackButton.stories.tsx +0 -93
  118. package/src/components/composite/BackButton/BackButtonSource.test.mjs +0 -29
  119. package/src/components/composite/BackButton/index.tsx +0 -48
  120. package/src/components/composite/Banner/Banner.stories.tsx +0 -180
  121. package/src/components/composite/Banner/BannerSource.test.mjs +0 -67
  122. package/src/components/composite/Banner/index.tsx +0 -125
  123. package/src/components/composite/BeaconIcons/BeaconIcons.stories.tsx +0 -153
  124. package/src/components/composite/BeaconIcons/index.tsx +0 -265
  125. package/src/components/composite/BeaconSpinner/BeaconSpinner.stories.tsx +0 -144
  126. package/src/components/composite/BeaconSpinner/index.tsx +0 -185
  127. package/src/components/composite/CatalogStates/CatalogEmptyState.stories.tsx +0 -108
  128. package/src/components/composite/CatalogStates/CatalogStates.stories.tsx +0 -53
  129. package/src/components/composite/CatalogStates/CatalogStatesSource.test.mjs +0 -149
  130. package/src/components/composite/CatalogStates/index.tsx +0 -113
  131. package/src/components/composite/Charts/Charts.stories.tsx +0 -174
  132. package/src/components/composite/Charts/ChartsSource.test.mjs +0 -111
  133. package/src/components/composite/Charts/index.tsx +0 -385
  134. package/src/components/composite/CodeBlock/CodeBlock.stories.tsx +0 -308
  135. package/src/components/composite/CodeBlock/CodeFaceSource.test.mjs +0 -89
  136. package/src/components/composite/CodeBlock/index.tsx +0 -300
  137. package/src/components/composite/CodeDiff/CodeDiff.stories.tsx +0 -169
  138. package/src/components/composite/CodeDiff/index.tsx +0 -373
  139. package/src/components/composite/CodePreview/CodePreview.stories.tsx +0 -127
  140. package/src/components/composite/CodePreview/CodePreviewSource.test.mjs +0 -43
  141. package/src/components/composite/CodePreview/index.tsx +0 -98
  142. package/src/components/composite/CommandPalette/CommandPalette.stories.tsx +0 -89
  143. package/src/components/composite/CommandPalette/CommandPaletteSource.test.mjs +0 -61
  144. package/src/components/composite/CommandPalette/index.tsx +0 -310
  145. package/src/components/composite/ContentRecommendation/ContentRecommendation.stories.tsx +0 -300
  146. package/src/components/composite/ContentRecommendation/ContentRecommendationSource.test.mjs +0 -48
  147. package/src/components/composite/ContentRecommendation/index.tsx +0 -116
  148. package/src/components/composite/ContextChip/ContextChip.stories.tsx +0 -123
  149. package/src/components/composite/ContextChip/ContextChipSource.test.mjs +0 -24
  150. package/src/components/composite/ContextChip/index.tsx +0 -25
  151. package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorSizeSource.test.mjs +0 -15
  152. package/src/components/composite/ContextUsageIndicatorView/ContextUsageIndicatorView.stories.tsx +0 -110
  153. package/src/components/composite/ContextUsageIndicatorView/ContextUsageLoadingSource.test.mjs +0 -23
  154. package/src/components/composite/ContextUsageIndicatorView/index.tsx +0 -139
  155. package/src/components/composite/Controls/Controls.stories.tsx +0 -227
  156. package/src/components/composite/Controls/index.tsx +0 -15
  157. package/src/components/composite/CreateProjectDialog/CreateProjectDialog.stories.tsx +0 -56
  158. package/src/components/composite/CreateProjectDialog/index.tsx +0 -70
  159. package/src/components/composite/DataManagementSectionView/DataManagementSectionView.stories.tsx +0 -123
  160. package/src/components/composite/DataManagementSectionView/DataManagementSectionViewSource.test.mjs +0 -45
  161. package/src/components/composite/DataManagementSectionView/index.tsx +0 -110
  162. package/src/components/composite/DataTable/DataTable.stories.tsx +0 -159
  163. package/src/components/composite/DataTable/DataTableSource.test.mjs +0 -96
  164. package/src/components/composite/DataTable/index.tsx +0 -373
  165. package/src/components/composite/DetailChrome/DetailChrome.stories.tsx +0 -61
  166. package/src/components/composite/DetailChrome/DetailChromeSource.test.mjs +0 -31
  167. package/src/components/composite/DetailChrome/index.tsx +0 -94
  168. package/src/components/composite/DetailPanel/DetailPanel.stories.tsx +0 -185
  169. package/src/components/composite/DetailPanel/DetailPanelSource.test.mjs +0 -49
  170. package/src/components/composite/DetailPanel/index.tsx +0 -120
  171. package/src/components/composite/DetailScaffold/DetailScaffold.stories.tsx +0 -203
  172. package/src/components/composite/DetailScaffold/DetailScaffoldSource.test.mjs +0 -38
  173. package/src/components/composite/DetailScaffold/index.tsx +0 -114
  174. package/src/components/composite/Dialog/Dialog.stories.tsx +0 -343
  175. package/src/components/composite/Dialog/DialogSource.test.mjs +0 -130
  176. package/src/components/composite/Dialog/index.tsx +0 -333
  177. package/src/components/composite/DropZone/DropZone.stories.tsx +0 -105
  178. package/src/components/composite/DropZone/DropZoneSource.test.mjs +0 -68
  179. package/src/components/composite/DropZone/index.tsx +0 -196
  180. package/src/components/composite/FSelect/FSelect.stories.tsx +0 -64
  181. package/src/components/composite/FSelect/index.tsx +0 -29
  182. package/src/components/composite/FeedbackContextMenuView/FeedbackContextMenuView.stories.tsx +0 -106
  183. package/src/components/composite/FeedbackContextMenuView/index.tsx +0 -51
  184. package/src/components/composite/FeedbackDialogView/FeedbackDialogView.stories.tsx +0 -291
  185. package/src/components/composite/FeedbackDialogView/index.tsx +0 -95
  186. package/src/components/composite/FileReferenceCard/FileReferenceCard.stories.tsx +0 -364
  187. package/src/components/composite/FileReferenceCard/FileReferenceCardSource.test.mjs +0 -48
  188. package/src/components/composite/FileReferenceCard/index.tsx +0 -122
  189. package/src/components/composite/FilterBar/FilterBar.stories.tsx +0 -167
  190. package/src/components/composite/FilterBar/FilterBarSource.test.mjs +0 -75
  191. package/src/components/composite/FilterBar/index.tsx +0 -206
  192. package/src/components/composite/FormField/FormField.stories.tsx +0 -158
  193. package/src/components/composite/FormField/FormFieldSource.test.mjs +0 -56
  194. package/src/components/composite/FormField/index.tsx +0 -219
  195. package/src/components/composite/HomeBackdrop/HomeBackdrop.stories.tsx +0 -54
  196. package/src/components/composite/HomeBackdrop/HomeBackdropSource.test.mjs +0 -50
  197. package/src/components/composite/HomeBackdrop/index.tsx +0 -53
  198. package/src/components/composite/Icons/Icons.stories.tsx +0 -153
  199. package/src/components/composite/Icons/IconsSource.test.mjs +0 -23
  200. package/src/components/composite/Icons/index.tsx +0 -1367
  201. package/src/components/composite/ImageCard/ImageCard.stories.tsx +0 -54
  202. package/src/components/composite/ImageCard/index.tsx +0 -33
  203. package/src/components/composite/ImagePreview/ImagePreview.stories.tsx +0 -172
  204. package/src/components/composite/ImagePreview/ImagePreviewSource.test.mjs +0 -95
  205. package/src/components/composite/ImagePreview/index.tsx +0 -339
  206. package/src/components/composite/ListRow/ListRow.stories.tsx +0 -257
  207. package/src/components/composite/ListRow/ListRowSource.test.mjs +0 -101
  208. package/src/components/composite/ListRow/index.tsx +0 -309
  209. package/src/components/composite/Markdown/Markdown.stories.tsx +0 -192
  210. package/src/components/composite/Markdown/MarkdownSource.test.mjs +0 -126
  211. package/src/components/composite/Markdown/MarkdownStyleSource.test.mjs +0 -167
  212. package/src/components/composite/Markdown/index.tsx +0 -702
  213. package/src/components/composite/MarkdownPreview/MarkdownPreview.stories.tsx +0 -174
  214. package/src/components/composite/MarkdownPreview/MarkdownPreviewTabsSource.test.mjs +0 -31
  215. package/src/components/composite/MarkdownPreview/MarkdownRenderedStyleSource.test.mjs +0 -84
  216. package/src/components/composite/MarkdownPreview/index.tsx +0 -140
  217. package/src/components/composite/MarkdownPreviewModalView/MarkdownPreviewModalView.stories.tsx +0 -104
  218. package/src/components/composite/MarkdownPreviewModalView/index.tsx +0 -85
  219. package/src/components/composite/MessageFeedbackDialog/MessageFeedbackDialog.stories.tsx +0 -66
  220. package/src/components/composite/MessageFeedbackDialog/index.tsx +0 -115
  221. package/src/components/composite/ModelCatalogErrorState/ModelCatalogErrorState.stories.tsx +0 -101
  222. package/src/components/composite/ModelCatalogErrorState/ModelCatalogRetrySource.test.mjs +0 -86
  223. package/src/components/composite/ModelCatalogErrorState/index.tsx +0 -59
  224. package/src/components/composite/ModelModalityFlow/ModelModalityFlow.stories.tsx +0 -224
  225. package/src/components/composite/ModelModalityFlow/ModelModalityFlowSource.test.mjs +0 -56
  226. package/src/components/composite/ModelModalityFlow/index.tsx +0 -113
  227. package/src/components/composite/ModelPickerList/ModelPickerList.stories.tsx +0 -313
  228. package/src/components/composite/ModelPickerList/index.tsx +0 -142
  229. package/src/components/composite/ModelSelect/ModelSelect.stories.tsx +0 -90
  230. package/src/components/composite/ModelSelect/index.tsx +0 -148
  231. package/src/components/composite/ModelsSettingsSectionView/ModelsSettingsSectionView.stories.tsx +0 -170
  232. package/src/components/composite/ModelsSettingsSectionView/index.tsx +0 -139
  233. package/src/components/composite/NativeControls/NativeControls.stories.tsx +0 -386
  234. package/src/components/composite/NativeControls/NativeControlsStyleSource.test.mjs +0 -63
  235. package/src/components/composite/NativeControls/index.tsx +0 -97
  236. package/src/components/composite/NavMenu/NavMenu.stories.tsx +0 -383
  237. package/src/components/composite/NavMenu/NavMenuSource.test.mjs +0 -56
  238. package/src/components/composite/NavMenu/index.tsx +0 -142
  239. package/src/components/composite/NoPlanPanelView/NoPlanPanelView.stories.tsx +0 -344
  240. package/src/components/composite/NoPlanPanelView/NoPlanPanelViewSource.test.mjs +0 -34
  241. package/src/components/composite/NoPlanPanelView/index.tsx +0 -97
  242. package/src/components/composite/OpenWithButton/OpenWithButton.stories.tsx +0 -78
  243. package/src/components/composite/OpenWithButton/index.tsx +0 -46
  244. package/src/components/composite/OrbitworkLogo/OrbitworkLogo.stories.tsx +0 -192
  245. package/src/components/composite/OrbitworkLogo/index.tsx +0 -207
  246. package/src/components/composite/OrbitworkModal/OrbitworkModal.stories.tsx +0 -58
  247. package/src/components/composite/OrbitworkModal/index.tsx +0 -31
  248. package/src/components/composite/PageHead/PageHead.stories.tsx +0 -235
  249. package/src/components/composite/PageHead/PageHeadSource.test.mjs +0 -76
  250. package/src/components/composite/PageHead/index.tsx +0 -128
  251. package/src/components/composite/PlanFeatureIcon/PlanFeatureIcon.stories.tsx +0 -205
  252. package/src/components/composite/PlanFeatureIcon/PlanFeatureIconSource.test.mjs +0 -38
  253. package/src/components/composite/PlanFeatureIcon/index.tsx +0 -48
  254. package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionView.stories.tsx +0 -231
  255. package/src/components/composite/PlanSettingsSectionView/PlanSettingsSectionViewSource.test.mjs +0 -85
  256. package/src/components/composite/PlanSettingsSectionView/index.tsx +0 -264
  257. package/src/components/composite/Popover/Popover.stories.tsx +0 -175
  258. package/src/components/composite/Popover/PopoverSource.test.mjs +0 -59
  259. package/src/components/composite/Popover/index.tsx +0 -176
  260. package/src/components/composite/PptxRenderer/ElementDispatcher/index.tsx +0 -70
  261. package/src/components/composite/PptxRenderer/PptxChromeStyleSource.test.mjs +0 -36
  262. package/src/components/composite/PptxRenderer/PptxRenderer.stories.tsx +0 -128
  263. package/src/components/composite/PptxRenderer/PptxSlide/index.tsx +0 -48
  264. package/src/components/composite/PptxRenderer/constants.ts +0 -2
  265. package/src/components/composite/PptxRenderer/elements/AudioElement/index.tsx +0 -48
  266. package/src/components/composite/PptxRenderer/elements/ChartElement/index.tsx +0 -172
  267. package/src/components/composite/PptxRenderer/elements/DiagramElement/index.tsx +0 -46
  268. package/src/components/composite/PptxRenderer/elements/GroupElement/index.tsx +0 -28
  269. package/src/components/composite/PptxRenderer/elements/ImageElement/index.tsx +0 -61
  270. package/src/components/composite/PptxRenderer/elements/MathElement/index.tsx +0 -57
  271. package/src/components/composite/PptxRenderer/elements/ShapeElement/index.tsx +0 -327
  272. package/src/components/composite/PptxRenderer/elements/TableElement/index.tsx +0 -90
  273. package/src/components/composite/PptxRenderer/elements/TextElement/index.tsx +0 -57
  274. package/src/components/composite/PptxRenderer/elements/VideoElement/index.tsx +0 -43
  275. package/src/components/composite/PptxRenderer/index.ts +0 -24
  276. package/src/components/composite/PptxRenderer/types.ts +0 -326
  277. package/src/components/composite/PptxRenderer/utils.ts +0 -129
  278. package/src/components/composite/ProjectSelect/ProjectSelect.stories.tsx +0 -112
  279. package/src/components/composite/ProjectSelect/ProjectSelectSource.test.mjs +0 -34
  280. package/src/components/composite/ProjectSelect/index.tsx +0 -155
  281. package/src/components/composite/RadioCard/RadioCard.stories.tsx +0 -130
  282. package/src/components/composite/RadioCard/RadioCardSource.test.mjs +0 -42
  283. package/src/components/composite/RadioCard/index.tsx +0 -171
  284. package/src/components/composite/RowOverflowMenu/RowOverflowMenu.stories.tsx +0 -113
  285. package/src/components/composite/RowOverflowMenu/RowOverflowMenuSource.test.mjs +0 -59
  286. package/src/components/composite/RowOverflowMenu/index.tsx +0 -101
  287. package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPrompt.stories.tsx +0 -159
  288. package/src/components/composite/SandboxPermissionPrompt/SandboxPermissionPromptSource.test.mjs +0 -71
  289. package/src/components/composite/SandboxPermissionPrompt/index.tsx +0 -157
  290. package/src/components/composite/SearchInput/SearchInput.stories.tsx +0 -127
  291. package/src/components/composite/SearchInput/index.tsx +0 -91
  292. package/src/components/composite/SearchResult/SearchResult.stories.tsx +0 -305
  293. package/src/components/composite/SearchResult/SearchResultSource.test.mjs +0 -45
  294. package/src/components/composite/SearchResult/index.tsx +0 -148
  295. package/src/components/composite/Section/Section.stories.tsx +0 -148
  296. package/src/components/composite/Section/SectionSource.test.mjs +0 -59
  297. package/src/components/composite/Section/index.tsx +0 -105
  298. package/src/components/composite/SelectionBulkBar/SelectionBulkBar.stories.tsx +0 -111
  299. package/src/components/composite/SelectionBulkBar/SelectionBulkBarSource.test.mjs +0 -44
  300. package/src/components/composite/SelectionBulkBar/index.tsx +0 -99
  301. package/src/components/composite/ShareStrip/ShareStrip.stories.tsx +0 -123
  302. package/src/components/composite/ShareStrip/index.tsx +0 -83
  303. package/src/components/composite/ShortcutSheet/ShortcutSheet.stories.tsx +0 -90
  304. package/src/components/composite/ShortcutSheet/ShortcutSheetSource.test.mjs +0 -49
  305. package/src/components/composite/ShortcutSheet/index.tsx +0 -163
  306. package/src/components/composite/SitesArtifactCardView/SitesArtifactCardView.stories.tsx +0 -328
  307. package/src/components/composite/SitesArtifactCardView/SitesArtifactCardViewSource.test.mjs +0 -45
  308. package/src/components/composite/SitesArtifactCardView/index.tsx +0 -100
  309. package/src/components/composite/Skeleton/Skeleton.stories.tsx +0 -188
  310. package/src/components/composite/Skeleton/SkeletonSource.test.mjs +0 -25
  311. package/src/components/composite/Skeleton/index.tsx +0 -152
  312. package/src/components/composite/Splash/Splash.stories.tsx +0 -150
  313. package/src/components/composite/Splash/index.tsx +0 -229
  314. package/src/components/composite/StatusTag/StatusTag.stories.tsx +0 -66
  315. package/src/components/composite/StatusTag/StatusTagSource.test.mjs +0 -64
  316. package/src/components/composite/StatusTag/index.tsx +0 -78
  317. package/src/components/composite/StepList/StepList.stories.tsx +0 -352
  318. package/src/components/composite/StepList/index.tsx +0 -23
  319. package/src/components/composite/Tag/Tag.stories.tsx +0 -279
  320. package/src/components/composite/Tag/TagSource.test.mjs +0 -67
  321. package/src/components/composite/Tag/index.tsx +0 -229
  322. package/src/components/composite/TimePicker/TimePicker.stories.tsx +0 -91
  323. package/src/components/composite/TimePicker/TimePickerSource.test.mjs +0 -98
  324. package/src/components/composite/TimePicker/index.tsx +0 -208
  325. package/src/components/composite/TitleBar/TitleBar.stories.tsx +0 -329
  326. package/src/components/composite/TitleBar/TitleBarSource.test.mjs +0 -140
  327. package/src/components/composite/TitleBar/index.tsx +0 -350
  328. package/src/components/composite/Toast/Toast.stories.tsx +0 -304
  329. package/src/components/composite/Toast/ToastSource.test.mjs +0 -63
  330. package/src/components/composite/Toast/index.tsx +0 -135
  331. package/src/components/composite/Tooltip/Tooltip.stories.tsx +0 -304
  332. package/src/components/composite/Tooltip/TooltipSource.test.mjs +0 -34
  333. package/src/components/composite/Tooltip/index.tsx +0 -204
  334. package/src/components/composite/TranscriptDividers/TranscriptDividers.stories.tsx +0 -160
  335. package/src/components/composite/TranscriptDividers/TranscriptDividersSource.test.mjs +0 -90
  336. package/src/components/composite/TranscriptDividers/index.tsx +0 -352
  337. package/src/components/composite/WCardShell/WCardShell.stories.tsx +0 -228
  338. package/src/components/composite/WCardShell/index.tsx +0 -101
  339. package/src/components/composite/index.ts +0 -81
  340. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarView.stories.tsx +0 -128
  341. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/ArtifactPreviewSidebarViewSource.test.mjs +0 -69
  342. package/src/components/domain/artifacts/ArtifactPreviewSidebarView/index.tsx +0 -212
  343. package/src/components/domain/artifacts/index.ts +0 -1
  344. package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupView.stories.tsx +0 -211
  345. package/src/components/domain/browser/BrowserAnnotationPopupView/BrowserAnnotationPopupViewSource.test.mjs +0 -82
  346. package/src/components/domain/browser/BrowserAnnotationPopupView/index.tsx +0 -235
  347. package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarView.stories.tsx +0 -260
  348. package/src/components/domain/browser/BrowserDeviceToolbarView/BrowserDeviceToolbarViewSource.test.mjs +0 -12
  349. package/src/components/domain/browser/BrowserDeviceToolbarView/index.tsx +0 -154
  350. package/src/components/domain/browser/BrowserFindBarView/BrowserFindBarView.stories.tsx +0 -52
  351. package/src/components/domain/browser/BrowserFindBarView/index.tsx +0 -111
  352. package/src/components/domain/browser/BrowserImportDialogView/BrowserImportDialogView.stories.tsx +0 -89
  353. package/src/components/domain/browser/BrowserImportDialogView/index.tsx +0 -155
  354. package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorView.stories.tsx +0 -197
  355. package/src/components/domain/browser/BrowserLoadErrorView/BrowserLoadErrorViewSource.test.mjs +0 -29
  356. package/src/components/domain/browser/BrowserLoadErrorView/index.tsx +0 -45
  357. package/src/components/domain/browser/BrowserMoreMenuView/BrowserMoreMenuView.stories.tsx +0 -66
  358. package/src/components/domain/browser/BrowserMoreMenuView/index.tsx +0 -268
  359. package/src/components/domain/browser/BrowserNavBarView/BrowserNavBarView.stories.tsx +0 -149
  360. package/src/components/domain/browser/BrowserNavBarView/index.tsx +0 -156
  361. package/src/components/domain/browser/BrowserTabBarView/index.tsx +0 -18
  362. package/src/components/domain/browser/SubAgentPane/SubAgentPane.stories.tsx +0 -96
  363. package/src/components/domain/browser/SubAgentPane/SubAgentPaneSource.test.mjs +0 -48
  364. package/src/components/domain/browser/SubAgentPane/index.tsx +0 -121
  365. package/src/components/domain/browser/TerminalPane/TerminalPane.stories.tsx +0 -95
  366. package/src/components/domain/browser/TerminalPane/TerminalPaneSource.test.mjs +0 -52
  367. package/src/components/domain/browser/TerminalPane/index.tsx +0 -75
  368. package/src/components/domain/browser/WebPreview/WebPreview.stories.tsx +0 -71
  369. package/src/components/domain/browser/WebPreview/index.tsx +0 -141
  370. package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsole.stories.tsx +0 -61
  371. package/src/components/domain/browser/WebPreviewConsole/WebPreviewConsoleSource.test.mjs +0 -66
  372. package/src/components/domain/browser/WebPreviewConsole/index.tsx +0 -239
  373. package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialog.stories.tsx +0 -288
  374. package/src/components/domain/browser/WebPreviewDialog/WebPreviewDialogSource.test.mjs +0 -62
  375. package/src/components/domain/browser/WebPreviewDialog/index.tsx +0 -82
  376. package/src/components/domain/browser/WebPreviewNav/WebPreviewNav.stories.tsx +0 -462
  377. package/src/components/domain/browser/WebPreviewNav/WebPreviewNavSource.test.mjs +0 -353
  378. package/src/components/domain/browser/WebPreviewNav/index.tsx +0 -351
  379. package/src/components/domain/browser/WebPreviewShell/WebPreviewShell.stories.tsx +0 -226
  380. package/src/components/domain/browser/WebPreviewShell/WebPreviewShellSource.test.mjs +0 -172
  381. package/src/components/domain/browser/WebPreviewShell/index.tsx +0 -324
  382. package/src/components/domain/browser/index.ts +0 -45
  383. package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegment.stories.tsx +0 -107
  384. package/src/components/domain/chat/AgentLoopSegment/AgentLoopSegmentSource.test.mjs +0 -45
  385. package/src/components/domain/chat/AgentLoopSegment/index.tsx +0 -29
  386. package/src/components/domain/chat/AgentTurn/AgentTurn.stories.tsx +0 -162
  387. package/src/components/domain/chat/AgentTurn/AgentTurnSource.test.mjs +0 -98
  388. package/src/components/domain/chat/AgentTurn/beaconContext.ts +0 -37
  389. package/src/components/domain/chat/AgentTurn/index.tsx +0 -226
  390. package/src/components/domain/chat/ArtifactCard/ArtifactCard.stories.tsx +0 -127
  391. package/src/components/domain/chat/ArtifactCard/index.tsx +0 -249
  392. package/src/components/domain/chat/Attachment/Attachment.stories.tsx +0 -235
  393. package/src/components/domain/chat/Attachment/AttachmentSource.test.mjs +0 -160
  394. package/src/components/domain/chat/Attachment/index.tsx +0 -857
  395. package/src/components/domain/chat/AuthorizationCard/AuthorizationCard.stories.tsx +0 -53
  396. package/src/components/domain/chat/AuthorizationCard/AuthorizationCardSource.test.mjs +0 -80
  397. package/src/components/domain/chat/AuthorizationCard/index.tsx +0 -89
  398. package/src/components/domain/chat/ChatBubble/ChatBubble.stories.tsx +0 -32
  399. package/src/components/domain/chat/ChatBubble/index.tsx +0 -24
  400. package/src/components/domain/chat/ChatMessage/ChatMessage.stories.tsx +0 -31
  401. package/src/components/domain/chat/ChatMessage/index.tsx +0 -23
  402. package/src/components/domain/chat/ChatR2ReviewSource.test.mjs +0 -98
  403. package/src/components/domain/chat/ChatThinking/ChatThinking.stories.tsx +0 -125
  404. package/src/components/domain/chat/ChatThinking/index.tsx +0 -55
  405. package/src/components/domain/chat/Chatbot/Chatbot.stories.tsx +0 -49
  406. package/src/components/domain/chat/Chatbot/index.tsx +0 -37
  407. package/src/components/domain/chat/Composer/Composer.stories.tsx +0 -227
  408. package/src/components/domain/chat/Composer/ComposerSource.test.mjs +0 -175
  409. package/src/components/domain/chat/Composer/index.tsx +0 -450
  410. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.stories.tsx +0 -203
  411. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrum.tsx +0 -110
  412. package/src/components/domain/chat/Composer/parts/ComposerAudioSpectrumSource.test.mjs +0 -54
  413. package/src/components/domain/chat/Composer/parts/ComposerAuthorization.stories.tsx +0 -155
  414. package/src/components/domain/chat/Composer/parts/ComposerAuthorization.tsx +0 -108
  415. package/src/components/domain/chat/Composer/parts/ComposerMentions.stories.tsx +0 -76
  416. package/src/components/domain/chat/Composer/parts/ComposerMentions.tsx +0 -83
  417. package/src/components/domain/chat/Composer/parts/ComposerMentionsSource.test.mjs +0 -85
  418. package/src/components/domain/chat/Composer/parts/ComposerMenu.stories.tsx +0 -266
  419. package/src/components/domain/chat/Composer/parts/ComposerMenu.tsx +0 -232
  420. package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.stories.tsx +0 -166
  421. package/src/components/domain/chat/Composer/parts/ComposerMenuPopover.tsx +0 -87
  422. package/src/components/domain/chat/Composer/parts/ComposerMenuPopoverSource.test.mjs +0 -56
  423. package/src/components/domain/chat/Composer/parts/ComposerPopover.stories.tsx +0 -257
  424. package/src/components/domain/chat/Composer/parts/ComposerPopover.tsx +0 -221
  425. package/src/components/domain/chat/Composer/parts/ComposerPopoverSource.test.mjs +0 -71
  426. package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.stories.tsx +0 -260
  427. package/src/components/domain/chat/Composer/parts/ComposerProjectPicker.tsx +0 -246
  428. package/src/components/domain/chat/Composer/parts/ComposerProjectPickerSource.test.mjs +0 -46
  429. package/src/components/domain/chat/Composer/parts/ComposerQueue.stories.tsx +0 -275
  430. package/src/components/domain/chat/Composer/parts/ComposerQueue.tsx +0 -155
  431. package/src/components/domain/chat/Composer/parts/ComposerQueueSource.test.mjs +0 -95
  432. package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.stories.tsx +0 -77
  433. package/src/components/domain/chat/Composer/parts/ComposerVoiceInput.tsx +0 -70
  434. package/src/components/domain/chat/Composer/parts/mountChip.ts +0 -21
  435. package/src/components/domain/chat/ContextUsage/ContextUsage.stories.tsx +0 -62
  436. package/src/components/domain/chat/ContextUsage/index.tsx +0 -69
  437. package/src/components/domain/chat/ExecutionSummary/ExecutionSummary.stories.tsx +0 -238
  438. package/src/components/domain/chat/ExecutionSummary/ExecutionSummarySource.test.mjs +0 -210
  439. package/src/components/domain/chat/ExecutionSummary/index.tsx +0 -487
  440. package/src/components/domain/chat/Message/Message.stories.tsx +0 -264
  441. package/src/components/domain/chat/Message/index.tsx +0 -44
  442. package/src/components/domain/chat/MessageActions/MessageActions.stories.tsx +0 -132
  443. package/src/components/domain/chat/MessageActions/MessageActionsSource.test.mjs +0 -79
  444. package/src/components/domain/chat/MessageActions/index.tsx +0 -186
  445. package/src/components/domain/chat/PlanCard/PlanCard.stories.tsx +0 -87
  446. package/src/components/domain/chat/PlanCard/index.tsx +0 -170
  447. package/src/components/domain/chat/RichContent/RichContent.stories.tsx +0 -102
  448. package/src/components/domain/chat/RichContent/RichContentSource.test.mjs +0 -82
  449. package/src/components/domain/chat/RichContent/index.tsx +0 -465
  450. package/src/components/domain/chat/SubAgentThread/SubAgentThread.stories.tsx +0 -119
  451. package/src/components/domain/chat/SubAgentThread/index.tsx +0 -104
  452. package/src/components/domain/chat/Thinking/Thinking.stories.tsx +0 -196
  453. package/src/components/domain/chat/Thinking/ThinkingInlineSource.test.mjs +0 -154
  454. package/src/components/domain/chat/Thinking/index.tsx +0 -237
  455. package/src/components/domain/chat/ToolCallRow/ToolCallRow.stories.tsx +0 -105
  456. package/src/components/domain/chat/ToolCallRow/ToolCallRowSource.test.mjs +0 -83
  457. package/src/components/domain/chat/ToolCallRow/index.tsx +0 -113
  458. package/src/components/domain/chat/Transcript/Transcript.stories.tsx +0 -296
  459. package/src/components/domain/chat/Transcript/TranscriptSource.test.mjs +0 -189
  460. package/src/components/domain/chat/Transcript/index.tsx +0 -187
  461. package/src/components/domain/chat/TranscriptSpine/TranscriptSpine.stories.tsx +0 -124
  462. package/src/components/domain/chat/TranscriptSpine/index.tsx +0 -245
  463. package/src/components/domain/chat/UserTurn/UserTurn.stories.tsx +0 -176
  464. package/src/components/domain/chat/UserTurn/UserTurnSource.test.mjs +0 -150
  465. package/src/components/domain/chat/UserTurn/index.tsx +0 -194
  466. package/src/components/domain/chat/index.ts +0 -22
  467. package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuView.stories.tsx +0 -116
  468. package/src/components/domain/desktop/DesktopAccountMenuView/DesktopAccountMenuViewSource.test.mjs +0 -80
  469. package/src/components/domain/desktop/DesktopAccountMenuView/index.tsx +0 -355
  470. package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettings.stories.tsx +0 -96
  471. package/src/components/domain/desktop/DesktopAppearanceSettings/DesktopAppearanceSettingsSource.test.mjs +0 -89
  472. package/src/components/domain/desktop/DesktopAppearanceSettings/index.tsx +0 -155
  473. package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigView.stories.tsx +0 -275
  474. package/src/components/domain/desktop/DesktopAssistantConfigView/DesktopAssistantConfigViewSource.test.mjs +0 -37
  475. package/src/components/domain/desktop/DesktopAssistantConfigView/index.tsx +0 -221
  476. package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogView.stories.tsx +0 -537
  477. package/src/components/domain/desktop/DesktopCatalogView/DesktopCatalogViewSource.test.mjs +0 -339
  478. package/src/components/domain/desktop/DesktopCatalogView/index.tsx +0 -1074
  479. package/src/components/domain/desktop/DesktopChatBranchDivider/DesktopChatBranchDivider.stories.tsx +0 -58
  480. package/src/components/domain/desktop/DesktopChatBranchDivider/index.tsx +0 -33
  481. package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateView.stories.tsx +0 -75
  482. package/src/components/domain/desktop/DesktopChatEmptyStateView/DesktopChatEmptyStateViewSource.test.mjs +0 -54
  483. package/src/components/domain/desktop/DesktopChatEmptyStateView/index.tsx +0 -64
  484. package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderView.stories.tsx +0 -83
  485. package/src/components/domain/desktop/DesktopChatHeaderView/DesktopChatHeaderViewSource.test.mjs +0 -126
  486. package/src/components/domain/desktop/DesktopChatHeaderView/index.tsx +0 -169
  487. package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageView.stories.tsx +0 -170
  488. package/src/components/domain/desktop/DesktopChatMessageView/DesktopChatMessageViewSource.test.mjs +0 -47
  489. package/src/components/domain/desktop/DesktopChatMessageView/index.tsx +0 -213
  490. package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnView.stories.tsx +0 -498
  491. package/src/components/domain/desktop/DesktopChatTurnView/DesktopChatTurnViewSource.test.mjs +0 -187
  492. package/src/components/domain/desktop/DesktopChatTurnView/index.tsx +0 -490
  493. package/src/components/domain/desktop/DesktopComposer/DesktopComposer.stories.tsx +0 -195
  494. package/src/components/domain/desktop/DesktopComposer/DesktopComposerModelPickerSource.test.mjs +0 -132
  495. package/src/components/domain/desktop/DesktopComposer/DesktopComposerMountChipSource.test.mjs +0 -43
  496. package/src/components/domain/desktop/DesktopComposer/DesktopComposerResponsiveSource.test.mjs +0 -44
  497. package/src/components/domain/desktop/DesktopComposer/DesktopMcpFormThemeSource.test.mjs +0 -30
  498. package/src/components/domain/desktop/DesktopComposer/index.tsx +0 -206
  499. package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailView.stories.tsx +0 -72
  500. package/src/components/domain/desktop/DesktopConnectorDetailView/DesktopConnectorDetailViewSource.test.mjs +0 -81
  501. package/src/components/domain/desktop/DesktopConnectorDetailView/index.tsx +0 -301
  502. package/src/components/domain/desktop/DesktopHomeView/DesktopHomeView.stories.tsx +0 -103
  503. package/src/components/domain/desktop/DesktopHomeView/DesktopHomeViewSource.test.mjs +0 -51
  504. package/src/components/domain/desktop/DesktopHomeView/index.tsx +0 -122
  505. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/DesktopLibraryAuthorizationDialog.stories.tsx +0 -55
  506. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/DesktopLibraryAuthorizationDialogSource.test.mjs +0 -22
  507. package/src/components/domain/desktop/DesktopLibraryAuthorizationDialog/index.tsx +0 -171
  508. package/src/components/domain/desktop/DesktopLibraryPageView/DesktopLibraryPageView.stories.tsx +0 -49
  509. package/src/components/domain/desktop/DesktopLibraryPageView/index.tsx +0 -49
  510. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.css +0 -75
  511. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginView.stories.tsx +0 -230
  512. package/src/components/domain/desktop/DesktopLoginView/DesktopLoginViewSource.test.mjs +0 -156
  513. package/src/components/domain/desktop/DesktopLoginView/index.tsx +0 -432
  514. package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourView.stories.tsx +0 -103
  515. package/src/components/domain/desktop/DesktopOnboardingTourView/DesktopOnboardingTourViewSource.test.mjs +0 -57
  516. package/src/components/domain/desktop/DesktopOnboardingTourView/index.tsx +0 -189
  517. package/src/components/domain/desktop/DesktopPet/DesktopPet.fixture.ts +0 -243
  518. package/src/components/domain/desktop/DesktopPet/DesktopPet.stories.tsx +0 -337
  519. package/src/components/domain/desktop/DesktopPet/DesktopPetSource.test.mjs +0 -191
  520. package/src/components/domain/desktop/DesktopPet/index.tsx +0 -591
  521. package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettings.stories.tsx +0 -159
  522. package/src/components/domain/desktop/DesktopPetSettings/DesktopPetSettingsSource.test.mjs +0 -76
  523. package/src/components/domain/desktop/DesktopPetSettings/index.tsx +0 -140
  524. package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusView.stories.tsx +0 -166
  525. package/src/components/domain/desktop/DesktopRunStatusView/DesktopRunStatusViewSource.test.mjs +0 -51
  526. package/src/components/domain/desktop/DesktopRunStatusView/index.tsx +0 -34
  527. package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCard.stories.tsx +0 -122
  528. package/src/components/domain/desktop/DesktopSelectionCard/DesktopSelectionCardSource.test.mjs +0 -42
  529. package/src/components/domain/desktop/DesktopSelectionCard/index.tsx +0 -75
  530. package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySection.stories.tsx +0 -225
  531. package/src/components/domain/desktop/DesktopSettingsMemorySection/DesktopSettingsMemorySectionSource.test.mjs +0 -105
  532. package/src/components/domain/desktop/DesktopSettingsMemorySection/index.tsx +0 -340
  533. package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsView.stories.tsx +0 -177
  534. package/src/components/domain/desktop/DesktopSettingsView/DesktopSettingsViewSource.test.mjs +0 -195
  535. package/src/components/domain/desktop/DesktopSettingsView/index.tsx +0 -176
  536. package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarView.stories.tsx +0 -77
  537. package/src/components/domain/desktop/DesktopShareSelectionBarView/DesktopShareSelectionBarViewSource.test.mjs +0 -76
  538. package/src/components/domain/desktop/DesktopShareSelectionBarView/index.tsx +0 -55
  539. package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarView.stories.tsx +0 -454
  540. package/src/components/domain/desktop/DesktopSidebarView/DesktopSidebarViewSource.test.mjs +0 -388
  541. package/src/components/domain/desktop/DesktopSidebarView/index.tsx +0 -1111
  542. package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesView.stories.tsx +0 -369
  543. package/src/components/domain/desktop/DesktopSiteReleasesView/DesktopSiteReleasesViewSource.test.mjs +0 -123
  544. package/src/components/domain/desktop/DesktopSiteReleasesView/index.tsx +0 -392
  545. package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListView.stories.tsx +0 -244
  546. package/src/components/domain/desktop/DesktopSitesListView/DesktopSitesListViewSource.test.mjs +0 -198
  547. package/src/components/domain/desktop/DesktopSitesListView/index.tsx +0 -417
  548. package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageView.stories.tsx +0 -230
  549. package/src/components/domain/desktop/DesktopSkillsPageView/DesktopSkillsPageViewSource.test.mjs +0 -149
  550. package/src/components/domain/desktop/DesktopSkillsPageView/index.tsx +0 -235
  551. package/src/components/domain/desktop/DesktopTaskDetailView/index.tsx +0 -111
  552. package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallListViewSource.test.mjs +0 -302
  553. package/src/components/domain/desktop/DesktopToolCallView/DesktopToolCallView.stories.tsx +0 -409
  554. package/src/components/domain/desktop/DesktopToolCallView/index.tsx +0 -388
  555. package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShell.stories.tsx +0 -418
  556. package/src/components/domain/desktop/DesktopWorkbenchShell/DesktopWorkbenchShellSource.test.mjs +0 -151
  557. package/src/components/domain/desktop/DesktopWorkbenchShell/index.tsx +0 -167
  558. package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageView.stories.tsx +0 -135
  559. package/src/components/domain/desktop/DesktopWorkspacePageView/DesktopWorkspacePageViewSource.test.mjs +0 -57
  560. package/src/components/domain/desktop/DesktopWorkspacePageView/index.tsx +0 -114
  561. package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceView.stories.tsx +0 -227
  562. package/src/components/domain/desktop/DesktopWorkspaceView/DesktopWorkspaceViewSource.test.mjs +0 -175
  563. package/src/components/domain/desktop/DesktopWorkspaceView/index.tsx +0 -580
  564. package/src/components/domain/desktop/ResourceManagement/ResourceManagement.stories.tsx +0 -19
  565. package/src/components/domain/desktop/ResourceManagement/ResourceManagementSource.test.mjs +0 -54
  566. package/src/components/domain/desktop/ResourceManagement/SharesList.tsx +0 -323
  567. package/src/components/domain/desktop/ResourceManagement/SnapshotViews.tsx +0 -92
  568. package/src/components/domain/desktop/ResourceManagement/SnapshotViewsSource.test.mjs +0 -15
  569. package/src/components/domain/desktop/ResourceManagement/index.tsx +0 -246
  570. package/src/components/domain/desktop/ShareSettingsDialogView/index.tsx +0 -234
  571. package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmpty.stories.tsx +0 -100
  572. package/src/components/domain/desktop/SidePanelEmpty/SidePanelEmptySource.test.mjs +0 -67
  573. package/src/components/domain/desktop/SidePanelEmpty/index.tsx +0 -113
  574. package/src/components/domain/desktop/StarterCapsules/StarterCapsules.stories.tsx +0 -65
  575. package/src/components/domain/desktop/StarterCapsules/StarterCapsulesSource.test.mjs +0 -43
  576. package/src/components/domain/desktop/StarterCapsules/index.tsx +0 -90
  577. package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanel.stories.tsx +0 -59
  578. package/src/components/domain/desktop/WorkbenchSidePanel/WorkbenchSidePanelSource.test.mjs +0 -51
  579. package/src/components/domain/desktop/WorkbenchSidePanel/index.tsx +0 -74
  580. package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirm.stories.tsx +0 -79
  581. package/src/components/domain/desktop/WorkspaceMigrateConfirm/WorkspaceMigrateConfirmSource.test.mjs +0 -34
  582. package/src/components/domain/desktop/WorkspaceMigrateConfirm/index.tsx +0 -92
  583. package/src/components/domain/desktop/index.ts +0 -64
  584. package/src/components/domain/files/FileBrowser/FileBrowser.stories.tsx +0 -397
  585. package/src/components/domain/files/FileBrowser/FileBrowserSource.test.mjs +0 -75
  586. package/src/components/domain/files/FileBrowser/index.tsx +0 -221
  587. package/src/components/domain/files/FileIcon/FileIcon.stories.tsx +0 -207
  588. package/src/components/domain/files/FileIcon/FileIconSource.test.mjs +0 -39
  589. package/src/components/domain/files/FileIcon/index.tsx +0 -133
  590. package/src/components/domain/files/FilePreviewContentView/FilePreviewContentView.stories.tsx +0 -242
  591. package/src/components/domain/files/FilePreviewContentView/FilePreviewContentViewSource.test.mjs +0 -44
  592. package/src/components/domain/files/FilePreviewContentView/index.tsx +0 -125
  593. package/src/components/domain/files/FileTree/FileTree.stories.tsx +0 -204
  594. package/src/components/domain/files/FileTree/FileTreeSource.test.mjs +0 -18
  595. package/src/components/domain/files/FileTree/index.tsx +0 -106
  596. package/src/components/domain/files/PreviewDialog/PreviewDialog.stories.tsx +0 -178
  597. package/src/components/domain/files/PreviewDialog/PreviewDialogSource.test.mjs +0 -92
  598. package/src/components/domain/files/PreviewDialog/index.tsx +0 -294
  599. package/src/components/domain/files/index.ts +0 -5
  600. package/src/components/domain/index.ts +0 -8
  601. package/src/components/domain/office/CsvPreview/CsvPreview.stories.tsx +0 -264
  602. package/src/components/domain/office/CsvPreview/CsvPreviewSource.test.mjs +0 -77
  603. package/src/components/domain/office/CsvPreview/index.tsx +0 -224
  604. package/src/components/domain/office/OfficePreview/OfficePreview.stories.tsx +0 -265
  605. package/src/components/domain/office/OfficePreview/OfficePreviewDialog.stories.tsx +0 -71
  606. package/src/components/domain/office/OfficePreview/OfficePreviewDialog.tsx +0 -43
  607. package/src/components/domain/office/OfficePreview/OfficePreviewSource.test.mjs +0 -126
  608. package/src/components/domain/office/OfficePreview/index.tsx +0 -782
  609. package/src/components/domain/office/PdfPreview/PdfPreview.stories.tsx +0 -280
  610. package/src/components/domain/office/PdfPreview/PdfPreviewDialog.stories.tsx +0 -61
  611. package/src/components/domain/office/PdfPreview/PdfPreviewDialog.tsx +0 -61
  612. package/src/components/domain/office/PdfPreview/PdfPreviewSource.test.mjs +0 -70
  613. package/src/components/domain/office/PdfPreview/index.tsx +0 -217
  614. package/src/components/domain/office/index.ts +0 -5
  615. package/src/components/domain/skills/McpServerListView/McpServerListView.stories.tsx +0 -510
  616. package/src/components/domain/skills/McpServerListView/McpServerListViewSource.test.mjs +0 -101
  617. package/src/components/domain/skills/McpServerListView/index.tsx +0 -250
  618. package/src/components/domain/skills/SkillAvatarView/SkillAvatarView.stories.tsx +0 -121
  619. package/src/components/domain/skills/SkillAvatarView/SkillAvatarViewSource.test.mjs +0 -67
  620. package/src/components/domain/skills/SkillAvatarView/index.tsx +0 -112
  621. package/src/components/domain/skills/SkillCardView/SkillCardView.stories.tsx +0 -374
  622. package/src/components/domain/skills/SkillCardView/SkillCardViewSource.test.mjs +0 -35
  623. package/src/components/domain/skills/SkillCardView/index.tsx +0 -88
  624. package/src/components/domain/skills/SkillDetailPanelView/SkillDetailPanelView.stories.tsx +0 -113
  625. package/src/components/domain/skills/SkillDetailPanelView/index.tsx +0 -115
  626. package/src/components/domain/skills/SkillDetailView/SkillDetailView.stories.tsx +0 -274
  627. package/src/components/domain/skills/SkillDetailView/index.tsx +0 -121
  628. package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogView.stories.tsx +0 -128
  629. package/src/components/domain/skills/SkillImportDialogView/SkillImportDialogViewSource.test.mjs +0 -11
  630. package/src/components/domain/skills/SkillImportDialogView/index.tsx +0 -147
  631. package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalView.stories.tsx +0 -160
  632. package/src/components/domain/skills/ToolDetailModalView/ToolDetailModalViewSource.test.mjs +0 -99
  633. package/src/components/domain/skills/ToolDetailModalView/index.tsx +0 -160
  634. package/src/components/domain/skills/index.ts +0 -7
  635. package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardView.stories.tsx +0 -120
  636. package/src/components/domain/tasks/ScheduledTaskCardView/ScheduledTaskCardViewSource.test.mjs +0 -40
  637. package/src/components/domain/tasks/ScheduledTaskCardView/index.tsx +0 -135
  638. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialog.stories.tsx +0 -56
  639. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/ScheduledTaskDeleteDialogSource.test.mjs +0 -35
  640. package/src/components/domain/tasks/ScheduledTaskDeleteDialog/index.tsx +0 -73
  641. package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailView.stories.tsx +0 -121
  642. package/src/components/domain/tasks/ScheduledTaskDetailView/ScheduledTaskDetailViewSource.test.mjs +0 -115
  643. package/src/components/domain/tasks/ScheduledTaskDetailView/index.tsx +0 -223
  644. package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceView.stories.tsx +0 -526
  645. package/src/components/domain/tasks/ScheduledTasksSpaceView/ScheduledTasksSpaceViewSource.test.mjs +0 -85
  646. package/src/components/domain/tasks/ScheduledTasksSpaceView/index.tsx +0 -118
  647. package/src/components/domain/tasks/index.ts +0 -4
  648. package/src/components/domain/theme/SkinManager.stories.tsx +0 -43
  649. package/src/components/domain/theme/SkinManagerUI.tsx +0 -382
  650. package/src/components/domain/theme/ThemeDemo.stories.tsx +0 -12
  651. package/src/components/domain/theme/ThemeDemo.tsx +0 -224
  652. package/src/components/index.ts +0 -11
  653. package/src/components/primitives/Avatar/Avatar.stories.tsx +0 -170
  654. package/src/components/primitives/Avatar/AvatarSource.test.mjs +0 -37
  655. package/src/components/primitives/Avatar/index.tsx +0 -180
  656. package/src/components/primitives/BackTop/BackTop.stories.tsx +0 -122
  657. package/src/components/primitives/BackTop/BackTopSource.test.mjs +0 -61
  658. package/src/components/primitives/BackTop/index.tsx +0 -93
  659. package/src/components/primitives/Badge/Badge.stories.tsx +0 -376
  660. package/src/components/primitives/Badge/BadgeSource.test.mjs +0 -27
  661. package/src/components/primitives/Badge/index.tsx +0 -65
  662. package/src/components/primitives/Button/Button.stories.tsx +0 -287
  663. package/src/components/primitives/Button/ButtonSource.test.mjs +0 -84
  664. package/src/components/primitives/Button/index.tsx +0 -219
  665. package/src/components/primitives/Card/Card.stories.tsx +0 -186
  666. package/src/components/primitives/Card/CardSource.test.mjs +0 -73
  667. package/src/components/primitives/Card/index.tsx +0 -137
  668. package/src/components/primitives/Checkbox/Checkbox.stories.tsx +0 -79
  669. package/src/components/primitives/Checkbox/CheckboxSource.test.mjs +0 -43
  670. package/src/components/primitives/Checkbox/index.tsx +0 -87
  671. package/src/components/primitives/Chip/Chip.stories.tsx +0 -149
  672. package/src/components/primitives/Chip/ChipSource.test.mjs +0 -73
  673. package/src/components/primitives/Chip/index.tsx +0 -252
  674. package/src/components/primitives/Divider/Divider.stories.tsx +0 -68
  675. package/src/components/primitives/Divider/DividerSource.test.mjs +0 -26
  676. package/src/components/primitives/Divider/index.tsx +0 -65
  677. package/src/components/primitives/Dropdown/Dropdown.stories.tsx +0 -38
  678. package/src/components/primitives/Dropdown/DropdownSource.test.mjs +0 -23
  679. package/src/components/primitives/Dropdown/index.tsx +0 -29
  680. package/src/components/primitives/EmptyState/EmptyState.stories.tsx +0 -159
  681. package/src/components/primitives/EmptyState/EmptyStateSource.test.mjs +0 -169
  682. package/src/components/primitives/EmptyState/index.tsx +0 -185
  683. package/src/components/primitives/ErrorCard/ErrorCard.stories.tsx +0 -50
  684. package/src/components/primitives/ErrorCard/index.tsx +0 -78
  685. package/src/components/primitives/Field/Field.stories.tsx +0 -208
  686. package/src/components/primitives/Field/FieldSource.test.mjs +0 -70
  687. package/src/components/primitives/Field/index.tsx +0 -297
  688. package/src/components/primitives/InlineMessage/InlineMessage.stories.tsx +0 -137
  689. package/src/components/primitives/InlineMessage/InlineMessageSource.test.mjs +0 -50
  690. package/src/components/primitives/InlineMessage/index.tsx +0 -141
  691. package/src/components/primitives/Input/Input.stories.tsx +0 -30
  692. package/src/components/primitives/Input/index.tsx +0 -12
  693. package/src/components/primitives/Keycap/Keycap.stories.tsx +0 -93
  694. package/src/components/primitives/Keycap/KeycapSource.test.mjs +0 -30
  695. package/src/components/primitives/Keycap/index.tsx +0 -67
  696. package/src/components/primitives/Menu/Menu.stories.tsx +0 -416
  697. package/src/components/primitives/Menu/MenuEmptySource.test.mjs +0 -23
  698. package/src/components/primitives/Menu/MenuSource.test.mjs +0 -207
  699. package/src/components/primitives/Menu/index.tsx +0 -923
  700. package/src/components/primitives/Pagination/Pagination.stories.tsx +0 -77
  701. package/src/components/primitives/Pagination/PaginationSource.test.mjs +0 -24
  702. package/src/components/primitives/Pagination/index.tsx +0 -85
  703. package/src/components/primitives/Pagination/pagination.ts +0 -25
  704. package/src/components/primitives/Pagination/paginationModel.test.mjs +0 -18
  705. package/src/components/primitives/ProgressBar/ProgressBar.stories.tsx +0 -103
  706. package/src/components/primitives/ProgressBar/ProgressBarSource.test.mjs +0 -44
  707. package/src/components/primitives/ProgressBar/index.tsx +0 -68
  708. package/src/components/primitives/Radio/Radio.stories.tsx +0 -84
  709. package/src/components/primitives/Radio/RadioSource.test.mjs +0 -38
  710. package/src/components/primitives/Radio/index.tsx +0 -161
  711. package/src/components/primitives/SegmentedControl/SegmentedControl.stories.tsx +0 -110
  712. package/src/components/primitives/SegmentedControl/SegmentedControlSource.test.mjs +0 -75
  713. package/src/components/primitives/SegmentedControl/index.tsx +0 -188
  714. package/src/components/primitives/Select/Select.stories.tsx +0 -158
  715. package/src/components/primitives/Select/SelectSource.test.mjs +0 -94
  716. package/src/components/primitives/Select/index.tsx +0 -406
  717. package/src/components/primitives/Spinner/index.tsx +0 -58
  718. package/src/components/primitives/Switch/Switch.stories.tsx +0 -64
  719. package/src/components/primitives/Switch/SwitchSource.test.mjs +0 -38
  720. package/src/components/primitives/Switch/index.tsx +0 -84
  721. package/src/components/primitives/Tabs/Tabs.stories.tsx +0 -230
  722. package/src/components/primitives/Tabs/TabsSource.test.mjs +0 -91
  723. package/src/components/primitives/Tabs/index.tsx +0 -183
  724. package/src/components/primitives/index.ts +0 -24
  725. package/src/examples/ResourceManagementExample.tsx +0 -119
  726. package/src/examples/SiteWorkbenchExample.tsx +0 -96
  727. package/src/hooks/index.ts +0 -7
  728. package/src/hooks/useClickOutside.ts +0 -20
  729. package/src/hooks/useDragReorder.ts +0 -29
  730. package/src/hooks/useImeAwareEnter.ts +0 -59
  731. package/src/hooks/useImeAwareEnterSource.test.mjs +0 -65
  732. package/src/hooks/useKeyboard.ts +0 -16
  733. package/src/hooks/usePopover.ts +0 -67
  734. package/src/hooks/useSelectedOptionLocator.ts +0 -33
  735. package/src/hooks/useSidebarResize.ts +0 -107
  736. package/src/hooks/useTenantTheme.ts +0 -53
  737. package/src/hooks/useUnifiedTheme.ts +0 -85
  738. package/src/index.ts +0 -6
  739. package/src/lib/InjectedStyleTokenMirrorSource.test.mjs +0 -67
  740. package/src/lib/about-window.test.mjs +0 -46
  741. package/src/lib/about-window.ts +0 -218
  742. package/src/lib/appearance.test.mjs +0 -283
  743. package/src/lib/appearance.ts +0 -46
  744. package/src/lib/browser-annotation-popup.ts +0 -151
  745. package/src/lib/focusTrap.ts +0 -51
  746. package/src/lib/index.ts +0 -5
  747. package/src/lib/shortcut.test.mjs +0 -100
  748. package/src/lib/shortcut.ts +0 -97
  749. package/src/lib/twMergeOw.ts +0 -18
  750. package/src/lib/utils.ts +0 -6
  751. package/src/screens/Browser.stories.tsx +0 -353
  752. package/src/screens/Chat.stories.tsx +0 -808
  753. package/src/screens/Home.stories.tsx +0 -253
  754. package/src/screens/Login.stories.tsx +0 -134
  755. package/src/screens/McpManager.stories.tsx +0 -159
  756. package/src/screens/Onboarding.stories.tsx +0 -155
  757. package/src/screens/ScheduledTasks.stories.tsx +0 -134
  758. package/src/screens/ScreenFrameSource.test.mjs +0 -77
  759. package/src/screens/SettingsAppearance.stories.tsx +0 -117
  760. package/src/screens/SettingsMemory.stories.tsx +0 -128
  761. package/src/screens/SettingsModels.stories.tsx +0 -228
  762. package/src/screens/SettingsSections.stories.tsx +0 -164
  763. package/src/screens/Share.stories.tsx +0 -202
  764. package/src/screens/SharePage.stories.tsx +0 -29
  765. package/src/screens/Sites.stories.tsx +0 -183
  766. package/src/screens/Skills.stories.tsx +0 -83
  767. package/src/screens/Workspace.stories.tsx +0 -191
  768. package/src/screens/_home.tsx +0 -46
  769. package/src/screens/_screen.tsx +0 -355
  770. package/src/screens/_settingsNav.ts +0 -27
  771. package/src/screens/_skillsCatalog.tsx +0 -372
  772. package/src/theme/SkinDenylistSyncSource.test.mjs +0 -124
  773. package/src/theme/__tests__/skins.test.mjs +0 -84
  774. package/src/theme/core/semanticAdapter.ts +0 -116
  775. package/src/theme/core/skin.ts +0 -605
  776. package/src/theme/core/skinScoped.ts +0 -289
  777. package/src/theme/core/tenantTheme.test.mjs +0 -127
  778. package/src/theme/core/tenantTheme.ts +0 -124
  779. package/src/theme/core/types.ts +0 -60
  780. package/src/theme/core/unifiedTheme.ts +0 -157
  781. package/src/theme/index.ts +0 -33
  782. package/src/theme/providers/BrandingProvider.tsx +0 -57
  783. package/src/theme/providers/ThemeProvider.tsx +0 -221
  784. package/src/theme/skinDs2PropertyGate.test.mjs +0 -109
  785. package/src/theme/skins/index.ts +0 -107
  786. package/src/theme/utils/cssSafety.ts +0 -92
  787. package/src/theme/utils/skinManager.ts +0 -159
  788. package/src/theme/utils/themeApplier.ts +0 -75
  789. package/src/tokens/DesktopSurfacesSweep15Source.test.mjs +0 -77
  790. package/src/tokens/SharedStyleSheetsSource.test.mjs +0 -90
  791. package/src/tokens/TailwindThemeSupplySource.test.mjs +0 -129
  792. package/src/tokens/base.ts +0 -199
  793. package/src/tokens/dark.ts +0 -288
  794. package/src/tokens/index.ts +0 -4
  795. package/src/tokens/light.ts +0 -320
  796. package/src/tokens/tailwind.ts +0 -216
  797. package/src/types/desktop-pet.ts +0 -100
  798. package/src/types/file-browser.ts +0 -51
  799. package/src/types/file-tree.ts +0 -34
  800. package/src/types/index.ts +0 -3
  801. package/src/types/xspreadsheet.d.ts +0 -4
  802. package/src/utils/cn.ts +0 -6
  803. package/src/utils/glyphColor.ts +0 -32
  804. package/src/utils/index.ts +0 -4
  805. package/src/utils/localPathInline.test.mjs +0 -45
  806. package/src/utils/localPathInline.ts +0 -49
  807. package/src/utils/markdownFileRefs.test.mjs +0 -88
  808. package/src/utils/markdownFileRefs.ts +0 -140
  809. package/src/utils/office-excel.ts +0 -452
  810. package/src/utils/shiki.ts +0 -156
@@ -1,702 +0,0 @@
1
- "use client"
2
-
3
- import { Fragment, useEffect, useMemo, useState } from "react"
4
- import { splitLocalPathSegments } from "../../../utils/localPathInline"
5
- import {
6
- type LocalLinkTargetOptions,
7
- cleanFileLabel,
8
- collectMarkdownFileRefs,
9
- localMarkdownLinkTarget,
10
- safeHref,
11
- } from "../../../utils/markdownFileRefs"
12
- import {
13
- Attachment,
14
- type AttachmentItem,
15
- AttachmentList,
16
- type AttachmentMenuOption,
17
- } from "../../domain/chat/Attachment"
18
- import { Button } from "../../primitives"
19
- import { CodeBlock } from "../CodeBlock"
20
-
21
- // Markdown is a small, dependency-free renderer for the common subset of
22
- // markdown that skill introductions use: headings, paragraphs, bold/italic,
23
- // inline code, fenced code blocks, and ordered/unordered lists. It renders via
24
- // React elements (no dangerouslySetInnerHTML), so all text stays escaped.
25
-
26
- type Block =
27
- | { kind: "heading"; level: number; text: string }
28
- | { kind: "para"; text: string }
29
- | { kind: "code"; text: string; language?: string }
30
- | { kind: "list"; ordered: boolean; items: string[] }
31
- | { kind: "table"; headers: string[]; rows: string[][]; aligns: TableAlign[] }
32
- | { kind: "quote"; paragraphs: string[] }
33
- | { kind: "imageGallery"; images: MarkdownImageItem[] }
34
-
35
- // Blockquote marker: "> " or a bare ">" on an otherwise empty line.
36
- const QUOTE_LINE_RE = /^\s{0,3}>\s?/
37
-
38
- type TableAlign = "left" | "center" | "right"
39
-
40
- // Shell-ish fence languages that get a "run in terminal" affordance when the
41
- // host passes onRunCommand.
42
- const RUNNABLE_SHELL_LANGUAGES = new Set(["bash", "sh", "zsh", "shell", "shellscript"])
43
-
44
- function isRunnableShellLanguage(language: string | undefined): boolean {
45
- return Boolean(language && RUNNABLE_SHELL_LANGUAGES.has(language.toLowerCase()))
46
- }
47
- // Resolved local media a Markdown image/link target maps to. Exported as the
48
- // single source of truth so every surface that threads image preview through
49
- // Markdown (chat bubble, message actions, preview modal) shares one shape.
50
- export type LocalMarkdownPreview = { kind: "image" | "video"; name: string; url: string }
51
- // Resolver a host passes down to turn a local/relative image target (e.g.
52
- // images/poster.png) into previewable media, or null when it cannot.
53
- export type LocalImagePreviewResolver = (path: string) => Promise<LocalMarkdownPreview | null>
54
- type MarkdownImageItem = { alt: string; target: string }
55
- type InlineRenderOptions = {
56
- onLocalPathClick?: (path: string) => void
57
- // Opens an inline local path through the same handler as the file reference
58
- // cards below the message, so both surfaces resolve previews identically.
59
- onLocalFileOpen?: (item: AttachmentItem) => void
60
- onLocalImagePreview?: LocalImagePreviewResolver
61
- localPathBaseDir?: string
62
- }
63
- type LocalPathOpener = (path: string, label?: string) => void
64
-
65
- // Inline local paths and the file reference cards must open the same way. When
66
- // a host provides the card handler, route inline clicks through it with the
67
- // same AttachmentItem shape collectLocalFileRefs builds.
68
- function resolveLocalPathOpener(options: InlineRenderOptions): LocalPathOpener | undefined {
69
- const { onLocalFileOpen, onLocalPathClick } = options
70
- if (onLocalFileOpen) return (path, label) => onLocalFileOpen({ name: cleanFileLabel(label ?? "", path), path })
71
- if (onLocalPathClick) return (path) => onLocalPathClick(path)
72
- return undefined
73
- }
74
-
75
- // Relative link targets only resolve when the host knows the session's project
76
- // directory β€” the main process needs that base dir to turn out/report.md into a
77
- // real path (and to reject anything escaping the project).
78
- function localLinkOptions(options: InlineRenderOptions): LocalLinkTargetOptions {
79
- return { allowRelative: Boolean(options.localPathBaseDir) }
80
- }
81
-
82
- function parseBlocks(src: string): Block[] {
83
- const lines = src.replace(/\r\n/g, "\n").split("\n")
84
- const blocks: Block[] = []
85
- let i = 0
86
- while (i < lines.length) {
87
- const line = lines[i] ?? ""
88
- // Fenced code block.
89
- if (line.trimStart().startsWith("```")) {
90
- const language = line.trimStart().slice(3).trim().split(/\s+/)[0] || undefined
91
- const body: string[] = []
92
- i += 1
93
- while (i < lines.length && !(lines[i] ?? "").trimStart().startsWith("```")) {
94
- body.push(lines[i] ?? "")
95
- i += 1
96
- }
97
- i += 1 // skip closing fence
98
- blocks.push({ kind: "code", text: body.join("\n"), language })
99
- continue
100
- }
101
- // Blank line.
102
- if (line.trim() === "") {
103
- i += 1
104
- continue
105
- }
106
- // Heading.
107
- const heading = line.match(/^(#{1,6})\s+(.*)$/)
108
- if (heading) {
109
- blocks.push({ kind: "heading", level: heading[1]?.length ?? 1, text: heading[2] ?? "" })
110
- i += 1
111
- continue
112
- }
113
- // Blockquote β€” consume contiguous "> " lines; a blank quoted line splits
114
- // paragraphs inside the quote.
115
- if (QUOTE_LINE_RE.test(line)) {
116
- const quoted: string[] = []
117
- while (i < lines.length && QUOTE_LINE_RE.test(lines[i] ?? "")) {
118
- quoted.push((lines[i] ?? "").replace(QUOTE_LINE_RE, ""))
119
- i += 1
120
- }
121
- const paragraphs: string[] = []
122
- let buffer: string[] = []
123
- for (const quotedLine of quoted) {
124
- if (quotedLine.trim() === "") {
125
- if (buffer.length > 0) paragraphs.push(buffer.join(" "))
126
- buffer = []
127
- } else {
128
- buffer.push(quotedLine)
129
- }
130
- }
131
- if (buffer.length > 0) paragraphs.push(buffer.join(" "))
132
- blocks.push({ kind: "quote", paragraphs })
133
- continue
134
- }
135
- // GitHub-style table. Requires a header row and a separator row.
136
- if (isTableHeader(lines, i)) {
137
- const headers = splitTableRow(lines[i] ?? "")
138
- const aligns = parseTableAligns(splitTableRow(lines[i + 1] ?? ""), headers.length)
139
- const rows: string[][] = []
140
- i += 2
141
- while (i < lines.length && isTableRow(lines[i] ?? "")) {
142
- rows.push(normalizeTableRow(splitTableRow(lines[i] ?? ""), headers.length))
143
- i += 1
144
- }
145
- blocks.push({ kind: "table", headers, rows, aligns })
146
- continue
147
- }
148
- // List (ordered or unordered) β€” consume contiguous item lines.
149
- if (/^\s*([-*]|\d+\.)\s+/.test(line)) {
150
- const ordered = /^\s*\d+\.\s+/.test(line)
151
- const items: string[] = []
152
- while (i < lines.length && /^\s*([-*]|\d+\.)\s+/.test(lines[i] ?? "")) {
153
- items.push((lines[i] ?? "").replace(/^\s*([-*]|\d+\.)\s+/, ""))
154
- i += 1
155
- }
156
- blocks.push({ kind: "list", ordered, items })
157
- continue
158
- }
159
- const imageGallery = collectImageGallery(lines, i)
160
- if (imageGallery) {
161
- blocks.push({ kind: "imageGallery", images: imageGallery.images })
162
- i = imageGallery.nextIndex
163
- continue
164
- }
165
- // Paragraph β€” consume contiguous non-blank, non-structural lines.
166
- const para: string[] = []
167
- while (
168
- i < lines.length &&
169
- (lines[i] ?? "").trim() !== "" &&
170
- !(lines[i] ?? "").trimStart().startsWith("```") &&
171
- !/^#{1,6}\s+/.test(lines[i] ?? "") &&
172
- !isTableHeader(lines, i) &&
173
- !QUOTE_LINE_RE.test(lines[i] ?? "") &&
174
- !/^\s*([-*]|\d+\.)\s+/.test(lines[i] ?? "")
175
- ) {
176
- para.push(lines[i] ?? "")
177
- i += 1
178
- }
179
- blocks.push({ kind: "para", text: para.join(" ") })
180
- }
181
- return blocks
182
- }
183
-
184
- function collectImageGallery(
185
- lines: string[],
186
- startIndex: number,
187
- ): { images: MarkdownImageItem[]; nextIndex: number } | null {
188
- const images: MarkdownImageItem[] = []
189
- let i = startIndex
190
- while (i < lines.length) {
191
- const line = lines[i] ?? ""
192
- if (line.trim() === "") {
193
- const nextNonBlankIndex = findNextNonBlankLine(lines, i + 1)
194
- if (images.length > 0 && nextNonBlankIndex >= 0 && parseImageOnlyLine(lines[nextNonBlankIndex] ?? "")) {
195
- i += 1
196
- continue
197
- }
198
- break
199
- }
200
- const image = parseImageOnlyLine(line)
201
- if (!image) break
202
- images.push(image)
203
- i += 1
204
- }
205
- return images.length > 0 ? { images, nextIndex: i } : null
206
- }
207
-
208
- function findNextNonBlankLine(lines: string[], startIndex: number): number {
209
- for (let i = startIndex; i < lines.length; i += 1) {
210
- if ((lines[i] ?? "").trim() !== "") return i
211
- }
212
- return -1
213
- }
214
-
215
- function parseImageOnlyLine(line: string): MarkdownImageItem | null {
216
- const match = line.trim().match(/^!\[([^\]]*)\]\(([^)]+)\)$/)
217
- if (!match) return null
218
- return { alt: match[1] ?? "", target: match[2] ?? "" }
219
- }
220
-
221
- function isTableHeader(lines: string[], index: number): boolean {
222
- const current = lines[index] ?? ""
223
- const next = lines[index + 1] ?? ""
224
- if (!isTableRow(current) || !isTableRow(next)) return false
225
- const headers = splitTableRow(current)
226
- const separators = splitTableRow(next)
227
- return (
228
- headers.length > 0 &&
229
- separators.length >= headers.length &&
230
- separators.slice(0, headers.length).every((cell) => /^:?-{3,}:?$/.test(cell.trim()))
231
- )
232
- }
233
-
234
- function isTableRow(line: string): boolean {
235
- return line.includes("|") && line.trim() !== ""
236
- }
237
-
238
- function splitTableRow(line: string): string[] {
239
- const trimmed = line.trim().replace(/^\|/, "").replace(/\|$/, "")
240
- return trimmed.split("|").map((cell) => cell.trim())
241
- }
242
-
243
- function normalizeTableRow(row: string[], length: number): string[] {
244
- return Array.from({ length }, (_, index) => row[index] ?? "")
245
- }
246
-
247
- function parseTableAligns(cells: string[], length: number): TableAlign[] {
248
- return Array.from({ length }, (_, index) => {
249
- const cell = cells[index]?.trim() ?? ""
250
- if (cell.startsWith(":") && cell.endsWith(":")) return "center"
251
- if (cell.endsWith(":")) return "right"
252
- return "left"
253
- })
254
- }
255
-
256
- // renderInline handles **bold**, *italic*/_italic_, `code`, ![alt](url),
257
- // [text](url), and bare http(s) URLs.
258
- function renderInline(text: string, options: InlineRenderOptions = {}): React.ReactNode[] {
259
- const nodes: React.ReactNode[] = []
260
- const openLocalPath = resolveLocalPathOpener(options)
261
- const re =
262
- /(\*\*([^*]+)\*\*|`([^`]+)`|\*([^*]+)\*|_([^_]+)_|!\[([^\]]*)\]\(([^)]+)\)|\[([^\]]+)\]\(([^)]+)\)|(https?:\/\/[^\s<>()]+))/g
263
- let last = 0
264
- let key = 0
265
- let m: RegExpExecArray | null
266
- while ((m = re.exec(text)) !== null) {
267
- if (m.index > last) nodes.push(...renderText(text.slice(last, m.index), key++, openLocalPath))
268
- if (m[2] !== undefined) nodes.push(<strong key={key++}>{renderText(m[2], key++, openLocalPath)}</strong>)
269
- else if (m[3] !== undefined) nodes.push(<code key={key++}>{m[3]}</code>)
270
- else if (m[4] !== undefined) nodes.push(<em key={key++}>{renderText(m[4], key++, openLocalPath)}</em>)
271
- else if (m[5] !== undefined) nodes.push(<em key={key++}>{renderText(m[5], key++, openLocalPath)}</em>)
272
- else if (m[6] !== undefined && m[7] !== undefined) {
273
- nodes.push(
274
- <MarkdownImage
275
- key={key++}
276
- alt={m[6]}
277
- target={m[7]}
278
- openLocalPath={openLocalPath}
279
- onLocalImagePreview={options.onLocalImagePreview}
280
- localPathBaseDir={options.localPathBaseDir}
281
- />,
282
- )
283
- } else if (m[8] !== undefined && m[9] !== undefined) {
284
- const localPath = localMarkdownLinkTarget(m[9], localLinkOptions(options))
285
- const href = localPath ? null : safeHref(m[9])
286
- const label = m[8]
287
- // Untrusted skill content: render as a link only when the protocol is
288
- // safe; otherwise downgrade to plain text so javascript:/data: etc. can't
289
- // be clicked in the Electron renderer.
290
- nodes.push(
291
- localPath && openLocalPath ? (
292
- <Button
293
- variant="unstyled"
294
- key={key++}
295
- type="button"
296
- className="md__local-path"
297
- title={localPath}
298
- onClick={() => openLocalPath(localPath, label)}
299
- >
300
- {renderLinkLabel(label, key++)}
301
- </Button>
302
- ) : href ? (
303
- <a key={key++} href={href} target="_blank" rel="noreferrer noopener">
304
- {renderLinkLabel(label, key++)}
305
- </a>
306
- ) : (
307
- <Fragment key={key++}>{renderLinkLabel(label, key++)}</Fragment>
308
- ),
309
- )
310
- } else if (m[10] !== undefined) {
311
- const { href, trailing } = splitTrailingUrlPunctuation(m[10])
312
- const safe = safeHref(href)
313
- nodes.push(
314
- safe ? (
315
- <a key={key++} href={safe} target="_blank" rel="noreferrer noopener">
316
- {href}
317
- </a>
318
- ) : (
319
- <Fragment key={key++}>{href}</Fragment>
320
- ),
321
- )
322
- if (trailing) nodes.push(...renderText(trailing, key++, openLocalPath))
323
- }
324
- last = m.index + m[0].length
325
- }
326
- if (last < text.length) nodes.push(...renderText(text.slice(last), key++, openLocalPath))
327
- return nodes
328
- }
329
-
330
- // Link labels carry their own emphasis markup (agents commonly emit
331
- // [**`file.txt`**](/abs/path)). Parse the safe inline subset here β€” no nested
332
- // links or images β€” so the markers do not leak into the visible label.
333
- function renderLinkLabel(label: string, keySeed: number): React.ReactNode[] {
334
- const nodes: React.ReactNode[] = []
335
- const re = /(\*\*([^*]+)\*\*|`([^`]+)`|\*([^*]+)\*|_([^_]+)_)/g
336
- let last = 0
337
- let key = keySeed
338
- let m: RegExpExecArray | null
339
- while ((m = re.exec(label)) !== null) {
340
- if (m.index > last) nodes.push(...renderEmojiText(label.slice(last, m.index), key++))
341
- if (m[2] !== undefined) nodes.push(<strong key={`lb-${key++}`}>{renderLinkLabel(m[2], key++)}</strong>)
342
- else if (m[3] !== undefined) nodes.push(<code key={`lb-${key++}`}>{m[3]}</code>)
343
- else if (m[4] !== undefined) nodes.push(<em key={`lb-${key++}`}>{renderLinkLabel(m[4], key++)}</em>)
344
- else if (m[5] !== undefined) nodes.push(<em key={`lb-${key++}`}>{renderLinkLabel(m[5], key++)}</em>)
345
- last = m.index + m[0].length
346
- }
347
- if (last < label.length) nodes.push(...renderEmojiText(label.slice(last), key++))
348
- return nodes
349
- }
350
-
351
- function MarkdownImage({
352
- alt,
353
- target,
354
- openLocalPath,
355
- onLocalImagePreview,
356
- localPathBaseDir,
357
- variant = "inline",
358
- }: {
359
- alt: string
360
- target: string
361
- openLocalPath?: LocalPathOpener
362
- onLocalImagePreview?: LocalImagePreviewResolver
363
- localPathBaseDir?: string
364
- variant?: "inline" | "gallery"
365
- }): React.ReactElement {
366
- const cleanTarget = target.trim()
367
- const [preview, setPreview] = useState<LocalMarkdownPreview | null>(null)
368
- const remoteHref = safeRemoteImageHref(cleanTarget)
369
- const shouldResolveLocal = !remoteHref && isLikelyLocalImageTarget(cleanTarget) && Boolean(onLocalImagePreview)
370
- const imageClassName = variant === "gallery" ? "md__image md__image--gallery" : "md__image"
371
- const buttonClassName = variant === "gallery" ? "md__image-button md__image-button--gallery" : "md__image-button"
372
-
373
- useEffect(() => {
374
- if (!shouldResolveLocal || !onLocalImagePreview) {
375
- setPreview(null)
376
- return
377
- }
378
- let canceled = false
379
- setPreview(null)
380
- onLocalImagePreview(cleanTarget)
381
- .then((result) => {
382
- if (!canceled) setPreview(result?.kind === "image" ? result : null)
383
- })
384
- .catch(() => {
385
- if (!canceled) setPreview(null)
386
- })
387
- return () => {
388
- canceled = true
389
- }
390
- }, [cleanTarget, onLocalImagePreview, shouldResolveLocal])
391
-
392
- if (remoteHref) {
393
- return <img className={imageClassName} src={remoteHref} alt={alt} />
394
- }
395
-
396
- if (preview) {
397
- return (
398
- <Button
399
- variant="unstyled"
400
- type="button"
401
- className={buttonClassName}
402
- title={alt || preview.name}
403
- data-md-image-target={cleanTarget}
404
- data-md-image-base-dir={localPathBaseDir || undefined}
405
- data-md-image-name={alt || preview.name}
406
- onClick={() => openLocalPath?.(cleanTarget, alt)}
407
- >
408
- <img className={imageClassName} src={preview.url} alt={alt || preview.name} />
409
- </Button>
410
- )
411
- }
412
-
413
- const label = alt || cleanTarget
414
- if (openLocalPath && isLikelyLocalImageTarget(cleanTarget)) {
415
- return (
416
- <Button
417
- variant="unstyled"
418
- type="button"
419
- className="md__image-fallback"
420
- title={cleanTarget}
421
- onClick={() => openLocalPath(cleanTarget, alt)}
422
- >
423
- {label}
424
- </Button>
425
- )
426
- }
427
- return <span className="md__image-fallback">{label}</span>
428
- }
429
-
430
- function ImageGallery({
431
- images,
432
- options,
433
- }: {
434
- images: MarkdownImageItem[]
435
- options: InlineRenderOptions
436
- }): React.ReactElement {
437
- const openLocalPath = resolveLocalPathOpener(options)
438
- return (
439
- <div
440
- className={`md__image-gallery md__image-gallery--${imageGallerySizeClass(images.length)}`}
441
- data-image-count={images.length}
442
- >
443
- {images.map((image, index) => (
444
- <MarkdownImage
445
- key={`${image.target}-${index}`}
446
- alt={image.alt}
447
- target={image.target}
448
- openLocalPath={openLocalPath}
449
- onLocalImagePreview={options.onLocalImagePreview}
450
- localPathBaseDir={options.localPathBaseDir}
451
- variant="gallery"
452
- />
453
- ))}
454
- </div>
455
- )
456
- }
457
-
458
- function imageGallerySizeClass(count: number): string {
459
- if (count <= 1) return "count-1"
460
- if (count === 2) return "count-2"
461
- if (count === 3) return "count-3"
462
- return "count-many"
463
- }
464
-
465
- function renderText(text: string, keySeed: number, openLocalPath?: LocalPathOpener): React.ReactNode[] {
466
- if (openLocalPath) return renderLocalPaths(text, keySeed, openLocalPath)
467
- return renderEmojiText(text, keySeed)
468
- }
469
-
470
- function renderLocalPaths(text: string, keySeed: number, openLocalPath: LocalPathOpener): React.ReactNode[] {
471
- const nodes: React.ReactNode[] = []
472
- let key = keySeed
473
- for (const segment of splitLocalPathSegments(text)) {
474
- if (segment.kind === "text") {
475
- nodes.push(...renderEmojiText(segment.text, key++))
476
- continue
477
- }
478
- nodes.push(
479
- <Button
480
- variant="unstyled"
481
- key={`path-${key++}`}
482
- type="button"
483
- className="md__local-path"
484
- title={segment.path}
485
- onClick={() => openLocalPath(segment.path)}
486
- >
487
- {segment.path}
488
- </Button>,
489
- )
490
- if (segment.trailing) nodes.push(...renderEmojiText(segment.trailing, key++))
491
- }
492
- return nodes
493
- }
494
-
495
- function collectLocalFileRefs(blocks: Block[], linkOptions: LocalLinkTargetOptions): AttachmentItem[] {
496
- const seen = new Set<string>()
497
- const refs: AttachmentItem[] = []
498
- const collect = (text: string) => collectMarkdownFileRefs(text, seen, refs, linkOptions)
499
- for (const block of blocks) {
500
- if (block.kind === "code" || block.kind === "imageGallery") continue
501
- if (block.kind === "heading" || block.kind === "para") collect(block.text)
502
- if (block.kind === "list") block.items.forEach(collect)
503
- if (block.kind === "quote") block.paragraphs.forEach(collect)
504
- if (block.kind === "table") {
505
- block.headers.forEach(collect)
506
- block.rows.forEach((row) => row.forEach(collect))
507
- }
508
- }
509
- return refs
510
- }
511
-
512
- function renderEmojiText(text: string, keySeed: number): React.ReactNode[] {
513
- const nodes: React.ReactNode[] = []
514
- const re = /:([a-zA-Z0-9_+-]+):/g
515
- let last = 0
516
- let key = keySeed
517
- let m: RegExpExecArray | null
518
- while ((m = re.exec(text)) !== null) {
519
- if (m.index > last) nodes.push(<Fragment key={`t-${key++}`}>{text.slice(last, m.index)}</Fragment>)
520
- const emoji = EMOJI_SHORTCODES[m[1] ?? ""]
521
- nodes.push(<Fragment key={`t-${key++}`}>{emoji ?? m[0]}</Fragment>)
522
- last = m.index + m[0].length
523
- }
524
- if (last < text.length) nodes.push(<Fragment key={`t-${key++}`}>{text.slice(last)}</Fragment>)
525
- return nodes
526
- }
527
-
528
- const EMOJI_SHORTCODES: Record<string, string> = {
529
- smile: "πŸ˜„",
530
- smiley: "πŸ˜ƒ",
531
- grinning: "πŸ˜€",
532
- joy: "πŸ˜‚",
533
- blush: "😊",
534
- wink: "πŸ˜‰",
535
- thinking: "πŸ€”",
536
- rocket: "πŸš€",
537
- tada: "πŸŽ‰",
538
- sparkles: "✨",
539
- fire: "πŸ”₯",
540
- warning: "⚠️",
541
- white_check_mark: "βœ…",
542
- check: "βœ…",
543
- x: "❌",
544
- cross_mark: "❌",
545
- memo: "πŸ“",
546
- bulb: "πŸ’‘",
547
- link: "πŸ”—",
548
- book: "πŸ“–",
549
- calendar: "πŸ“…",
550
- clock: "πŸ•’",
551
- robot: "πŸ€–",
552
- eyes: "πŸ‘€",
553
- point_right: "πŸ‘‰",
554
- point_left: "πŸ‘ˆ",
555
- thumbsup: "πŸ‘",
556
- thumbsdown: "πŸ‘Ž",
557
- }
558
-
559
- function splitTrailingUrlPunctuation(raw: string): { href: string; trailing: string } {
560
- const match = raw.match(/^(.*?)([.,!?;:οΌŒγ€‚οΌοΌŸοΌ›οΌšγ€]+)?$/)
561
- return {
562
- href: match?.[1] || raw,
563
- trailing: match?.[2] || "",
564
- }
565
- }
566
-
567
- function safeRemoteImageHref(raw: string): string | null {
568
- const href = safeHref(raw)
569
- if (!href) return null
570
- return /^https?:\/\//i.test(href) ? href : null
571
- }
572
-
573
- function isLikelyLocalImageTarget(raw: string): boolean {
574
- return /\.(png|jpe?g|gif|webp|bmp|svg|heic|heif|tiff?)(?:[?#].*)?$/i.test(raw.trim())
575
- }
576
-
577
- export type MarkdownProps = {
578
- source: string
579
- className?: string
580
- onLocalPathClick?: (path: string) => void
581
- onLocalFileCardOpen?: (item: AttachmentItem) => void
582
- onRequestLocalFileOpenWithOptions?: (item: AttachmentItem) => Promise<AttachmentMenuOption[]> | AttachmentMenuOption[]
583
- onLocalFileCardOpenWith?: (item: AttachmentItem, option: AttachmentMenuOption) => void
584
- onLocalFileCardOpenWithMenu?: (item: AttachmentItem) => void
585
- onLocalImagePreview?: LocalImagePreviewResolver
586
- localPathBaseDir?: string
587
- /** When set, shell code blocks show a run button that invokes this with the code. */
588
- onRunCommand?: (code: string) => void
589
- }
590
-
591
- export function Markdown({
592
- source,
593
- className,
594
- onLocalPathClick,
595
- onLocalFileCardOpen,
596
- onRequestLocalFileOpenWithOptions,
597
- onLocalFileCardOpenWith,
598
- onLocalFileCardOpenWithMenu,
599
- onLocalImagePreview,
600
- localPathBaseDir,
601
- onRunCommand,
602
- }: MarkdownProps): React.ReactElement {
603
- const blocks = useMemo(() => parseBlocks(source), [source])
604
- // Inline local paths share onLocalFileCardOpen with the cards below so both
605
- // resolve the same preview surface (browser sidebar, in-app viewer, or OS).
606
- const inlineOptions = {
607
- onLocalPathClick,
608
- onLocalFileOpen: onLocalFileCardOpen,
609
- onLocalImagePreview,
610
- localPathBaseDir,
611
- }
612
- const localFileRefs = useMemo(
613
- () => (onLocalPathClick ? collectLocalFileRefs(blocks, { allowRelative: Boolean(localPathBaseDir) }) : []),
614
- [blocks, localPathBaseDir, onLocalPathClick],
615
- )
616
- return (
617
- <div className={className ? `md ${className}` : "md"}>
618
- {blocks.map((block, idx) => {
619
- if (block.kind === "heading") {
620
- const Tag = `h${Math.min(block.level, 6)}` as "h1"
621
- return <Tag key={idx}>{renderInline(block.text, inlineOptions)}</Tag>
622
- }
623
- if (block.kind === "code") {
624
- const runnable = onRunCommand && isRunnableShellLanguage(block.language)
625
- return (
626
- <CodeBlock
627
- key={idx}
628
- language={block.language || "text"}
629
- onRun={runnable ? () => onRunCommand(block.text) : undefined}
630
- >
631
- {block.text}
632
- </CodeBlock>
633
- )
634
- }
635
- if (block.kind === "list") {
636
- const items = block.items.map((it, j) => <li key={j}>{renderInline(it, inlineOptions)}</li>)
637
- return block.ordered ? <ol key={idx}>{items}</ol> : <ul key={idx}>{items}</ul>
638
- }
639
- if (block.kind === "table") {
640
- return (
641
- <div key={idx} className="md__table-wrap">
642
- <table>
643
- <thead>
644
- <tr>
645
- {block.headers.map((cell, j) => (
646
- <th key={j} className={`al-${block.aligns[j] ?? "left"}`}>
647
- {renderInline(cell, inlineOptions)}
648
- </th>
649
- ))}
650
- </tr>
651
- </thead>
652
- <tbody>
653
- {block.rows.map((row, rowIndex) => (
654
- <tr key={rowIndex}>
655
- {row.map((cell, cellIndex) => (
656
- <td key={cellIndex} className={`al-${block.aligns[cellIndex] ?? "left"}`}>
657
- {renderInline(cell, inlineOptions)}
658
- </td>
659
- ))}
660
- </tr>
661
- ))}
662
- </tbody>
663
- </table>
664
- </div>
665
- )
666
- }
667
- if (block.kind === "quote") {
668
- return (
669
- <blockquote key={idx}>
670
- {block.paragraphs.map((text, j) => (
671
- <p key={j}>{renderInline(text, inlineOptions)}</p>
672
- ))}
673
- </blockquote>
674
- )
675
- }
676
- if (block.kind === "imageGallery")
677
- return <ImageGallery key={idx} images={block.images} options={inlineOptions} />
678
- return <p key={idx}>{renderInline(block.text, inlineOptions)}</p>
679
- })}
680
- {onLocalPathClick && localFileRefs.length > 0 && (
681
- <AttachmentList layout="stack" className="md-file-cards" aria-label="ζœ¬εœ°ζ–‡δ»ΆεΌ•η”¨">
682
- {localFileRefs.map((item) => (
683
- <Attachment
684
- key={item.id ?? item.path}
685
- variant="card"
686
- name={item.name}
687
- path={item.path}
688
- // ε‘ζœ¬θΊ«ε°±ζ˜―ζ‰“εΌ€ε…₯ε£οΌŒζŽ¨ζ–­ε‡Ίηš„η±»εž‹ζ–‡ζ‘ˆεͺδΌšι‡ε€ζ‰©ε±•εοΌ›δΈšεŠ‘δΌ ηš„ typeLabel 留着。
689
- meta={item.typeLabel ?? ""}
690
- onOpen={() => (onLocalFileCardOpen ?? ((ref: AttachmentItem) => onLocalPathClick(ref.path)))(item)}
691
- onNativeActionsMenu={onLocalFileCardOpenWithMenu ? () => onLocalFileCardOpenWithMenu(item) : undefined}
692
- onRequestActions={
693
- onRequestLocalFileOpenWithOptions ? () => onRequestLocalFileOpenWithOptions(item) : undefined
694
- }
695
- onAction={onLocalFileCardOpenWith ? (option) => onLocalFileCardOpenWith(item, option) : undefined}
696
- />
697
- ))}
698
- </AttachmentList>
699
- )}
700
- </div>
701
- )
702
- }