@aleph-alpha/chat-kit 6.6.0 → 6.7.0

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 (65) hide show
  1. package/dist/{CkHistory.vue_vue_type_script_setup_true_lang-BnUMeeto.js → CkHistory.vue_vue_type_script_setup_true_lang-DF5yUf7K.js} +605 -145
  2. package/dist/chat-kit.css +1 -1
  3. package/dist/components/base/CkCodeEditor/CkCodeEditor.vue.d.ts +4 -4
  4. package/dist/components/base/CkMilkdownEditor/CkMilkdownEditor.vue.d.ts +1 -1
  5. package/dist/components/base/CkToolApproval/ApprovalCard.vue.d.ts +21 -0
  6. package/dist/components/base/CkToolApproval/ApprovalCard.vue.d.ts.map +1 -0
  7. package/dist/components/base/CkToolApproval/ArgumentsJson.vue.d.ts +10 -0
  8. package/dist/components/base/CkToolApproval/ArgumentsJson.vue.d.ts.map +1 -0
  9. package/dist/components/base/CkToolApproval/BodyBoundary.vue.d.ts +15 -0
  10. package/dist/components/base/CkToolApproval/BodyBoundary.vue.d.ts.map +1 -0
  11. package/dist/components/base/CkToolApproval/CardHeading.vue.d.ts +22 -0
  12. package/dist/components/base/CkToolApproval/CardHeading.vue.d.ts.map +1 -0
  13. package/dist/components/base/CkToolApproval/CkToolApproval.stories.d.ts +80 -0
  14. package/dist/components/base/CkToolApproval/CkToolApproval.stories.d.ts.map +1 -0
  15. package/dist/components/base/CkToolApproval/CkToolApproval.vue.d.ts +18 -0
  16. package/dist/components/base/CkToolApproval/CkToolApproval.vue.d.ts.map +1 -0
  17. package/dist/components/base/CkToolApproval/ResultRow.vue.d.ts +20 -0
  18. package/dist/components/base/CkToolApproval/ResultRow.vue.d.ts.map +1 -0
  19. package/dist/components/base/CkToolApproval/badge.d.ts +3 -0
  20. package/dist/components/base/CkToolApproval/badge.d.ts.map +1 -0
  21. package/dist/components/base/CkToolApproval/index.d.ts +3 -0
  22. package/dist/components/base/CkToolApproval/index.d.ts.map +1 -0
  23. package/dist/components/base/CkToolApproval/outcomes.d.ts +28 -0
  24. package/dist/components/base/CkToolApproval/outcomes.d.ts.map +1 -0
  25. package/dist/components/base/CkToolApproval/serializeArguments.d.ts +13 -0
  26. package/dist/components/base/CkToolApproval/serializeArguments.d.ts.map +1 -0
  27. package/dist/components/base/CkToolApproval/toolTitle.d.ts +7 -0
  28. package/dist/components/base/CkToolApproval/toolTitle.d.ts.map +1 -0
  29. package/dist/components/base/CkToolApproval/types.d.ts +102 -0
  30. package/dist/components/base/CkToolApproval/types.d.ts.map +1 -0
  31. package/dist/components/base/index.d.ts +2 -0
  32. package/dist/components/base/index.d.ts.map +1 -1
  33. package/dist/components/index.d.ts +2 -2
  34. package/dist/components/index.d.ts.map +1 -1
  35. package/dist/components/index.js +4 -3
  36. package/dist/{createCrepeEditor-BGSlwmKn.js → createCrepeEditor-DSfByw4o.js} +1 -1
  37. package/dist/handlers/index.js +1 -1
  38. package/dist/handlers/useChatKitLabels.d.ts +39 -0
  39. package/dist/handlers/useChatKitLabels.d.ts.map +1 -1
  40. package/dist/index.d.ts +2 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +6 -5
  43. package/dist/{useChatKitLabels-DxW0N5U-.js → useChatKitLabels-ky3JI9gf.js} +13 -0
  44. package/package.json +2 -2
  45. package/src/components/base/CkToolApproval/ApprovalCard.vue +30 -0
  46. package/src/components/base/CkToolApproval/ArgumentsJson.vue +48 -0
  47. package/src/components/base/CkToolApproval/BodyBoundary.vue +26 -0
  48. package/src/components/base/CkToolApproval/CardHeading.vue +47 -0
  49. package/src/components/base/CkToolApproval/CkToolApproval.spec.ts +680 -0
  50. package/src/components/base/CkToolApproval/CkToolApproval.stories.ts +661 -0
  51. package/src/components/base/CkToolApproval/CkToolApproval.vue +240 -0
  52. package/src/components/base/CkToolApproval/ResultRow.vue +52 -0
  53. package/src/components/base/CkToolApproval/badge.ts +2 -0
  54. package/src/components/base/CkToolApproval/exports.spec.ts +22 -0
  55. package/src/components/base/CkToolApproval/index.ts +2 -0
  56. package/src/components/base/CkToolApproval/outcomes.ts +95 -0
  57. package/src/components/base/CkToolApproval/serializeArguments.ts +18 -0
  58. package/src/components/base/CkToolApproval/toolTitle.spec.ts +23 -0
  59. package/src/components/base/CkToolApproval/toolTitle.ts +19 -0
  60. package/src/components/base/CkToolApproval/types.ts +118 -0
  61. package/src/components/base/index.ts +11 -0
  62. package/src/components/index.ts +9 -0
  63. package/src/handlers/useChatKitLabels.ts +39 -0
  64. package/src/index.ts +9 -0
  65. package/src/test-empty.css +1 -0
package/dist/index.d.ts CHANGED
@@ -6,8 +6,8 @@ export { useChat, useConversationSessions, useConversations, } from './composabl
6
6
  export type { ChatActions, ChatState, ConversationSession, CreateConversationInput, MessageHandler, MutationOptions, UseChatReturn, UseConversationSessionsReturn, UseConversationsOptions, UseConversationsReturn, } from './composables';
7
7
  export { SdkError, createDocumentUploadProvider, defaultDocumentUploadConfig, defaultEndpoints, useDocumentUploadWithDefaultConfig, } from './composables/fileUpload';
8
8
  export type { DocumentUploadConfig, DocumentUploadProvider, FileEntry, FileStatus, } from './composables/fileUpload';
9
- export { CkAgentMessage, CkAgentMessageHeader, CkHeaderActivityButton, CkCitation, CkCitationLabel, CkCitationCard, CkConversation, CkConversationLayout, CkCopyMessageButton, CkDropZoneOverlay, CkFeedbackButton, CkFeedbackDialog, CkFileItemsList, CkHistory, CkHistoryItem, CkHistoryWrapper, CkMarkdownRenderer, CkMessageButton, CkModelSelector, CkPromptSendButton, CkPromptMenuButton, CkPromptStopButton, CkPromptInput, CkPromptInputDisclaimer, CkRegenerateMessageButton, CkSendIcon, CkStopIcon, CkUserMessage, CkEditableUserMessage, CkMilkdownEditor, CkCodeEditor, preloadCkCodeEditor, } from './components';
10
- export type { CkAgentMessageHeaderProps, CkHeaderActivityButtonProps, CkHeaderActivityButtonEmits, CkCitationProps, CkCitationEmits, CkCitationSource, CkCitationLabelProps, CkCitationCardProps, CkCitationCardEmits, CkConversationLayoutProps, CkConversationProps, CkDropZoneOverlayProps, CkDropZoneOverlayEmits, CkDropZoneRejection, CkDropZoneRejectionReason, CkFeedbackButtonProps, CkFeedbackDialogEmits, CkFeedbackDialogProps, CkFeedbackDialogSubmitPayload, CkFeedbackReason, CkFeedbackSentiment, CkFeedbackValue, CkFileEntry, CkFileItemsListEmits, CkFileItemsListProps, CkHistoryEmits, CkHistoryItemEmits, CkHistoryItemProps, CkHistoryProps, CkHistoryWrapperProps, CkMarkdownElementClasses, CkMarkdownRendererProps, CkMarkdownRendererEmits, CkModelOption, CkModelSelectorProps, CkModelSelectorEmits, CkPromptMenuButtonProps, CkUserMessageProps, CkEditableUserMessageProps, CkEditableUserMessageEmits, CkMilkdownEditorEmits, CkMilkdownEditorExposed, CkMilkdownEditorProps, CkCodeEditorEmits, CkCodeEditorExposed, CkCodeEditorFadeSurface, CkCodeEditorProps, } from './components';
9
+ export { CkAgentMessage, CkAgentMessageHeader, CkHeaderActivityButton, CkCitation, CkCitationLabel, CkCitationCard, CkConversation, CkConversationLayout, CkCopyMessageButton, CkDropZoneOverlay, CkFeedbackButton, CkFeedbackDialog, CkFileItemsList, CkHistory, CkHistoryItem, CkHistoryWrapper, CkMarkdownRenderer, CkMessageButton, CkModelSelector, CkPromptSendButton, CkPromptMenuButton, CkPromptStopButton, CkPromptInput, CkPromptInputDisclaimer, CkRegenerateMessageButton, CkSendIcon, CkStopIcon, CkToolApproval, CkUserMessage, CkEditableUserMessage, CkMilkdownEditor, CkCodeEditor, preloadCkCodeEditor, } from './components';
10
+ export type { CkAgentMessageHeaderProps, CkHeaderActivityButtonProps, CkHeaderActivityButtonEmits, CkCitationProps, CkCitationEmits, CkCitationSource, CkCitationLabelProps, CkCitationCardProps, CkCitationCardEmits, CkConversationLayoutProps, CkConversationProps, CkDropZoneOverlayProps, CkDropZoneOverlayEmits, CkDropZoneRejection, CkDropZoneRejectionReason, CkFeedbackButtonProps, CkFeedbackDialogEmits, CkFeedbackDialogProps, CkFeedbackDialogSubmitPayload, CkFeedbackReason, CkFeedbackSentiment, CkFeedbackValue, CkFileEntry, CkFileItemsListEmits, CkFileItemsListProps, CkHistoryEmits, CkHistoryItemEmits, CkHistoryItemProps, CkHistoryProps, CkHistoryWrapperProps, CkMarkdownElementClasses, CkMarkdownRendererProps, CkMarkdownRendererEmits, CkModelOption, CkModelSelectorProps, CkModelSelectorEmits, CkPromptMenuButtonProps, CkToolApprovalProps, CkToolApprovalEmits, CkToolApprovalSlots, CkToolApprovalRequest, CkToolApprovalStatus, CkToolApprovalBodyComponents, CkToolApprovalBodyProps, CkToolApprovalExposed, CkUserMessageProps, CkEditableUserMessageProps, CkEditableUserMessageEmits, CkMilkdownEditorEmits, CkMilkdownEditorExposed, CkMilkdownEditorProps, CkCodeEditorEmits, CkCodeEditorExposed, CkCodeEditorFadeSurface, CkCodeEditorProps, } from './components';
11
11
  export { formatRelativeTime, markdownToPlainText } from './helpers';
12
12
  export type { ActiveComparison, BaseMessage, ComparisonLane, Conversation, ConversationTree, MessageContent, MessageContentStatus, MessageMetadata, MessageReasoningContent, MessageRole, MessageStatus, MessageTextContent, MessageToolContent, TreeMessage, } from './types';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AASpB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EACL,OAAO,EACP,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,aAAa,EACb,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,QAAQ,EACR,4BAA4B,EAC5B,2BAA2B,EAC3B,gBAAgB,EAChB,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,SAAS,EACT,UAAU,GACX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGpE,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { u } from "./useMessageHandler-Bkzrdgfj.js";
2
- import { C, d, p, u as u2, b } from "./useChatKitLabels-DxW0N5U-.js";
2
+ import { C, d, p, u as u2, b } from "./useChatKitLabels-ky3JI9gf.js";
3
3
  import { S, c, d as d2, f, u as u3, a, b as b2, e } from "./index-D0DQjdsq.js";
4
- import { _, a as a2, b as b3, c as c2, C as C2, d as d3, e as e2, f as f2, g, h, i, j, k, l, m, n, o, p as p2, q, r, s, t, u as u4, v, w, x, y, z, A, B, D, F, E } from "./CkHistory.vue_vue_type_script_setup_true_lang-BnUMeeto.js";
4
+ import { _, a as a2, b as b3, c as c2, C as C2, d as d3, e as e2, f as f2, g, h, i, j, k, l, m, n, o, p as p2, q, r, s, t, u as u4, v, w, x, y, z, A, B, D, E, G, F } from "./CkHistory.vue_vue_type_script_setup_true_lang-DF5yUf7K.js";
5
5
  import { m as m2 } from "./markdownToPlainText-DN_G-I6g.js";
6
6
  export {
7
7
  C as CHAT_KIT_LABELS,
@@ -35,15 +35,16 @@ export {
35
35
  z as CkRegenerateMessageButton,
36
36
  A as CkSendIcon,
37
37
  B as CkStopIcon,
38
- D as CkUserMessage,
38
+ D as CkToolApproval,
39
+ E as CkUserMessage,
39
40
  S as SdkError,
40
41
  c as createDocumentUploadProvider,
41
42
  d as defaultChatKitLabels,
42
43
  d2 as defaultDocumentUploadConfig,
43
44
  f as defaultEndpoints,
44
- F as formatRelativeTime,
45
+ G as formatRelativeTime,
45
46
  m2 as markdownToPlainText,
46
- E as preloadCkCodeEditor,
47
+ F as preloadCkCodeEditor,
47
48
  p as provideChatKitLabels,
48
49
  u3 as useChat,
49
50
  u2 as useChatKitLabels,
@@ -19166,6 +19166,19 @@ const defaultChatKitLabels = {
19166
19166
  markdownTableLabel: "Table",
19167
19167
  citationOpenSource: "Open source",
19168
19168
  citationSourceLabel: "Source",
19169
+ toolApprovalAllow: "Allow",
19170
+ toolApprovalDeny: "Deny",
19171
+ toolApprovalAllowedResult: "Approved by you",
19172
+ toolApprovalDeniedResult: "Denied by you",
19173
+ toolApprovalFailedResult: "Failed",
19174
+ toolApprovalSkippedResult: "Skipped",
19175
+ toolApprovalNothingChanged: "Nothing was updated",
19176
+ toolApprovalArgumentsTruncated: "Arguments shortened for display",
19177
+ toolApprovalArgumentsUnreadable: "These arguments can't be shown",
19178
+ toolApprovalAllowedBadge: "Allowed",
19179
+ toolApprovalDeniedBadge: "Denied",
19180
+ toolApprovalFailedBadge: "Failed",
19181
+ toolApprovalSkippedBadge: "Skipped",
19169
19182
  historyItemUntitled: "Untitled conversation",
19170
19183
  historyItemActionAriaLabel: "Conversation options",
19171
19184
  historyItemEditAction: "Edit",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aleph-alpha/chat-kit",
3
- "version": "6.6.0",
3
+ "version": "6.7.0",
4
4
  "description": "Chat kit package for building chat interfaces with Vue",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -115,8 +115,8 @@
115
115
  "vue": "^3.5.27",
116
116
  "vue-tsc": "^3.2.4",
117
117
  "wait-on": "9.0.3",
118
- "@aleph-alpha/eslint-config-frontend": "0.7.1",
119
118
  "@aleph-alpha/prettier-config-frontend": "2.1.1",
119
+ "@aleph-alpha/eslint-config-frontend": "0.7.1",
120
120
  "@aleph-alpha/tsconfig-frontend": "0.7.3"
121
121
  },
122
122
  "scripts": {
@@ -0,0 +1,30 @@
1
+ <script setup lang="ts">
2
+ import { useTemplateRef } from 'vue';
3
+
4
+ defineProps<{
5
+ headingId: string;
6
+ descriptionId?: string;
7
+ }>();
8
+
9
+ const root = useTemplateRef<HTMLElement>('root');
10
+
11
+ defineExpose({
12
+ focus: (): void => root.value?.focus(),
13
+ containsFocus: (): boolean =>
14
+ root.value?.contains(document.activeElement) ?? false,
15
+ });
16
+ </script>
17
+
18
+ <template>
19
+ <!-- tabindex -1: focusable from code (after a decision), not in the tab order. -->
20
+ <div
21
+ ref="root"
22
+ role="group"
23
+ tabindex="-1"
24
+ :aria-labelledby="headingId"
25
+ :aria-describedby="descriptionId"
26
+ class="ck-tool-approval rounded-xl border border-border-surface-default bg-background-input-default"
27
+ >
28
+ <slot />
29
+ </div>
30
+ </template>
@@ -0,0 +1,48 @@
1
+ <script setup lang="ts">
2
+ import { computed } from 'vue';
3
+ import { UiCodeBlock } from '@aleph-alpha/ui-library';
4
+ import type { ChatKitLabels } from '../../../handlers/useChatKitLabels';
5
+ import type { SerializedArguments } from './serializeArguments';
6
+
7
+ // Keeps a huge payload, such as a whole file, from freezing the highlighter.
8
+ const MAX_ARGUMENTS_CHARS = 20_000;
9
+
10
+ const props = defineProps<{
11
+ serialized: SerializedArguments;
12
+ labels: Required<ChatKitLabels>;
13
+ }>();
14
+
15
+ const json = computed(() =>
16
+ props.serialized.readable ? props.serialized.json : '',
17
+ );
18
+ const truncated = computed(() => json.value.length > MAX_ARGUMENTS_CHARS);
19
+ const code = computed(() =>
20
+ truncated.value
21
+ ? `${json.value.slice(0, MAX_ARGUMENTS_CHARS)}\n…`
22
+ : json.value,
23
+ );
24
+ </script>
25
+
26
+ <template>
27
+ <p
28
+ v-if="!serialized.readable"
29
+ class="text-sm leading-5 text-content-on-surface-muted"
30
+ >
31
+ {{ labels.toolApprovalArgumentsUnreadable }}
32
+ </p>
33
+ <template v-else>
34
+ <UiCodeBlock
35
+ :code="code"
36
+ language="json"
37
+ max-height="14rem"
38
+ :copy-label="labels.codeEditorCopy"
39
+ :copied-label="labels.codeEditorCopied"
40
+ />
41
+ <p
42
+ v-if="truncated"
43
+ class="mt-2 text-xs leading-[14px] text-content-on-surface-muted"
44
+ >
45
+ {{ labels.toolApprovalArgumentsTruncated }}
46
+ </p>
47
+ </template>
48
+ </template>
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+ import { onErrorCaptured, ref } from 'vue';
3
+
4
+ defineSlots<{
5
+ default: () => unknown;
6
+ /** Shown instead once the default content throws. */
7
+ fallback: () => unknown;
8
+ }>();
9
+
10
+ const failed = ref(false);
11
+
12
+ onErrorCaptured((error) => {
13
+ // eslint-disable-next-line no-console
14
+ console.error(
15
+ '[CkToolApproval] Custom body failed, showing the arguments as JSON:',
16
+ error,
17
+ );
18
+ failed.value = true;
19
+ return false;
20
+ });
21
+ </script>
22
+
23
+ <template>
24
+ <slot v-if="failed" name="fallback" />
25
+ <slot v-else />
26
+ </template>
@@ -0,0 +1,47 @@
1
+ <script setup lang="ts">
2
+ import { UiBadge, UiIcon } from '@aleph-alpha/ui-library';
3
+ import { BADGE_ICON_SIZE } from './badge';
4
+
5
+ defineProps<{
6
+ id: string;
7
+ title: string;
8
+ connectorLabel?: string;
9
+ connectorIcon: string;
10
+ /** `card` for the open approval card, `row` for the collapsed result. */
11
+ size: 'card' | 'row';
12
+ }>();
13
+
14
+ defineSlots<{
15
+ /** Replaces the connector chip's icon. */
16
+ icon?: () => unknown;
17
+ }>();
18
+ </script>
19
+
20
+ <template>
21
+ <div :id="id" class="flex min-w-0 items-center gap-2">
22
+ <p
23
+ class="text-content-on-surface-primary"
24
+ :class="
25
+ size === 'card'
26
+ ? 'text-base font-bold leading-[18px]'
27
+ : 'truncate text-sm font-medium leading-5'
28
+ "
29
+ >
30
+ {{ title }}
31
+ </p>
32
+ <UiBadge
33
+ v-if="connectorLabel"
34
+ variant="outline"
35
+ size="small"
36
+ class="min-w-0 shrink"
37
+ >
38
+ <!-- The chip text already names the connector; a logo's alt would repeat it in the card name. -->
39
+ <span aria-hidden="true" class="inline-flex shrink-0">
40
+ <slot name="icon">
41
+ <UiIcon :name="connectorIcon" :size="BADGE_ICON_SIZE" />
42
+ </slot>
43
+ </span>
44
+ <span class="truncate">{{ connectorLabel }}</span>
45
+ </UiBadge>
46
+ </div>
47
+ </template>