@solibo/solibo-ui 1.0.26 → 1.0.29

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index18.css');const t=require("react/jsx-runtime"),u=require("../../classix-5H4IWnMA.cjs"),_="_header_ct7nd_1",m="_controls_ct7nd_67",j="_cta_ct7nd_94",b="_jumbo_ct7nd_143",e={header:_,controls:m,cta:j,"header-content":"_header-content_ct7nd_106",jumbo:b},x={default:e.default,jumbo:e.jumbo},f=({backButton:o,capitalize:r=!1,children:d,controls:s,cta:c,header:l,subHeader:i,variant:h="default"})=>{const n=t.jsxs("div",{className:e["header-content"],children:[o,l,i]}),a=s?t.jsxs("div",{className:e.controls,children:[n,s]}):n;return t.jsxs("header",{className:u.t(e.header,x[h],r&&e.capitalize),"data-component":"header",children:[c?t.jsxs("div",{className:e.cta,children:[a,c]}):a,d]})};exports.Header=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index18.css');const t=require("react/jsx-runtime"),u=require("../../classix-5H4IWnMA.cjs"),_="_header_o4nix_1",m="_controls_o4nix_62",j="_cta_o4nix_89",x="_jumbo_o4nix_138",e={header:_,controls:m,cta:j,"header-content":"_header-content_o4nix_101",jumbo:x},b={default:e.default,jumbo:e.jumbo},f=({backButton:c,capitalize:r=!1,children:d,controls:s,cta:n,header:i,subHeader:l,variant:h="default"})=>{const o=t.jsxs("div",{className:e["header-content"],children:[c,i,l]}),a=s?t.jsxs("div",{className:e.controls,children:[o,s]}):o;return t.jsxs("header",{className:u.t(e.header,b[h],r&&e.capitalize),"data-component":"header",children:[n?t.jsxs("div",{className:e.cta,children:[a,n]}):a,d]})};exports.Header=f;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,41 +1,41 @@
1
- import { jsxs as t } from "react/jsx-runtime";
2
- import { t as _ } from "../../classix-DG18itHa.js";
3
- import '../../assets/index18.css';const i = "_header_ct7nd_1", u = "_controls_ct7nd_67", f = "_cta_ct7nd_94", j = "_jumbo_ct7nd_143", e = {
4
- header: i,
1
+ import { jsxs as o } from "react/jsx-runtime";
2
+ import { t as m } from "../../classix-DG18itHa.js";
3
+ import '../../assets/index18.css';const _ = "_header_o4nix_1", u = "_controls_o4nix_62", x = "_cta_o4nix_89", f = "_jumbo_o4nix_138", e = {
4
+ header: _,
5
5
  controls: u,
6
- cta: f,
7
- "header-content": "_header-content_ct7nd_106",
8
- jumbo: j
9
- }, b = {
6
+ cta: x,
7
+ "header-content": "_header-content_o4nix_101",
8
+ jumbo: f
9
+ }, j = {
10
10
  default: e.default,
11
11
  jumbo: e.jumbo
12
- }, N = ({
13
- backButton: d,
14
- capitalize: r = !1,
15
- children: s,
16
- controls: a,
17
- cta: c,
12
+ }, v = ({
13
+ backButton: r,
14
+ capitalize: s = !1,
15
+ children: d,
16
+ controls: t,
17
+ cta: a,
18
18
  header: l,
19
- subHeader: h,
20
- variant: m = "default"
19
+ subHeader: i,
20
+ variant: h = "default"
21
21
  }) => {
22
- const n = /* @__PURE__ */ t("div", { className: e["header-content"], children: [
23
- d,
22
+ const n = /* @__PURE__ */ o("div", { className: e["header-content"], children: [
23
+ r,
24
24
  l,
25
- h
26
- ] }), o = a ? /* @__PURE__ */ t("div", { className: e.controls, children: [
25
+ i
26
+ ] }), c = t ? /* @__PURE__ */ o("div", { className: e.controls, children: [
27
27
  n,
28
- a
28
+ t
29
29
  ] }) : n;
30
- return /* @__PURE__ */ t("header", { className: _(e.header, b[m], r && e.capitalize), "data-component": "header", children: [
31
- c ? /* @__PURE__ */ t("div", { className: e.cta, children: [
32
- o,
33
- c
34
- ] }) : o,
35
- s
30
+ return /* @__PURE__ */ o("header", { className: m(e.header, j[h], s && e.capitalize), "data-component": "header", children: [
31
+ a ? /* @__PURE__ */ o("div", { className: e.cta, children: [
32
+ c,
33
+ a
34
+ ] }) : c,
35
+ d
36
36
  ] });
37
37
  };
38
38
  export {
39
- N as Header
39
+ v as Header
40
40
  };
41
41
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index47.css');const i=require("react/jsx-runtime"),g=require("../../classix-5H4IWnMA.cjs"),l=require("react");function d(t){return l.isValidElement(t)&&t.type===l.Fragment}function E(t,e=[]){return l.Children.forEach(t,n=>{d(n)?E(n.props.children,e):e.push(n)}),e}function x(t,{wrapper:e="li"}={}){return E(t).filter(s=>s!==null).map((s,r)=>{if(l.isValidElement(s)&&s.type===e)return s;const c=l.isValidElement(s)&&s.key!=null?s.key:r;return l.createElement(e,{key:c},s)})}const z="_controls_17ti2_1",F="_horizontal_17ti2_6",V="_list_17ti2_17",b="_columns_17ti2_57",k="_compact_17ti2_68",o={controls:z,horizontal:F,list:V,columns:b,compact:k},j=(t,e)=>{typeof t=="function"?t(e):t&&(t.current=e)};function q({children:t,className:e,columns:n=1,compact:u=!1,controls:s,horizontal:r,ordered:c,ref:m,style:N,...f}){const _=Number.isFinite(n)?Math.max(1,Math.floor(n)):1,y=g.t(e,o.list,_>1&&o.columns,r&&o.horizontal,u&&o.compact),p={...N,"--list-columns":_},h=c?i.jsx("ol",{className:y,ref:a=>j(m,a),style:p,...f,children:x(t)}):i.jsx("ul",{className:y,ref:a=>j(m,a),style:p,...f,children:x(t)});return s==null?h:i.jsxs(i.Fragment,{children:[i.jsx("div",{className:o.controls,children:s}),h]})}exports.List=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index47.css');const r=require("react/jsx-runtime"),N=require("../../classix-5H4IWnMA.cjs"),l=require("react");function d(t){return l.isValidElement(t)&&t.type===l.Fragment}function j(t,s=[]){return l.Children.forEach(t,e=>{d(e)?j(e.props.children,s):s.push(e)}),s}function h(t,{wrapper:s="li"}={}){return j(t).filter(n=>n!==null).map((n,i)=>{if(l.isValidElement(n)&&n.type===s)return n;const c=l.isValidElement(n)&&n.key!=null?n.key:i;return l.createElement(s,{key:c},n)})}const z="_controls_n79gr_1",F="_horizontal_n79gr_6",V="_list_n79gr_17",b="_columns_n79gr_57",k="_compact_n79gr_72",o={controls:z,horizontal:F,list:V,columns:b,compact:k},x=(t,s)=>{typeof t=="function"?t(s):t&&(t.current=s)};function q({children:t,className:s,columns:e=1,compact:u=!1,controls:n,horizontal:i,ordered:c,ref:m,style:E,...f}){const _=Number.isFinite(e)?Math.max(1,Math.floor(e)):1,y=N.t(s,o.list,_>1&&o.columns,i&&o.horizontal,u&&o.compact),g={...E,"--list-columns":_},p=c?r.jsx("ol",{className:y,ref:a=>x(m,a),style:g,...f,children:h(t)}):r.jsx("ul",{className:y,ref:a=>x(m,a),style:g,...f,children:h(t)});return n==null?p:r.jsxs(r.Fragment,{children:[r.jsx("div",{className:o.controls,children:n}),p]})}exports.List=q;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,33 +1,33 @@
1
- import { jsx as a, jsxs as F, Fragment as V } from "react/jsx-runtime";
2
- import { t as d } from "../../classix-DG18itHa.js";
1
+ import { jsx as a, jsxs as z, Fragment as F } from "react/jsx-runtime";
2
+ import { t as V } from "../../classix-DG18itHa.js";
3
3
  import e from "react";
4
- import '../../assets/index47.css';function g(t) {
4
+ import '../../assets/index47.css';function d(t) {
5
5
  return e.isValidElement(t) && t.type === e.Fragment;
6
6
  }
7
- function x(t, s = []) {
7
+ function N(t, s = []) {
8
8
  return e.Children.forEach(t, (l) => {
9
- g(l) ? x(l.props.children, s) : s.push(l);
9
+ d(l) ? N(l.props.children, s) : s.push(l);
10
10
  }), s;
11
11
  }
12
- function E(t, {
12
+ function h(t, {
13
13
  wrapper: s = "li"
14
14
  } = {}) {
15
- return x(t).filter((n) => n !== null).map((n, i) => {
15
+ return N(t).filter((n) => n !== null).map((n, r) => {
16
16
  if (e.isValidElement(n) && n.type === s)
17
17
  return n;
18
- const r = e.isValidElement(n) && n.key != null ? n.key : i;
18
+ const i = e.isValidElement(n) && n.key != null ? n.key : r;
19
19
  return e.createElement(s, {
20
- key: r
20
+ key: i
21
21
  }, n);
22
22
  });
23
23
  }
24
- const k = "_controls_17ti2_1", C = "_horizontal_17ti2_6", j = "_list_17ti2_17", v = "_columns_17ti2_57", L = "_compact_17ti2_68", o = {
24
+ const k = "_controls_n79gr_1", C = "_horizontal_n79gr_6", j = "_list_n79gr_17", v = "_columns_n79gr_57", L = "_compact_n79gr_72", o = {
25
25
  controls: k,
26
26
  horizontal: C,
27
27
  list: j,
28
28
  columns: v,
29
29
  compact: L
30
- }, N = (t, s) => {
30
+ }, E = (t, s) => {
31
31
  typeof t == "function" ? t(s) : t && (t.current = s);
32
32
  };
33
33
  function w({
@@ -36,19 +36,19 @@ function w({
36
36
  columns: l = 1,
37
37
  compact: m = !1,
38
38
  controls: n,
39
- horizontal: i,
40
- ordered: r,
39
+ horizontal: r,
40
+ ordered: i,
41
41
  ref: u,
42
- style: z,
42
+ style: x,
43
43
  ...f
44
44
  }) {
45
- const _ = Number.isFinite(l) ? Math.max(1, Math.floor(l)) : 1, p = d(s, o.list, _ > 1 && o.columns, i && o.horizontal, m && o.compact), y = {
46
- ...z,
45
+ const _ = Number.isFinite(l) ? Math.max(1, Math.floor(l)) : 1, p = V(s, o.list, _ > 1 && o.columns, r && o.horizontal, m && o.compact), y = {
46
+ ...x,
47
47
  "--list-columns": _
48
- }, h = r ? /* @__PURE__ */ a("ol", { className: p, ref: (c) => N(u, c), style: y, ...f, children: E(t) }) : /* @__PURE__ */ a("ul", { className: p, ref: (c) => N(u, c), style: y, ...f, children: E(t) });
49
- return n == null ? h : /* @__PURE__ */ F(V, { children: [
48
+ }, g = i ? /* @__PURE__ */ a("ol", { className: p, ref: (c) => E(u, c), style: y, ...f, children: h(t) }) : /* @__PURE__ */ a("ul", { className: p, ref: (c) => E(u, c), style: y, ...f, children: h(t) });
49
+ return n == null ? g : /* @__PURE__ */ z(F, { children: [
50
50
  /* @__PURE__ */ a("div", { className: o.controls, children: n }),
51
- h
51
+ g
52
52
  ] });
53
53
  }
54
54
  export {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index15.css');const e=require("react/jsx-runtime"),v=require("../../classix-5H4IWnMA.cjs"),j=require("../avatar/index.cjs"),h=require("../icon/index.cjs"),f="_attachments_opxtp_1",w="_message_opxtp_11",S="_timestamp_opxtp_125",b="_preview_opxtp_130",t={attachments:f,"message-group":"_message-group_opxtp_11",message:w,timestamp:S,preview:b},q=({appearance:c="default",attachments:i,author:a,authorColor:r,authorImageUrl:l,authorRole:p,content:d,iconName:g="info",id:_,preview:x,timestamp:m,timestampText:u,type:s="default"})=>{const n=m?new Date(m):void 0,o=n?e.jsx("time",{className:t.timestamp,dateTime:n.toISOString(),children:u??n.toLocaleString()}):null;return e.jsxs("div",{className:t["message-group"],"data-message-type":s,"data-component":"message",children:[a&&e.jsx(j.Avatar,{accessibleLabel:a,color:r,imageUrl:l,name:a,role:p}),s==="system"&&o,e.jsxs("div",{className:v.t(t.message,x&&t.preview),"data-appearance":c,"data-id":_,"data-type":s,children:[s=="system"&&e.jsx(h.Icon,{fill:!0,gap:"right",name:g}),d]}),i&&e.jsx("div",{className:t.attachments,children:i}),s!=="system"&&o]})};exports.Message=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index15.css');const e=require("react/jsx-runtime"),x=require("../../classix-5H4IWnMA.cjs"),b=require("../avatar/index.cjs"),y=require("../icon/index.cjs"),j="_attachments_pb8yr_1",h="_message_pb8yr_11",f="_timestamp_pb8yr_138",w="_preview_pb8yr_143",t={attachments:j,"message-group":"_message-group_pb8yr_11",message:h,timestamp:f,preview:w},S=({appearance:c="default",attachments:i,author:a,authorColor:o,authorImageUrl:l,authorRole:d,content:g,iconName:p="info",id:_,preview:u,timestamp:m,timestampText:v,type:s="default"})=>{const n=m?new Date(m):void 0,r=n?e.jsx("time",{className:t.timestamp,dateTime:n.toISOString(),children:v??n.toLocaleString()}):null;return e.jsxs("div",{className:t["message-group"],"data-message-type":s,"data-component":"message",children:[a&&e.jsx(b.Avatar,{accessibleLabel:a,color:o,imageUrl:l,name:a,role:d}),s==="system"&&r,e.jsxs("div",{className:x.t(t.message,u&&t.preview),"data-appearance":c,"data-id":_,"data-type":s,children:[s=="system"&&e.jsx(y.Icon,{fill:!0,gap:"right",name:p}),g]}),i&&e.jsx("div",{className:t.attachments,children:i}),s!=="system"&&r]})};exports.Message=S;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,18 +1,18 @@
1
- import { jsx as s, jsxs as n } from "react/jsx-runtime";
2
- import { t as h } from "../../classix-DG18itHa.js";
3
- import { Avatar as u } from "../avatar/index.js";
4
- import { Icon as w } from "../icon/index.js";
5
- import '../../assets/index15.css';const N = "_attachments_opxtp_1", S = "_message_opxtp_11", b = "_timestamp_opxtp_125", j = "_preview_opxtp_130", t = {
6
- attachments: N,
7
- "message-group": "_message-group_opxtp_11",
8
- message: S,
9
- timestamp: b,
10
- preview: j
1
+ import { jsx as a, jsxs as n } from "react/jsx-runtime";
2
+ import { t as y } from "../../classix-DG18itHa.js";
3
+ import { Avatar as h } from "../avatar/index.js";
4
+ import { Icon as u } from "../icon/index.js";
5
+ import '../../assets/index15.css';const w = "_attachments_pb8yr_1", N = "_message_pb8yr_11", x = "_timestamp_pb8yr_138", S = "_preview_pb8yr_143", s = {
6
+ attachments: w,
7
+ "message-group": "_message-group_pb8yr_11",
8
+ message: N,
9
+ timestamp: x,
10
+ preview: S
11
11
  }, D = ({
12
- appearance: p = "default",
13
- attachments: o,
14
- author: a,
15
- authorColor: c,
12
+ appearance: c = "default",
13
+ attachments: r,
14
+ author: t,
15
+ authorColor: p,
16
16
  authorImageUrl: l,
17
17
  authorRole: d,
18
18
  content: g,
@@ -20,19 +20,19 @@ import '../../assets/index15.css';const N = "_attachments_opxtp_1", S = "_messag
20
20
  id: v,
21
21
  preview: f,
22
22
  timestamp: i,
23
- timestampText: x,
23
+ timestampText: b,
24
24
  type: e = "default"
25
25
  }) => {
26
- const m = i ? new Date(i) : void 0, r = m ? /* @__PURE__ */ s("time", { className: t.timestamp, dateTime: m.toISOString(), children: x ?? m.toLocaleString() }) : null;
27
- return /* @__PURE__ */ n("div", { className: t["message-group"], "data-message-type": e, "data-component": "message", children: [
28
- a && /* @__PURE__ */ s(u, { accessibleLabel: a, color: c, imageUrl: l, name: a, role: d }),
29
- e === "system" && r,
30
- /* @__PURE__ */ n("div", { className: h(t.message, f && t.preview), "data-appearance": p, "data-id": v, "data-type": e, children: [
31
- e == "system" && /* @__PURE__ */ s(w, { fill: !0, gap: "right", name: _ }),
26
+ const m = i ? new Date(i) : void 0, o = m ? /* @__PURE__ */ a("time", { className: s.timestamp, dateTime: m.toISOString(), children: b ?? m.toLocaleString() }) : null;
27
+ return /* @__PURE__ */ n("div", { className: s["message-group"], "data-message-type": e, "data-component": "message", children: [
28
+ t && /* @__PURE__ */ a(h, { accessibleLabel: t, color: p, imageUrl: l, name: t, role: d }),
29
+ e === "system" && o,
30
+ /* @__PURE__ */ n("div", { className: y(s.message, f && s.preview), "data-appearance": c, "data-id": v, "data-type": e, children: [
31
+ e == "system" && /* @__PURE__ */ a(u, { fill: !0, gap: "right", name: _ }),
32
32
  g
33
33
  ] }),
34
- o && /* @__PURE__ */ s("div", { className: t.attachments, children: o }),
35
- e !== "system" && r
34
+ r && /* @__PURE__ */ a("div", { className: s.attachments, children: r }),
35
+ e !== "system" && o
36
36
  ] });
37
37
  };
38
38
  export {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index13.css');const s=require("react/jsx-runtime"),S=require("../../classix-5H4IWnMA.cjs"),o=require("react"),h=require("../editor/index.cjs"),w=require("../list/index.cjs"),E=require("../tooltip/index.cjs"),I=require("../message/index.cjs"),L="_messages_pqp89_1",T="_fill_pqp89_20",p={messages:L,fill:T},H=({fill:g=!1,files:i,handleUpload:f,maxEditorRows:_=5,message:r="",messages:t,minEditorRows:q=1,onChange:x,onFilesChange:n,onSubmit:j,placeholder:y,sending:R,tooltipLabel:c})=>{var d;const a=o.useRef(null),[b,v]=o.useState([]),l=i??b,u=(d=t[t.length-1])==null?void 0:d.id,M=r.replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").trim()==="";return o.useLayoutEffect(()=>{var m;const e=(m=a.current)==null?void 0:m.querySelector("[data-message-list]");!e||u===void 0||(e.scrollTop=e.scrollHeight)},[u]),s.jsxs("div",{className:S.t(p.messages,g&&p.fill),"data-component":"messages",ref:a,children:[s.jsx(w.List,{"data-message-list":!0,children:t.map(e=>s.jsx(I.Message,{...e},e.id))}),c&&s.jsx(E.Tooltip,{variant:"static",children:c}),s.jsx(h.Editor,{autofocus:!0,content:r,disabled:R||M&&l.length===0,files:l,maxRows:_,minRows:q,onChange:x,onFilesChange:e=>{i===void 0&&v(e),n==null||n(e)},onSubmit:j,onUpload:f,placeholder:y,submitLabel:"Send message"})]})};exports.Messages=H;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index13.css');const s=require("react/jsx-runtime"),w=require("../../classix-5H4IWnMA.cjs"),c=require("react"),E=require("../editor/index.cjs"),L=require("../list/index.cjs"),T=require("../tooltip/index.cjs"),H=require("../message/index.cjs"),N="_messages_pqp89_1",O="_fill_pqp89_20",f={messages:N,fill:O},P=({fill:_=!1,files:n,handleUpload:g,inlineImages:t,maxEditorRows:q=5,message:i="",messages:o,minEditorRows:x=1,onChange:j,onFilesChange:r,onInlineImagesChange:y,onSubmit:R,placeholder:b,sending:v,tooltipLabel:l})=>{var p;const a=c.useRef(null),[M,S]=c.useState([]),u=n??M,d=(p=o[o.length-1])==null?void 0:p.id,h=i.replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").trim()==="";return c.useLayoutEffect(()=>{var m;const e=(m=a.current)==null?void 0:m.querySelector("[data-message-list]");!e||d===void 0||(e.scrollTop=e.scrollHeight)},[d]),s.jsxs("div",{className:w.t(f.messages,_&&f.fill),"data-component":"messages",ref:a,children:[s.jsx(L.List,{"data-message-list":!0,children:o.map(e=>s.jsx(H.Message,{...e},e.id))}),l&&s.jsx(T.Tooltip,{variant:"static",children:l}),s.jsx(E.Editor,{autofocus:!0,content:i,disabled:v||h&&u.length===0&&!(t!=null&&t.length),files:u,inlineImages:t,maxRows:q,minRows:x,onChange:j,onFilesChange:e=>{n===void 0&&S(e),r==null||r(e)},onInlineImagesChange:y,onSubmit:R,onUpload:g,placeholder:b,submitLabel:"Send message"})]})};exports.Messages=P;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/messages/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nimport { Editor } from '@/components/editor';\nimport { List } from '@/components/list';\nimport { Tooltip } from '@/components/tooltip';\n\nimport { Message, type MessageOptions } from '../message';\nimport styles from './styles.module.css';\n\nexport type MessageItem = MessageOptions;\n\nexport type MessagesProps = {\n fill?: boolean;\n files?: readonly File[];\n handleUpload: (files: FileList) => Promise<void> | void;\n maxEditorRows?: number;\n message: string;\n messages: MessageItem[];\n minEditorRows?: number;\n onChange: (content: string) => void;\n onFilesChange?: (files: File[]) => void;\n onSubmit: () => Promise<void> | void;\n placeholder?: string;\n sending: boolean;\n tooltipLabel?: string;\n};\n\nexport const Messages = ({\n fill = false,\n files,\n handleUpload,\n maxEditorRows = 5,\n message = '',\n messages,\n minEditorRows = 1,\n onChange,\n onFilesChange,\n onSubmit,\n placeholder,\n sending,\n tooltipLabel,\n}: MessagesProps) => {\n const messagesRef = useRef<HTMLDivElement>(null);\n const [internalFiles, setInternalFiles] = useState<File[]>([]);\n const queuedFiles = files ?? internalFiles;\n const newestMessageId = messages[messages.length - 1]?.id;\n const messageIsEmpty =\n message\n .replace(/<[^>]*>/g, '')\n .replace(/&nbsp;/g, ' ')\n .trim() === '';\n\n useLayoutEffect(() => {\n const messageList = messagesRef.current?.querySelector<HTMLElement>('[data-message-list]');\n if (!messageList || newestMessageId === undefined) return;\n\n messageList.scrollTop = messageList.scrollHeight;\n }, [newestMessageId]);\n\n return (\n <div\n className={cx(styles.messages, fill && styles.fill)}\n data-component='messages'\n ref={messagesRef}\n >\n <List data-message-list>\n {messages.map((message) => (\n <Message\n key={message.id}\n {...message}\n />\n ))}\n </List>\n {tooltipLabel && <Tooltip variant='static'>{tooltipLabel}</Tooltip>}\n <Editor\n autofocus\n content={message}\n disabled={sending || (messageIsEmpty && queuedFiles.length === 0)}\n files={queuedFiles}\n maxRows={maxEditorRows}\n minRows={minEditorRows}\n onChange={onChange}\n onFilesChange={(nextFiles) => {\n if (files === undefined) setInternalFiles(nextFiles);\n onFilesChange?.(nextFiles);\n }}\n onSubmit={onSubmit}\n onUpload={handleUpload}\n placeholder={placeholder}\n submitLabel='Send message'\n />\n </div>\n );\n};\n"],"names":["Messages","fill","files","handleUpload","maxEditorRows","message","messages","minEditorRows","onChange","onFilesChange","onSubmit","placeholder","sending","tooltipLabel","messagesRef","useRef","internalFiles","setInternalFiles","useState","queuedFiles","newestMessageId","length","id","messageIsEmpty","replace","trim","useLayoutEffect","messageList","current","querySelector","undefined","scrollTop","scrollHeight","jsxs","cx","styles","jsx","List","map","Message","Tooltip","Editor","nextFiles"],"mappings":"mXA4BaA,EAAWA,CAAC,CACvBC,KAAAA,EAAO,GACPC,MAAAA,EACAC,aAAAA,EACAC,cAAAA,EAAgB,EAChBC,QAAAA,EAAU,GACVC,SAAAA,EACAC,cAAAA,EAAgB,EAChBC,SAAAA,EACAC,cAAAA,EACAC,SAAAA,EACAC,YAAAA,EACAC,QAAAA,EACAC,aAAAA,CACa,IAAM,OACnB,MAAMC,EAAcC,EAAAA,OAAuB,IAAI,EACzC,CAACC,EAAeC,CAAgB,EAAIC,EAAAA,SAAiB,CAAA,CAAE,EACvDC,EAAcjB,GAASc,EACvBI,GAAkBd,EAAAA,EAASA,EAASe,OAAS,CAAC,IAA5Bf,YAAAA,EAA+BgB,GACjDC,EACJlB,EACGmB,QAAQ,WAAY,EAAE,EACtBA,QAAQ,UAAW,GAAG,EACtBC,KAAAA,IAAW,GAEhBC,OAAAA,EAAAA,gBAAgB,IAAM,OACpB,MAAMC,GAAcb,EAAAA,EAAYc,UAAZd,YAAAA,EAAqBe,cAA2B,uBAChE,CAACF,GAAeP,IAAoBU,SAExCH,EAAYI,UAAYJ,EAAYK,aACtC,EAAG,CAACZ,CAAe,CAAC,EAGlBa,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,EAAGC,EAAO7B,SAAUL,GAAQkC,EAAOlC,IAAI,EAClD,iBAAe,WACf,IAAKa,EAEL,SAAA,CAAAsB,EAAAA,IAACC,EAAAA,KAAA,CAAK,oBAAiB,GACpB/B,SAAAA,EAASgC,IAAKjC,GACb+B,EAAAA,IAACG,EAAAA,QAAA,CAEC,GAAIlC,CAAAA,EADCA,EAAQiB,EACD,CAEf,EACH,EACCT,GAAgBuB,EAAAA,IAACI,UAAA,CAAQ,QAAQ,SAAU3B,SAAAA,EAAa,EACzDuB,MAACK,EAAAA,QACC,UAAS,GACT,QAASpC,EACT,SAAUO,GAAYW,GAAkBJ,EAAYE,SAAW,EAC/D,MAAOF,EACP,QAASf,EACT,QAASG,EACT,SAAAC,EACA,cAAgBkC,GAAc,CACxBxC,IAAU4B,QAAWb,EAAiByB,CAAS,EACnDjC,GAAAA,MAAAA,EAAgBiC,EAClB,EACA,SAAAhC,EACA,SAAUP,EACV,YAAAQ,EACA,YAAY,cAAA,CAAc,CAAA,EAE9B,CAEJ"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/messages/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nimport { Editor, type PendingInlineImage } from '@/components/editor';\nimport { List } from '@/components/list';\nimport { Tooltip } from '@/components/tooltip';\n\nimport { Message, type MessageOptions } from '../message';\nimport styles from './styles.module.css';\n\nexport type MessageItem = MessageOptions;\n\nexport type MessagesProps = {\n fill?: boolean;\n files?: readonly File[];\n handleUpload: (files: FileList) => Promise<void> | void;\n inlineImages?: readonly PendingInlineImage[];\n maxEditorRows?: number;\n message: string;\n messages: MessageItem[];\n minEditorRows?: number;\n onChange: (content: string) => void;\n onFilesChange?: (files: File[]) => void;\n onInlineImagesChange?: (images: PendingInlineImage[]) => void;\n onSubmit: () => Promise<void> | void;\n placeholder?: string;\n sending: boolean;\n tooltipLabel?: string;\n};\n\nexport const Messages = ({\n fill = false,\n files,\n handleUpload,\n inlineImages,\n maxEditorRows = 5,\n message = '',\n messages,\n minEditorRows = 1,\n onChange,\n onFilesChange,\n onInlineImagesChange,\n onSubmit,\n placeholder,\n sending,\n tooltipLabel,\n}: MessagesProps) => {\n const messagesRef = useRef<HTMLDivElement>(null);\n const [internalFiles, setInternalFiles] = useState<File[]>([]);\n const queuedFiles = files ?? internalFiles;\n const newestMessageId = messages[messages.length - 1]?.id;\n const messageIsEmpty =\n message\n .replace(/<[^>]*>/g, '')\n .replace(/&nbsp;/g, ' ')\n .trim() === '';\n\n useLayoutEffect(() => {\n const messageList = messagesRef.current?.querySelector<HTMLElement>('[data-message-list]');\n if (!messageList || newestMessageId === undefined) return;\n\n messageList.scrollTop = messageList.scrollHeight;\n }, [newestMessageId]);\n\n return (\n <div\n className={cx(styles.messages, fill && styles.fill)}\n data-component='messages'\n ref={messagesRef}\n >\n <List data-message-list>\n {messages.map((message) => (\n <Message\n key={message.id}\n {...message}\n />\n ))}\n </List>\n {tooltipLabel && <Tooltip variant='static'>{tooltipLabel}</Tooltip>}\n <Editor\n autofocus\n content={message}\n disabled={\n sending || (messageIsEmpty && queuedFiles.length === 0 && !inlineImages?.length)\n }\n files={queuedFiles}\n inlineImages={inlineImages}\n maxRows={maxEditorRows}\n minRows={minEditorRows}\n onChange={onChange}\n onFilesChange={(nextFiles) => {\n if (files === undefined) setInternalFiles(nextFiles);\n onFilesChange?.(nextFiles);\n }}\n onInlineImagesChange={onInlineImagesChange}\n onSubmit={onSubmit}\n onUpload={handleUpload}\n placeholder={placeholder}\n submitLabel='Send message'\n />\n </div>\n );\n};\n"],"names":["Messages","fill","files","handleUpload","inlineImages","maxEditorRows","message","messages","minEditorRows","onChange","onFilesChange","onInlineImagesChange","onSubmit","placeholder","sending","tooltipLabel","messagesRef","useRef","internalFiles","setInternalFiles","useState","queuedFiles","newestMessageId","length","id","messageIsEmpty","replace","trim","useLayoutEffect","messageList","current","querySelector","undefined","scrollTop","scrollHeight","jsxs","cx","styles","jsx","List","map","Message","Tooltip","Editor","nextFiles"],"mappings":"mXA8BaA,EAAWA,CAAC,CACvBC,KAAAA,EAAO,GACPC,MAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAC,cAAAA,EAAgB,EAChBC,QAAAA,EAAU,GACVC,SAAAA,EACAC,cAAAA,EAAgB,EAChBC,SAAAA,EACAC,cAAAA,EACAC,qBAAAA,EACAC,SAAAA,EACAC,YAAAA,EACAC,QAAAA,EACAC,aAAAA,CACa,IAAM,OACnB,MAAMC,EAAcC,EAAAA,OAAuB,IAAI,EACzC,CAACC,EAAeC,CAAgB,EAAIC,EAAAA,SAAiB,CAAA,CAAE,EACvDC,EAAcnB,GAASgB,EACvBI,GAAkBf,EAAAA,EAASA,EAASgB,OAAS,CAAC,IAA5BhB,YAAAA,EAA+BiB,GACjDC,EACJnB,EACGoB,QAAQ,WAAY,EAAE,EACtBA,QAAQ,UAAW,GAAG,EACtBC,KAAAA,IAAW,GAEhBC,OAAAA,EAAAA,gBAAgB,IAAM,OACpB,MAAMC,GAAcb,EAAAA,EAAYc,UAAZd,YAAAA,EAAqBe,cAA2B,uBAChE,CAACF,GAAeP,IAAoBU,SAExCH,EAAYI,UAAYJ,EAAYK,aACtC,EAAG,CAACZ,CAAe,CAAC,EAGlBa,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,EAAGC,EAAO9B,SAAUN,GAAQoC,EAAOpC,IAAI,EAClD,iBAAe,WACf,IAAKe,EAEL,SAAA,CAAAsB,EAAAA,IAACC,EAAAA,KAAA,CAAK,oBAAiB,GACpBhC,SAAAA,EAASiC,IAAKlC,GACbgC,EAAAA,IAACG,EAAAA,QAAA,CAEC,GAAInC,CAAAA,EADCA,EAAQkB,EACD,CAEf,EACH,EACCT,GAAgBuB,EAAAA,IAACI,UAAA,CAAQ,QAAQ,SAAU3B,SAAAA,EAAa,EACzDuB,EAAAA,IAACK,EAAAA,OAAA,CACC,UAAS,GACT,QAASrC,EACT,SACEQ,GAAYW,GAAkBJ,EAAYE,SAAW,GAAK,EAACnB,GAAAA,MAAAA,EAAcmB,QAE3E,MAAOF,EACP,aAAAjB,EACA,QAASC,EACT,QAASG,EACT,SAAAC,EACA,cAAgBmC,GAAc,CACxB1C,IAAU8B,QAAWb,EAAiByB,CAAS,EACnDlC,GAAAA,MAAAA,EAAgBkC,EAClB,EACA,qBAAAjC,EACA,SAAAC,EACA,SAAUT,EACV,YAAAU,EACA,YAAY,cAAA,CAAc,CAAA,EAE9B,CAEJ"}
@@ -1,43 +1,45 @@
1
- import { jsxs as x, jsx as e } from "react/jsx-runtime";
2
- import { t as E } from "../../classix-DG18itHa.js";
3
- import { useRef as I, useState as L, useLayoutEffect as M } from "react";
4
- import { Editor as S } from "../editor/index.js";
5
- import { List as j } from "../list/index.js";
6
- import { Tooltip as T } from "../tooltip/index.js";
7
- import { Message as H } from "../message/index.js";
8
- import '../../assets/index13.css';const N = "_messages_pqp89_1", U = "_fill_pqp89_20", p = {
9
- messages: N,
10
- fill: U
11
- }, K = ({
12
- fill: d = !1,
13
- files: r,
14
- handleUpload: u,
15
- maxEditorRows: g = 5,
16
- message: i = "",
17
- messages: t,
18
- minEditorRows: _ = 1,
1
+ import { jsxs as L, jsx as e } from "react/jsx-runtime";
2
+ import { t as M } from "../../classix-DG18itHa.js";
3
+ import { useRef as S, useState as j, useLayoutEffect as T } from "react";
4
+ import { Editor as H } from "../editor/index.js";
5
+ import { List as N } from "../list/index.js";
6
+ import { Tooltip as U } from "../tooltip/index.js";
7
+ import { Message as k } from "../message/index.js";
8
+ import '../../assets/index13.css';const z = "_messages_pqp89_1", A = "_fill_pqp89_20", n = {
9
+ messages: z,
10
+ fill: A
11
+ }, Q = ({
12
+ fill: u = !1,
13
+ files: l,
14
+ handleUpload: g,
15
+ inlineImages: t,
16
+ maxEditorRows: _ = 5,
17
+ message: a = "",
18
+ messages: o,
19
+ minEditorRows: h = 1,
19
20
  onChange: q,
20
- onFilesChange: o,
21
- onSubmit: v,
22
- placeholder: y,
23
- sending: R,
24
- tooltipLabel: a
21
+ onFilesChange: r,
22
+ onInlineImagesChange: v,
23
+ onSubmit: y,
24
+ placeholder: R,
25
+ sending: b,
26
+ tooltipLabel: c
25
27
  }) => {
26
- var c;
27
- const l = I(null), [b, h] = L([]), m = r ?? b, n = (c = t[t.length - 1]) == null ? void 0 : c.id, w = i.replace(/<[^>]*>/g, "").replace(/&nbsp;/g, " ").trim() === "";
28
- return M(() => {
29
- var f;
30
- const s = (f = l.current) == null ? void 0 : f.querySelector("[data-message-list]");
31
- !s || n === void 0 || (s.scrollTop = s.scrollHeight);
32
- }, [n]), /* @__PURE__ */ x("div", { className: E(p.messages, d && p.fill), "data-component": "messages", ref: l, children: [
33
- /* @__PURE__ */ e(j, { "data-message-list": !0, children: t.map((s) => /* @__PURE__ */ e(H, { ...s }, s.id)) }),
34
- a && /* @__PURE__ */ e(T, { variant: "static", children: a }),
35
- /* @__PURE__ */ e(S, { autofocus: !0, content: i, disabled: R || w && m.length === 0, files: m, maxRows: g, minRows: _, onChange: q, onFilesChange: (s) => {
36
- r === void 0 && h(s), o == null || o(s);
37
- }, onSubmit: v, onUpload: u, placeholder: y, submitLabel: "Send message" })
28
+ var p;
29
+ const m = S(null), [w, x] = j([]), i = l ?? w, f = (p = o[o.length - 1]) == null ? void 0 : p.id, E = a.replace(/<[^>]*>/g, "").replace(/&nbsp;/g, " ").trim() === "";
30
+ return T(() => {
31
+ var d;
32
+ const s = (d = m.current) == null ? void 0 : d.querySelector("[data-message-list]");
33
+ !s || f === void 0 || (s.scrollTop = s.scrollHeight);
34
+ }, [f]), /* @__PURE__ */ L("div", { className: M(n.messages, u && n.fill), "data-component": "messages", ref: m, children: [
35
+ /* @__PURE__ */ e(N, { "data-message-list": !0, children: o.map((s) => /* @__PURE__ */ e(k, { ...s }, s.id)) }),
36
+ c && /* @__PURE__ */ e(U, { variant: "static", children: c }),
37
+ /* @__PURE__ */ e(H, { autofocus: !0, content: a, disabled: b || E && i.length === 0 && !(t != null && t.length), files: i, inlineImages: t, maxRows: _, minRows: h, onChange: q, onFilesChange: (s) => {
38
+ l === void 0 && x(s), r == null || r(s);
39
+ }, onInlineImagesChange: v, onSubmit: y, onUpload: g, placeholder: R, submitLabel: "Send message" })
38
40
  ] });
39
41
  };
40
42
  export {
41
- K as Messages
43
+ Q as Messages
42
44
  };
43
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/messages/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nimport { Editor } from '@/components/editor';\nimport { List } from '@/components/list';\nimport { Tooltip } from '@/components/tooltip';\n\nimport { Message, type MessageOptions } from '../message';\nimport styles from './styles.module.css';\n\nexport type MessageItem = MessageOptions;\n\nexport type MessagesProps = {\n fill?: boolean;\n files?: readonly File[];\n handleUpload: (files: FileList) => Promise<void> | void;\n maxEditorRows?: number;\n message: string;\n messages: MessageItem[];\n minEditorRows?: number;\n onChange: (content: string) => void;\n onFilesChange?: (files: File[]) => void;\n onSubmit: () => Promise<void> | void;\n placeholder?: string;\n sending: boolean;\n tooltipLabel?: string;\n};\n\nexport const Messages = ({\n fill = false,\n files,\n handleUpload,\n maxEditorRows = 5,\n message = '',\n messages,\n minEditorRows = 1,\n onChange,\n onFilesChange,\n onSubmit,\n placeholder,\n sending,\n tooltipLabel,\n}: MessagesProps) => {\n const messagesRef = useRef<HTMLDivElement>(null);\n const [internalFiles, setInternalFiles] = useState<File[]>([]);\n const queuedFiles = files ?? internalFiles;\n const newestMessageId = messages[messages.length - 1]?.id;\n const messageIsEmpty =\n message\n .replace(/<[^>]*>/g, '')\n .replace(/&nbsp;/g, ' ')\n .trim() === '';\n\n useLayoutEffect(() => {\n const messageList = messagesRef.current?.querySelector<HTMLElement>('[data-message-list]');\n if (!messageList || newestMessageId === undefined) return;\n\n messageList.scrollTop = messageList.scrollHeight;\n }, [newestMessageId]);\n\n return (\n <div\n className={cx(styles.messages, fill && styles.fill)}\n data-component='messages'\n ref={messagesRef}\n >\n <List data-message-list>\n {messages.map((message) => (\n <Message\n key={message.id}\n {...message}\n />\n ))}\n </List>\n {tooltipLabel && <Tooltip variant='static'>{tooltipLabel}</Tooltip>}\n <Editor\n autofocus\n content={message}\n disabled={sending || (messageIsEmpty && queuedFiles.length === 0)}\n files={queuedFiles}\n maxRows={maxEditorRows}\n minRows={minEditorRows}\n onChange={onChange}\n onFilesChange={(nextFiles) => {\n if (files === undefined) setInternalFiles(nextFiles);\n onFilesChange?.(nextFiles);\n }}\n onSubmit={onSubmit}\n onUpload={handleUpload}\n placeholder={placeholder}\n submitLabel='Send message'\n />\n </div>\n );\n};\n"],"names":["Messages","fill","files","handleUpload","maxEditorRows","message","messages","minEditorRows","onChange","onFilesChange","onSubmit","placeholder","sending","tooltipLabel","messagesRef","useRef","internalFiles","setInternalFiles","useState","queuedFiles","newestMessageId","length","id","messageIsEmpty","replace","trim","useLayoutEffect","messageList","current","querySelector","undefined","scrollTop","scrollHeight","jsxs","cx","styles","jsx","List","map","Message","Tooltip","Editor","nextFiles"],"mappings":";;;;;;;;;;GA4BaA,IAAWA,CAAC;AAAA,EACvBC,MAAAA,IAAO;AAAA,EACPC,OAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,eAAAA,IAAgB;AAAA,EAChBC,SAAAA,IAAU;AAAA,EACVC,UAAAA;AAAAA,EACAC,eAAAA,IAAgB;AAAA,EAChBC,UAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,cAAAA;AACa,MAAM;;AACnB,QAAMC,IAAcC,EAAuB,IAAI,GACzC,CAACC,GAAeC,CAAgB,IAAIC,EAAiB,CAAA,CAAE,GACvDC,IAAcjB,KAASc,GACvBI,KAAkBd,IAAAA,EAASA,EAASe,SAAS,CAAC,MAA5Bf,gBAAAA,EAA+BgB,IACjDC,IACJlB,EACGmB,QAAQ,YAAY,EAAE,EACtBA,QAAQ,WAAW,GAAG,EACtBC,KAAAA,MAAW;AAEhBC,SAAAA,EAAgB,MAAM;;AACpB,UAAMC,KAAcb,IAAAA,EAAYc,YAAZd,gBAAAA,EAAqBe,cAA2B;AACpE,IAAI,CAACF,KAAeP,MAAoBU,WAExCH,EAAYI,YAAYJ,EAAYK;AAAAA,EACtC,GAAG,CAACZ,CAAe,CAAC,GAGlB,gBAAAa,EAAC,OAAA,EACC,WAAWC,EAAGC,EAAO7B,UAAUL,KAAQkC,EAAOlC,IAAI,GAClD,kBAAe,YACf,KAAKa,GAEL,UAAA;AAAA,IAAA,gBAAAsB,EAACC,GAAA,EAAK,qBAAiB,IACpB/B,UAAAA,EAASgC,IAAKjC,CAAAA,MACb,gBAAA+B,EAACG,GAAA,EAEC,GAAIlC,EAAAA,GADCA,EAAQiB,EACD,CAEf,GACH;AAAA,IACCT,KAAgB,gBAAAuB,EAACI,GAAA,EAAQ,SAAQ,UAAU3B,UAAAA,GAAa;AAAA,IACzD,gBAAAuB,EAACK,KACC,WAAS,IACT,SAASpC,GACT,UAAUO,KAAYW,KAAkBJ,EAAYE,WAAW,GAC/D,OAAOF,GACP,SAASf,GACT,SAASG,GACT,UAAAC,GACA,eAAgBkC,CAAAA,MAAc;AAC5B,MAAIxC,MAAU4B,UAAWb,EAAiByB,CAAS,GACnDjC,KAAAA,QAAAA,EAAgBiC;AAAAA,IAClB,GACA,UAAAhC,GACA,UAAUP,GACV,aAAAQ,GACA,aAAY,eAAA,CAAc;AAAA,EAAA,GAE9B;AAEJ;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/messages/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nimport { Editor, type PendingInlineImage } from '@/components/editor';\nimport { List } from '@/components/list';\nimport { Tooltip } from '@/components/tooltip';\n\nimport { Message, type MessageOptions } from '../message';\nimport styles from './styles.module.css';\n\nexport type MessageItem = MessageOptions;\n\nexport type MessagesProps = {\n fill?: boolean;\n files?: readonly File[];\n handleUpload: (files: FileList) => Promise<void> | void;\n inlineImages?: readonly PendingInlineImage[];\n maxEditorRows?: number;\n message: string;\n messages: MessageItem[];\n minEditorRows?: number;\n onChange: (content: string) => void;\n onFilesChange?: (files: File[]) => void;\n onInlineImagesChange?: (images: PendingInlineImage[]) => void;\n onSubmit: () => Promise<void> | void;\n placeholder?: string;\n sending: boolean;\n tooltipLabel?: string;\n};\n\nexport const Messages = ({\n fill = false,\n files,\n handleUpload,\n inlineImages,\n maxEditorRows = 5,\n message = '',\n messages,\n minEditorRows = 1,\n onChange,\n onFilesChange,\n onInlineImagesChange,\n onSubmit,\n placeholder,\n sending,\n tooltipLabel,\n}: MessagesProps) => {\n const messagesRef = useRef<HTMLDivElement>(null);\n const [internalFiles, setInternalFiles] = useState<File[]>([]);\n const queuedFiles = files ?? internalFiles;\n const newestMessageId = messages[messages.length - 1]?.id;\n const messageIsEmpty =\n message\n .replace(/<[^>]*>/g, '')\n .replace(/&nbsp;/g, ' ')\n .trim() === '';\n\n useLayoutEffect(() => {\n const messageList = messagesRef.current?.querySelector<HTMLElement>('[data-message-list]');\n if (!messageList || newestMessageId === undefined) return;\n\n messageList.scrollTop = messageList.scrollHeight;\n }, [newestMessageId]);\n\n return (\n <div\n className={cx(styles.messages, fill && styles.fill)}\n data-component='messages'\n ref={messagesRef}\n >\n <List data-message-list>\n {messages.map((message) => (\n <Message\n key={message.id}\n {...message}\n />\n ))}\n </List>\n {tooltipLabel && <Tooltip variant='static'>{tooltipLabel}</Tooltip>}\n <Editor\n autofocus\n content={message}\n disabled={\n sending || (messageIsEmpty && queuedFiles.length === 0 && !inlineImages?.length)\n }\n files={queuedFiles}\n inlineImages={inlineImages}\n maxRows={maxEditorRows}\n minRows={minEditorRows}\n onChange={onChange}\n onFilesChange={(nextFiles) => {\n if (files === undefined) setInternalFiles(nextFiles);\n onFilesChange?.(nextFiles);\n }}\n onInlineImagesChange={onInlineImagesChange}\n onSubmit={onSubmit}\n onUpload={handleUpload}\n placeholder={placeholder}\n submitLabel='Send message'\n />\n </div>\n );\n};\n"],"names":["Messages","fill","files","handleUpload","inlineImages","maxEditorRows","message","messages","minEditorRows","onChange","onFilesChange","onInlineImagesChange","onSubmit","placeholder","sending","tooltipLabel","messagesRef","useRef","internalFiles","setInternalFiles","useState","queuedFiles","newestMessageId","length","id","messageIsEmpty","replace","trim","useLayoutEffect","messageList","current","querySelector","undefined","scrollTop","scrollHeight","jsxs","cx","styles","jsx","List","map","Message","Tooltip","Editor","nextFiles"],"mappings":";;;;;;;;;;GA8BaA,IAAWA,CAAC;AAAA,EACvBC,MAAAA,IAAO;AAAA,EACPC,OAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,eAAAA,IAAgB;AAAA,EAChBC,SAAAA,IAAU;AAAA,EACVC,UAAAA;AAAAA,EACAC,eAAAA,IAAgB;AAAA,EAChBC,UAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,sBAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,cAAAA;AACa,MAAM;;AACnB,QAAMC,IAAcC,EAAuB,IAAI,GACzC,CAACC,GAAeC,CAAgB,IAAIC,EAAiB,CAAA,CAAE,GACvDC,IAAcnB,KAASgB,GACvBI,KAAkBf,IAAAA,EAASA,EAASgB,SAAS,CAAC,MAA5BhB,gBAAAA,EAA+BiB,IACjDC,IACJnB,EACGoB,QAAQ,YAAY,EAAE,EACtBA,QAAQ,WAAW,GAAG,EACtBC,KAAAA,MAAW;AAEhBC,SAAAA,EAAgB,MAAM;;AACpB,UAAMC,KAAcb,IAAAA,EAAYc,YAAZd,gBAAAA,EAAqBe,cAA2B;AACpE,IAAI,CAACF,KAAeP,MAAoBU,WAExCH,EAAYI,YAAYJ,EAAYK;AAAAA,EACtC,GAAG,CAACZ,CAAe,CAAC,GAGlB,gBAAAa,EAAC,OAAA,EACC,WAAWC,EAAGC,EAAO9B,UAAUN,KAAQoC,EAAOpC,IAAI,GAClD,kBAAe,YACf,KAAKe,GAEL,UAAA;AAAA,IAAA,gBAAAsB,EAACC,GAAA,EAAK,qBAAiB,IACpBhC,UAAAA,EAASiC,IAAKlC,CAAAA,MACb,gBAAAgC,EAACG,GAAA,EAEC,GAAInC,EAAAA,GADCA,EAAQkB,EACD,CAEf,GACH;AAAA,IACCT,KAAgB,gBAAAuB,EAACI,GAAA,EAAQ,SAAQ,UAAU3B,UAAAA,GAAa;AAAA,IACzD,gBAAAuB,EAACK,GAAA,EACC,WAAS,IACT,SAASrC,GACT,UACEQ,KAAYW,KAAkBJ,EAAYE,WAAW,KAAK,EAACnB,KAAAA,QAAAA,EAAcmB,SAE3E,OAAOF,GACP,cAAAjB,GACA,SAASC,GACT,SAASG,GACT,UAAAC,GACA,eAAgBmC,CAAAA,MAAc;AAC5B,MAAI1C,MAAU8B,UAAWb,EAAiByB,CAAS,GACnDlC,KAAAA,QAAAA,EAAgBkC;AAAAA,IAClB,GACA,sBAAAjC,GACA,UAAAC,GACA,UAAUT,GACV,aAAAU,GACA,aAAY,eAAA,CAAc;AAAA,EAAA,GAE9B;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index2.css');const e=require("react/jsx-runtime"),d=require("../card/index.cjs"),n="_widget_tzwji_1",s={widget:n},o=({children:t,...i})=>e.jsx("div",{className:s.widget,...i,"data-component":"widget",children:e.jsx(d.Card,{children:t})});exports.Widget=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index2.css');const e=require("react/jsx-runtime"),d=require("../card/index.cjs"),n="_widget_11p99_1",s={widget:n},o=({children:t,...i})=>e.jsx("div",{className:s.widget,...i,"data-component":"widget",children:e.jsx(d.Card,{children:t})});exports.Widget=o;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,11 +1,11 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { Card as d } from "../card/index.js";
3
- import '../../assets/index2.css';const o = "_widget_tzwji_1", r = {
2
+ import { Card as i } from "../card/index.js";
3
+ import '../../assets/index2.css';const o = "_widget_11p99_1", r = {
4
4
  widget: o
5
5
  }, c = ({
6
6
  children: e,
7
- ...i
8
- }) => /* @__PURE__ */ t("div", { className: r.widget, ...i, "data-component": "widget", children: /* @__PURE__ */ t(d, { children: e }) });
7
+ ...d
8
+ }) => /* @__PURE__ */ t("div", { className: r.widget, ...d, "data-component": "widget", children: /* @__PURE__ */ t(i, { children: e }) });
9
9
  export {
10
10
  c as Widget
11
11
  };
package/dist/index.d.ts CHANGED
@@ -236,7 +236,7 @@ declare type DropzoneProps = {
236
236
  variant?: 'default' | 'minimal';
237
237
  };
238
238
 
239
- export declare const Editor: ({ autofocus, autolink, content, disabled, errorMessage, fill, files, inline, invalid, maxRows, minRows, onChange, onFilesChange, onSubmit, onUpload, placeholder, required, submitLabel, }: EditorProps) => JSX.Element;
239
+ export declare const Editor: ({ autofocus, autolink, content, disabled, errorMessage, fill, files, inline, inlineImages, invalid, maxRows, minRows, onChange, onFilesChange, onInlineImagesChange, onSubmit, onUpload, placeholder, required, submitLabel, }: EditorProps) => JSX.Element;
240
240
 
241
241
  export declare type EditorProps = {
242
242
  autofocus?: boolean;
@@ -247,11 +247,13 @@ export declare type EditorProps = {
247
247
  fill?: boolean;
248
248
  files?: readonly File[];
249
249
  inline?: boolean;
250
+ inlineImages?: readonly PendingInlineImage[];
250
251
  invalid?: boolean;
251
252
  maxRows?: number;
252
253
  minRows?: number;
253
254
  onChange?: (html: string) => void;
254
255
  onFilesChange?: (files: File[]) => void;
256
+ onInlineImagesChange?: (images: PendingInlineImage[]) => void;
255
257
  onSubmit?: () => Promise<void> | void;
256
258
  onUpload?: (files: FileList) => Promise<void> | void;
257
259
  placeholder?: string;
@@ -626,18 +628,20 @@ export declare type MessageOptions = {
626
628
  type?: 'default' | 'minimal' | 'system' | 'user';
627
629
  };
628
630
 
629
- export declare const Messages: ({ fill, files, handleUpload, maxEditorRows, message, messages, minEditorRows, onChange, onFilesChange, onSubmit, placeholder, sending, tooltipLabel, }: MessagesProps) => JSX.Element;
631
+ export declare const Messages: ({ fill, files, handleUpload, inlineImages, maxEditorRows, message, messages, minEditorRows, onChange, onFilesChange, onInlineImagesChange, onSubmit, placeholder, sending, tooltipLabel, }: MessagesProps) => JSX.Element;
630
632
 
631
633
  export declare type MessagesProps = {
632
634
  fill?: boolean;
633
635
  files?: readonly File[];
634
636
  handleUpload: (files: FileList) => Promise<void> | void;
637
+ inlineImages?: readonly PendingInlineImage[];
635
638
  maxEditorRows?: number;
636
639
  message: string;
637
640
  messages: MessageItem[];
638
641
  minEditorRows?: number;
639
642
  onChange: (content: string) => void;
640
643
  onFilesChange?: (files: File[]) => void;
644
+ onInlineImagesChange?: (images: PendingInlineImage[]) => void;
641
645
  onSubmit: () => Promise<void> | void;
642
646
  placeholder?: string;
643
647
  sending: boolean;
@@ -682,6 +686,11 @@ declare type ObjectProps = Omit<ComponentPropsWithoutRef<'object'>, 'data' | 'ty
682
686
  url: string;
683
687
  };
684
688
 
689
+ export declare type PendingInlineImage = {
690
+ file: File;
691
+ slot: string;
692
+ };
693
+
685
694
  export declare const Popover: ({ children, inline, triggerAccessibleLabel, triggerAriaHasPopup, triggerButtonContent, }: PopoverProps) => JSX.Element;
686
695
 
687
696
  declare type PopoverCloseOptions = {
package/dist/tokens.json CHANGED
@@ -365,7 +365,7 @@
365
365
  },
366
366
  "com.solibo": {
367
367
  "packageName": "@solibo/solibo-ui",
368
- "packageVersion": "1.0.26"
368
+ "packageVersion": "1.0.29"
369
369
  }
370
370
  },
371
371
  "$name": "Solibo UI Tokens",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solibo/solibo-ui",
3
- "version": "1.0.26",
3
+ "version": "1.0.29",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "pnpm run tokens:build && vite build --watch",