@xcelsior/ui-chat 2.0.4 → 2.0.5

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 (46) hide show
  1. package/dist/index.d.mts +58 -5
  2. package/dist/index.d.ts +58 -5
  3. package/dist/index.js +1042 -427
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +1009 -397
  6. package/dist/index.mjs.map +1 -1
  7. package/package.json +2 -1
  8. package/src/components/BookingCancelledCard.tsx +103 -0
  9. package/src/components/BookingCards.stories.tsx +102 -0
  10. package/src/components/BookingConfirmationCard.tsx +170 -0
  11. package/src/components/BookingSlotPicker.stories.tsx +87 -0
  12. package/src/components/BookingSlotPicker.tsx +253 -0
  13. package/src/components/BrandIcons.stories.tsx +32 -1
  14. package/src/components/BrandIcons.tsx +21 -17
  15. package/src/components/Chat.tsx +43 -9
  16. package/src/components/ChatWidget.tsx +30 -2
  17. package/src/components/MessageItem.tsx +83 -72
  18. package/src/components/MessageList.tsx +4 -0
  19. package/src/hooks/useDraggablePosition.ts +147 -42
  20. package/src/hooks/useMessages.ts +106 -53
  21. package/src/hooks/useWebSocket.ts +17 -4
  22. package/src/index.tsx +11 -0
  23. package/src/types.ts +39 -2
  24. package/src/utils/api.ts +1 -0
  25. package/storybook-static/assets/BookingCancelledCard-XHuB-Ebp.js +31 -0
  26. package/storybook-static/assets/BookingCards.stories-DfJ482RS.js +66 -0
  27. package/storybook-static/assets/BookingSlotPicker-BkfssueW.js +1 -0
  28. package/storybook-static/assets/BookingSlotPicker.stories-fYlg1zLg.js +50 -0
  29. package/storybook-static/assets/BrandIcons-BsRAdWzL.js +4 -0
  30. package/storybook-static/assets/BrandIcons.stories-C6gBovfU.js +106 -0
  31. package/storybook-static/assets/Chat.stories-BrR7LHsz.js +830 -0
  32. package/storybook-static/assets/{Color-YHDXOIA2-CSuNIR0a.js → Color-YHDXOIA2-azE51u2m.js} +1 -1
  33. package/storybook-static/assets/{DocsRenderer-CFRXHY34-dpuOKTQp.js → DocsRenderer-CFRXHY34-jTmzKIDk.js} +3 -3
  34. package/storybook-static/assets/MessageItem-pEOwuLyh.js +34 -0
  35. package/storybook-static/assets/{MessageItem.stories-CsxqSqu-.js → MessageItem.stories-Cs5Vtkle.js} +2 -2
  36. package/storybook-static/assets/{entry-preview-C_-WO6GJ.js → entry-preview-vcpiajAT.js} +1 -1
  37. package/storybook-static/assets/globe-BtMvkLMD.js +31 -0
  38. package/storybook-static/assets/{iframe-BXTccXxS.js → iframe-Cx1n-SeE.js} +2 -2
  39. package/storybook-static/assets/{preview-Cyx3pE7Q.js → preview-Do3b3dZv.js} +2 -2
  40. package/storybook-static/iframe.html +1 -1
  41. package/storybook-static/index.json +1 -1
  42. package/storybook-static/project.json +1 -1
  43. package/storybook-static/assets/BrandIcons-Cjy5INAp.js +0 -4
  44. package/storybook-static/assets/BrandIcons.stories-BeVC6svr.js +0 -64
  45. package/storybook-static/assets/Chat.stories-BkbpOOSG.js +0 -830
  46. package/storybook-static/assets/MessageItem-Dlb6dSKL.js +0 -14
@@ -0,0 +1,106 @@
1
+ import{j as e}from"./jsx-runtime-Cf8x2fCZ.js";import{X as s,a as n,C as c}from"./BrandIcons-BsRAdWzL.js";import"./index-yBjzXJbu.js";const D={title:"Brand/Icons",parameters:{layout:"padded"},tags:["autodocs"]},a={render:()=>e.jsxs("div",{className:"flex items-center gap-6 p-4",children:[e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(s,{size:16,color:"#337eff"}),e.jsx("span",{className:"text-xs text-gray-500",children:"16px"})]}),e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(s,{size:24,color:"#337eff"}),e.jsx("span",{className:"text-xs text-gray-500",children:"24px"})]}),e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(s,{size:32,color:"#337eff"}),e.jsx("span",{className:"text-xs text-gray-500",children:"32px"})]}),e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(s,{size:48,color:"#337eff"}),e.jsx("span",{className:"text-xs text-gray-500",children:"48px"})]})]})},t={render:()=>e.jsxs("div",{className:"flex items-center gap-6 p-6 bg-gray-900 rounded-lg",children:[e.jsx(s,{size:24,color:"white"}),e.jsx(s,{size:32,color:"white"}),e.jsx(s,{size:48,color:"white"})]})},r={render:()=>e.jsxs("div",{className:"flex items-center gap-6 p-4",children:[e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(n,{size:24}),e.jsx("span",{className:"text-xs text-gray-500",children:"24px"})]}),e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(n,{size:32}),e.jsx("span",{className:"text-xs text-gray-500",children:"32px"})]}),e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(n,{size:40}),e.jsx("span",{className:"text-xs text-gray-500",children:"40px (default)"})]}),e.jsxs("div",{className:"flex flex-col items-center gap-2",children:[e.jsx(n,{size:56}),e.jsx("span",{className:"text-xs text-gray-500",children:"56px (FAB)"})]})]})},i={render:()=>e.jsxs("div",{className:"flex flex-col gap-10 p-8",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-400 mb-4",children:"Actual FAB (36px icon in 64px circle)"}),e.jsx("div",{className:"rounded-full flex items-center justify-center",style:{width:64,height:64,background:"linear-gradient(135deg, #337eff, #005eff)",boxShadow:"0 4px 24px 0 rgba(51,126,255,0.5)"},children:e.jsx(c,{size:36,color:"white"})})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-400 mb-4",children:"Enlarged 2x"}),e.jsx("div",{className:"rounded-full flex items-center justify-center",style:{width:128,height:128,background:"linear-gradient(135deg, #337eff, #005eff)"},children:e.jsx(c,{size:72,color:"white"})})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-semibold text-gray-400 mb-4",children:"On dark page"}),e.jsx("div",{className:"flex items-center gap-10 p-10 rounded-lg",style:{background:"linear-gradient(180deg, #0a0e27, #111633)"},children:e.jsx("div",{className:"rounded-full flex items-center justify-center",style:{width:64,height:64,background:"linear-gradient(135deg, #337eff, #005eff)",boxShadow:"0 4px 24px 0 rgba(51,126,255,0.5), 0 8px 32px -4px rgba(0,0,0,0.3)"},children:e.jsx(c,{size:36,color:"white"})})})]})]})},l={render:()=>e.jsxs("div",{className:"flex flex-col gap-3 max-w-md p-4 bg-gray-900 rounded-lg",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(n,{size:32}),e.jsxs("div",{className:"bg-gray-800 rounded-lg px-3 py-2 text-sm text-white",children:[e.jsx("p",{className:"text-xs text-blue-400 mb-1",children:"AI Assistant"}),"Hello! How can I help you today?"]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-green-600 flex items-center justify-center text-white text-sm font-medium",children:"S"}),e.jsxs("div",{className:"bg-gray-800 rounded-lg px-3 py-2 text-sm text-white",children:[e.jsx("p",{className:"text-xs text-green-400 mb-1",children:"Sarah (Agent)"}),"I'm here to help with your inquiry!"]})]})]})};var d,x,o,m,p;a.parameters={...a.parameters,docs:{...(d=a.parameters)==null?void 0:d.docs,source:{originalSource:`{
2
+ render: () => <div className="flex items-center gap-6 p-4">
3
+ <div className="flex flex-col items-center gap-2">
4
+ <XcelsiorSymbol size={16} color="#337eff" />
5
+ <span className="text-xs text-gray-500">16px</span>
6
+ </div>
7
+ <div className="flex flex-col items-center gap-2">
8
+ <XcelsiorSymbol size={24} color="#337eff" />
9
+ <span className="text-xs text-gray-500">24px</span>
10
+ </div>
11
+ <div className="flex flex-col items-center gap-2">
12
+ <XcelsiorSymbol size={32} color="#337eff" />
13
+ <span className="text-xs text-gray-500">32px</span>
14
+ </div>
15
+ <div className="flex flex-col items-center gap-2">
16
+ <XcelsiorSymbol size={48} color="#337eff" />
17
+ <span className="text-xs text-gray-500">48px</span>
18
+ </div>
19
+ </div>
20
+ }`,...(o=(x=a.parameters)==null?void 0:x.docs)==null?void 0:o.source},description:{story:"Xcelsior X symbol at various sizes",...(p=(m=a.parameters)==null?void 0:m.docs)==null?void 0:p.description}}};var g,f,h,v,u;t.parameters={...t.parameters,docs:{...(g=t.parameters)==null?void 0:g.docs,source:{originalSource:`{
21
+ render: () => <div className="flex items-center gap-6 p-6 bg-gray-900 rounded-lg">
22
+ <XcelsiorSymbol size={24} color="white" />
23
+ <XcelsiorSymbol size={32} color="white" />
24
+ <XcelsiorSymbol size={48} color="white" />
25
+ </div>
26
+ }`,...(h=(f=t.parameters)==null?void 0:f.docs)==null?void 0:h.source},description:{story:"Symbol on dark backgrounds",...(u=(v=t.parameters)==null?void 0:v.docs)==null?void 0:u.description}}};var y,b,N,j,z;r.parameters={...r.parameters,docs:{...(y=r.parameters)==null?void 0:y.docs,source:{originalSource:`{
27
+ render: () => <div className="flex items-center gap-6 p-4">
28
+ <div className="flex flex-col items-center gap-2">
29
+ <XcelsiorAvatar size={24} />
30
+ <span className="text-xs text-gray-500">24px</span>
31
+ </div>
32
+ <div className="flex flex-col items-center gap-2">
33
+ <XcelsiorAvatar size={32} />
34
+ <span className="text-xs text-gray-500">32px</span>
35
+ </div>
36
+ <div className="flex flex-col items-center gap-2">
37
+ <XcelsiorAvatar size={40} />
38
+ <span className="text-xs text-gray-500">40px (default)</span>
39
+ </div>
40
+ <div className="flex flex-col items-center gap-2">
41
+ <XcelsiorAvatar size={56} />
42
+ <span className="text-xs text-gray-500">56px (FAB)</span>
43
+ </div>
44
+ </div>
45
+ }`,...(N=(b=r.parameters)==null?void 0:b.docs)==null?void 0:N.source},description:{story:"Xcelsior avatar (gradient circle with symbol) at various sizes",...(z=(j=r.parameters)==null?void 0:j.docs)==null?void 0:z.description}}};var w,S,A,X,k;i.parameters={...i.parameters,docs:{...(w=i.parameters)==null?void 0:w.docs,source:{originalSource:`{
46
+ render: () => <div className="flex flex-col gap-10 p-8">
47
+ {/* Actual FAB size */}
48
+ <div>
49
+ <h3 className="text-sm font-semibold text-gray-400 mb-4">Actual FAB (36px icon in 64px circle)</h3>
50
+ <div className="rounded-full flex items-center justify-center" style={{
51
+ width: 64,
52
+ height: 64,
53
+ background: 'linear-gradient(135deg, #337eff, #005eff)',
54
+ boxShadow: '0 4px 24px 0 rgba(51,126,255,0.5)'
55
+ }}>
56
+ <ChatBubbleIcon size={36} color="white" />
57
+ </div>
58
+ </div>
59
+ {/* Enlarged */}
60
+ <div>
61
+ <h3 className="text-sm font-semibold text-gray-400 mb-4">Enlarged 2x</h3>
62
+ <div className="rounded-full flex items-center justify-center" style={{
63
+ width: 128,
64
+ height: 128,
65
+ background: 'linear-gradient(135deg, #337eff, #005eff)'
66
+ }}>
67
+ <ChatBubbleIcon size={72} color="white" />
68
+ </div>
69
+ </div>
70
+ {/* On dark page */}
71
+ <div>
72
+ <h3 className="text-sm font-semibold text-gray-400 mb-4">On dark page</h3>
73
+ <div className="flex items-center gap-10 p-10 rounded-lg" style={{
74
+ background: 'linear-gradient(180deg, #0a0e27, #111633)'
75
+ }}>
76
+ <div className="rounded-full flex items-center justify-center" style={{
77
+ width: 64,
78
+ height: 64,
79
+ background: 'linear-gradient(135deg, #337eff, #005eff)',
80
+ boxShadow: '0 4px 24px 0 rgba(51,126,255,0.5), 0 8px 32px -4px rgba(0,0,0,0.3)'
81
+ }}>
82
+ <ChatBubbleIcon size={36} color="white" />
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ }`,...(A=(S=i.parameters)==null?void 0:S.docs)==null?void 0:A.source},description:{story:"ChatBubbleIcon — FAB robot icon at various sizes",...(k=(X=i.parameters)==null?void 0:X.docs)==null?void 0:k.description}}};var B,I,C,F,O;l.parameters={...l.parameters,docs:{...(B=l.parameters)==null?void 0:B.docs,source:{originalSource:`{
88
+ render: () => <div className="flex flex-col gap-3 max-w-md p-4 bg-gray-900 rounded-lg">
89
+ <div className="flex items-start gap-3">
90
+ <XcelsiorAvatar size={32} />
91
+ <div className="bg-gray-800 rounded-lg px-3 py-2 text-sm text-white">
92
+ <p className="text-xs text-blue-400 mb-1">AI Assistant</p>
93
+ Hello! How can I help you today?
94
+ </div>
95
+ </div>
96
+ <div className="flex items-start gap-3">
97
+ <div className="w-8 h-8 rounded-full bg-green-600 flex items-center justify-center text-white text-sm font-medium">
98
+ S
99
+ </div>
100
+ <div className="bg-gray-800 rounded-lg px-3 py-2 text-sm text-white">
101
+ <p className="text-xs text-green-400 mb-1">Sarah (Agent)</p>
102
+ I&apos;m here to help with your inquiry!
103
+ </div>
104
+ </div>
105
+ </div>
106
+ }`,...(C=(I=l.parameters)==null?void 0:I.docs)==null?void 0:C.source},description:{story:"Avatar in context — message list style",...(O=(F=l.parameters)==null?void 0:F.docs)==null?void 0:O.description}}};const _=["SymbolSizes","SymbolOnDark","AvatarSizes","ChatBubbleSizes","AvatarInContext"];export{l as AvatarInContext,r as AvatarSizes,i as ChatBubbleSizes,t as SymbolOnDark,a as SymbolSizes,_ as __namedExportsOrder,D as default};