@orion-ds/react 4.2.11 → 4.2.14

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 (303) hide show
  1. package/dist/index10.cjs +1 -1
  2. package/dist/index10.mjs +1 -1
  3. package/dist/index100.cjs +1 -1
  4. package/dist/index100.mjs +46 -14
  5. package/dist/index101.cjs +1 -1
  6. package/dist/index101.mjs +14 -28
  7. package/dist/index102.cjs +1 -1
  8. package/dist/index102.mjs +28 -27
  9. package/dist/index103.cjs +1 -1
  10. package/dist/index103.mjs +29 -29
  11. package/dist/index104.cjs +1 -1
  12. package/dist/index104.mjs +44 -20
  13. package/dist/index105.cjs +1 -1
  14. package/dist/index105.mjs +52 -44
  15. package/dist/index106.cjs +1 -1
  16. package/dist/index106.mjs +42 -54
  17. package/dist/index107.cjs +1 -1
  18. package/dist/index107.mjs +18 -40
  19. package/dist/index108.cjs +1 -1
  20. package/dist/index108.mjs +50 -36
  21. package/dist/index109.cjs +1 -1
  22. package/dist/index109.mjs +20 -64
  23. package/dist/index11.cjs +1 -1
  24. package/dist/index11.mjs +1 -1
  25. package/dist/index110.cjs +1 -1
  26. package/dist/index110.mjs +36 -24
  27. package/dist/index111.cjs +1 -1
  28. package/dist/index111.mjs +20 -52
  29. package/dist/index112.cjs +1 -1
  30. package/dist/index112.mjs +29 -37
  31. package/dist/index113.cjs +1 -1
  32. package/dist/index113.mjs +18 -28
  33. package/dist/index114.cjs +1 -1
  34. package/dist/index114.mjs +62 -44
  35. package/dist/index116.cjs +1 -1
  36. package/dist/index116.mjs +12 -36
  37. package/dist/index117.cjs +1 -1
  38. package/dist/index117.mjs +35 -28
  39. package/dist/index118.cjs +1 -1
  40. package/dist/index118.mjs +49 -19
  41. package/dist/index119.cjs +1 -1
  42. package/dist/index119.mjs +36 -38
  43. package/dist/index12.cjs +1 -1
  44. package/dist/index12.mjs +1 -1
  45. package/dist/index120.cjs +1 -1
  46. package/dist/index120.mjs +32 -40
  47. package/dist/index121.cjs +1 -1
  48. package/dist/index121.mjs +27 -28
  49. package/dist/index122.cjs +1 -1
  50. package/dist/index122.mjs +12 -52
  51. package/dist/index123.cjs +1 -1
  52. package/dist/index123.mjs +40 -32
  53. package/dist/index125.cjs +1 -1
  54. package/dist/index125.mjs +42 -35
  55. package/dist/index126.cjs +1 -1
  56. package/dist/index126.mjs +27 -27
  57. package/dist/index127.cjs +1 -1
  58. package/dist/index127.mjs +37 -21
  59. package/dist/index128.cjs +1 -1
  60. package/dist/index128.mjs +26 -44
  61. package/dist/index129.cjs +1 -1
  62. package/dist/index129.mjs +55 -51
  63. package/dist/index13.cjs +1 -1
  64. package/dist/index13.mjs +1 -1
  65. package/dist/index130.cjs +1 -1
  66. package/dist/index130.mjs +20 -64
  67. package/dist/index131.cjs +1 -1
  68. package/dist/index131.mjs +26 -44
  69. package/dist/index132.cjs +1 -1
  70. package/dist/index132.mjs +52 -42
  71. package/dist/index133.cjs +1 -1
  72. package/dist/index133.mjs +106 -28
  73. package/dist/index134.cjs +1 -1
  74. package/dist/index134.mjs +55 -12
  75. package/dist/index135.cjs +1 -1
  76. package/dist/index135.mjs +18 -20
  77. package/dist/index136.cjs +1 -1
  78. package/dist/index136.mjs +65 -24
  79. package/dist/index137.cjs +1 -1
  80. package/dist/index137.mjs +64 -16
  81. package/dist/index138.cjs +1 -1
  82. package/dist/index138.mjs +28 -50
  83. package/dist/index139.cjs +1 -1
  84. package/dist/index139.mjs +24 -40
  85. package/dist/index14.cjs +1 -1
  86. package/dist/index14.mjs +1 -1
  87. package/dist/index140.cjs +1 -1
  88. package/dist/index140.mjs +18 -42
  89. package/dist/index141.cjs +1 -1
  90. package/dist/index141.mjs +24 -18
  91. package/dist/index142.cjs +1 -1
  92. package/dist/index142.mjs +40 -55
  93. package/dist/index143.cjs +1 -1
  94. package/dist/index143.mjs +22 -65
  95. package/dist/index144.cjs +1 -1
  96. package/dist/index144.mjs +46 -33
  97. package/dist/index145.cjs +1 -1
  98. package/dist/index145.mjs +20 -18
  99. package/dist/index146.cjs +1 -1
  100. package/dist/index146.mjs +33 -67
  101. package/dist/index147.cjs +1 -1
  102. package/dist/index147.mjs +24 -56
  103. package/dist/index148.cjs +1 -1
  104. package/dist/index148.mjs +67 -18
  105. package/dist/index149.cjs +1 -1
  106. package/dist/index149.mjs +46 -62
  107. package/dist/index15.cjs +1 -1
  108. package/dist/index15.mjs +1 -1
  109. package/dist/index150.cjs +1 -1
  110. package/dist/index150.mjs +24 -76
  111. package/dist/index151.cjs +1 -1
  112. package/dist/index151.mjs +45 -24
  113. package/dist/index152.cjs +1 -1
  114. package/dist/index152.mjs +42 -32
  115. package/dist/index154.cjs +1 -1
  116. package/dist/index154.mjs +64 -30
  117. package/dist/index155.cjs +1 -1
  118. package/dist/index155.mjs +53 -106
  119. package/dist/index156.cjs +1 -1
  120. package/dist/index156.mjs +76 -45
  121. package/dist/index157.cjs +1 -1
  122. package/dist/index157.mjs +38 -234
  123. package/dist/index158.cjs +1 -1
  124. package/dist/index158.mjs +235 -34
  125. package/dist/index159.cjs +1 -1
  126. package/dist/index159.mjs +32 -42
  127. package/dist/index16.cjs +1 -1
  128. package/dist/index16.mjs +1 -1
  129. package/dist/index160.cjs +1 -1
  130. package/dist/index160.mjs +42 -169
  131. package/dist/index161.cjs +1 -1
  132. package/dist/index161.mjs +162 -177
  133. package/dist/index162.cjs +1 -1
  134. package/dist/index162.mjs +181 -24
  135. package/dist/index163.cjs +1 -1
  136. package/dist/index163.mjs +28 -90
  137. package/dist/index164.cjs +1 -1
  138. package/dist/index164.mjs +89 -51
  139. package/dist/index165.cjs +1 -1
  140. package/dist/index165.mjs +49 -63
  141. package/dist/index166.cjs +1 -1
  142. package/dist/index166.mjs +60 -118
  143. package/dist/index167.cjs +1 -1
  144. package/dist/index167.mjs +109 -93
  145. package/dist/index168.cjs +1 -1
  146. package/dist/index168.mjs +97 -100
  147. package/dist/index169.cjs +1 -1
  148. package/dist/index169.mjs +101 -112
  149. package/dist/index17.cjs +1 -1
  150. package/dist/index17.mjs +1 -1
  151. package/dist/index170.cjs +1 -1
  152. package/dist/index170.mjs +118 -210
  153. package/dist/index171.cjs +1 -1
  154. package/dist/index171.mjs +214 -33
  155. package/dist/index172.cjs +1 -1
  156. package/dist/index172.mjs +44 -26
  157. package/dist/index173.cjs +1 -1
  158. package/dist/index173.mjs +30 -20
  159. package/dist/index174.cjs +1 -1
  160. package/dist/index174.mjs +36 -46
  161. package/dist/index175.cjs +1 -1
  162. package/dist/index175.mjs +56 -28
  163. package/dist/index176.cjs +1 -1
  164. package/dist/index176.mjs +30 -57
  165. package/dist/index177.cjs +1 -1
  166. package/dist/index177.mjs +32 -24
  167. package/dist/index178.cjs +1 -1
  168. package/dist/index178.mjs +28 -12
  169. package/dist/index179.cjs +1 -1
  170. package/dist/index179.mjs +28 -18
  171. package/dist/index18.cjs +1 -1
  172. package/dist/index18.mjs +1 -1
  173. package/dist/index180.cjs +1 -1
  174. package/dist/index180.mjs +16 -38
  175. package/dist/index181.cjs +1 -1
  176. package/dist/index181.mjs +33 -30
  177. package/dist/index185.cjs +1 -1
  178. package/dist/index185.mjs +1 -1
  179. package/dist/index19.cjs +1 -1
  180. package/dist/index19.mjs +2 -2
  181. package/dist/index20.cjs +1 -1
  182. package/dist/index20.mjs +14 -14
  183. package/dist/index22.cjs +1 -1
  184. package/dist/index22.mjs +1 -1
  185. package/dist/index23.cjs +1 -1
  186. package/dist/index23.mjs +1 -1
  187. package/dist/index24.cjs +1 -1
  188. package/dist/index24.mjs +1 -1
  189. package/dist/index25.cjs +1 -1
  190. package/dist/index25.mjs +1 -1
  191. package/dist/index27.cjs +1 -1
  192. package/dist/index27.mjs +1 -1
  193. package/dist/index28.cjs +1 -1
  194. package/dist/index28.mjs +1 -1
  195. package/dist/index30.cjs +1 -1
  196. package/dist/index30.mjs +1 -1
  197. package/dist/index31.cjs +1 -1
  198. package/dist/index31.mjs +1 -1
  199. package/dist/index32.cjs +1 -1
  200. package/dist/index32.mjs +1 -1
  201. package/dist/index33.cjs +1 -1
  202. package/dist/index33.mjs +1 -1
  203. package/dist/index34.cjs +1 -1
  204. package/dist/index34.mjs +1 -1
  205. package/dist/index35.cjs +1 -1
  206. package/dist/index35.mjs +1 -1
  207. package/dist/index36.cjs +1 -1
  208. package/dist/index36.mjs +1 -1
  209. package/dist/index37.cjs +1 -1
  210. package/dist/index37.mjs +1 -1
  211. package/dist/index38.cjs +1 -1
  212. package/dist/index38.mjs +1 -1
  213. package/dist/index39.cjs +1 -1
  214. package/dist/index39.mjs +1 -1
  215. package/dist/index40.cjs +1 -1
  216. package/dist/index40.mjs +1 -1
  217. package/dist/index42.cjs +1 -1
  218. package/dist/index42.mjs +1 -1
  219. package/dist/index43.cjs +1 -1
  220. package/dist/index43.mjs +1 -1
  221. package/dist/index44.cjs +1 -1
  222. package/dist/index44.mjs +1 -1
  223. package/dist/index46.cjs +1 -1
  224. package/dist/index46.mjs +1 -1
  225. package/dist/index47.cjs +1 -1
  226. package/dist/index47.mjs +1 -1
  227. package/dist/index49.cjs +1 -1
  228. package/dist/index49.mjs +1 -1
  229. package/dist/index5.cjs +1 -1
  230. package/dist/index5.mjs +1 -1
  231. package/dist/index50.cjs +1 -1
  232. package/dist/index50.mjs +1 -1
  233. package/dist/index51.cjs +1 -1
  234. package/dist/index51.mjs +1 -1
  235. package/dist/index52.cjs +1 -1
  236. package/dist/index52.mjs +1 -1
  237. package/dist/index53.cjs +1 -1
  238. package/dist/index53.mjs +1 -1
  239. package/dist/index54.cjs +1 -1
  240. package/dist/index54.mjs +1 -1
  241. package/dist/index55.cjs +1 -1
  242. package/dist/index55.mjs +1 -1
  243. package/dist/index56.cjs +1 -1
  244. package/dist/index56.mjs +1 -1
  245. package/dist/index57.cjs +1 -1
  246. package/dist/index57.mjs +1 -1
  247. package/dist/index58.cjs +1 -1
  248. package/dist/index58.mjs +1 -1
  249. package/dist/index59.cjs +1 -1
  250. package/dist/index59.mjs +1 -1
  251. package/dist/index6.cjs +1 -1
  252. package/dist/index6.mjs +1 -1
  253. package/dist/index60.cjs +1 -1
  254. package/dist/index60.mjs +1 -1
  255. package/dist/index61.cjs +1 -1
  256. package/dist/index61.mjs +1 -1
  257. package/dist/index62.cjs +1 -1
  258. package/dist/index62.mjs +1 -1
  259. package/dist/index64.cjs +1 -1
  260. package/dist/index64.mjs +1 -1
  261. package/dist/index65.cjs +1 -1
  262. package/dist/index65.mjs +1 -1
  263. package/dist/index66.cjs +1 -1
  264. package/dist/index66.mjs +1 -1
  265. package/dist/index67.cjs +1 -1
  266. package/dist/index67.mjs +1 -1
  267. package/dist/index69.cjs +1 -1
  268. package/dist/index69.mjs +1 -1
  269. package/dist/index7.cjs +1 -1
  270. package/dist/index7.mjs +1 -1
  271. package/dist/index70.cjs +1 -1
  272. package/dist/index70.mjs +1 -1
  273. package/dist/index71.cjs +1 -1
  274. package/dist/index71.mjs +1 -1
  275. package/dist/index72.cjs +1 -1
  276. package/dist/index72.mjs +1 -1
  277. package/dist/index73.cjs +1 -1
  278. package/dist/index73.mjs +1 -1
  279. package/dist/index76.cjs +1 -1
  280. package/dist/index76.mjs +1 -1
  281. package/dist/index77.cjs +1 -1
  282. package/dist/index77.mjs +1 -1
  283. package/dist/index78.cjs +1 -1
  284. package/dist/index78.mjs +1 -1
  285. package/dist/index79.cjs +1 -1
  286. package/dist/index79.mjs +1 -1
  287. package/dist/index8.cjs +1 -1
  288. package/dist/index8.mjs +1 -1
  289. package/dist/index80.cjs +1 -1
  290. package/dist/index80.mjs +1 -1
  291. package/dist/index81.cjs +1 -1
  292. package/dist/index81.mjs +1 -1
  293. package/dist/index82.cjs +1 -1
  294. package/dist/index82.mjs +2 -2
  295. package/dist/index9.cjs +1 -1
  296. package/dist/index9.mjs +1 -1
  297. package/dist/index97.cjs +1 -1
  298. package/dist/index97.mjs +154 -30
  299. package/dist/index98.cjs +1 -1
  300. package/dist/index98.mjs +202 -138
  301. package/dist/index99.cjs +1 -1
  302. package/dist/index99.mjs +30 -218
  303. package/package.json +1 -1
package/dist/index163.mjs CHANGED
@@ -1,93 +1,31 @@
1
- import { jsxs as r, jsx as o, Fragment as d } from "react/jsx-runtime";
2
- import { useState as g, useCallback as k } from "react";
3
- import { Prism as x } from "react-syntax-highlighter";
4
- import { oneLight as B, oneDark as b } from "react-syntax-highlighter/dist/esm/styles/prism";
5
- import { Check as j, Copy as v } from "lucide-react";
6
- import t from "./index157.mjs";
7
- import { useThemeContext as L } from "./index75.mjs";
8
- const N = (e) => e ? {
9
- js: "javascript",
10
- ts: "typescript",
11
- jsx: "jsx",
12
- tsx: "tsx",
13
- py: "python",
14
- rb: "ruby",
15
- sh: "bash",
16
- shell: "bash",
17
- yml: "yaml",
18
- md: "markdown"
19
- }[e.toLowerCase()] || e.toLowerCase() : "text", w = ({
20
- code: e,
21
- language: s,
22
- showLineNumbers: m = !1,
23
- showCopyButton: p = !0,
24
- maxHeight: h = "400px",
25
- className: y,
26
- ...C
27
- }) => {
28
- const [a, i] = g(!1);
29
- let l = "dark";
30
- try {
31
- l = L().theme;
32
- } catch {
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import e from "./index158.mjs";
3
+ const t = ({
4
+ label: a = "Generating response",
5
+ className: i,
6
+ ...n
7
+ }) => /* @__PURE__ */ s(
8
+ "div",
9
+ {
10
+ className: [e.message, e.messageAssistant, i].filter(Boolean).join(" "),
11
+ role: "status",
12
+ "aria-live": "polite",
13
+ "aria-label": a,
14
+ ...n,
15
+ children: /* @__PURE__ */ s("div", { className: e.messageContent, children: /* @__PURE__ */ s(
16
+ "div",
17
+ {
18
+ className: [
19
+ e.messageBubble,
20
+ e.messageBubbleAssistant,
21
+ e.thinkingBubble
22
+ ].join(" "),
23
+ children: /* @__PURE__ */ s("span", { className: e.thinkingSpinner })
24
+ }
25
+ ) })
33
26
  }
34
- const u = k(async () => {
35
- try {
36
- await navigator.clipboard.writeText(e), i(!0), setTimeout(() => i(!1), 2e3);
37
- } catch (n) {
38
- console.error("Failed to copy code:", n);
39
- }
40
- }, [e]), c = N(s), f = l === "light" ? B : b;
41
- return /* @__PURE__ */ r(
42
- "div",
43
- {
44
- className: [t.codeBlock, y].filter(Boolean).join(" "),
45
- ...C,
46
- children: [
47
- /* @__PURE__ */ r("div", { className: t.codeBlockHeader, children: [
48
- /* @__PURE__ */ o("span", { className: t.codeBlockLanguage, children: c }),
49
- p && /* @__PURE__ */ o(
50
- "button",
51
- {
52
- className: [t.codeBlockCopy, a && t.codeBlockCopied].filter(Boolean).join(" "),
53
- onClick: u,
54
- "aria-label": a ? "Copied!" : "Copy code",
55
- children: a ? /* @__PURE__ */ r(d, { children: [
56
- /* @__PURE__ */ o(j, { size: 14 }),
57
- "Copied!"
58
- ] }) : /* @__PURE__ */ r(d, { children: [
59
- /* @__PURE__ */ o(v, { size: 14 }),
60
- "Copy"
61
- ] })
62
- }
63
- )
64
- ] }),
65
- /* @__PURE__ */ o("div", { className: t.codeBlockContent, style: { maxHeight: h }, children: /* @__PURE__ */ o(
66
- x,
67
- {
68
- language: c,
69
- style: f,
70
- showLineNumbers: m,
71
- customStyle: {
72
- margin: 0,
73
- padding: 0,
74
- background: "transparent",
75
- fontSize: "inherit",
76
- lineHeight: "inherit"
77
- },
78
- codeTagProps: {
79
- style: {
80
- fontFamily: "var(--font-mono)"
81
- }
82
- },
83
- children: e
84
- }
85
- ) })
86
- ]
87
- }
88
- );
89
- };
90
- w.displayName = "ChatCodeBlock";
27
+ );
28
+ t.displayName = "ChatTypingIndicator";
91
29
  export {
92
- w as ChatCodeBlock
30
+ t as ChatTypingIndicator
93
31
  };
package/dist/index164.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),d=require("react-markdown"),u=require("remark-gfm"),m=require("./index163.cjs"),g=require("./index157.cjs"),o=({content:s,className:c,...i})=>r.jsx("div",{className:[g.default.markdown,c].filter(Boolean).join(" "),...i,children:r.jsx(d,{remarkPlugins:[u],components:{code({className:e,children:t,...a}){const n=/language-(\w+)/.exec(e||"");if(!n)return r.jsx("code",{className:e,...a,children:t});const l=String(t).replace(/\n$/,"");return r.jsx(m.ChatCodeBlock,{code:l,language:n[1]})},pre({children:e}){return r.jsx(r.Fragment,{children:e})},a({href:e,children:t,...a}){const n=e?.startsWith("http");return r.jsx("a",{href:e,target:n?"_blank":void 0,rel:n?"noopener noreferrer":void 0,...a,children:t})}},children:s})});o.displayName="ChatMarkdown";exports.ChatMarkdown=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("react"),f=require("react-syntax-highlighter"),d=require("react-syntax-highlighter/dist/esm/styles/prism"),u=require("lucide-react"),o=require("./index158.cjs"),k=require("./index75.cjs"),b=t=>t?{js:"javascript",ts:"typescript",jsx:"jsx",tsx:"tsx",py:"python",rb:"ruby",sh:"bash",shell:"bash",yml:"yaml",md:"markdown"}[t.toLowerCase()]||t.toLowerCase():"text",h=({code:t,language:s,showLineNumbers:m=!1,showCopyButton:p=!0,maxHeight:y="400px",className:C,...x})=>{const[a,r]=n.useState(!1);let c="dark";try{c=k.useThemeContext().theme}catch{}const g=n.useCallback(async()=>{try{await navigator.clipboard.writeText(t),r(!0),setTimeout(()=>r(!1),2e3)}catch(l){console.error("Failed to copy code:",l)}},[t]),i=b(s),j=c==="light"?d.oneLight:d.oneDark;return e.jsxs("div",{className:[o.default.codeBlock,C].filter(Boolean).join(" "),...x,children:[e.jsxs("div",{className:o.default.codeBlockHeader,children:[e.jsx("span",{className:o.default.codeBlockLanguage,children:i}),p&&e.jsx("button",{className:[o.default.codeBlockCopy,a&&o.default.codeBlockCopied].filter(Boolean).join(" "),onClick:g,"aria-label":a?"Copied!":"Copy code",children:a?e.jsxs(e.Fragment,{children:[e.jsx(u.Check,{size:14}),"Copied!"]}):e.jsxs(e.Fragment,{children:[e.jsx(u.Copy,{size:14}),"Copy"]})})]}),e.jsx("div",{className:o.default.codeBlockContent,style:{maxHeight:y},children:e.jsx(f.Prism,{language:i,style:j,showLineNumbers:m,customStyle:{margin:0,padding:0,background:"transparent",fontSize:"inherit",lineHeight:"inherit"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},children:t})})]})};h.displayName="ChatCodeBlock";exports.ChatCodeBlock=h;
package/dist/index164.mjs CHANGED
@@ -1,55 +1,93 @@
1
- import { jsx as e, Fragment as c } from "react/jsx-runtime";
2
- import l from "react-markdown";
3
- import d from "remark-gfm";
4
- import { ChatCodeBlock as p } from "./index163.mjs";
5
- import g from "./index157.mjs";
6
- const f = ({
7
- content: a,
8
- className: i,
9
- ...m
10
- }) => /* @__PURE__ */ e(
11
- "div",
12
- {
13
- className: [g.markdown, i].filter(Boolean).join(" "),
14
- ...m,
15
- children: /* @__PURE__ */ e(
16
- l,
17
- {
18
- remarkPlugins: [d],
19
- components: {
20
- // Custom code block rendering
21
- code({ className: r, children: o, ...t }) {
22
- const n = /language-(\w+)/.exec(r || "");
23
- if (!n)
24
- return /* @__PURE__ */ e("code", { className: r, ...t, children: o });
25
- const s = String(o).replace(/\n$/, "");
26
- return /* @__PURE__ */ e(p, { code: s, language: n[1] });
27
- },
28
- // Custom pre rendering (remove wrapper for code blocks)
29
- pre({ children: r }) {
30
- return /* @__PURE__ */ e(c, { children: r });
31
- },
32
- // Custom link rendering (open in new tab)
33
- a({ href: r, children: o, ...t }) {
34
- const n = r?.startsWith("http");
35
- return /* @__PURE__ */ e(
36
- "a",
37
- {
38
- href: r,
39
- target: n ? "_blank" : void 0,
40
- rel: n ? "noopener noreferrer" : void 0,
41
- ...t,
42
- children: o
1
+ import { jsxs as r, jsx as o, Fragment as d } from "react/jsx-runtime";
2
+ import { useState as g, useCallback as k } from "react";
3
+ import { Prism as x } from "react-syntax-highlighter";
4
+ import { oneLight as B, oneDark as b } from "react-syntax-highlighter/dist/esm/styles/prism";
5
+ import { Check as j, Copy as v } from "lucide-react";
6
+ import t from "./index158.mjs";
7
+ import { useThemeContext as L } from "./index75.mjs";
8
+ const N = (e) => e ? {
9
+ js: "javascript",
10
+ ts: "typescript",
11
+ jsx: "jsx",
12
+ tsx: "tsx",
13
+ py: "python",
14
+ rb: "ruby",
15
+ sh: "bash",
16
+ shell: "bash",
17
+ yml: "yaml",
18
+ md: "markdown"
19
+ }[e.toLowerCase()] || e.toLowerCase() : "text", w = ({
20
+ code: e,
21
+ language: s,
22
+ showLineNumbers: m = !1,
23
+ showCopyButton: p = !0,
24
+ maxHeight: h = "400px",
25
+ className: y,
26
+ ...C
27
+ }) => {
28
+ const [a, i] = g(!1);
29
+ let l = "dark";
30
+ try {
31
+ l = L().theme;
32
+ } catch {
33
+ }
34
+ const u = k(async () => {
35
+ try {
36
+ await navigator.clipboard.writeText(e), i(!0), setTimeout(() => i(!1), 2e3);
37
+ } catch (n) {
38
+ console.error("Failed to copy code:", n);
39
+ }
40
+ }, [e]), c = N(s), f = l === "light" ? B : b;
41
+ return /* @__PURE__ */ r(
42
+ "div",
43
+ {
44
+ className: [t.codeBlock, y].filter(Boolean).join(" "),
45
+ ...C,
46
+ children: [
47
+ /* @__PURE__ */ r("div", { className: t.codeBlockHeader, children: [
48
+ /* @__PURE__ */ o("span", { className: t.codeBlockLanguage, children: c }),
49
+ p && /* @__PURE__ */ o(
50
+ "button",
51
+ {
52
+ className: [t.codeBlockCopy, a && t.codeBlockCopied].filter(Boolean).join(" "),
53
+ onClick: u,
54
+ "aria-label": a ? "Copied!" : "Copy code",
55
+ children: a ? /* @__PURE__ */ r(d, { children: [
56
+ /* @__PURE__ */ o(j, { size: 14 }),
57
+ "Copied!"
58
+ ] }) : /* @__PURE__ */ r(d, { children: [
59
+ /* @__PURE__ */ o(v, { size: 14 }),
60
+ "Copy"
61
+ ] })
62
+ }
63
+ )
64
+ ] }),
65
+ /* @__PURE__ */ o("div", { className: t.codeBlockContent, style: { maxHeight: h }, children: /* @__PURE__ */ o(
66
+ x,
67
+ {
68
+ language: c,
69
+ style: f,
70
+ showLineNumbers: m,
71
+ customStyle: {
72
+ margin: 0,
73
+ padding: 0,
74
+ background: "transparent",
75
+ fontSize: "inherit",
76
+ lineHeight: "inherit"
77
+ },
78
+ codeTagProps: {
79
+ style: {
80
+ fontFamily: "var(--font-mono)"
43
81
  }
44
- );
82
+ },
83
+ children: e
45
84
  }
46
- },
47
- children: a
48
- }
49
- )
50
- }
51
- );
52
- f.displayName = "ChatMarkdown";
85
+ ) })
86
+ ]
87
+ }
88
+ );
89
+ };
90
+ w.displayName = "ChatCodeBlock";
53
91
  export {
54
- f as ChatMarkdown
92
+ w as ChatCodeBlock
55
93
  };
package/dist/index165.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),I=require("lucide-react"),a=require("./index157.cjs"),w=require("./index185.cjs"),u=({src:i,alt:t="Image attachment",thumbnail:g,onClick:n,enableLightbox:s=!0,className:o,...l})=>{const[h,c]=d.useState(!1),[f,v]=d.useState(!1),m=()=>{n?n():s&&c(!0)},x=r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),m())},j=()=>{v(!0)};return f?e.jsxs("div",{className:[a.default.imagePreview,a.default.attachmentPreview,o].filter(Boolean).join(" "),...l,children:[e.jsx("div",{className:a.default.attachmentPreviewIcon,children:e.jsx(I.ImageOff,{size:20})}),e.jsx("span",{className:a.default.attachmentPreviewName,children:"Image failed to load"})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:[a.default.imagePreview,o].filter(Boolean).join(" "),onClick:m,onKeyDown:x,role:"button",tabIndex:0,"aria-label":t,...l,children:e.jsx("img",{src:g||i,alt:t,className:a.default.imagePreviewImg,onError:j,loading:"lazy"})}),s&&e.jsx(w.ChatLightbox,{src:i,alt:t,isOpen:h,onClose:()=>c(!1)})]})};u.displayName="ChatImagePreview";exports.ChatImagePreview=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),d=require("react-markdown"),u=require("remark-gfm"),m=require("./index164.cjs"),g=require("./index158.cjs"),o=({content:s,className:c,...i})=>r.jsx("div",{className:[g.default.markdown,c].filter(Boolean).join(" "),...i,children:r.jsx(d,{remarkPlugins:[u],components:{code({className:e,children:t,...a}){const n=/language-(\w+)/.exec(e||"");if(!n)return r.jsx("code",{className:e,...a,children:t});const l=String(t).replace(/\n$/,"");return r.jsx(m.ChatCodeBlock,{code:l,language:n[1]})},pre({children:e}){return r.jsx(r.Fragment,{children:e})},a({href:e,children:t,...a}){const n=e?.startsWith("http");return r.jsx("a",{href:e,target:n?"_blank":void 0,rel:n?"noopener noreferrer":void 0,...a,children:t})}},children:s})});o.displayName="ChatMarkdown";exports.ChatMarkdown=o;
package/dist/index165.mjs CHANGED
@@ -1,69 +1,55 @@
1
- import { jsxs as f, jsx as e, Fragment as u } from "react/jsx-runtime";
2
- import { useState as g } from "react";
3
- import { ImageOff as P } from "lucide-react";
4
- import a from "./index157.mjs";
5
- import { ChatLightbox as y } from "./index185.mjs";
6
- const x = ({
7
- src: i,
8
- alt: r = "Image attachment",
9
- thumbnail: h,
10
- onClick: o,
11
- enableLightbox: n = !0,
12
- className: m,
13
- ...s
14
- }) => {
15
- const [d, l] = g(!1), [p, v] = g(!1), c = () => {
16
- o ? o() : n && l(!0);
17
- }, I = (t) => {
18
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), c());
19
- }, w = () => {
20
- v(!0);
21
- };
22
- return p ? /* @__PURE__ */ f(
23
- "div",
24
- {
25
- className: [a.imagePreview, a.attachmentPreview, m].filter(Boolean).join(" "),
26
- ...s,
27
- children: [
28
- /* @__PURE__ */ e("div", { className: a.attachmentPreviewIcon, children: /* @__PURE__ */ e(P, { size: 20 }) }),
29
- /* @__PURE__ */ e("span", { className: a.attachmentPreviewName, children: "Image failed to load" })
30
- ]
31
- }
32
- ) : /* @__PURE__ */ f(u, { children: [
33
- /* @__PURE__ */ e(
34
- "div",
1
+ import { jsx as e, Fragment as c } from "react/jsx-runtime";
2
+ import l from "react-markdown";
3
+ import d from "remark-gfm";
4
+ import { ChatCodeBlock as p } from "./index164.mjs";
5
+ import g from "./index158.mjs";
6
+ const f = ({
7
+ content: a,
8
+ className: i,
9
+ ...m
10
+ }) => /* @__PURE__ */ e(
11
+ "div",
12
+ {
13
+ className: [g.markdown, i].filter(Boolean).join(" "),
14
+ ...m,
15
+ children: /* @__PURE__ */ e(
16
+ l,
35
17
  {
36
- className: [a.imagePreview, m].filter(Boolean).join(" "),
37
- onClick: c,
38
- onKeyDown: I,
39
- role: "button",
40
- tabIndex: 0,
41
- "aria-label": r,
42
- ...s,
43
- children: /* @__PURE__ */ e(
44
- "img",
45
- {
46
- src: h || i,
47
- alt: r,
48
- className: a.imagePreviewImg,
49
- onError: w,
50
- loading: "lazy"
18
+ remarkPlugins: [d],
19
+ components: {
20
+ // Custom code block rendering
21
+ code({ className: r, children: o, ...t }) {
22
+ const n = /language-(\w+)/.exec(r || "");
23
+ if (!n)
24
+ return /* @__PURE__ */ e("code", { className: r, ...t, children: o });
25
+ const s = String(o).replace(/\n$/, "");
26
+ return /* @__PURE__ */ e(p, { code: s, language: n[1] });
27
+ },
28
+ // Custom pre rendering (remove wrapper for code blocks)
29
+ pre({ children: r }) {
30
+ return /* @__PURE__ */ e(c, { children: r });
31
+ },
32
+ // Custom link rendering (open in new tab)
33
+ a({ href: r, children: o, ...t }) {
34
+ const n = r?.startsWith("http");
35
+ return /* @__PURE__ */ e(
36
+ "a",
37
+ {
38
+ href: r,
39
+ target: n ? "_blank" : void 0,
40
+ rel: n ? "noopener noreferrer" : void 0,
41
+ ...t,
42
+ children: o
43
+ }
44
+ );
51
45
  }
52
- )
53
- }
54
- ),
55
- n && /* @__PURE__ */ e(
56
- y,
57
- {
58
- src: i,
59
- alt: r,
60
- isOpen: d,
61
- onClose: () => l(!1)
46
+ },
47
+ children: a
62
48
  }
63
49
  )
64
- ] });
65
- };
66
- x.displayName = "ChatImagePreview";
50
+ }
51
+ );
52
+ f.displayName = "ChatMarkdown";
67
53
  export {
68
- x as ChatImagePreview
54
+ f as ChatMarkdown
69
55
  };
package/dist/index166.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),P=require("lucide-react"),m=require("./index184.cjs"),l=require("./index157.cjs"),p=({src:k,duration:T,title:h,className:b,...x})=>{const[o,f]=r.useState(!1),[s,d]=r.useState(0),[a,g]=r.useState(T||0),n=r.useRef(null),j=r.useCallback(()=>{const e=n.current;e&&!isNaN(e.duration)&&isFinite(e.duration)&&g(e.duration)},[]),v=r.useCallback(()=>{const e=n.current;e&&d(e.currentTime)},[]),C=r.useCallback(()=>{f(!1),d(0)},[]),w=r.useCallback(()=>{const e=n.current;e&&(o?e.pause():e.play().catch(()=>{f(!1)}),f(!o))},[o]),N=r.useCallback(e=>{const c=n.current;if(!c||!a)return;const u=e.currentTarget.getBoundingClientRect(),y=(e.clientX-u.left)/u.width*a;c.currentTime=y,d(y)},[a]),A=r.useCallback(e=>{const c=n.current;if(!c||!a)return;const u=5;let i=s;switch(e.key){case"ArrowRight":case"ArrowUp":e.preventDefault(),i=Math.min(s+u,a);break;case"ArrowLeft":case"ArrowDown":e.preventDefault(),i=Math.max(s-u,0);break;case"Home":e.preventDefault(),i=0;break;case"End":e.preventDefault(),i=a;break;default:return}c.currentTime=i,d(i)},[s,a]),D=a>0?s/a*100:0;return r.useEffect(()=>()=>{const e=n.current;e&&e.pause()},[]),t.jsxs("div",{className:[l.default.audioPlayer,b].filter(Boolean).join(" "),...x,children:[t.jsx("audio",{ref:n,src:k,onLoadedMetadata:j,onTimeUpdate:v,onEnded:C,preload:"metadata"}),t.jsx("button",{className:l.default.audioPlayerButton,onClick:w,"aria-label":o?"Pause":"Play",children:o?t.jsx(P.Pause,{size:16}):t.jsx(P.Play,{size:16})}),t.jsxs("div",{className:l.default.audioPlayerProgress,children:[h&&t.jsx("span",{className:l.default.attachmentPreviewName,children:h}),t.jsx("div",{className:l.default.audioPlayerTrack,onClick:N,onKeyDown:A,role:"slider","aria-label":"Audio progress","aria-valuemin":0,"aria-valuemax":a,"aria-valuenow":s,"aria-valuetext":`${m.formatTime(s)} of ${m.formatTime(a)}`,tabIndex:0,children:t.jsx("div",{className:l.default.audioPlayerFill,style:{width:`${D}%`}})}),t.jsxs("div",{className:l.default.audioPlayerTime,children:[t.jsx("span",{children:m.formatTime(s)}),t.jsx("span",{children:m.formatTime(a)})]})]})]})};p.displayName="ChatAudioPlayer";exports.ChatAudioPlayer=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),I=require("lucide-react"),a=require("./index158.cjs"),w=require("./index185.cjs"),u=({src:i,alt:t="Image attachment",thumbnail:g,onClick:n,enableLightbox:s=!0,className:o,...l})=>{const[h,c]=d.useState(!1),[f,v]=d.useState(!1),m=()=>{n?n():s&&c(!0)},x=r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),m())},j=()=>{v(!0)};return f?e.jsxs("div",{className:[a.default.imagePreview,a.default.attachmentPreview,o].filter(Boolean).join(" "),...l,children:[e.jsx("div",{className:a.default.attachmentPreviewIcon,children:e.jsx(I.ImageOff,{size:20})}),e.jsx("span",{className:a.default.attachmentPreviewName,children:"Image failed to load"})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:[a.default.imagePreview,o].filter(Boolean).join(" "),onClick:m,onKeyDown:x,role:"button",tabIndex:0,"aria-label":t,...l,children:e.jsx("img",{src:g||i,alt:t,className:a.default.imagePreviewImg,onError:j,loading:"lazy"})}),s&&e.jsx(w.ChatLightbox,{src:i,alt:t,isOpen:h,onClose:()=>c(!1)})]})};u.displayName="ChatImagePreview";exports.ChatImagePreview=u;
package/dist/index166.mjs CHANGED
@@ -1,127 +1,69 @@
1
- import { jsxs as p, jsx as r } from "react/jsx-runtime";
2
- import { useState as h, useRef as M, useCallback as s, useEffect as R } from "react";
3
- import { Pause as j, Play as B } from "lucide-react";
4
- import { formatTime as m } from "./index184.mjs";
5
- import o from "./index157.mjs";
6
- const L = ({
7
- src: g,
8
- duration: v,
9
- title: y,
10
- className: w,
11
- ...T
1
+ import { jsxs as f, jsx as e, Fragment as u } from "react/jsx-runtime";
2
+ import { useState as g } from "react";
3
+ import { ImageOff as P } from "lucide-react";
4
+ import a from "./index158.mjs";
5
+ import { ChatLightbox as y } from "./index185.mjs";
6
+ const x = ({
7
+ src: i,
8
+ alt: r = "Image attachment",
9
+ thumbnail: h,
10
+ onClick: o,
11
+ enableLightbox: n = !0,
12
+ className: m,
13
+ ...s
12
14
  }) => {
13
- const [c, f] = h(!1), [t, u] = h(0), [a, k] = h(v || 0), n = M(null), N = s(() => {
14
- const e = n.current;
15
- e && !isNaN(e.duration) && isFinite(e.duration) && k(e.duration);
16
- }, []), b = s(() => {
17
- const e = n.current;
18
- e && u(e.currentTime);
19
- }, []), C = s(() => {
20
- f(!1), u(0);
21
- }, []), D = s(() => {
22
- const e = n.current;
23
- e && (c ? e.pause() : e.play().catch(() => {
24
- f(!1);
25
- }), f(!c));
26
- }, [c]), x = s(
27
- (e) => {
28
- const l = n.current;
29
- if (!l || !a) return;
30
- const d = e.currentTarget.getBoundingClientRect(), P = (e.clientX - d.left) / d.width * a;
31
- l.currentTime = P, u(P);
32
- },
33
- [a]
34
- ), A = s(
35
- (e) => {
36
- const l = n.current;
37
- if (!l || !a) return;
38
- const d = 5;
39
- let i = t;
40
- switch (e.key) {
41
- case "ArrowRight":
42
- case "ArrowUp":
43
- e.preventDefault(), i = Math.min(t + d, a);
44
- break;
45
- case "ArrowLeft":
46
- case "ArrowDown":
47
- e.preventDefault(), i = Math.max(t - d, 0);
48
- break;
49
- case "Home":
50
- e.preventDefault(), i = 0;
51
- break;
52
- case "End":
53
- e.preventDefault(), i = a;
54
- break;
55
- default:
56
- return;
57
- }
58
- l.currentTime = i, u(i);
59
- },
60
- [t, a]
61
- ), E = a > 0 ? t / a * 100 : 0;
62
- return R(() => () => {
63
- const e = n.current;
64
- e && e.pause();
65
- }, []), /* @__PURE__ */ p(
15
+ const [d, l] = g(!1), [p, v] = g(!1), c = () => {
16
+ o ? o() : n && l(!0);
17
+ }, I = (t) => {
18
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), c());
19
+ }, w = () => {
20
+ v(!0);
21
+ };
22
+ return p ? /* @__PURE__ */ f(
66
23
  "div",
67
24
  {
68
- className: [o.audioPlayer, w].filter(Boolean).join(" "),
69
- ...T,
25
+ className: [a.imagePreview, a.attachmentPreview, m].filter(Boolean).join(" "),
26
+ ...s,
70
27
  children: [
71
- /* @__PURE__ */ r(
72
- "audio",
73
- {
74
- ref: n,
75
- src: g,
76
- onLoadedMetadata: N,
77
- onTimeUpdate: b,
78
- onEnded: C,
79
- preload: "metadata"
80
- }
81
- ),
82
- /* @__PURE__ */ r(
83
- "button",
84
- {
85
- className: o.audioPlayerButton,
86
- onClick: D,
87
- "aria-label": c ? "Pause" : "Play",
88
- children: c ? /* @__PURE__ */ r(j, { size: 16 }) : /* @__PURE__ */ r(B, { size: 16 })
89
- }
90
- ),
91
- /* @__PURE__ */ p("div", { className: o.audioPlayerProgress, children: [
92
- y && /* @__PURE__ */ r("span", { className: o.attachmentPreviewName, children: y }),
93
- /* @__PURE__ */ r(
94
- "div",
95
- {
96
- className: o.audioPlayerTrack,
97
- onClick: x,
98
- onKeyDown: A,
99
- role: "slider",
100
- "aria-label": "Audio progress",
101
- "aria-valuemin": 0,
102
- "aria-valuemax": a,
103
- "aria-valuenow": t,
104
- "aria-valuetext": `${m(t)} of ${m(a)}`,
105
- tabIndex: 0,
106
- children: /* @__PURE__ */ r(
107
- "div",
108
- {
109
- className: o.audioPlayerFill,
110
- style: { width: `${E}%` }
111
- }
112
- )
113
- }
114
- ),
115
- /* @__PURE__ */ p("div", { className: o.audioPlayerTime, children: [
116
- /* @__PURE__ */ r("span", { children: m(t) }),
117
- /* @__PURE__ */ r("span", { children: m(a) })
118
- ] })
119
- ] })
28
+ /* @__PURE__ */ e("div", { className: a.attachmentPreviewIcon, children: /* @__PURE__ */ e(P, { size: 20 }) }),
29
+ /* @__PURE__ */ e("span", { className: a.attachmentPreviewName, children: "Image failed to load" })
120
30
  ]
121
31
  }
122
- );
32
+ ) : /* @__PURE__ */ f(u, { children: [
33
+ /* @__PURE__ */ e(
34
+ "div",
35
+ {
36
+ className: [a.imagePreview, m].filter(Boolean).join(" "),
37
+ onClick: c,
38
+ onKeyDown: I,
39
+ role: "button",
40
+ tabIndex: 0,
41
+ "aria-label": r,
42
+ ...s,
43
+ children: /* @__PURE__ */ e(
44
+ "img",
45
+ {
46
+ src: h || i,
47
+ alt: r,
48
+ className: a.imagePreviewImg,
49
+ onError: w,
50
+ loading: "lazy"
51
+ }
52
+ )
53
+ }
54
+ ),
55
+ n && /* @__PURE__ */ e(
56
+ y,
57
+ {
58
+ src: i,
59
+ alt: r,
60
+ isOpen: d,
61
+ onClose: () => l(!1)
62
+ }
63
+ )
64
+ ] });
123
65
  };
124
- L.displayName = "ChatAudioPlayer";
66
+ x.displayName = "ChatImagePreview";
125
67
  export {
126
- L as ChatAudioPlayer
68
+ x as ChatImagePreview
127
69
  };
package/dist/index167.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("lucide-react"),g=require("./index95.cjs"),b=require("./index184.cjs"),r=require("./index157.cjs"),t=({onRecordingComplete:s,onCancel:u,maxDuration:f=300,className:a,...d})=>{const{isRecording:o,duration:v,audioBlob:c,error:l,startRecording:R,stopRecording:j,cancelRecording:x,reset:n,isSupported:m}=g.useVoiceRecorder({maxDuration:f,onRecordingComplete:s,onError:B=>console.error("Recording error:",B)}),h=()=>{o?j():c?(s?.(c),n()):R()},N=()=>{x(),u?.()};return m?l?e.jsxs("div",{className:[r.default.voiceRecorder,a].filter(Boolean).join(" "),...d,children:[e.jsx("div",{className:r.default.voiceRecorderInfo,children:e.jsx("span",{className:[r.default.voiceRecorderLabel,r.default.voiceRecorderError].join(" "),children:l})}),e.jsx("button",{className:r.default.inputButton,onClick:n,"aria-label":"Try again",children:e.jsx(i.X,{size:20})})]}):e.jsxs("div",{className:[r.default.voiceRecorder,a].filter(Boolean).join(" "),...d,children:[e.jsx("button",{className:[r.default.voiceRecorderButton,!o&&!c&&r.default.voiceRecorderButtonIdle].filter(Boolean).join(" "),onClick:h,"aria-label":o?"Stop recording":c?"Send recording":"Start recording",children:o?e.jsx(i.Square,{size:20}):c?e.jsx(i.Send,{size:20}):e.jsx(i.Mic,{size:20})}),e.jsxs("div",{className:r.default.voiceRecorderInfo,children:[e.jsx("span",{className:r.default.voiceRecorderDuration,children:b.formatTime(v)}),e.jsx("span",{className:r.default.voiceRecorderLabel,children:o?"Recording...":c?"Recording ready":"Click to record"})]}),o&&e.jsxs("div",{className:r.default.voiceRecorderWaveform,children:[e.jsx("div",{className:r.default.voiceRecorderBar}),e.jsx("div",{className:r.default.voiceRecorderBar}),e.jsx("div",{className:r.default.voiceRecorderBar}),e.jsx("div",{className:r.default.voiceRecorderBar}),e.jsx("div",{className:r.default.voiceRecorderBar})]}),(o||c)&&e.jsx("div",{className:r.default.voiceRecorderActions,children:e.jsx("button",{className:r.default.inputButton,onClick:N,"aria-label":"Cancel recording",children:e.jsx(i.X,{size:20})})})]}):e.jsx("div",{className:[r.default.voiceRecorder,a].filter(Boolean).join(" "),...d,children:e.jsx("div",{className:r.default.voiceRecorderInfo,children:e.jsx("span",{className:r.default.voiceRecorderLabel,children:"Voice recording is not supported in this browser"})})})};t.displayName="ChatVoiceRecorder";exports.ChatVoiceRecorder=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),P=require("lucide-react"),m=require("./index184.cjs"),l=require("./index158.cjs"),p=({src:k,duration:T,title:h,className:b,...x})=>{const[o,f]=r.useState(!1),[s,d]=r.useState(0),[a,g]=r.useState(T||0),n=r.useRef(null),j=r.useCallback(()=>{const e=n.current;e&&!isNaN(e.duration)&&isFinite(e.duration)&&g(e.duration)},[]),v=r.useCallback(()=>{const e=n.current;e&&d(e.currentTime)},[]),C=r.useCallback(()=>{f(!1),d(0)},[]),w=r.useCallback(()=>{const e=n.current;e&&(o?e.pause():e.play().catch(()=>{f(!1)}),f(!o))},[o]),N=r.useCallback(e=>{const c=n.current;if(!c||!a)return;const u=e.currentTarget.getBoundingClientRect(),y=(e.clientX-u.left)/u.width*a;c.currentTime=y,d(y)},[a]),A=r.useCallback(e=>{const c=n.current;if(!c||!a)return;const u=5;let i=s;switch(e.key){case"ArrowRight":case"ArrowUp":e.preventDefault(),i=Math.min(s+u,a);break;case"ArrowLeft":case"ArrowDown":e.preventDefault(),i=Math.max(s-u,0);break;case"Home":e.preventDefault(),i=0;break;case"End":e.preventDefault(),i=a;break;default:return}c.currentTime=i,d(i)},[s,a]),D=a>0?s/a*100:0;return r.useEffect(()=>()=>{const e=n.current;e&&e.pause()},[]),t.jsxs("div",{className:[l.default.audioPlayer,b].filter(Boolean).join(" "),...x,children:[t.jsx("audio",{ref:n,src:k,onLoadedMetadata:j,onTimeUpdate:v,onEnded:C,preload:"metadata"}),t.jsx("button",{className:l.default.audioPlayerButton,onClick:w,"aria-label":o?"Pause":"Play",children:o?t.jsx(P.Pause,{size:16}):t.jsx(P.Play,{size:16})}),t.jsxs("div",{className:l.default.audioPlayerProgress,children:[h&&t.jsx("span",{className:l.default.attachmentPreviewName,children:h}),t.jsx("div",{className:l.default.audioPlayerTrack,onClick:N,onKeyDown:A,role:"slider","aria-label":"Audio progress","aria-valuemin":0,"aria-valuemax":a,"aria-valuenow":s,"aria-valuetext":`${m.formatTime(s)} of ${m.formatTime(a)}`,tabIndex:0,children:t.jsx("div",{className:l.default.audioPlayerFill,style:{width:`${D}%`}})}),t.jsxs("div",{className:l.default.audioPlayerTime,children:[t.jsx("span",{children:m.formatTime(s)}),t.jsx("span",{children:m.formatTime(a)})]})]})]})};p.displayName="ChatAudioPlayer";exports.ChatAudioPlayer=p;