wimui 0.62.2 → 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.
Files changed (73) hide show
  1. package/dist/components/_internal/OverlayBase.cjs +1 -1
  2. package/dist/components/_internal/OverlayBase.js +31 -30
  3. package/dist/components/_internal/composeEventHandlers.cjs +2 -0
  4. package/dist/components/_internal/composeEventHandlers.d.ts +25 -0
  5. package/dist/components/_internal/composeEventHandlers.js +8 -0
  6. package/dist/components/_internal/observeMove.cjs +2 -0
  7. package/dist/components/_internal/observeMove.d.ts +16 -0
  8. package/dist/components/_internal/observeMove.js +44 -0
  9. package/dist/components/ai/ChatUI/ChatUI.cjs +1 -1
  10. package/dist/components/ai/ChatUI/ChatUI.js +83 -82
  11. package/dist/components/data-display/Accordion/Accordion.cjs +1 -1
  12. package/dist/components/data-display/Accordion/Accordion.js +79 -78
  13. package/dist/components/data-display/PullToRefresh/PullToRefresh.cjs +1 -1
  14. package/dist/components/data-display/PullToRefresh/PullToRefresh.js +73 -72
  15. package/dist/components/data-display/SortableList/SortableList.cjs +1 -1
  16. package/dist/components/data-display/SortableList/SortableList.js +54 -53
  17. package/dist/components/data-display/SwipeAction/SwipeAction.cjs +1 -1
  18. package/dist/components/data-display/SwipeAction/SwipeAction.js +77 -76
  19. package/dist/components/feedback/Tour/Tour.cjs +1 -1
  20. package/dist/components/feedback/Tour/Tour.js +91 -88
  21. package/dist/components/form/Button/Button.cjs +1 -1
  22. package/dist/components/form/Button/Button.d.ts +2 -2
  23. package/dist/components/form/Button/Button.js +14 -12
  24. package/dist/components/form/Cascader/Cascader.cjs +1 -1
  25. package/dist/components/form/Cascader/Cascader.js +99 -98
  26. package/dist/components/form/DatePicker/DatePicker.cjs +1 -1
  27. package/dist/components/form/DatePicker/DatePicker.js +53 -52
  28. package/dist/components/form/RangeSlider/RangeSlider.cjs +1 -1
  29. package/dist/components/form/RangeSlider/RangeSlider.js +109 -108
  30. package/dist/components/form/Rating/Rating.cjs +1 -1
  31. package/dist/components/form/Rating/Rating.js +75 -74
  32. package/dist/components/form/Slider/Slider.cjs +1 -1
  33. package/dist/components/form/Slider/Slider.js +58 -57
  34. package/dist/components/form/SmartSearchInput/SmartSearchInput.cjs +1 -1
  35. package/dist/components/form/SmartSearchInput/SmartSearchInput.js +65 -64
  36. package/dist/components/form/Textarea/Textarea.cjs +1 -1
  37. package/dist/components/form/Textarea/Textarea.js +4 -4
  38. package/dist/components/form/TimePicker/TimePicker.cjs +1 -1
  39. package/dist/components/form/TimePicker/TimePicker.js +31 -30
  40. package/dist/components/layout/Dashboard/Dashboard.cjs +1 -1
  41. package/dist/components/layout/Dashboard/Dashboard.js +3 -2
  42. package/dist/components/layout/InteractiveArea/InteractiveArea.cjs +1 -1
  43. package/dist/components/layout/InteractiveArea/InteractiveArea.js +1 -1
  44. package/dist/components/layout/Navbar/Navbar.cjs +1 -1
  45. package/dist/components/layout/Navbar/Navbar.js +68 -66
  46. package/dist/components/layout/Splitter/Splitter.cjs +1 -1
  47. package/dist/components/layout/Splitter/Splitter.js +47 -46
  48. package/dist/components/layout/Transition/Transition.cjs +1 -1
  49. package/dist/components/layout/Transition/Transition.js +25 -24
  50. package/dist/components/media/Audio/Audio.cjs +1 -1
  51. package/dist/components/media/Audio/Audio.js +39 -38
  52. package/dist/components/media/Image/Image.cjs +2 -2
  53. package/dist/components/media/Image/Image.js +96 -95
  54. package/dist/components/media/ImageCompare/ImageCompare.cjs +1 -1
  55. package/dist/components/media/ImageCompare/ImageCompare.js +75 -73
  56. package/dist/components/media/Video/Video.cjs +1 -1
  57. package/dist/components/media/Video/Video.js +114 -113
  58. package/dist/components/navigation/Affix/Affix.cjs +1 -1
  59. package/dist/components/navigation/Affix/Affix.js +39 -36
  60. package/dist/components/navigation/Menubar/Menubar.cjs +1 -1
  61. package/dist/components/navigation/Menubar/Menubar.js +67 -61
  62. package/dist/components/navigation/SpeedDial/SpeedDial.cjs +1 -1
  63. package/dist/components/navigation/SpeedDial/SpeedDial.js +47 -46
  64. package/dist/components/navigation/Tabs/Tabs.cjs +1 -1
  65. package/dist/components/navigation/Tabs/Tabs.js +87 -86
  66. package/dist/components/overlay/Dropdown/Dropdown.cjs +1 -1
  67. package/dist/components/overlay/Dropdown/Dropdown.js +42 -36
  68. package/dist/components/overlay/Popover/Popover.cjs +1 -1
  69. package/dist/components/overlay/Popover/Popover.js +1 -1
  70. package/dist/llms-full.txt +3 -3
  71. package/dist/llms.txt +1 -1
  72. package/dist/wimui.umd.js +5 -5
  73. 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"),r=require("../overlay/FocusTrap/FocusTrap.cjs"),i=require("./overlay-base.module.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("classnames");o=e.__toESM(o,1);let s=require("react/jsx-runtime");var c=({open:e,onOpenChange:c,children:l,overlayClassName:u,contentClassName:d,transitionProps:f,overlayTransitionProps:p,role:m=`dialog`,ariaModal:h=!0,closeOnOverlayClick:g=!0,closeOnEscape:_=!0,...v})=>((0,a.useEffect)(()=>{let t=t=>{t.key===`Escape`&&e&&_&&(t.preventDefault(),t.stopPropagation(),c(!1))};return e&&document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t)}},[e,c,_]),(0,a.useEffect)(()=>{if(e){let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}}},[e]),(0,s.jsx)(t.Portal,{children:(0,s.jsx)(n.Transition,{show:e,className:(0,o.default)(i.default.root,u),"data-testid":`overlay`,onClick:e=>{g&&e.target===e.currentTarget&&c(!1)},preset:`fade`,...p,children:(0,s.jsx)(n.Transition,{show:e,className:d,"data-testid":`overlay-content`,role:m,"aria-modal":h,onClick:e=>e.stopPropagation(),preset:`scale`,appear:!0,...f,...v,children:(0,s.jsx)(r.FocusTrap,{active:e,children:l})})})}));exports.OverlayBase=c;
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 { Transition as t } from "../layout/Transition/Transition.js";
4
- import { FocusTrap as n } from "../overlay/FocusTrap/FocusTrap.js";
5
- import r from "./overlay-base.module.js";
6
- import { useEffect as i } from "react";
7
- import a from "classnames";
8
- import { jsx as o } from "react/jsx-runtime";
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 s = ({ open: s, onOpenChange: c, children: l, overlayClassName: u, contentClassName: d, transitionProps: f, overlayTransitionProps: p, role: m = "dialog", ariaModal: h = !0, closeOnOverlayClick: g = !0, closeOnEscape: _ = !0, ...v }) => (i(() => {
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" && s && _ && (e.preventDefault(), e.stopPropagation(), c(!1));
13
+ e.key === "Escape" && c && v && (e.preventDefault(), e.stopPropagation(), l(!1));
13
14
  };
14
- return s && document.addEventListener("keydown", e), () => {
15
+ return c && document.addEventListener("keydown", e), () => {
15
16
  document.removeEventListener("keydown", e);
16
17
  };
17
18
  }, [
18
- s,
19
19
  c,
20
- _
21
- ]), i(() => {
22
- if (s) {
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
- }, [s]), /* @__PURE__ */ o(e, { children: /* @__PURE__ */ o(t, {
29
- show: s,
30
- className: a(r.root, u),
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
- g && e.target === e.currentTarget && c(!1);
34
+ _ && e.target === e.currentTarget && l(!1);
34
35
  },
35
36
  preset: "fade",
36
- ...p,
37
- children: /* @__PURE__ */ o(t, {
38
- show: s,
39
- className: d,
37
+ ...m,
38
+ children: /* @__PURE__ */ s(n, {
39
+ show: c,
40
+ className: f,
40
41
  "data-testid": "overlay-content",
41
- role: m,
42
- "aria-modal": h,
43
- onClick: (e) => e.stopPropagation(),
42
+ role: h,
43
+ "aria-modal": g,
44
44
  preset: "scale",
45
45
  appear: !0,
46
- ...f,
47
- ...v,
48
- children: /* @__PURE__ */ o(n, {
49
- active: s,
50
- children: l
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 { s as OverlayBase };
56
+ export { c as OverlayBase };
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ var e=(e,t)=>n=>{let r=n.defaultPrevented;e?.(n),(r||!n.defaultPrevented)&&t?.(n)};exports.composeEventHandlers=e;
@@ -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;
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ //#region src/components/_internal/composeEventHandlers.ts
3
+ var e = (e, t) => (n) => {
4
+ let r = n.defaultPrevented;
5
+ e?.(n), (r || !n.defaultPrevented) && t?.(n);
6
+ };
7
+ //#endregion
8
+ export { e as composeEventHandlers };
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ var e=(e,t)=>{if(typeof IntersectionObserver>`u`)return()=>{};let n=e.ownerDocument.documentElement,r=null,i,a=()=>{clearTimeout(i),r?.disconnect(),r=null},o=(s,c=1)=>{a();let{left:l,top:u,width:d,height:f}=e.getBoundingClientRect();if(s&&t(),!d||!f)return;let p=[-Math.floor(u),-Math.floor(n.clientWidth-(l+d)),-Math.floor(n.clientHeight-(u+f)),-Math.floor(l)].map(e=>`${e}px`).join(` `),m=!0;r=new IntersectionObserver(t=>{let n=t[0].intersectionRatio;if(typeof n!=`number`){a();return}let r=e.getBoundingClientRect();if(m&&(Math.abs(r.left-l)>=1||Math.abs(r.top-u)>=1)){o(!0);return}if(n!==c){if(!m){o(!0);return}n?o(!1,n):i=setTimeout(()=>o(!1,1e-7),1e3)}m=!1},{rootMargin:p,threshold:Math.max(0,Math.min(1,c))||1}),r.observe(e)};return o(!1),a};exports.observeMove=e;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 要素が「動いた」ことを拾う(T344)。
3
+ *
4
+ * 要素の位置を読んで、別の要素を `position: fixed` で置く部品(Affix・Tour)は、scroll と resize を
5
+ * 聞いて測り直す。だが、位置はスクロールしなくても変わる ── 上にある中身の高さが変わったとき
6
+ * (遅れて読み込まれる画像・開いたアコーディオン・足された行)。そのとき、要素の**大きさは変わらない**
7
+ * ので、`ResizeObserver` では拾えない(試して、直らなかった。2026-10-12)。
8
+ *
9
+ * ここでは `IntersectionObserver` を使う: 要素のいまの矩形にぴったり合わせた `rootMargin` で見張ると、
10
+ * 要素が少しでも動いた時点で、交差の割合が 1 から外れる。外れたら `onMove` を呼び、新しい矩形で
11
+ * 張り直す。floating-ui の `autoUpdate`(`layoutShift`)と同じ考え方で、こちらは依存を増やさないために
12
+ * 自前で持つ(T342 で、入力系が floating-ui を読むと束が 7.9 kB 増えた)。
13
+ *
14
+ * 戻り値は、見張りをやめる関数。`IntersectionObserver` の無い環境(jsdom)では、何もしない。
15
+ */
16
+ export declare const observeMove: (element: Element, onMove: () => void) => (() => void);
@@ -0,0 +1,44 @@
1
+ "use client";
2
+ //#region src/components/_internal/observeMove.ts
3
+ var e = (e, t) => {
4
+ if (typeof IntersectionObserver > "u") return () => {};
5
+ let n = e.ownerDocument.documentElement, r = null, i, a = () => {
6
+ clearTimeout(i), r?.disconnect(), r = null;
7
+ }, o = (s, c = 1) => {
8
+ a();
9
+ let { left: l, top: u, width: d, height: f } = e.getBoundingClientRect();
10
+ if (s && t(), !d || !f) return;
11
+ let p = [
12
+ -Math.floor(u),
13
+ -Math.floor(n.clientWidth - (l + d)),
14
+ -Math.floor(n.clientHeight - (u + f)),
15
+ -Math.floor(l)
16
+ ].map((e) => `${e}px`).join(" "), m = !0;
17
+ r = new IntersectionObserver((t) => {
18
+ let n = t[0].intersectionRatio;
19
+ if (typeof n != "number") {
20
+ a();
21
+ return;
22
+ }
23
+ let r = e.getBoundingClientRect();
24
+ if (m && (Math.abs(r.left - l) >= 1 || Math.abs(r.top - u) >= 1)) {
25
+ o(!0);
26
+ return;
27
+ }
28
+ if (n !== c) {
29
+ if (!m) {
30
+ o(!0);
31
+ return;
32
+ }
33
+ n ? o(!1, n) : i = setTimeout(() => o(!1, 1e-7), 1e3);
34
+ }
35
+ m = !1;
36
+ }, {
37
+ rootMargin: p,
38
+ threshold: Math.max(0, Math.min(1, c)) || 1
39
+ }), r.observe(e);
40
+ };
41
+ return o(!1), a;
42
+ };
43
+ //#endregion
44
+ export { e as observeMove };
@@ -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"),i=require("../../../icon/send.cjs"),a=require("../../media/Icon/Icon.cjs"),o=require("../../../hooks/useAutoResize.cjs"),s=require("./chat-ui.module.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("classnames");l=e.__toESM(l,1);let u=require("react/jsx-runtime");var d=({children:e,className:t,...n})=>(0,u.jsx)(`div`,{className:(0,l.default)(`wim-chat-ui`,s.default.container,t),...n,children:e}),f=(0,c.forwardRef)(({children:e,className:t,...n},r)=>(0,u.jsx)(`div`,{ref:r,className:(0,l.default)(s.default.messageList,t),...n,children:e}));f.displayName=`ChatMessageList`;var p=({children:e,position:t=`left`,variant:n=`default`,showAvatar:r=!0,avatar:i,timestamp:a,senderName:o,isTyping:c=!1,actions:d,actionsVisible:f=!0,className:p,...m})=>(0,u.jsxs)(`div`,{className:(0,l.default)(s.default.message,s.default[t],s.default[n],{[s.default.hasAvatar]:r},p),...m,children:[r&&t===`left`&&(0,u.jsx)(`div`,{className:s.default.messageAvatar,children:i}),(0,u.jsxs)(`div`,{className:s.default.contentWrapper,children:[o&&(0,u.jsx)(`div`,{className:s.default.sender,children:o}),(0,u.jsx)(`div`,{className:(0,l.default)(s.default.bubble,{[s.default.typing]:c}),children:c?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`span`,{className:s.default.typingDot}),(0,u.jsx)(`span`,{className:s.default.typingDot}),(0,u.jsx)(`span`,{className:s.default.typingDot})]}):e}),d&&(0,u.jsx)(`div`,{className:(0,l.default)(s.default.actions,{[s.default.hoverOnly]:!f}),children:d}),a&&(0,u.jsx)(`div`,{className:s.default.timestamp,children:a})]}),r&&t===`right`&&(0,u.jsx)(`div`,{className:s.default.messageAvatar,children:i})]}),m=({children:e,className:t,...n})=>(0,u.jsx)(`div`,{className:(0,l.default)(s.default.inputArea,t),...n,children:e}),h=(0,c.forwardRef)(({onSend:e,onAttach:l,sendButtonLabel:d,sendButtonIcon:f=i.default,showSendButton:p=!0,showAttach:h=!1,maxRows:g=8,className:_,...v},y)=>{let{t:b}=t.useWimTranslation(n.commonNs),[x,S]=c.default.useState(``),C=v.value!==void 0,w=C?v.value:x,T=o.useAutoResize(w,g);c.default.useImperativeHandle(y,()=>T.current);let E=!!d,D=()=>{e&&(e(w),C||S(``))};return(0,u.jsx)(m,{className:_,children:(0,u.jsxs)(`div`,{className:s.default.fieldContainer,children:[h&&(0,u.jsx)(`button`,{type:`button`,className:s.default.attachButton,onClick:l,"aria-label":b(`a11y.attach_file`),children:(0,u.jsx)(a.Icon,{component:r.default,size:`sm`})}),(0,u.jsx)(`textarea`,{ref:T,className:s.default.field,value:w,onChange:e=>{C||S(e.target.value),v.onChange?.(e)},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),D())},placeholder:v.placeholder||`Type a message...`,rows:1,...v}),p&&(0,u.jsx)(`button`,{className:s.default.sendButton,onClick:D,disabled:!w.trim(),type:`button`,"aria-label":d||b(`chat.send`),children:E?d:(0,u.jsx)(a.Icon,{component:f,size:`sm`})})]})})});h.displayName=`ChatInput`;var g=({src:e,alt:r,fallback:i,size:a=`md`,tone:o=`s18`,className:d,...f})=>{let[p,m]=c.default.useState(!1),{t:h}=t.useWimTranslation(n.commonNs),g=r||h(`chat.user_avatar`);return(0,u.jsx)(`div`,{className:(0,l.default)(s.default.avatar,s.default[a],s.default[o],d),...f,children:e&&!p?(0,u.jsx)(`img`,{src:e,alt:g,className:s.default.image,onError:()=>m(!0)}):(0,u.jsx)(`div`,{className:s.default.fallback,children:i||g.charAt(0).toUpperCase()})})};exports.ChatAvatar=g,exports.ChatContainer=d,exports.ChatInput=h,exports.ChatInputArea=m,exports.ChatMessage=p,exports.ChatMessageList=f;
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 "../../../icon/paperclip.js";
5
- import r from "../../../icon/send.js";
6
- import { Icon as i } from "../../media/Icon/Icon.js";
7
- import { useAutoResize as a } from "../../../hooks/useAutoResize.js";
8
- import o from "./chat-ui.module.js";
9
- import s, { forwardRef as c } from "react";
10
- import l from "classnames";
11
- import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
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 p = ({ children: e, className: t, ...n }) => /* @__PURE__ */ d("div", {
14
- className: l("wim-chat-ui", o.container, t),
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
- }), m = c(({ children: e, className: t, ...n }, r) => /* @__PURE__ */ d("div", {
18
+ }), h = l(({ children: e, className: t, ...n }, r) => /* @__PURE__ */ f("div", {
18
19
  ref: r,
19
- className: l(o.messageList, t),
20
+ className: u(s.messageList, t),
20
21
  ...n,
21
22
  children: e
22
23
  }));
23
- m.displayName = "ChatMessageList";
24
- var h = ({ children: e, position: t = "left", variant: n = "default", showAvatar: r = !0, avatar: i, timestamp: a, senderName: s, isTyping: c = !1, actions: p, actionsVisible: m = !0, className: h, ...g }) => /* @__PURE__ */ f("div", {
25
- className: l(o.message, o[t], o[n], { [o.hasAvatar]: r }, h),
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__ */ d("div", {
29
- className: o.messageAvatar,
29
+ r && t === "left" && /* @__PURE__ */ f("div", {
30
+ className: s.messageAvatar,
30
31
  children: i
31
32
  }),
32
- /* @__PURE__ */ f("div", {
33
- className: o.contentWrapper,
33
+ /* @__PURE__ */ p("div", {
34
+ className: s.contentWrapper,
34
35
  children: [
35
- s && /* @__PURE__ */ d("div", {
36
- className: o.sender,
37
- children: s
36
+ o && /* @__PURE__ */ f("div", {
37
+ className: s.sender,
38
+ children: o
38
39
  }),
39
- /* @__PURE__ */ d("div", {
40
- className: l(o.bubble, { [o.typing]: c }),
41
- children: c ? /* @__PURE__ */ f(u, { children: [
42
- /* @__PURE__ */ d("span", { className: o.typingDot }),
43
- /* @__PURE__ */ d("span", { className: o.typingDot }),
44
- /* @__PURE__ */ d("span", { className: o.typingDot })
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
- p && /* @__PURE__ */ d("div", {
48
- className: l(o.actions, { [o.hoverOnly]: !m }),
49
- children: p
48
+ l && /* @__PURE__ */ f("div", {
49
+ className: u(s.actions, { [s.hoverOnly]: !m }),
50
+ children: l
50
51
  }),
51
- a && /* @__PURE__ */ d("div", {
52
- className: o.timestamp,
52
+ a && /* @__PURE__ */ f("div", {
53
+ className: s.timestamp,
53
54
  children: a
54
55
  })
55
56
  ]
56
57
  }),
57
- r && t === "right" && /* @__PURE__ */ d("div", {
58
- className: o.messageAvatar,
58
+ r && t === "right" && /* @__PURE__ */ f("div", {
59
+ className: s.messageAvatar,
59
60
  children: i
60
61
  })
61
62
  ]
62
- }), g = ({ children: e, className: t, ...n }) => /* @__PURE__ */ d("div", {
63
- className: l(o.inputArea, t),
63
+ }), _ = ({ children: e, className: t, ...n }) => /* @__PURE__ */ f("div", {
64
+ className: u(s.inputArea, t),
64
65
  ...n,
65
66
  children: e
66
- }), _ = c(({ onSend: c, onAttach: l, sendButtonLabel: u, sendButtonIcon: p = r, showSendButton: m = !0, showAttach: h = !1, maxRows: _ = 8, className: v, ...y }, b) => {
67
- let { t: x } = e(t), [S, C] = s.useState(""), w = y.value !== void 0, T = w ? y.value : S, E = a(T, _);
68
- s.useImperativeHandle(b, () => E.current);
69
- let D = !!u, O = () => {
70
- c && (c(T), w || C(""));
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__ */ d(g, {
73
- className: v,
74
- children: /* @__PURE__ */ f("div", {
75
- className: o.fieldContainer,
77
+ return /* @__PURE__ */ f(_, {
78
+ className: y,
79
+ children: /* @__PURE__ */ p("div", {
80
+ className: s.fieldContainer,
76
81
  children: [
77
- h && /* @__PURE__ */ d("button", {
82
+ g && /* @__PURE__ */ f("button", {
78
83
  type: "button",
79
- className: o.attachButton,
80
- onClick: l,
81
- "aria-label": x("a11y.attach_file"),
82
- children: /* @__PURE__ */ d(i, {
83
- component: n,
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__ */ d("textarea", {
88
- ref: E,
89
- className: o.field,
90
- value: T,
91
- onChange: (e) => {
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
- ...y
98
+ ...b,
99
+ onChange: A,
100
+ onKeyDown: n(b.onKeyDown, j)
100
101
  }),
101
- m && /* @__PURE__ */ d("button", {
102
- className: o.sendButton,
103
- onClick: O,
104
- disabled: !T.trim(),
102
+ h && /* @__PURE__ */ f("button", {
103
+ className: s.sendButton,
104
+ onClick: k,
105
+ disabled: !E.trim(),
105
106
  type: "button",
106
- "aria-label": u || x("chat.send"),
107
- children: D ? u : /* @__PURE__ */ d(i, {
108
- component: p,
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
- _.displayName = "ChatInput";
117
- var v = ({ src: n, alt: r, fallback: i, size: a = "md", tone: c = "s18", className: u, ...f }) => {
118
- let [p, m] = s.useState(!1), { t: h } = e(t), g = r || h("chat.user_avatar");
119
- return /* @__PURE__ */ d("div", {
120
- className: l(o.avatar, o[a], o[c], u),
121
- ...f,
122
- children: n && !p ? /* @__PURE__ */ d("img", {
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: o.image,
126
+ className: s.image,
126
127
  onError: () => m(!0)
127
- }) : /* @__PURE__ */ d("div", {
128
- className: o.fallback,
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 { v as ChatAvatar, p as ChatContainer, _ as ChatInput, g as ChatInputArea, h as ChatMessage, m as ChatMessageList };
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"),r=require("../../media/Icon/Icon.cjs"),i=require("./accordion.module.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("classnames");o=e.__toESM(o,1);let s=require("react/jsx-runtime");var c=(0,a.createContext)(null),l=()=>{let e=(0,a.useContext)(c);if(!e)throw Error(`Accordion components must be used within an Accordion`);return e},u=(0,a.forwardRef)(function({type:e=`single`,defaultValue:n,value:r,onChange:l,collapsible:u=!0,className:d,children:f,id:p,asChild:m,...h},g){let _=(0,a.useId)(),v=p||_,[y,b]=(0,a.useState)(()=>n?Array.isArray(n)?n:[n]:[]),x=a.default.useRef(null),S=e=>{x.current=e,typeof g==`function`?g(e):g&&(g.current=e)},C=r!==void 0,w=(0,a.useMemo)(()=>{let e=C?r:y;return Array.isArray(e)?e:e?[e]:[]},[C,r,y]),T=(0,a.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),l?.(e===`single`?n[0]??``:n)},[w,u,C,l,e]),E=m?t.Root:`div`;return(0,s.jsx)(c.Provider,{value:{value:w,onValueChange:T,type:e,accordionId:v,containerRef:x},children:(0,s.jsx)(E,{ref:S,className:(0,o.default)(`wim-accordion`,i.default.root,d),...h,children:f})})}),d=(0,a.createContext)(null),f=(0,a.forwardRef)(function({value:e,disabled:n=!1,className:r,children:a,asChild:c,...u},f){let{value:p,accordionId:m}=l(),h=p.includes(e),g=`wim-accordion-trigger-${m}-${e}`,_=`wim-accordion-content-${m}-${e}`,v=c?t.Root:`div`;return(0,s.jsx)(d.Provider,{value:{value:e,disabled:n,isLogicOpen:h,triggerId:g,contentId:_},children:(0,s.jsx)(v,{ref:f,className:(0,o.default)(i.default.item,n&&i.default.disabled,h&&i.default.open,r),...u,children:a})})}),p=(0,a.forwardRef)(function({children:e,className:c,asChild:u,...f},p){let{onValueChange:m}=l(),h=(0,a.useContext)(d);if(!h)throw Error(`AccordionTrigger must be used within AccordionItem`);let g=e=>{if(h.disabled){e.preventDefault();return}m(h.value)},{containerRef:_}=l();return(0,s.jsxs)(u?t.Root:`button`,{ref:p,type:u?void 0:`button`,id:h.triggerId,className:(0,o.default)(i.default.trigger,c),"aria-expanded":h.isLogicOpen,"aria-controls":h.contentId,"aria-disabled":h.disabled,disabled:h.disabled,onClick:g,onKeyDown:e=>{if(h.disabled)return;let t=Array.from(_.current?.querySelectorAll(`.${i.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()}f.onKeyDown?.(e)},...f,children:[(0,s.jsx)(`span`,{className:i.default.triggerContent,children:e}),(0,s.jsx)(r.Icon,{component:n.default,className:(0,o.default)(i.default.chevron,h.isLogicOpen&&i.default.open)})]})}),m=(0,a.forwardRef)(function({children:e,className:n,asChild:r,...c},l){let u=(0,a.useContext)(d);if(!u)throw Error(`AccordionContent must be used within AccordionItem`);return(0,s.jsx)(r?t.Root:`div`,{ref:l,id:u.contentId,role:`region`,"aria-labelledby":u.triggerId,className:(0,o.default)(i.default.content,u.isLogicOpen&&i.default.open,n),...c,children:(0,s.jsx)(`div`,{className:i.default.contentInner,children:(0,s.jsx)(`div`,{className:i.default.contentBody,children:e})})})}),h=u;h.Item=f,h.Trigger=p,h.Content=m,h.displayName=`Accordion`,f.displayName=`Accordion.Item`,p.displayName=`Accordion.Trigger`,m.displayName=`Accordion.Content`,exports.Accordion=h,exports.default=h,exports.AccordionContent=m,exports.AccordionItem=f,exports.AccordionTrigger=p;
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;