codicent-app-sdk 0.3.120 → 0.4.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.
- package/README.md +173 -26
- package/dist/cjs/_virtual/jsQR.js +1 -0
- package/dist/cjs/bootstrap.d.ts +112 -0
- package/dist/cjs/bootstrap.d.ts.map +1 -0
- package/dist/cjs/bootstrap.js +1 -0
- package/dist/cjs/components/AiInput.js +1 -1
- package/dist/cjs/components/AudioIcon.js +1 -1
- package/dist/cjs/components/BulkUploadDialog.d.ts +16 -0
- package/dist/cjs/components/BulkUploadDialog.d.ts.map +1 -0
- package/dist/cjs/components/BulkUploadDialog.js +1 -0
- package/dist/cjs/components/ChatInput.js +1 -1
- package/dist/cjs/components/ChatMessage.js +1 -1
- package/dist/cjs/components/CombinedPlaceholderDialog.js +1 -1
- package/dist/cjs/components/ErrorBoundary.d.ts +17 -0
- package/dist/cjs/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/cjs/components/ErrorBoundary.js +1 -0
- package/dist/cjs/components/Footer.js +1 -1
- package/dist/cjs/components/GenericJsonRenderer.d.ts +20 -0
- package/dist/cjs/components/GenericJsonRenderer.d.ts.map +1 -0
- package/dist/cjs/components/GenericJsonRenderer.js +1 -0
- package/dist/cjs/components/Header.js +1 -1
- package/dist/cjs/components/HtmlView.js +1 -1
- package/dist/cjs/components/LanguageSelector.d.ts +11 -0
- package/dist/cjs/components/LanguageSelector.d.ts.map +1 -0
- package/dist/cjs/components/LanguageSelector.js +1 -0
- package/dist/cjs/components/ListView.d.ts +39 -0
- package/dist/cjs/components/ListView.d.ts.map +1 -0
- package/dist/cjs/components/ListView.js +1 -0
- package/dist/cjs/components/MessageInput.js +1 -1
- package/dist/cjs/components/MessageItem.js +1 -1
- package/dist/cjs/components/OfflineMessage.d.ts +6 -0
- package/dist/cjs/components/OfflineMessage.d.ts.map +1 -0
- package/dist/cjs/components/OfflineMessage.js +1 -0
- package/dist/cjs/components/Profile.js +1 -1
- package/dist/cjs/components/Prompt.js +1 -1
- package/dist/cjs/components/QrScanner.d.ts +12 -0
- package/dist/cjs/components/QrScanner.d.ts.map +1 -0
- package/dist/cjs/components/QrScanner.js +1 -0
- package/dist/cjs/components/RecordModal.d.ts +13 -0
- package/dist/cjs/components/RecordModal.d.ts.map +1 -0
- package/dist/cjs/components/RecordModal.js +1 -0
- package/dist/cjs/components/SnapFooter.js +1 -1
- package/dist/cjs/components/TextHeader.js +1 -1
- package/dist/cjs/components/TypingIndicator.js +1 -1
- package/dist/cjs/components/UploadFile.js +1 -1
- package/dist/cjs/components/UrlProcessor.js +1 -1
- package/dist/cjs/components/VoiceIcon.js +1 -1
- package/dist/cjs/components/index.d.ts +9 -0
- package/dist/cjs/components/index.d.ts.map +1 -1
- package/dist/cjs/config/index.d.ts +1 -0
- package/dist/cjs/config/index.d.ts.map +1 -1
- package/dist/cjs/config/index.js +1 -1
- package/dist/cjs/hooks/index.d.ts +3 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/useAuthState.d.ts.map +1 -1
- package/dist/cjs/hooks/useAuthState.js +1 -1
- package/dist/cjs/hooks/useCodicentState.js +1 -1
- package/dist/cjs/hooks/useDebugLogs.d.ts +6 -0
- package/dist/cjs/hooks/useDebugLogs.d.ts.map +1 -0
- package/dist/cjs/hooks/useDebugLogs.js +1 -0
- package/dist/cjs/hooks/useObserveDataSchemas.d.ts +42 -0
- package/dist/cjs/hooks/useObserveDataSchemas.d.ts.map +1 -0
- package/dist/cjs/hooks/useObserveDataSchemas.js +1 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/node_modules/@auth0/auth0-react/dist/auth0-react.esm.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-button/lib/contexts/ButtonContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-checkbox/lib/components/Checkbox/Checkbox.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-checkbox/lib/components/Checkbox/renderCheckbox.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-checkbox/lib/components/Checkbox/useCheckbox.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-checkbox/lib/components/Checkbox/useCheckboxStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-combobox/lib/components/Combobox/useCombobox.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/Dialog/Dialog.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/Dialog/renderDialog.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/Dialog/useDialog.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/Dialog/useDialogContextValues.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogActions/DialogActions.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogActions/renderDialogActions.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogActions/useDialogActions.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogActions/useDialogActionsStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogBackdropMotion.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogBody/DialogBody.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogBody/renderDialogBody.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogBody/useDialogBody.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogBody/useDialogBodyStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogContent/DialogContent.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogContent/renderDialogContent.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogContent/useDialogContent.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogContent/useDialogContentStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/DialogSurface.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/renderDialogSurface.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurface.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurfaceContextValues.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurfaceStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogSurfaceMotion.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/DialogTitle.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/renderDialogTitle.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/useDialogTitle.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/useDialogTitleStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/DialogTrigger.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/renderDialogTrigger.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/useDialogTrigger.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/components/MotionRefForwarder.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/contexts/dialogContext.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/contexts/dialogSurfaceContext.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/utils/useDisableBodyScroll.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/utils/useDisableBodyScroll.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-dialog/lib/utils/useFocusFirstElement.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-icons/lib/contexts/IconDirectionContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-1.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-5.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-6.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-menu/lib/components/Menu/useMenu.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-menu/lib/components/MenuItem/useMenuItem.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/MessageBarActions.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/renderMessageBarActions.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActions.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActionsContextValues.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActionsStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/MessageBarTitle.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/renderMessageBarTitle.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/useMessageBarTitle.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/useMessageBarTitleStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-motion/lib/slots/presenceMotionSlot.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-motion-components-preview/lib/components/Fade/Fade.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-positioning/lib/utils/mergeArrowOffset.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-provider/lib/components/FluentProvider/FluentProvider.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-provider/lib/components/FluentProvider/createCSSRuleFromTheme.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-provider/lib/components/FluentProvider/renderFluentProvider.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProvider.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderContextValues.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderThemeStyleTag.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-search/lib/components/SearchBox/useSearchBox.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/CustomStyleHooksContext/CustomStyleHooksContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/OverridesContext/OverridesContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/ProviderContext/ProviderContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/ThemeClassNameContext/ThemeClassNameContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/ThemeContext/ThemeContext.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-shared-contexts/lib/TooltipVisibilityContext/TooltipContext.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-tabster/lib/hooks/useIsNavigatingWithKeyboard.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-timepicker-compat/lib/components/TimePicker/useTimePicker.js +1 -1
- package/dist/cjs/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/Tooltip.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/private/constants.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/renderTooltip.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/useTooltip.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/useTooltipStyles.styles.js +1 -0
- package/dist/cjs/node_modules/@fluentui/react-utilities/lib/ssr/SSRContext.js +1 -1
- package/dist/cjs/node_modules/@fluentui/tokens/lib/alias/lightColor.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/alias/lightColorPalette.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/global/borderRadius.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/global/colorPalette.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/global/colors.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/global/curves.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/global/durations.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/global/fonts.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/global/spacings.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/global/strokeWidths.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/sharedColorNames.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/statusColorMapping.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/utils/createLightTheme.js +1 -0
- package/dist/cjs/node_modules/@fluentui/tokens/lib/utils/shadows.js +1 -0
- package/dist/cjs/node_modules/@griffel/react/TextDirectionContext.esm.js +1 -1
- package/dist/cjs/node_modules/jsqr/dist/jsQR.js +1 -0
- package/dist/cjs/pages/AppFrame.js +1 -1
- package/dist/cjs/pages/Chat.js +1 -1
- package/dist/cjs/pages/Compose.js +1 -1
- package/dist/cjs/pages/CrmPage.js +1 -1
- package/dist/cjs/pages/CrmPagePersistent.js +1 -1
- package/dist/cjs/pages/Debug.d.ts +4 -0
- package/dist/cjs/pages/Debug.d.ts.map +1 -0
- package/dist/cjs/pages/Debug.js +1 -0
- package/dist/cjs/pages/FormAccept.js +1 -1
- package/dist/cjs/pages/FormInvite.js +1 -1
- package/dist/cjs/pages/FormPage.d.ts +11 -0
- package/dist/cjs/pages/FormPage.d.ts.map +1 -0
- package/dist/cjs/pages/FormPage.js +1 -0
- package/dist/cjs/pages/Help.d.ts +7 -0
- package/dist/cjs/pages/Help.d.ts.map +1 -0
- package/dist/cjs/pages/Help.js +1 -0
- package/dist/cjs/pages/HtmlViewer.js +1 -1
- package/dist/cjs/pages/Login.js +1 -1
- package/dist/cjs/pages/Purchase.js +1 -1
- package/dist/cjs/pages/QrScan.d.ts +12 -0
- package/dist/cjs/pages/QrScan.d.ts.map +1 -0
- package/dist/cjs/pages/QrScan.js +1 -0
- package/dist/cjs/pages/Sales.js +1 -1
- package/dist/cjs/pages/SchemaEditor.d.ts +2 -0
- package/dist/cjs/pages/SchemaEditor.d.ts.map +1 -0
- package/dist/cjs/pages/SchemaEditor.js +1 -0
- package/dist/cjs/pages/Search.js +1 -1
- package/dist/cjs/pages/Snap.js +1 -1
- package/dist/cjs/pages/index.d.ts +5 -0
- package/dist/cjs/pages/index.d.ts.map +1 -1
- package/dist/cjs/services/codicent.d.ts +6 -0
- package/dist/cjs/services/codicent.d.ts.map +1 -1
- package/dist/cjs/services/codicent.js +1 -1
- package/dist/cjs/types/index.d.ts +188 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/utils/appState.d.ts.map +1 -1
- package/dist/cjs/utils/appState.js +1 -1
- package/dist/esm/_virtual/jsQR.js +1 -0
- package/dist/esm/bootstrap.d.ts +112 -0
- package/dist/esm/bootstrap.d.ts.map +1 -0
- package/dist/esm/bootstrap.js +1 -0
- package/dist/esm/components/AiInput.js +1 -1
- package/dist/esm/components/AudioIcon.js +1 -1
- package/dist/esm/components/BulkUploadDialog.d.ts +16 -0
- package/dist/esm/components/BulkUploadDialog.d.ts.map +1 -0
- package/dist/esm/components/BulkUploadDialog.js +1 -0
- package/dist/esm/components/ChatInput.js +1 -1
- package/dist/esm/components/ChatMessage.js +1 -1
- package/dist/esm/components/CombinedPlaceholderDialog.js +1 -1
- package/dist/esm/components/ErrorBoundary.d.ts +17 -0
- package/dist/esm/components/ErrorBoundary.d.ts.map +1 -0
- package/dist/esm/components/ErrorBoundary.js +1 -0
- package/dist/esm/components/Footer.js +1 -1
- package/dist/esm/components/GenericJsonRenderer.d.ts +20 -0
- package/dist/esm/components/GenericJsonRenderer.d.ts.map +1 -0
- package/dist/esm/components/GenericJsonRenderer.js +1 -0
- package/dist/esm/components/Header.js +1 -1
- package/dist/esm/components/HtmlView.js +1 -1
- package/dist/esm/components/LanguageSelector.d.ts +11 -0
- package/dist/esm/components/LanguageSelector.d.ts.map +1 -0
- package/dist/esm/components/LanguageSelector.js +1 -0
- package/dist/esm/components/ListView.d.ts +39 -0
- package/dist/esm/components/ListView.d.ts.map +1 -0
- package/dist/esm/components/ListView.js +1 -0
- package/dist/esm/components/MessageInput.js +1 -1
- package/dist/esm/components/MessageItem.js +1 -1
- package/dist/esm/components/OfflineMessage.d.ts +6 -0
- package/dist/esm/components/OfflineMessage.d.ts.map +1 -0
- package/dist/esm/components/OfflineMessage.js +1 -0
- package/dist/esm/components/Profile.js +1 -1
- package/dist/esm/components/Prompt.js +1 -1
- package/dist/esm/components/QrScanner.d.ts +12 -0
- package/dist/esm/components/QrScanner.d.ts.map +1 -0
- package/dist/esm/components/QrScanner.js +1 -0
- package/dist/esm/components/RecordModal.d.ts +13 -0
- package/dist/esm/components/RecordModal.d.ts.map +1 -0
- package/dist/esm/components/RecordModal.js +1 -0
- package/dist/esm/components/SnapFooter.js +1 -1
- package/dist/esm/components/TextHeader.js +1 -1
- package/dist/esm/components/TypingIndicator.js +1 -1
- package/dist/esm/components/UploadFile.js +1 -1
- package/dist/esm/components/UrlProcessor.js +1 -1
- package/dist/esm/components/VoiceIcon.js +1 -1
- package/dist/esm/components/index.d.ts +9 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/config/index.d.ts +1 -0
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/hooks/index.d.ts +3 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/useAuthState.d.ts.map +1 -1
- package/dist/esm/hooks/useAuthState.js +1 -1
- package/dist/esm/hooks/useCodicentState.js +1 -1
- package/dist/esm/hooks/useDebugLogs.d.ts +6 -0
- package/dist/esm/hooks/useDebugLogs.d.ts.map +1 -0
- package/dist/esm/hooks/useDebugLogs.js +1 -0
- package/dist/esm/hooks/useObserveDataSchemas.d.ts +42 -0
- package/dist/esm/hooks/useObserveDataSchemas.d.ts.map +1 -0
- package/dist/esm/hooks/useObserveDataSchemas.js +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/node_modules/@auth0/auth0-react/dist/auth0-react.esm.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-button/lib/contexts/ButtonContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-checkbox/lib/components/Checkbox/Checkbox.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-checkbox/lib/components/Checkbox/renderCheckbox.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-checkbox/lib/components/Checkbox/useCheckbox.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-checkbox/lib/components/Checkbox/useCheckboxStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-combobox/lib/components/Combobox/useCombobox.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/Dialog/Dialog.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/Dialog/renderDialog.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/Dialog/useDialog.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/Dialog/useDialogContextValues.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogActions/DialogActions.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogActions/renderDialogActions.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogActions/useDialogActions.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogActions/useDialogActionsStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogBackdropMotion.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogBody/DialogBody.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogBody/renderDialogBody.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogBody/useDialogBody.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogBody/useDialogBodyStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogContent/DialogContent.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogContent/renderDialogContent.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogContent/useDialogContent.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogContent/useDialogContentStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/DialogSurface.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/renderDialogSurface.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurface.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurfaceContextValues.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurfaceStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogSurfaceMotion.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/DialogTitle.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/renderDialogTitle.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/useDialogTitle.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/useDialogTitleStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/DialogTrigger.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/renderDialogTrigger.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/useDialogTrigger.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/components/MotionRefForwarder.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/contexts/dialogContext.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/contexts/dialogSurfaceContext.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/utils/useDisableBodyScroll.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/utils/useDisableBodyScroll.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-dialog/lib/utils/useFocusFirstElement.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-icons/lib/contexts/IconDirectionContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-1.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-5.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-6.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-menu/lib/components/Menu/useMenu.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-menu/lib/components/MenuItem/useMenuItem.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/MessageBarActions.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/renderMessageBarActions.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActions.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActionsContextValues.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActionsStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/MessageBarTitle.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/renderMessageBarTitle.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/useMessageBarTitle.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/useMessageBarTitleStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-motion/lib/slots/presenceMotionSlot.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-motion-components-preview/lib/components/Fade/Fade.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-positioning/lib/utils/mergeArrowOffset.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-provider/lib/components/FluentProvider/FluentProvider.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-provider/lib/components/FluentProvider/createCSSRuleFromTheme.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-provider/lib/components/FluentProvider/renderFluentProvider.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProvider.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderContextValues.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderThemeStyleTag.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-search/lib/components/SearchBox/useSearchBox.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/CustomStyleHooksContext/CustomStyleHooksContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/OverridesContext/OverridesContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/ProviderContext/ProviderContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/ThemeClassNameContext/ThemeClassNameContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/ThemeContext/ThemeContext.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-shared-contexts/lib/TooltipVisibilityContext/TooltipContext.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-tabster/lib/hooks/useIsNavigatingWithKeyboard.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-timepicker-compat/lib/components/TimePicker/useTimePicker.js +1 -1
- package/dist/esm/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/Tooltip.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/private/constants.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/renderTooltip.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/useTooltip.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-tooltip/lib/components/Tooltip/useTooltipStyles.styles.js +1 -0
- package/dist/esm/node_modules/@fluentui/react-utilities/lib/ssr/SSRContext.js +1 -1
- package/dist/esm/node_modules/@fluentui/tokens/lib/alias/lightColor.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/alias/lightColorPalette.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/global/borderRadius.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/global/colorPalette.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/global/colors.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/global/curves.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/global/durations.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/global/fonts.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/global/spacings.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/global/strokeWidths.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/sharedColorNames.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/statusColorMapping.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/utils/createLightTheme.js +1 -0
- package/dist/esm/node_modules/@fluentui/tokens/lib/utils/shadows.js +1 -0
- package/dist/esm/node_modules/@griffel/react/TextDirectionContext.esm.js +1 -1
- package/dist/esm/node_modules/jsqr/dist/jsQR.js +1 -0
- package/dist/esm/pages/AppFrame.js +1 -1
- package/dist/esm/pages/Chat.js +1 -1
- package/dist/esm/pages/Compose.js +1 -1
- package/dist/esm/pages/CrmPage.js +1 -1
- package/dist/esm/pages/CrmPagePersistent.js +1 -1
- package/dist/esm/pages/Debug.d.ts +4 -0
- package/dist/esm/pages/Debug.d.ts.map +1 -0
- package/dist/esm/pages/Debug.js +1 -0
- package/dist/esm/pages/FormAccept.js +1 -1
- package/dist/esm/pages/FormInvite.js +1 -1
- package/dist/esm/pages/FormPage.d.ts +11 -0
- package/dist/esm/pages/FormPage.d.ts.map +1 -0
- package/dist/esm/pages/FormPage.js +1 -0
- package/dist/esm/pages/Help.d.ts +7 -0
- package/dist/esm/pages/Help.d.ts.map +1 -0
- package/dist/esm/pages/Help.js +1 -0
- package/dist/esm/pages/HtmlViewer.js +1 -1
- package/dist/esm/pages/Login.js +1 -1
- package/dist/esm/pages/Purchase.js +1 -1
- package/dist/esm/pages/QrScan.d.ts +12 -0
- package/dist/esm/pages/QrScan.d.ts.map +1 -0
- package/dist/esm/pages/QrScan.js +1 -0
- package/dist/esm/pages/Sales.js +1 -1
- package/dist/esm/pages/SchemaEditor.d.ts +2 -0
- package/dist/esm/pages/SchemaEditor.d.ts.map +1 -0
- package/dist/esm/pages/SchemaEditor.js +1 -0
- package/dist/esm/pages/Search.js +1 -1
- package/dist/esm/pages/Snap.js +1 -1
- package/dist/esm/pages/index.d.ts +5 -0
- package/dist/esm/pages/index.d.ts.map +1 -1
- package/dist/esm/services/codicent.d.ts +6 -0
- package/dist/esm/services/codicent.d.ts.map +1 -1
- package/dist/esm/services/codicent.js +1 -1
- package/dist/esm/types/index.d.ts +188 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/utils/appState.d.ts.map +1 -1
- package/dist/esm/utils/appState.js +1 -1
- package/dist/index.d.ts +521 -28
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useRef as o,useState as i,useEffect as r}from"react";import{FileThumbnail as a}from"./FileThumbnail.js";import s from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"./Markdown.js";import{Textarea as l}from"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as n}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import p from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import m from"../hooks/useAppStyles.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as d}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{Spinner as u}from"../node_modules/@fluentui/react-spinner/lib/components/Spinner/Spinner.js";import{SendRegular as g,SendFilled as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{mergeClasses as j}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as h}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{AddRegular as b}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";const _=c({inputContainer:{display:"flex",flexDirection:"column",padding:"8px",width:"100%",position:"relative",gap:"8px"},textareaWrapper:{position:"relative",width:"100%",display:"flex",flexDirection:"column"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between",alignItems:"center"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px 0",maxWidth:"100%",boxSizing:"border-box",gap:"4px",minHeight:"72px",backgroundColor:h.colorNeutralBackground2,borderRadius:h.borderRadiusMedium,"&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:h.colorNeutralStroke1,borderRadius:"3px"}},hiddenInput:{display:"none"},button:{color:h.colorNeutralForeground2,"&:hover":{color:h.colorBrandBackground,backgroundColor:"transparent"}}}),x=({onSend:c,disableSend:h,onSelectFiles:x,getImageUrl:S,getFileInfo:k,codicent:v,defaultText:w,rows:T,noMemory:y,selectAll:C,id:D})=>{const N=_(),[B,F]=s("chatInput-"+v,""),I=o(null),[O,E]=i([]),[P,A]=i([]),[H,U]=i(!1),[L,M]=i([]),{t:R}=p(),W=m();r((()=>{w&&F(w)}),[F,w]),r((()=>{!0===y&&F("")}),[y,F]);const z=()=>{if(""===B.trim()&&0===L.length)return;const e=O.length>0?" #"+O.join(" #"):"",t=P.length>0?"\n#file:"+P.join("\n#file:"):"";c(e+B+t),F(""),E([]),A([]),M([])};return e("div",{className:N.inputContainer,children:[t("input",{title:R("Välj fil att ladda upp"),type:"file",ref:I,className:N.hiddenInput,onChange:async e=>{const t=e.target.files;if(t&&t.length>0&&x){U(!0);try{const e=await x(t),o=await Promise.all(e.map((e=>k(e))));A((t=>[...t,...e])),M((e=>[...e,...o]))}catch(e){console.error("Failed to upload files",e)}finally{U(!1),I.current&&(I.current.value="")}}},multiple:!0,accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx,.txt"}),L.length>0&&t("div",{className:N.fileList,children:L.map((e=>t(a,{file:e,getImageUrl:S,onDelete:()=>{return t=e.id,A((e=>e.filter((e=>e!==t)))),void M((e=>e.filter((e=>e.id!==t))));var t}},e.id)))}),e("div",{className:N.textareaWrapper,onPaste:async e=>{for(const t of e.clipboardData.items)if(-1!==t.type.indexOf("image")){const o=t.getAsFile();if(o&&(e.preventDefault(),x))try{U(!0);const e=new DataTransfer;e.items.add(o);const t=await x(e.files),i=await Promise.all(t.map((e=>k(e))));A((e=>[...e,...t])),M((e=>[...e,...i]))}catch(e){console.error("Failed to upload pasted image",e)}finally{U(!1)}}},children:[t(l,{size:"large",id:D||"chat-input",placeholder:R(n("APP_CHAT_TEXT_PLACEHOLDER")||"Skriv ditt meddelande här..."),value:B,onChange:e=>F(e.target.value),onKeyDown:e=>{h||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),z())},autoFocus:!1,rows:T||4,onFocus:e=>{if(!0===C){e.target.select()}}}),e("div",{className:N.actionButtonRow,children:[t("div",{children:!n("HIDE_CHAT_ADD_FILE_BUTTON")&&x&&t(d,{appearance:"subtle",size:"small",title:R("Lägg till fil"),icon:t(H?u:b,{}),onClick:()=>I.current?.click(),className:N.button})}),t(d,{appearance:n("SHOW_SEND_BUTTON_TEXT")?"primary":"subtle",size:n("SHOW_SEND_BUTTON_TEXT")?"small":"large",title:R("Skicka"),disabled:h,icon:""===B.trim()&&0===L.length?t(g,{}):t(f,{}),onClick:z,className:n("SEND_BUTTON_ROUND_BACKGROUND")?j(W.roundButton,N.button):n("SHOW_SEND_BUTTON_TEXT")?void 0:N.button,children:n("SHOW_SEND_BUTTON_TEXT")&&t("span",{children:R("Skicka")})})]})]})]})};export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import"react";import"../services/codicent.js";import o from"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./Header.js";import r from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as i}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import"react";import"../services/codicent.js";import o from"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./Header.js";import r from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as i}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import a from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import{makeStyles as p}from"../node_modules/@griffel/react/makeStyles.esm.js";import{mergeClasses as n}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as m}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Text as l}from"../node_modules/@fluentui/react-text/lib/components/Text/Text.js";import{ChannelRegular as c}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const d=p({message:{display:"flex",marginBottom:"16px",webkitUserSelect:"text",userSelect:"text"},user:{justifyContent:"flex-end"},bot:{justifyContent:"flex-start"},messageContent:{maxWidth:"80%",padding:"12px 16px",borderRadius:"16px",fontSize:"1rem",lineHeight:"1.4",whiteSpace:"pre-wrap",wordBreak:"break-word",overflow:"auto"},userMessage:{borderTopRightRadius:"0"},botMessage:{borderTopLeftRadius:"0"},newMessage:{animation:"$fadeIn 0.5s ease-in-out"}}),u=({sender:p,content:u,isNew:g,children:j,showSuggestions:f,onSuggestionClicked:h})=>{const C=d(),{t:_}=a();let x=[];if("bot"===p&&u.includes("#suggested_questions")){const e=u.split("#suggested_questions");u=e[0],x=e[1].split("\n").filter((e=>""!==e.trim())).map((e=>e.trim()))}const b=new r(u);let w=b.content;"user"===p&&b.content.includes("---")&&(w=b.content.split("---")[0]);const S=b.content.startsWith("Error code: ")?_("Ett fel uppstod 😟 => starta en ny chatt"):null;return e("div",{className:n(C.message,"user"===p?C.user:C.bot),children:t("div",{className:n(C.messageContent,"user"===p?C.userMessage:C.botMessage,g&&C.newMessage),style:{backgroundColor:"user"===p?i("CHAT_USER_BACKGROUND_COLOR")||m.colorBrandBackground:i("CHAT_BOT_BACKGROUND_COLOR")||m.colorBrandBackground2,color:"user"===p?i("CHAT_USER_TEXT_COLOR")||m.colorNeutralForegroundInverted:i("CHAT_BOT_TEXT_COLOR")||m.colorNeutralForeground1},children:[t(l,{size:400,children:[S,!S&&e(o,{content:w}),b.files.length>0&&e(c,{}),f&&x&&x.length>0&&e("div",{style:{marginTop:"8px",display:"flex",gap:"8px",flexWrap:"wrap"},children:x.map(((t,o)=>e(s,{size:"small",shape:"circular",onClick:()=>h?.(t),style:{textAlign:"left"},children:t},o)))})]}),j]})})};export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as i}from"./Textarea.js";import{Button as r}from"./Button.js";import"./CompoundButton.js";import{Text as t}from"./Text.js";import"./Spinner.js";import{Label as a}from"./Label.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as s,DialogTitle as l,DialogContent as
|
|
1
|
+
import{jsxs as e,jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as i}from"./Textarea.js";import{Button as r}from"./Button.js";import"./CompoundButton.js";import{Text as t}from"./Text.js";import"./Spinner.js";import{Label as a}from"./Label.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as s,DialogTitle as l,DialogContent as p,DialogActions as m}from"./Dialog.js";import"./ChatInput.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import n from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as d}from"../node_modules/@griffel/core/index.esm.js";import{tokens as j}from"../node_modules/@fluentui/tokens/lib/tokens.js";const g=c({container:{display:"flex",flexDirection:"column",...d.gap("12px")},section:{display:"flex",flexDirection:"column",...d.gap("8px")},field:{display:"flex",flexDirection:"column",...d.gap("4px")},fileItem:{display:"flex",alignItems:"center",...d.gap("8px")},label:{fontWeight:j.fontWeightSemibold},textarea:{minHeight:"100px",resize:"vertical"},dialogSurface:{backgroundColor:j.colorNeutralBackground1,boxShadow:j.shadow16},dialogBody:{backgroundColor:"transparent"}}),u=({open:c,templateVariables:d,filePlaceholders:j,onTemplateVariablesChange:u,onFilePlaceholdersChange:f,onConfirm:h,onCancel:x,uploadFile:v})=>{const b=g(),{t:y}=n();return e(s,{open:c,children:[o(l,{children:y("Fyll i information")}),o(p,{children:e("div",{className:b.container,children:[d.length>0&&o("div",{className:b.section,children:d.map(((r,t)=>e("div",{className:b.field,children:[o(a,{className:b.label,children:r.name}),o(i,{className:b.textarea,value:r.value,onChange:e=>{const o=[...d];o[t].value=e.target.value,u(o)}})]},t)))}),j.length>0&&o("div",{className:b.section,children:j.map(((i,a)=>e("div",{className:b.fileItem,children:[o(t,{weight:"semibold",children:i.description}),o(r,{appearance:"primary",onClick:()=>(async e=>{const o=document.createElement("input");o.type="file";const i=await new Promise((e=>{o.onchange=o=>e(o.target.files),o.click()}));if(i&&i.length>0){const o=i[0],r=new FormData;r.append("file",o);const t=await v(o.name,r),a=[...j];a[e].fileId=t,f(a)}})(a),children:i.fileId?y("Fil vald"):y("Välj fil")})]},a)))})]})}),e(m,{children:[o(r,{appearance:"secondary",onClick:x,children:y("Avbryt")}),o(r,{appearance:"primary",onClick:h,children:y("OK")})]})]})};export{u as CombinedPlaceholderDialog};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component, ErrorInfo, ReactNode } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
fallback?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
interface State {
|
|
7
|
+
hasError: boolean;
|
|
8
|
+
error: Error | null;
|
|
9
|
+
}
|
|
10
|
+
declare class ErrorBoundary extends Component<Props, State> {
|
|
11
|
+
constructor(props: Props);
|
|
12
|
+
static getDerivedStateFromError(error: Error): State;
|
|
13
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
14
|
+
render(): ReactNode;
|
|
15
|
+
}
|
|
16
|
+
export default ErrorBoundary;
|
|
17
|
+
//# sourceMappingURL=ErrorBoundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,UAAU,KAAK;IACZ,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,UAAU,KAAK;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACtB;AAED,cAAM,aAAc,SAAQ,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;gBACpC,KAAK,EAAE,KAAK;IAQxB,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAKpD,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAM3D,MAAM,IAAI,SAAS;CAqCrB;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as r,jsx as e}from"react/jsx-runtime";import{Component as o}from"react";class t extends o{constructor(r){super(r),this.state={hasError:!1,error:null}}static getDerivedStateFromError(r){return{hasError:!0,error:r}}componentDidCatch(r,e){console.error("Error caught by ErrorBoundary:",r),console.error("Component stack:",e.componentStack)}render(){return this.state.hasError?this.props.fallback||r("div",{style:{padding:"20px",margin:"20px",border:"1px solid #f5c2c7",borderRadius:"5px",backgroundColor:"#f8d7da",color:"#842029"},children:[e("h2",{children:"Something went wrong"}),e("p",{children:"The application encountered an error. Please try refreshing the page."}),r("details",{style:{whiteSpace:"pre-wrap",margin:"10px 0"},children:[e("summary",{children:"Error Details"}),this.state.error?.toString()]}),e("button",{onClick:()=>window.location.reload(),style:{padding:"8px 16px",backgroundColor:"#0d6efd",color:"white",border:"none",borderRadius:"4px",cursor:"pointer"},children:"Refresh Page"})]}):this.props.children}}export{t as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useState as t,useEffect as s}from"react";import{useLocation as i,Link as
|
|
1
|
+
import{jsx as o,jsxs as e}from"react/jsx-runtime";import{useState as t,useEffect as s}from"react";import{useLocation as i,Link as r}from"react-router-dom";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as n}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import a from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import{makeStyles as l}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as m}from"../node_modules/@griffel/core/index.esm.js";import{tokens as c}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Home24Filled as p,Home24Regular as d}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js";import{Chat24Filled as u,Chat24Regular as j}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js";import{AddSquare24Filled as h,AddSquare24Regular as g,Apps24Filled as _,Apps24Regular as f}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js";import{ClipboardDay24Filled as T,ClipboardDay24Regular as k}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js";import{SlideText24Filled as v,SlideText24Regular as b}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js";import{Whiteboard24Filled as x,Whiteboard24Regular as O}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js";const C=l({footer:{...m.padding("14px"),textAlign:"center",display:"flex",justifyContent:"space-around",alignItems:"center",position:"sticky",bottom:0,zIndex:1e3,paddingBottom:"22px",width:"100%"},container:{display:"flex",justifyContent:"space-around",alignItems:"center",maxWidth:"480px",width:"100%"},button:{color:c.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...m.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none"},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),N=()=>{const l=C(),m=i(),[N,y]=t(null),{t:I}=a(),S={backgroundColor:n("APP_FOOTER_COLOR")||c.colorBrandBackground,color:n("APP_FOOTER_TEXT_COLOR")||c.colorNeutralForegroundOnBrand},P=n("APP_FOOTER_SELECTED_COLOR")||void 0;return s((()=>{const o=m.pathname;"/"===o?y("home"):"/chat"===o?y("chat"):"/new"===o?y("save"):"/menu"===o?y("menu"):"/log"===o?y("log"):"/canvas"===o?y("canvas"):"/snap"===o&&y("snap")}),[m]),s((()=>{N&&console.log(`footer-button: ${N}`)}),[N]),o("footer",{className:l.footer,style:S,children:e("div",{className:l.container,children:[e(r,{to:"/",className:`${l.link} ${"home"===N?"selected":""}`,onClick:()=>y("home"),style:"home"===N?{color:P}:void 0,children:[o("home"===N?p:d,{}),o("p",{className:l.buttonText,children:I("Hem")})]}),!n("HIDE_CHAT_BUTTON")&&e(r,{to:"/chat",className:`${l.link} ${"chat"===N?"selected":""}`,onClick:()=>y("chat"),style:"chat"===N?{color:P}:void 0,children:[o("chat"===N?u:j,{}),o("p",{className:l.buttonText,children:I(n("APP_CHAT_TITLE")||"Chatt")})]}),!n("HIDE_SAVE_BUTTON")&&e(r,{to:"/new",className:`${l.link} ${"save"===N?"selected":""}`,onClick:()=>y("save"),style:"save"===N?{color:P}:void 0,children:[o("save"===N?h:g,{}),o("p",{className:l.buttonText,children:I(n("APP_SAVE_TITLE")||"Spara")})]}),n("SHOW_SNAP_BUTTON")&&e(r,{to:"/snap",className:`${l.link} ${"snap"===N?"selected":""}`,onClick:()=>y("snap"),style:"snap"===N?{color:P}:void 0,children:[o("snap"===N?T:k,{}),o("p",{className:l.buttonText,children:I("Snap")})]}),n("SHOW_LOGBOOK_BUTTON")&&e(r,{to:"/log",className:`${l.link} ${"log"===N?"selected":""}`,onClick:()=>y("log"),style:"log"===N?{color:P}:void 0,children:[o("log"===N?v:b,{}),o("p",{className:l.buttonText,children:I(n("APP_LOGBOOK_TITLE")||"Loggbok")})]}),n("SHOW_CANVAS_BUTTON")&&e(r,{to:"/canvas",className:`${l.link} ${"canvas"===N?"selected":""}`,onClick:()=>y("canvas"),style:"canvas"===N?{color:P}:void 0,children:[o("canvas"===N?x:O,{}),o("p",{className:l.buttonText,children:I("Kanvas")})]}),!n("HIDE_MENU_BUTTON")&&e(r,{to:"/menu",className:`${l.link} ${"menu"===N?"selected":""}`,onClick:()=>y("menu"),style:"menu"===N?{color:P}:void 0,children:[o("menu"===N?_:f,{}),o("p",{className:l.buttonText,children:I("Meny")})]})]})})};export{N as Footer,N as default};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Schema } from "../hooks/useObserveDataSchemas";
|
|
3
|
+
interface Message {
|
|
4
|
+
id: string;
|
|
5
|
+
content: string;
|
|
6
|
+
parentId?: string;
|
|
7
|
+
type?: string;
|
|
8
|
+
createdAt: Date;
|
|
9
|
+
}
|
|
10
|
+
interface GenericJsonRendererProps {
|
|
11
|
+
schema: Schema;
|
|
12
|
+
item: Message;
|
|
13
|
+
onPhotoUpdate?: (newPhoto: string) => void;
|
|
14
|
+
onStatusUpdate?: (isOpen: boolean) => void;
|
|
15
|
+
onUpdated?: (content: string) => void;
|
|
16
|
+
onSend?: (content: string, parentId?: string) => Promise<string>;
|
|
17
|
+
}
|
|
18
|
+
declare const GenericJsonRenderer: React.FC<GenericJsonRendererProps>;
|
|
19
|
+
export default GenericJsonRenderer;
|
|
20
|
+
//# sourceMappingURL=GenericJsonRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericJsonRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/GenericJsonRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,EAAE,MAAM,EAAc,MAAM,gCAAgC,CAAC;AAEpE,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,UAAU,wBAAwB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClE;AAED,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAoR3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as i,Fragment as t}from"react/jsx-runtime";import{useState as o,useEffect as n}from"react";import{Button as r}from"./Button.js";import{Text as l}from"./Text.js";import a from"../hooks/useLocalization.js";import s from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{FileThumbnail as c}from"./FileThumbnail.js";import{CodicentService as d}from"../services/codicent.js";import{TimePicker as m}from"./TimePicker.js";import{DatePicker as p}from"./DatePicker.js";import{ColorPicker as h}from"./ColorPicker.js";import{Image as g}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Dropdown as u}from"../node_modules/@fluentui/react-combobox/lib/components/Dropdown/Dropdown.js";import{Option as f}from"../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js";import{Switch as y}from"../node_modules/@fluentui/react-switch/lib/components/Switch/Switch.js";const b=({schema:b,item:v,onUpdated:j,onSend:w})=>{const S=new s(v.content),{mentions:x,tags:k}=S,[B,C]=o(S.data),[_,D]=o(B),[O,z]=o(!1),[I,N]=o(v.id),{t:T}=a();n((()=>{z(JSON.stringify(_)!==JSON.stringify(B))}),[_,B,z]);const U=()=>`${x.length>0?"@"+x.join(" @"):""} #${k.join(" #")}\n${JSON.stringify(_)}`;n((()=>{if(j){const e=U();j(e)}}),[v.content,_,j]),n((()=>console.log("Modified data:",_)),[_]);return e("div",{style:{display:"flex",flexDirection:"column",gap:20},children:[e("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[i(l,{size:600,children:b.title}),b["ui:options"]?.icon&&i(g,{src:d.getImageUrl(b["ui:options"]?.icon,32),alt:"icon",fit:"contain",width:32,height:32})]}),i(l,{children:b.description}),i("div",{style:{display:"flex",flexDirection:"column",gap:4},children:Object.keys(b.properties).map((o=>((o,n,r)=>{const{title:a,type:s,description:g,format:b,items:v,default:j}=n,w=!0===n.readonly,S=void 0!==_[o]?_[o]:j,x=e(t,{children:[i(l,{size:500,children:a}),i("br",{})]}),k=g?e(t,{children:[i(l,{children:g}),i("br",{})]}):null;switch(s){case"string":return e("div",!0===w?{style:{marginBottom:8},children:[i(l,{size:"title"===b?600:500,style:{display:"block"},children:a}),g&&i(l,{style:{display:"block",marginBottom:2},children:g}),"title"===b?null:i(l,{children:S||"N/A"})]}:"photo"===b?{style:{marginBottom:8},children:[x,k,i(c,{thumbnailSize:280,file:{id:S,filename:"",contentType:"image/png",createdAt:(new Date).toLocaleString()},getImageUrl:d.getImageUrl,onDelete:()=>r("")})]}:"color"===b?{style:{marginBottom:8},children:[x,k,i(h,{color:S,onChange:(e,i)=>r(i.str)})]}:"date"===b?{style:{marginBottom:8},children:[x,k,i(p,{value:S?new Date(S):void 0,onSelectDate:e=>r(e?.toISOString()||"")})]}:"time"===b?{style:{marginBottom:8},children:[x,k,i(m,{value:S,onTimeChange:(e,i)=>r(i?.toString()||"")})]}:{style:{marginBottom:8},children:[x,k,i("textarea",{value:S||"",onChange:e=>r(e.target.value),style:{width:"100%",minWidth:300,resize:"vertical",fontSize:16,padding:8},rows:Math.max(1,(S||"").split("\n").length)})]},o);case"boolean":return e("div","open"===b?{style:{marginBottom:8},children:[x,k,i(y,{checked:"true"===_[o]||!0===_[o],onChange:(e,i)=>r(i.checked),disabled:w})]}:{style:{marginBottom:8},children:[x,k,i(l,{children:S?"Yes":"No"})]},o);case"array":return e("div",{style:{marginBottom:8},children:[x,k,i(u,{value:S&&""!==S?S:j||void 0,onOptionSelect:(e,i)=>r(i.optionValue),disabled:w,children:(v?.enum||[]).map((e=>i(f,{value:e,children:e},e)))})]},o);default:return e("div",{style:{marginBottom:8},children:[x,k,i(l,{children:S||"N/A"})]},o)}})(o,b.properties[o],(e=>{"boolean"===b.properties[o].type&&(e=e.toString()),D({..._,[o]:e})}))))}),O&&!j&&e("div",{style:{display:"flex",flexDirection:"row",gap:10,justifyContent:"flex-end"},children:[i(r,{appearance:"secondary",disabled:!O,onClick:()=>D(B),children:T("Undo")}),i(r,{appearance:"primary",disabled:!O,onClick:()=>{const e=U();w?w(e,I).then((e=>{N(e),C(_),z(!1)})):j&&j(e)},children:T("Save")})]}),w&&j&&i("div",{children:i(r,{appearance:"primary",title:T("Skicka"),disabled:!O,icon:"SendFilled",onClick:()=>{const e=U();w&&w(e)},children:T("Spara")})})]})};export{b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as o}from"react/jsx-runtime";import{Link as
|
|
1
|
+
import{jsxs as e,jsx as o}from"react/jsx-runtime";import{Link as t}from"react-router-dom";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import i from"./VoiceIcon.js";import r from"./AudioIcon.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as s}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"../hooks/useLocalization.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import{makeStyles as a}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as m}from"../node_modules/@griffel/core/index.esm.js";import{tokens as p}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Image as n}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Title3 as l}from"../node_modules/@fluentui/react-text/lib/components/presets/Title3/Title3.js";import{Settings24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-13.js";const d=a({header:{...m.padding("14px"),textAlign:"center",position:"sticky",top:0,zIndex:1e3,alignItems:"center",height:"64px",display:"flex",justifyContent:"space-between"},logo:{height:"40px",shape:"circular"},link:{textDecoration:"none",color:"inherit"},headerItem:{display:"flex",alignItems:"center",gap:"16px"}}),j=({imageUrl:a,title:m,audio:j,voice:g})=>{const u=d(),h={backgroundColor:s("APP_HEADER_COLOR")||p.colorBrandBackground,color:s("APP_HEADER_TEXT_COLOR")||p.colorNeutralForegroundOnBrand};return e("header",{className:u.header,style:h,children:[e("div",{className:u.headerItem,children:[a&&o(n,{className:u.logo,alt:"Logo",src:a,height:40}),m&&o(l,{children:m})]}),e("div",{className:u.headerItem,children:[j&&s("SHOW_MICROPHONE_BUTTON")&&o(r,{audio:j,disabled:g?.isConnected}),g&&s("SHOW_VOICE_BUTTON")&&o(i,{voice:g,disabled:j?.isRecording}),s("SHOW_SETTINGS_BUTTON")&&o(t,{to:"/menu",className:u.link,children:o(c,{})})]})]})};export{j as Header};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useRef as o,useState as r,useEffect as n}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import
|
|
1
|
+
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useRef as o,useState as r,useEffect as n}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import i from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import{makeStyles as s}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Menu as a}from"../node_modules/@fluentui/react-menu/lib/components/Menu/Menu.js";import{MenuTrigger as c}from"../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/MenuTrigger.js";import{Button as l}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{MoreHorizontal24Regular as m}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";import{MenuPopover as p}from"../node_modules/@fluentui/react-menu/lib/components/MenuPopover/MenuPopover.js";import{MenuList as u}from"../node_modules/@fluentui/react-menu/lib/components/MenuList/MenuList.js";import{MenuItem as d}from"../node_modules/@fluentui/react-menu/lib/components/MenuItem/MenuItem.js";import{PrintRegular as h}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{tokens as g}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{DismissRegular as j,CopyRegular as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const b=s({container:{position:"relative",width:"100%",height:"100%"},iframe:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:1e3,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},iframe2:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:0,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},menuButton:{position:"absolute",top:"10px",right:"10px",zIndex:1100},menuPopover:{backgroundColor:g.colorNeutralBackground1,boxShadow:g.shadow16}}),w=({html:s,onDismiss:g})=>{const w=o(null),y=o(null),[v,x]=r(1),C=b(),{t:M}=i();n((()=>{const t=t=>{try{const e=t.contentDocument||t.contentWindow?.document;if(!e)return;if(e.getElementById("print-color-preserve-styles"))return;const o=e.createElement("style");o.id="print-color-preserve-styles",o.textContent="\n @media print {\n /* Force browsers to preserve colors when printing */\n * {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n color-adjust: exact !important;\n }\n \n /* Ensure backgrounds and colors are preserved */\n body, html {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n color-adjust: exact !important;\n }\n }\n ",e.head.appendChild(o)}catch(t){console.warn("Failed to inject print styles into iframe:",t)}},e=w.current,o=y.current;let r,n;return e&&(r=()=>t(e),e.addEventListener("load",r),"complete"===e.contentDocument?.readyState&&t(e)),o&&(n=()=>t(o),o.addEventListener("load",n),"complete"===o.contentDocument?.readyState&&t(o)),()=>{e&&r&&e.removeEventListener("load",r),o&&n&&o.removeEventListener("load",n)}}),[s]);return t("div",{className:C.container,onTouchStart:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));w.current?.setAttribute("data-initial-distance",r.toString()),w.current?.setAttribute("data-initial-scale",v.toString())}},onTouchMove:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=parseFloat(w.current?.getAttribute("data-initial-distance")||"0"),n=parseFloat(w.current?.getAttribute("data-initial-scale")||"1"),i=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));if(r>0){const t=Math.min(Math.max(n*(i/r),.5),3);x(t),w.current&&(w.current.style.transform=`scale(${t})`),y.current&&(y.current.style.transform=`scale(${t})`)}}},onTouchEnd:()=>{w.current?.removeAttribute("data-initial-distance"),w.current?.removeAttribute("data-initial-scale")},children:[e("iframe",{ref:w,className:C.iframe,title:"html",srcDoc:s}),e("iframe",{ref:y,className:C.iframe2,title:"html",srcDoc:s})," ",t(a,{children:[e(c,{children:e(l,{icon:e(m,{}),className:C.menuButton})}),e(p,{className:C.menuPopover,children:t(u,{children:[e(d,{icon:e(j,{}),onClick:g,children:M("Stäng")}),e(d,{icon:e(h,{}),onClick:()=>{w.current&&w.current.contentWindow?.print()},children:M("Skriv ut")}),e(d,{icon:e(f,{}),onClick:async()=>{if(y.current)try{const t=y.current,e=t.contentWindow,o=t.contentDocument||e?.document;if(!o||!e)return;o.querySelectorAll("canvas").forEach((t=>{const e=o.createElement("img");e.src=t.toDataURL("image/png"),e.style.cssText=window.getComputedStyle(t).cssText,e.width=t.width,e.height=t.height,t.parentNode?.insertBefore(e,t),t.parentNode?.removeChild(t)}));let r="";Array.from(o.styleSheets).forEach((t=>{try{Array.from(t.cssRules||[]).forEach((t=>{r+=t.cssText+"\n"}))}catch(t){console.warn("Could not access stylesheet",t)}}));o.body.querySelectorAll("*").forEach((t=>{const o=e.getComputedStyle(t);let r="";if(["fontFamily","fontSize","fontWeight","color","backgroundColor","margin","padding","border","textAlign","lineHeight","letterSpacing","display","width","height"].forEach((t=>{o[t]&&"initial"!==o[t]&&"none"!==o[t]&&"normal"!==o[t]&&(r+=`${String(t)}:${o[t]};`)})),r){const e=t.getAttribute("style")||"";t.setAttribute("style",e+r)}}));const n=o.createElement("style");n.textContent=r,o.head.appendChild(n);const i=o.documentElement.outerHTML,s=o.body.innerText,a=document.createElement("div");a.innerHTML=i;const c=window.location.href;if(a.querySelectorAll("img").forEach((t=>{!t.src||t.src.startsWith("http")||t.src.startsWith("data:")||(t.src=new URL(t.src,c).href)})),navigator.clipboard&&window.ClipboardItem){const t=new Blob([a.outerHTML],{type:"text/html"}),e=new Blob([s],{type:"text/plain"}),o=new ClipboardItem({"text/html":t,"text/plain":e});await navigator.clipboard.write([o])}else{const t=e.getSelection();if(t){t.removeAllRanges();const e=o.createRange();e.selectNodeContents(o.body),t.addRange(e),o.execCommand("copy"),t.removeAllRanges()}}}catch(t){console.error("Copy failed:",t),navigator.clipboard.writeText(s)}},children:M("Kopiera")})]})})]})]})};export{w as default};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface LanguageOption {
|
|
2
|
+
key: string;
|
|
3
|
+
name: string;
|
|
4
|
+
}
|
|
5
|
+
interface LanguageSelectorProps {
|
|
6
|
+
languages?: LanguageOption[];
|
|
7
|
+
defaultLanguage?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const LanguageSelector: React.FC<LanguageSelectorProps>;
|
|
10
|
+
export default LanguageSelector;
|
|
11
|
+
//# sourceMappingURL=LanguageSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguageSelector.d.ts","sourceRoot":"","sources":["../../../src/components/LanguageSelector.tsx"],"names":[],"mappings":"AAuCA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,qBAAqB;IAC7B,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAaD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0D5D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as a}from"react/jsx-runtime";import o from"../hooks/useLocalization.js";import{useState as n,useEffect as t}from"react";import{makeStyles as r}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Dropdown as l}from"../node_modules/@fluentui/react-combobox/lib/components/Dropdown/Dropdown.js";import{Option as s}from"../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js";const u=r({container:{marginTop:"16px",marginBottom:"16px"},label:{fontSize:"14px",fontWeight:"600",marginBottom:"8px"}}),m=[{key:"en",name:"English"},{key:"sv",name:"Svenska"},{key:"de",name:"Deutsch"},{key:"dk",name:"Dansk"},{key:"fr",name:"Français"},{key:"no",name:"Norsk"},{key:"zh",name:"中文"},{key:"pl",name:"Polski"}],i=e=>{if("undefined"!=typeof navigator&&navigator.language){const a=navigator.language.toLowerCase().split("-")[0];if(e.some((e=>e.key===a)))return a}return"en"},g=({languages:r=m,defaultLanguage:g="en"})=>{const c=u(),{t:d,currentLanguage:p,setCurrentLanguage:f}=o(),[k,y]=n((()=>localStorage.getItem("user_language")||"auto"));t((()=>{const e=localStorage.getItem("user_language");y(e&&"auto"!==e?e:"auto")}),[p]);const h=i(r),v=r.find((e=>e.key===h))?.name||"English";return e("div",{className:c.container,children:[a("div",{className:c.label,children:d("Language")}),e(l,{value:"auto"===k?`${d("Auto")} (${v})`:r.find((e=>e.key===k))?.name||d("Select language"),selectedOptions:[k],onOptionSelect:(e,a)=>{const o=a.value;if(y(o),"auto"===o){const e=i(r);localStorage.setItem("user_language","auto"),f(e)}else localStorage.setItem("user_language",o),f(o)},children:[e(s,{value:"auto",text:`${d("Auto")} (${v})`,children:[d("Auto")," (",v,")"]}),r.map((e=>a(s,{value:e.key,text:e.name,children:e.name},e.key)))]})]})};export{g as LanguageSelector,g as default};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/** Action configuration for a column, similar to app button actions */
|
|
3
|
+
export interface ColumnAction {
|
|
4
|
+
/** Icon component to display (e.g., from @fluentui/react-icons). Pass the component itself, not a string name. */
|
|
5
|
+
icon: React.ComponentType;
|
|
6
|
+
/** Tooltip text for the action icon */
|
|
7
|
+
tooltip?: string;
|
|
8
|
+
/** Callback when the action icon is clicked, receives the row data as context */
|
|
9
|
+
onClick: (rowData: Record<string, unknown>) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface ColumnDefinition {
|
|
12
|
+
key: string | string[];
|
|
13
|
+
title?: string;
|
|
14
|
+
hidden?: boolean;
|
|
15
|
+
hideOnMobile?: boolean;
|
|
16
|
+
maxWidth?: number;
|
|
17
|
+
type?: "file" | "checkbox" | undefined;
|
|
18
|
+
editable?: boolean;
|
|
19
|
+
filterable?: boolean;
|
|
20
|
+
/** Default sort direction for this column. If multiple columns have defaultSort, only the first one is used. */
|
|
21
|
+
defaultSort?: "asc" | "desc";
|
|
22
|
+
/** Optional action icon configuration. When set, displays an icon in the cell that triggers the callback with row data. */
|
|
23
|
+
action?: ColumnAction;
|
|
24
|
+
/** Optional formatter function to transform the cell value for display. Receives the raw value and returns the formatted string. */
|
|
25
|
+
format?: (value: unknown) => string;
|
|
26
|
+
}
|
|
27
|
+
export interface ListViewProps {
|
|
28
|
+
data: Record<string, unknown>[];
|
|
29
|
+
columns?: ColumnDefinition[];
|
|
30
|
+
canEdit?: boolean;
|
|
31
|
+
onEdit?: (item: Record<string, unknown>, index: number) => void;
|
|
32
|
+
onDelete?: (item: Record<string, unknown>, index: number) => void;
|
|
33
|
+
onToggleCheckbox?: (item: Record<string, unknown>, key: string | string[], newValue: boolean, index: number) => void;
|
|
34
|
+
onFilteredDataChange?: (filteredData: Record<string, unknown>[]) => void;
|
|
35
|
+
}
|
|
36
|
+
export declare const ListView: React.FC<ListViewProps>;
|
|
37
|
+
declare const _default: React.NamedExoticComponent<ListViewProps>;
|
|
38
|
+
export default _default;
|
|
39
|
+
//# sourceMappingURL=ListView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../../../src/components/ListView.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAgB5D,uEAAuE;AACvE,MAAM,WAAW,YAAY;IAC3B,kHAAkH;IAClH,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;IAC1B,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrD;AA2JD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gHAAgH;IAChH,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC7B,2HAA2H;IAC3H,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,oIAAoI;IACpI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrH,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;CAC1E;AAID,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8b5C,CAAC;;AAGF,wBAAoC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import n,{useMemo as i,useState as r,useEffect as l}from"react";import{CodicentService as a}from"../services/codicent.js";import c from"../hooks/useLocalization.js";import{makeStyles as d}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as s}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{Checkbox as p}from"../node_modules/@fluentui/react-checkbox/lib/components/Checkbox/Checkbox.js";import{Edit24Regular as h}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js";import{Delete24Regular as m}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-5.js";import{Dialog as u}from"../node_modules/@fluentui/react-dialog/lib/components/Dialog/Dialog.js";import{DialogSurface as f}from"../node_modules/@fluentui/react-dialog/lib/components/DialogSurface/DialogSurface.js";import{DialogBody as x}from"../node_modules/@fluentui/react-dialog/lib/components/DialogBody/DialogBody.js";import{DialogTitle as g}from"../node_modules/@fluentui/react-dialog/lib/components/DialogTitle/DialogTitle.js";import{DialogContent as b}from"../node_modules/@fluentui/react-dialog/lib/components/DialogContent/DialogContent.js";import{Tooltip as y}from"../node_modules/@fluentui/react-tooltip/lib/components/Tooltip/Tooltip.js";const k=d({container:{width:"100%",overflowX:"auto",userSelect:"text"},table:{width:"100%",borderCollapse:"collapse",backgroundColor:"#ffffff",fontSize:"14px",tableLayout:"fixed",userSelect:"text"},th:{textAlign:"left",padding:"12px 8px",borderBottom:"2px solid #e0e0e0",fontWeight:"600",backgroundColor:"#f5f5f5",position:"sticky",top:0,zIndex:1,cursor:"pointer",userSelect:"none","&:hover":{backgroundColor:"#e8e8e8"}},td:{padding:"12px 8px",borderBottom:"1px solid #e0e0e0",verticalAlign:"top",wordWrap:"break-word",overflow:"hidden",userSelect:"text"},tdTruncated:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap","@media (hover: none)":{cursor:"pointer"}},tr:{"&:hover":{backgroundColor:"#f9f9f9"}},emptyState:{padding:"20px",textAlign:"center",color:"#666"},sortIndicator:{marginLeft:"4px",fontSize:"10px"},hideOnMobile:{"@media (max-width: 768px)":{display:"none"}},dialogContent:{wordWrap:"break-word",whiteSpace:"pre-wrap",maxHeight:"60vh",overflowY:"auto"},thumbnail:{maxWidth:"50px",maxHeight:"50px",objectFit:"cover"},tooltip:{maxWidth:"600px",whiteSpace:"normal",wordWrap:"break-word"},editButton:{minWidth:"auto",padding:"4px 8px"},actionsColumn:{width:"100px",textAlign:"center"},filterInput:{width:"100%",padding:"4px 8px",fontSize:"14px",border:"1px solid #e0e0e0",borderRadius:"4px",paddingRight:"28px"},filterWrapper:{position:"relative"},clearFilterButton:{position:"absolute",right:"6px",top:"50%",transform:"translateY(-50%)",minWidth:"auto",height:"20px",padding:"0 6px",lineHeight:"18px"},filterToolbar:{display:"flex",justifyContent:"flex-end",padding:"8px",gap:"8px"},cellWithAction:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"4px"},actionIcon:{minWidth:"auto",padding:"2px",marginLeft:"4px",flexShrink:0,cursor:"pointer",opacity:.7,"&:hover":{opacity:1}},cellText:{flex:1,overflow:"hidden",textOverflow:"ellipsis"}}),w=(e,t)=>{if("string"==typeof t)return e[t];for(const o of t)if(void 0!==e[o])return e[o]},C=({data:n,columns:d,canEdit:C,onEdit:S,onDelete:v,onToggleCheckbox:W,onFilteredDataChange:N})=>{const j=k(),{visibleColumns:$,defaultSortIndex:D,defaultSortDirection:I}=i((()=>{const e=n&&n.length>0?Array.from(new Set(n.flatMap((e=>Object.keys(e))))):[],t=(d||e.map((e=>({key:e})))).filter((e=>!e.hidden)),o=t.findIndex((e=>e.defaultSort));return{visibleColumns:t,defaultSortIndex:o,defaultSortDirection:o>=0&&t[o].defaultSort||null}}),[n,d]),[_,T]=r(D>=0?D:null),[A,B]=r(I),[M,O]=r(!1),[z,F]=r({title:"",text:""}),[L,H]=r({}),[E,P]=r(0),{t:Y}=c(),R=e=>e.title?Y(e.title):Array.isArray(e.key)?e.key[0]:e.key,J=e=>{const t=[];return e.hideOnMobile&&t.push(j.hideOnMobile),t.join(" ")},U=e=>null==e||"string"==typeof e&&e.startsWith("[")&&e.endsWith("]")?"":"object"==typeof e?JSON.stringify(e):String(e),X=[...n];if(null!==_&&A){const e=$[_];X.sort(((t,o)=>{const n=w(t,e.key),i=w(o,e.key);if(null==n)return 1;if(null==i)return-1;let r=0;return r="string"==typeof n&&"string"==typeof i?n.localeCompare(i):"number"==typeof n&&"number"==typeof i?n-i:String(n).localeCompare(String(i)),"asc"===A?r:-r}))}const q=i((()=>X.filter((e=>{for(const[t,o]of Object.entries(L)){const n=parseInt(t),i=$[n],r=w(e,i.key),l=U(r).toLowerCase(),a=o.toLowerCase();if(!l.includes(a))return!1}return!0}))),[X,L,$]);l((()=>{N&&N(q)}),[q,N]);const G="undefined"!=typeof window?window.innerHeight-250:600,K=Math.max(0,Math.floor(E/49)-5),Q=Math.min(q.length,Math.ceil((E+G)/49)+5),V=q.slice(K,Q),Z=49*q.length,ee=49*K,te=(e,t)=>{if(void 0!==e.id)return String(e.id);return`row-${t}-${(e=>{let t=0;for(let o=0;o<e.length;o++)t=(t<<5)-t+e.charCodeAt(o),t|=0;return Math.abs(t)})($.slice(0,3).map((t=>String(w(e,t.key)??""))).join("-"))}`};return n&&0!==n.length?t(o,{children:[e("div",{className:j.container,onScroll:e=>{P(e.currentTarget.scrollTop)},style:{maxHeight:"calc(100vh - 200px)",overflowY:"auto"},children:t("table",{className:j.table,children:[t("thead",{children:[t("tr",{children:[$.map(((o,n)=>{const i=o.maxWidth?{width:`${o.maxWidth}px`,maxWidth:`${o.maxWidth}px`}:{};return t("th",{className:`${j.th} ${J(o)}`.trim(),style:i,onClick:()=>(e=>{_===e?"asc"===A?B("desc"):"desc"===A&&(T(null),B(null)):(T(e),B("asc"))})(n),children:[R(o),_===n&&e("span",{className:j.sortIndicator,children:"asc"===A?"▲":"▼"})]},n)})),C&&e("th",{className:`${j.th} ${j.actionsColumn}`,style:{width:"100px"},children:Y("Actions")})]}),t("tr",{children:[$.map(((o,n)=>{const i=o.maxWidth?{width:`${o.maxWidth}px`,maxWidth:`${o.maxWidth}px`}:{};return e("th",{className:J(o),style:i,children:o.filterable&&t("div",{className:j.filterWrapper,children:[e("input",{type:"text",className:j.filterInput,placeholder:Y("Filter")+"...",value:L[n]||"",onChange:e=>((e,t)=>{H((o=>{const n={...o};return""===t.trim()?delete n[e]:n[e]=t,n}))})(n,e.target.value),onClick:e=>e.stopPropagation()}),(L[n]||"").length>0&&e(s,{appearance:"subtle",className:j.clearFilterButton,onClick:e=>{e.stopPropagation(),(e=>{H((t=>{const o={...t};return delete o[e],o}))})(n)},children:"×"})]})},n)})),C&&e("th",{className:j.actionsColumn})]})]}),t("tbody",{children:[K>0&&e("tr",{style:{height:`${ee}px`},children:e("td",{colSpan:$.length+(C?1:0),style:{padding:0,border:"none"}})}),V.map(((o,n)=>{const i=o._index,r="number"==typeof i?i:K+n;return t("tr",{className:j.tr,children:[$.map(((n,i)=>{const l=w(o,n.key),c=n.format?n.format(l):U(l),d=n.maxWidth?`${j.td} ${j.tdTruncated} ${J(n)}`.trim():`${j.td} ${J(n)}`.trim(),h=()=>{window.matchMedia("(hover: hover)").matches||n.maxWidth&&c.length>0&&(F({title:R(n),text:c}),O(!0))};if("file"===n.type&&c)return e("td",{className:d,onClick:h,children:e("a",{href:a.getFileUrl(c),target:"_blank",rel:"noopener noreferrer",children:Y("Download")})},i);if("checkbox"===n.type){return e("td",{className:d,children:e(p,{checked:!0===l||"true"===l||"yes"===l||"1"===l,onChange:(e,t)=>{W&&W(o,n.key,!0===t.checked,r)}})},i)}const m=()=>n.maxWidth&&c.length>0?e(y,{content:{children:c,style:{maxWidth:"600px",whiteSpace:"normal"}},relationship:"description",children:e("span",{children:c})}):c;return e("td",{className:d,onClick:h,children:n.action?t("div",{className:j.cellWithAction,children:[e("span",{className:j.cellText,children:m()}),(()=>{if(!n.action)return null;const t=n.action,i=n.action.icon,r=e(s,{appearance:"subtle",icon:e(i,{}),className:j.actionIcon,onClick:e=>{e.stopPropagation(),t.onClick(o)},size:"small"});return t.tooltip?e(y,{content:Y(t.tooltip),relationship:"label",children:r}):r})()]}):m()},i)})),C&&(S||v)&&e("td",{className:`${j.td} ${j.actionsColumn}`,children:t("div",{style:{display:"flex",gap:"4px",justifyContent:"center"},children:[S&&e(s,{appearance:"subtle",icon:e(h,{}),className:j.editButton,onClick:()=>S(o,r),title:Y("Edit")}),v&&e(s,{appearance:"subtle",icon:e(m,{}),className:j.editButton,onClick:()=>v(o,r),title:Y("Delete")})]})})]},te(o,r))})),Q<q.length&&e("tr",{style:{height:Z-ee-49*V.length+"px"},children:e("td",{colSpan:$.length+(C?1:0),style:{padding:0,border:"none"}})})]})]})}),e(u,{open:M,onOpenChange:(e,t)=>O(t.open),children:e(f,{children:t(x,{children:[e(g,{children:z.title}),e(b,{className:j.dialogContent,children:z.text})]})})})]}):e("div",{className:j.emptyState,children:Y("No data to display")})};var S=n.memo(C);export{C as ListView,S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useEffect as
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useEffect as r}from"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as a}from"./Textarea.js";import{Button as i}from"./Button.js";import"./CompoundButton.js";import{Spinner as s}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import n from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{FileThumbnail as p}from"./FileThumbnail.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import m from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import c from"../hooks/useToaster.js";import{makeStyles as d}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as g}from"../node_modules/@fluentui/tokens/lib/tokens.js";const u=d({container:{display:"flex",padding:"8px",width:"100%",position:"relative"},textareaWrapper:{position:"relative",flexGrow:1,display:"flex",flexDirection:"column",maxWidth:"100%"},textarea:{width:"100%",paddingBottom:"40px"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between"},leftButtonGroup:{display:"flex",gap:"4px"},actionButton:{color:g.colorNeutralForeground2,"&:hover":{color:g.colorBrandBackground,backgroundColor:"transparent"}},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:g.colorNeutralStroke1,borderRadius:"3px"}}}),f=({defaultText:d,onSend:g,onLocationChange:f,hasLocation:j,files:h=[],onFilesChange:v,onUploadFile:b,onUploadImage:x,onUploadCamera:y,getImageUrl:k,isUploading:w,rows:S,size:C,disableSend:T,placeholder:B,onChange:_,onImagePasted:D,onHandleDefaultFiles:N})=>{const[F,I]=o(""),[L,z]=o([]),A=u(),U=c(),{t:P}=m();r((()=>{_?.(F)}),[F,_]),r((()=>{const e=new n(d||"");I(e.content||""),z(e.tags||[]),e.files.length>0&&N?.(e.files)}),[d]);const W=async()=>{if(""===F.trim()&&0===h.length)return void U.notify(P("Meddelandet får inte vara tomt"),"","","error");const e=L.length>0?`#${L.join(" #")} `:"#log ";g(e+F),I("");const t=new n(d||"");z(t.tags||[]),v?.([])};return e("div",{className:A.container,onDrop:async e=>{if(e.preventDefault(),!v)return;const t=Array.from(e.dataTransfer.files);if(t.length>0)if(D&&t.every((e=>e.type&&e.type.startsWith("image/"))))for(const e of t)D(e);else v(t)},onDragOver:e=>{e.preventDefault()},children:t("div",{className:A.textareaWrapper,children:[k&&h.length>0&&t("div",{className:A.fileList,children:[h.map((t=>e(p,{file:t,getImageUrl:k,onDelete:()=>{return e=t.id,void v?.(h.filter((t=>t.id!==e)));var e}},t.id))),w&&e(s,{})]}),e(a,{size:"large",resize:"vertical",rows:S||7,value:F,onChange:e=>I(e.target.value),placeholder:B||P("Skriv vad du vill spara här..."),onKeyDown:e=>{!0!==T?"Enter"!==e.key||e.shiftKey||(e.preventDefault(),W()):"Enter"===e.key&&e.ctrlKey&&(e.preventDefault(),W())},onPaste:e=>{if(!v&&!D)return;const t=e.clipboardData.items;for(const o of t)if("file"===o.kind){const t=o.getAsFile();t&&(D&&t.type.startsWith("image/")?(e.preventDefault(),D(t)):v&&(e.preventDefault(),v([t])))}},className:A.textarea}),t("div",{className:A.actionButtonRow,children:[t("div",{className:A.leftButtonGroup,children:[b&&e(i,{appearance:"transparent",icon:x?"AttachRegular":"AddRegular",size:"small",title:P("Lägg till fil"),onClick:b,className:A.actionButton}),x&&e(i,{appearance:"transparent",icon:"ImageRegular",size:"small",title:P("Lägg till bild"),onClick:x,className:A.actionButton}),y&&e(i,{appearance:"transparent",icon:"CameraRegular",size:"small",title:P("Ta kort"),onClick:y,className:A.actionButton}),f&&e(i,{appearance:"transparent",icon:j?"LocationFilled":"LocationRegular",size:"small",title:P("Spara plats"),onClick:()=>f(!j),className:A.actionButton})]}),e(i,{appearance:l("SHOW_SAVE_BUTTON_TEXT")?"primary":"subtle",onClick:W,icon:"SendFilled",iconPosition:"before",title:P("Spara"),size:C||(l("SHOW_SAVE_BUTTON_TEXT")?"small":"large"),children:l("SHOW_SAVE_BUTTON_TEXT")&&e("span",{children:P("Spara")})})]})]})})};export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as o,useRef as i,useEffect as r}from"react";import{useNavigate as n}from"react-router-dom";import{CodicentService as s}from"../services/codicent.js";import a from"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import m from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as o,useRef as i,useEffect as r}from"react";import{useNavigate as n}from"react-router-dom";import{CodicentService as s}from"../services/codicent.js";import a from"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import m from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"./Content.js";import"./Page.js";import"../pages/QrScan.js";import c from"../hooks/useLocalization.js";import{FileThumbnail as p}from"./FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import{makeStyles as u}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Card as g}from"../node_modules/@fluentui/react-card/lib/components/Card/Card.js";import{Switch as h}from"../node_modules/@fluentui/react-switch/lib/components/Switch/Switch.js";import{FullScreenMaximizeRegular as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-2.js";import{ArrowCollapseAllRegular as j,ArrowExpandAllRegular as x}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";import{CardHeader as b}from"../node_modules/@fluentui/react-card/lib/components/CardHeader/CardHeader.js";import{Skeleton as S}from"../node_modules/@fluentui/react-skeleton/lib/components/Skeleton/Skeleton.js";import{SkeletonItem as w}from"../node_modules/@fluentui/react-skeleton/lib/components/SkeletonItem/SkeletonItem.js";import{Caption1 as k}from"../node_modules/@fluentui/react-text/lib/components/presets/Caption1/Caption1.js";import{tokens as _}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Edit20Regular as O}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js";const I=u({iframe:{border:"none",width:"100%",height:"100%"},main:{gap:"36px",display:"flex",flexDirection:"column",flexWrap:"wrap"},card:{minWidth:"300px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",maxHeight:"11em",borderRadius:"10px",position:"relative"},expandedCard:{minWidth:"320px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",borderRadius:"10px",position:"relative"},text:{margin:"0.5em",whiteSpace:"normal",fontSize:"larger"},caption:{color:_.colorNeutralForeground3},headerImage:{borderRadius:"4px",maxWidth:"44px",maxHeight:"44px"},rectangle:{margin:0,top:"-5px",left:"-2px",width:"5px",position:"absolute",height:"100%"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:_.colorNeutralStroke1,borderRadius:"3px"}},htmlButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},headerButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},iconButtonRow:{position:"absolute",top:"0.5em",right:"0.5em",display:"flex",alignItems:"center",gap:"0.5em",zIndex:2},content:{overflow:"hidden",transition:"max-height 0.3s ease-out",userSelect:"text"},truncated:{maxHeight:"10em"},header:{display:"flex",flexDirection:"row",gap:"0.5em",alignItems:"center"},todoSwitch:{transform:"scale(0.8)","& .fui-Switch__label":{fontSize:"0.75rem"}}}),C=({header:u,description:_,timestamp:C,text:v,image:E,tags:N,id:T,fileIds:y,codicentService:A,busy:B,onEdit:L,onShowHtmlPreview:F,maxHeightPx:P})=>{const H=I(),R=n(),[D,G]=o(!1),[M,z]=o(!1),[K,W]=o("unknown"),[$,U]=o(!1),Q=i(null),V=Object.keys(d("LOGBOOK_TAG_DEFINITIONS")),Y=V.find((e=>N.includes(e)))||(y.length>0?V.find((e=>"file"===e)):void 0),[X,q]=o([]),J=N.includes("todo"),{t:Z}=c(),ee=["TYPE","CUSTOMER","CONTACT","SALESPERSON","MESSAGE","COMPANY","PHONE","EMAIL","WEBSITE","INFO","FÖRETAG","ROLE","KONTAKT"],te=[Z("Typ"),Z("Kund"),Z("Kontakt"),Z("Säljare"),Z("Meddelande"),Z("Företag"),Z("Telefon"),Z("E-post"),Z("Hemsida"),Z("Info"),Z("Företag"),Z("Roll"),Z("Kontakt")];r((()=>{Promise.all(y.map((e=>A.getFileInfo(e)))).then((e=>{q(e)}))}),[A,q,y]),r((()=>{const e=()=>{if(Q.current){const e=P??100,t=Q.current.scrollHeight>e+(X.length>0?-72:0);z(t)}};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[v,X,P]),r((()=>{if(J){(async()=>{try{const e=await A.getTodoStatus(T);W(e)}catch(e){console.error("Error loading todo status:",e),W("unknown")}})()}}),[J,T,A]);const oe=()=>G(!D),ie=N.includes("chat")&&(v.includes("#function_result")||v.includes("#finish_reason_function_call")),re=e=>{const t=e.indexOf("```html");if(-1===t)return e;const o=e.indexOf("```",t+7);if(-1===o)return e.substring(t+7);return e.substring(t+7,o)},ne=new m(v).data,se=Y&&d("LOGBOOK_TAG_DEFINITIONS")[Y].editable,ae=Y&&d("LOGBOOK_TAG_DEFINITIONS")[Y].imageSize||void 0;return e(g,{className:D?H.expandedCard:H.card,style:{backgroundColor:d("MESSAGE_HIDE_BAR")?Y?d("LOGBOOK_TAG_DEFINITIONS")[Y].color:d("APP_HEADER_COLOR")||"#eee":"#eee",maxHeight:!D&&P?`${P}px`:void 0},onClick:N.includes("chat")?e=>{N.includes("chat")&&(e&&e.stopPropagation(),R("/chat?id="+T))}:void 0,children:[!d("MESSAGE_HIDE_BAR")&&t("div",{className:H.rectangle,style:{backgroundColor:Y?d("LOGBOOK_TAG_DEFINITIONS")[Y].color:d("APP_HEADER_COLOR")||void 0}}),e("div",{className:H.iconButtonRow,children:[J&&t(h,{className:H.todoSwitch,checked:"done"===K,onChange:(e,t)=>(async e=>{if(!$){U(!0);try{const t=e?"done":"undone";await A.updateTodoStatus(T,t)&&W(t)}catch(e){console.error("Error updating todo status:",e)}finally{U(!1)}}})(t.checked),disabled:$||"unknown"===K,label:Z("done"===K?"Done":"Todo")}),se&&L&&t(O,{className:H.htmlButton,onClick:()=>L()}),F&&!se&&N.includes("html")&&t(f,{className:H.htmlButton,onClick:e=>{e.stopPropagation(),F(re(v))}}),M&&!N.includes("chat")&&D&&t(j,{className:H.headerButton,onClick:oe}),M&&!N.includes("chat")&&!D&&t(x,{className:H.headerButton,onClick:oe})]}),t(b,{image:E?t("img",{className:H.headerImage,src:"app_logo.svg",alt:"User"}):null,header:B?t(S,{style:{width:"50%"},children:t(w,{})}):e("div",{className:H.header,children:[t(l,{weight:"semibold",children:u}),C&&t(l,{weight:"regular",children:C})]}),description:t(k,{className:H.caption,children:_})}),e("div",{ref:Q,className:`${H.content} ${D?"":H.truncated}`,style:{maxHeight:!D&&P?`${P}px`:void 0},children:[X.length>0&&t("div",{className:H.fileList,children:X.map((e=>t(p,{file:e,thumbnailSize:ae,getImageUrl:s.getImageUrl,onClick:()=>{e.contentType.startsWith("image")?R(`/image?id=${T}&file=${e.id}`):s.downloadFile(e)}},e.id)))}),B?e(S,{style:{width:"100%"},children:[t(w,{}),t(w,{}),t(w,{}),t(w,{}),t(w,{})]}):t("div",{className:H.text,children:N.includes("html")?t("iframe",{className:H.iframe,title:"html",srcDoc:re(v),sandbox:"allow-same-origin allow-scripts"}):N.includes("crm")&&0===Object.keys(ne).length?t(a,{content:ie?"*"+Z("Tänker")+"...*":ne?(()=>{const e=new RegExp(`(${ee.join("|")})\\s*:\\s*`,"gi");return v.replace(e,((e,t)=>{const o=ee.indexOf(t.toUpperCase());-1===o&&console.log("Field not found:",t);return`\n**${-1!==o?te[o]:t}:** `})).trim()})():v}):t(a,{content:ie?"*"+Z("Tänker")+"...*":ne&&ne&&Object.keys(ne).length>0?Object.keys(ne).map((e=>{const t=ee.indexOf(e.toUpperCase());return`**${-1!==t?te[t]:e}:** ${ne[e]}\n`})).join("\n"):v})})]})]})};export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OfflineMessage.d.ts","sourceRoot":"","sources":["../../../src/components/OfflineMessage.tsx"],"names":[],"mappings":"AAiDA;;GAEG;AACH,QAAA,MAAM,cAAc,+CAoBnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as o}from"react/jsx-runtime";import t from"../hooks/useLocalization.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as r}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{tokens as i}from"../node_modules/@fluentui/tokens/lib/tokens.js";const l=n({container:{position:"fixed",top:"0",left:"0",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",width:"100vw",backgroundColor:i.colorNeutralBackground1,padding:"20px",textAlign:"center",zIndex:"9999"},icon:{fontSize:"64px",marginBottom:"20px",color:i.colorPaletteRedBorder1},title:{fontSize:"24px",fontWeight:"600",marginBottom:"12px",color:i.colorNeutralForeground1},message:{fontSize:"16px",color:i.colorNeutralForeground2,marginBottom:"24px",maxWidth:"400px"}}),a=()=>{const n=l(),{t:i}=t();return e("div",{className:n.container,role:"alert",children:[o("div",{className:n.icon,children:"📡"}),o("h1",{className:n.title,children:i("Du är offline")}),o("p",{className:n.message,children:i("Kontrollera din internetanslutning och försök igen. Appen kräver en aktiv anslutning för att fungera.")}),o(r,{appearance:"primary",onClick:()=>{window.location.reload()},"aria-label":i("Försök igen"),children:i("Försök igen")})]})};export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as i,useEffect as r}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"./QrCodeDialog.js";import"./QrScanner.js";import s from"../hooks/useLocalization.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../pages/QrScan.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import{makeStyles as a}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Image as m}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Input as n}from"../node_modules/@fluentui/react-input/lib/components/Input/Input.js";import{Button as p}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{ArrowUndo20Regular as l}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-1.js";import{Edit20Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js";import{Text as u}from"../node_modules/@fluentui/react-text/lib/components/Text/Text.js";const d=a({container:{display:"flex",flexDirection:"row",alignItems:"start",justifyContent:"start",gap:"1rem",marginBottom:"1rem"},properties:{display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"center",gap:"0.5rem",width:"100%"},editButton:{marginLeft:"0.5rem"},saveButton:{marginTop:"0.3rem"}}),j=({state:a})=>{const j=d(),{isAuthenticated:g,isLoading:h,user:f,nickname:v}=a.auth,[C,b]=i(),[I,x]=i(!1),[y,w]=i(!1),[_,k]=i(""),[S,B]=i(""),{t:M}=s();r((()=>{a.service.getUserInfo(v).then(b)}),[a.service,v]);const z=()=>{k(C?.name||f?.name||""),B(C?.email||f?.email||""),x(!1),w(!1)},A=async e=>{const t=await a.service.updateUserInfo({nickname:v,name:e.name,email:e.email||""});b(t)};return h?e("div",{children:M("Laddar...")}):g&&f&&t("div",{className:j.container,children:[e(m,{shape:"circular",width:100,src:C?.picture||f.picture,alt:f.name}),t("div",{className:j.properties,children:[e("h2",{children:I?e(o,{children:e(n,{type:"text",value:_,onChange:e=>{k(e.target.value)},contentAfter:e(p,{icon:e(l,{}),size:"small",onClick:z})})}):t(o,{children:[C?.name||f.name,e(p,{className:j.editButton,icon:e(c,{}),size:"small",onClick:()=>{x(!0),k(C?.name||f?.name||"")}})]})}),t(u,{children:[e(o,y?{children:e(n,{type:"text",value:S,onChange:e=>{B(e.target.value)},contentAfter:e(p,{icon:e(l,{}),size:"small",onClick:z})})}:{children:C?.email||f.email}),(I||y)&&e("div",{children:e(p,{className:j.saveButton,appearance:"primary",size:"small",onClick:()=>{x(!1),w(!1),A({...C,name:_,email:S})},children:"Spara"})})]})]})]})};export{j as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import"./Markdown.js";import"./Textarea.js";import{Button as r}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as i,DialogTitle as e,DialogContent as s,DialogActions as p}from"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"./Content.js";import"./Page.js";import"../pages/QrScan.js";import"../hooks/useLocalization.js";import"./FileThumbnail.js";import"react-dom/client";import"react-router-dom";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import"../hooks/useAppStyles.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./QrCodeDialog.js";import"./QrScanner.js";import"./OfflineMessage.js";import"./LanguageSelector.js";import"./ListView.js";import"./RecordModal.js";import"./BulkUploadDialog.js";const a=({open:a,onYes:m,onNo:j,title:n,content:l})=>o(i,{open:a,children:[t(e,{children:n}),t(s,{children:l}),o(p,{children:[t(r,{appearance:"secondary",onClick:j,children:"Nej"}),t(r,{type:"submit",appearance:"primary",onClick:m,children:"Ja"})]})]});export{a as default};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface QrScannerProps {
|
|
3
|
+
onScan?: (result: string) => void;
|
|
4
|
+
onError?: (error: string) => void;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
facingMode?: "user" | "environment";
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
declare const QrScanner: React.FC<QrScannerProps>;
|
|
11
|
+
export default QrScanner;
|
|
12
|
+
//# sourceMappingURL=QrScanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QrScanner.d.ts","sourceRoot":"","sources":["../../../src/components/QrScanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAsB9D,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2HvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useRef as t,useEffect as n,useCallback as a}from"react";import o from"../node_modules/jsqr/dist/jsQR.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";const i=c({container:{overflow:"hidden",width:"var(--qr-scanner-width)",height:"var(--qr-scanner-height)"},video:{width:"100%",height:"100%",objectFit:"contain"},canvas:{display:"none"}}),s=({onScan:c,onError:s,width:d=300,height:l=300,facingMode:u="environment",className:g})=>{const h=t(null),m=t(null),p=t(null),v=i();n((()=>{navigator.mediaDevices&&navigator.mediaDevices.getSupportedConstraints&&console.log("Supported constraints:",navigator.mediaDevices.getSupportedConstraints())}),[]);const f=a((async()=>{p.current&&(console.log("Stopping previous stream:",p.current),p.current.getTracks().forEach((e=>e.stop())),p.current=null);const e={video:{facingMode:u,width:{exact:d},height:{exact:l}},audio:!1};try{const r=await navigator.mediaDevices.getUserMedia(e);console.log("MediaStream obtained:",r),p.current=r,h.current&&h.current.srcObject!==r&&(h.current.srcObject=r,console.log("Video element srcObject set:",h.current.srcObject),h.current.onloadedmetadata=()=>{h.current?.play().then((()=>{console.log("Video is playing")})).catch((e=>{console.error("Error playing video:",e)}))})}catch(e){console.error("Error accessing camera:",e),s?.(e instanceof Error?e.message:"Failed to access camera")}}),[u,l,s,d]);return n((()=>(f(),()=>{p.current&&(console.log("Cleaning up stream:",p.current),p.current.getTracks().forEach((e=>e.stop())),p.current=null)})),[f]),n((()=>{if(!h.current||!m.current)return;const e=h.current,r=m.current,t=r.getContext("2d");if(!t)return;let n;const a=()=>{if(e.readyState===e.HAVE_ENOUGH_DATA){r.width=e.videoWidth,r.height=e.videoHeight,t.drawImage(e,0,0,r.width,r.height);const n=t.getImageData(0,0,r.width,r.height),a=o(n.data,n.width,n.height);a&&c?.(a.data)}n=requestAnimationFrame(a)};return a(),()=>{cancelAnimationFrame(n)}}),[c]),e("div",{className:`${v.container} ${g||""}`,style:{"--qr-scanner-width":"number"==typeof d?`${d}px`:d,"--qr-scanner-height":"number"==typeof l?`${l}px`:l},children:[r("video",{ref:h,className:v.video,playsInline:!0}),r("canvas",{ref:m,className:v.canvas})]})};export{s as default};
|