@qilin-agent/client-ui-attachment 3.1.7 → 3.1.9
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/lib/client.js +37 -11
- package/lib/types/MessageImage.d.ts +6 -2
- package/lib/types/client/MessageImages.d.ts +1 -1
- package/package.json +13 -12
package/lib/client.js
CHANGED
|
@@ -24,7 +24,7 @@ window.__ModuleLoader__.load({
|
|
|
24
24
|
}
|
|
25
25
|
//#endregion
|
|
26
26
|
//#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-attachment/src/AttachmentRail.module.css.mjs
|
|
27
|
-
const css$4 = ".tsmrHq_root{min-width:0;position:relative}.tsmrHq_rail{scrollbar-width:none;--qilin-scrollbar-thumb:var(--qilin-alias-scrollbar-bg-l2);--qilin-scrollbar-thumb-hover:var(--qilin-alias-scrollbar-hover-l2);align-items:stretch;gap:10px;display:flex;overflow:auto hidden}.tsmrHq_rail::-webkit-scrollbar{display:none}.tsmrHq_item{flex:none;height:64px}.tsmrHq_thumbnail{border
|
|
27
|
+
const css$4 = ".tsmrHq_root{min-width:0;position:relative}.tsmrHq_rail{scrollbar-width:none;--qilin-scrollbar-thumb:var(--qilin-alias-scrollbar-bg-l2);--qilin-scrollbar-thumb-hover:var(--qilin-alias-scrollbar-hover-l2);align-items:stretch;gap:10px;display:flex;overflow:auto hidden}.tsmrHq_rail::-webkit-scrollbar{display:none}.tsmrHq_item{flex:none;height:64px}.tsmrHq_thumbnail{border:1px solid var(--qilin-alias-border-l2-darkmode-thin);border-radius:var(--qilin-radius-xl);background:var(--qilin-alias-interactive-bg-hover);cursor:zoom-in;width:64px;height:64px;padding:0;overflow:hidden}.tsmrHq_thumbnail img{object-fit:cover;width:100%;height:100%;display:block}.tsmrHq_remove{z-index:1;corner-shape:round;background:var(--qilin-alias-button-contrast-fill);width:18px;height:18px;color:var(--qilin-alias-label-primary-inverted);cursor:pointer;opacity:0;border:none;border-radius:50%;place-items:center;padding:0;transition:opacity .2s ease-in-out;display:grid;position:absolute;top:4px;right:4px}.tsmrHq_item:hover .tsmrHq_remove,.tsmrHq_remove:focus-visible{opacity:1}@media (pointer:coarse){.tsmrHq_remove{opacity:1}}@media (prefers-reduced-motion:reduce){.tsmrHq_remove{transition:none}}.tsmrHq_arrow{z-index:2;--qilin-elevation-stroke-color:var(--qilin-alias-border-l2-darkmode-thin);corner-shape:round;background:var(--qilin-specific-input-major);width:24px;height:24px;color:var(--qilin-alias-label-secondary);box-shadow:var(--qilin-elevation-panel);cursor:pointer;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.tsmrHq_arrow:hover{background:var(--qilin-alias-interactive-bg-hover-solid)}.tsmrHq_arrowLeft{left:4px}.tsmrHq_arrowRight{right:4px}";
|
|
28
28
|
const tagId$4 = "@qilin-agent/client-ui-attachment/AttachmentRail.module.css";
|
|
29
29
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
|
|
30
30
|
const tag = document.createElement("style");
|
|
@@ -357,7 +357,7 @@ window.__ModuleLoader__.load({
|
|
|
357
357
|
});
|
|
358
358
|
//#endregion
|
|
359
359
|
//#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-attachment/src/FileCard.module.css.mjs
|
|
360
|
-
const css$2 = ".LBRGAa_card{border
|
|
360
|
+
const css$2 = ".LBRGAa_card{border:1px solid var(--qilin-alias-border-l2,#0000001f);border-radius:var(--qilin-radius-lg);background:var(--qilin-specific-input-major,transparent);box-sizing:border-box;text-align:left;align-items:center;gap:10px;width:240px;height:64px;padding:0 12px;display:inline-flex;position:relative}.LBRGAa_failed{border-color:var(--qilin-alias-state-error-primary,#d54941)}.LBRGAa_icon{flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.LBRGAa_spinner{corner-shape:round;border:2px solid;border-top-color:#0000;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite LBRGAa_file-card-spin}@keyframes LBRGAa_file-card-spin{to{transform:rotate(360deg)}}.LBRGAa_body{flex-direction:column;flex:1;min-width:0;padding:8px 0;display:flex}.LBRGAa_retry{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.LBRGAa_name{white-space:nowrap;text-overflow:ellipsis;color:var(--qilin-alias-label-primary);font-size:14px;font-weight:500;line-height:22px;overflow:hidden}.LBRGAa_meta{white-space:nowrap;text-overflow:ellipsis;color:var(--qilin-alias-label-tertiary,#00000073);font-size:12px;line-height:15px;overflow:hidden}.LBRGAa_metaFailed{color:var(--qilin-alias-state-error-primary,#d54941)}.LBRGAa_remove{corner-shape:round;background:var(--qilin-alias-button-contrast-fill,#000000b8);width:18px;height:18px;color:var(--qilin-alias-label-primary-inverted,#fff);opacity:0;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .2s ease-in-out;display:inline-flex;position:absolute;top:6px;right:6px}.LBRGAa_card:hover .LBRGAa_remove,.LBRGAa_remove:focus-visible{opacity:1}@media (pointer:coarse){.LBRGAa_remove{opacity:1}}@media (prefers-reduced-motion:reduce){.LBRGAa_remove{transition:none}}.LBRGAa_card:hover .LBRGAa_name,.LBRGAa_card:focus-within .LBRGAa_name{padding-right:18px}.LBRGAa_removeFailed{background:var(--qilin-alias-state-error-primary,#d54941);color:#fff;opacity:1}.LBRGAa_progressTrack{background:var(--qilin-alias-fill-tertiary,#00000014);border-radius:1px;height:2px;position:absolute;bottom:5px;left:12px;right:12px;overflow:hidden}.LBRGAa_progressBar{border-radius:inherit;background:var(--qilin-alias-brand-primary,#4d6bfe);width:35%;height:100%;animation:1.2s ease-in-out infinite alternate LBRGAa_file-card-progress;display:block}.LBRGAa_progressBar[style]{animation:none}@keyframes LBRGAa_file-card-progress{0%{transform:translate(-70%)}to{transform:translate(220%)}}@media (pointer:coarse){.LBRGAa_remove{opacity:1}}";
|
|
361
361
|
const tagId$2 = "@qilin-agent/client-ui-attachment/FileCard.module.css";
|
|
362
362
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
|
|
363
363
|
const tag = document.createElement("style");
|
|
@@ -590,7 +590,7 @@ window.__ModuleLoader__.load({
|
|
|
590
590
|
}
|
|
591
591
|
//#endregion
|
|
592
592
|
//#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-attachment/src/client/ComposerAttachments.module.css.mjs
|
|
593
|
-
const css$1 = ".z3i06q_rail{min-width:0;margin-bottom:-6px;padding:2px 10px 0}.z3i06q_imageItem{width:64px;height:64px;position:relative}.z3i06q_thumbnail{border
|
|
593
|
+
const css$1 = ".z3i06q_rail{min-width:0;margin-bottom:-6px;padding:2px 10px 0}.z3i06q_imageItem{width:64px;height:64px;position:relative}.z3i06q_thumbnail{border:1px solid var(--qilin-alias-border-l2-darkmode-thin);border-radius:var(--qilin-radius-xl);background:var(--qilin-alias-interactive-bg-hover);cursor:zoom-in;width:64px;height:64px;padding:0;overflow:hidden}.z3i06q_thumbnail img{object-fit:cover;width:100%;height:100%;display:block}.z3i06q_remove{z-index:1;corner-shape:round;background:var(--qilin-alias-button-contrast-fill);width:18px;height:18px;color:var(--qilin-alias-label-primary-inverted);cursor:pointer;opacity:0;border:none;border-radius:50%;place-items:center;padding:0;transition:opacity .2s ease-in-out;display:grid;position:absolute;top:4px;right:4px}.z3i06q_imageItem:hover .z3i06q_remove,.z3i06q_remove:focus-visible{opacity:1}@media (pointer:coarse){.z3i06q_remove{opacity:1}}@media (prefers-reduced-motion:reduce){.z3i06q_remove{transition:none}}";
|
|
594
594
|
const tagId$1 = "@qilin-agent/client-ui-attachment/ComposerAttachments.module.css";
|
|
595
595
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
596
596
|
const tag = document.createElement("style");
|
|
@@ -689,7 +689,7 @@ window.__ModuleLoader__.load({
|
|
|
689
689
|
}
|
|
690
690
|
//#endregion
|
|
691
691
|
//#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-attachment/src/MessageImage.module.css.mjs
|
|
692
|
-
const css = ".AdZSYG_gallery{flex-wrap:wrap;gap:10px;max-width:100%;display:flex}.AdZSYG_gallery[data-align=end]{justify-content:flex-end;align-self:flex-end}.AdZSYG_gallery[data-align=start]{justify-content:flex-start;align-self:flex-start}.AdZSYG_frame{border
|
|
692
|
+
const css = ".AdZSYG_gallery{flex-wrap:wrap;gap:10px;max-width:100%;display:flex}.AdZSYG_gallery[data-align=end]{justify-content:flex-end;align-self:flex-end}.AdZSYG_gallery[data-align=start]{justify-content:flex-start;align-self:flex-start}.AdZSYG_frame{border:1px solid var(--qilin-alias-border-l2-darkmode-thin);border-radius:var(--qilin-radius-xl);background:var(--qilin-alias-interactive-bg-hover);cursor:zoom-in;flex:none;place-items:center;min-width:44px;min-height:44px;padding:0;display:grid;overflow:hidden}.AdZSYG_frame[data-variant=tile]{width:64px;min-width:64px;height:64px;min-height:64px}.AdZSYG_frame img{object-fit:cover;width:100%;height:100%;display:block}.AdZSYG_loading,.AdZSYG_error{color:var(--qilin-alias-label-tertiary);font-size:12px;line-height:18px}.AdZSYG_error{border:1px solid var(--qilin-alias-border-l2-darkmode-thin);border-radius:var(--qilin-radius-md);background:var(--qilin-alias-interactive-bg-hover-danger);cursor:pointer;max-width:240px;padding:10px 12px}.AdZSYG_error[data-variant=tile]{border-radius:var(--qilin-radius-xl);width:64px;height:64px;padding:4px;overflow:hidden}.AdZSYG_frame[data-variant=thumbnail],.AdZSYG_error[data-variant=thumbnail]{box-sizing:border-box;border-radius:var(--qilin-radius-lg);place-items:center;width:48px;min-width:48px;height:48px;min-height:48px;padding:2px;display:grid;overflow:hidden}.AdZSYG_frame[data-variant=thumbnail] img{object-fit:contain}.AdZSYG_spinner{animation:.9s linear infinite AdZSYG_spinner-rotate}@keyframes AdZSYG_spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.AdZSYG_spinner{animation:none}}.AdZSYG_frame:focus-visible,.AdZSYG_error:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:2px}";
|
|
693
693
|
const tagId = "@qilin-agent/client-ui-attachment/MessageImage.module.css";
|
|
694
694
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
695
695
|
const tag = document.createElement("style");
|
|
@@ -749,15 +749,18 @@ window.__ModuleLoader__.load({
|
|
|
749
749
|
* @param props.load - session-authorized URL loader for the durable arm.
|
|
750
750
|
* @param props.variant - lone image, cropped gallery tile, or uncropped list thumbnail.
|
|
751
751
|
* @param props.labels - resolved strings (tooltip, loading, retry, lightbox).
|
|
752
|
+
* @param props.getTriggerProps - ordinary gesture binding for the original image.
|
|
752
753
|
* @returns the bounded thumbnail button, or the retry control on failure.
|
|
753
754
|
*/
|
|
754
|
-
function MessageImage({ image, load, variant, labels }) {
|
|
755
|
+
function MessageImage({ image, load, variant, labels, getTriggerProps }) {
|
|
755
756
|
const preview = "preview" in image ? image.preview : void 0;
|
|
756
757
|
const attachment = "attachment" in image ? image.attachment : void 0;
|
|
757
758
|
const [loaded, setLoaded] = (0, react.useState)(() => attachment === void 0 ? null : load.peek?.(attachment) ?? null);
|
|
758
759
|
const [error, setError] = (0, react.useState)(false);
|
|
759
760
|
const [open, setOpen] = (0, react.useState)(false);
|
|
760
761
|
const [attempt, setAttempt] = (0, react.useState)(0);
|
|
762
|
+
const autoReloads = (0, react.useRef)(0);
|
|
763
|
+
const autoReloadsFor = (0, react.useRef)(void 0);
|
|
761
764
|
const request = (0, react.useCallback)(() => {
|
|
762
765
|
setAttempt((a) => a + 1);
|
|
763
766
|
}, []);
|
|
@@ -777,6 +780,10 @@ window.__ModuleLoader__.load({
|
|
|
777
780
|
if (attachment === void 0) return;
|
|
778
781
|
let live = true;
|
|
779
782
|
setError(false);
|
|
783
|
+
if (autoReloadsFor.current !== attachment.attachmentId) {
|
|
784
|
+
autoReloads.current = 0;
|
|
785
|
+
autoReloadsFor.current = attachment.attachmentId;
|
|
786
|
+
}
|
|
780
787
|
setLoaded(load.peek?.(attachment) ?? null);
|
|
781
788
|
load(attachment).then((url) => {
|
|
782
789
|
if (live) setLoaded(url);
|
|
@@ -793,6 +800,14 @@ window.__ModuleLoader__.load({
|
|
|
793
800
|
]);
|
|
794
801
|
const src = preview?.url ?? loaded;
|
|
795
802
|
const label = ("attachment" in image ? image.label : void 0) ?? preview?.name ?? attachment?.name ?? labels.image;
|
|
803
|
+
const contextMenuProps = getTriggerProps(src === null ? void 0 : {
|
|
804
|
+
kind: "image",
|
|
805
|
+
value: {
|
|
806
|
+
url: src,
|
|
807
|
+
name: label,
|
|
808
|
+
...attachment === void 0 ? {} : { mediaType: attachment.mediaType }
|
|
809
|
+
}
|
|
810
|
+
});
|
|
796
811
|
const loadingThumbnail = variant === "thumbnail" && src === null;
|
|
797
812
|
if (error) return (0, react_jsx_runtime.jsx)("button", {
|
|
798
813
|
type: "button",
|
|
@@ -817,6 +832,7 @@ window.__ModuleLoader__.load({
|
|
|
817
832
|
title: loadingThumbnail ? labels.loading : labels.open,
|
|
818
833
|
"aria-label": loadingThumbnail ? labels.loading : labels.openNamed(label),
|
|
819
834
|
"aria-busy": loadingThumbnail || void 0,
|
|
835
|
+
...contextMenuProps,
|
|
820
836
|
onClick: () => {
|
|
821
837
|
if (src !== null) setOpen(true);
|
|
822
838
|
},
|
|
@@ -827,18 +843,25 @@ window.__ModuleLoader__.load({
|
|
|
827
843
|
}) : (0, react_jsx_runtime.jsx)("img", {
|
|
828
844
|
src,
|
|
829
845
|
alt: label,
|
|
830
|
-
style: fit === void 0 ? void 0 : { objectPosition: fit.objectPosition }
|
|
846
|
+
style: fit === void 0 ? void 0 : { objectPosition: fit.objectPosition },
|
|
847
|
+
onError: attachment === void 0 ? void 0 : () => {
|
|
848
|
+
if (autoReloads.current < 1) {
|
|
849
|
+
autoReloads.current += 1;
|
|
850
|
+
request();
|
|
851
|
+
} else setError(true);
|
|
852
|
+
}
|
|
831
853
|
})
|
|
832
854
|
}), open && src !== null && (0, react_jsx_runtime.jsx)(_qilin_agent_client_ui_primitives.ImageLightbox, {
|
|
833
855
|
src,
|
|
834
856
|
alt: label,
|
|
835
857
|
labels: labels.lightbox,
|
|
836
|
-
onClose: close
|
|
858
|
+
onClose: close,
|
|
859
|
+
contextMenuProps
|
|
837
860
|
})] });
|
|
838
861
|
}
|
|
839
862
|
/** Wrapping image group shared by user and assistant history: a lone image
|
|
840
863
|
* renders large unless its owner requests compact tiles or contained list thumbnails. */
|
|
841
|
-
function ImageGallery({ images, load, align, compact = false, thumbnail = false, labels }) {
|
|
864
|
+
function ImageGallery({ images, load, align, compact = false, thumbnail = false, labels, getTriggerProps }) {
|
|
842
865
|
if (images.length === 0) return null;
|
|
843
866
|
const variant = thumbnail ? "thumbnail" : compact || images.length > 1 ? "tile" : "single";
|
|
844
867
|
return (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -848,21 +871,24 @@ window.__ModuleLoader__.load({
|
|
|
848
871
|
image,
|
|
849
872
|
load,
|
|
850
873
|
variant,
|
|
851
|
-
labels
|
|
874
|
+
labels,
|
|
875
|
+
getTriggerProps
|
|
852
876
|
}, `${"attachment" in image ? image.attachment.attachmentId : image.preview.url}:${index}`))
|
|
853
877
|
});
|
|
854
878
|
}
|
|
855
879
|
//#endregion
|
|
856
880
|
//#region lib/types/client/MessageImages.js
|
|
857
881
|
/** Historical message-image slot entry. */
|
|
858
|
-
function MessageImages({ images, loadImage, align, compact = false, thumbnail = false, t }) {
|
|
882
|
+
function MessageImages({ images, loadImage, align, compact = false, thumbnail = false, t, useContextMenu }) {
|
|
883
|
+
const { getTriggerProps } = useContextMenu();
|
|
859
884
|
return (0, react_jsx_runtime.jsx)(ImageGallery, {
|
|
860
885
|
images,
|
|
861
886
|
load: loadImage,
|
|
862
887
|
align,
|
|
863
888
|
compact,
|
|
864
889
|
thumbnail,
|
|
865
|
-
labels: messageImageLabels(t)
|
|
890
|
+
labels: messageImageLabels(t),
|
|
891
|
+
getTriggerProps
|
|
866
892
|
});
|
|
867
893
|
}
|
|
868
894
|
//#endregion
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ImageAttachmentRef } from '@qilin-agent/attachment';
|
|
2
2
|
import type { ImageLightboxLabels } from '@qilin-agent/client-ui-primitives';
|
|
3
|
+
import type { ContextMenuBindings } from '@qilin-agent/client-ui-context-menu/client';
|
|
3
4
|
/** Loads a session-authorized durable image URL and may expose a cached URL synchronously. */
|
|
4
5
|
export type ImageLoader = ((attachment: ImageAttachmentRef) => Promise<string>) & {
|
|
5
6
|
peek?: (attachment: ImageAttachmentRef) => string | undefined;
|
|
@@ -43,22 +44,25 @@ export interface MessageImageLabels {
|
|
|
43
44
|
* @param props.load - session-authorized URL loader for the durable arm.
|
|
44
45
|
* @param props.variant - lone image, cropped gallery tile, or uncropped list thumbnail.
|
|
45
46
|
* @param props.labels - resolved strings (tooltip, loading, retry, lightbox).
|
|
47
|
+
* @param props.getTriggerProps - ordinary gesture binding for the original image.
|
|
46
48
|
* @returns the bounded thumbnail button, or the retry control on failure.
|
|
47
49
|
*/
|
|
48
|
-
export declare function MessageImage({ image, load, variant, labels }: {
|
|
50
|
+
export declare function MessageImage({ image, load, variant, labels, getTriggerProps }: {
|
|
49
51
|
image: MessageImageSpec;
|
|
50
52
|
load: ImageLoader;
|
|
51
53
|
variant: 'single' | 'tile' | 'thumbnail';
|
|
52
54
|
labels: MessageImageLabels;
|
|
55
|
+
getTriggerProps: ContextMenuBindings['getTriggerProps'];
|
|
53
56
|
}): import("react").JSX.Element;
|
|
54
57
|
/** Wrapping image group shared by user and assistant history: a lone image
|
|
55
58
|
* renders large unless its owner requests compact tiles or contained list thumbnails. */
|
|
56
|
-
export declare function ImageGallery({ images, load, align, compact, thumbnail, labels }: {
|
|
59
|
+
export declare function ImageGallery({ images, load, align, compact, thumbnail, labels, getTriggerProps }: {
|
|
57
60
|
images: readonly MessageImageSpec[];
|
|
58
61
|
load: ImageLoader;
|
|
59
62
|
align: 'start' | 'end';
|
|
60
63
|
compact?: boolean;
|
|
61
64
|
thumbnail?: boolean;
|
|
62
65
|
labels: MessageImageLabels;
|
|
66
|
+
getTriggerProps: ContextMenuBindings['getTriggerProps'];
|
|
63
67
|
}): import("react").JSX.Element | null;
|
|
64
68
|
//# sourceMappingURL=MessageImage.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { MessageImagesProps } from '@qilin-agent/client-ui-chat/client';
|
|
2
2
|
/** Historical message-image slot entry. */
|
|
3
|
-
export declare function MessageImages({ images, loadImage, align, compact, thumbnail, t }: MessageImagesProps): import("react").JSX.Element;
|
|
3
|
+
export declare function MessageImages({ images, loadImage, align, compact, thumbnail, t, useContextMenu }: MessageImagesProps): import("react").JSX.Element;
|
|
4
4
|
//# sourceMappingURL=MessageImages.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qilin-agent/client-ui-attachment",
|
|
3
3
|
"description": "Dynamic attachment presentation plugin for conversation input, message-image, and trajectory image slots",
|
|
4
|
-
"version": "3.1.
|
|
4
|
+
"version": "3.1.9",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -42,20 +42,21 @@
|
|
|
42
42
|
},
|
|
43
43
|
"license": "MIT",
|
|
44
44
|
"devDependencies": {
|
|
45
|
+
"@qilin-agent/kylin": "~4.0.7",
|
|
45
46
|
"@types/react": "~18.3.1",
|
|
46
47
|
"@types/react-dom": "~18.3.0",
|
|
48
|
+
"@qilin-agent/client-ui-chat": "3.1.9",
|
|
49
|
+
"@qilin-agent/client-ui-conversation": "3.1.9",
|
|
50
|
+
"@qilin-agent/client-ui-trajectory": "3.1.9",
|
|
51
|
+
"@qilin-agent/client-ui-renderer": "3.1.9",
|
|
52
|
+
"@qilin-agent/client-ui-primitives": "3.1.9",
|
|
53
|
+
"@qilin-agent/client-ui-context-menu": "3.1.9",
|
|
54
|
+
"@qilin-agent/client-ui-slots": "3.1.9",
|
|
47
55
|
"react": "^18.2.0",
|
|
48
56
|
"react-dom": "^18.2.0",
|
|
49
|
-
"
|
|
50
|
-
"@qilin-agent/
|
|
51
|
-
"
|
|
52
|
-
"@qilin-agent/client-ui-chat": "3.1.7",
|
|
53
|
-
"@qilin-agent/client-ui-renderer": "3.1.7",
|
|
54
|
-
"@qilin-agent/client-ui-conversation": "3.1.7",
|
|
55
|
-
"@qilin-agent/client-ui-primitives": "3.1.7",
|
|
56
|
-
"@qilin-agent/client-ui-slots": "3.1.7",
|
|
57
|
-
"@qilin-agent/client-ui-tool": "3.1.7",
|
|
58
|
-
"@qilin-agent/attachment": "3.1.7"
|
|
57
|
+
"@qilin-agent/attachment": "3.1.9",
|
|
58
|
+
"@qilin-agent/client-ui-tool": "3.1.9",
|
|
59
|
+
"clsx": "^2.0.0"
|
|
59
60
|
},
|
|
60
61
|
"files": [
|
|
61
62
|
"lib/index.js",
|
|
@@ -63,7 +64,7 @@
|
|
|
63
64
|
"lib/types/**/*.d.ts"
|
|
64
65
|
],
|
|
65
66
|
"peerDependencies": {
|
|
66
|
-
"@qilin-agent/kylin": "~4.0.
|
|
67
|
+
"@qilin-agent/kylin": "~4.0.7"
|
|
67
68
|
},
|
|
68
69
|
"scripts": {
|
|
69
70
|
"bundle": "tsdown",
|