@memori.ai/memori-react 9.0.0-alpha.23 → 9.0.0-alpha.25
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.
- package/CHANGELOG.md +300 -1100
- package/dist/components/AgeVerificationModal/AgeVerificationModal.js +1 -3
- package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
- package/dist/components/Auth/Auth.js +1 -3
- package/dist/components/Auth/Auth.js.map +1 -1
- package/dist/components/Chat/Chat.css +10 -1
- package/dist/components/Chat/Chat.js +1 -3
- package/dist/components/Chat/Chat.js.map +1 -1
- package/dist/components/ChatBubble/ChatBubble.css +103 -5
- package/dist/components/ChatBubble/ChatBubble.js +48 -8
- package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
- package/dist/components/ChatHistoryDrawer/ChatHistory.js +1 -3
- package/dist/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
- package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +33 -10
- package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +2 -4
- package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
- package/dist/components/ChatInputs/ChatInputs.css +17 -52
- package/dist/components/ChatInputs/ChatInputs.js +1 -3
- package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
- package/dist/components/ContentPreviewModal/ContentPreviewModal.css +3 -3
- package/dist/components/ContentPreviewModal/ContentPreviewModal.js +1 -3
- package/dist/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
- package/dist/components/DateSelector/DateSelector.css +66 -3
- package/dist/components/DateSelector/DateSelector.js +5 -1
- package/dist/components/DateSelector/DateSelector.js.map +1 -1
- package/dist/components/ExpertsDrawer/ExpertsDrawer.js +1 -3
- package/dist/components/ExpertsDrawer/ExpertsDrawer.js.map +1 -1
- package/dist/components/FilePreview/FilePreview.css +94 -220
- package/dist/components/FilePreview/FilePreview.js +25 -71
- package/dist/components/FilePreview/FilePreview.js.map +1 -1
- package/dist/components/IconButton/IconButton.css +2 -11
- package/dist/components/KnownFacts/KnownFacts.css +3 -4
- package/dist/components/KnownFacts/KnownFacts.js +3 -5
- package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
- package/dist/components/LoginDrawer/LoginDrawer.css +3 -7
- package/dist/components/LoginDrawer/LoginDrawer.js +51 -9
- package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
- package/dist/components/MediaWidget/MediaItemWidget.css +77 -57
- package/dist/components/MediaWidget/MediaItemWidget.js +4 -4
- package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -5
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/dist/components/MemoriWidget/MemoriWidget.css +0 -55
- package/dist/components/MemoriWidget/MemoriWidget.js +115 -117
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/MobileSessionPanel/MobileSessionPanel.css +20 -0
- package/dist/components/MobileSessionPanel/MobileSessionPanel.js +77 -117
- package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
- package/dist/components/PositionPopover/PositionPopover.css +1 -1
- package/dist/components/SettingsDrawer/SettingsDrawer.js +1 -3
- package/dist/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
- package/dist/components/StartPanel/StartPanel.css +12 -1
- package/dist/components/StartPanel/StartPanel.js +30 -7
- package/dist/components/StartPanel/StartPanel.js.map +1 -1
- package/dist/components/UploadButton/UploadButton.css +7 -7
- package/dist/components/UploadButton/UploadButton.js +3 -0
- package/dist/components/UploadButton/UploadButton.js.map +1 -1
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +15 -5
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
- package/dist/components/UploadButton/UploadImages/UploadImages.js +1 -3
- package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
- package/dist/components/WhyThisAnswer/WhyThisAnswer.js +1 -3
- package/dist/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
- package/dist/components/layouts/HiddenChat.js +9 -1
- package/dist/components/layouts/HiddenChat.js.map +1 -1
- package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +84 -5
- package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
- package/dist/components/layouts/WebsiteAssistant/website-assistant.css +36 -12
- package/dist/components/layouts/fullpage.css +1 -0
- package/dist/components/layouts/hidden-chat.css +29 -5
- package/dist/helpers/constants.d.ts +3 -2
- package/dist/helpers/constants.js +19 -20
- package/dist/helpers/constants.js.map +1 -1
- package/dist/helpers/error.js +2 -1
- package/dist/helpers/error.js.map +1 -1
- package/dist/helpers/positionPopover.d.ts +1 -0
- package/dist/helpers/positionPopover.js +7 -0
- package/dist/helpers/positionPopover.js.map +1 -1
- package/dist/helpers/usePressTooltip.d.ts +6 -1
- package/dist/helpers/usePressTooltip.js +16 -1
- package/dist/helpers/usePressTooltip.js.map +1 -1
- package/dist/helpers/utils.d.ts +2 -1
- package/dist/helpers/utils.js +7 -1
- package/dist/helpers/utils.js.map +1 -1
- package/dist/locales/de.json +8 -2
- package/dist/locales/en.json +6 -3
- package/dist/locales/es.json +6 -3
- package/dist/locales/fr.json +6 -3
- package/dist/locales/it.json +6 -3
- package/dist/styles.css +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/esm/components/AgeVerificationModal/AgeVerificationModal.js +1 -3
- package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
- package/esm/components/Auth/Auth.js +1 -3
- package/esm/components/Auth/Auth.js.map +1 -1
- package/esm/components/Chat/Chat.css +10 -1
- package/esm/components/Chat/Chat.js +1 -3
- package/esm/components/Chat/Chat.js.map +1 -1
- package/esm/components/ChatBubble/ChatBubble.css +103 -5
- package/esm/components/ChatBubble/ChatBubble.js +48 -8
- package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
- package/esm/components/ChatHistoryDrawer/ChatHistory.js +1 -3
- package/esm/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
- package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +33 -10
- package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +2 -4
- package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
- package/esm/components/ChatInputs/ChatInputs.css +17 -52
- package/esm/components/ChatInputs/ChatInputs.js +1 -3
- package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
- package/esm/components/ContentPreviewModal/ContentPreviewModal.css +3 -3
- package/esm/components/ContentPreviewModal/ContentPreviewModal.js +1 -3
- package/esm/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
- package/esm/components/DateSelector/DateSelector.css +66 -3
- package/esm/components/DateSelector/DateSelector.js +5 -1
- package/esm/components/DateSelector/DateSelector.js.map +1 -1
- package/esm/components/ExpertsDrawer/ExpertsDrawer.js +1 -3
- package/esm/components/ExpertsDrawer/ExpertsDrawer.js.map +1 -1
- package/esm/components/FilePreview/FilePreview.css +94 -220
- package/esm/components/FilePreview/FilePreview.js +25 -71
- package/esm/components/FilePreview/FilePreview.js.map +1 -1
- package/esm/components/IconButton/IconButton.css +2 -11
- package/esm/components/KnownFacts/KnownFacts.css +3 -4
- package/esm/components/KnownFacts/KnownFacts.js +3 -5
- package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
- package/esm/components/LoginDrawer/LoginDrawer.css +3 -7
- package/esm/components/LoginDrawer/LoginDrawer.js +51 -9
- package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
- package/esm/components/MediaWidget/MediaItemWidget.css +77 -57
- package/esm/components/MediaWidget/MediaItemWidget.js +5 -5
- package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -5
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.css +0 -55
- package/esm/components/MemoriWidget/MemoriWidget.js +115 -117
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/MobileSessionPanel/MobileSessionPanel.css +20 -0
- package/esm/components/MobileSessionPanel/MobileSessionPanel.js +78 -118
- package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
- package/esm/components/PositionPopover/PositionPopover.css +1 -1
- package/esm/components/SettingsDrawer/SettingsDrawer.js +1 -3
- package/esm/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
- package/esm/components/StartPanel/StartPanel.css +12 -1
- package/esm/components/StartPanel/StartPanel.js +30 -7
- package/esm/components/StartPanel/StartPanel.js.map +1 -1
- package/esm/components/UploadButton/UploadButton.css +7 -7
- package/esm/components/UploadButton/UploadButton.js +4 -1
- package/esm/components/UploadButton/UploadButton.js.map +1 -1
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +17 -7
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
- package/esm/components/UploadButton/UploadImages/UploadImages.js +1 -3
- package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
- package/esm/components/WhyThisAnswer/WhyThisAnswer.js +1 -3
- package/esm/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
- package/esm/components/layouts/HiddenChat.js +9 -1
- package/esm/components/layouts/HiddenChat.js.map +1 -1
- package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +85 -6
- package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
- package/esm/components/layouts/WebsiteAssistant/website-assistant.css +36 -12
- package/esm/components/layouts/fullpage.css +1 -0
- package/esm/components/layouts/hidden-chat.css +29 -5
- package/esm/helpers/constants.d.ts +3 -2
- package/esm/helpers/constants.js +18 -19
- package/esm/helpers/constants.js.map +1 -1
- package/esm/helpers/error.js +2 -1
- package/esm/helpers/error.js.map +1 -1
- package/esm/helpers/positionPopover.d.ts +1 -0
- package/esm/helpers/positionPopover.js +6 -0
- package/esm/helpers/positionPopover.js.map +1 -1
- package/esm/helpers/usePressTooltip.d.ts +6 -1
- package/esm/helpers/usePressTooltip.js +17 -2
- package/esm/helpers/usePressTooltip.js.map +1 -1
- package/esm/helpers/utils.d.ts +2 -1
- package/esm/helpers/utils.js +6 -1
- package/esm/helpers/utils.js.map +1 -1
- package/esm/locales/de.json +8 -2
- package/esm/locales/en.json +6 -3
- package/esm/locales/es.json +6 -3
- package/esm/locales/fr.json +6 -3
- package/esm/locales/it.json +6 -3
- package/esm/styles.css +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/package.json +4 -46
- package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +0 -3
- package/src/components/Auth/Auth.tsx +0 -3
- package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +1 -0
- package/src/components/BlockedMemoriBadge/__snapshots__/BlockedMemoriBadge.test.tsx.snap +5 -0
- package/src/components/Chat/Chat.css +10 -1
- package/src/components/Chat/Chat.tsx +0 -3
- package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +1735 -1765
- package/src/components/ChatBubble/ChatBubble.css +103 -5
- package/src/components/ChatBubble/ChatBubble.test.tsx +33 -0
- package/src/components/ChatBubble/ChatBubble.tsx +524 -273
- package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +655 -684
- package/src/components/ChatHistoryDrawer/ChatHistory.tsx +0 -3
- package/src/components/ChatHistoryDrawer/ChatResumeDrawer.css +33 -10
- package/src/components/ChatHistoryDrawer/ChatResumeDrawer.tsx +3 -6
- package/src/components/ChatInputs/ChatInputs.css +17 -52
- package/src/components/ChatInputs/ChatInputs.tsx +2 -4
- package/src/components/CompletionProviderStatus/__snapshots__/CompletionProviderStatus.test.tsx.snap +3 -0
- package/src/components/ContentPreviewModal/ContentPreviewModal.css +3 -3
- package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +0 -3
- package/src/components/DateSelector/DateSelector.css +66 -3
- package/src/components/DateSelector/DateSelector.test.tsx +33 -4
- package/src/components/DateSelector/DateSelector.tsx +37 -11
- package/src/components/ExpertsDrawer/ExpertsDrawer.tsx +0 -3
- package/src/components/FeedbackButtons/__snapshots__/FeedbackButtons.test.tsx.snap +2 -1
- package/src/components/FilePreview/FilePreview.css +94 -220
- package/src/components/FilePreview/FilePreview.tsx +77 -124
- package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +33 -81
- package/src/components/Header/ChatConsumptionDropdown.test.tsx +53 -86
- package/src/components/Header/__snapshots__/Header.test.tsx.snap +60 -44
- package/src/components/IconButton/IconButton.css +2 -11
- package/src/components/KnownFacts/KnownFacts.css +3 -4
- package/src/components/KnownFacts/KnownFacts.tsx +0 -5
- package/src/components/KnownFacts/__snapshots__/KnownFacts.test.tsx.snap +2 -6
- package/src/components/LoginDrawer/LoginDrawer.css +3 -7
- package/src/components/LoginDrawer/LoginDrawer.tsx +101 -54
- package/src/components/LoginDrawer/__snapshots__/LoginDrawer.test.tsx.snap +11 -33
- package/src/components/MediaWidget/MediaItemWidget.css +77 -57
- package/src/components/MediaWidget/MediaItemWidget.test.tsx +33 -0
- package/src/components/MediaWidget/MediaItemWidget.tsx +6 -12
- package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +2 -0
- package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +1 -1
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -1
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +0 -5
- package/src/components/MemoriWidget/MemoriUIProvider.contract.test.tsx +25 -7
- package/src/components/MemoriWidget/MemoriWidget.css +0 -55
- package/src/components/MemoriWidget/MemoriWidget.tsx +18 -12
- package/src/components/MobileSessionPanel/MobileSessionPanel.css +20 -0
- package/src/components/MobileSessionPanel/MobileSessionPanel.tsx +29 -68
- package/src/components/PositionPopover/PositionPopover.css +1 -1
- package/src/components/SettingsDrawer/SettingsDrawer.tsx +0 -3
- package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +9 -9
- package/src/components/Snippet/__snapshots__/Snippet.test.tsx.snap +8 -0
- package/src/components/StartPanel/StartPanel.css +12 -1
- package/src/components/StartPanel/StartPanel.test.tsx +57 -0
- package/src/components/StartPanel/StartPanel.tsx +41 -4
- package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +41 -6
- package/src/components/UploadButton/UploadButton.css +7 -7
- package/src/components/UploadButton/UploadButton.tsx +4 -0
- package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +21 -8
- package/src/components/UploadButton/UploadImages/UploadImages.tsx +0 -3
- package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +10 -12
- package/src/components/WhyThisAnswer/WhyThisAnswer.tsx +0 -3
- package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +3 -9
- package/src/components/layouts/HiddenChat.tsx +9 -1
- package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.tsx +103 -6
- package/src/components/layouts/WebsiteAssistant/__snapshots__/WebsiteAssistant.test.tsx.snap +63 -57
- package/src/components/layouts/WebsiteAssistant/website-assistant.css +36 -12
- package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +7 -4
- package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +12 -8
- package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +7 -4
- package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +10 -5
- package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +6 -4
- package/src/components/layouts/fullpage.css +1 -0
- package/src/components/layouts/hidden-chat.css +29 -5
- package/src/components/layouts/layouts.stories.tsx +2 -2
- package/src/helpers/constants.ts +21 -20
- package/src/helpers/error.ts +2 -1
- package/src/helpers/positionPopover.test.ts +15 -0
- package/src/helpers/positionPopover.ts +16 -0
- package/src/helpers/usePressTooltip.test.ts +30 -0
- package/src/helpers/usePressTooltip.ts +31 -1
- package/src/helpers/utils.test.ts +14 -4
- package/src/helpers/utils.ts +6 -1
- package/src/index.tsx +1 -1
- package/src/locales/de.json +8 -2
- package/src/locales/en.json +6 -3
- package/src/locales/es.json +6 -3
- package/src/locales/fr.json +6 -3
- package/src/locales/it.json +6 -3
- package/src/styles.brandTokens.test.js +52 -0
- package/src/styles.css +27 -2
- package/src/version.ts +1 -1
- package/dist/context/widgetSurfaceContext.d.ts +0 -3
- package/dist/context/widgetSurfaceContext.js +0 -11
- package/dist/context/widgetSurfaceContext.js.map +0 -1
- package/esm/context/widgetSurfaceContext.d.ts +0 -3
- package/esm/context/widgetSurfaceContext.js +0 -7
- package/esm/context/widgetSurfaceContext.js.map +0 -1
- package/src/context/widgetSurfaceContext.tsx +0 -14
|
@@ -369,3 +369,60 @@ it('blocks start and shows credits badge when owner has not enough credits', ()
|
|
|
369
369
|
expect(badge).toBeInTheDocument();
|
|
370
370
|
expect(getByText('memoriBlockedTitle')).toBeInTheDocument();
|
|
371
371
|
});
|
|
372
|
+
|
|
373
|
+
it('requests geolocation from the use-my-position click and sets venue', () => {
|
|
374
|
+
const setVenue = jest.fn();
|
|
375
|
+
const openPositionPopover = jest.fn();
|
|
376
|
+
const getCurrentPosition = jest.fn(
|
|
377
|
+
(
|
|
378
|
+
success: (position: {
|
|
379
|
+
coords: { latitude: number; longitude: number; accuracy: number };
|
|
380
|
+
}) => void
|
|
381
|
+
) => {
|
|
382
|
+
success({
|
|
383
|
+
coords: {
|
|
384
|
+
latitude: 45.4642,
|
|
385
|
+
longitude: 9.19,
|
|
386
|
+
accuracy: 25,
|
|
387
|
+
},
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
);
|
|
391
|
+
|
|
392
|
+
Object.defineProperty(navigator, 'geolocation', {
|
|
393
|
+
configurable: true,
|
|
394
|
+
value: { getCurrentPosition },
|
|
395
|
+
});
|
|
396
|
+
|
|
397
|
+
const { getByRole } = render(
|
|
398
|
+
<StartPanel
|
|
399
|
+
memori={{
|
|
400
|
+
...memori,
|
|
401
|
+
needsPosition: true,
|
|
402
|
+
}}
|
|
403
|
+
tenant={tenant}
|
|
404
|
+
language="it"
|
|
405
|
+
userLang="en"
|
|
406
|
+
setUserLang={() => {}}
|
|
407
|
+
setVenue={setVenue}
|
|
408
|
+
openPositionPopover={openPositionPopover}
|
|
409
|
+
instruct={false}
|
|
410
|
+
sessionId={sessionID}
|
|
411
|
+
clickedStart={false}
|
|
412
|
+
onClickStart={() => {}}
|
|
413
|
+
setShowLoginDrawer={jest.fn()}
|
|
414
|
+
/>
|
|
415
|
+
);
|
|
416
|
+
|
|
417
|
+
fireEvent.click(
|
|
418
|
+
getByRole('button', { name: /write_and_speak\.useMyPosition/i })
|
|
419
|
+
);
|
|
420
|
+
|
|
421
|
+
expect(getCurrentPosition).toHaveBeenCalled();
|
|
422
|
+
expect(setVenue).toHaveBeenCalledWith({
|
|
423
|
+
latitude: 45.4642,
|
|
424
|
+
longitude: 9.19,
|
|
425
|
+
placeName: '',
|
|
426
|
+
uncertainty: 0.025,
|
|
427
|
+
});
|
|
428
|
+
});
|
|
@@ -28,7 +28,6 @@ import CompletionProviderStatus, {
|
|
|
28
28
|
} from '../CompletionProviderStatus/CompletionProviderStatus';
|
|
29
29
|
import { Expandable } from '@memori.ai/ui';
|
|
30
30
|
import { usePressTooltip } from '../../helpers/usePressTooltip';
|
|
31
|
-
import { useWidgetSurfaceEl } from '../../context/widgetSurfaceContext';
|
|
32
31
|
|
|
33
32
|
interface Memori extends MemoriOriginal {
|
|
34
33
|
requireLoginToken?: boolean;
|
|
@@ -89,7 +88,6 @@ const StartPanel: React.FC<Props> = ({
|
|
|
89
88
|
showFullDescriptionOnMobile = false,
|
|
90
89
|
}) => {
|
|
91
90
|
const { t, i18n } = useTranslation();
|
|
92
|
-
const surfaceEl = useWidgetSurfaceEl();
|
|
93
91
|
const boardOfExpertsTooltip = usePressTooltip();
|
|
94
92
|
const nsfwTooltip = usePressTooltip();
|
|
95
93
|
const deepThoughtTooltip = usePressTooltip();
|
|
@@ -211,8 +209,12 @@ const StartPanel: React.FC<Props> = ({
|
|
|
211
209
|
align="left"
|
|
212
210
|
content={t('boardOfExperts')}
|
|
213
211
|
{...boardOfExpertsTooltip.tooltipProps}
|
|
212
|
+
slotProps={{
|
|
213
|
+
positioner: boardOfExpertsTooltip.positionerProps,
|
|
214
|
+
}}
|
|
214
215
|
>
|
|
215
216
|
<Button
|
|
217
|
+
ref={boardOfExpertsTooltip.anchorRef}
|
|
216
218
|
type="button"
|
|
217
219
|
variant="ghost"
|
|
218
220
|
shape="circle"
|
|
@@ -229,8 +231,12 @@ const StartPanel: React.FC<Props> = ({
|
|
|
229
231
|
align="left"
|
|
230
232
|
content={t('nsfw')}
|
|
231
233
|
{...nsfwTooltip.tooltipProps}
|
|
234
|
+
slotProps={{
|
|
235
|
+
positioner: nsfwTooltip.positionerProps,
|
|
236
|
+
}}
|
|
232
237
|
>
|
|
233
238
|
<span
|
|
239
|
+
ref={nsfwTooltip.anchorRef}
|
|
234
240
|
title={t('nsfw') || 'NSFW'}
|
|
235
241
|
{...nsfwTooltip.pressTriggerProps}
|
|
236
242
|
>
|
|
@@ -350,7 +356,35 @@ const StartPanel: React.FC<Props> = ({
|
|
|
350
356
|
<div className="memori--needsPosition-actions">
|
|
351
357
|
<Button
|
|
352
358
|
variant="primary"
|
|
353
|
-
onClick={() =>
|
|
359
|
+
onClick={() => {
|
|
360
|
+
// Must call getCurrentPosition from this click: mobile layouts
|
|
361
|
+
// strip needsPosition from Header (popover unmounted), and iOS
|
|
362
|
+
// requires a user gesture for the permission prompt.
|
|
363
|
+
if (!navigator.geolocation) {
|
|
364
|
+
openPositionPopover();
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
navigator.geolocation.getCurrentPosition(
|
|
368
|
+
pos => {
|
|
369
|
+
setVenue({
|
|
370
|
+
latitude: pos.coords.latitude,
|
|
371
|
+
longitude: pos.coords.longitude,
|
|
372
|
+
placeName: '',
|
|
373
|
+
uncertainty: pos.coords.accuracy / 1000,
|
|
374
|
+
});
|
|
375
|
+
},
|
|
376
|
+
() => {
|
|
377
|
+
// Permission denied / timeout → manual entry via popover
|
|
378
|
+
// (desktop). On mobile the skip button remains available.
|
|
379
|
+
openPositionPopover();
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
enableHighAccuracy: true,
|
|
383
|
+
timeout: 15000,
|
|
384
|
+
maximumAge: 0,
|
|
385
|
+
}
|
|
386
|
+
);
|
|
387
|
+
}}
|
|
354
388
|
icon={<MapPin />}
|
|
355
389
|
style={{ width: '100%' }}
|
|
356
390
|
size="md"
|
|
@@ -483,6 +517,7 @@ const StartPanel: React.FC<Props> = ({
|
|
|
483
517
|
{...deepThoughtTooltip.tooltipProps}
|
|
484
518
|
slotProps={{
|
|
485
519
|
positioner: {
|
|
520
|
+
...deepThoughtTooltip.positionerProps,
|
|
486
521
|
className:
|
|
487
522
|
'memori--privacy-popover-positioner',
|
|
488
523
|
},
|
|
@@ -493,6 +528,7 @@ const StartPanel: React.FC<Props> = ({
|
|
|
493
528
|
}}
|
|
494
529
|
>
|
|
495
530
|
<Button
|
|
531
|
+
ref={deepThoughtTooltip.anchorRef}
|
|
496
532
|
variant="toolbar"
|
|
497
533
|
size="sm"
|
|
498
534
|
className="memori--privacy-popover-trigger memori--settings-section__info-trigger"
|
|
@@ -589,6 +625,7 @@ const StartPanel: React.FC<Props> = ({
|
|
|
589
625
|
{...privacyTooltip.tooltipProps}
|
|
590
626
|
slotProps={{
|
|
591
627
|
positioner: {
|
|
628
|
+
...privacyTooltip.positionerProps,
|
|
592
629
|
className: 'memori--privacy-popover-positioner',
|
|
593
630
|
},
|
|
594
631
|
popup: {
|
|
@@ -598,6 +635,7 @@ const StartPanel: React.FC<Props> = ({
|
|
|
598
635
|
}}
|
|
599
636
|
>
|
|
600
637
|
<Button
|
|
638
|
+
ref={privacyTooltip.anchorRef}
|
|
601
639
|
variant="toolbar"
|
|
602
640
|
size="sm"
|
|
603
641
|
className="memori--privacy-popover-trigger memori--settings-section__info-trigger"
|
|
@@ -674,7 +712,6 @@ const StartPanel: React.FC<Props> = ({
|
|
|
674
712
|
)}
|
|
675
713
|
</div>
|
|
676
714
|
<Modal
|
|
677
|
-
container={surfaceEl ?? undefined}
|
|
678
715
|
open={isMobile && mobileInfoModal !== null}
|
|
679
716
|
onClose={() => setMobileInfoModal(null)}
|
|
680
717
|
title={
|
|
@@ -43,16 +43,16 @@ exports[`renders StartPanel for board of experts unchanged 1`] = `
|
|
|
43
43
|
<path
|
|
44
44
|
d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"
|
|
45
45
|
/>
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
cy="7"
|
|
49
|
-
r="4"
|
|
46
|
+
<path
|
|
47
|
+
d="M16 3.128a4 4 0 0 1 0 7.744"
|
|
50
48
|
/>
|
|
51
49
|
<path
|
|
52
50
|
d="M22 21v-2a4 4 0 0 0-3-3.87"
|
|
53
51
|
/>
|
|
54
|
-
<
|
|
55
|
-
|
|
52
|
+
<circle
|
|
53
|
+
cx="9"
|
|
54
|
+
cy="7"
|
|
55
|
+
r="4"
|
|
56
56
|
/>
|
|
57
57
|
</svg>
|
|
58
58
|
</span>
|
|
@@ -158,6 +158,7 @@ exports[`renders StartPanel for board of experts unchanged 1`] = `
|
|
|
158
158
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
159
159
|
>
|
|
160
160
|
<svg
|
|
161
|
+
aria-hidden="true"
|
|
161
162
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
162
163
|
fill="none"
|
|
163
164
|
height="24"
|
|
@@ -214,6 +215,7 @@ exports[`renders StartPanel for board of experts unchanged 1`] = `
|
|
|
214
215
|
class="memori-button__content"
|
|
215
216
|
>
|
|
216
217
|
<svg
|
|
218
|
+
aria-hidden="true"
|
|
217
219
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
218
220
|
fill="none"
|
|
219
221
|
height="24"
|
|
@@ -372,6 +374,7 @@ exports[`renders StartPanel on instruct unchanged 1`] = `
|
|
|
372
374
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
373
375
|
>
|
|
374
376
|
<svg
|
|
377
|
+
aria-hidden="true"
|
|
375
378
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
376
379
|
fill="none"
|
|
377
380
|
height="24"
|
|
@@ -428,6 +431,7 @@ exports[`renders StartPanel on instruct unchanged 1`] = `
|
|
|
428
431
|
class="memori-button__content"
|
|
429
432
|
>
|
|
430
433
|
<svg
|
|
434
|
+
aria-hidden="true"
|
|
431
435
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
432
436
|
fill="none"
|
|
433
437
|
height="24"
|
|
@@ -586,6 +590,7 @@ exports[`renders StartPanel unchanged 1`] = `
|
|
|
586
590
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
587
591
|
>
|
|
588
592
|
<svg
|
|
593
|
+
aria-hidden="true"
|
|
589
594
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
590
595
|
fill="none"
|
|
591
596
|
height="24"
|
|
@@ -642,6 +647,7 @@ exports[`renders StartPanel unchanged 1`] = `
|
|
|
642
647
|
class="memori-button__content"
|
|
643
648
|
>
|
|
644
649
|
<svg
|
|
650
|
+
aria-hidden="true"
|
|
645
651
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
646
652
|
fill="none"
|
|
647
653
|
height="24"
|
|
@@ -751,6 +757,7 @@ exports[`renders StartPanel with completion provider down unchanged 1`] = `
|
|
|
751
757
|
id="base-ui-:r1n:"
|
|
752
758
|
>
|
|
753
759
|
<svg
|
|
760
|
+
aria-hidden="true"
|
|
754
761
|
class="lucide lucide-triangle-alert memori--completion-provider-status--icon memori--completion-provider-status--icon-error"
|
|
755
762
|
fill="none"
|
|
756
763
|
height="24"
|
|
@@ -795,6 +802,7 @@ exports[`renders StartPanel with completion provider down unchanged 1`] = `
|
|
|
795
802
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
796
803
|
>
|
|
797
804
|
<svg
|
|
805
|
+
aria-hidden="true"
|
|
798
806
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
799
807
|
fill="none"
|
|
800
808
|
height="24"
|
|
@@ -851,6 +859,7 @@ exports[`renders StartPanel with completion provider down unchanged 1`] = `
|
|
|
851
859
|
class="memori-button__content"
|
|
852
860
|
>
|
|
853
861
|
<svg
|
|
862
|
+
aria-hidden="true"
|
|
854
863
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
855
864
|
fill="none"
|
|
856
865
|
height="24"
|
|
@@ -1009,6 +1018,7 @@ exports[`renders StartPanel with completions enabled unchanged 1`] = `
|
|
|
1009
1018
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
1010
1019
|
>
|
|
1011
1020
|
<svg
|
|
1021
|
+
aria-hidden="true"
|
|
1012
1022
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
1013
1023
|
fill="none"
|
|
1014
1024
|
height="24"
|
|
@@ -1065,6 +1075,7 @@ exports[`renders StartPanel with completions enabled unchanged 1`] = `
|
|
|
1065
1075
|
class="memori-button__content"
|
|
1066
1076
|
>
|
|
1067
1077
|
<svg
|
|
1078
|
+
aria-hidden="true"
|
|
1068
1079
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
1069
1080
|
fill="none"
|
|
1070
1081
|
height="24"
|
|
@@ -1223,6 +1234,7 @@ exports[`renders StartPanel with deep thought but unlogged unchanged 1`] = `
|
|
|
1223
1234
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--info"
|
|
1224
1235
|
>
|
|
1225
1236
|
<svg
|
|
1237
|
+
aria-hidden="true"
|
|
1226
1238
|
class="lucide lucide-info memori--settings-section__icon"
|
|
1227
1239
|
fill="none"
|
|
1228
1240
|
height="24"
|
|
@@ -1296,6 +1308,7 @@ exports[`renders StartPanel with deep thought but unlogged unchanged 1`] = `
|
|
|
1296
1308
|
class="memori-button__content"
|
|
1297
1309
|
>
|
|
1298
1310
|
<svg
|
|
1311
|
+
aria-hidden="true"
|
|
1299
1312
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
1300
1313
|
fill="none"
|
|
1301
1314
|
height="24"
|
|
@@ -1333,6 +1346,7 @@ exports[`renders StartPanel with deep thought but unlogged unchanged 1`] = `
|
|
|
1333
1346
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
1334
1347
|
>
|
|
1335
1348
|
<svg
|
|
1349
|
+
aria-hidden="true"
|
|
1336
1350
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
1337
1351
|
fill="none"
|
|
1338
1352
|
height="24"
|
|
@@ -1389,6 +1403,7 @@ exports[`renders StartPanel with deep thought but unlogged unchanged 1`] = `
|
|
|
1389
1403
|
class="memori-button__content"
|
|
1390
1404
|
>
|
|
1391
1405
|
<svg
|
|
1406
|
+
aria-hidden="true"
|
|
1392
1407
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
1393
1408
|
fill="none"
|
|
1394
1409
|
height="24"
|
|
@@ -1547,6 +1562,7 @@ exports[`renders StartPanel with deep thought enabled but without permission fla
|
|
|
1547
1562
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--info"
|
|
1548
1563
|
>
|
|
1549
1564
|
<svg
|
|
1565
|
+
aria-hidden="true"
|
|
1550
1566
|
class="lucide lucide-info memori--settings-section__icon"
|
|
1551
1567
|
fill="none"
|
|
1552
1568
|
height="24"
|
|
@@ -1607,6 +1623,7 @@ exports[`renders StartPanel with deep thought enabled but without permission fla
|
|
|
1607
1623
|
class="memori-button__content"
|
|
1608
1624
|
>
|
|
1609
1625
|
<svg
|
|
1626
|
+
aria-hidden="true"
|
|
1610
1627
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
1611
1628
|
fill="none"
|
|
1612
1629
|
height="24"
|
|
@@ -1644,6 +1661,7 @@ exports[`renders StartPanel with deep thought enabled but without permission fla
|
|
|
1644
1661
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
1645
1662
|
>
|
|
1646
1663
|
<svg
|
|
1664
|
+
aria-hidden="true"
|
|
1647
1665
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
1648
1666
|
fill="none"
|
|
1649
1667
|
height="24"
|
|
@@ -1700,6 +1718,7 @@ exports[`renders StartPanel with deep thought enabled but without permission fla
|
|
|
1700
1718
|
class="memori-button__content"
|
|
1701
1719
|
>
|
|
1702
1720
|
<svg
|
|
1721
|
+
aria-hidden="true"
|
|
1703
1722
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
1704
1723
|
fill="none"
|
|
1705
1724
|
height="24"
|
|
@@ -1858,6 +1877,7 @@ exports[`renders StartPanel with deep thought enabled unchanged 1`] = `
|
|
|
1858
1877
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--info"
|
|
1859
1878
|
>
|
|
1860
1879
|
<svg
|
|
1880
|
+
aria-hidden="true"
|
|
1861
1881
|
class="lucide lucide-info memori--settings-section__icon"
|
|
1862
1882
|
fill="none"
|
|
1863
1883
|
height="24"
|
|
@@ -1918,6 +1938,7 @@ exports[`renders StartPanel with deep thought enabled unchanged 1`] = `
|
|
|
1918
1938
|
class="memori-button__content"
|
|
1919
1939
|
>
|
|
1920
1940
|
<svg
|
|
1941
|
+
aria-hidden="true"
|
|
1921
1942
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
1922
1943
|
fill="none"
|
|
1923
1944
|
height="24"
|
|
@@ -1955,6 +1976,7 @@ exports[`renders StartPanel with deep thought enabled unchanged 1`] = `
|
|
|
1955
1976
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
1956
1977
|
>
|
|
1957
1978
|
<svg
|
|
1979
|
+
aria-hidden="true"
|
|
1958
1980
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
1959
1981
|
fill="none"
|
|
1960
1982
|
height="24"
|
|
@@ -2011,6 +2033,7 @@ exports[`renders StartPanel with deep thought enabled unchanged 1`] = `
|
|
|
2011
2033
|
class="memori-button__content"
|
|
2012
2034
|
>
|
|
2013
2035
|
<svg
|
|
2036
|
+
aria-hidden="true"
|
|
2014
2037
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
2015
2038
|
fill="none"
|
|
2016
2039
|
height="24"
|
|
@@ -2169,6 +2192,7 @@ exports[`renders StartPanel with existing sessionunchanged 1`] = `
|
|
|
2169
2192
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
2170
2193
|
>
|
|
2171
2194
|
<svg
|
|
2195
|
+
aria-hidden="true"
|
|
2172
2196
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
2173
2197
|
fill="none"
|
|
2174
2198
|
height="24"
|
|
@@ -2225,6 +2249,7 @@ exports[`renders StartPanel with existing sessionunchanged 1`] = `
|
|
|
2225
2249
|
class="memori-button__content"
|
|
2226
2250
|
>
|
|
2227
2251
|
<svg
|
|
2252
|
+
aria-hidden="true"
|
|
2228
2253
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
2229
2254
|
fill="none"
|
|
2230
2255
|
height="24"
|
|
@@ -2383,6 +2408,7 @@ exports[`renders StartPanel with integrationConfig unchanged 1`] = `
|
|
|
2383
2408
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
2384
2409
|
>
|
|
2385
2410
|
<svg
|
|
2411
|
+
aria-hidden="true"
|
|
2386
2412
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
2387
2413
|
fill="none"
|
|
2388
2414
|
height="24"
|
|
@@ -2439,6 +2465,7 @@ exports[`renders StartPanel with integrationConfig unchanged 1`] = `
|
|
|
2439
2465
|
class="memori-button__content"
|
|
2440
2466
|
>
|
|
2441
2467
|
<svg
|
|
2468
|
+
aria-hidden="true"
|
|
2442
2469
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
2443
2470
|
fill="none"
|
|
2444
2471
|
height="24"
|
|
@@ -2592,6 +2619,7 @@ exports[`renders StartPanel with login required unchanged 1`] = `
|
|
|
2592
2619
|
class="memori-button__icon"
|
|
2593
2620
|
>
|
|
2594
2621
|
<svg
|
|
2622
|
+
aria-hidden="true"
|
|
2595
2623
|
class="lucide lucide-user"
|
|
2596
2624
|
fill="none"
|
|
2597
2625
|
height="24"
|
|
@@ -2791,6 +2819,7 @@ exports[`renders StartPanel with multilangual unchanged 1`] = `
|
|
|
2791
2819
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
2792
2820
|
>
|
|
2793
2821
|
<svg
|
|
2822
|
+
aria-hidden="true"
|
|
2794
2823
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
2795
2824
|
fill="none"
|
|
2796
2825
|
height="24"
|
|
@@ -2847,6 +2876,7 @@ exports[`renders StartPanel with multilangual unchanged 1`] = `
|
|
|
2847
2876
|
class="memori-button__content"
|
|
2848
2877
|
>
|
|
2849
2878
|
<svg
|
|
2879
|
+
aria-hidden="true"
|
|
2850
2880
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
2851
2881
|
fill="none"
|
|
2852
2882
|
height="24"
|
|
@@ -2950,6 +2980,7 @@ exports[`renders StartPanel with not enough credits unchanged 1`] = `
|
|
|
2950
2980
|
class="blocked-memori-badge "
|
|
2951
2981
|
>
|
|
2952
2982
|
<svg
|
|
2983
|
+
aria-hidden="true"
|
|
2953
2984
|
class="lucide lucide-triangle-alert blocked-memori-badge--icon"
|
|
2954
2985
|
fill="none"
|
|
2955
2986
|
height="24"
|
|
@@ -3049,6 +3080,7 @@ exports[`renders StartPanel with not enough credits unchanged 1`] = `
|
|
|
3049
3080
|
class="memori--settings-section__icon-box memori--settings-section__icon-box--neutral"
|
|
3050
3081
|
>
|
|
3051
3082
|
<svg
|
|
3083
|
+
aria-hidden="true"
|
|
3052
3084
|
class="lucide lucide-eye memori--settings-section__icon"
|
|
3053
3085
|
fill="none"
|
|
3054
3086
|
height="24"
|
|
@@ -3105,6 +3137,7 @@ exports[`renders StartPanel with not enough credits unchanged 1`] = `
|
|
|
3105
3137
|
class="memori-button__content"
|
|
3106
3138
|
>
|
|
3107
3139
|
<svg
|
|
3140
|
+
aria-hidden="true"
|
|
3108
3141
|
class="lucide lucide-info memori--settings-section__inline-info-icon"
|
|
3109
3142
|
fill="none"
|
|
3110
3143
|
height="24"
|
|
@@ -3264,6 +3297,7 @@ exports[`renders StartPanel with position required unchanged 1`] = `
|
|
|
3264
3297
|
class="memori-button__icon"
|
|
3265
3298
|
>
|
|
3266
3299
|
<svg
|
|
3300
|
+
aria-hidden="true"
|
|
3267
3301
|
class="lucide lucide-map-pin"
|
|
3268
3302
|
fill="none"
|
|
3269
3303
|
height="24"
|
|
@@ -3301,6 +3335,7 @@ exports[`renders StartPanel with position required unchanged 1`] = `
|
|
|
3301
3335
|
class="memori-button__icon"
|
|
3302
3336
|
>
|
|
3303
3337
|
<svg
|
|
3338
|
+
aria-hidden="true"
|
|
3304
3339
|
class="lucide lucide-map-pin-off"
|
|
3305
3340
|
fill="none"
|
|
3306
3341
|
height="24"
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
position: relative;
|
|
201
201
|
display: flex;
|
|
202
202
|
align-items: center;
|
|
203
|
-
padding: calc(var(--memori-spacing-sm) + 2px) calc(var(--memori-spacing-sm) + var(--memori-spacing-xs));
|
|
203
|
+
/* padding: calc(var(--memori-spacing-sm) + 2px) calc(var(--memori-spacing-sm) + var(--memori-spacing-xs)); */
|
|
204
204
|
border-radius: var(--memori-radius-box);
|
|
205
205
|
/* border-left: 3px solid transparent; */
|
|
206
206
|
margin-bottom: var(--memori-spacing-sm);
|
|
@@ -215,9 +215,9 @@
|
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
/* Preview item variants */
|
|
218
|
-
.memori--preview-item--document {
|
|
218
|
+
/* .memori--preview-item--document {
|
|
219
219
|
background-color: #fff9db;
|
|
220
|
-
}
|
|
220
|
+
} */
|
|
221
221
|
|
|
222
222
|
.memori--preview-item--image {
|
|
223
223
|
background-color: #e7f5ff;
|
|
@@ -299,7 +299,7 @@
|
|
|
299
299
|
padding: var(--memori-spacing-xs);
|
|
300
300
|
margin: 0;
|
|
301
301
|
opacity: 0;
|
|
302
|
-
transform: scale(0.75);
|
|
302
|
+
/* transform: scale(0.75); */
|
|
303
303
|
transition: all 0.2s ease;
|
|
304
304
|
}
|
|
305
305
|
|
|
@@ -309,7 +309,7 @@
|
|
|
309
309
|
}
|
|
310
310
|
|
|
311
311
|
.memori--remove-button:hover {
|
|
312
|
-
transform: scale(1.
|
|
312
|
+
transform: scale(1.05) !important;
|
|
313
313
|
}
|
|
314
314
|
|
|
315
315
|
/* Modal Preview Content */
|
|
@@ -374,7 +374,7 @@
|
|
|
374
374
|
.memori--error-message-container,
|
|
375
375
|
.memori--login-tip {
|
|
376
376
|
position: fixed;
|
|
377
|
-
z-index:
|
|
377
|
+
z-index: calc(var(--memori-z-index-base, 0) + 1700);
|
|
378
378
|
top: var(--memori-spacing-5xl);
|
|
379
379
|
right: 20px;
|
|
380
380
|
}
|
|
@@ -491,7 +491,7 @@ input.memori--upload-title-input {
|
|
|
491
491
|
|
|
492
492
|
.memori--error-message-alert {
|
|
493
493
|
position: relative;
|
|
494
|
-
z-index:
|
|
494
|
+
z-index: calc(var(--memori-z-index-base, 0) + 1700);
|
|
495
495
|
top: 0;
|
|
496
496
|
right: 0;
|
|
497
497
|
}
|
|
@@ -15,6 +15,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
15
15
|
import memoriApiClient from '@memori.ai/memori-api-client';
|
|
16
16
|
import {
|
|
17
17
|
documentConversionExtensions,
|
|
18
|
+
localTextExtensions,
|
|
18
19
|
officeNativeExtensions,
|
|
19
20
|
} from '../../helpers/constants';
|
|
20
21
|
// Props interface
|
|
@@ -116,6 +117,7 @@ const UploadButton: React.FC<UploadManagerProps> = ({
|
|
|
116
117
|
const isDocumentFile = (file: File): boolean => {
|
|
117
118
|
const documentExtensions: readonly string[] = [
|
|
118
119
|
...documentConversionExtensions,
|
|
120
|
+
...localTextExtensions,
|
|
119
121
|
...officeNativeExtensions,
|
|
120
122
|
];
|
|
121
123
|
const fileExt = `.${file.name.split('.').pop()?.toLowerCase()}`;
|
|
@@ -467,6 +469,7 @@ ${file.textAssetUrl || ''}
|
|
|
467
469
|
const fileExt = `.${file.name.split('.').pop()?.toLowerCase()}`;
|
|
468
470
|
const ALLOWED_FILE_TYPES: readonly string[] = [
|
|
469
471
|
...documentConversionExtensions,
|
|
472
|
+
...localTextExtensions,
|
|
470
473
|
...officeNativeExtensions,
|
|
471
474
|
];
|
|
472
475
|
const MAX_FILE_SIZE = 25 * 1024 * 1024;
|
|
@@ -622,6 +625,7 @@ ${file.textAssetUrl || ''}
|
|
|
622
625
|
'.jpeg',
|
|
623
626
|
'.png',
|
|
624
627
|
...documentConversionExtensions,
|
|
628
|
+
...localTextExtensions,
|
|
625
629
|
...officeNativeExtensions,
|
|
626
630
|
].join(',')}
|
|
627
631
|
multiple
|
|
@@ -7,10 +7,13 @@ import { useTranslation } from 'react-i18next';
|
|
|
7
7
|
import memoriApiClient from '@memori.ai/memori-api-client';
|
|
8
8
|
import {
|
|
9
9
|
documentConversionExtensions,
|
|
10
|
+
localTextExtensions,
|
|
10
11
|
officeNativeExtensions,
|
|
11
12
|
} from '../../../helpers/constants';
|
|
12
|
-
import {
|
|
13
|
-
|
|
13
|
+
import {
|
|
14
|
+
isLocalTextFilename,
|
|
15
|
+
isOfficeNativeFilename,
|
|
16
|
+
} from '../../../helpers/utils';
|
|
14
17
|
import { convertDocument } from '../../../helpers/convertDocument';
|
|
15
18
|
// Types
|
|
16
19
|
type PreviewFile = {
|
|
@@ -72,7 +75,6 @@ const UploadDocuments: React.FC<UploadDocumentsProps> = ({
|
|
|
72
75
|
onValidatePayloadSize,
|
|
73
76
|
}) => {
|
|
74
77
|
const { t } = useTranslation();
|
|
75
|
-
const surfaceEl = useWidgetSurfaceEl();
|
|
76
78
|
const { backend } = client || {
|
|
77
79
|
backend: { uploadAsset: null, uploadAssetUnlogged: null },
|
|
78
80
|
};
|
|
@@ -127,7 +129,9 @@ const UploadDocuments: React.FC<UploadDocumentsProps> = ({
|
|
|
127
129
|
}
|
|
128
130
|
|
|
129
131
|
try {
|
|
130
|
-
const text =
|
|
132
|
+
const text = isLocalTextFilename(file.name)
|
|
133
|
+
? await fileToText(file)
|
|
134
|
+
: await convertDocument(file, sessionID, baseUrl);
|
|
131
135
|
return { text };
|
|
132
136
|
} catch (error) {
|
|
133
137
|
console.error('Document processing failed:', error);
|
|
@@ -139,6 +143,14 @@ const UploadDocuments: React.FC<UploadDocumentsProps> = ({
|
|
|
139
143
|
}
|
|
140
144
|
};
|
|
141
145
|
|
|
146
|
+
const fileToText = (file: File): Promise<string> =>
|
|
147
|
+
new Promise((resolve, reject) => {
|
|
148
|
+
const reader = new FileReader();
|
|
149
|
+
reader.onload = e => resolve((e.target?.result as string) || '');
|
|
150
|
+
reader.onerror = () => reject(new Error('File reading failed'));
|
|
151
|
+
reader.readAsText(file, 'UTF-8');
|
|
152
|
+
});
|
|
153
|
+
|
|
142
154
|
const fileToDataUrl = (file: File): Promise<string> =>
|
|
143
155
|
new Promise((resolve, reject) => {
|
|
144
156
|
const reader = new FileReader();
|
|
@@ -342,9 +354,11 @@ const UploadDocuments: React.FC<UploadDocumentsProps> = ({
|
|
|
342
354
|
<input
|
|
343
355
|
ref={documentInputRef}
|
|
344
356
|
type="file"
|
|
345
|
-
accept={[
|
|
346
|
-
|
|
347
|
-
|
|
357
|
+
accept={[
|
|
358
|
+
...documentConversionExtensions,
|
|
359
|
+
...localTextExtensions,
|
|
360
|
+
...officeNativeExtensions,
|
|
361
|
+
].join(',')}
|
|
348
362
|
multiple
|
|
349
363
|
className="memori--upload-file-input"
|
|
350
364
|
onChange={handleDocumentUpload}
|
|
@@ -383,7 +397,6 @@ const UploadDocuments: React.FC<UploadDocumentsProps> = ({
|
|
|
383
397
|
|
|
384
398
|
{/* Modal */}
|
|
385
399
|
<Modal
|
|
386
|
-
container={surfaceEl ?? undefined}
|
|
387
400
|
width="80%"
|
|
388
401
|
widthMd="80%"
|
|
389
402
|
open={!!selectedFile}
|
|
@@ -8,7 +8,6 @@ import { Asset, Medium } from '@memori.ai/memori-api-client/dist/types';
|
|
|
8
8
|
import { useTranslation } from 'react-i18next';
|
|
9
9
|
import { Button } from '@memori.ai/ui';
|
|
10
10
|
import { compressImage } from '../../../helpers/imageCompression';
|
|
11
|
-
import { useWidgetSurfaceEl } from '../../../context/widgetSurfaceContext';
|
|
12
11
|
|
|
13
12
|
// Types
|
|
14
13
|
type PreviewFile = {
|
|
@@ -55,7 +54,6 @@ const UploadImages: React.FC<UploadImagesProps> = ({
|
|
|
55
54
|
onValidateImageFile,
|
|
56
55
|
}) => {
|
|
57
56
|
const { t, i18n } = useTranslation();
|
|
58
|
-
const surfaceEl = useWidgetSurfaceEl();
|
|
59
57
|
// Client
|
|
60
58
|
const { backend, dialog } = client || {
|
|
61
59
|
backend: { uploadAsset: null, uploadAssetUnlogged: null },
|
|
@@ -485,7 +483,6 @@ const UploadImages: React.FC<UploadImagesProps> = ({
|
|
|
485
483
|
|
|
486
484
|
{/* Upload Modal with Title Input */}
|
|
487
485
|
<Modal
|
|
488
|
-
container={surfaceEl ?? undefined}
|
|
489
486
|
open={showUploadModal && !!selectedFile}
|
|
490
487
|
className="memori--modal-preview-file memori--upload-image-preview-modal"
|
|
491
488
|
onClose={handleCancelUpload}
|