@botpress/webchat 0.5.0 → 1.0.0

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 (295) hide show
  1. package/dist/App.d.ts +10 -0
  2. package/dist/Utils/colors.d.ts +18 -0
  3. package/dist/Utils/eventEmitter.d.ts +12 -0
  4. package/dist/Utils/index.d.ts +2 -0
  5. package/dist/client/MessagingClient.d.ts +27 -0
  6. package/dist/client/adapters/Audio.d.ts +19 -0
  7. package/dist/client/adapters/Card.d.ts +188 -0
  8. package/dist/client/adapters/Carousel.d.ts +147 -0
  9. package/dist/client/adapters/Choice.d.ts +45 -0
  10. package/dist/client/adapters/Dropdown.d.ts +46 -0
  11. package/dist/client/adapters/File.d.ts +19 -0
  12. package/dist/client/adapters/Image.d.ts +19 -0
  13. package/dist/client/adapters/Location.d.ts +27 -0
  14. package/dist/client/adapters/Message.d.ts +433 -0
  15. package/dist/client/adapters/Text.d.ts +20 -0
  16. package/dist/client/adapters/Utils.d.ts +5 -0
  17. package/dist/client/adapters/Video.d.ts +19 -0
  18. package/dist/client/adapters/Voice.d.ts +15 -0
  19. package/dist/client/adapters/index.d.ts +12 -0
  20. package/dist/client/index.d.ts +2 -0
  21. package/dist/components/Avatar.d.ts +6 -0
  22. package/dist/components/Block.d.ts +4 -0
  23. package/dist/components/Composer.d.ts +12 -14
  24. package/dist/components/Container.d.ts +2 -12
  25. package/dist/components/Header.d.ts +36 -26
  26. package/dist/components/LoadingIndicator.d.ts +2 -0
  27. package/dist/components/Message.d.ts +7 -0
  28. package/dist/components/MessageList.d.ts +2 -0
  29. package/dist/components/Modal.d.ts +17 -0
  30. package/dist/components/RestartConversation.d.ts +5 -0
  31. package/dist/components/Webchat.d.ts +6 -0
  32. package/dist/components/dev-tools/DevTools.d.ts +1 -0
  33. package/dist/components/dev-tools/configuration.d.ts +2 -0
  34. package/dist/components/dev-tools/helpers.d.ts +5 -0
  35. package/dist/components/index.d.ts +12 -0
  36. package/dist/components/renderers/Audio.d.ts +3 -0
  37. package/dist/components/renderers/Bubble.d.ts +5 -0
  38. package/dist/components/renderers/Button.d.ts +4 -0
  39. package/dist/components/renderers/Carousel.d.ts +3 -0
  40. package/dist/components/renderers/Column.d.ts +5 -0
  41. package/dist/components/renderers/Dropdown.d.ts +5 -0
  42. package/dist/components/renderers/File.d.ts +3 -0
  43. package/dist/components/renderers/Image.d.ts +3 -0
  44. package/dist/components/renderers/Location.d.ts +3 -0
  45. package/dist/components/renderers/Row.d.ts +5 -0
  46. package/dist/components/renderers/Text.d.ts +4 -0
  47. package/dist/components/renderers/Video.d.ts +3 -0
  48. package/dist/components/renderers/index.d.ts +2 -0
  49. package/dist/contexts/ComposerContext.d.ts +8 -0
  50. package/dist/contexts/MessageContext.d.ts +8 -0
  51. package/dist/contexts/ModalContext.d.ts +14 -0
  52. package/dist/contexts/WebchatContext.d.ts +56 -0
  53. package/dist/contexts/index.d.ts +4 -0
  54. package/dist/hooks/index.d.ts +3 -0
  55. package/dist/hooks/useImageSize.d.ts +2 -0
  56. package/dist/hooks/useRefresh.d.ts +10 -0
  57. package/dist/hooks/useWebchatStore.d.ts +30 -0
  58. package/dist/index.d.ts +3 -17
  59. package/dist/index.js +43569 -48
  60. package/dist/index.umd.cjs +702 -0
  61. package/dist/main.d.ts +11 -13
  62. package/dist/providers/ModalProvider.d.ts +8 -0
  63. package/dist/providers/WebchatProvider.d.ts +13 -0
  64. package/dist/providers/index.d.ts +2 -0
  65. package/dist/schemas/index.d.ts +1 -0
  66. package/dist/schemas/theme.d.ts +3371 -0
  67. package/dist/services/clipboard.d.ts +1 -0
  68. package/dist/services/images.d.ts +2 -0
  69. package/dist/services/index.d.ts +3 -0
  70. package/dist/services/toast.d.ts +17 -0
  71. package/dist/themes/dawn.d.ts +2 -0
  72. package/dist/themes/duskTheme.d.ts +2 -0
  73. package/dist/themes/eggplant.d.ts +2 -0
  74. package/dist/themes/galaxy.d.ts +2 -0
  75. package/dist/themes/index.d.ts +6 -0
  76. package/dist/themes/midnight.d.ts +2 -0
  77. package/dist/themes/prism.d.ts +2 -0
  78. package/dist/twind.config.d.ts +9 -0
  79. package/dist/types/block-type.d.ts +93 -0
  80. package/dist/types/image.d.ts +11 -0
  81. package/dist/types/index.d.ts +2 -0
  82. package/dist/vite.svg +1 -0
  83. package/index.html +18 -0
  84. package/package.json +60 -48
  85. package/public/vite.svg +1 -0
  86. package/src/App.tsx +41 -0
  87. package/src/Utils/colors.ts +45 -0
  88. package/src/Utils/eventEmitter.ts +31 -0
  89. package/src/Utils/index.ts +2 -0
  90. package/src/assets/check-circle-bold.svg +5 -0
  91. package/src/assets/chevron-up.svg +3 -0
  92. package/src/assets/file-05.svg +6 -0
  93. package/src/assets/globe-02.svg +6 -0
  94. package/src/assets/help-circle.svg +3 -0
  95. package/src/assets/info-circle.svg +3 -0
  96. package/src/assets/lock-01.svg +4 -0
  97. package/src/assets/mail-01.svg +6 -0
  98. package/src/assets/minus-circle.svg +3 -0
  99. package/src/assets/phone.svg +6 -0
  100. package/src/assets/send-03.svg +4 -0
  101. package/src/assets/share-04.svg +5 -0
  102. package/src/assets/slash-circle-01.svg +3 -0
  103. package/src/assets/x-circle-bold.svg +5 -0
  104. package/src/assets/x-close.svg +3 -0
  105. package/src/assets/x.svg +3 -0
  106. package/src/client/MessagingClient.ts +87 -0
  107. package/src/client/adapters/Audio.ts +10 -0
  108. package/src/client/adapters/Card.ts +104 -0
  109. package/src/client/adapters/Carousel.ts +11 -0
  110. package/src/client/adapters/Choice.ts +48 -0
  111. package/src/client/adapters/Dropdown.ts +39 -0
  112. package/src/client/adapters/File.ts +10 -0
  113. package/src/client/adapters/Image.ts +10 -0
  114. package/src/client/adapters/Location.ts +18 -0
  115. package/src/client/adapters/Message.ts +26 -0
  116. package/src/client/adapters/Text.ts +11 -0
  117. package/src/client/adapters/Utils.ts +11 -0
  118. package/src/client/adapters/Video.ts +10 -0
  119. package/src/client/adapters/Voice.ts +9 -0
  120. package/src/client/adapters/index.ts +12 -0
  121. package/src/client/index.ts +2 -0
  122. package/src/components/Avatar.tsx +22 -0
  123. package/src/components/Block.tsx +17 -0
  124. package/src/components/Composer.tsx +115 -0
  125. package/src/components/Container.tsx +17 -0
  126. package/src/components/Header.tsx +141 -0
  127. package/src/components/LoadingIndicator.tsx +15 -0
  128. package/src/components/Message.tsx +52 -0
  129. package/src/components/MessageList.tsx +75 -0
  130. package/src/components/Modal.tsx +49 -0
  131. package/src/components/RestartConversation.tsx +52 -0
  132. package/src/components/Webchat.tsx +68 -0
  133. package/src/components/dev-tools/DevTools.tsx +496 -0
  134. package/src/components/dev-tools/configuration.tsx +27 -0
  135. package/src/components/dev-tools/helpers.ts +21 -0
  136. package/src/components/index.ts +12 -0
  137. package/src/components/renderers/Audio.tsx +11 -0
  138. package/src/components/renderers/Bubble.tsx +12 -0
  139. package/src/components/renderers/Button.tsx +59 -0
  140. package/src/components/renderers/Carousel.tsx +51 -0
  141. package/src/components/renderers/Column.tsx +22 -0
  142. package/src/components/renderers/Dropdown.tsx +170 -0
  143. package/src/components/renderers/File.tsx +13 -0
  144. package/src/components/renderers/Image.tsx +63 -0
  145. package/src/components/renderers/Location.tsx +16 -0
  146. package/src/components/renderers/Row.tsx +22 -0
  147. package/src/components/renderers/Text.tsx +32 -0
  148. package/src/components/renderers/Video.tsx +11 -0
  149. package/src/components/renderers/index.ts +28 -0
  150. package/src/contexts/ComposerContext.ts +16 -0
  151. package/src/contexts/MessageContext.ts +16 -0
  152. package/src/contexts/ModalContext.ts +19 -0
  153. package/src/contexts/WebchatContext.ts +61 -0
  154. package/src/contexts/index.ts +4 -0
  155. package/src/hooks/index.ts +3 -0
  156. package/src/hooks/useImageSize.ts +30 -0
  157. package/src/hooks/useRefresh.ts +33 -0
  158. package/src/hooks/useWebchatStore.ts +45 -0
  159. package/src/index.css +18 -0
  160. package/src/index.ts +3 -0
  161. package/src/main.tsx +33 -0
  162. package/src/providers/ModalProvider.tsx +35 -0
  163. package/src/providers/WebchatProvider.tsx +107 -0
  164. package/src/providers/index.ts +2 -0
  165. package/src/schemas/index.ts +1 -0
  166. package/src/schemas/theme.ts +188 -0
  167. package/src/services/clipboard.ts +8 -0
  168. package/src/services/images.ts +39 -0
  169. package/src/services/index.ts +3 -0
  170. package/src/services/toast.tsx +71 -0
  171. package/src/themes/dawn.ts +277 -0
  172. package/src/themes/duskTheme.ts +349 -0
  173. package/src/themes/eggplant.ts +353 -0
  174. package/src/themes/galaxy.ts +323 -0
  175. package/src/themes/index.ts +6 -0
  176. package/src/themes/midnight.ts +276 -0
  177. package/src/themes/prism.ts +349 -0
  178. package/src/twind.config.ts +31 -0
  179. package/src/types/block-type.ts +150 -0
  180. package/src/types/image.ts +10 -0
  181. package/src/types/index.ts +2 -0
  182. package/src/vite-env.d.ts +1 -0
  183. package/tailwind.config.js +0 -0
  184. package/tsconfig.json +30 -0
  185. package/tsconfig.node.json +10 -0
  186. package/vite.config.ts +31 -0
  187. package/README.md +0 -31
  188. package/assets/fonts/roboto/roboto.woff2 +0 -0
  189. package/assets/fonts/roboto/roboto500.woff2 +0 -0
  190. package/assets/fonts/roboto.css +0 -128
  191. package/assets/notification.mp3 +0 -0
  192. package/dist/components/Composer.js +0 -118
  193. package/dist/components/Container.js +0 -62
  194. package/dist/components/ConversationList.d.ts +0 -10
  195. package/dist/components/ConversationList.js +0 -41
  196. package/dist/components/Footer.d.ts +0 -3
  197. package/dist/components/Footer.js +0 -21
  198. package/dist/components/Header.js +0 -181
  199. package/dist/components/VoiceRecorder.d.ts +0 -10
  200. package/dist/components/VoiceRecorder.js +0 -137
  201. package/dist/components/common/Avatar/index.d.ts +0 -9
  202. package/dist/components/common/Avatar/index.js +0 -13
  203. package/dist/components/common/BotInfo/index.d.ts +0 -10
  204. package/dist/components/common/BotInfo/index.js +0 -102
  205. package/dist/components/common/BotInfo/style.scss +0 -88
  206. package/dist/components/common/ConfirmDialog/index.d.ts +0 -11
  207. package/dist/components/common/ConfirmDialog/index.js +0 -78
  208. package/dist/components/common/ConfirmDialog/style.module.scss +0 -48
  209. package/dist/components/common/Dialog/index.d.ts +0 -17
  210. package/dist/components/common/Dialog/index.js +0 -57
  211. package/dist/components/common/Dialog/style.module.scss +0 -29
  212. package/dist/components/common/ToolTip/index.d.ts +0 -10
  213. package/dist/components/common/ToolTip/index.js +0 -163
  214. package/dist/components/common/ToolTip/style.module.scss +0 -108
  215. package/dist/components/common/ToolTip/utils.d.ts +0 -15
  216. package/dist/components/common/ToolTip/utils.js +0 -78
  217. package/dist/components/common/variables.scss +0 -38
  218. package/dist/components/messages/InlineFeedback.d.ts +0 -11
  219. package/dist/components/messages/InlineFeedback.js +0 -56
  220. package/dist/components/messages/Message.d.ts +0 -11
  221. package/dist/components/messages/Message.js +0 -106
  222. package/dist/components/messages/MessageGroup.d.ts +0 -23
  223. package/dist/components/messages/MessageGroup.js +0 -63
  224. package/dist/components/messages/MessageList.d.ts +0 -10
  225. package/dist/components/messages/MessageList.js +0 -154
  226. package/dist/core/api.d.ts +0 -23
  227. package/dist/core/api.js +0 -117
  228. package/dist/core/constants.d.ts +0 -14
  229. package/dist/core/constants.js +0 -29
  230. package/dist/core/socket.d.ts +0 -14
  231. package/dist/core/socket.js +0 -57
  232. package/dist/declaration.d.ts +0 -1
  233. package/dist/declaration.js +0 -1
  234. package/dist/fonts/roboto.d.ts +0 -4
  235. package/dist/fonts/roboto.js +0 -9
  236. package/dist/globals.d.ts +0 -7
  237. package/dist/globals.js +0 -2
  238. package/dist/icons/Add.d.ts +0 -6
  239. package/dist/icons/Add.js +0 -10
  240. package/dist/icons/Cancel.d.ts +0 -5
  241. package/dist/icons/Cancel.js +0 -10
  242. package/dist/icons/Chat.d.ts +0 -6
  243. package/dist/icons/Chat.js +0 -9
  244. package/dist/icons/Close.d.ts +0 -3
  245. package/dist/icons/Close.js +0 -10
  246. package/dist/icons/Delete.d.ts +0 -3
  247. package/dist/icons/Delete.js +0 -11
  248. package/dist/icons/Download.d.ts +0 -3
  249. package/dist/icons/Download.js +0 -10
  250. package/dist/icons/Email.d.ts +0 -3
  251. package/dist/icons/Email.js +0 -8
  252. package/dist/icons/Information.d.ts +0 -3
  253. package/dist/icons/Information.js +0 -12
  254. package/dist/icons/List.d.ts +0 -3
  255. package/dist/icons/List.js +0 -15
  256. package/dist/icons/Microphone.d.ts +0 -5
  257. package/dist/icons/Microphone.js +0 -12
  258. package/dist/icons/Phone.d.ts +0 -3
  259. package/dist/icons/Phone.js +0 -8
  260. package/dist/icons/Reload.d.ts +0 -3
  261. package/dist/icons/Reload.js +0 -10
  262. package/dist/icons/ThumbsDown.d.ts +0 -3
  263. package/dist/icons/ThumbsDown.js +0 -11
  264. package/dist/icons/ThumbsUp.d.ts +0 -3
  265. package/dist/icons/ThumbsUp.js +0 -11
  266. package/dist/icons/Website.d.ts +0 -3
  267. package/dist/icons/Website.js +0 -8
  268. package/dist/main.js +0 -336
  269. package/dist/store/composer.d.ts +0 -17
  270. package/dist/store/composer.js +0 -98
  271. package/dist/store/index.d.ts +0 -82
  272. package/dist/store/index.js +0 -576
  273. package/dist/store/view.d.ts +0 -61
  274. package/dist/store/view.js +0 -361
  275. package/dist/translations/ar.json +0 -30
  276. package/dist/translations/de.json +0 -32
  277. package/dist/translations/en.json +0 -40
  278. package/dist/translations/es.json +0 -19
  279. package/dist/translations/fr.json +0 -40
  280. package/dist/translations/index.d.ts +0 -9
  281. package/dist/translations/index.js +0 -95
  282. package/dist/translations/it.json +0 -38
  283. package/dist/translations/pt.json +0 -19
  284. package/dist/translations/ru.json +0 -24
  285. package/dist/translations/uk.json +0 -24
  286. package/dist/typings.d.ts +0 -378
  287. package/dist/typings.js +0 -2
  288. package/dist/utils/analytics.d.ts +0 -5
  289. package/dist/utils/analytics.js +0 -37
  290. package/dist/utils/index.d.ts +0 -3
  291. package/dist/utils/index.js +0 -27
  292. package/dist/utils/storage.d.ts +0 -16
  293. package/dist/utils/storage.js +0 -129
  294. package/dist/utils/webchatEvents.d.ts +0 -2
  295. package/dist/utils/webchatEvents.js +0 -14
@@ -0,0 +1,353 @@
1
+ import { Theme } from '../schemas'
2
+
3
+ import { clsx } from 'clsx'
4
+
5
+ export const eggplantTheme: Theme = {
6
+ container: {
7
+ className:
8
+ 'w-full h-full border border-gray-200 rounded-lg flex flex-col @container relative overflow-hidden font-plex',
9
+ },
10
+ modal: {
11
+ container: {
12
+ className: 'absolute inset-0 z-30 flex p-2 pointer-events-none',
13
+ },
14
+ overlay: {
15
+ className: 'absolute inset-0 z-30 bg-black/30 backdrop-blur-[1px]',
16
+ },
17
+ dialog: {
18
+ container: {
19
+ className:
20
+ 'mx-auto mt-auto rounded-md bg-white p-6 text-gray-900 shadow w-full @md:w-auto @md:mb-auto pointer-events-auto',
21
+ },
22
+ title: {
23
+ container: {
24
+ className: 'flex items-center justify-between mb-2',
25
+ },
26
+ text: {
27
+ className: 'text-base text-gray-900',
28
+ },
29
+ closeIcon: {
30
+ className: ' h-5 cursor-pointer text-gray-500 hover:text-gray-700',
31
+ },
32
+ },
33
+ content: {
34
+ className: 'text-sm text-gray-600 flex flex-col',
35
+ },
36
+ },
37
+ },
38
+ notification: {
39
+ container: {
40
+ className:
41
+ 'group/toast grid w-full grid-cols-[auto_1fr_auto] items-center gap-x-2 rounded-md border border-gray-200 bg-white p-4 shadow-md',
42
+ },
43
+ title: {
44
+ className: 'col-start-2 text-sm font-medium text-gray-900',
45
+ },
46
+ description: {
47
+ className: 'col-start-2 mt-1 text-sm text-gray-500',
48
+ },
49
+ icon: {
50
+ className:
51
+ 'aspect-square h-5 group-data-[type=error]/toast:text-red-500 group-data-[type=success]/toast:text-green-500',
52
+ },
53
+ closeIcon: {
54
+ className: 'col-start-3 row-start-1 aspect-square h-5 hover:cursor-pointer',
55
+ },
56
+ },
57
+ header: {
58
+ container: {
59
+ className: 'rounded-t-md p-1 mb-auto group/header flex flex-col shadow bg-gray-50',
60
+ },
61
+ content: {
62
+ container: {
63
+ className: clsx(
64
+ 'grid grow cursor-pointer grid-cols-[auto_1fr_auto] items-center gap-x-2 rounded-md p-1 px-3 text-left transition-colors hover:bg-gray-200 ',
65
+ 'group-data-[state=open]/header:grid-cols-1',
66
+ 'group-data-[state=open]/header:justify-items-center'
67
+ ),
68
+ },
69
+ title: { className: 'text-base text-gray-700 py-0.5 font-medium' },
70
+ description: {
71
+ className: clsx(
72
+ 'text-sm text-gray-500 py-0.5',
73
+ 'group-data-[state=closed]/header:truncate',
74
+ 'group-data-[state=closed]/header:col-start-2',
75
+ 'group-data-[state=open]/header:text-center'
76
+ ),
77
+ },
78
+ avatar: {
79
+ container: {
80
+ className: clsx(
81
+ 'mr-2 p-px rounded-full overflow-hidden',
82
+ 'group-data-[state=closed]/header:row-span-2',
83
+ 'group-data-[state=open]/header:mt-6',
84
+ 'group-data-[state=open]/header:mb-2'
85
+ ),
86
+ },
87
+ image: {
88
+ className: 'aspect-square h-8 rounded-full group-data-[state=open]/header:h-16',
89
+ },
90
+ fallback: {
91
+ className: 'bg-gray-200 flex h-full w-full items-center justify-center rounded-full',
92
+ },
93
+ },
94
+ actions: {
95
+ container: {
96
+ className: clsx(
97
+ 'flex',
98
+ 'group-data-[state=closed]/header:col-start-3',
99
+ 'group-data-[state=closed]/header:row-span-2',
100
+ 'group-data-[state=open]/header:hidden',
101
+ 'group-data-[state=closed]/header:!row-start-1'
102
+ ),
103
+ },
104
+ icons: {
105
+ className: 'h-9 w-9 cursor-pointer rounded-md p-2 text-gray-400 transition-colors hover:bg-gray-200 ',
106
+ },
107
+ },
108
+ },
109
+ expandedContent: {
110
+ container: {
111
+ className:
112
+ 'grid grid-cols-[auto_auto] gap-y-2 text-sm items-center group-data-[state=open]/header:py-2 mx-auto ',
113
+ },
114
+ descriptionItems: {
115
+ container: {
116
+ className: clsx(
117
+ 'flex items-center gap-2 group/description-item peer text-sm text-indigo-900 col-span-2 hover:cursor-pointer relative',
118
+ 'data-[terms]:col-span-1',
119
+ 'data-[terms]:justify-self-end',
120
+ 'data-[terms]:pr-2',
121
+ 'data-[terms]:mt-4',
122
+ 'data-[terms]:text-xs',
123
+ 'data-[terms]:text-indigo-800',
124
+ 'data-[terms]:last-of-type:col-span-full',
125
+ 'data-[terms]:last-of-type:justify-self-center',
126
+ 'data-[privacy]:justify-self-center',
127
+ 'data-[privacy]:col-span-full',
128
+ 'data-[privacy]:mt-4',
129
+ 'data-[privacy]:text-xs',
130
+ 'data-[privacy]:text-indigo-800',
131
+ 'data-[privacy]:peer-data-[terms]:justify-self-start',
132
+ 'data-[privacy]:peer-data-[terms]:col-span-1',
133
+ 'data-[privacy]:peer-data-[terms]:pl-2',
134
+ 'data-[privacy]:peer-data-[terms]:before:absolute',
135
+ 'data-[privacy]:peer-data-[terms]:before:w-px',
136
+ 'data-[privacy]:peer-data-[terms]:before:h-2/3',
137
+ 'data-[privacy]:peer-data-[terms]:before:bg-gray-300',
138
+ 'data-[privacy]:peer-data-[terms]:before:left-0',
139
+ 'data-[privacy]:peer-data-[terms]:before:bg-indigo-800',
140
+ 'data-[privacy]:peer-data-[terms]:before:inset-auto'
141
+ ),
142
+ },
143
+ icon: {
144
+ className: clsx(
145
+ 'h-5 text-indigo-700 rounded-full',
146
+ 'group-data-[terms]/description-item:hidden',
147
+ 'group-data-[privacy]/description-item:hidden'
148
+ ),
149
+ },
150
+ text: {
151
+ className: clsx(
152
+ 'truncate pt-1',
153
+ 'group-data-[terms]/description-item:pt-0',
154
+ 'group-data-[privacy]/description-item:pt-0'
155
+ ),
156
+ },
157
+ link: {
158
+ className: clsx(
159
+ 'truncate group-hover/description-item:underline pt-1',
160
+ 'group-data-[terms]/description-item:pt-0',
161
+ 'group-data-[privacy]/description-item:pt-0'
162
+ ),
163
+ },
164
+ },
165
+ },
166
+ newConversationIcon: {
167
+ className:
168
+ 'h-9 w-9 text-zinc-500 p-2 cursor-pointer ml-auto hover:text-zinc-700 transition-colors row-span-2 row-start-1 col-start-6',
169
+ },
170
+ },
171
+ composer: {
172
+ container: {
173
+ className:
174
+ 'group/composer-container shadow border bg-gray-50 m-2 text-gray-800 rounded transition-colors flex gap-2 items-center focus-within:border-zinc-300',
175
+ },
176
+ input: {
177
+ className:
178
+ 'flex-grow outline-none bg-inherit px-2 m-3 rounded-md placeholder-gray-400 text-sm resize-none h-[1.5em]',
179
+ },
180
+ button: {
181
+ container: {
182
+ className: clsx(
183
+ 'relative transition-colors bg-indigo-600 flex items-center justify-center px-2 py-1 rounded text-sm font-medium text-white m-2',
184
+ 'hover:bg-indigo-700 hover:cursor-pointer',
185
+ 'group-data-[disabled=true]/composer-container:hidden',
186
+ "after:content-['Send']",
187
+ 'disabled:hidden '
188
+ ),
189
+ },
190
+ icon: {
191
+ className: 'hidden',
192
+ },
193
+ },
194
+ },
195
+ messageList: {
196
+ className: 'flex flex-col gap-2 p-2 overflow-y-auto overflow-x-hidden scroll-smooth ',
197
+ },
198
+ message: {
199
+ container: {
200
+ className: clsx(
201
+ 'flex group gap-2 text-sm text-gray-700',
202
+ 'data-[direction=incoming]:justify-start data-[direction=outgoing]:justify-end data-[loaded=false]:hidden'
203
+ ),
204
+ },
205
+ avatar: {
206
+ container: {
207
+ className: 'relative h-7 w-7 shrink-0 overflow-hidden rounded-full hidden group-data-[direction=incoming]:flex',
208
+ },
209
+ image: {
210
+ className: 'aspect-square h-full w-full',
211
+ },
212
+ fallback: {
213
+ className: 'bg-gray-200 flex h-full w-full items-center justify-center rounded-full',
214
+ },
215
+ },
216
+ blocks: {
217
+ text: {
218
+ text: {
219
+ className: '',
220
+ },
221
+ heading1: {
222
+ className: 'text-xl font-medium text-gray-900 group-data-[direction=outgoing]:text-blue-800',
223
+ },
224
+ heading2: {
225
+ className: 'text-lg text-gray-900 group-data-[direction=outgoing]:text-blue-800',
226
+ },
227
+ heading3: {
228
+ className: 'text-base',
229
+ },
230
+ unorderedList: {
231
+ className: 'list-disc list-inside marker:text-gray-500 group-data-[direction=outgoing]:marker:text-blue-800',
232
+ },
233
+ orderedList: {
234
+ className:
235
+ 'list-decimal list-inside marker:text-gray-600 group-data-[direction=outgoing]:marker:text-blue-800',
236
+ },
237
+ },
238
+ button: {
239
+ className: clsx(
240
+ 'bg-indigo-600 hover:bg-indigo-700 rounded-md p-1 text-sm font-medium px-2 text-white',
241
+ 'data-[activated]:border-indigo-700',
242
+ 'data-[activated]:text-indigo-700',
243
+ 'data-[activated]:bg-gray-100',
244
+ 'data-[activated]:font-normal',
245
+ 'data-[activated]:border',
246
+ 'data-[group-activated]:text-gray-500',
247
+ 'data-[group-activated]:bg-gray-100',
248
+ 'data-[group-activated]:font-normal'
249
+ ),
250
+ },
251
+ image: {
252
+ image: {
253
+ className: clsx(
254
+ 'border border-gray-200 rounded-2xl object-cover w-[95%]',
255
+ 'data-[orientation=landscape]:aspect-[4/3]',
256
+ 'data-[orientation=portrait]:aspect-[3/4]',
257
+ 'data-[orientation=square]:aspect-square',
258
+ '@xs:w-56',
259
+ 'data-[loaded=false]:hidden'
260
+ ),
261
+ },
262
+ placeholder: {
263
+ className: clsx(
264
+ 'border border-gray-200 rounded-2xl bg-red-300 animate-pulse',
265
+ 'data-[orientation=landscape]:aspect-[4/3]',
266
+ 'data-[orientation=portrait]:aspect-[3/4]',
267
+ 'data-[orientation=square]:aspect-square',
268
+ '@xs:w-56'
269
+ ),
270
+ },
271
+ },
272
+ video: {
273
+ className: 'border border-gray-200 rounded-2xl',
274
+ },
275
+ location: {
276
+ container: {
277
+ className: 'flex gap-2 group items-center p-1 bg-gray-100 py-2 px-4 rounded',
278
+ },
279
+ title: {
280
+ className: 'text-indigo-900 group-hover:underline mt-1',
281
+ },
282
+ icon: {
283
+ className: 'h-5 w-5 text-indigo-600',
284
+ },
285
+ },
286
+ row: {
287
+ className: clsx(
288
+ 'flex gap-2 flex-wrap',
289
+ 'data-[horizontal=center]:justify-center',
290
+ 'data-[horizontal=right]:justify-end',
291
+ 'data-[horizontal=stretch]:justify-between',
292
+ 'data-[vertical=center]:items-center',
293
+ 'data-[vertical=bottom]:items-end'
294
+ ),
295
+ },
296
+ column: {
297
+ className: clsx(
298
+ 'flex flex-col gap-2 w-fit group/container',
299
+ 'data-[horizontal=center]:items-center',
300
+ 'data-[horizontal=right]:items-end',
301
+ 'data-[vertical=center]:justify-center',
302
+ 'data-[vertical=bottom]:justify-end',
303
+ 'data-[vertical=stretch]:justify-between'
304
+ ),
305
+ },
306
+ bubble: {
307
+ className: clsx(
308
+ 'rounded p-2 px-4 max-w-[85%]',
309
+ 'group-data-[direction=outgoing]:bg-indigo-100',
310
+ 'group-data-[direction=outgoing]:text-indigo-800',
311
+ 'group-data-[direction=outgoing]:rounded-br-md',
312
+ 'group-data-[direction=incoming]:rounded-bl-md',
313
+ 'group-data-[direction=incoming]:bg-gray-100',
314
+ 'group-data-[direction=incoming]:border-gray-200',
315
+ 'group-data-[direction=incoming]:text-gray-800'
316
+ ),
317
+ },
318
+ carousel: {
319
+ container: {
320
+ className: 'group relative overflow-hidden',
321
+ },
322
+ slidesContainer: {
323
+ className:
324
+ 'grid auto-cols-[90%] grid-flow-col gap-x-2 object-cover px-2 @md:auto-cols-max [&>*]:max-w-[26rem]',
325
+ },
326
+ backButton: {
327
+ className: clsx(
328
+ 'absolute left-1 top-1/2 h-7 -translate-y-1/2 rounded-full bg-gray-700 bg-opacity-20 p-0.5 text-gray-200 shadow transition-all',
329
+ 'hover:scale-110 hover:cursor-pointer group-hover:bg-opacity-80 group-hover:text-gray-100 data-[disabled]:hidden'
330
+ ),
331
+ },
332
+ nextButton: {
333
+ className: clsx(
334
+ 'absolute right-1 top-1/2 h-7 -translate-y-1/2 rounded-full bg-gray-700 bg-opacity-20 p-0.5 text-gray-200 shadow transition-all',
335
+ 'hover:scale-110 hover:cursor-pointer group-hover:bg-opacity-80 group-hover:text-gray-100 data-[disabled]:hidden'
336
+ ),
337
+ },
338
+ },
339
+ },
340
+ },
341
+ loadingIndicator: {
342
+ container: {
343
+ className: clsx(
344
+ 'flex items-end gap-1.5 border border-gray-200 bg-gray-100 rounded p-2',
345
+ 'before:(animate-jump h-1.5 w-1.5 rounded-full bg-gray-600)',
346
+ 'after:(animate-jump h-1.5 w-1.5 rounded-full bg-gray-600 [animation-delay:0.2s])'
347
+ ),
348
+ },
349
+ loader: {
350
+ className: clsx('animate-jump h-1.5 w-1.5 rounded-full bg-gray-600 [animation-delay:0.1s]'),
351
+ },
352
+ },
353
+ }
@@ -0,0 +1,323 @@
1
+ import { Theme } from '../schemas'
2
+ import { clsx } from 'clsx'
3
+ export const galaxyTheme: Theme = {
4
+ container: {
5
+ className:
6
+ 'w-full h-full border bg-neutral-800 border-neutral-700 rounded-lg flex flex-col @container relative overflow-hidden font-rubik [color-scheme:dark]',
7
+ },
8
+ modal: {
9
+ container: {
10
+ className: 'absolute inset-0 z-30 flex p-2 pointer-events-none',
11
+ },
12
+ overlay: {
13
+ className: 'absolute inset-0 z-30 bg-black/30 backdrop-blur-[1px]',
14
+ },
15
+ dialog: {
16
+ container: {
17
+ className:
18
+ 'mx-auto mt-auto rounded-md bg-white p-6 text-neutral-900 shadow w-full @md:w-auto @md:mb-auto pointer-events-auto',
19
+ },
20
+ title: {
21
+ container: {
22
+ className: 'flex items-center justify-between mb-2',
23
+ },
24
+ text: {
25
+ className: 'text-base text-neutral-900',
26
+ },
27
+ closeIcon: {
28
+ className: ' h-5 cursor-pointer text-neutral-500 hover:text-neutral-700',
29
+ },
30
+ },
31
+ content: {
32
+ className: 'text-sm text-neutral-600 flex flex-col',
33
+ },
34
+ },
35
+ },
36
+ notification: {
37
+ container: {
38
+ className:
39
+ 'group/toast grid w-full grid-cols-[auto_1fr_auto] items-center gap-x-2 rounded-md border border-neutral-200 bg-white p-4 shadow-md',
40
+ },
41
+ title: {
42
+ className: 'col-start-2 text-sm font-medium text-neutral-900',
43
+ },
44
+ description: {
45
+ className: 'col-start-2 mt-1 text-sm text-neutral-500',
46
+ },
47
+ icon: {
48
+ className:
49
+ 'aspect-square h-5 group-data-[type=error]/toast:text-red-500 group-data-[type=success]/toast:text-green-500',
50
+ },
51
+ closeIcon: {
52
+ className: 'col-start-3 row-start-1 aspect-square h-5 hover:cursor-pointer',
53
+ },
54
+ },
55
+ header: {
56
+ container: {
57
+ className: 'rounded-t-md p-1 mb-auto group/header flex flex-col shadow',
58
+ },
59
+ content: {
60
+ container: {
61
+ className: clsx(
62
+ 'grid grow cursor-pointer grid-cols-[auto_1fr_auto] items-center gap-x-2 rounded-md p-1 px-3 text-left transition-colors hover:bg-neutral-700 ',
63
+ 'group-data-[state=open]/header:(grid-cols-1 justify-items-center)'
64
+ ),
65
+ },
66
+ title: { className: 'text-base text-neutral-100 py-0.5 font-medium' },
67
+ description: {
68
+ className: clsx(
69
+ 'text-sm text-neutral-300 py-0.5',
70
+ 'group-data-[state=closed]/header:(truncate col-start-2)',
71
+ 'group-data-[state=open]/header:text-center'
72
+ ),
73
+ },
74
+ avatar: {
75
+ container: {
76
+ className: clsx(
77
+ 'mr-2 p-px rounded-full overflow-hidden',
78
+ 'group-data-[state=closed]/header:row-span-2',
79
+ 'group-data-[state=open]/header:(mt-6 mb-2)'
80
+ ),
81
+ },
82
+ image: {
83
+ className: 'aspect-square h-8 rounded-full group-data-[state=open]/header:h-16',
84
+ },
85
+ fallback: {
86
+ className: 'bg-neutral-600 flex h-full w-full items-center justify-center rounded-full',
87
+ },
88
+ },
89
+ actions: {
90
+ container: {
91
+ className: clsx(
92
+ 'flex',
93
+ 'group-data-[state=closed]/header:col-start-3',
94
+ 'group-data-[state=closed]/header:row-span-2',
95
+ 'group-data-[state=open]/header:hidden',
96
+ 'group-data-[state=closed]/header:!row-start-1'
97
+ ),
98
+ },
99
+ icons: {
100
+ className: 'h-9 w-9 cursor-pointer rounded-md p-2 text-neutral-300 transition-colors hover:bg-neutral-600 ',
101
+ },
102
+ },
103
+ },
104
+ expandedContent: {
105
+ container: {
106
+ className:
107
+ 'grid grid-cols-[auto_auto_auto_auto_auto_auto] justify-items-center text-sm items-center gap-4 gap-y-6 px-2 group-data-[state=open]/header:py-2 mx-auto',
108
+ },
109
+ descriptionItems: {
110
+ container: {
111
+ className: clsx(
112
+ 'flex items-center gap-1 group/description-item text-xs text-neutral-300 col-span-2 hover:cursor-pointer',
113
+ 'data-[terms]:col-span-3',
114
+ 'data-[privacy]:col-span-3'
115
+ ),
116
+ },
117
+ icon: {
118
+ className: clsx(
119
+ 'h-12 p-3 text-white rounded-full',
120
+ 'group-data-[phone]/description-item:bg-green-300/80',
121
+ 'group-data-[email]/description-item:bg-red-300/80',
122
+ 'group-data-[website]/description-item:bg-blue-300/80',
123
+ 'group-data-[phone]/description-item:text-green-900',
124
+ 'group-data-[email]/description-item:text-red-900',
125
+ 'group-data-[website]/description-item:text-blue-900',
126
+ 'group-data-[terms]/description-item:h-5',
127
+ 'group-data-[terms]/description-item:text-neutral-300',
128
+ 'group-data-[terms]/description-item:p-0',
129
+ 'group-data-[privacy]/description-item:h-5',
130
+ 'group-data-[privacy]/description-item:p-0',
131
+ 'group-data-[privacy]/description-item:text-neutral-300'
132
+ ),
133
+ },
134
+ text: {
135
+ className: clsx(
136
+ 'truncate pt-1',
137
+ 'group-data-[email]/description-item:hidden',
138
+ 'group-data-[phone]/description-item:hidden',
139
+ 'group-data-[website]/description-item:hidden'
140
+ ),
141
+ },
142
+ link: {
143
+ className: clsx(
144
+ 'truncate group-hover/description-item:underline pt-1',
145
+ 'group-data-[email]/description-item:hidden',
146
+ 'group-data-[phone]/description-item:hidden',
147
+ 'group-data-[website]/description-item:hidden'
148
+ ),
149
+ },
150
+ },
151
+ },
152
+ newConversationIcon: {
153
+ className:
154
+ 'h-9 w-9 text-zinc-500 p-2 cursor-pointer ml-auto hover:text-zinc-700 transition-colors row-span-2 row-start-1 col-start-6',
155
+ },
156
+ },
157
+ composer: {
158
+ container: {
159
+ className:
160
+ 'group/composer-container data-[disabled=true]:bg-neutral-800 shadow border border-transparent bg-neutral-900 m-2 rounded-full transition-colors flex gap-2 items-center focus-within:border-neutral-700',
161
+ },
162
+ input: {
163
+ className:
164
+ 'flex-grow outline-none bg-inherit px-2 m-3 rounded-md placeholder-neutral-400 text-neutral-50 text-sm resize-none h-[1.5em]',
165
+ },
166
+ button: {
167
+ container: {
168
+ className:
169
+ 'group-data-[disabled=true]/composer-container:hidden h-11 p-2 rounded-full transition-colors text-blue-300 hover:text-blue-200 disabled:hidden flex items-center justify-center',
170
+ },
171
+ icon: {
172
+ className: 'h-full w-full',
173
+ },
174
+ },
175
+ },
176
+ messageList: {
177
+ className: 'flex flex-col gap-2 p-4 overflow-y-auto overflow-x-hidden scroll-smooth',
178
+ },
179
+ message: {
180
+ container: {
181
+ className: clsx(
182
+ 'flex group gap-2 text-sm text-neutral-100',
183
+ 'data-[direction=incoming]:justify-start data-[direction=outgoing]:justify-end data-[loaded=false]:hidden'
184
+ ),
185
+ },
186
+ avatar: {
187
+ container: {
188
+ className:
189
+ 'relative h-7 w-7 shrink-0 overflow-hidden rounded-full hidden self-end group-data-[direction=incoming]:flex',
190
+ },
191
+ image: {
192
+ className: 'aspect-square h-full w-full',
193
+ },
194
+ fallback: {
195
+ className: 'bg-neutral-600 flex h-full w-full items-center justify-center rounded-full',
196
+ },
197
+ },
198
+ blocks: {
199
+ text: {
200
+ heading1: {
201
+ className: 'text-xl font-medium text-neutral-50 group-data-[direction=outgoing]:text-blue-100',
202
+ },
203
+ heading2: {
204
+ className: 'text-lg text-neutral-50 group-data-[direction=outgoing]:text-blue-100',
205
+ },
206
+ heading3: {
207
+ className: 'text-base',
208
+ },
209
+ unorderedList: {
210
+ className:
211
+ 'list-disc list-inside marker:text-neutral-100 group-data-[direction=outgoing]:marker:text-blue-100',
212
+ },
213
+ orderedList: {
214
+ className:
215
+ 'list-decimal list-inside marker:text-neutral-200 group-data-[direction=outgoing]:marker:text-blue-100',
216
+ },
217
+ },
218
+ button: {
219
+ className:
220
+ 'bg-blue-500 rounded-md p-2 text-sm px-3 text-white data-[activated]:hidden data-[group-activated]:hidden',
221
+ },
222
+ image: {
223
+ image: {
224
+ className: clsx(
225
+ 'rounded-2xl object-cover w-[95%]',
226
+ 'data-[orientation=landscape]:aspect-[4/3]',
227
+ 'data-[orientation=portrait]:aspect-[3/4]',
228
+ 'data-[orientation=square]:aspect-square',
229
+ '@xs:w-56',
230
+ 'data-[loaded=false]:hidden'
231
+ ),
232
+ },
233
+ placeholder: {
234
+ className: clsx(
235
+ 'border border-neutral-200 rounded-2xl bg-red-300 animate-pulse',
236
+ 'data-[orientation=landscape]:aspect-[4/3]',
237
+ 'data-[orientation=portrait]:aspect-[3/4]',
238
+ 'data-[orientation=square]:aspect-square',
239
+ '@xs:w-56'
240
+ ),
241
+ },
242
+ },
243
+ video: {
244
+ className: 'rounded-2xl',
245
+ },
246
+ location: {
247
+ container: {
248
+ className: 'flex gap-2 group items-center p-1 bg-neutral-700 py-2 px-4 rounded-3xl',
249
+ },
250
+ title: {
251
+ className: 'group-hover:underline mt-1',
252
+ },
253
+ icon: {
254
+ className: 'h-5 w-5 text-red-300 ',
255
+ },
256
+ },
257
+ row: {
258
+ className: clsx(
259
+ 'flex gap-2 flex-wrap',
260
+ 'data-[horizontal=center]:justify-center',
261
+ 'data-[horizontal=right]:justify-end',
262
+ 'data-[horizontal=stretch]:justify-between',
263
+ 'data-[vertical=center]:items-center',
264
+ 'data-[vertical=bottom]:items-end'
265
+ ),
266
+ },
267
+ column: {
268
+ className: clsx(
269
+ 'flex flex-col gap-2 w-fit group/container',
270
+ 'data-[horizontal=center]:items-center',
271
+ 'data-[horizontal=right]:items-end',
272
+ 'data-[vertical=center]:justify-center',
273
+ 'data-[vertical=bottom]:justify-end',
274
+ 'data-[vertical=stretch]:justify-between'
275
+ ),
276
+ },
277
+ bubble: {
278
+ className: clsx(
279
+ 'rounded-3xl p-2 px-4 max-w-[85%]',
280
+ 'group-data-[direction=outgoing]:bg-blue-800',
281
+ 'group-data-[direction=outgoing]:text-blue-100',
282
+ 'group-data-[direction=outgoing]:rounded-br-md',
283
+ 'group-data-[direction=incoming]:rounded-bl-md',
284
+ 'group-data-[direction=incoming]:bg-neutral-700',
285
+ 'group-data-[direction=incoming]:text-neutral-100'
286
+ ),
287
+ },
288
+ carousel: {
289
+ container: {
290
+ className: 'group relative overflow-hidden',
291
+ },
292
+ slidesContainer: {
293
+ className:
294
+ 'grid auto-cols-[90%] grid-flow-col gap-x-2 object-cover px-2 @md:auto-cols-max [&>*]:max-w-[26rem]',
295
+ },
296
+ backButton: {
297
+ className: clsx(
298
+ 'absolute left-1 top-1/2 h-7 -translate-y-1/2 rounded-full bg-neutral-700 bg-opacity-20 p-0.5 text-neutral-200 shadow transition-all',
299
+ 'hover:scale-110 hover:cursor-pointer group-hover:bg-opacity-80 group-hover:text-neutral-100 data-[disabled]:hidden'
300
+ ),
301
+ },
302
+ nextButton: {
303
+ className: clsx(
304
+ 'absolute right-1 top-1/2 h-7 -translate-y-1/2 rounded-full bg-neutral-700 bg-opacity-20 p-0.5 text-neutral-200 shadow transition-all',
305
+ 'hover:scale-110 hover:cursor-pointer group-hover:bg-opacity-80 group-hover:text-neutral-100 data-[disabled]:hidden'
306
+ ),
307
+ },
308
+ },
309
+ },
310
+ },
311
+ loadingIndicator: {
312
+ container: {
313
+ className: clsx(
314
+ 'flex items-end gap-1.5 bg-neutral-700 rounded-lg p-2',
315
+ 'before:(animate-jump h-1.5 w-1.5 rounded-full bg-neutral-400)',
316
+ 'after:(animate-jump h-1.5 w-1.5 rounded-full bg-neutral-400 [animation-delay:0.2s])'
317
+ ),
318
+ },
319
+ loader: {
320
+ className: clsx('animate-jump h-1.5 w-1.5 rounded-full bg-neutral-400 [animation-delay:0.1s]'),
321
+ },
322
+ },
323
+ }
@@ -0,0 +1,6 @@
1
+ export * from './dawn'
2
+ export * from './midnight'
3
+ export * from './duskTheme'
4
+ export * from './eggplant'
5
+ export * from './galaxy'
6
+ export * from './prism'