wimui 0.63.0 → 0.63.1
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/components/_internal/OverlayBase.cjs +1 -1
- package/dist/components/_internal/OverlayBase.js +31 -30
- package/dist/components/_internal/composeEventHandlers.cjs +2 -0
- package/dist/components/_internal/composeEventHandlers.d.ts +25 -0
- package/dist/components/_internal/composeEventHandlers.js +8 -0
- package/dist/components/ai/ChatUI/ChatUI.cjs +1 -1
- package/dist/components/ai/ChatUI/ChatUI.js +83 -82
- package/dist/components/data-display/Accordion/Accordion.cjs +1 -1
- package/dist/components/data-display/Accordion/Accordion.js +79 -78
- package/dist/components/data-display/PullToRefresh/PullToRefresh.cjs +1 -1
- package/dist/components/data-display/PullToRefresh/PullToRefresh.js +73 -72
- package/dist/components/data-display/SortableList/SortableList.cjs +1 -1
- package/dist/components/data-display/SortableList/SortableList.js +54 -53
- package/dist/components/data-display/SwipeAction/SwipeAction.cjs +1 -1
- package/dist/components/data-display/SwipeAction/SwipeAction.js +77 -76
- package/dist/components/form/Cascader/Cascader.cjs +1 -1
- package/dist/components/form/Cascader/Cascader.js +99 -98
- package/dist/components/form/DatePicker/DatePicker.cjs +1 -1
- package/dist/components/form/DatePicker/DatePicker.js +53 -52
- package/dist/components/form/RangeSlider/RangeSlider.cjs +1 -1
- package/dist/components/form/RangeSlider/RangeSlider.js +109 -108
- package/dist/components/form/Rating/Rating.cjs +1 -1
- package/dist/components/form/Rating/Rating.js +75 -74
- package/dist/components/form/Slider/Slider.cjs +1 -1
- package/dist/components/form/Slider/Slider.js +58 -57
- package/dist/components/form/SmartSearchInput/SmartSearchInput.cjs +1 -1
- package/dist/components/form/SmartSearchInput/SmartSearchInput.js +65 -64
- package/dist/components/form/TimePicker/TimePicker.cjs +1 -1
- package/dist/components/form/TimePicker/TimePicker.js +31 -30
- package/dist/components/layout/InteractiveArea/InteractiveArea.cjs +1 -1
- package/dist/components/layout/InteractiveArea/InteractiveArea.js +1 -1
- package/dist/components/layout/Navbar/Navbar.cjs +1 -1
- package/dist/components/layout/Navbar/Navbar.js +68 -67
- package/dist/components/layout/Splitter/Splitter.cjs +1 -1
- package/dist/components/layout/Splitter/Splitter.js +47 -46
- package/dist/components/layout/Transition/Transition.cjs +1 -1
- package/dist/components/layout/Transition/Transition.js +25 -24
- package/dist/components/media/Audio/Audio.cjs +1 -1
- package/dist/components/media/Audio/Audio.js +39 -38
- package/dist/components/media/Image/Image.cjs +2 -2
- package/dist/components/media/Image/Image.js +96 -95
- package/dist/components/media/ImageCompare/ImageCompare.cjs +1 -1
- package/dist/components/media/ImageCompare/ImageCompare.js +75 -74
- package/dist/components/media/Video/Video.cjs +1 -1
- package/dist/components/media/Video/Video.js +114 -113
- package/dist/components/navigation/SpeedDial/SpeedDial.cjs +1 -1
- package/dist/components/navigation/SpeedDial/SpeedDial.js +47 -46
- package/dist/components/navigation/Tabs/Tabs.cjs +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +87 -86
- package/dist/components/overlay/Popover/Popover.cjs +1 -1
- package/dist/components/overlay/Popover/Popover.js +1 -1
- package/dist/llms-full.txt +1 -1
- package/dist/llms.txt +1 -1
- package/dist/wimui.umd.js +5 -5
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../overlay/Portal/Portal.cjs"),n=require("../layout/Transition/Transition.cjs"),
|
|
2
|
+
const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../overlay/Portal/Portal.cjs"),n=require("./composeEventHandlers.cjs"),r=require("../layout/Transition/Transition.cjs"),i=require("../overlay/FocusTrap/FocusTrap.cjs"),a=require("./overlay-base.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime");var l=({open:e,onOpenChange:l,children:u,overlayClassName:d,contentClassName:f,transitionProps:p,overlayTransitionProps:m,role:h=`dialog`,ariaModal:g=!0,closeOnOverlayClick:_=!0,closeOnEscape:v=!0,...y})=>((0,o.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e&&v&&(t.preventDefault(),t.stopPropagation(),l(!1))};return e&&document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t)}},[e,l,v]),(0,o.useEffect)(()=>{if(e){let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}}},[e]),(0,c.jsx)(t.Portal,{children:(0,c.jsx)(r.Transition,{show:e,className:(0,s.default)(a.default.root,d),"data-testid":`overlay`,onClick:e=>{_&&e.target===e.currentTarget&&l(!1)},preset:`fade`,...m,children:(0,c.jsx)(r.Transition,{show:e,className:f,"data-testid":`overlay-content`,role:h,"aria-modal":g,preset:`scale`,appear:!0,...p,...y,onClick:n.composeEventHandlers(y.onClick,e=>e.stopPropagation()),children:(0,c.jsx)(i.FocusTrap,{active:e,children:u})})})}));exports.OverlayBase=l;
|
|
@@ -1,55 +1,56 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Portal as e } from "../overlay/Portal/Portal.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import r from "
|
|
6
|
-
import
|
|
7
|
-
import a from "
|
|
8
|
-
import
|
|
3
|
+
import { composeEventHandlers as t } from "./composeEventHandlers.js";
|
|
4
|
+
import { Transition as n } from "../layout/Transition/Transition.js";
|
|
5
|
+
import { FocusTrap as r } from "../overlay/FocusTrap/FocusTrap.js";
|
|
6
|
+
import i from "./overlay-base.module.js";
|
|
7
|
+
import { useEffect as a } from "react";
|
|
8
|
+
import o from "classnames";
|
|
9
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
9
10
|
//#region src/components/_internal/OverlayBase.tsx
|
|
10
|
-
var
|
|
11
|
+
var c = ({ open: c, onOpenChange: l, children: u, overlayClassName: d, contentClassName: f, transitionProps: p, overlayTransitionProps: m, role: h = "dialog", ariaModal: g = !0, closeOnOverlayClick: _ = !0, closeOnEscape: v = !0, ...y }) => (a(() => {
|
|
11
12
|
let e = (e) => {
|
|
12
|
-
e.key === "Escape" &&
|
|
13
|
+
e.key === "Escape" && c && v && (e.preventDefault(), e.stopPropagation(), l(!1));
|
|
13
14
|
};
|
|
14
|
-
return
|
|
15
|
+
return c && document.addEventListener("keydown", e), () => {
|
|
15
16
|
document.removeEventListener("keydown", e);
|
|
16
17
|
};
|
|
17
18
|
}, [
|
|
18
|
-
s,
|
|
19
19
|
c,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
l,
|
|
21
|
+
v
|
|
22
|
+
]), a(() => {
|
|
23
|
+
if (c) {
|
|
23
24
|
let e = window.getComputedStyle(document.body).overflow;
|
|
24
25
|
return document.body.style.overflow = "hidden", () => {
|
|
25
26
|
document.body.style.overflow = e;
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
|
-
}, [
|
|
29
|
-
show:
|
|
30
|
-
className:
|
|
29
|
+
}, [c]), /* @__PURE__ */ s(e, { children: /* @__PURE__ */ s(n, {
|
|
30
|
+
show: c,
|
|
31
|
+
className: o(i.root, d),
|
|
31
32
|
"data-testid": "overlay",
|
|
32
33
|
onClick: (e) => {
|
|
33
|
-
|
|
34
|
+
_ && e.target === e.currentTarget && l(!1);
|
|
34
35
|
},
|
|
35
36
|
preset: "fade",
|
|
36
|
-
...
|
|
37
|
-
children: /* @__PURE__ */
|
|
38
|
-
show:
|
|
39
|
-
className:
|
|
37
|
+
...m,
|
|
38
|
+
children: /* @__PURE__ */ s(n, {
|
|
39
|
+
show: c,
|
|
40
|
+
className: f,
|
|
40
41
|
"data-testid": "overlay-content",
|
|
41
|
-
role:
|
|
42
|
-
"aria-modal":
|
|
43
|
-
onClick: (e) => e.stopPropagation(),
|
|
42
|
+
role: h,
|
|
43
|
+
"aria-modal": g,
|
|
44
44
|
preset: "scale",
|
|
45
45
|
appear: !0,
|
|
46
|
-
...
|
|
47
|
-
...
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
...p,
|
|
47
|
+
...y,
|
|
48
|
+
onClick: t(y.onClick, (e) => e.stopPropagation()),
|
|
49
|
+
children: /* @__PURE__ */ s(r, {
|
|
50
|
+
active: c,
|
|
51
|
+
children: u
|
|
51
52
|
})
|
|
52
53
|
})
|
|
53
54
|
}) }));
|
|
54
55
|
//#endregion
|
|
55
|
-
export {
|
|
56
|
+
export { c as OverlayBase };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 利用者が渡したイベントの処理と、部品が自分で持つ処理を、1 つにまとめる(T347)。
|
|
3
|
+
*
|
|
4
|
+
* 部品が `onClick={handleClick}` を書いたあとで `{...props}` を広げると、利用者が `onClick` を渡した
|
|
5
|
+
* 時点で、部品の処理が丸ごと置き換わる(`Tabs.Trigger` に `onClick` を渡すと、タブが切り替わらなく
|
|
6
|
+
* なっていた。`onClick={undefined}` でも同じ)。ここで両方を呼ぶ:
|
|
7
|
+
*
|
|
8
|
+
* 1. 利用者の処理を先に呼ぶ
|
|
9
|
+
* 2. そこで `event.preventDefault()` されていなければ、部品の処理を呼ぶ
|
|
10
|
+
*
|
|
11
|
+
* 利用者が部品の動きを止めたいときは、`preventDefault()` を呼べばよい(Radix UI と同じ流儀)。
|
|
12
|
+
*
|
|
13
|
+
* 見るのは「利用者の処理が、止めたか」だけ。子の要素の処理が先に `preventDefault()` していた
|
|
14
|
+
* イベント(泡のように上がってきたもの)では、部品の処理をこれまでどおり呼ぶ ── 利用者が何も渡して
|
|
15
|
+
* いないときの動きを、1 つも変えないため。
|
|
16
|
+
*
|
|
17
|
+
* 使い方は、props を広げた**あと**に置くこと:
|
|
18
|
+
*
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <button {...props} onClick={composeEventHandlers(props.onClick, handleClick)} />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare const composeEventHandlers: <E extends {
|
|
24
|
+
defaultPrevented: boolean;
|
|
25
|
+
}>(userHandler: ((event: E) => void) | undefined | null, internalHandler: ((event: E) => void) | undefined | null) => (event: E) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../../icon/paperclip.cjs"),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../_internal/composeEventHandlers.cjs"),i=require("../../../icon/paperclip.cjs"),a=require("../../../icon/send.cjs"),o=require("../../media/Icon/Icon.cjs"),s=require("../../../hooks/useAutoResize.cjs"),c=require("./chat-ui.module.cjs");let l=require("react");l=e.__toESM(l,1);let u=require("classnames");u=e.__toESM(u,1);let d=require("react/jsx-runtime");var f=({children:e,className:t,...n})=>(0,d.jsx)(`div`,{className:(0,u.default)(`wim-chat-ui`,c.default.container,t),...n,children:e}),p=(0,l.forwardRef)(({children:e,className:t,...n},r)=>(0,d.jsx)(`div`,{ref:r,className:(0,u.default)(c.default.messageList,t),...n,children:e}));p.displayName=`ChatMessageList`;var m=({children:e,position:t=`left`,variant:n=`default`,showAvatar:r=!0,avatar:i,timestamp:a,senderName:o,isTyping:s=!1,actions:l,actionsVisible:f=!0,className:p,...m})=>(0,d.jsxs)(`div`,{className:(0,u.default)(c.default.message,c.default[t],c.default[n],{[c.default.hasAvatar]:r},p),...m,children:[r&&t===`left`&&(0,d.jsx)(`div`,{className:c.default.messageAvatar,children:i}),(0,d.jsxs)(`div`,{className:c.default.contentWrapper,children:[o&&(0,d.jsx)(`div`,{className:c.default.sender,children:o}),(0,d.jsx)(`div`,{className:(0,u.default)(c.default.bubble,{[c.default.typing]:s}),children:s?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`span`,{className:c.default.typingDot}),(0,d.jsx)(`span`,{className:c.default.typingDot}),(0,d.jsx)(`span`,{className:c.default.typingDot})]}):e}),l&&(0,d.jsx)(`div`,{className:(0,u.default)(c.default.actions,{[c.default.hoverOnly]:!f}),children:l}),a&&(0,d.jsx)(`div`,{className:c.default.timestamp,children:a})]}),r&&t===`right`&&(0,d.jsx)(`div`,{className:c.default.messageAvatar,children:i})]}),h=({children:e,className:t,...n})=>(0,d.jsx)(`div`,{className:(0,u.default)(c.default.inputArea,t),...n,children:e}),g=(0,l.forwardRef)(({onSend:e,onAttach:u,sendButtonLabel:f,sendButtonIcon:p=a.default,showSendButton:m=!0,showAttach:g=!1,maxRows:_=8,className:v,...y},b)=>{let{t:x}=t.useWimTranslation(n.commonNs),[S,C]=l.default.useState(``),w=y.value!==void 0,T=w?y.value:S,E=s.useAutoResize(T,_);l.default.useImperativeHandle(b,()=>E.current);let D=!!f,O=()=>{e&&(e(T),w||C(``))},k=e=>{w||C(e.target.value),y.onChange?.(e)},A=e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),O())};return(0,d.jsx)(h,{className:v,children:(0,d.jsxs)(`div`,{className:c.default.fieldContainer,children:[g&&(0,d.jsx)(`button`,{type:`button`,className:c.default.attachButton,onClick:u,"aria-label":x(`a11y.attach_file`),children:(0,d.jsx)(o.Icon,{component:i.default,size:`sm`})}),(0,d.jsx)(`textarea`,{ref:E,className:c.default.field,value:T,placeholder:y.placeholder||`Type a message...`,rows:1,...y,onChange:k,onKeyDown:r.composeEventHandlers(y.onKeyDown,A)}),m&&(0,d.jsx)(`button`,{className:c.default.sendButton,onClick:O,disabled:!T.trim(),type:`button`,"aria-label":f||x(`chat.send`),children:D?f:(0,d.jsx)(o.Icon,{component:p,size:`sm`})})]})})});g.displayName=`ChatInput`;var _=({src:e,alt:r,fallback:i,size:a=`md`,tone:o=`s18`,className:s,...f})=>{let[p,m]=l.default.useState(!1),{t:h}=t.useWimTranslation(n.commonNs),g=r||h(`chat.user_avatar`);return(0,d.jsx)(`div`,{className:(0,u.default)(c.default.avatar,c.default[a],c.default[o],s),...f,children:e&&!p?(0,d.jsx)(`img`,{src:e,alt:g,className:c.default.image,onError:()=>m(!0)}):(0,d.jsx)(`div`,{className:c.default.fallback,children:i||g.charAt(0).toUpperCase()})})};exports.ChatAvatar=_,exports.ChatContainer=f,exports.ChatInput=g,exports.ChatInputArea=h,exports.ChatMessage=m,exports.ChatMessageList=p;
|
|
@@ -1,111 +1,112 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useWimTranslation as e } from "../../../i18n/useWimTranslation.js";
|
|
3
3
|
import { commonNs as t } from "../../../i18n/generated/common.js";
|
|
4
|
-
import n from "
|
|
5
|
-
import r from "../../../icon/
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import o from "
|
|
9
|
-
import s
|
|
10
|
-
import l from "
|
|
11
|
-
import
|
|
4
|
+
import { composeEventHandlers as n } from "../../_internal/composeEventHandlers.js";
|
|
5
|
+
import r from "../../../icon/paperclip.js";
|
|
6
|
+
import i from "../../../icon/send.js";
|
|
7
|
+
import { Icon as a } from "../../media/Icon/Icon.js";
|
|
8
|
+
import { useAutoResize as o } from "../../../hooks/useAutoResize.js";
|
|
9
|
+
import s from "./chat-ui.module.js";
|
|
10
|
+
import c, { forwardRef as l } from "react";
|
|
11
|
+
import u from "classnames";
|
|
12
|
+
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
12
13
|
//#region src/components/ai/ChatUI/ChatUI.tsx
|
|
13
|
-
var
|
|
14
|
-
className:
|
|
14
|
+
var m = ({ children: e, className: t, ...n }) => /* @__PURE__ */ f("div", {
|
|
15
|
+
className: u("wim-chat-ui", s.container, t),
|
|
15
16
|
...n,
|
|
16
17
|
children: e
|
|
17
|
-
}),
|
|
18
|
+
}), h = l(({ children: e, className: t, ...n }, r) => /* @__PURE__ */ f("div", {
|
|
18
19
|
ref: r,
|
|
19
|
-
className:
|
|
20
|
+
className: u(s.messageList, t),
|
|
20
21
|
...n,
|
|
21
22
|
children: e
|
|
22
23
|
}));
|
|
23
|
-
|
|
24
|
-
var
|
|
25
|
-
className:
|
|
24
|
+
h.displayName = "ChatMessageList";
|
|
25
|
+
var g = ({ children: e, position: t = "left", variant: n = "default", showAvatar: r = !0, avatar: i, timestamp: a, senderName: o, isTyping: c = !1, actions: l, actionsVisible: m = !0, className: h, ...g }) => /* @__PURE__ */ p("div", {
|
|
26
|
+
className: u(s.message, s[t], s[n], { [s.hasAvatar]: r }, h),
|
|
26
27
|
...g,
|
|
27
28
|
children: [
|
|
28
|
-
r && t === "left" && /* @__PURE__ */
|
|
29
|
-
className:
|
|
29
|
+
r && t === "left" && /* @__PURE__ */ f("div", {
|
|
30
|
+
className: s.messageAvatar,
|
|
30
31
|
children: i
|
|
31
32
|
}),
|
|
32
|
-
/* @__PURE__ */
|
|
33
|
-
className:
|
|
33
|
+
/* @__PURE__ */ p("div", {
|
|
34
|
+
className: s.contentWrapper,
|
|
34
35
|
children: [
|
|
35
|
-
|
|
36
|
-
className:
|
|
37
|
-
children:
|
|
36
|
+
o && /* @__PURE__ */ f("div", {
|
|
37
|
+
className: s.sender,
|
|
38
|
+
children: o
|
|
38
39
|
}),
|
|
39
|
-
/* @__PURE__ */
|
|
40
|
-
className:
|
|
41
|
-
children: c ? /* @__PURE__ */
|
|
42
|
-
/* @__PURE__ */
|
|
43
|
-
/* @__PURE__ */
|
|
44
|
-
/* @__PURE__ */
|
|
40
|
+
/* @__PURE__ */ f("div", {
|
|
41
|
+
className: u(s.bubble, { [s.typing]: c }),
|
|
42
|
+
children: c ? /* @__PURE__ */ p(d, { children: [
|
|
43
|
+
/* @__PURE__ */ f("span", { className: s.typingDot }),
|
|
44
|
+
/* @__PURE__ */ f("span", { className: s.typingDot }),
|
|
45
|
+
/* @__PURE__ */ f("span", { className: s.typingDot })
|
|
45
46
|
] }) : e
|
|
46
47
|
}),
|
|
47
|
-
|
|
48
|
-
className:
|
|
49
|
-
children:
|
|
48
|
+
l && /* @__PURE__ */ f("div", {
|
|
49
|
+
className: u(s.actions, { [s.hoverOnly]: !m }),
|
|
50
|
+
children: l
|
|
50
51
|
}),
|
|
51
|
-
a && /* @__PURE__ */
|
|
52
|
-
className:
|
|
52
|
+
a && /* @__PURE__ */ f("div", {
|
|
53
|
+
className: s.timestamp,
|
|
53
54
|
children: a
|
|
54
55
|
})
|
|
55
56
|
]
|
|
56
57
|
}),
|
|
57
|
-
r && t === "right" && /* @__PURE__ */
|
|
58
|
-
className:
|
|
58
|
+
r && t === "right" && /* @__PURE__ */ f("div", {
|
|
59
|
+
className: s.messageAvatar,
|
|
59
60
|
children: i
|
|
60
61
|
})
|
|
61
62
|
]
|
|
62
|
-
}),
|
|
63
|
-
className:
|
|
63
|
+
}), _ = ({ children: e, className: t, ...n }) => /* @__PURE__ */ f("div", {
|
|
64
|
+
className: u(s.inputArea, t),
|
|
64
65
|
...n,
|
|
65
66
|
children: e
|
|
66
|
-
}),
|
|
67
|
-
let { t:
|
|
68
|
-
|
|
69
|
-
let
|
|
70
|
-
|
|
67
|
+
}), v = l(({ onSend: l, onAttach: u, sendButtonLabel: d, sendButtonIcon: m = i, showSendButton: h = !0, showAttach: g = !1, maxRows: v = 8, className: y, ...b }, x) => {
|
|
68
|
+
let { t: S } = e(t), [C, w] = c.useState(""), T = b.value !== void 0, E = T ? b.value : C, D = o(E, v);
|
|
69
|
+
c.useImperativeHandle(x, () => D.current);
|
|
70
|
+
let O = !!d, k = () => {
|
|
71
|
+
l && (l(E), T || w(""));
|
|
72
|
+
}, A = (e) => {
|
|
73
|
+
T || w(e.target.value), b.onChange?.(e);
|
|
74
|
+
}, j = (e) => {
|
|
75
|
+
e.key === "Enter" && !e.shiftKey && (e.preventDefault(), k());
|
|
71
76
|
};
|
|
72
|
-
return /* @__PURE__ */
|
|
73
|
-
className:
|
|
74
|
-
children: /* @__PURE__ */
|
|
75
|
-
className:
|
|
77
|
+
return /* @__PURE__ */ f(_, {
|
|
78
|
+
className: y,
|
|
79
|
+
children: /* @__PURE__ */ p("div", {
|
|
80
|
+
className: s.fieldContainer,
|
|
76
81
|
children: [
|
|
77
|
-
|
|
82
|
+
g && /* @__PURE__ */ f("button", {
|
|
78
83
|
type: "button",
|
|
79
|
-
className:
|
|
80
|
-
onClick:
|
|
81
|
-
"aria-label":
|
|
82
|
-
children: /* @__PURE__ */
|
|
83
|
-
component:
|
|
84
|
+
className: s.attachButton,
|
|
85
|
+
onClick: u,
|
|
86
|
+
"aria-label": S("a11y.attach_file"),
|
|
87
|
+
children: /* @__PURE__ */ f(a, {
|
|
88
|
+
component: r,
|
|
84
89
|
size: "sm"
|
|
85
90
|
})
|
|
86
91
|
}),
|
|
87
|
-
/* @__PURE__ */
|
|
88
|
-
ref:
|
|
89
|
-
className:
|
|
90
|
-
value:
|
|
91
|
-
|
|
92
|
-
w || C(e.target.value), y.onChange?.(e);
|
|
93
|
-
},
|
|
94
|
-
onKeyDown: (e) => {
|
|
95
|
-
e.key === "Enter" && !e.shiftKey && (e.preventDefault(), O());
|
|
96
|
-
},
|
|
97
|
-
placeholder: y.placeholder || "Type a message...",
|
|
92
|
+
/* @__PURE__ */ f("textarea", {
|
|
93
|
+
ref: D,
|
|
94
|
+
className: s.field,
|
|
95
|
+
value: E,
|
|
96
|
+
placeholder: b.placeholder || "Type a message...",
|
|
98
97
|
rows: 1,
|
|
99
|
-
...
|
|
98
|
+
...b,
|
|
99
|
+
onChange: A,
|
|
100
|
+
onKeyDown: n(b.onKeyDown, j)
|
|
100
101
|
}),
|
|
101
|
-
|
|
102
|
-
className:
|
|
103
|
-
onClick:
|
|
104
|
-
disabled: !
|
|
102
|
+
h && /* @__PURE__ */ f("button", {
|
|
103
|
+
className: s.sendButton,
|
|
104
|
+
onClick: k,
|
|
105
|
+
disabled: !E.trim(),
|
|
105
106
|
type: "button",
|
|
106
|
-
"aria-label":
|
|
107
|
-
children:
|
|
108
|
-
component:
|
|
107
|
+
"aria-label": d || S("chat.send"),
|
|
108
|
+
children: O ? d : /* @__PURE__ */ f(a, {
|
|
109
|
+
component: m,
|
|
109
110
|
size: "sm"
|
|
110
111
|
})
|
|
111
112
|
})
|
|
@@ -113,22 +114,22 @@ var h = ({ children: e, position: t = "left", variant: n = "default", showAvatar
|
|
|
113
114
|
})
|
|
114
115
|
});
|
|
115
116
|
});
|
|
116
|
-
|
|
117
|
-
var
|
|
118
|
-
let [p, m] =
|
|
119
|
-
return /* @__PURE__ */
|
|
120
|
-
className:
|
|
121
|
-
...
|
|
122
|
-
children: n && !p ? /* @__PURE__ */
|
|
117
|
+
v.displayName = "ChatInput";
|
|
118
|
+
var y = ({ src: n, alt: r, fallback: i, size: a = "md", tone: o = "s18", className: l, ...d }) => {
|
|
119
|
+
let [p, m] = c.useState(!1), { t: h } = e(t), g = r || h("chat.user_avatar");
|
|
120
|
+
return /* @__PURE__ */ f("div", {
|
|
121
|
+
className: u(s.avatar, s[a], s[o], l),
|
|
122
|
+
...d,
|
|
123
|
+
children: n && !p ? /* @__PURE__ */ f("img", {
|
|
123
124
|
src: n,
|
|
124
125
|
alt: g,
|
|
125
|
-
className:
|
|
126
|
+
className: s.image,
|
|
126
127
|
onError: () => m(!0)
|
|
127
|
-
}) : /* @__PURE__ */
|
|
128
|
-
className:
|
|
128
|
+
}) : /* @__PURE__ */ f("div", {
|
|
129
|
+
className: s.fallback,
|
|
129
130
|
children: i || g.charAt(0).toUpperCase()
|
|
130
131
|
})
|
|
131
132
|
});
|
|
132
133
|
};
|
|
133
134
|
//#endregion
|
|
134
|
-
export {
|
|
135
|
+
export { y as ChatAvatar, m as ChatContainer, v as ChatInput, _ as ChatInputArea, g as ChatMessage, h as ChatMessageList };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../../icon/chevron-down.cjs"),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../_internal/composeEventHandlers.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("./accordion.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime");var l=(0,o.createContext)(null),u=()=>{let e=(0,o.useContext)(l);if(!e)throw Error(`Accordion components must be used within an Accordion`);return e},d=(0,o.forwardRef)(function({type:e=`single`,defaultValue:n,value:r,onChange:i,collapsible:u=!0,className:d,children:f,id:p,asChild:m,...h},g){let _=(0,o.useId)(),v=p||_,[y,b]=(0,o.useState)(()=>n?Array.isArray(n)?n:[n]:[]),x=o.default.useRef(null),S=e=>{x.current=e,typeof g==`function`?g(e):g&&(g.current=e)},C=r!==void 0,w=(0,o.useMemo)(()=>{let e=C?r:y;return Array.isArray(e)?e:e?[e]:[]},[C,r,y]),T=(0,o.useCallback)(t=>{let n;n=e===`single`?w.includes(t)&&u?[]:[t]:w.includes(t)?w.filter(e=>e!==t):[...w,t],C||b(n),i?.(e===`single`?n[0]??``:n)},[w,u,C,i,e]),E=m?t.Root:`div`;return(0,c.jsx)(l.Provider,{value:{value:w,onValueChange:T,type:e,accordionId:v,containerRef:x},children:(0,c.jsx)(E,{ref:S,className:(0,s.default)(`wim-accordion`,a.default.root,d),...h,children:f})})}),f=(0,o.createContext)(null),p=(0,o.forwardRef)(function({value:e,disabled:n=!1,className:r,children:i,asChild:o,...l},d){let{value:p,accordionId:m}=u(),h=p.includes(e),g=`wim-accordion-trigger-${m}-${e}`,_=`wim-accordion-content-${m}-${e}`,v=o?t.Root:`div`;return(0,c.jsx)(f.Provider,{value:{value:e,disabled:n,isLogicOpen:h,triggerId:g,contentId:_},children:(0,c.jsx)(v,{ref:d,className:(0,s.default)(a.default.item,n&&a.default.disabled,h&&a.default.open,r),...l,children:i})})}),m=(0,o.forwardRef)(function({children:e,className:l,asChild:d,...p},m){let{onValueChange:h}=u(),g=(0,o.useContext)(f);if(!g)throw Error(`AccordionTrigger must be used within AccordionItem`);let _=e=>{if(g.disabled){e.preventDefault();return}h(g.value)},{containerRef:v}=u(),y=e=>{if(g.disabled)return;let t=Array.from(v.current?.querySelectorAll(`.${a.default.trigger}:not(:disabled)`)||[]),n=t.indexOf(e.currentTarget);switch(e.key){case`ArrowDown`:e.preventDefault(),t[(n+1)%t.length]?.focus();break;case`ArrowUp`:e.preventDefault(),t[(n-1+t.length)%t.length]?.focus();break;case`Home`:e.preventDefault(),t[0]?.focus();break;case`End`:e.preventDefault(),t[t.length-1]?.focus()}p.onKeyDown?.(e)};return(0,c.jsxs)(d?t.Root:`button`,{ref:m,type:d?void 0:`button`,id:g.triggerId,className:(0,s.default)(a.default.trigger,l),"aria-expanded":g.isLogicOpen,"aria-controls":g.contentId,"aria-disabled":g.disabled,disabled:g.disabled,...p,onKeyDown:y,onClick:n.composeEventHandlers(p.onClick,_),children:[(0,c.jsx)(`span`,{className:a.default.triggerContent,children:e}),(0,c.jsx)(i.Icon,{component:r.default,className:(0,s.default)(a.default.chevron,g.isLogicOpen&&a.default.open)})]})}),h=(0,o.forwardRef)(function({children:e,className:n,asChild:r,...i},l){let u=(0,o.useContext)(f);if(!u)throw Error(`AccordionContent must be used within AccordionItem`);return(0,c.jsx)(r?t.Root:`div`,{ref:l,id:u.contentId,role:`region`,"aria-labelledby":u.triggerId,className:(0,s.default)(a.default.content,u.isLogicOpen&&a.default.open,n),...i,children:(0,c.jsx)(`div`,{className:a.default.contentInner,children:(0,c.jsx)(`div`,{className:a.default.contentBody,children:e})})})}),g=d;g.Item=p,g.Trigger=m,g.Content=h,g.displayName=`Accordion`,p.displayName=`Accordion.Item`,m.displayName=`Accordion.Trigger`,h.displayName=`Accordion.Content`,exports.Accordion=g,exports.default=g,exports.AccordionContent=h,exports.AccordionItem=p,exports.AccordionTrigger=m;
|