|
|
|
@@ -649,7 +649,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.composer.bar\', () => ctx.slots.register(\n { name: \'conversation.composer.bar\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:280',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:282',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.composer.dock',
|
|
|
|
@@ -709,7 +709,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'none',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.composer.dock\', () => ctx.slots.register(\n { name: \'conversation.composer.dock\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:272',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:274',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.header',
|
|
|
|
@@ -851,6 +851,63 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.hero.brand.mark\', () => ctx.slots.register(\n { name: \'conversation.hero.brand.mark\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:264',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.hero.options',
|
|
|
|
|
kind: 'list',
|
|
|
|
|
scope: 'session',
|
|
|
|
|
summary: 'Compact options right-aligned in the New Session row after the workspace and preset controls; rendered only with a Session.',
|
|
|
|
|
doc: 'Compact options right-aligned in the New Session row after the workspace and preset controls; rendered only with a Session.',
|
|
|
|
|
registerOptions: [
|
|
|
|
|
{
|
|
|
|
|
name: 'id',
|
|
|
|
|
requirement: 'required',
|
|
|
|
|
type: 'string',
|
|
|
|
|
doc: 'Your cell key. Use an id of your own: a fresh id is added beside the shipped entries, while reusing a shipped id puts you in THAT cell and replaces it. Owners that filter by id address you by it.',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'order',
|
|
|
|
|
requirement: 'optional',
|
|
|
|
|
type: 'number',
|
|
|
|
|
doc: 'Position among the entries, ascending (default 0).',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'label',
|
|
|
|
|
requirement: 'optional',
|
|
|
|
|
type: 'string | (() => string)',
|
|
|
|
|
doc: 'Display text where the owner projects one (nav rows, tabs). A thunk is re-read on every projection, so localized text follows the active locale without re-registering.',
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
ownerProps: [],
|
|
|
|
|
ownerPropsReferences: [],
|
|
|
|
|
standardProps: [
|
|
|
|
|
'useRemoteAccess: (action: RemoteEndpoint) => boolean',
|
|
|
|
|
'useResource: UseResource',
|
|
|
|
|
'useWorkspaces: SnapshotSelectorHook<WorkspaceSnapshot>',
|
|
|
|
|
'usePanelInfo: UsePanelInfo',
|
|
|
|
|
'useSessions: UseSessions',
|
|
|
|
|
'useSessionStatus: UseSessionStatus',
|
|
|
|
|
'useSessionRetainInfo: UseSessionRetainInfo',
|
|
|
|
|
'useSessionAccess: (sessionId: SessionId, action: RemoteEndpoint) => boolean',
|
|
|
|
|
'useWorkspaceAccess: (workspaceId: WorkspaceId, action: RemoteEndpoint) => boolean',
|
|
|
|
|
'useChat: UseChat',
|
|
|
|
|
'useConversation: UseConversation',
|
|
|
|
|
'useInput: SnapshotSelectorHook<InputState>',
|
|
|
|
|
'inputActions: InputActions',
|
|
|
|
|
'useSession: SessionSnapshotSelector',
|
|
|
|
|
'sessionId: SessionId',
|
|
|
|
|
'useProjection: UseProjection',
|
|
|
|
|
'useAccess: (action: RemoteEndpoint) => boolean',
|
|
|
|
|
'useTrajectory: UseTrajectory',
|
|
|
|
|
],
|
|
|
|
|
keyDomain: '',
|
|
|
|
|
hookContext: '',
|
|
|
|
|
slotInject: '',
|
|
|
|
|
declaredBy: 'factory \'conversation.content\' (client-ui-conversation), so it exists while that definition is registered',
|
|
|
|
|
occupants: [],
|
|
|
|
|
replaceRisk: 'none',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.hero.options\', () => ctx.slots.register(\n { name: \'conversation.hero.options\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:268',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.hero.workspace',
|
|
|
|
|
kind: 'single',
|
|
|
|
@@ -962,7 +1019,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.activity\', () => ctx.slots.register(\n { name: \'conversation.input.activity\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:278',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:280',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.input.attachments',
|
|
|
|
@@ -1006,7 +1063,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.attachments\', () => ctx.slots.register(\n { name: \'conversation.input.attachments\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:282',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:284',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.input.dock',
|
|
|
|
@@ -1073,7 +1130,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'none',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.dock\', () => ctx.slots.register(\n { name: \'conversation.input.dock\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:268',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:270',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.input.left',
|
|
|
|
@@ -1130,7 +1187,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
occupants: [],
|
|
|
|
|
replaceRisk: 'none',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.left\', () => ctx.slots.register(\n { name: \'conversation.input.left\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:274',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:276',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.input.model',
|
|
|
|
@@ -1172,7 +1229,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.model\', () => ctx.slots.register(\n { name: \'conversation.input.model\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:296',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:298',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.input.overlay',
|
|
|
|
@@ -1233,7 +1290,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'none',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.overlay\', () => ctx.slots.register(\n { name: \'conversation.input.overlay\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:270',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:272',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.input.permission',
|
|
|
|
@@ -1275,7 +1332,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.permission\', () => ctx.slots.register(\n { name: \'conversation.input.permission\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:290',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:292',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.input.plan',
|
|
|
|
@@ -1317,7 +1374,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
],
|
|
|
|
|
replaceRisk: 'shadows-shipped-ui',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.plan\', () => ctx.slots.register(\n { name: \'conversation.input.plan\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:288',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:290',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.input.right',
|
|
|
|
@@ -1374,7 +1431,7 @@ export const CLIENT_SLOT_API: readonly ClientSlotEntry[] = [
|
|
|
|
|
occupants: [],
|
|
|
|
|
replaceRisk: 'none',
|
|
|
|
|
example: 'return {\n inject: [\'slots\'],\n apply(ctx) {\n ctx.slots.inject(\'conversation.input.right\', () => ctx.slots.register(\n { name: \'conversation.input.right\', id: \'my-entry\', order: 100, label: \'My entry\' },\n () => React.createElement(\'div\', null, \'hello\'),\n ))\n },\n}',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:276',
|
|
|
|
|
source: 'packages/client/ui-conversation/src/client/contract/slots.ts:278',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
key: 'conversation.plan-review.actions',
|
|
|
|
|