@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.
- package/dist/assets/index15.css +1 -1
- package/dist/assets/index18.css +1 -1
- package/dist/assets/index2.css +1 -1
- package/dist/assets/index39.css +1 -1
- package/dist/assets/index47.css +1 -1
- package/dist/components/editor/index.cjs +26 -26
- package/dist/components/editor/index.cjs.map +1 -1
- package/dist/components/editor/index.js +3373 -3278
- package/dist/components/editor/index.js.map +1 -1
- package/dist/components/header/index.cjs +1 -1
- package/dist/components/header/index.js +28 -28
- package/dist/components/list/index.cjs +1 -1
- package/dist/components/list/index.js +19 -19
- package/dist/components/message/index.cjs +1 -1
- package/dist/components/message/index.js +23 -23
- package/dist/components/messages/index.cjs +1 -1
- package/dist/components/messages/index.cjs.map +1 -1
- package/dist/components/messages/index.js +38 -36
- package/dist/components/messages/index.js.map +1 -1
- package/dist/components/widget/index.cjs +1 -1
- package/dist/components/widget/index.js +4 -4
- package/dist/index.d.ts +11 -2
- package/dist/tokens.json +1 -1
- package/package.json +1 -1
|
@@ -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"),_="
|
|
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
|
|
2
|
-
import { t as
|
|
3
|
-
import '../../assets/index18.css';const
|
|
4
|
-
header:
|
|
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:
|
|
7
|
-
"header-content": "_header-
|
|
8
|
-
jumbo:
|
|
9
|
-
},
|
|
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
|
-
},
|
|
13
|
-
backButton:
|
|
14
|
-
capitalize:
|
|
15
|
-
children:
|
|
16
|
-
controls:
|
|
17
|
-
cta:
|
|
12
|
+
}, v = ({
|
|
13
|
+
backButton: r,
|
|
14
|
+
capitalize: s = !1,
|
|
15
|
+
children: d,
|
|
16
|
+
controls: t,
|
|
17
|
+
cta: a,
|
|
18
18
|
header: l,
|
|
19
|
-
subHeader:
|
|
20
|
-
variant:
|
|
19
|
+
subHeader: i,
|
|
20
|
+
variant: h = "default"
|
|
21
21
|
}) => {
|
|
22
|
-
const n = /* @__PURE__ */
|
|
23
|
-
|
|
22
|
+
const n = /* @__PURE__ */ o("div", { className: e["header-content"], children: [
|
|
23
|
+
r,
|
|
24
24
|
l,
|
|
25
|
-
|
|
26
|
-
] }),
|
|
25
|
+
i
|
|
26
|
+
] }), c = t ? /* @__PURE__ */ o("div", { className: e.controls, children: [
|
|
27
27
|
n,
|
|
28
|
-
|
|
28
|
+
t
|
|
29
29
|
] }) : n;
|
|
30
|
-
return /* @__PURE__ */
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
] }) :
|
|
35
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
2
|
-
import { t as
|
|
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
|
|
4
|
+
import '../../assets/index47.css';function d(t) {
|
|
5
5
|
return e.isValidElement(t) && t.type === e.Fragment;
|
|
6
6
|
}
|
|
7
|
-
function
|
|
7
|
+
function N(t, s = []) {
|
|
8
8
|
return e.Children.forEach(t, (l) => {
|
|
9
|
-
|
|
9
|
+
d(l) ? N(l.props.children, s) : s.push(l);
|
|
10
10
|
}), s;
|
|
11
11
|
}
|
|
12
|
-
function
|
|
12
|
+
function h(t, {
|
|
13
13
|
wrapper: s = "li"
|
|
14
14
|
} = {}) {
|
|
15
|
-
return
|
|
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
|
|
18
|
+
const i = e.isValidElement(n) && n.key != null ? n.key : r;
|
|
19
19
|
return e.createElement(s, {
|
|
20
|
-
key:
|
|
20
|
+
key: i
|
|
21
21
|
}, n);
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
const k = "
|
|
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
|
-
},
|
|
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:
|
|
40
|
-
ordered:
|
|
39
|
+
horizontal: r,
|
|
40
|
+
ordered: i,
|
|
41
41
|
ref: u,
|
|
42
|
-
style:
|
|
42
|
+
style: x,
|
|
43
43
|
...f
|
|
44
44
|
}) {
|
|
45
|
-
const _ = Number.isFinite(l) ? Math.max(1, Math.floor(l)) : 1, p =
|
|
46
|
-
...
|
|
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
|
-
},
|
|
49
|
-
return n == null ?
|
|
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
|
-
|
|
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"),
|
|
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
|
|
2
|
-
import { t as
|
|
3
|
-
import { Avatar as
|
|
4
|
-
import { Icon as
|
|
5
|
-
import '../../assets/index15.css';const
|
|
6
|
-
attachments:
|
|
7
|
-
"message-group": "_message-
|
|
8
|
-
message:
|
|
9
|
-
timestamp:
|
|
10
|
-
preview:
|
|
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:
|
|
13
|
-
attachments:
|
|
14
|
-
author:
|
|
15
|
-
authorColor:
|
|
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:
|
|
23
|
+
timestampText: b,
|
|
24
24
|
type: e = "default"
|
|
25
25
|
}) => {
|
|
26
|
-
const m = i ? new Date(i) : void 0,
|
|
27
|
-
return /* @__PURE__ */ n("div", { className:
|
|
28
|
-
|
|
29
|
-
e === "system" &&
|
|
30
|
-
/* @__PURE__ */ n("div", { className:
|
|
31
|
-
e == "system" && /* @__PURE__ */
|
|
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
|
-
|
|
35
|
-
e !== "system" &&
|
|
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"),
|
|
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(/ /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(/ /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":"
|
|
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(/ /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
|
|
2
|
-
import { t as
|
|
3
|
-
import { useRef as
|
|
4
|
-
import { Editor as
|
|
5
|
-
import { List as
|
|
6
|
-
import { Tooltip as
|
|
7
|
-
import { Message as
|
|
8
|
-
import '../../assets/index13.css';const
|
|
9
|
-
messages:
|
|
10
|
-
fill:
|
|
11
|
-
},
|
|
12
|
-
fill:
|
|
13
|
-
files:
|
|
14
|
-
handleUpload:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
onFilesChange: r,
|
|
22
|
+
onInlineImagesChange: v,
|
|
23
|
+
onSubmit: y,
|
|
24
|
+
placeholder: R,
|
|
25
|
+
sending: b,
|
|
26
|
+
tooltipLabel: c
|
|
25
27
|
}) => {
|
|
26
|
-
var
|
|
27
|
-
const
|
|
28
|
-
return
|
|
29
|
-
var
|
|
30
|
-
const s = (
|
|
31
|
-
!s ||
|
|
32
|
-
}, [
|
|
33
|
-
/* @__PURE__ */ e(
|
|
34
|
-
|
|
35
|
-
/* @__PURE__ */ e(
|
|
36
|
-
|
|
37
|
-
},
|
|
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(/ /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
|
-
|
|
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(/ /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":";;;;;;;;;;
|
|
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(/ /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="
|
|
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
|
|
3
|
-
import '../../assets/index2.css';const o = "
|
|
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
|
-
...
|
|
8
|
-
}) => /* @__PURE__ */ t("div", { className: r.widget, ...
|
|
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