@dxos/plugin-thread 0.6.11 → 0.6.12-main.5cc132e

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 (64) hide show
  1. package/dist/lib/browser/{ThreadArticle-O64ZECMF.mjs → ThreadArticle-6L6BGE4Z.mjs} +2 -2
  2. package/dist/lib/browser/{ThreadMain-ZDCRC6RG.mjs → ThreadMain-DU6LBSN3.mjs} +2 -2
  3. package/dist/lib/browser/{chunk-P7ZE5N5M.mjs → chunk-AVC4CGJM.mjs} +6 -6
  4. package/dist/lib/browser/chunk-AVC4CGJM.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-GKPZHUT3.mjs → chunk-U5UVX4ZP.mjs} +1 -1
  6. package/dist/lib/browser/{chunk-GKPZHUT3.mjs.map → chunk-U5UVX4ZP.mjs.map} +1 -1
  7. package/dist/lib/browser/index.mjs +217 -153
  8. package/dist/lib/browser/index.mjs.map +4 -4
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/types.mjs +1 -1
  11. package/dist/lib/node/{ThreadArticle-DO56JXBU.cjs → ThreadArticle-7BWXVIJ4.cjs} +6 -6
  12. package/dist/lib/node/{ThreadMain-XJX75GHG.cjs → ThreadMain-XSRB6NKJ.cjs} +6 -6
  13. package/dist/lib/node/{chunk-D5GOVXHS.cjs → chunk-4B2ARV7L.cjs} +4 -4
  14. package/dist/lib/node/{chunk-D5GOVXHS.cjs.map → chunk-4B2ARV7L.cjs.map} +1 -1
  15. package/dist/lib/node/{chunk-5PZNPPQF.cjs → chunk-T7TXCNHL.cjs} +8 -8
  16. package/dist/lib/node/chunk-T7TXCNHL.cjs.map +7 -0
  17. package/dist/lib/node/index.cjs +258 -196
  18. package/dist/lib/node/index.cjs.map +4 -4
  19. package/dist/lib/node/meta.json +1 -1
  20. package/dist/lib/node/types.cjs +2 -2
  21. package/dist/lib/node/types.cjs.map +1 -1
  22. package/dist/lib/node-esm/ThreadArticle-6L6BGE4Z.mjs +18 -0
  23. package/dist/lib/node-esm/ThreadArticle-6L6BGE4Z.mjs.map +7 -0
  24. package/dist/lib/node-esm/ThreadMain-DU6LBSN3.mjs +26 -0
  25. package/dist/lib/node-esm/ThreadMain-DU6LBSN3.mjs.map +7 -0
  26. package/dist/lib/node-esm/chunk-5IBJO53M.mjs +21 -0
  27. package/dist/lib/node-esm/chunk-5IBJO53M.mjs.map +7 -0
  28. package/dist/lib/node-esm/chunk-AVC4CGJM.mjs +410 -0
  29. package/dist/lib/node-esm/chunk-AVC4CGJM.mjs.map +7 -0
  30. package/dist/lib/node-esm/chunk-U5UVX4ZP.mjs +20 -0
  31. package/dist/lib/node-esm/chunk-U5UVX4ZP.mjs.map +7 -0
  32. package/dist/lib/node-esm/index.mjs +1166 -0
  33. package/dist/lib/node-esm/index.mjs.map +7 -0
  34. package/dist/lib/node-esm/meta.json +1 -0
  35. package/dist/lib/node-esm/meta.mjs +11 -0
  36. package/dist/lib/node-esm/meta.mjs.map +7 -0
  37. package/dist/lib/node-esm/types.mjs +8 -0
  38. package/dist/lib/node-esm/types.mjs.map +7 -0
  39. package/dist/types/src/ThreadPlugin.d.ts.map +1 -1
  40. package/dist/types/src/components/CommentContainer.d.ts.map +1 -1
  41. package/dist/types/src/components/CommentsContainer.d.ts.map +1 -1
  42. package/dist/types/src/components/MessageContainer.d.ts.map +1 -1
  43. package/dist/types/src/components/ThreadComplementary.d.ts +11 -0
  44. package/dist/types/src/components/ThreadComplementary.d.ts.map +1 -0
  45. package/dist/types/src/types.d.ts +1 -1
  46. package/dist/types/src/types.d.ts.map +1 -1
  47. package/package.json +35 -32
  48. package/src/ThreadPlugin.tsx +46 -111
  49. package/src/components/ChatContainer.tsx +4 -4
  50. package/src/components/CommentContainer.tsx +10 -7
  51. package/src/components/Comments.stories.tsx +2 -2
  52. package/src/components/CommentsContainer.tsx +18 -14
  53. package/src/components/MessageContainer.tsx +2 -1
  54. package/src/components/ThreadComplementary.tsx +120 -0
  55. package/src/types.ts +1 -1
  56. package/dist/lib/browser/chunk-P7ZE5N5M.mjs.map +0 -7
  57. package/dist/lib/node/chunk-5PZNPPQF.cjs.map +0 -7
  58. package/dist/types/src/types.test.d.ts +0 -2
  59. package/dist/types/src/types.test.d.ts.map +0 -1
  60. package/src/types.test.ts +0 -13
  61. /package/dist/lib/browser/{ThreadArticle-O64ZECMF.mjs.map → ThreadArticle-6L6BGE4Z.mjs.map} +0 -0
  62. /package/dist/lib/browser/{ThreadMain-ZDCRC6RG.mjs.map → ThreadMain-DU6LBSN3.mjs.map} +0 -0
  63. /package/dist/lib/node/{ThreadArticle-DO56JXBU.cjs.map → ThreadArticle-7BWXVIJ4.cjs.map} +0 -0
  64. /package/dist/lib/node/{ThreadMain-XJX75GHG.cjs.map → ThreadMain-XSRB6NKJ.cjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ThreadPlugin.tsx", "../../../src/components/index.ts", "../../../src/components/ThreadSettings.tsx", "../../../src/components/CommentContainer.tsx", "../../../src/components/CommentsContainer.tsx", "../../../src/components/ThreadComplementary.tsx", "../../../src/translations.ts", "../../../src/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Chat, type IconProps } from '@phosphor-icons/react';\nimport { computed, effect } from '@preact/signals-core';\nimport React from 'react';\n\nimport {\n type IntentPluginProvides,\n LayoutAction,\n NavigationAction,\n type LocationProvides,\n type Plugin,\n type PluginDefinition,\n parseIntentPlugin,\n parseNavigationPlugin,\n resolvePlugin,\n parseGraphPlugin,\n SLUG_PATH_SEPARATOR,\n SLUG_COLLECTION_INDICATOR,\n isLayoutParts,\n parseMetadataResolverPlugin,\n} from '@dxos/app-framework';\nimport { type UnsubscribeCallback } from '@dxos/async';\nimport { type EchoReactiveObject, getTypename } from '@dxos/echo-schema';\nimport { create } from '@dxos/echo-schema';\nimport { LocalStorageStore } from '@dxos/local-storage';\nimport { log } from '@dxos/log';\nimport { type AttentionPluginProvides, parseAttentionPlugin } from '@dxos/plugin-attention';\nimport { parseClientPlugin } from '@dxos/plugin-client';\nimport { type ActionGroup, createExtension, isActionGroup } from '@dxos/plugin-graph';\nimport { ObservabilityAction } from '@dxos/plugin-observability/meta';\nimport { SpaceAction } from '@dxos/plugin-space';\nimport { ThreadType, MessageType, ChannelType } from '@dxos/plugin-space/types';\nimport {\n getSpace,\n getTextInRange,\n Filter,\n createDocAccessor,\n fullyQualifiedId,\n loadObjectReferences,\n} from '@dxos/react-client/echo';\nimport { comments, createExternalCommentSync, listener } from '@dxos/react-ui-editor';\nimport { translations as threadTranslations } from '@dxos/react-ui-thread';\nimport { nonNullable } from '@dxos/util';\n\nimport { ThreadMain, ThreadSettings, ChatContainer, ChatHeading, ThreadArticle } from './components';\nimport { ThreadComplementary } from './components/ThreadComplementary';\nimport meta, { THREAD_ITEM, THREAD_PLUGIN } from './meta';\nimport translations from './translations';\nimport { ThreadAction, type ThreadPluginProvides, type ThreadSettingsProps } from './types';\n\ntype ThreadState = {\n /** An in-memory staging area for threads that are being drafted. */\n staging: Record<string, ThreadType[]>;\n current?: string | undefined;\n focus?: boolean;\n};\n\ntype SubjectId = string;\nconst initialViewState = { showResolvedThreads: false };\ntype ViewStore = Record<SubjectId, typeof initialViewState>;\n\n// TODO(Zan): More robust runtime check.\n\n// TODO(Zan): Every instance of `cursor` should be replaced with `anchor`.\nexport const ThreadPlugin = (): PluginDefinition<ThreadPluginProvides> => {\n const settings = new LocalStorageStore<ThreadSettingsProps>(THREAD_PLUGIN);\n const state = create<ThreadState>({ staging: {} });\n\n const viewStore = create<ViewStore>({});\n const getViewState = (subjectId: string) => {\n if (!viewStore[subjectId]) {\n viewStore[subjectId] = { ...initialViewState };\n }\n return viewStore[subjectId];\n };\n\n let attentionPlugin: Plugin<AttentionPluginProvides> | undefined;\n let navigationPlugin: Plugin<LocationProvides> | undefined;\n let intentPlugin: Plugin<IntentPluginProvides> | undefined;\n\n const unsubscribeCallbacks = [] as UnsubscribeCallback[];\n\n return {\n meta,\n ready: async (plugins) => {\n settings.prop({ key: 'standalone', type: LocalStorageStore.bool({ allowUndefined: true }) });\n\n attentionPlugin = resolvePlugin(plugins, parseAttentionPlugin);\n navigationPlugin = resolvePlugin(plugins, parseNavigationPlugin);\n intentPlugin = resolvePlugin(plugins, parseIntentPlugin)!;\n\n const graphPlugin = resolvePlugin(plugins, parseGraphPlugin);\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n if (!client) {\n return;\n }\n\n // TODO(wittjosiah): This is a hack to make standalone threads work in the c11y sidebar.\n // This should have a better solution when deck is introduced.\n const channelsQuery = client.spaces.query(Filter.schema(ChannelType));\n const queryUnsubscribe = channelsQuery.subscribe();\n const unsubscribe = effect(() => {\n const attention = attentionPlugin?.provides.attention;\n if (!attention?.attended) {\n return;\n }\n\n const firstAttendedNodeWithComments = Array.from(attention.attended)\n .map((id) => graphPlugin?.provides.graph.findNode(id))\n .find((node) => {\n const data = node?.data as { threads?: unknown };\n return Array.isArray(data?.threads) && data.threads.length > 0;\n });\n\n if (firstAttendedNodeWithComments) {\n void intentPlugin?.provides.intent.dispatch({\n action: NavigationAction.OPEN,\n data: {\n activeParts: {\n complementary: `${firstAttendedNodeWithComments.id}${SLUG_PATH_SEPARATOR}comments`,\n },\n },\n });\n }\n });\n\n unsubscribeCallbacks.push(queryUnsubscribe);\n unsubscribeCallbacks.push(unsubscribe);\n },\n unload: async () => {\n unsubscribeCallbacks.forEach((unsubscribe) => unsubscribe());\n },\n provides: {\n settings: settings.values,\n metadata: {\n records: {\n [ChannelType.typename]: {\n placeholder: ['channel title placeholder', { ns: THREAD_PLUGIN }],\n icon: (props: IconProps) => <Chat {...props} />,\n iconSymbol: 'ph--chat--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (channel: ChannelType) => loadObjectReferences(channel, (channel) => channel.threads),\n },\n [ThreadType.typename]: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (thread: ThreadType) => loadObjectReferences(thread, (thread) => thread.messages),\n },\n [MessageType.typename]: {\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: (message: MessageType) => [], // loadObjectReferences(message, (message) => [...message.parts, message.context]),\n },\n [THREAD_ITEM]: {\n parse: (item: EchoReactiveObject<any>, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.title, data: item };\n case 'object':\n return item;\n case 'view-object':\n return { id: `${item.id}-view`, object: item };\n }\n },\n },\n },\n },\n translations: [...translations, ...threadTranslations],\n echo: { schema: [ChannelType, ThreadType, MessageType] },\n graph: {\n builder: (plugins) => {\n const client = resolvePlugin(plugins, parseClientPlugin)?.provides.client;\n const dispatch = resolvePlugin(plugins, parseIntentPlugin)?.provides.intent.dispatch;\n const metadataResolver = resolvePlugin(plugins, parseMetadataResolverPlugin)?.provides.metadata.resolver;\n\n if (!client || !dispatch || !metadataResolver) {\n return [];\n }\n\n return [\n createExtension({\n id: `${THREAD_PLUGIN}/comments-for-subject`,\n resolver: ({ id }) => {\n if (!id.endsWith('~comments')) {\n return;\n }\n\n // TODO(Zan): Find util (or make one)\n const docId = id.split('~').at(0);\n const [spaceId, objectId] = docId?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const doc = space?.db.getObjectById(objectId);\n if (!doc || !docId) {\n return;\n }\n\n const docMeta = metadataResolver(getTypename(doc) ?? '');\n const label = docMeta.label?.(doc) ||\n doc.name ||\n docMeta.placeholder || ['unnamed object threads label', { ns: THREAD_PLUGIN }];\n\n const viewState = getViewState(docId);\n\n return {\n id,\n type: 'orphan-comments-for-subject',\n data: doc,\n properties: {\n icon: meta.iconComponent,\n label,\n showResolvedThreads: viewState.showResolvedThreads,\n },\n };\n },\n actions: ({ node }) => {\n const dataId = node.id.split('~').at(0);\n if (!node.id.endsWith('~comments') || !dataId) {\n return;\n }\n\n const [spaceId, objectId] = dataId.split(':');\n\n const viewState = getViewState(dataId);\n const toggle = () => {\n const newToggleState = !viewState.showResolvedThreads;\n viewState.showResolvedThreads = newToggleState;\n void dispatch({\n action: ObservabilityAction.SEND_EVENT,\n data: {\n name: 'threads.toggle-show-resolved',\n properties: { spaceId, threadId: objectId, showResolved: newToggleState },\n },\n });\n };\n\n return [\n {\n id: `${THREAD_PLUGIN}/toggle-show-resolved/${node.id}`,\n data: toggle,\n properties: {\n label: ['toggle show resolved', { ns: THREAD_PLUGIN }],\n menuItemType: 'toggle',\n isChecked: viewState.showResolvedThreads,\n testId: 'threadPlugin.toggleShowResolved',\n iconSymbol: viewState.showResolvedThreads ? 'ph--eye-slash--regular' : 'ph--eye--regular',\n },\n },\n ];\n },\n }),\n createExtension({\n id: ThreadAction.CREATE,\n filter: (node): node is ActionGroup =>\n !!settings.values.standalone && isActionGroup(node) && node.id.startsWith(SpaceAction.ADD_OBJECT),\n actions: ({ node }) => {\n const id = node.id.split('/').at(-1);\n const [spaceId, objectId] = id?.split(':') ?? [];\n const space = client.spaces.get().find((space) => space.id === spaceId);\n const object = objectId && space?.db.getObjectById(objectId);\n const target = objectId ? object : space;\n if (!target) {\n return;\n }\n\n return [\n {\n id: `${THREAD_PLUGIN}/create/${node.id}`,\n data: async () => {\n await dispatch([\n { plugin: THREAD_PLUGIN, action: ThreadAction.CREATE },\n { action: SpaceAction.ADD_OBJECT, data: { target } },\n { action: NavigationAction.OPEN },\n ]);\n },\n properties: {\n label: ['create channel label', { ns: THREAD_PLUGIN }],\n icon: (props: IconProps) => <Chat {...props} />,\n iconSymbol: 'ph--chat--regular',\n testId: 'threadPlugin.createObject',\n },\n },\n ];\n },\n }),\n ];\n },\n },\n surface: {\n component: ({ data, role }) => {\n switch (role) {\n case 'main': {\n return data.active instanceof ChannelType && data.active.threads[0] ? (\n <ThreadMain thread={data.active.threads[0]} />\n ) : null;\n }\n\n case 'settings': {\n return data.plugin === meta.id ? <ThreadSettings settings={settings.values} /> : null;\n }\n\n case 'article':\n case 'complementary': {\n const location = navigationPlugin?.provides.location;\n\n if (data.object instanceof ChannelType && data.object.threads[0]) {\n const channel = data.object;\n // TODO(zan): Maybe we should have utility for positional main object ids.\n if (isLayoutParts(location?.active) && location.active.main) {\n const layoutEntries = location.active.main;\n const currentPosition = layoutEntries.findIndex((entry) => channel.id === entry.id);\n if (currentPosition > 0) {\n const objectToTheLeft = layoutEntries[currentPosition - 1];\n const context = getSpace(data.object)?.db.getObjectById(objectToTheLeft.id);\n return <ThreadArticle thread={data.object.threads[0]} context={context} />;\n }\n }\n\n return <ThreadArticle thread={data.object.threads[0]} />;\n }\n\n if (data.subject instanceof ThreadType) {\n return (\n <>\n <ChatHeading attendableId={data.subject.id} />\n <ChatContainer thread={data.subject} />\n </>\n );\n }\n\n if (\n data.subject &&\n typeof data.subject === 'object' &&\n 'threads' in data.subject &&\n Array.isArray(data.subject.threads)\n ) {\n const { showResolvedThreads } = getViewState(fullyQualifiedId(data.subject));\n\n return (\n <ThreadComplementary\n role={role}\n subject={data.subject}\n stagedThreads={state.staging[fullyQualifiedId(data.subject)]}\n current={state.current}\n focus\n showResolvedThreads={showResolvedThreads}\n />\n );\n }\n }\n }\n\n return null;\n },\n },\n intent: {\n resolver: async (intent) => {\n switch (intent.action) {\n case ThreadAction.CREATE: {\n if (intent.data && intent.data.cursor !== undefined) {\n const { cursor, name, subject } = intent.data;\n\n // Seed the threads array if it does not exist.\n if (subject?.threads === undefined) {\n try {\n // Static schema will throw an error if subject does not support threads array property.\n subject.threads = [];\n } catch (e) {\n log.error('Subject does not support threads array', subject?.typename);\n return;\n }\n }\n\n const subjectId = fullyQualifiedId(subject);\n const thread = create(ThreadType, { name, anchor: cursor, messages: [], status: 'staged' });\n const stagingArea = state.staging[subjectId];\n if (stagingArea) {\n stagingArea.push(thread);\n } else {\n state.staging[subjectId] = [thread];\n }\n\n return {\n data: thread,\n intents: [\n [\n {\n action: NavigationAction.OPEN,\n data: {\n activeParts: {\n complementary: `${subjectId}${SLUG_PATH_SEPARATOR}comments${SLUG_COLLECTION_INDICATOR}`,\n },\n },\n },\n {\n action: ThreadAction.SELECT,\n data: { current: fullyQualifiedId(thread), focus: true },\n },\n {\n action: LayoutAction.SET_LAYOUT,\n data: {\n element: 'complementary',\n subject: subjectId,\n state: true,\n },\n },\n ],\n ],\n };\n } else {\n // NOTE: This is the standalone thread creation case.\n return { data: create(ChannelType, { threads: [create(ThreadType, { messages: [] })] }) };\n }\n }\n\n case ThreadAction.SELECT: {\n state.focus = intent.data?.current === state.current ? state.focus : intent.data?.focus;\n state.current = intent.data?.current;\n return { data: true };\n }\n\n case ThreadAction.TOGGLE_RESOLVED: {\n const { thread } = intent.data ?? {};\n if (!(thread instanceof ThreadType)) {\n return;\n }\n\n if (thread.status === 'active' || thread.status === undefined) {\n thread.status = 'resolved';\n } else if (thread.status === 'resolved') {\n thread.status = 'active';\n }\n\n const space = getSpace(thread);\n const spaceId = space?.id;\n\n return {\n intents: [\n [\n {\n action: ObservabilityAction.SEND_EVENT,\n data: { name: 'threads.toggle-resolved', properties: { threadId: thread.id, spaceId } },\n },\n ],\n ],\n };\n }\n\n case ThreadAction.DELETE: {\n const { subject, thread } = intent.data ?? {};\n if (\n !(thread instanceof ThreadType) ||\n !(subject && typeof subject === 'object' && 'threads' in subject)\n ) {\n return;\n }\n\n const subjectId = fullyQualifiedId(subject);\n const stagingArea = state.staging[subjectId];\n if (stagingArea) {\n // Check if we're deleting a thread that's in the staging area.\n // If so, remove it from the staging area without ceremony.\n const index = stagingArea.findIndex((t) => t.id === thread.id);\n if (index !== -1) {\n stagingArea.splice(index, 1);\n return { data: true };\n }\n }\n\n const space = getSpace(thread);\n if (!space || !subject.threads) {\n return;\n }\n\n if (!intent.undo) {\n const index = subject.threads.findIndex((t: any) => t?.id === thread.id);\n const cursor = subject.threads[index]?.anchor;\n if (index !== -1) {\n subject.threads?.splice(index, 1);\n }\n\n space.db.remove(thread);\n\n return {\n undoable: {\n message: translations[0]['en-US'][THREAD_PLUGIN]['thread deleted label'],\n data: { cursor },\n },\n intents: [\n [\n {\n action: ObservabilityAction.SEND_EVENT,\n data: { name: 'threads.delete', properties: { threadId: thread.id, spaceId: space.id } },\n },\n ],\n ],\n };\n } else if (intent.undo) {\n // TODO(wittjosiah): SDK should do this automatically.\n const savedThread = space.db.add(thread);\n subject.threads.push(savedThread);\n\n return {\n data: true,\n intents: [\n [\n {\n action: ObservabilityAction.SEND_EVENT,\n data: { name: 'threads.undo-delete', properties: { threadId: thread.id, spaceId: space.id } },\n },\n ],\n ],\n };\n }\n break;\n }\n\n case ThreadAction.ON_MESSAGE_ADD: {\n const { thread, subject } = intent.data ?? {};\n if (\n !(thread instanceof ThreadType) ||\n !(subject && typeof subject === 'object' && 'threads' in subject && Array.isArray(subject.threads))\n ) {\n return;\n }\n\n const subjectId = fullyQualifiedId(subject);\n const space = getSpace(subject);\n const intents = [];\n const analyticsProperties = { threadId: thread.id, spaceId: space?.id };\n\n if (state.staging[subjectId]?.find((t) => t === thread)) {\n // Move thread from staging to document.\n thread.status = 'active';\n subject.threads ? subject.threads.push(thread) : (subject.threads = [thread]);\n state.staging[subjectId] = state.staging[subjectId]?.filter((t) => t.id !== thread.id);\n\n intents.push({\n action: ObservabilityAction.SEND_EVENT,\n data: { name: 'threads.thread-created', properties: analyticsProperties },\n });\n }\n\n intents.push({\n action: ObservabilityAction.SEND_EVENT,\n data: {\n name: 'threads.message-added',\n properties: { ...analyticsProperties, threadLength: thread.messages.length },\n },\n });\n\n return {\n data: thread,\n intents: [intents],\n };\n }\n\n case ThreadAction.DELETE_MESSAGE: {\n const { subject, thread, messageId } = intent.data ?? {};\n const space = getSpace(subject);\n\n if (\n !(thread instanceof ThreadType) ||\n !(subject && typeof subject === 'object' && 'threads' in subject)\n ) {\n return;\n }\n\n if (!intent.undo) {\n const message = thread.messages.find((m) => m?.id === messageId);\n const messageIndex = thread.messages.findIndex((m) => m?.id === messageId);\n if (messageIndex === -1 || !message) {\n return undefined;\n }\n\n if (messageIndex === 0 && thread.messages.length === 1) {\n // If the message is the only message in the thread, delete the thread.\n return {\n intents: [[{ action: ThreadAction.DELETE, data: { subject, thread } }]],\n };\n } else {\n thread.messages.splice(messageIndex, 1);\n }\n\n return {\n undoable: {\n message: translations[0]['en-US'][THREAD_PLUGIN]['message deleted label'],\n data: { message, messageIndex },\n },\n intents: [\n [\n {\n action: ObservabilityAction.SEND_EVENT,\n data: {\n name: 'threads.message.delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n },\n },\n ],\n ],\n };\n } else if (intent.undo) {\n const message = intent.data?.message;\n const messageIndex = intent.data?.messageIndex;\n\n if (!(message instanceof MessageType) || !(typeof messageIndex === 'number')) {\n return;\n }\n\n thread.messages.splice(messageIndex, 0, message);\n\n return {\n data: true,\n intents: [\n [\n {\n action: ObservabilityAction.SEND_EVENT,\n data: {\n name: 'threads.message.undo-delete',\n properties: { threadId: thread.id, spaceId: space?.id },\n },\n },\n ],\n ],\n };\n }\n }\n }\n },\n },\n markdown: {\n // TODO(burdon): Factor out extension factory into separate file (for simplicity).\n extensions: ({ document: doc }) => {\n const space = doc && getSpace(doc);\n if (!doc || !space) {\n // Include no-op comments extension here to ensure that the facets are always present when they are expected.\n // TODO(wittjosiah): The Editor should only look for these facets when comments are available.\n return [comments()];\n }\n\n // TODO(Zan): When we have the deepsignal specific equivalent of this we should use that instead.\n const threads = computed(() =>\n [...doc.threads.filter(nonNullable), ...(state.staging[fullyQualifiedId(doc)] ?? [])].filter(\n (thread) => !(thread?.status === 'resolved'),\n ),\n );\n\n return [\n listener({\n onChange: () => {\n doc.threads.forEach((thread) => {\n if (thread?.anchor) {\n const [start, end] = thread.anchor.split(':');\n const name = doc.content && getTextInRange(createDocAccessor(doc.content, ['content']), start, end);\n // TODO(burdon): This seems unsafe; review.\n // Only update if the name has changed, otherwise this will cause an infinite loop.\n // Skip if the name is empty - this means comment text was deleted, but thread name should remain.\n if (name && name !== thread.name) {\n thread.name = name;\n }\n }\n });\n },\n }),\n createExternalCommentSync(\n doc.id,\n (sink) => effect(() => sink()),\n () =>\n threads.value\n .filter((thread) => thread?.anchor)\n .map((thread) => ({ id: fullyQualifiedId(thread), cursor: thread.anchor! })),\n ),\n comments({\n id: doc.id,\n onCreate: ({ cursor }) => {\n const [start, end] = cursor.split(':');\n const name = doc.content && getTextInRange(createDocAccessor(doc.content, ['content']), start, end);\n\n void intentPlugin?.provides.intent.dispatch({\n action: ThreadAction.CREATE,\n data: {\n cursor,\n name,\n subject: doc,\n },\n });\n },\n onDelete: ({ id }) => {\n // If the thread is in the staging area, remove it.\n const stagingArea = state.staging[fullyQualifiedId(doc)];\n if (stagingArea) {\n const index = stagingArea.findIndex((thread) => fullyQualifiedId(thread) === id);\n if (index !== -1) {\n stagingArea.splice(index, 1);\n }\n }\n\n const thread = doc.threads.find((thread) => thread?.id === id);\n if (thread) {\n thread.anchor = undefined;\n }\n },\n onUpdate: ({ id, cursor }) => {\n const thread =\n state.staging[fullyQualifiedId(doc)]?.find((thread) => fullyQualifiedId(thread) === id) ??\n doc.threads.find((thread) => thread?.id === id);\n\n if (thread instanceof ThreadType && thread.anchor) {\n const [start, end] = thread.anchor.split(':');\n thread.name = doc.content && getTextInRange(createDocAccessor(doc.content, ['content']), start, end);\n thread.anchor = cursor;\n }\n },\n onSelect: ({ selection: { current, closest } }) => {\n const dispatch = intentPlugin?.provides.intent.dispatch;\n if (dispatch) {\n void dispatch([{ action: ThreadAction.SELECT, data: { current: current ?? closest } }]);\n }\n },\n }),\n ];\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\n// Lazily load components for content surfaces.\nexport const ThreadMain = React.lazy(() => import('./ThreadMain'));\nexport const ThreadArticle = React.lazy(() => import('./ThreadArticle'));\n\n// TODO(wittjosiah): Suspense boundary for sidebar?\nexport * from './ThreadSettings';\nexport * from './CommentContainer';\nexport * from './MessageContainer';\nexport * from './CommentsContainer';\nexport * from './ChatContainer';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { SettingsValue } from '@dxos/plugin-settings';\nimport { Input, useTranslation } from '@dxos/react-ui';\n\nimport { THREAD_PLUGIN } from '../meta';\nimport type { ThreadSettingsProps } from '../types';\n\nexport const ThreadSettings = ({ settings }: { settings: ThreadSettingsProps }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n\n return (\n <>\n <SettingsValue label={t('settings standalone label')}>\n <Input.Switch checked={settings.standalone} onCheckedChange={(checked) => (settings.standalone = !!checked)} />\n </SettingsValue>\n </>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { CheckCircle, X } from '@phosphor-icons/react';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { create } from '@dxos/echo-schema';\nimport { MessageType } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId, getSpace, useMembers } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Button, Tag, Tooltip, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport { createBasicExtensions, createThemeExtensions, listener } from '@dxos/react-ui-editor';\nimport {\n getSize,\n hoverableControlItem,\n hoverableControls,\n hoverableFocusedWithinControls,\n mx,\n} from '@dxos/react-ui-theme';\nimport { MessageTextbox, type MessageTextboxProps, Thread, ThreadFooter, ThreadHeading } from '@dxos/react-ui-thread';\nimport { nonNullable } from '@dxos/util';\n\nimport { MessageContainer } from './MessageContainer';\nimport { command } from './command-extension';\nimport { type ThreadContainerProps } from './types';\nimport { useStatus } from '../hooks';\nimport { THREAD_PLUGIN } from '../meta';\nimport { getMessageMetadata } from '../util';\n\nconst sizeClass = getSize(4);\n\nconst ToggleResolvedButton = ({\n isResolved,\n onResolve,\n}: {\n isResolved: boolean | undefined;\n onResolve: () => void;\n}) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t(isResolved ? 'mark as unresolved label' : 'mark as resolved label');\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.toggle-resolved'\n onClick={onResolve}\n classNames={['min-bs-0 p-1', !isResolved && hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n {isResolved ? <CheckCircle className={sizeClass} weight='fill' /> : <CheckCircle className={sizeClass} />}\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames={'z-[21]'}>\n {label}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nconst DeleteThreadButton = ({ onDelete }: { onDelete: () => void }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const label = t('delete thread label');\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <Button\n variant='ghost'\n data-testid='thread.delete'\n onClick={onDelete}\n classNames={['min-bs-0 p-1', hoverableControlItem]}\n >\n <span className='sr-only'>{label}</span>\n <X className={sizeClass} />\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-[21]'>\n {label}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\nexport const CommentContainer = ({\n thread,\n detached,\n context,\n current,\n autoFocusTextbox,\n onAttend,\n onThreadDelete,\n onMessageDelete,\n onResolve,\n onComment,\n}: ThreadContainerProps) => {\n const identity = useIdentity()!;\n const space = getSpace(thread);\n const members = useMembers(space?.key);\n const activity = useStatus(space, fullyQualifiedId(thread));\n const { t } = useTranslation(THREAD_PLUGIN);\n const threadScrollRef = useRef<HTMLDivElement | null>(null);\n const [autoFocus, setAutoFocus] = useState(!!autoFocusTextbox);\n const { themeMode } = useThemeContext();\n\n const textboxMetadata = getMessageMetadata(fullyQualifiedId(thread), identity);\n // TODO(wittjosiah): This is a hack to reset the editor after a message is sent.\n const [_count, _setCount] = useState(0);\n const rerenderEditor = () => _setCount((count) => count + 1);\n const messageRef = useRef('');\n const extensions = useMemo(\n () => [\n createBasicExtensions({ placeholder: t('message placeholder') }),\n createThemeExtensions({ themeMode }),\n listener({ onChange: (text) => (messageRef.current = text) }),\n command,\n ],\n [_count],\n );\n\n // TODO(thure): Because of the way the `autoFocus` property is handled by TextEditor,\n // this is the least-bad way of moving focus at the right time, though it is an anti-pattern.\n // Refactor to behave more like <input/>’s `autoFocus` or `autofocus` (yes, they’re different).\n useEffect(() => {\n setAutoFocus(!!autoFocusTextbox);\n }, [autoFocusTextbox]);\n\n // TODO(thure): Factor out.\n const scrollToEnd = (behavior: ScrollBehavior) =>\n setTimeout(() => threadScrollRef.current?.scrollIntoView({ behavior, block: 'end' }), 10);\n\n const handleCreate: MessageTextboxProps['onSend'] = useCallback(() => {\n if (!messageRef.current) {\n return false;\n }\n\n thread.messages.push(\n create(MessageType, {\n sender: { identityKey: identity.identityKey.toHex() },\n timestamp: new Date().toISOString(),\n text: messageRef.current,\n context,\n }),\n );\n onComment?.(thread);\n\n messageRef.current = '';\n setAutoFocus(true);\n scrollToEnd('instant');\n rerenderEditor();\n\n // TODO(burdon): Scroll to bottom.\n return true;\n }, [thread, identity]);\n\n return (\n <Thread onClickCapture={onAttend} onFocusCapture={onAttend} current={current} id={fullyQualifiedId(thread)}>\n <div\n role='none'\n className={mx(\n 'col-span-2 grid grid-cols-[var(--rail-size)_1fr_min-content]',\n hoverableControls,\n hoverableFocusedWithinControls,\n )}\n >\n {detached ? (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n <ThreadHeading detached>{thread.name ?? t('thread title placeholder')}</ThreadHeading>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content classNames='z-[21]' side='top'>\n {t('detached thread label')}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n ) : (\n <ThreadHeading>{thread.name ?? t('thread title placeholder')}</ThreadHeading>\n )}\n <div className='flex flex-row items-center pli-1'>\n {thread.status === 'staged' && <Tag palette='neutral'>{t('draft button')}</Tag>}\n {onResolve && !(thread?.status === 'staged') && (\n <ToggleResolvedButton isResolved={thread?.status === 'resolved'} onResolve={onResolve} />\n )}\n {onThreadDelete && <DeleteThreadButton onDelete={onThreadDelete} />}\n </div>\n </div>\n {thread.messages.filter(nonNullable).map((message) => (\n <MessageContainer\n key={message.id}\n message={message}\n members={members}\n onDelete={(id: string) => onMessageDelete?.(id)}\n />\n ))}\n <MessageTextbox extensions={extensions} autoFocus={autoFocus} onSend={handleCreate} {...textboxMetadata} />\n <ThreadFooter activity={activity}>{t('activity message')}</ThreadFooter>\n {/* NOTE(thure): This can’t also be the `overflow-anchor` because `ScrollArea` injects an interceding node that contains this necessary ref’d element. */}\n <div role='none' className='bs-px -mbs-px' ref={threadScrollRef} />\n </Thread>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ChatText, Quotes } from '@phosphor-icons/react';\nimport React, { useEffect } from 'react';\n\nimport { type ThreadType } from '@dxos/plugin-space/types';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { useTranslation, Trans } from '@dxos/react-ui';\nimport { PlankHeading, plankHeadingIconProps } from '@dxos/react-ui-deck';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { CommentContainer } from './CommentContainer';\nimport { type ThreadContainerProps } from './types';\nimport { THREAD_PLUGIN } from '../meta';\n\nexport type ThreadsContainerProps = Omit<\n ThreadContainerProps,\n 'thread' | 'detached' | 'onAttend' | 'onThreadDelete' | 'onMessageDelete' | 'current' | 'autoFocus'\n> & {\n threads: ThreadType[];\n /**\n * Threads that are no longer anchored to a position in the object.\n */\n detached?: string[];\n currentId?: string;\n autoFocusCurrentTextbox?: boolean;\n showResolvedThreads?: boolean;\n onThreadAttend?: (thread: ThreadType) => void;\n onThreadDelete?: (thread: ThreadType) => void;\n onMessageDelete?: (thread: ThreadType, messageId: string) => void;\n onThreadToggleResolved?: (thread: ThreadType) => void;\n onComment?: (thread: ThreadType) => void;\n};\n\nexport const CommentsHeading = ({ attendableId }: { attendableId?: string }) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n\n return (\n <div role='none' className='flex items-center'>\n <PlankHeading.Button attendableId={attendableId}>\n <Quotes {...plankHeadingIconProps} />\n </PlankHeading.Button>\n <PlankHeading.Label attendableId={attendableId}>{t('comments heading')}</PlankHeading.Label>\n </div>\n );\n};\n\n/**\n * Comment threads.\n */\nexport const CommentsContainer = ({\n threads,\n detached = [],\n currentId,\n autoFocusCurrentTextbox,\n showResolvedThreads,\n onThreadAttend,\n onThreadDelete,\n onMessageDelete,\n onThreadToggleResolved,\n ...props\n}: ThreadsContainerProps) => {\n const { t } = useTranslation(THREAD_PLUGIN);\n const filteredThreads = showResolvedThreads ? threads : threads.filter((thread) => !(thread?.status === 'resolved'));\n\n useEffect(() => {\n if (currentId) {\n document.getElementById(currentId)?.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n }, [currentId]);\n\n return (\n <>\n {filteredThreads.length > 0 ? (\n filteredThreads.map((thread) => {\n const threadId = fullyQualifiedId(thread);\n return (\n <CommentContainer\n key={threadId}\n thread={thread}\n current={currentId === threadId}\n detached={detached.includes(threadId)}\n autoFocusTextbox={autoFocusCurrentTextbox && currentId === threadId}\n {...(onThreadAttend && { onAttend: () => onThreadAttend(thread) })}\n {...(onThreadDelete && { onThreadDelete: () => onThreadDelete(thread) })}\n {...(onMessageDelete && { onMessageDelete: (messageId: string) => onMessageDelete(thread, messageId) })}\n {...(onThreadToggleResolved && { onResolve: () => onThreadToggleResolved(thread) })}\n {...props}\n />\n );\n })\n ) : (\n <div\n role='alert'\n className={mx(\n descriptionText,\n 'place-self-center border border-dashed border-neutral-400/50 rounded-lg text-center p-4 m-4',\n )}\n >\n <h2 className='mbe-2 font-medium text-baseText'>{t('no comments title')}</h2>\n <p>\n <Trans\n {...{\n t,\n i18nKey: 'no comments message',\n components: {\n commentIcon: <ChatText className='inline-block' />,\n },\n }}\n />\n </p>\n </div>\n )}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useMemo } from 'react';\n\nimport { LayoutAction, type Plugin, useIntentDispatcher, useResolvePlugins } from '@dxos/app-framework';\nimport { type ThreadType } from '@dxos/plugin-space';\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { ScrollArea } from '@dxos/react-ui';\nimport { createAttendableAttributes, useAttentionContext } from '@dxos/react-ui-attention';\nimport { nonNullable } from '@dxos/util';\n\nimport { CommentsContainer, CommentsHeading } from '../components';\nimport { THREAD_PLUGIN } from '../meta';\nimport { ThreadAction, type ThreadProvides } from '../types';\n\nconst providesThreadsConfig = (plugin: any): Plugin<ThreadProvides<any>> | undefined =>\n 'thread' in plugin.provides ? (plugin as Plugin<ThreadProvides<any>>) : undefined;\n\nexport const ThreadComplementary = ({\n role,\n subject,\n stagedThreads,\n current,\n focus,\n showResolvedThreads,\n}: {\n role: string;\n subject: any;\n stagedThreads: ThreadType[] | undefined;\n current?: string;\n focus?: boolean;\n showResolvedThreads?: boolean;\n}) => {\n const dispatch = useIntentDispatcher();\n\n const threadsIntegrators = useResolvePlugins(providesThreadsConfig);\n const threadProvides = useMemo(() => threadsIntegrators.map((p) => p.provides.thread), [threadsIntegrators]);\n const createSort = useMemo(\n () => threadProvides.find((p) => p.predicate(subject))?.createSort,\n [threadProvides, subject],\n );\n const sort = useMemo(() => createSort?.(subject), [createSort, subject]);\n\n const threads = useMemo(() => {\n return subject.threads.concat(stagedThreads ?? []).filter(nonNullable) as ThreadType[];\n }, [JSON.stringify(subject.threads), JSON.stringify(stagedThreads)]);\n\n const detachedIds = useMemo(() => {\n return threads.filter(({ anchor }) => !anchor).map((thread) => fullyQualifiedId(thread));\n }, [threads]);\n\n useEffect(() => {\n if (!sort) {\n return;\n }\n threads.sort((a, b) => sort(a?.anchor, b?.anchor));\n }, [sort, threads]);\n\n // TODO(Zan): Maybe we should have a hook for this?\n const { attended } = useAttentionContext('Thread Complementary');\n const qualifiedSubjectId = fullyQualifiedId(subject);\n\n const attendableAttrs = createAttendableAttributes(qualifiedSubjectId);\n\n return (\n <div role='none' className='contents group/attention' {...attendableAttrs}>\n {role === 'complementary' && <CommentsHeading attendableId={qualifiedSubjectId} />}\n <ScrollArea.Root classNames='row-span-2'>\n <ScrollArea.Viewport>\n <CommentsContainer\n threads={threads}\n detached={detachedIds}\n currentId={attended.has(qualifiedSubjectId) ? current : undefined}\n autoFocusCurrentTextbox={focus}\n showResolvedThreads={showResolvedThreads}\n onThreadAttend={(thread) => {\n const threadId = fullyQualifiedId(thread);\n if (current !== threadId) {\n current = threadId;\n\n void dispatch?.([\n {\n action: LayoutAction.SCROLL_INTO_VIEW,\n data: {\n id: fullyQualifiedId(subject),\n thread: threadId,\n cursor: thread.anchor,\n },\n },\n ]);\n }\n }}\n onThreadDelete={(thread) => {\n return dispatch({ plugin: THREAD_PLUGIN, action: ThreadAction.DELETE, data: { subject, thread } });\n }}\n onMessageDelete={(thread, messageId) =>\n dispatch({\n plugin: THREAD_PLUGIN,\n action: ThreadAction.DELETE_MESSAGE,\n data: { subject, thread, messageId },\n })\n }\n onThreadToggleResolved={(thread) =>\n dispatch({ plugin: THREAD_PLUGIN, action: ThreadAction.TOGGLE_RESOLVED, data: { thread } })\n }\n onComment={(thread) => {\n void dispatch({ action: ThreadAction.ON_MESSAGE_ADD, data: { thread, subject } });\n }}\n />\n <div role='none' className='bs-10' />\n <ScrollArea.Scrollbar>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { THREAD_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [THREAD_PLUGIN]: {\n 'plugin name': 'Threads',\n 'channel name placeholder': 'New channel',\n 'channel title label': 'Title',\n 'delete channel label': 'Delete channel',\n 'create channel label': 'Create channel',\n 'message placeholder': 'Reply…',\n 'settings standalone label': 'Enable channel creation (experimental)',\n 'activity message': 'Processing…',\n 'anonymous label': 'Anonymous',\n 'delete message block label': 'Delete message block',\n 'detached thread label': 'Referenced content was removed',\n 'delete thread label': 'Delete thread',\n 'thread deleted label': 'You deleted a thread.',\n 'message deleted label': 'You deleted a message.',\n 'comments heading': 'Comments',\n 'chat heading': 'Chat',\n 'draft button': 'DRAFT',\n 'no comments title': 'No comments (yet)',\n 'no comments message':\n 'To start a comment thread, select a range of text in a document and click the <commentIcon></commentIcon> Create comment button in the toolbar.',\n 'toggle show resolved': 'Show resolved',\n 'unnamed object threads label': 'Threads',\n 'mark as resolved label': 'Mark as resolved',\n 'mark as unresolved label': 'Mark as unresolved',\n 'save message label': 'Save',\n 'edit message label': 'Edit',\n 'delete message label': 'Delete message',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ThreadPlugin } from './ThreadPlugin';\n\nexport default ThreadPlugin;\n\nexport * from './hooks';\nexport * from './types';\n\nexport * from './ThreadPlugin';\n"],
5
+ "mappings": "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",
6
+ "names": ["Chat", "computed", "effect", "React", "LayoutAction", "NavigationAction", "parseIntentPlugin", "parseNavigationPlugin", "resolvePlugin", "parseGraphPlugin", "SLUG_PATH_SEPARATOR", "SLUG_COLLECTION_INDICATOR", "isLayoutParts", "parseMetadataResolverPlugin", "getTypename", "create", "LocalStorageStore", "log", "parseAttentionPlugin", "parseClientPlugin", "createExtension", "isActionGroup", "ObservabilityAction", "SpaceAction", "ThreadType", "MessageType", "ChannelType", "getSpace", "getTextInRange", "Filter", "createDocAccessor", "fullyQualifiedId", "loadObjectReferences", "comments", "createExternalCommentSync", "listener", "translations", "threadTranslations", "nonNullable", "React", "React", "SettingsValue", "Input", "useTranslation", "ThreadSettings", "settings", "t", "useTranslation", "THREAD_PLUGIN", "SettingsValue", "label", "Input", "Switch", "checked", "standalone", "onCheckedChange", "CheckCircle", "X", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "create", "MessageType", "fullyQualifiedId", "getSpace", "useMembers", "useIdentity", "Button", "Tag", "Tooltip", "useThemeContext", "useTranslation", "createBasicExtensions", "createThemeExtensions", "listener", "getSize", "hoverableControlItem", "hoverableControls", "hoverableFocusedWithinControls", "mx", "MessageTextbox", "Thread", "ThreadFooter", "ThreadHeading", "nonNullable", "sizeClass", "getSize", "ToggleResolvedButton", "isResolved", "onResolve", "t", "useTranslation", "THREAD_PLUGIN", "label", "React", "Tooltip", "Root", "Trigger", "asChild", "Button", "variant", "data-testid", "onClick", "classNames", "hoverableControlItem", "span", "className", "CheckCircle", "weight", "Portal", "Content", "Arrow", "DeleteThreadButton", "onDelete", "X", "CommentContainer", "thread", "detached", "context", "current", "autoFocusTextbox", "onAttend", "onThreadDelete", "onMessageDelete", "onComment", "identity", "useIdentity", "space", "getSpace", "members", "useMembers", "key", "activity", "useStatus", "fullyQualifiedId", "threadScrollRef", "useRef", "autoFocus", "setAutoFocus", "useState", "themeMode", "useThemeContext", "textboxMetadata", "getMessageMetadata", "_count", "_setCount", "rerenderEditor", "count", "messageRef", "extensions", "useMemo", "createBasicExtensions", "placeholder", "createThemeExtensions", "listener", "onChange", "text", "command", "useEffect", "scrollToEnd", "behavior", "setTimeout", "scrollIntoView", "block", "handleCreate", "useCallback", "messages", "push", "create", "MessageType", "sender", "identityKey", "toHex", "timestamp", "Date", "toISOString", "Thread", "onClickCapture", "onFocusCapture", "id", "div", "role", "mx", "hoverableControls", "hoverableFocusedWithinControls", "ThreadHeading", "name", "side", "status", "Tag", "palette", "filter", "nonNullable", "map", "message", "MessageContainer", "MessageTextbox", "onSend", "ThreadFooter", "ref", "ChatText", "Quotes", "React", "useEffect", "fullyQualifiedId", "useTranslation", "Trans", "PlankHeading", "plankHeadingIconProps", "descriptionText", "mx", "CommentsHeading", "attendableId", "t", "useTranslation", "THREAD_PLUGIN", "React", "div", "role", "className", "PlankHeading", "Button", "Quotes", "plankHeadingIconProps", "Label", "CommentsContainer", "threads", "detached", "currentId", "autoFocusCurrentTextbox", "showResolvedThreads", "onThreadAttend", "onThreadDelete", "onMessageDelete", "onThreadToggleResolved", "props", "filteredThreads", "filter", "thread", "status", "useEffect", "document", "getElementById", "scrollIntoView", "behavior", "block", "length", "map", "threadId", "fullyQualifiedId", "CommentContainer", "key", "current", "includes", "autoFocusTextbox", "onAttend", "messageId", "onResolve", "mx", "descriptionText", "h2", "p", "Trans", "i18nKey", "components", "commentIcon", "ChatText", "ThreadMain", "React", "lazy", "ThreadArticle", "React", "useEffect", "useMemo", "LayoutAction", "useIntentDispatcher", "useResolvePlugins", "fullyQualifiedId", "ScrollArea", "createAttendableAttributes", "useAttentionContext", "nonNullable", "providesThreadsConfig", "plugin", "provides", "undefined", "ThreadComplementary", "role", "subject", "stagedThreads", "current", "focus", "showResolvedThreads", "dispatch", "useIntentDispatcher", "threadsIntegrators", "useResolvePlugins", "threadProvides", "useMemo", "map", "p", "thread", "createSort", "find", "predicate", "sort", "threads", "concat", "filter", "nonNullable", "JSON", "stringify", "detachedIds", "anchor", "fullyQualifiedId", "useEffect", "a", "b", "attended", "useAttentionContext", "qualifiedSubjectId", "attendableAttrs", "createAttendableAttributes", "React", "div", "className", "CommentsHeading", "attendableId", "ScrollArea", "Root", "classNames", "Viewport", "CommentsContainer", "detached", "currentId", "has", "autoFocusCurrentTextbox", "onThreadAttend", "threadId", "action", "LayoutAction", "SCROLL_INTO_VIEW", "data", "id", "cursor", "onThreadDelete", "THREAD_PLUGIN", "ThreadAction", "DELETE", "onMessageDelete", "messageId", "DELETE_MESSAGE", "onThreadToggleResolved", "TOGGLE_RESOLVED", "onComment", "ON_MESSAGE_ADD", "Scrollbar", "Thumb", "THREAD_PLUGIN", "initialViewState", "showResolvedThreads", "ThreadPlugin", "settings", "LocalStorageStore", "THREAD_PLUGIN", "state", "create", "staging", "viewStore", "getViewState", "subjectId", "attentionPlugin", "navigationPlugin", "intentPlugin", "unsubscribeCallbacks", "meta", "ready", "plugins", "prop", "key", "type", "bool", "allowUndefined", "resolvePlugin", "parseAttentionPlugin", "parseNavigationPlugin", "parseIntentPlugin", "graphPlugin", "parseGraphPlugin", "client", "parseClientPlugin", "provides", "channelsQuery", "spaces", "query", "Filter", "schema", "ChannelType", "queryUnsubscribe", "subscribe", "unsubscribe", "effect", "attention", "attended", "firstAttendedNodeWithComments", "Array", "from", "map", "id", "graph", "findNode", "find", "node", "data", "isArray", "threads", "length", "intent", "dispatch", "action", "NavigationAction", "OPEN", "activeParts", "complementary", "SLUG_PATH_SEPARATOR", "push", "unload", "forEach", "values", "metadata", "records", "typename", "placeholder", "ns", "icon", "props", "React", "Chat", "iconSymbol", "loadReferences", "channel", "loadObjectReferences", "ThreadType", "thread", "messages", "MessageType", "message", "THREAD_ITEM", "parse", "item", "label", "title", "object", "translations", "threadTranslations", "echo", "builder", "metadataResolver", "parseMetadataResolverPlugin", "resolver", "createExtension", "endsWith", "docId", "split", "at", "spaceId", "objectId", "space", "get", "doc", "db", "getObjectById", "docMeta", "getTypename", "name", "viewState", "properties", "iconComponent", "actions", "dataId", "toggle", "newToggleState", "ObservabilityAction", "SEND_EVENT", "threadId", "showResolved", "menuItemType", "isChecked", "testId", "ThreadAction", "CREATE", "filter", "standalone", "isActionGroup", "startsWith", "SpaceAction", "ADD_OBJECT", "target", "plugin", "surface", "component", "role", "active", "ThreadMain", "ThreadSettings", "location", "isLayoutParts", "main", "layoutEntries", "currentPosition", "findIndex", "entry", "objectToTheLeft", "context", "getSpace", "ThreadArticle", "subject", "ChatHeading", "attendableId", "ChatContainer", "fullyQualifiedId", "ThreadComplementary", "stagedThreads", "current", "focus", "cursor", "undefined", "e", "log", "error", "anchor", "status", "stagingArea", "intents", "SLUG_COLLECTION_INDICATOR", "SELECT", "LayoutAction", "SET_LAYOUT", "element", "TOGGLE_RESOLVED", "DELETE", "index", "t", "splice", "undo", "remove", "undoable", "savedThread", "add", "ON_MESSAGE_ADD", "analyticsProperties", "threadLength", "DELETE_MESSAGE", "messageId", "m", "messageIndex", "markdown", "extensions", "document", "comments", "computed", "nonNullable", "listener", "onChange", "start", "end", "content", "getTextInRange", "createDocAccessor", "createExternalCommentSync", "sink", "value", "onCreate", "onDelete", "onUpdate", "onSelect", "selection", "closest", "ThreadPlugin"]
7
+ }
@@ -0,0 +1 @@
1
+ {"inputs":{"packages/plugins/plugin-thread/src/meta.tsx":{"bytes":2229,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-thread/src/components/ThreadSettings.tsx":{"bytes":2595,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-settings","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-thread/src/components/command-extension.ts":{"bytes":3679,"imports":[{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-thread/src/hooks/useStatus.ts":{"bytes":3661,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-thread/src/hooks/analytics.ts":{"bytes":4347,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/meta","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-thread/src/hooks/index.ts":{"bytes":602,"imports":[{"path":"packages/plugins/plugin-thread/src/hooks/useStatus.ts","kind":"import-statement","original":"./useStatus"},{"path":"packages/plugins/plugin-thread/src/hooks/analytics.ts","kind":"import-statement","original":"./analytics"}],"format":"esm"},"packages/plugins/plugin-thread/src/util.ts":{"bytes":3056,"imports":[{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/plugin-thread/src/components/MessageContainer.tsx":{"bytes":24094,"imports":[{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-thread","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/command-extension.ts","kind":"import-statement","original":"./command-extension"},{"path":"packages/plugins/plugin-thread/src/hooks/index.ts","kind":"import-statement","original":"../hooks"},{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-thread/src/util.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-thread/src/components/CommentContainer.tsx":{"bytes":25567,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-thread","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/MessageContainer.tsx","kind":"import-statement","original":"./MessageContainer"},{"path":"packages/plugins/plugin-thread/src/components/command-extension.ts","kind":"import-statement","original":"./command-extension"},{"path":"packages/plugins/plugin-thread/src/hooks/index.ts","kind":"import-statement","original":"../hooks"},{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-thread/src/util.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-thread/src/components/CommentsContainer.tsx":{"bytes":12160,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-deck","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/CommentContainer.tsx","kind":"import-statement","original":"./CommentContainer"},{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-thread/src/components/ChatContainer.tsx":{"bytes":18818,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-deck","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-thread","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/MessageContainer.tsx","kind":"import-statement","original":"./MessageContainer"},{"path":"packages/plugins/plugin-thread/src/components/command-extension.ts","kind":"import-statement","original":"./command-extension"},{"path":"packages/plugins/plugin-thread/src/hooks/index.ts","kind":"import-statement","original":"../hooks"},{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-thread/src/util.ts","kind":"import-statement","original":"../util"}],"format":"esm"},"packages/plugins/plugin-thread/src/components/ThreadMain.tsx":{"bytes":2735,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/ChatContainer.tsx","kind":"import-statement","original":"./ChatContainer"}],"format":"esm"},"packages/plugins/plugin-thread/src/components/ThreadArticle.tsx":{"bytes":1740,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/ChatContainer.tsx","kind":"import-statement","original":"./ChatContainer"}],"format":"esm"},"packages/plugins/plugin-thread/src/components/index.ts":{"bytes":1898,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/ThreadSettings.tsx","kind":"import-statement","original":"./ThreadSettings"},{"path":"packages/plugins/plugin-thread/src/components/CommentContainer.tsx","kind":"import-statement","original":"./CommentContainer"},{"path":"packages/plugins/plugin-thread/src/components/MessageContainer.tsx","kind":"import-statement","original":"./MessageContainer"},{"path":"packages/plugins/plugin-thread/src/components/CommentsContainer.tsx","kind":"import-statement","original":"./CommentsContainer"},{"path":"packages/plugins/plugin-thread/src/components/ChatContainer.tsx","kind":"import-statement","original":"./ChatContainer"},{"path":"packages/plugins/plugin-thread/src/components/ThreadMain.tsx","kind":"dynamic-import","original":"./ThreadMain"},{"path":"packages/plugins/plugin-thread/src/components/ThreadArticle.tsx","kind":"dynamic-import","original":"./ThreadArticle"}],"format":"esm"},"packages/plugins/plugin-thread/src/types.ts":{"bytes":3584,"imports":[{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-thread/src/components/ThreadComplementary.tsx":{"bytes":15731,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/plugin-thread/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/plugins/plugin-thread/src/translations.ts":{"bytes":4946,"imports":[{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-thread/src/ThreadPlugin.tsx":{"bytes":109440,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/meta","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-thread","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/plugin-thread/src/components/ThreadComplementary.tsx","kind":"import-statement","original":"./components/ThreadComplementary"},{"path":"packages/plugins/plugin-thread/src/meta.tsx","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-thread/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/plugin-thread/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/plugin-thread/src/index.ts":{"bytes":948,"imports":[{"path":"packages/plugins/plugin-thread/src/ThreadPlugin.tsx","kind":"import-statement","original":"./ThreadPlugin"},{"path":"packages/plugins/plugin-thread/src/hooks/index.ts","kind":"import-statement","original":"./hooks"},{"path":"packages/plugins/plugin-thread/src/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/plugins/plugin-thread/src/ThreadPlugin.tsx","kind":"import-statement","original":"./ThreadPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-thread/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":80211},"packages/plugins/plugin-thread/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-U5UVX4ZP.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-AVC4CGJM.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs","kind":"import-statement"},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/plugin-attention","kind":"import-statement","external":true},{"path":"@dxos/plugin-client","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/meta","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-thread","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-settings","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-thread","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-deck","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/ThreadMain-DU6LBSN3.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/ThreadArticle-6L6BGE4Z.mjs","kind":"dynamic-import"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-attention","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["ThreadAction","ThreadPlugin","default","useAnalyticsCallback","useOnEditAnalytics","useStatus"],"entryPoint":"packages/plugins/plugin-thread/src/index.ts","inputs":{"packages/plugins/plugin-thread/src/ThreadPlugin.tsx":{"bytesInOutput":28535},"packages/plugins/plugin-thread/src/components/index.ts":{"bytesInOutput":180},"packages/plugins/plugin-thread/src/components/ThreadSettings.tsx":{"bytesInOutput":556},"packages/plugins/plugin-thread/src/components/CommentContainer.tsx":{"bytesInOutput":6666},"packages/plugins/plugin-thread/src/components/CommentsContainer.tsx":{"bytesInOutput":2913},"packages/plugins/plugin-thread/src/components/ThreadComplementary.tsx":{"bytesInOutput":3863},"packages/plugins/plugin-thread/src/translations.ts":{"bytesInOutput":1495},"packages/plugins/plugin-thread/src/index.ts":{"bytesInOutput":32}},"bytes":45347},"packages/plugins/plugin-thread/dist/lib/node-esm/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-thread/dist/lib/node-esm/meta.mjs":{"imports":[{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs","kind":"import-statement"}],"exports":["THREAD_ITEM","THREAD_PLUGIN","default"],"entryPoint":"packages/plugins/plugin-thread/src/meta.tsx","inputs":{},"bytes":191},"packages/plugins/plugin-thread/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/plugin-thread/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-U5UVX4ZP.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs","kind":"import-statement"}],"exports":["ThreadAction"],"entryPoint":"packages/plugins/plugin-thread/src/types.ts","inputs":{},"bytes":148},"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-U5UVX4ZP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1940},"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-U5UVX4ZP.mjs":{"imports":[{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs","kind":"import-statement"}],"exports":["ThreadAction"],"inputs":{"packages/plugins/plugin-thread/src/types.ts":{"bytesInOutput":694}},"bytes":870},"packages/plugins/plugin-thread/dist/lib/node-esm/ThreadMain-DU6LBSN3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1392},"packages/plugins/plugin-thread/dist/lib/node-esm/ThreadMain-DU6LBSN3.mjs":{"imports":[{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-AVC4CGJM.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-thread/src/components/ThreadMain.tsx","inputs":{"packages/plugins/plugin-thread/src/components/ThreadMain.tsx":{"bytesInOutput":536}},"bytes":781},"packages/plugins/plugin-thread/dist/lib/node-esm/ThreadArticle-6L6BGE4Z.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":852},"packages/plugins/plugin-thread/dist/lib/node-esm/ThreadArticle-6L6BGE4Z.mjs":{"imports":[{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-AVC4CGJM.mjs","kind":"import-statement"},{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-thread/src/components/ThreadArticle.tsx","inputs":{"packages/plugins/plugin-thread/src/components/ThreadArticle.tsx":{"bytesInOutput":271}},"bytes":525},"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-AVC4CGJM.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":30358},"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-AVC4CGJM.mjs":{"imports":[{"path":"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/meta","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-space/types","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-deck","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-thread","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@codemirror/view","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/halo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/react-ui-thread","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@codemirror/language","kind":"import-statement","external":true},{"path":"@dxos/react-ui-editor","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@dxos/display-name","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["ChatContainer","ChatHeading","MessageContainer","command","getMessageMetadata","useAnalyticsCallback","useOnEditAnalytics","useStatus"],"inputs":{"packages/plugins/plugin-thread/src/hooks/useStatus.ts":{"bytesInOutput":748},"packages/plugins/plugin-thread/src/hooks/analytics.ts":{"bytesInOutput":975},"packages/plugins/plugin-thread/src/hooks/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-thread/src/components/ChatContainer.tsx":{"bytesInOutput":4658},"packages/plugins/plugin-thread/src/components/MessageContainer.tsx":{"bytesInOutput":6321},"packages/plugins/plugin-thread/src/components/command-extension.ts":{"bytesInOutput":715},"packages/plugins/plugin-thread/src/util.ts":{"bytesInOutput":563}},"bytes":14763},"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1078},"packages/plugins/plugin-thread/dist/lib/node-esm/chunk-5IBJO53M.mjs":{"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["THREAD_ITEM","THREAD_PLUGIN","meta_default"],"inputs":{"packages/plugins/plugin-thread/src/meta.tsx":{"bytesInOutput":509}},"bytes":660}}}
@@ -0,0 +1,11 @@
1
+ import {
2
+ THREAD_ITEM,
3
+ THREAD_PLUGIN,
4
+ meta_default
5
+ } from "./chunk-5IBJO53M.mjs";
6
+ export {
7
+ THREAD_ITEM,
8
+ THREAD_PLUGIN,
9
+ meta_default as default
10
+ };
11
+ //# sourceMappingURL=meta.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ import {
2
+ ThreadAction
3
+ } from "./chunk-U5UVX4ZP.mjs";
4
+ import "./chunk-5IBJO53M.mjs";
5
+ export {
6
+ ThreadAction
7
+ };
8
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadPlugin.d.ts","sourceRoot":"","sources":["../../../src/ThreadPlugin.tsx"],"names":[],"mappings":"AAQA,OAAO,EAML,KAAK,gBAAgB,EAWtB,MAAM,qBAAqB,CAAC;AAqC7B,OAAO,EAAqC,KAAK,oBAAoB,EAA4B,MAAM,SAAS,CAAC;AAkBjH,eAAO,MAAM,YAAY,QAAO,gBAAgB,CAAC,oBAAoB,CAssBpE,CAAC"}
1
+ {"version":3,"file":"ThreadPlugin.d.ts","sourceRoot":"","sources":["../../../src/ThreadPlugin.tsx"],"names":[],"mappings":"AAQA,OAAO,EAML,KAAK,gBAAgB,EAStB,MAAM,qBAAqB,CAAC;AA4B7B,OAAO,EAAgB,KAAK,oBAAoB,EAA4B,MAAM,SAAS,CAAC;AAgB5F,eAAO,MAAM,YAAY,QAAO,gBAAgB,CAAC,oBAAoB,CAkpBpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommentContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAoBjF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAiEpD,eAAO,MAAM,gBAAgB,+HAW1B,oBAAoB,sBAwGtB,CAAC"}
1
+ {"version":3,"file":"CommentContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAoBjF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAiEpD,eAAO,MAAM,gBAAgB,+HAW1B,oBAAoB,sBA2GtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommentsContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAM3D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpD,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,oBAAoB,EACpB,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,SAAS,GAAG,WAAW,CACpG,GAAG;IACF,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,eAAe,qBAAsB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,sBAW1E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,sKAW3B,qBAAqB,sBAmDvB,CAAC"}
1
+ {"version":3,"file":"CommentsContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/CommentsContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAO3D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpD,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,oBAAoB,EACpB,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,SAAS,GAAG,WAAW,CACpG,GAAG;IACF,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACtD,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,eAAe,qBAAsB;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,sBAW1E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,sKAW3B,qBAAqB,sBAsDvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAIpF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA8B3D,eAAO,MAAM,gBAAgB,oCAI1B;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,sBAgEA,CAAC"}
1
+ {"version":3,"file":"MessageContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageContainer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAIpF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA8B3D,eAAO,MAAM,gBAAgB,oCAI1B;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,sBAgEA,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { type ThreadType } from '@dxos/plugin-space';
3
+ export declare const ThreadComplementary: ({ role, subject, stagedThreads, current, focus, showResolvedThreads, }: {
4
+ role: string;
5
+ subject: any;
6
+ stagedThreads: ThreadType[] | undefined;
7
+ current?: string;
8
+ focus?: boolean;
9
+ showResolvedThreads?: boolean;
10
+ }) => React.JSX.Element;
11
+ //# sourceMappingURL=ThreadComplementary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadComplementary.d.ts","sourceRoot":"","sources":["../../../../src/components/ThreadComplementary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAarD,eAAO,MAAM,mBAAmB,2EAO7B;IACD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,aAAa,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,sBAqFA,CAAC"}
@@ -13,7 +13,7 @@ export declare enum ThreadAction {
13
13
  export type ThreadProvides<T> = {
14
14
  thread: {
15
15
  predicate: (obj: any) => obj is T;
16
- createSort: (obj: T) => (anchorA: string, anchorB: string) => number;
16
+ createSort: (obj: T) => (anchorA: string | undefined, anchorB: string | undefined) => number;
17
17
  };
18
18
  };
19
19
  export type ThreadPluginProvides = SurfaceProvides & IntentResolverProvides & GraphBuilderProvides & MetadataRecordsProvides & SettingsProvides & TranslationsProvides & SchemaProvides & MarkdownExtensionProvides;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D,oBAAY,YAAY;IACtB,MAAM,yCAA4B;IAClC,MAAM,yCAA4B;IAClC,MAAM,yCAA4B;IAClC,cAAc,iDAAoC;IAClD,cAAc,iDAAoC;IAClD,eAAe,kDAAqC;CACrD;AAID,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;QAClC,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;KACtE,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAChD,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,gBAAgB,GAChB,oBAAoB,GACpB,cAAc,GACd,yBAAyB,CAAC;AAE5B,MAAM,MAAM,mBAAmB,GAAG;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D,oBAAY,YAAY;IACtB,MAAM,yCAA4B;IAClC,MAAM,yCAA4B;IAClC,MAAM,yCAA4B;IAClC,cAAc,iDAAoC;IAClD,cAAc,iDAAoC;IAClD,eAAe,kDAAqC;CACrD;AAID,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,MAAM,EAAE;QACN,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;QAClC,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;KAC9F,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAChD,sBAAsB,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,gBAAgB,GAChB,oBAAoB,GACpB,cAAc,GACd,yBAAyB,CAAC;AAE5B,MAAM,MAAM,mBAAmB,GAAG;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-thread",
3
- "version": "0.6.11",
3
+ "version": "0.6.12-main.5cc132e",
4
4
  "description": "DXOS Threads Surface plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -10,21 +10,24 @@
10
10
  ".": {
11
11
  "browser": "./dist/lib/browser/index.mjs",
12
12
  "node": {
13
- "default": "./dist/lib/node/index.cjs"
13
+ "require": "./dist/lib/node/index.cjs",
14
+ "default": "./dist/lib/node-esm/index.mjs"
14
15
  },
15
16
  "types": "./dist/types/src/index.d.ts"
16
17
  },
17
18
  "./meta": {
18
19
  "browser": "./dist/lib/browser/meta.mjs",
19
20
  "node": {
20
- "default": "./dist/lib/node/meta.cjs"
21
+ "require": "./dist/lib/node/meta.cjs",
22
+ "default": "./dist/lib/node-esm/meta.mjs"
21
23
  },
22
24
  "types": "./dist/types/src/meta.d.ts"
23
25
  },
24
26
  "./types": {
25
27
  "browser": "./dist/lib/browser/types.mjs",
26
28
  "node": {
27
- "default": "./dist/lib/node/types.cjs"
29
+ "require": "./dist/lib/node/types.cjs",
30
+ "default": "./dist/lib/node-esm/types.mjs"
28
31
  },
29
32
  "types": "./dist/types/src/types.d.ts"
30
33
  }
@@ -51,28 +54,28 @@
51
54
  "@preact/signals-core": "^1.6.0",
52
55
  "date-fns": "^3.3.1",
53
56
  "lodash.get": "^4.4.2",
54
- "@dxos/async": "0.6.11",
55
- "@dxos/display-name": "0.6.11",
56
- "@dxos/app-framework": "0.6.11",
57
- "@dxos/echo-schema": "0.6.11",
58
- "@dxos/invariant": "0.6.11",
59
- "@dxos/local-storage": "0.6.11",
60
- "@dxos/log": "0.6.11",
61
- "@dxos/plugin-graph": "0.6.11",
62
- "@dxos/plugin-markdown": "0.6.11",
63
- "@dxos/plugin-attention": "0.6.11",
64
- "@dxos/plugin-client": "0.6.11",
65
- "@dxos/plugin-observability": "0.6.11",
66
- "@dxos/plugin-settings": "0.6.11",
67
- "@dxos/plugin-space": "0.6.11",
68
- "@dxos/react-client": "0.6.11",
69
- "@dxos/react-ui-deck": "0.6.11",
70
- "@dxos/react-ui-attention": "0.6.11",
71
- "@dxos/react-ui-editor": "0.6.11",
72
- "@dxos/react-ui-mosaic": "0.6.11",
73
- "@dxos/react-ui-theme": "0.6.11",
74
- "@dxos/react-ui-thread": "0.6.11",
75
- "@dxos/util": "0.6.11"
57
+ "@dxos/app-framework": "0.6.12-main.5cc132e",
58
+ "@dxos/display-name": "0.6.12-main.5cc132e",
59
+ "@dxos/async": "0.6.12-main.5cc132e",
60
+ "@dxos/echo-schema": "0.6.12-main.5cc132e",
61
+ "@dxos/invariant": "0.6.12-main.5cc132e",
62
+ "@dxos/local-storage": "0.6.12-main.5cc132e",
63
+ "@dxos/log": "0.6.12-main.5cc132e",
64
+ "@dxos/plugin-attention": "0.6.12-main.5cc132e",
65
+ "@dxos/plugin-client": "0.6.12-main.5cc132e",
66
+ "@dxos/plugin-observability": "0.6.12-main.5cc132e",
67
+ "@dxos/plugin-graph": "0.6.12-main.5cc132e",
68
+ "@dxos/plugin-markdown": "0.6.12-main.5cc132e",
69
+ "@dxos/react-client": "0.6.12-main.5cc132e",
70
+ "@dxos/plugin-space": "0.6.12-main.5cc132e",
71
+ "@dxos/plugin-settings": "0.6.12-main.5cc132e",
72
+ "@dxos/react-ui-attention": "0.6.12-main.5cc132e",
73
+ "@dxos/react-ui-mosaic": "0.6.12-main.5cc132e",
74
+ "@dxos/react-ui-theme": "0.6.12-main.5cc132e",
75
+ "@dxos/react-ui-deck": "0.6.12-main.5cc132e",
76
+ "@dxos/react-ui-thread": "0.6.12-main.5cc132e",
77
+ "@dxos/util": "0.6.12-main.5cc132e",
78
+ "@dxos/react-ui-editor": "0.6.12-main.5cc132e"
76
79
  },
77
80
  "devDependencies": {
78
81
  "@phosphor-icons/react": "^2.1.5",
@@ -81,17 +84,17 @@
81
84
  "@types/react-dom": "~18.2.0",
82
85
  "react": "~18.2.0",
83
86
  "react-dom": "~18.2.0",
84
- "vite": "^5.3.4",
85
- "@dxos/random": "0.6.11",
86
- "@dxos/react-ui": "0.6.11",
87
- "@dxos/storybook-utils": "0.6.11"
87
+ "vite": "5.4.7",
88
+ "@dxos/random": "0.6.12-main.5cc132e",
89
+ "@dxos/react-ui": "0.6.12-main.5cc132e",
90
+ "@dxos/storybook-utils": "0.6.12-main.5cc132e"
88
91
  },
89
92
  "optionalDependencies": {
90
93
  "@phosphor-icons/react": "^2.1.5",
91
94
  "react": "^18.0.0",
92
95
  "react-dom": "^18.0.0",
93
- "@dxos/react-ui-theme": "0.6.11",
94
- "@dxos/react-ui": "0.6.11"
96
+ "@dxos/react-ui": "0.6.12-main.5cc132e",
97
+ "@dxos/react-ui-theme": "0.6.12-main.5cc132e"
95
98
  },
96
99
  "publishConfig": {
97
100
  "access": "public"