@aleph-alpha/chat-kit 2.2.0 → 3.0.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.
- package/dist/{CkInput.vue_vue_type_script_setup_true_lang-CjfKRuZs.js → CkInput.vue_vue_type_script_setup_true_lang-CwH5M5WD.js} +263 -142
- package/dist/chat-kit.css +33 -6
- package/dist/components/base/CkDropZoneOverlay/CkDropZoneOverlay.vue.d.ts.map +1 -1
- package/dist/components/base/CkFileItemsList/CkFileItemsList.stories.d.ts +7 -0
- package/dist/components/base/CkFileItemsList/CkFileItemsList.stories.d.ts.map +1 -1
- package/dist/components/base/CkFileItemsList/CkFileItemsList.vue.d.ts +1 -0
- package/dist/components/base/CkFileItemsList/CkFileItemsList.vue.d.ts.map +1 -1
- package/dist/components/base/CkFileItemsList/types.d.ts +9 -0
- package/dist/components/base/CkFileItemsList/types.d.ts.map +1 -1
- package/dist/components/base/CkModelSelector/types.d.ts +1 -1
- package/dist/components/base/CkPromptInput/CkPromptInput.stories.d.ts +48 -5
- package/dist/components/base/CkPromptInput/CkPromptInput.stories.d.ts.map +1 -1
- package/dist/components/base/CkPromptInput/CkPromptInput.vue.d.ts +7 -6
- package/dist/components/base/CkPromptInput/CkPromptInput.vue.d.ts.map +1 -1
- package/dist/components/base/CkPromptInput/types.d.ts +11 -12
- package/dist/components/base/CkPromptInput/types.d.ts.map +1 -1
- package/dist/components/base/CkPromptMenuButton/CkPromptMenuButton.stories.d.ts +18 -0
- package/dist/components/base/CkPromptMenuButton/CkPromptMenuButton.stories.d.ts.map +1 -0
- package/dist/components/base/CkPromptMenuButton/CkPromptMenuButton.vue.d.ts +18 -0
- package/dist/components/base/CkPromptMenuButton/CkPromptMenuButton.vue.d.ts.map +1 -0
- package/dist/components/base/CkPromptMenuButton/index.d.ts +3 -0
- package/dist/components/base/CkPromptMenuButton/index.d.ts.map +1 -0
- package/dist/components/base/CkPromptMenuButton/types.d.ts +30 -0
- package/dist/components/base/CkPromptMenuButton/types.d.ts.map +1 -0
- package/dist/components/base/{CkPromptActionButton/CkPromptActionButton.stories.d.ts → CkPromptSendButton/CkPromptSendButton.stories.d.ts} +5 -5
- package/dist/components/base/CkPromptSendButton/CkPromptSendButton.stories.d.ts.map +1 -0
- package/dist/components/base/{CkPromptActionButton/CkPromptActionButton.vue.d.ts → CkPromptSendButton/CkPromptSendButton.vue.d.ts} +3 -3
- package/dist/components/base/CkPromptSendButton/CkPromptSendButton.vue.d.ts.map +1 -0
- package/dist/components/base/CkPromptSendButton/index.d.ts +3 -0
- package/dist/components/base/CkPromptSendButton/index.d.ts.map +1 -0
- package/dist/components/base/CkPromptSendButton/types.d.ts +34 -0
- package/dist/components/base/CkPromptSendButton/types.d.ts.map +1 -0
- package/dist/components/base/CkPromptStopButton/CkPromptStopButton.stories.d.ts +1 -1
- package/dist/components/base/CkPromptStopButton/CkPromptStopButton.vue.d.ts.map +1 -1
- package/dist/components/base/CkPromptStopButton/types.d.ts +6 -4
- package/dist/components/base/CkPromptStopButton/types.d.ts.map +1 -1
- package/dist/components/base/icons/CkSendIcon.vue.d.ts.map +1 -1
- package/dist/components/base/index.d.ts +3 -1
- package/dist/components/base/index.d.ts.map +1 -1
- package/dist/components/composed/CkHistory/CkHistory.vue.d.ts +1 -1
- package/dist/components/composed/CkInput/CkInput.stories.d.ts.map +1 -1
- package/dist/components/composed/CkInput/CkInput.vue.d.ts +9 -8
- package/dist/components/composed/CkInput/CkInput.vue.d.ts.map +1 -1
- package/dist/components/composed/CkInput/types.d.ts +2 -7
- package/dist/components/composed/CkInput/types.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +9 -8
- package/dist/composables/fileUpload/types.d.ts +1 -1
- package/dist/composables/fileUpload/types.d.ts.map +1 -1
- package/dist/composables/fileUpload/useFileUpload.d.ts.map +1 -1
- package/dist/composables/index.js +1 -1
- package/dist/{index-CfXEGjc7.js → index-THzZwfMU.js} +6 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -10
- package/package.json +1 -1
- package/src/components/base/CkDropZoneOverlay/CkDropZoneOverlay.vue +2 -7
- package/src/components/base/CkFileItemsList/CkFileItemsList.spec.ts +67 -0
- package/src/components/base/CkFileItemsList/CkFileItemsList.stories.ts +48 -0
- package/src/components/base/CkFileItemsList/CkFileItemsList.vue +78 -4
- package/src/components/base/CkFileItemsList/types.ts +9 -0
- package/src/components/base/CkModelSelector/types.ts +1 -1
- package/src/components/base/CkPromptInput/CkPromptInput.spec.ts +206 -11
- package/src/components/base/CkPromptInput/CkPromptInput.stories.ts +1068 -43
- package/src/components/base/CkPromptInput/CkPromptInput.vue +137 -28
- package/src/components/base/CkPromptInput/types.ts +11 -12
- package/src/components/base/CkPromptMenuButton/CkPromptMenuButton.spec.ts +62 -0
- package/src/components/base/CkPromptMenuButton/CkPromptMenuButton.stories.ts +75 -0
- package/src/components/base/CkPromptMenuButton/CkPromptMenuButton.vue +26 -0
- package/src/components/base/CkPromptMenuButton/index.ts +2 -0
- package/src/components/base/CkPromptMenuButton/types.ts +29 -0
- package/src/components/base/{CkPromptActionButton/CkPromptActionButton.spec.ts → CkPromptSendButton/CkPromptSendButton.spec.ts} +11 -11
- package/src/components/base/CkPromptSendButton/CkPromptSendButton.stories.ts +117 -0
- package/src/components/base/{CkPromptActionButton/CkPromptActionButton.vue → CkPromptSendButton/CkPromptSendButton.vue} +4 -4
- package/src/components/base/CkPromptSendButton/index.ts +2 -0
- package/src/components/base/CkPromptSendButton/types.ts +33 -0
- package/src/components/base/CkPromptStopButton/CkPromptStopButton.spec.ts +5 -5
- package/src/components/base/CkPromptStopButton/CkPromptStopButton.stories.ts +1 -1
- package/src/components/base/CkPromptStopButton/CkPromptStopButton.vue +3 -2
- package/src/components/base/CkPromptStopButton/types.ts +6 -4
- package/src/components/base/icons/CkSendIcon.vue +3 -16
- package/src/components/base/icons/CkStopIcon.vue +1 -1
- package/src/components/base/index.ts +3 -1
- package/src/components/composed/CkInput/CkInput.stories.ts +0 -4
- package/src/components/composed/CkInput/CkInput.vue +7 -5
- package/src/components/composed/CkInput/types.ts +2 -7
- package/src/components/index.ts +3 -1
- package/src/composables/fileUpload/types.ts +1 -1
- package/src/composables/fileUpload/useFileUpload.spec.ts +26 -0
- package/src/composables/fileUpload/useFileUpload.ts +12 -3
- package/src/composables/fileUpload/useFileUploadWrapper.ts +1 -1
- package/src/index.ts +3 -1
- package/dist/components/base/CkPromptActionButton/CkPromptActionButton.stories.d.ts.map +0 -1
- package/dist/components/base/CkPromptActionButton/CkPromptActionButton.vue.d.ts.map +0 -1
- package/dist/components/base/CkPromptActionButton/index.d.ts +0 -3
- package/dist/components/base/CkPromptActionButton/index.d.ts.map +0 -1
- package/dist/components/base/CkPromptActionButton/types.d.ts +0 -33
- package/dist/components/base/CkPromptActionButton/types.d.ts.map +0 -1
- package/src/components/base/CkPromptActionButton/CkPromptActionButton.stories.ts +0 -126
- package/src/components/base/CkPromptActionButton/index.ts +0 -2
- package/src/components/base/CkPromptActionButton/types.ts +0 -32
package/dist/chat-kit.css
CHANGED
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
.ck-drop-overlay-enter-active[data-v-
|
|
18
|
-
.ck-drop-overlay-leave-active[data-v-
|
|
17
|
+
.ck-drop-overlay-enter-active[data-v-54119668],
|
|
18
|
+
.ck-drop-overlay-leave-active[data-v-54119668] {
|
|
19
19
|
transition: opacity 150ms ease;
|
|
20
20
|
}
|
|
21
|
-
.ck-drop-overlay-enter-from[data-v-
|
|
22
|
-
.ck-drop-overlay-leave-to[data-v-
|
|
21
|
+
.ck-drop-overlay-enter-from[data-v-54119668],
|
|
22
|
+
.ck-drop-overlay-leave-to[data-v-54119668] {
|
|
23
23
|
opacity: 0;
|
|
24
24
|
}
|
|
25
25
|
@media (prefers-reduced-motion: reduce) {
|
|
26
|
-
.ck-drop-overlay-enter-active[data-v-
|
|
27
|
-
.ck-drop-overlay-leave-active[data-v-
|
|
26
|
+
.ck-drop-overlay-enter-active[data-v-54119668],
|
|
27
|
+
.ck-drop-overlay-leave-active[data-v-54119668] {
|
|
28
28
|
transition: none;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -77,6 +77,33 @@
|
|
|
77
77
|
margin-bottom: 0;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
/* Solea two-layer drop shadow — warm grey + subtle orange tint. Matches the
|
|
81
|
+
`shadow/md/{1,2}` tokens from the design system; the generic `shadow-md`
|
|
82
|
+
utility from preset-wind4 uses a cold black-based shadow instead. */
|
|
83
|
+
.ck-prompt-form[data-v-92b05731] {
|
|
84
|
+
box-shadow:
|
|
85
|
+
0 4px 6px -2px rgba(112, 95, 90, 0.1),
|
|
86
|
+
0 6px 14px -2px rgba(248, 94, 43, 0.05);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* Slim styled scrollbar for the multi-line textarea — matches Figma's 4 px
|
|
90
|
+
muted-default track. Firefox uses the native `scrollbar-*` properties;
|
|
91
|
+
Chromium/WebKit needs the `::-webkit-scrollbar` pseudo-elements. */
|
|
92
|
+
.ck-prompt-textarea[data-v-92b05731] {
|
|
93
|
+
scrollbar-width: thin;
|
|
94
|
+
scrollbar-color: rgba(166, 141, 133, 0.3) transparent;
|
|
95
|
+
}
|
|
96
|
+
.ck-prompt-textarea[data-v-92b05731]::-webkit-scrollbar {
|
|
97
|
+
width: 4px;
|
|
98
|
+
}
|
|
99
|
+
.ck-prompt-textarea[data-v-92b05731]::-webkit-scrollbar-track {
|
|
100
|
+
background: transparent;
|
|
101
|
+
}
|
|
102
|
+
.ck-prompt-textarea[data-v-92b05731]::-webkit-scrollbar-thumb {
|
|
103
|
+
background: rgba(166, 141, 133, 0.3);
|
|
104
|
+
border-radius: 9999px;
|
|
105
|
+
}
|
|
106
|
+
|
|
80
107
|
/* Floating pill per design — the inset white + soft drop shadow aren't
|
|
81
108
|
expressible with the design-system shadow utilities, so set them here. */
|
|
82
109
|
.ck-user-message__toggle[data-v-c759a863] {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkDropZoneOverlay.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkDropZoneOverlay/CkDropZoneOverlay.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CkDropZoneOverlay.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkDropZoneOverlay/CkDropZoneOverlay.vue"],"names":[],"mappings":"AAkRA,OAAO,KAAK,EAEV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AA4XjB,QAAA,IAAI,QAAQ,IAAY,CAAE;AAC1B,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAGhD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -13,6 +13,13 @@ export declare const Inline: Story;
|
|
|
13
13
|
* popover trigger. Click it to reveal the full vertical list of files.
|
|
14
14
|
*/
|
|
15
15
|
export declare const Collapsed: Story;
|
|
16
|
+
/**
|
|
17
|
+
* With `show-status`, the collapsed trigger becomes a two-line summary derived
|
|
18
|
+
* from each entry's `progress`/`error`: an aggregate progress bar while
|
|
19
|
+
* uploading, an "N uploads failed" line (error tone) once any entry fails, and
|
|
20
|
+
* otherwise an "N files" count. Open the popover to see the per-file rows.
|
|
21
|
+
*/
|
|
22
|
+
export declare const UploadStatus: Story;
|
|
16
23
|
/**
|
|
17
24
|
* Each row exposes a remove control when `isRemovable` is `true`. The component
|
|
18
25
|
* emits `remove` with the corresponding file `id`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkFileItemsList.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/CkFileItemsList.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAGpD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,eAAe,CAoBtC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,eAAe,CAAC,CAAC;AAqE9C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,KAWpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAWvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAiBvB,CAAC;AAsBF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAoBxB,CAAC;AAmBF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,KAwBvB,CAAC;AAiBF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAiCtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"CkFileItemsList.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/CkFileItemsList.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAGpD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,eAAe,CAoBtC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,eAAe,CAAC,CAAC;AAqE9C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,KAWpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAWvB,CAAC;AAqBF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,KAqB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAiBvB,CAAC;AAsBF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAoBxB,CAAC;AAmBF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,KAwBvB,CAAC;AAiBF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAiCtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkFileItemsList.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/CkFileItemsList.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CkFileItemsList.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/CkFileItemsList.vue"],"names":[],"mappings":"AAqPA,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EACV,WAAW,EAEX,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAyBjB,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,CAAC,KAAK,EAAE;QACZ,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,IAAI,EAAE,cAAc,CAAC;QACrB,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,OAAO,CAAC;CACf,CAAC;AA6cF,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -41,6 +41,15 @@ export interface CkFileItemsListProps {
|
|
|
41
41
|
removeLabel?: string;
|
|
42
42
|
/** Disable every row + the collapsed trigger. @default false */
|
|
43
43
|
disabled?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Render a two-line collapsed trigger that summarises upload state derived
|
|
46
|
+
* from each entry's `progress`/`error`: an aggregate progress bar while any
|
|
47
|
+
* entry is uploading, an "N uploads failed" line (error tone) once any entry
|
|
48
|
+
* fails, otherwise an "N files" count (shown only when an explicit
|
|
49
|
+
* `triggerLabel` is set). Off by default so static lists keep the original
|
|
50
|
+
* single-line trigger. @default false
|
|
51
|
+
*/
|
|
52
|
+
showStatus?: boolean;
|
|
44
53
|
/** Visible label on the collapsed trigger. Defaults to `"{n} files"`. */
|
|
45
54
|
triggerLabel?: string;
|
|
46
55
|
/** A11y label for the trigger. Falls back to `triggerLabel`, then count. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3E"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3E"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* @category Actions
|
|
10
10
|
* @useCases select model, choose LLM, model picker in prompt field, switch model mid-conversation
|
|
11
11
|
* @keywords model, selector, picker, dropdown, llm, prompt, choose, switch
|
|
12
|
-
* @related CkPromptInput,
|
|
12
|
+
* @related CkPromptInput, CkPromptSendButton
|
|
13
13
|
*/
|
|
14
14
|
export interface CkModelOption {
|
|
15
15
|
/**
|
|
@@ -9,16 +9,59 @@ type Story = StoryObj<typeof meta>;
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const Default: Story;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* Both toolbar slots filled with the real chat-kit primitives: the left slot
|
|
13
|
+
* hosts a `CkPromptMenuButton` wrapped in `UiDropdownMenu` (the canonical "+"
|
|
14
|
+
* trigger pattern with file/folder actions), the right slot a
|
|
15
|
+
* `CkPromptSendButton`. Mirrors Figma's "Drawer to add resources or tools".
|
|
14
16
|
*/
|
|
15
17
|
export declare const WithToolbarSlots: Story;
|
|
16
18
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
19
|
+
* `footer` slot filled with the canonical `CkPromptInputDisclaimer` —
|
|
20
|
+
* the AI-hallucination warning matching the Figma design system. For
|
|
21
|
+
* arbitrary custom footer content (helpers, counters, etc.) see the
|
|
22
|
+
* `WithFooterControls` story below.
|
|
20
23
|
*/
|
|
21
24
|
export declare const WithFooterSlot: Story;
|
|
25
|
+
/**
|
|
26
|
+
* Footer slot used for interactive helpers — keyboard hint on the left and a
|
|
27
|
+
* live character counter on the right. Demonstrates that the footer can hold
|
|
28
|
+
* structured content, not just disclaimer text.
|
|
29
|
+
*/
|
|
30
|
+
export declare const WithFooterControls: Story;
|
|
31
|
+
/**
|
|
32
|
+
* `toolbar-top` slot rendered with the canonical `CkFileItemsList` primitive.
|
|
33
|
+
* Two attached files visible as inline chips. Adding the top row also flips
|
|
34
|
+
* the form to the multi-row layout (corner radius drops from 3xl to 2xl).
|
|
35
|
+
*/
|
|
36
|
+
export declare const WithToolbarTopSlot: Story;
|
|
37
|
+
/**
|
|
38
|
+
* End-to-end composition matching the Figma "Prompt field" spec: file
|
|
39
|
+
* attachments via the `+` button and drag-and-drop, model selection next to
|
|
40
|
+
* the send button, and a hallucination disclaimer in the footer. File chips
|
|
41
|
+
* collapse to a popover once more than three are attached (`CkFileItemsList`
|
|
42
|
+
* default).
|
|
43
|
+
*/
|
|
44
|
+
export declare const WithUploadAndModelSelection: Story;
|
|
45
|
+
/**
|
|
46
|
+
* Pre-filled with multi-line text so the multi-row layout is visible at
|
|
47
|
+
* mount: textarea spans the full width on its own row, toolbar drops below,
|
|
48
|
+
* and the form's corner radius shrinks from `rounded-3xl` to `rounded-2xl`.
|
|
49
|
+
*/
|
|
50
|
+
export declare const WithMultiLineContent: Story;
|
|
51
|
+
/**
|
|
52
|
+
* Five attached files — past the default `maxInline=3` threshold of
|
|
53
|
+
* `CkFileItemsList`, so the list collapses to a single popover trigger
|
|
54
|
+
* labeled "5 files". Click it to inspect / remove the individual items.
|
|
55
|
+
* The toolbar-left `+` menu stays available so users can keep adding more.
|
|
56
|
+
*/
|
|
57
|
+
export declare const WithCollapsedFileChips: Story;
|
|
58
|
+
/**
|
|
59
|
+
* Streaming state mirroring the Figma "While Streaming" variant: the input
|
|
60
|
+
* is `disabled`, the file chips and model selector remain visible (for
|
|
61
|
+
* context), and `CkPromptStopButton` replaces `CkPromptSendButton` on the
|
|
62
|
+
* right. Click the stop button to abort the in-flight assistant reply.
|
|
63
|
+
*/
|
|
64
|
+
export declare const WithUploadAndModelSelectionStreaming: Story;
|
|
22
65
|
/**
|
|
23
66
|
* Disabled state — the textarea cannot be edited and Enter does not submit.
|
|
24
67
|
* Use while the server is processing the previous message.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkPromptInput.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptInput/CkPromptInput.stories.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"CkPromptInput.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptInput/CkPromptInput.stories.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAqBhD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG3D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CAyBpC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAsNnC;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KA0BrB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAqD9B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,KAoC5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,KA0ChC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAmDhC,CAAC;AAmJF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAkKzC,CAAC;AA2BF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,KA4BlC,CAAC;AAwEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAqFpC,CAAC;AA2EF;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,KAuFlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KA2BtB,CAAC"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import type { CkPromptInputProps } from './types';
|
|
2
2
|
declare function submit(): void;
|
|
3
3
|
declare function focus(): void;
|
|
4
|
-
declare var __VLS_1: {}, __VLS_3: {
|
|
4
|
+
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {
|
|
5
5
|
submit: typeof submit;
|
|
6
6
|
disabled: boolean;
|
|
7
7
|
isEmpty: boolean;
|
|
8
|
-
},
|
|
8
|
+
}, __VLS_7: {};
|
|
9
9
|
type __VLS_Slots = {} & {
|
|
10
|
-
'toolbar-
|
|
10
|
+
'toolbar-top'?: (props: typeof __VLS_1) => any;
|
|
11
11
|
} & {
|
|
12
|
-
'toolbar-
|
|
12
|
+
'toolbar-left'?: (props: typeof __VLS_3) => any;
|
|
13
13
|
} & {
|
|
14
|
-
|
|
14
|
+
'toolbar-right'?: (props: typeof __VLS_5) => any;
|
|
15
|
+
} & {
|
|
16
|
+
footer?: (props: typeof __VLS_7) => any;
|
|
15
17
|
};
|
|
16
18
|
declare const __VLS_base: import("vue").DefineComponent<CkPromptInputProps, {
|
|
17
19
|
focus: typeof focus;
|
|
@@ -27,7 +29,6 @@ declare const __VLS_base: import("vue").DefineComponent<CkPromptInputProps, {
|
|
|
27
29
|
disabled: boolean;
|
|
28
30
|
modelValue: string;
|
|
29
31
|
placeholder: string;
|
|
30
|
-
maxHeight: number;
|
|
31
32
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
32
33
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
33
34
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkPromptInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptInput/CkPromptInput.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CkPromptInput.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptInput/CkPromptInput.vue"],"names":[],"mappings":"AAwNA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA6GlD,iBAAS,MAAM,IAAI,IAAI,CAKtB;AASD,iBAAS,KAAK,IAAI,IAAI,CAErB;AAqJD,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,OAAO;;;;CAAU,EAAE,OAAO,IAAW,CAAE;AACjF,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAClD;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACnD;IAAE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACpD;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAO9C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;6EAKd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Low-level prompt input:
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* Low-level prompt input: an auto-growing textarea (1–6 lines, then internal
|
|
3
|
+
* scroll) with `toolbar-top` / `toolbar-left` / `toolbar-right` / `footer`
|
|
4
|
+
* slots and keyboard submission (Enter to submit, Shift+Enter for newline).
|
|
5
|
+
* The form layout adapts between a compact single-row variant (large 3xl
|
|
6
|
+
* radius) and a stacked multi-row variant (2xl radius) automatically — driven
|
|
7
|
+
* by content height and whether `toolbar-top` is filled. Use when you need
|
|
8
|
+
* full control over the prompt layout; for a turnkey chat input use `CkInput`
|
|
9
|
+
* instead.
|
|
6
10
|
*
|
|
7
11
|
* @category Form Inputs
|
|
8
|
-
* @useCases raw chat prompt textarea, custom prompt toolbar, auto-growing
|
|
9
|
-
* @keywords prompt, input, textarea, chat,
|
|
10
|
-
* @related CkInput,
|
|
12
|
+
* @useCases raw chat prompt textarea, custom prompt toolbar, auto-growing compose box, file-attachment chip row, multi-line chat input, keyboard submit
|
|
13
|
+
* @keywords prompt, input, textarea, chat, compose, submit, v-model, auto-grow, multi-line, toolbar
|
|
14
|
+
* @related CkInput, CkPromptSendButton, CkPromptStopButton, CkPromptMenuButton, CkPromptInputDisclaimer, CkFileItemsList
|
|
11
15
|
*/
|
|
12
16
|
export interface CkPromptInputProps {
|
|
13
17
|
/**
|
|
@@ -22,11 +26,6 @@ export interface CkPromptInputProps {
|
|
|
22
26
|
* @default false
|
|
23
27
|
*/
|
|
24
28
|
disabled?: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* Maximum height (in px) before the textarea becomes scrollable.
|
|
27
|
-
* @default 200
|
|
28
|
-
*/
|
|
29
|
-
maxHeight?: number;
|
|
30
29
|
/** Accessible label for the textarea, hidden visually but read by assistive tech. */
|
|
31
30
|
ariaLabel?: string;
|
|
32
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptInput/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptInput/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,+DAA+D;IAC/D,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import CkPromptMenuButton from './CkPromptMenuButton.vue';
|
|
2
|
+
import type { Meta, StoryObj } from '@storybook/vue3-vite';
|
|
3
|
+
declare const meta: Meta<typeof CkPromptMenuButton>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
/**
|
|
7
|
+
* Default menu-trigger button — ghost variant with the built-in plus icon.
|
|
8
|
+
* Drop into a `CkPromptInput` left toolbar slot, wrap with `UiDropdownMenu`
|
|
9
|
+
* to expose the actual prompt actions (attach files, attach folders, toggle
|
|
10
|
+
* tools, etc.).
|
|
11
|
+
*/
|
|
12
|
+
export declare const Default: Story;
|
|
13
|
+
/**
|
|
14
|
+
* Disabled state — use while the menu's actions are unavailable (e.g. while
|
|
15
|
+
* the previous request is still in flight).
|
|
16
|
+
*/
|
|
17
|
+
export declare const Disabled: Story;
|
|
18
|
+
//# sourceMappingURL=CkPromptMenuButton.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CkPromptMenuButton.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptMenuButton/CkPromptMenuButton.stories.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kBAAkB,CA0BzC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAkBnC;;;;;GAKG;AACH,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CkPromptMenuButtonProps } from './types';
|
|
2
|
+
declare var __VLS_8: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
default?: (props: typeof __VLS_8) => any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<CkPromptMenuButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CkPromptMenuButtonProps> & Readonly<{}>, {
|
|
7
|
+
type: "button" | "submit";
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=CkPromptMenuButton.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CkPromptMenuButton.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptMenuButton/CkPromptMenuButton.vue"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AA0EvD,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;6EAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptMenuButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzE,mBAAmB,SAAS,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon-only menu trigger styled for the chat prompt area (ghost variant,
|
|
3
|
+
* pill-shaped). Sits in `CkPromptInput`'s `toolbar-left` slot as the entry
|
|
4
|
+
* point to a dropdown of prompt actions — attach files, attach folders,
|
|
5
|
+
* toggle tools, switch length, etc. Defaults to a `plus` icon when the slot
|
|
6
|
+
* is empty; pass any icon to override.
|
|
7
|
+
*
|
|
8
|
+
* @category Actions
|
|
9
|
+
* @useCases open prompt menu, attach files, add resources, toggle tools, prompt input toolbar
|
|
10
|
+
* @keywords prompt, menu, plus, add, button, icon, ghost, dropdown trigger, tools
|
|
11
|
+
* @related CkPromptInput, CkPromptSendButton, CkPromptStopButton, CkDropZoneOverlay, CkFileItemsList
|
|
12
|
+
*/
|
|
13
|
+
export interface CkPromptMenuButtonProps {
|
|
14
|
+
/**
|
|
15
|
+
* Accessible label for the button. **Required** because the button only
|
|
16
|
+
* renders an icon.
|
|
17
|
+
*/
|
|
18
|
+
ariaLabel: string;
|
|
19
|
+
/**
|
|
20
|
+
* Whether the button is disabled.
|
|
21
|
+
* @default false
|
|
22
|
+
*/
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Native button `type`.
|
|
26
|
+
* @default 'button'
|
|
27
|
+
*/
|
|
28
|
+
type?: 'button' | 'submit';
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptMenuButton/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC5B"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import CkPromptSendButton from './CkPromptSendButton.vue';
|
|
2
2
|
import type { Meta, StoryObj } from '@storybook/vue3-vite';
|
|
3
|
-
declare const meta: Meta<typeof
|
|
3
|
+
declare const meta: Meta<typeof CkPromptSendButton>;
|
|
4
4
|
export default meta;
|
|
5
5
|
type Story = StoryObj<typeof meta>;
|
|
6
6
|
/**
|
|
7
|
-
* Default send
|
|
8
|
-
*
|
|
7
|
+
* Default send button. Drop into a `CkPromptInput`'s `toolbar-right` slot to
|
|
8
|
+
* submit the prompt.
|
|
9
9
|
*/
|
|
10
10
|
export declare const Default: Story;
|
|
11
11
|
/**
|
|
@@ -18,4 +18,4 @@ export declare const Disabled: Story;
|
|
|
18
18
|
* message is still streaming or the request is in flight.
|
|
19
19
|
*/
|
|
20
20
|
export declare const Loading: Story;
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=CkPromptSendButton.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CkPromptSendButton.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptSendButton/CkPromptSendButton.stories.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kBAAkB,CA+BzC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAgCnC;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAUrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAUrB,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CkPromptSendButtonProps } from './types';
|
|
2
2
|
declare var __VLS_8: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
default?: (props: typeof __VLS_8) => any;
|
|
5
5
|
};
|
|
6
|
-
declare const __VLS_base: import("vue").DefineComponent<
|
|
6
|
+
declare const __VLS_base: import("vue").DefineComponent<CkPromptSendButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CkPromptSendButtonProps> & Readonly<{}>, {
|
|
7
7
|
type: "button" | "submit";
|
|
8
8
|
disabled: boolean;
|
|
9
9
|
loading: boolean;
|
|
@@ -16,4 +16,4 @@ type __VLS_WithSlots<T, S> = T & {
|
|
|
16
16
|
$slots: S;
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=CkPromptSendButton.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CkPromptSendButton.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptSendButton/CkPromptSendButton.vue"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AA+DvD,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;;6EAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptSendButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzE,mBAAmB,SAAS,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon-only send button styled for the chat prompt area (brand color, pill
|
|
3
|
+
* shape). Sits in `CkPromptInput`'s `toolbar-right` slot as the submit
|
|
4
|
+
* trigger. Shows a spinner via `loading` while the previous request is in
|
|
5
|
+
* flight; pair with `CkPromptStopButton` to expose an abort control.
|
|
6
|
+
*
|
|
7
|
+
* @category Actions
|
|
8
|
+
* @useCases send message button, submit prompt, primary chat send action, loading send button, disabled send button
|
|
9
|
+
* @keywords prompt, send, submit, button, icon, loading, brand
|
|
10
|
+
* @related CkPromptInput, CkPromptStopButton, CkInput, CkSendIcon
|
|
11
|
+
*/
|
|
12
|
+
export interface CkPromptSendButtonProps {
|
|
13
|
+
/**
|
|
14
|
+
* Accessible label for the button. **Required** because the button only
|
|
15
|
+
* renders an icon.
|
|
16
|
+
*/
|
|
17
|
+
ariaLabel: string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the button is disabled.
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Whether to show a loading spinner instead of the slotted icon.
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
loading?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Native button `type`. Set `'submit'` when placed inside a `<form>`.
|
|
30
|
+
* @default 'button'
|
|
31
|
+
*/
|
|
32
|
+
type?: 'button' | 'submit';
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptSendButton/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC5B"}
|
|
@@ -4,7 +4,7 @@ declare const meta: Meta<typeof CkPromptStopButton>;
|
|
|
4
4
|
export default meta;
|
|
5
5
|
type Story = StoryObj<typeof meta>;
|
|
6
6
|
/**
|
|
7
|
-
* Default stop button. Swap it in for `
|
|
7
|
+
* Default stop button. Swap it in for `CkPromptSendButton` while an
|
|
8
8
|
* assistant reply is streaming so users can cancel the response.
|
|
9
9
|
*/
|
|
10
10
|
export declare const Default: Story;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkPromptStopButton.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptStopButton/CkPromptStopButton.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CkPromptStopButton.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptStopButton/CkPromptStopButton.vue"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AA4EvD,QAAA,IAAI,QAAQ,IAAW,CAAE;AACzB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Icon-only button used to stop an in-flight assistant generation.
|
|
3
|
-
*
|
|
2
|
+
* Icon-only button used to stop an in-flight assistant generation. Visually
|
|
3
|
+
* de-emphasized counterpart to `CkPromptSendButton` — uses UiButton's `secondary`
|
|
4
|
+
* variant (muted background) per Figma spec, so the user's eye doesn't read it
|
|
5
|
+
* as a primary call-to-action. Swap it in for `CkPromptSendButton` in the
|
|
4
6
|
* prompt toolbar while a response is streaming.
|
|
5
7
|
*
|
|
6
8
|
* @category Actions
|
|
7
9
|
* @useCases stop assistant generation, cancel streaming reply, abort in-flight request, halt llm response
|
|
8
|
-
* @keywords stop, cancel, abort, prompt,
|
|
9
|
-
* @related
|
|
10
|
+
* @keywords stop, cancel, abort, prompt, button, icon, streaming, secondary
|
|
11
|
+
* @related CkPromptSendButton, CkPromptMenuButton, CkPromptInput, CkInput, CkStopIcon
|
|
10
12
|
*/
|
|
11
13
|
export interface CkPromptStopButtonProps {
|
|
12
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptStopButton/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkPromptStopButton/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkSendIcon.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/icons/CkSendIcon.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CkSendIcon.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/icons/CkSendIcon.vue"],"names":[],"mappings":"AA4CA,QAAA,MAAM,YAAY,+QAChB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -20,7 +20,9 @@ export type { CkMarkdownRendererProps, CkMarkdownElementClasses, } from './CkMar
|
|
|
20
20
|
export { CkMessageActionButton } from './CkMessageActionButton';
|
|
21
21
|
export { CkModelSelector } from './CkModelSelector';
|
|
22
22
|
export type { CkModelOption, CkModelSelectorProps, CkModelSelectorEmits, } from './CkModelSelector';
|
|
23
|
-
export {
|
|
23
|
+
export { CkPromptSendButton } from './CkPromptSendButton';
|
|
24
|
+
export { CkPromptMenuButton } from './CkPromptMenuButton';
|
|
25
|
+
export type { CkPromptMenuButtonProps } from './CkPromptMenuButton';
|
|
24
26
|
export { CkPromptStopButton } from './CkPromptStopButton';
|
|
25
27
|
export { CkPromptInput } from './CkPromptInput';
|
|
26
28
|
export { CkPromptInputDisclaimer } from './CkPromptInputDisclaimer';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/base/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/base/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -40,10 +40,10 @@ declare const __VLS_base: import("vue").DefineComponent<CkHistoryProps, {}, {},
|
|
|
40
40
|
}>, {
|
|
41
41
|
showAction: boolean;
|
|
42
42
|
showActionOnHover: boolean;
|
|
43
|
-
maxHeight: string;
|
|
44
43
|
activeId: string;
|
|
45
44
|
timeFormatter: (updatedAtSeconds: number) => string;
|
|
46
45
|
collapsedLimit: number;
|
|
46
|
+
maxHeight: string;
|
|
47
47
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
48
48
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
49
49
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkInput.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/composed/CkInput/CkInput.stories.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAM3D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,
|
|
1
|
+
{"version":3,"file":"CkInput.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/composed/CkInput/CkInput.stories.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAM3D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,OAAO,CAqC9B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAqGnC;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAerB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,KAgD5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,KA2FzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAiBtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KA2BrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAuB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAsBzB,CAAC"}
|