@llmnative/react 1.47.0 → 1.48.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/index.mjs CHANGED
@@ -11185,14 +11185,21 @@ function Fd({ name: e, value: t, onChange: n, placeholder: r, running: i = !1, o
11185
11185
  }));
11186
11186
  R((e) => [...e, ...t]);
11187
11187
  }, []), ue = v((e) => {
11188
+ if (!c) return;
11189
+ let t = Array.from(e.clipboardData.items).filter((e) => e.kind === "file").map((e) => e.getAsFile()).filter((e) => !!e);
11190
+ if (!t.length) return;
11191
+ e.preventDefault();
11192
+ let n = (/* @__PURE__ */ new Date()).toISOString().replace(/\D/g, "").slice(0, 14);
11193
+ le(t.map((e, r) => !e.name || e.name === "image.png" ? new File([e], `pasted-${n}${t.length > 1 ? `-${r + 1}` : ""}.${(e.type.split("/")[1] || "png").replace("jpeg", "jpg")}`, { type: e.type }) : e));
11194
+ }, [c, le]), de = v((e) => {
11188
11195
  c && e.dataTransfer.types.includes("Files") && (e.preventDefault(), V.current += 1, B(!0));
11189
- }, [c]), de = v((e) => {
11190
- c && e.dataTransfer.types.includes("Files") && e.preventDefault();
11191
11196
  }, [c]), fe = v((e) => {
11192
- c && (e.preventDefault(), V.current = Math.max(0, V.current - 1), V.current === 0 && B(!1));
11197
+ c && e.dataTransfer.types.includes("Files") && e.preventDefault();
11193
11198
  }, [c]), pe = v((e) => {
11199
+ c && (e.preventDefault(), V.current = Math.max(0, V.current - 1), V.current === 0 && B(!1));
11200
+ }, [c]), me = v((e) => {
11194
11201
  c && (e.preventDefault(), V.current = 0, B(!1), e.dataTransfer.files.length && le(e.dataTransfer.files));
11195
- }, [c, le]), me = Ec({
11202
+ }, [c, le]), K = Ec({
11196
11203
  minHeight: O,
11197
11204
  maxHeight: k
11198
11205
  });
@@ -11200,21 +11207,21 @@ function Fd({ name: e, value: t, onChange: n, placeholder: r, running: i = !1, o
11200
11207
  let e = P.current;
11201
11208
  if (!e) return;
11202
11209
  e.style.height = "auto";
11203
- let t = Math.max(e.scrollHeight, me.resolvedMinHeight), n = me.resolvedMaxHeight ? Math.min(t, me.resolvedMaxHeight) : t;
11204
- e.style.height = `${n}px`, e.style.overflowY = me.resolvedMaxHeight && t > me.resolvedMaxHeight ? "auto" : "hidden";
11210
+ let t = Math.max(e.scrollHeight, K.resolvedMinHeight), n = K.resolvedMaxHeight ? Math.min(t, K.resolvedMaxHeight) : t;
11211
+ e.style.height = `${n}px`, e.style.overflowY = K.resolvedMaxHeight && t > K.resolvedMaxHeight ? "auto" : "hidden";
11205
11212
  }, [
11206
11213
  t,
11207
- me.resolvedMinHeight,
11208
- me.resolvedMaxHeight
11214
+ K.resolvedMinHeight,
11215
+ K.resolvedMaxHeight
11209
11216
  ]);
11210
- let K = l?.length ? u ?? "/" : void 0, he = (l?.length ?? 0) >= 10, ge = f.useMemo(() => new Map((l ?? []).map((e) => [e.name, e])), [l]), _e = f.useMemo(() => (l ?? []).map((e) => ({
11217
+ let he = l?.length ? u ?? "/" : void 0, ge = (l?.length ?? 0) >= 10, _e = f.useMemo(() => new Map((l ?? []).map((e) => [e.name, e])), [l]), ve = f.useMemo(() => (l ?? []).map((e) => ({
11211
11218
  key: e.name,
11212
- label: `${K ?? "/"}${e.name}`,
11219
+ label: `${he ?? "/"}${e.name}`,
11213
11220
  value: e.name,
11214
11221
  icon: e.icon,
11215
11222
  description: e.description
11216
- })), [l, K]), ve = v(async (e, t) => {
11217
- let n = ge.get(e.value);
11223
+ })), [l, he]), ye = v(async (e, t) => {
11224
+ let n = _e.get(e.value);
11218
11225
  if (n) {
11219
11226
  if (n.handler) {
11220
11227
  let e = await n.handler(vd(t)), r = n.consumeSuffix ? hd(t.textAfterCaret, n.consumeSuffix) : 0;
@@ -11223,7 +11230,7 @@ function Fd({ name: e, value: t, onChange: n, placeholder: r, running: i = !1, o
11223
11230
  }
11224
11231
  t.replace(t.triggerRange.start, t.triggerRange.end, `${t.trigger}${n.name} `);
11225
11232
  }
11226
- }, [ge]), ye = d.find((e) => e.value === p)?.label ?? Pd(p), be = () => {
11233
+ }, [_e]), be = d.find((e) => e.value === p)?.label ?? Pd(p), xe = () => {
11227
11234
  o || i || (s({
11228
11235
  text: t,
11229
11236
  files: L.map((e) => e.file),
@@ -11236,31 +11243,32 @@ function Fd({ name: e, value: t, onChange: n, placeholder: r, running: i = !1, o
11236
11243
  temperature: oe
11237
11244
  } : {}
11238
11245
  }), L.forEach(({ objectUrl: e }) => URL.revokeObjectURL(e)), R([]));
11239
- }, xe = () => {
11246
+ }, Se = () => {
11240
11247
  if (i) {
11241
11248
  U(!0), a?.();
11242
11249
  return;
11243
11250
  }
11244
- be();
11245
- }, Se = /* @__PURE__ */ f.createElement("textarea", {
11251
+ xe();
11252
+ }, Ce = /* @__PURE__ */ f.createElement("textarea", {
11246
11253
  id: I,
11247
11254
  name: e,
11248
11255
  ref: P,
11249
11256
  value: t,
11250
11257
  onChange: (e) => n(e.target.value),
11258
+ onPaste: ue,
11251
11259
  placeholder: r,
11252
11260
  className: j || Nd,
11253
11261
  style: { maxHeight: k },
11254
11262
  onKeyDown: (e) => {
11255
- e.key === "Enter" && !e.shiftKey && !e.nativeEvent.isComposing && !e.nativeEvent.defaultPrevented && (e.preventDefault(), xe());
11263
+ e.key === "Enter" && !e.shiftKey && !e.nativeEvent.isComposing && !e.nativeEvent.defaultPrevented && (e.preventDefault(), Se());
11256
11264
  }
11257
11265
  });
11258
11266
  return /* @__PURE__ */ f.createElement(Z, { className: A || M.Prompt.wrapperClassName }, /* @__PURE__ */ f.createElement("div", {
11259
11267
  className: `group relative rounded-xl border shadow-sm transition-shadow focus-within:shadow-md focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-0 ${z ? "border-primary ring-2 ring-primary" : "border-input"}`,
11260
- onDragEnter: ue,
11261
- onDragOver: de,
11262
- onDragLeave: fe,
11263
- onDrop: pe
11268
+ onDragEnter: de,
11269
+ onDragOver: fe,
11270
+ onDragLeave: pe,
11271
+ onDrop: me
11264
11272
  }, c && z && /* @__PURE__ */ f.createElement("div", { className: "pointer-events-none absolute inset-0 z-10 flex items-center justify-center rounded-xl bg-primary/5" }, /* @__PURE__ */ f.createElement("div", { className: "flex items-center gap-2 rounded-lg bg-background px-3 py-1.5 text-xs font-medium text-primary shadow" }, /* @__PURE__ */ f.createElement(Q, {
11265
11273
  name: "paperclip",
11266
11274
  size: 13
@@ -11282,19 +11290,19 @@ function Fd({ name: e, value: t, onChange: n, placeholder: r, running: i = !1, o
11282
11290
  }, /* @__PURE__ */ f.createElement(Q, {
11283
11291
  name: "x",
11284
11292
  size: 9
11285
- }))))), K && _e.length > 0 ? /* @__PURE__ */ f.createElement(Sd, {
11286
- trigger: K,
11287
- searchable: he,
11293
+ }))))), he && ve.length > 0 ? /* @__PURE__ */ f.createElement(Sd, {
11294
+ trigger: he,
11295
+ searchable: ge,
11288
11296
  onSelect: (e, t) => {
11289
- ve(e, t);
11297
+ ye(e, t);
11290
11298
  }
11291
- }, _e.map((e) => /* @__PURE__ */ f.createElement(Sd.Item, {
11299
+ }, ve.map((e) => /* @__PURE__ */ f.createElement(Sd.Item, {
11292
11300
  key: e.key,
11293
11301
  label: e.label,
11294
11302
  value: e.value,
11295
11303
  icon: e.icon,
11296
11304
  description: e.description
11297
- })), Se) : Se), c && /* @__PURE__ */ f.createElement("input", {
11305
+ })), Ce) : Ce), c && /* @__PURE__ */ f.createElement("input", {
11298
11306
  ref: F,
11299
11307
  type: "file",
11300
11308
  multiple: !0,
@@ -11333,7 +11341,7 @@ function Fd({ name: e, value: t, onChange: n, placeholder: r, running: i = !1, o
11333
11341
  }), e.showLabel && e.label && /* @__PURE__ */ f.createElement("span", { className: "whitespace-nowrap" }, e.label))), /* @__PURE__ */ f.createElement("div", { className: "mx-1 h-4 w-px shrink-0 bg-border" })), d.length > 0 && /* @__PURE__ */ f.createElement(la, {
11334
11342
  trigger: {
11335
11343
  icon: "cpu",
11336
- text: ye ?? h ?? N.defaultOption
11344
+ text: be ?? h ?? N.defaultOption
11337
11345
  },
11338
11346
  placement: "top",
11339
11347
  position: "start",
@@ -11408,7 +11416,7 @@ function Fd({ name: e, value: t, onChange: n, placeholder: r, running: i = !1, o
11408
11416
  className: "w-full cursor-pointer accent-primary"
11409
11417
  })))), /* @__PURE__ */ f.createElement("div", { className: "flex-1" }), /* @__PURE__ */ f.createElement("button", {
11410
11418
  type: "button",
11411
- onClick: xe,
11419
+ onClick: Se,
11412
11420
  disabled: i ? !a : o,
11413
11421
  title: H ? N.stopping : i ? N.stop : N.run,
11414
11422
  "aria-label": H ? N.stopping : i ? N.stop : N.run,