@memori.ai/memori-react 8.11.0 → 8.13.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 (243) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +2 -2
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  5. package/dist/components/Auth/Auth.js +36 -8
  6. package/dist/components/Auth/Auth.js.map +1 -1
  7. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
  8. package/dist/components/Chat/Chat.css +37 -3
  9. package/dist/components/Chat/Chat.js +61 -23
  10. package/dist/components/Chat/Chat.js.map +1 -1
  11. package/dist/components/ChatBubble/ChatBubble.css +87 -15
  12. package/dist/components/ChatBubble/ChatBubble.js +129 -19
  13. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  14. package/dist/components/ChatHistoryDrawer/ChatHistory.css +5 -1
  15. package/dist/components/ChatInputs/ChatInputs.css +293 -17
  16. package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
  17. package/dist/components/ChatInputs/ChatInputs.js +48 -27
  18. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  19. package/dist/components/ChatTextArea/ChatTextArea.css +75 -31
  20. package/dist/components/ChatTextArea/ChatTextArea.js +47 -18
  21. package/dist/components/ChatTextArea/ChatTextArea.js.map +1 -1
  22. package/dist/components/DateSelector/DateSelector.css +125 -104
  23. package/dist/components/DateSelector/DateSelector.d.ts +1 -1
  24. package/dist/components/DateSelector/DateSelector.js +110 -52
  25. package/dist/components/DateSelector/DateSelector.js.map +1 -1
  26. package/dist/components/FilePreview/FilePreview.css +225 -146
  27. package/dist/components/FilePreview/FilePreview.d.ts +1 -2
  28. package/dist/components/FilePreview/FilePreview.js +20 -6
  29. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  30. package/dist/components/Header/Header.css +2 -2
  31. package/dist/components/Header/Header.js +1 -1
  32. package/dist/components/Header/Header.js.map +1 -1
  33. package/dist/components/LoginDrawer/LoginDrawer.css +37 -5
  34. package/dist/components/LoginDrawer/LoginDrawer.d.ts +1 -2
  35. package/dist/components/LoginDrawer/LoginDrawer.js +2 -9
  36. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  37. package/dist/components/MediaWidget/MediaItemWidget.js +2 -1
  38. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  39. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  40. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  41. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +1 -1
  42. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  43. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -0
  44. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
  45. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -2
  46. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  47. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
  48. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +6 -4
  49. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  50. package/dist/components/MemoriWidget/MemoriWidget.css +11 -2
  51. package/dist/components/MemoriWidget/MemoriWidget.js +105 -25
  52. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  53. package/dist/components/MicrophoneButton/MicrophoneButton.css +2 -2
  54. package/dist/components/StartPanel/StartPanel.css +8 -0
  55. package/dist/components/UploadButton/UploadButton.css +20 -17
  56. package/dist/components/UploadButton/UploadButton.js +218 -87
  57. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  58. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -4
  59. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  60. package/dist/components/UploadButton/UploadImages/UploadImages.js +143 -16
  61. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  62. package/dist/components/layouts/chat.css +1 -1
  63. package/dist/components/ui/Drawer.css +8 -0
  64. package/dist/components/ui/Drawer.d.ts +2 -0
  65. package/dist/components/ui/Drawer.js +2 -2
  66. package/dist/components/ui/Drawer.js.map +1 -1
  67. package/dist/components/ui/Tooltip.css +49 -1
  68. package/dist/components/ui/Tooltip.d.ts +1 -1
  69. package/dist/helpers/constants.d.ts +1 -0
  70. package/dist/helpers/constants.js +2 -1
  71. package/dist/helpers/constants.js.map +1 -1
  72. package/dist/helpers/imageCompression.d.ts +7 -0
  73. package/dist/helpers/imageCompression.js +123 -0
  74. package/dist/helpers/imageCompression.js.map +1 -0
  75. package/dist/locales/de.json +13 -5
  76. package/dist/locales/en.json +17 -6
  77. package/dist/locales/es.json +13 -5
  78. package/dist/locales/fr.json +12 -5
  79. package/dist/locales/it.json +16 -6
  80. package/dist/styles.css +4 -4
  81. package/esm/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
  82. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +2 -2
  83. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  84. package/esm/components/Auth/Auth.js +36 -8
  85. package/esm/components/Auth/Auth.js.map +1 -1
  86. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
  87. package/esm/components/Chat/Chat.css +37 -3
  88. package/esm/components/Chat/Chat.js +61 -23
  89. package/esm/components/Chat/Chat.js.map +1 -1
  90. package/esm/components/ChatBubble/ChatBubble.css +87 -15
  91. package/esm/components/ChatBubble/ChatBubble.js +130 -20
  92. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  93. package/esm/components/ChatHistoryDrawer/ChatHistory.css +5 -1
  94. package/esm/components/ChatInputs/ChatInputs.css +293 -17
  95. package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
  96. package/esm/components/ChatInputs/ChatInputs.js +49 -28
  97. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  98. package/esm/components/ChatTextArea/ChatTextArea.css +75 -31
  99. package/esm/components/ChatTextArea/ChatTextArea.js +49 -20
  100. package/esm/components/ChatTextArea/ChatTextArea.js.map +1 -1
  101. package/esm/components/DateSelector/DateSelector.css +125 -104
  102. package/esm/components/DateSelector/DateSelector.d.ts +1 -1
  103. package/esm/components/DateSelector/DateSelector.js +111 -52
  104. package/esm/components/DateSelector/DateSelector.js.map +1 -1
  105. package/esm/components/FilePreview/FilePreview.css +225 -146
  106. package/esm/components/FilePreview/FilePreview.d.ts +1 -2
  107. package/esm/components/FilePreview/FilePreview.js +21 -7
  108. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  109. package/esm/components/Header/Header.css +2 -2
  110. package/esm/components/Header/Header.js +1 -1
  111. package/esm/components/Header/Header.js.map +1 -1
  112. package/esm/components/LoginDrawer/LoginDrawer.css +37 -5
  113. package/esm/components/LoginDrawer/LoginDrawer.d.ts +1 -2
  114. package/esm/components/LoginDrawer/LoginDrawer.js +2 -9
  115. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  116. package/esm/components/MediaWidget/MediaItemWidget.js +2 -1
  117. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  118. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  119. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  120. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +1 -1
  121. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  122. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -0
  123. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
  124. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -2
  125. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  126. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
  127. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +6 -4
  128. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  129. package/esm/components/MemoriWidget/MemoriWidget.css +11 -2
  130. package/esm/components/MemoriWidget/MemoriWidget.js +105 -25
  131. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  132. package/esm/components/MicrophoneButton/MicrophoneButton.css +2 -2
  133. package/esm/components/StartPanel/StartPanel.css +8 -0
  134. package/esm/components/UploadButton/UploadButton.css +20 -17
  135. package/esm/components/UploadButton/UploadButton.js +219 -88
  136. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  137. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -4
  138. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  139. package/esm/components/UploadButton/UploadImages/UploadImages.js +143 -16
  140. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  141. package/esm/components/layouts/chat.css +1 -1
  142. package/esm/components/ui/Drawer.css +8 -0
  143. package/esm/components/ui/Drawer.d.ts +2 -0
  144. package/esm/components/ui/Drawer.js +2 -2
  145. package/esm/components/ui/Drawer.js.map +1 -1
  146. package/esm/components/ui/Tooltip.css +49 -1
  147. package/esm/components/ui/Tooltip.d.ts +1 -1
  148. package/esm/helpers/constants.d.ts +1 -0
  149. package/esm/helpers/constants.js +1 -0
  150. package/esm/helpers/constants.js.map +1 -1
  151. package/esm/helpers/imageCompression.d.ts +7 -0
  152. package/esm/helpers/imageCompression.js +119 -0
  153. package/esm/helpers/imageCompression.js.map +1 -0
  154. package/esm/locales/de.json +13 -5
  155. package/esm/locales/en.json +17 -6
  156. package/esm/locales/es.json +13 -5
  157. package/esm/locales/fr.json +12 -5
  158. package/esm/locales/it.json +16 -6
  159. package/esm/styles.css +4 -4
  160. package/package.json +2 -2
  161. package/src/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
  162. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +3 -1
  163. package/src/components/Auth/Auth.tsx +55 -11
  164. package/src/components/Avatar/Avatar.stories.tsx +3 -0
  165. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
  166. package/src/components/Chat/Chat.css +37 -3
  167. package/src/components/Chat/Chat.stories.tsx +16 -2
  168. package/src/components/Chat/Chat.tsx +90 -21
  169. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +1752 -812
  170. package/src/components/ChatBubble/ChatBubble.css +87 -15
  171. package/src/components/ChatBubble/ChatBubble.stories.tsx +16 -2
  172. package/src/components/ChatBubble/ChatBubble.test.tsx +17 -0
  173. package/src/components/ChatBubble/ChatBubble.tsx +237 -33
  174. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +304 -8
  175. package/src/components/ChatHistoryDrawer/ChatHistory.css +5 -1
  176. package/src/components/ChatInputs/ChatInputs.css +293 -17
  177. package/src/components/ChatInputs/ChatInputs.tsx +156 -86
  178. package/src/components/ChatInputs/__snapshots__/ChatInputs.test.tsx.snap +430 -424
  179. package/src/components/ChatTextArea/ChatTextArea.css +75 -31
  180. package/src/components/ChatTextArea/ChatTextArea.test.tsx +1 -16
  181. package/src/components/ChatTextArea/ChatTextArea.tsx +51 -22
  182. package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +9 -72
  183. package/src/components/DateSelector/DateSelector.css +125 -104
  184. package/src/components/DateSelector/DateSelector.stories.tsx +1 -1
  185. package/src/components/DateSelector/DateSelector.test.tsx +137 -23
  186. package/src/components/DateSelector/DateSelector.tsx +203 -177
  187. package/src/components/FilePreview/FilePreview.css +225 -146
  188. package/src/components/FilePreview/FilePreview.tsx +49 -36
  189. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +2 -2
  190. package/src/components/Header/Header.css +2 -2
  191. package/src/components/Header/Header.stories.tsx +5 -1
  192. package/src/components/Header/Header.tsx +1 -1
  193. package/src/components/Header/__snapshots__/Header.test.tsx.snap +1 -1
  194. package/src/components/LoginDrawer/LoginDrawer.css +37 -5
  195. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +0 -1
  196. package/src/components/LoginDrawer/LoginDrawer.test.tsx +0 -1
  197. package/src/components/LoginDrawer/LoginDrawer.tsx +0 -19
  198. package/src/components/MediaWidget/MediaItemWidget.tsx +2 -1
  199. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +996 -204
  200. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +2 -2
  201. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +1 -1
  202. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +3 -0
  203. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +56 -54
  204. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
  205. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +12 -3
  206. package/src/components/MemoriWidget/MemoriWidget.css +11 -2
  207. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +6 -3
  208. package/src/components/MemoriWidget/MemoriWidget.tsx +173 -49
  209. package/src/components/MicrophoneButton/MicrophoneButton.css +2 -2
  210. package/src/components/StartPanel/StartPanel.css +8 -0
  211. package/src/components/UploadButton/UploadButton.css +20 -17
  212. package/src/components/UploadButton/UploadButton.stories.tsx +247 -35
  213. package/src/components/UploadButton/UploadButton.tsx +280 -173
  214. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +19 -4
  215. package/src/components/UploadButton/UploadImages/UploadImages.tsx +196 -35
  216. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +10 -1
  217. package/src/components/layouts/FullBody/FullBody.stories.tsx +9 -10
  218. package/src/components/layouts/Totem/Totem.stories.tsx +8 -9
  219. package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +8 -9
  220. package/src/components/layouts/chat.css +1 -1
  221. package/src/components/layouts/layouts.stories.tsx +10 -9
  222. package/src/components/ui/Drawer.css +8 -0
  223. package/src/components/ui/Drawer.tsx +16 -12
  224. package/src/components/ui/Tooltip.css +49 -1
  225. package/src/components/ui/Tooltip.tsx +1 -1
  226. package/src/helpers/constants.ts +1 -1
  227. package/src/helpers/imageCompression.ts +230 -0
  228. package/src/index.stories.tsx +18 -0
  229. package/src/locales/de.json +13 -5
  230. package/src/locales/en.json +17 -6
  231. package/src/locales/es.json +13 -5
  232. package/src/locales/fr.json +12 -5
  233. package/src/locales/it.json +16 -6
  234. package/src/mocks/data.ts +4 -2
  235. package/src/styles.css +4 -4
  236. package/src/components/SignupForm/SignupForm.test.tsx +0 -40
  237. package/src/components/SignupForm/SignupForm.tsx +0 -457
  238. package/src/components/SignupForm/__snapshots__/SignupForm.test.tsx.snap +0 -247
  239. package/src/components/UploadMenu/UploadMenu.css +0 -47
  240. package/src/components/UploadMenu/UploadMenu.stories.tsx +0 -66
  241. package/src/components/UploadMenu/UploadMenu.test.tsx +0 -34
  242. package/src/components/UploadMenu/UploadMenu.tsx +0 -68
  243. package/src/components/UploadMenu/__snapshots__/UploadMenu.test.tsx.snap +0 -137
@@ -1,60 +1,119 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useState, memo, Fragment } from 'react';
3
- import { Listbox, Transition } from '@headlessui/react';
2
+ import { useEffect, useState, memo, useMemo, useRef } from 'react';
4
3
  import { DateTime } from 'luxon';
5
4
  import { useTranslation } from 'react-i18next';
6
- import SelectIcon from '../icons/SelectIcon';
7
- const months = {
8
- en: [
9
- 'January',
10
- 'February',
11
- 'March',
12
- 'April',
13
- 'May',
14
- 'June',
15
- 'July',
16
- 'August',
17
- 'September',
18
- 'October',
19
- 'November',
20
- 'December',
21
- ],
22
- it: [
23
- 'Gennaio',
24
- 'Febbraio',
25
- 'Marzo',
26
- 'Aprile',
27
- 'Maggio',
28
- 'Giugno',
29
- 'Luglio',
30
- 'Agosto',
31
- 'Settembre',
32
- 'Ottobre',
33
- 'Novembre',
34
- 'Dicembre',
35
- ],
36
- };
37
5
  const DateSelector = memo(({ defaultDate, onChange, disabled = false }) => {
38
- const { t, i18n } = useTranslation();
39
- const [date, setDate] = useState(!defaultDate
40
- ? DateTime.now()
41
- : typeof defaultDate === 'string'
42
- ? DateTime.fromISO(defaultDate)
43
- : DateTime.fromJSDate(defaultDate));
6
+ const { t } = useTranslation();
7
+ const maxDate = useMemo(() => DateTime.now().minus({ years: 18 }), []);
8
+ const minDate = useMemo(() => DateTime.fromObject({ year: 1900, month: 1, day: 1 }), []);
9
+ const [day, setDay] = useState('');
10
+ const [month, setMonth] = useState('');
11
+ const [year, setYear] = useState('');
44
12
  useEffect(() => {
45
- onChange(date);
46
- }, [date, onChange]);
47
- return (_jsxs("div", { className: "memori--date-selector", children: [_jsx("div", { className: "memori--date-selector__select", children: _jsxs(Listbox, { value: date, onChange: value => {
48
- setDate(value);
49
- }, disabled: disabled, name: "day", children: [_jsxs(Listbox.Label, { className: "memori--date-selector__select-label", children: [t('day'), ":"] }), _jsxs(Listbox.Button, { "aria-label": t('day'), className: "memori--date-selector__select-button", children: [_jsx("span", { className: "memori--date-selector__select--value", children: date.day }), _jsx("span", { className: "memori--date-selector__select--icon", children: _jsx(SelectIcon, {}) })] }), _jsx(Transition, { as: Fragment, leave: "transition ease-in duration-100", leaveFrom: "opacity-100", leaveTo: "opacity-0", children: _jsx(Listbox.Options, { className: "memori--date-selector__select-options", children: [...Array(31).keys()].map(day => (_jsx(Listbox.Option, { value: date.set({ day: day + 1 }), className: "memori--date-selector__select-option", children: day + 1 }, day))) }) })] }) }), _jsx("div", { className: "memori--date-selector__select", children: _jsxs(Listbox, { value: date, onChange: value => {
50
- setDate(value);
51
- }, disabled: disabled, name: "month", children: [_jsxs(Listbox.Label, { className: "memori--date-selector__select-label", children: [t('month'), ":"] }), _jsxs(Listbox.Button, { "aria-label": t('month'), className: "memori--date-selector__select-button", children: [_jsx("span", { className: "memori--date-selector__select--value", children: months[i18n.language === 'it' ? 'it' : 'en'][date.month - 1] }), _jsx("span", { className: "memori--date-selector__select--icon", children: _jsx(SelectIcon, {}) })] }), _jsx(Transition, { as: Fragment, leave: "transition ease-in duration-100", leaveFrom: "opacity-100", leaveTo: "opacity-0", children: _jsx(Listbox.Options, { className: "memori--date-selector__select-options", children: months[i18n.language === 'it' ? 'it' : 'en'].map(month => (_jsx(Listbox.Option, { className: "memori--date-selector__select-option", value: date.set({
52
- month: months[i18n.language === 'it' ? 'it' : 'en'].findIndex(m => m === month) + 1,
53
- }), children: month }, month))) }) })] }) }), _jsx("div", { className: "memori--date-selector__select", children: _jsxs(Listbox, { value: date, onChange: value => {
54
- setDate(value);
55
- }, disabled: disabled, name: "year", children: [_jsxs(Listbox.Label, { className: "memori--date-selector__select-label", children: [t('year'), ":"] }), _jsxs(Listbox.Button, { "aria-label": t('year'), className: "memori--date-selector__select-button", children: [_jsx("span", { className: "memori--date-selector__select--value", children: date.year }), _jsx("span", { className: "memori--date-selector__select--icon", children: _jsx(SelectIcon, {}) })] }), _jsx(Transition, { as: Fragment, leave: "transition ease-in duration-100", leaveFrom: "opacity-100", leaveTo: "opacity-0", children: _jsx(Listbox.Options, { className: "memori--date-selector__select-options", children: [...Array(DateTime.now().year - 1899).keys()]
56
- .sort((a, b) => b - a)
57
- .map(year => (_jsx(Listbox.Option, { value: date.set({ year: year + 1900 }), className: "memori--date-selector__select-option", children: year + 1900 }, year))) }) })] }) })] }));
13
+ if (defaultDate) {
14
+ const dt = typeof defaultDate === 'string'
15
+ ? DateTime.fromISO(defaultDate)
16
+ : DateTime.fromJSDate(defaultDate);
17
+ if (dt.isValid) {
18
+ setDay(dt.day.toString());
19
+ setMonth(dt.month.toString());
20
+ setYear(dt.year.toString());
21
+ }
22
+ }
23
+ }, [defaultDate]);
24
+ const [isMobile, setIsMobile] = useState(false);
25
+ const dayRef = useRef(null);
26
+ const monthRef = useRef(null);
27
+ const yearRef = useRef(null);
28
+ useEffect(() => {
29
+ const checkMobile = () => {
30
+ setIsMobile(window.innerWidth < 768);
31
+ };
32
+ checkMobile();
33
+ window.addEventListener('resize', checkMobile);
34
+ return () => window.removeEventListener('resize', checkMobile);
35
+ }, []);
36
+ useEffect(() => {
37
+ if (!day || !month || !year) {
38
+ onChange(undefined);
39
+ return;
40
+ }
41
+ const d = parseInt(day);
42
+ const m = parseInt(month);
43
+ const y = parseInt(year);
44
+ if (isNaN(d) || isNaN(m) || isNaN(y)) {
45
+ onChange(undefined);
46
+ return;
47
+ }
48
+ const newDate = DateTime.fromObject({ year: y, month: m, day: d });
49
+ if (newDate.isValid && newDate >= minDate && newDate <= maxDate) {
50
+ onChange(newDate);
51
+ }
52
+ else {
53
+ onChange(undefined);
54
+ }
55
+ }, [day, month, year, onChange, minDate, maxDate]);
56
+ const handleMobileChange = (e) => {
57
+ const value = e.target.value;
58
+ if (value) {
59
+ const newDate = DateTime.fromISO(value);
60
+ if (newDate.isValid) {
61
+ setDay(newDate.day.toString());
62
+ setMonth(newDate.month.toString());
63
+ setYear(newDate.year.toString());
64
+ }
65
+ }
66
+ else {
67
+ setDay('');
68
+ setMonth('');
69
+ setYear('');
70
+ }
71
+ };
72
+ const handleDayChange = (e) => {
73
+ var _a;
74
+ const val = e.target.value;
75
+ if (val === '' || /^\d+$/.test(val)) {
76
+ if (val.length > 2)
77
+ return;
78
+ const numVal = parseInt(val);
79
+ if (numVal > 31)
80
+ return;
81
+ setDay(val);
82
+ if (val.length >= 2) {
83
+ (_a = monthRef.current) === null || _a === void 0 ? void 0 : _a.focus();
84
+ }
85
+ }
86
+ };
87
+ const handleMonthChange = (e) => {
88
+ var _a;
89
+ const val = e.target.value;
90
+ if (val === '' || /^\d+$/.test(val)) {
91
+ if (val.length > 2)
92
+ return;
93
+ const numVal = parseInt(val);
94
+ if (numVal > 12)
95
+ return;
96
+ setMonth(val);
97
+ if (val.length >= 2) {
98
+ (_a = yearRef.current) === null || _a === void 0 ? void 0 : _a.focus();
99
+ }
100
+ }
101
+ };
102
+ const handleYearChange = (e) => {
103
+ const val = e.target.value;
104
+ if (val === '' || /^\d+$/.test(val)) {
105
+ if (val.length > 4)
106
+ return;
107
+ setYear(val);
108
+ }
109
+ };
110
+ if (isMobile) {
111
+ const currentDate = (day && month && year)
112
+ ? DateTime.fromObject({ year: parseInt(year), month: parseInt(month), day: parseInt(day) })
113
+ : null;
114
+ return (_jsxs("div", { className: "memori--date-selector memori--date-selector--mobile", children: [_jsxs("label", { className: "memori--date-selector__mobile-label", children: [t('birthDate') || 'Birth Date', ":"] }), _jsx("input", { type: "date", className: "memori--date-selector__mobile-input", value: (currentDate === null || currentDate === void 0 ? void 0 : currentDate.isValid) ? currentDate.toISODate() || '' : '', onChange: handleMobileChange, disabled: disabled, min: minDate.toISODate() || '1900-01-01', max: maxDate.toISODate() || '', "aria-label": String(t('dateOfBirth') || t('date')) })] }));
115
+ }
116
+ return (_jsxs("div", { className: "memori--date-selector memori--date-selector--desktop", children: [_jsxs("div", { className: "memori--date-selector__input-group", children: [_jsx("label", { className: "memori--date-selector__label", children: t('day') || 'Day' }), _jsx("input", { ref: dayRef, type: "number", className: "memori--date-selector__input", value: day, onChange: handleDayChange, placeholder: t('dayPlaceholder') || 'DD', min: 1, max: 31, disabled: disabled })] }), _jsxs("div", { className: "memori--date-selector__input-group", children: [_jsx("label", { className: "memori--date-selector__label", children: t('month') || 'Month' }), _jsx("input", { ref: monthRef, type: "number", className: "memori--date-selector__input", value: month, onChange: handleMonthChange, placeholder: t('monthPlaceholder') || 'MM', min: 1, max: 12, disabled: disabled })] }), _jsxs("div", { className: "memori--date-selector__input-group memori--date-selector__input-group--year", children: [_jsx("label", { className: "memori--date-selector__label", children: t('year') || 'Year' }), _jsx("input", { ref: yearRef, type: "number", className: "memori--date-selector__input", value: year, onChange: handleYearChange, placeholder: t('yearPlaceholder') || 'YYYY', min: minDate.year, max: maxDate.year, disabled: disabled })] })] }));
58
117
  });
59
118
  DateSelector.displayName = 'DateSelector';
60
119
  export default DateSelector;
@@ -1 +1 @@
1
- {"version":3,"file":"DateSelector.js","sourceRoot":"","sources":["../../../src/components/DateSelector/DateSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAQ7C,MAAM,MAAM,GAAG;IACb,EAAE,EAAE;QACF,SAAS;QACT,UAAU;QACV,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;KACX;IACD,EAAE,EAAE;QACF,SAAS;QACT,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;KACX;CACF,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,CACvB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAS,EAAE,EAAE;IACrD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAC9B,CAAC,WAAW;QACV,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE;QAChB,CAAC,CAAC,OAAO,WAAW,KAAK,QAAQ;YACjC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CACrC,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErB,OAAO,CACL,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAK,SAAS,EAAC,+BAA+B,YAC5C,MAAC,OAAO,IACN,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAChB,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,KAAK,aAEV,MAAC,OAAO,CAAC,KAAK,IAAC,SAAS,EAAC,qCAAqC,aAC3D,CAAC,CAAC,KAAK,CAAC,SACK,EAChB,MAAC,OAAO,CAAC,MAAM,kBACD,CAAC,CAAC,KAAK,CAAC,EACpB,SAAS,EAAC,sCAAsC,aAEhD,eAAM,SAAS,EAAC,sCAAsC,YACnD,IAAI,CAAC,GAAG,GACJ,EACP,eAAM,SAAS,EAAC,qCAAqC,YACnD,KAAC,UAAU,KAAG,GACT,IACQ,EACjB,KAAC,UAAU,IACT,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAC,iCAAiC,EACvC,SAAS,EAAC,aAAa,EACvB,OAAO,EAAC,WAAW,YAEnB,KAAC,OAAO,CAAC,OAAO,IAAC,SAAS,EAAC,uCAAuC,YAC/D,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAChC,KAAC,OAAO,CAAC,MAAM,IAEb,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EACjC,SAAS,EAAC,sCAAsC,YAE/C,GAAG,GAAG,CAAC,IAJH,GAAG,CAKO,CAClB,CAAC,GACc,GACP,IACL,GACN,EAEN,cAAK,SAAS,EAAC,+BAA+B,YAC5C,MAAC,OAAO,IACN,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAChB,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,OAAO,aAEZ,MAAC,OAAO,CAAC,KAAK,IAAC,SAAS,EAAC,qCAAqC,aAC3D,CAAC,CAAC,OAAO,CAAC,SACG,EAChB,MAAC,OAAO,CAAC,MAAM,kBACD,CAAC,CAAC,OAAO,CAAC,EACtB,SAAS,EAAC,sCAAsC,aAEhD,eAAM,SAAS,EAAC,sCAAsC,YACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GACxD,EACP,eAAM,SAAS,EAAC,qCAAqC,YACnD,KAAC,UAAU,KAAG,GACT,IACQ,EACjB,KAAC,UAAU,IACT,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAC,iCAAiC,EACvC,SAAS,EAAC,aAAa,EACvB,OAAO,EAAC,WAAW,YAEnB,KAAC,OAAO,CAAC,OAAO,IAAC,SAAS,EAAC,uCAAuC,YAC/D,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CACzD,KAAC,OAAO,CAAC,MAAM,IAEb,SAAS,EAAC,sCAAsC,EAChD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;wCACd,KAAK,EACH,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CACpD,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CACjB,GAAG,CAAC;qCACR,CAAC,YAED,KAAK,IATD,KAAK,CAUK,CAClB,CAAC,GACc,GACP,IACL,GACN,EAEN,cAAK,SAAS,EAAC,+BAA+B,YAC5C,MAAC,OAAO,IACN,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAChB,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,MAAM,aAEX,MAAC,OAAO,CAAC,KAAK,IAAC,SAAS,EAAC,qCAAqC,aAC3D,CAAC,CAAC,MAAM,CAAC,SACI,EAChB,MAAC,OAAO,CAAC,MAAM,kBACD,CAAC,CAAC,MAAM,CAAC,EACrB,SAAS,EAAC,sCAAsC,aAEhD,eAAM,SAAS,EAAC,sCAAsC,YACnD,IAAI,CAAC,IAAI,GACL,EACP,eAAM,SAAS,EAAC,qCAAqC,YACnD,KAAC,UAAU,KAAG,GACT,IACQ,EACjB,KAAC,UAAU,IACT,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAC,iCAAiC,EACvC,SAAS,EAAC,aAAa,EACvB,OAAO,EAAC,WAAW,YAEnB,KAAC,OAAO,CAAC,OAAO,IAAC,SAAS,EAAC,uCAAuC,YAC/D,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;qCAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;qCACrB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACX,KAAC,OAAO,CAAC,MAAM,IAEb,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EACtC,SAAS,EAAC,sCAAsC,YAE/C,IAAI,GAAG,IAAI,IAJP,IAAI,CAKM,CAClB,CAAC,GACY,GACP,IACL,GACN,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAE1C,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"DateSelector.js","sourceRoot":"","sources":["../../../src/components/DateSelector/DateSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAe,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ/C,MAAM,YAAY,GAAG,IAAI,CACvB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAS,EAAE,EAAE;IACrD,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAG/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAGzF,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAG7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE;YACf,MAAM,EAAE,GAAG,OAAO,WAAW,KAAK,QAAQ;gBACxC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC/B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAErC,IAAI,EAAE,CAAC,OAAO,EAAE;gBACd,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1B,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC7B;SACF;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAGhD,MAAM,MAAM,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAG/C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,WAAW,EAAE,CAAC;QACd,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;YAC3B,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,OAAO;SACR;QAED,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACpC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,OAAO;SACR;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAInE,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE;YAC/D,QAAQ,CAAC,OAAO,CAAC,CAAC;SACnB;aAAM;YACL,QAAQ,CAAC,SAAS,CAAC,CAAC;SACrB;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAGnD,MAAM,kBAAkB,GAAG,CAAC,CAAgC,EAAE,EAAE;QAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,KAAK,EAAE;YACT,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;aAElC;SACF;aAAM;YACL,MAAM,CAAC,EAAE,CAAC,CAAC;YACX,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,OAAO,CAAC,EAAE,CAAC,CAAC;SACb;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,CAAgC,EAAE,EAAE;;QAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE3B,IAAI,GAAG,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAEnC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAG3B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,MAAM,GAAG,EAAE;gBAAE,OAAO;YAExB,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;gBACnB,MAAA,QAAQ,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;aAC3B;SACF;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,CAAgC,EAAE,EAAE;;QAC7D,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,GAAG,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAEnC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAG3B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,MAAM,GAAG,EAAE;gBAAE,OAAO;YAExB,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;gBACnB,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;aAC1B;SACF;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,CAAgC,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,GAAG,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAEnC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAE3B,OAAO,CAAC,GAAG,CAAC,CAAC;SACd;IACH,CAAC,CAAC;IAGF,IAAI,QAAQ,EAAE;QACZ,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC;YACxC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3F,CAAC,CAAC,IAAI,CAAC;QAET,OAAO,CACL,eAAK,SAAS,EAAC,qDAAqD,aAClE,iBAAO,SAAS,EAAC,qCAAqC,aACnD,CAAC,CAAC,WAAW,CAAC,IAAI,YAAY,SACzB,EACR,gBACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,qCAAqC,EAC/C,KAAK,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAChE,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,YAAY,EACxC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,gBAClB,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GACjD,IACE,CACP,CAAC;KACH;IAGD,OAAO,CACL,eAAK,SAAS,EAAC,sDAAsD,aACnE,eAAK,SAAS,EAAC,oCAAoC,aACjD,gBAAO,SAAS,EAAC,8BAA8B,YAC5C,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,GACZ,EACR,gBACE,GAAG,EAAE,MAAM,EACX,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,IAAI,EACxC,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,EAAE,EACP,QAAQ,EAAE,QAAQ,GAClB,IACE,EAEN,eAAK,SAAS,EAAC,oCAAoC,aACjD,gBAAO,SAAS,EAAC,8BAA8B,YAC5C,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,GAChB,EACR,gBACE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,IAAI,EAC1C,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,EAAE,EACP,QAAQ,EAAE,QAAQ,GAClB,IACE,EAEN,eAAK,SAAS,EAAC,6EAA6E,aAC1F,gBAAO,SAAS,EAAC,8BAA8B,YAC5C,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,GACd,EACR,gBACE,GAAG,EAAE,OAAO,EACZ,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,gBAAgB,EAC1B,WAAW,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,MAAM,EAC3C,GAAG,EAAE,OAAO,CAAC,IAAI,EACjB,GAAG,EAAE,OAAO,CAAC,IAAI,EACjB,QAAQ,EAAE,QAAQ,GAClB,IACE,IACF,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAE1C,eAAe,YAAY,CAAC"}
@@ -1,223 +1,302 @@
1
1
  /* Updated FilePreview Styles */
2
2
 
3
3
  .memori--preview-container {
4
- z-index: 10;
5
- min-width: 100%;
6
- padding: 12px;
7
- border-radius: 8px;
8
- margin-bottom: 12px;
9
- animation: slide-in 0.3s ease;
10
- background: white;
11
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
12
- transition: all 0.3s ease;
4
+ z-index: 10;
5
+ min-width: 100%;
6
+ /* padding: 12px; */
7
+ border-radius: 8px;
8
+ /* margin-bottom: 12px; */
9
+ animation: slide-in 0.3s ease;
10
+ background: white;
11
+ /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); */
12
+ transition: all 0.3s ease;
13
13
  }
14
14
 
15
15
  .memori--preview-container.slide-down {
16
- animation: slide-down 0.3s ease;
17
- }
18
-
19
- .memori--absolute-preview {
20
- position: absolute;
21
- z-index: 10;
22
- right: 0;
23
- bottom: 100%;
24
- left: 0;
25
- max-height: 200px;
26
- overflow-y: auto;
16
+ animation: slide-down 0.3s ease;
27
17
  }
28
18
 
29
19
  /* Responsive adjustments for file preview */
30
20
  @media (max-width: 768px) {
31
- .memori--absolute-preview {
32
- max-height: 150px;
33
- }
21
+ .memori--absolute-preview {
22
+ max-height: 150px;
23
+ }
34
24
 
35
- .memori--preview-container {
36
- padding: 8px;
37
- margin-bottom: 8px;
38
- }
25
+ .memori--preview-container {
26
+ padding: 8px;
27
+ margin-bottom: 8px;
28
+ }
39
29
 
40
- .memori--preview-filename {
41
- max-width: 150px;
42
- font-size: 12px;
43
- }
30
+ .memori--preview-filename {
31
+ max-width: 150px;
32
+ font-size: 12px;
33
+ }
34
+
35
+ /* Make remove button always visible on mobile */
36
+ .memori--remove-button {
37
+ opacity: 1 !important;
38
+ transform: scale(1) !important;
39
+ }
40
+
41
+ /* Increase card size for easier interaction */
42
+ .memori--preview-item {
43
+ min-width: 140px;
44
+ min-height: 60px;
45
+ padding: 12px;
46
+ }
47
+
48
+ .memori--preview-icon {
49
+ width: 24px;
50
+ height: 24px;
51
+ }
52
+
53
+ .memori--preview-thumbnail {
54
+ min-width: 50px;
55
+ min-height: 50px;
56
+ }
57
+
58
+ .memori--preview-thumbnail img {
59
+ width: 50px;
60
+ height: 50px;
61
+ object-fit: cover;
62
+ }
44
63
  }
45
64
 
46
65
  @media (max-width: 480px) {
47
- .memori--absolute-preview {
48
- max-height: 120px;
49
- }
66
+ .memori--absolute-preview {
67
+ max-height: 120px;
68
+ }
50
69
 
51
- .memori--preview-container {
52
- padding: 6px;
53
- margin-bottom: 6px;
54
- }
70
+ .memori--preview-container {
71
+ padding: 6px;
72
+ margin-bottom: 6px;
73
+ }
55
74
 
56
- .memori--preview-filename {
57
- max-width: 100px;
58
- font-size: 11px;
59
- }
75
+ .memori--preview-filename {
76
+ max-width: 100px;
77
+ font-size: 11px;
78
+ }
79
+
80
+ /* Make remove button always visible on mobile */
81
+ .memori--remove-button {
82
+ opacity: 1 !important;
83
+ transform: scale(1) !important;
84
+ }
85
+
86
+ /* Increase card size for easier interaction on small screens */
87
+ .memori--preview-item {
88
+ min-width: 160px;
89
+ min-height: 70px;
90
+ padding: 14px;
91
+ }
92
+
93
+ .memori--preview-icon {
94
+ width: 28px;
95
+ height: 28px;
96
+ }
97
+
98
+ .memori--preview-thumbnail {
99
+ min-width: 60px;
100
+ min-height: 60px;
101
+ }
102
+
103
+ .memori--preview-thumbnail img {
104
+ width: 60px;
105
+ height: 60px;
106
+ object-fit: cover;
107
+ }
60
108
  }
61
109
 
62
110
  .memori--message-preview {
63
- max-width: 100%;
64
- margin: 12px 0;
111
+ max-width: 100%;
112
+ margin: 12px 0;
65
113
  }
66
114
 
67
115
  .memori--preview-list {
68
- display: flex;
69
- flex-direction: row;
70
- gap: 8px;
71
- overflow-x: auto;
116
+ display: flex;
117
+ flex-direction: row;
118
+ padding: 0.875rem;
119
+ padding-bottom: 0.625rem;
120
+ gap: 8px;
121
+ overflow-x: auto;
122
+ scrollbar-color: hsla(var(--border-300) / 35%) transparent;
123
+ scrollbar-width: thin;
72
124
  }
73
125
 
74
126
  .memori--preview-item {
75
- position: relative;
76
- display: flex;
77
- max-width: fit-content;
78
- align-items: center;
79
- padding: 8px;
80
- border-radius: 8px;
81
- animation: slide-in 0.3s ease;
82
- background-color: #f8f9fa;
83
- cursor: pointer;
84
- gap: 8px;
85
- transition: all 0.2s ease;
127
+ position: relative;
128
+ display: flex;
129
+ max-width: fit-content;
130
+ align-items: center;
131
+ padding: 8px;
132
+ border-radius: 8px;
133
+ animation: slide-in 0.3s ease;
134
+ background-color: #f8f9fa;
135
+ cursor: pointer;
136
+ gap: 8px;
137
+ transition: all 0.2s ease;
86
138
  }
87
139
 
88
140
  .memori--preview-item:hover {
89
- background-color: #f1f3f5;
90
- transform: translateX(4px);
141
+ background-color: #f1f3f5;
142
+ transform: translateX(4px);
91
143
  }
92
144
 
93
145
  .memori--preview-icon {
94
- width: 20px;
95
- height: 20px;
96
- flex-shrink: 0;
97
- color: #fff;
98
- fill: var(--memori-primary);
146
+ width: 20px;
147
+ height: 20px;
148
+ flex-shrink: 0;
149
+ color: #fff;
150
+ fill: var(--memori-primary);
151
+ }
152
+
153
+ .memori--preview-thumbnail {
154
+ display: flex;
155
+ overflow: hidden;
156
+ flex-shrink: 0;
157
+ align-items: center;
158
+ justify-content: center;
159
+ border-radius: 4px;
160
+ }
161
+
162
+ .memori--preview-thumbnail img {
163
+ width: 40px;
164
+ height: 40px;
165
+ border-radius: 4px;
166
+ object-fit: cover;
99
167
  }
100
168
 
101
169
  .memori--preview-file-info {
102
- display: flex;
103
- overflow: hidden;
104
- flex-direction: column;
170
+ display: flex;
171
+ overflow: hidden;
172
+ flex-direction: column;
173
+ }
174
+
175
+ .memori-modal--title {
176
+ overflow: hidden;
177
+ max-width: 100%;
178
+ text-overflow: ellipsis;
179
+ white-space: nowrap;
105
180
  }
106
181
 
107
182
  .memori--preview-filename {
108
- overflow: hidden;
109
- max-width: 200px;
110
- color: #495057;
111
- font-size: 14px;
112
- font-weight: 500;
113
- text-overflow: ellipsis;
114
- white-space: nowrap;
183
+ overflow: hidden;
184
+ max-width: 100px;
185
+ color: #495057;
186
+ font-size: 14px;
187
+ font-weight: 500;
188
+ text-overflow: ellipsis;
189
+ white-space: nowrap;
115
190
  }
116
191
 
117
192
  .memori--preview-filetype {
118
- margin-top: 2px;
119
- color: #868e96;
120
- font-size: 12px;
193
+ margin-top: 2px;
194
+ color: #868e96;
195
+ font-size: 12px;
121
196
  }
122
197
 
123
198
  .memori--modal-title-preview {
124
- margin-top: 12px;
125
- margin-bottom: 12px;
126
- font-size: 20px;
127
- font-weight: 600;
199
+ margin-top: 12px;
200
+ margin-bottom: 12px;
201
+ font-size: 20px;
202
+ font-weight: 600;
128
203
  }
129
204
 
130
205
  .memori--remove-button {
131
- position: absolute;
132
- top: -4px;
133
- right: -4px;
134
- padding: 4px;
135
- border: none;
136
- border-radius: 50%;
137
- background-color: #e03131;
138
- color: white;
139
- cursor: pointer;
140
- opacity: 0;
141
- transform: scale(0.75);
142
- transition: all 0.2s ease;
206
+ position: absolute;
207
+ top: -4px;
208
+ right: -4px;
209
+ padding: 4px;
210
+ border: none;
211
+ border-radius: 50%;
212
+ background-color: #e03131;
213
+ color: white;
214
+ cursor: pointer;
215
+ opacity: 0;
216
+ transform: scale(0.75);
217
+ transition: all 0.2s ease;
143
218
  }
144
219
 
145
220
  .memori--remove-button.visible {
146
- opacity: 1;
147
- transform: scale(1);
221
+ opacity: 1;
222
+ transform: scale(1);
148
223
  }
149
224
 
150
225
  .memori--remove-button:hover {
151
- background-color: #c92a2a;
152
- transform: scale(1.1);
226
+ background-color: #c92a2a;
227
+ transform: scale(1.1);
153
228
  }
154
229
 
155
230
  .memori--remove-icon {
156
- width: 12px;
157
- height: 12px;
231
+ width: 12px;
232
+ height: 12px;
158
233
  }
159
234
 
160
235
  .memori--modal-preview-file {
161
- width: 100%;
162
- max-width: 800px;
163
- height: 100%;
164
- padding: 12px;
236
+ width: 100%;
237
+ max-width: 800px;
238
+ height: 100%;
239
+ padding: 12px;
165
240
  }
166
241
 
167
242
  .memori--preview-content {
168
- padding: 16px;
169
- border-radius: 8px;
170
- background-color: #f8f9fa;
171
- font-family: monospace;
172
- font-size: 14px;
173
- line-height: 1.5;
243
+ padding: 16px;
244
+ border-radius: 8px;
245
+ /* background-color: #f8f9fa; */
246
+ font-family: monospace;
247
+ font-size: 14px;
248
+ line-height: 1.5;
174
249
  }
175
250
 
176
251
  @keyframes fadeIn {
177
- from { opacity: 0; }
178
- to { opacity: 1; }
252
+ from {
253
+ opacity: 0;
254
+ }
255
+ to {
256
+ opacity: 1;
257
+ }
179
258
  }
180
259
 
181
260
  @keyframes scaleIn {
182
- from {
183
- opacity: 0;
184
- transform: scale(0.95);
185
- }
186
- to {
187
- opacity: 1;
188
- transform: scale(1);
189
- }
261
+ from {
262
+ opacity: 0;
263
+ transform: scale(0.95);
264
+ }
265
+ to {
266
+ opacity: 1;
267
+ transform: scale(1);
268
+ }
190
269
  }
191
270
 
192
271
  @keyframes slide-up {
193
- from {
194
- opacity: 0;
195
- transform: translateY(10px);
196
- }
197
- to {
198
- opacity: 1;
199
- transform: translateY(0);
200
- }
272
+ from {
273
+ opacity: 0;
274
+ transform: translateY(10px);
275
+ }
276
+ to {
277
+ opacity: 1;
278
+ transform: translateY(0);
279
+ }
201
280
  }
202
281
 
203
282
  @keyframes slide-in {
204
- from {
205
- opacity: 0;
206
- transform: translateY(-10px);
207
- }
208
- to {
209
- opacity: 1;
210
- transform: translateY(0);
211
- }
283
+ from {
284
+ opacity: 0;
285
+ transform: translateY(-10px);
286
+ }
287
+ to {
288
+ opacity: 1;
289
+ transform: translateY(0);
290
+ }
212
291
  }
213
292
 
214
293
  @keyframes slide-down {
215
- from {
216
- opacity: 1;
217
- transform: translateY(0);
218
- }
219
- to {
220
- opacity: 0;
221
- transform: translateY(10px);
222
- }
223
- }
294
+ from {
295
+ opacity: 1;
296
+ transform: translateY(0);
297
+ }
298
+ to {
299
+ opacity: 0;
300
+ transform: translateY(10px);
301
+ }
302
+ }