codicent-app-sdk 0.3.120 → 0.4.1
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
package/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|

|
|
5
|
+

|
|
5
6
|
|
|
6
7
|
**A comprehensive SDK for building AI-powered, chat-centric web applications with Codicent.**
|
|
7
8
|
|
|
@@ -9,35 +10,54 @@ Codicent App SDK provides React components, hooks, and utilities to help you qui
|
|
|
9
10
|
|
|
10
11
|
---
|
|
11
12
|
|
|
12
|
-
## 🚀 Quick Start
|
|
13
|
+
## 🚀 Quick Start (v2 - Simplified Bootstrap)
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install codicent-app-sdk
|
|
17
|
-
# or
|
|
18
|
-
yarn add codicent-app-sdk
|
|
19
|
-
```
|
|
15
|
+
**New in v0.4.0:** Create a complete Codicent app with a single function call!
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
```tsx
|
|
18
|
+
import { createCodicentApp } from 'codicent-app-sdk';
|
|
19
|
+
|
|
20
|
+
const app = createCodicentApp({
|
|
21
|
+
name: "My CRM",
|
|
22
|
+
apiBaseUrl: "https://codicent.com/",
|
|
23
|
+
buttons: [
|
|
24
|
+
{ title: "Customers", url: "./#/list?tag=customer2" },
|
|
25
|
+
{ title: "Quotes", url: "./#/list?tag=offertjson" },
|
|
26
|
+
{ title: "Chat", url: "./#/chat" },
|
|
27
|
+
],
|
|
28
|
+
listDefinitions: {
|
|
29
|
+
customer2: [
|
|
30
|
+
{ key: "name", title: "Name", filterable: true },
|
|
31
|
+
{ key: "email", title: "Email" },
|
|
32
|
+
{ key: "phone", title: "Phone" },
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
translations: {
|
|
36
|
+
en: { "Kunder": "Customers", "Offerter": "Quotes" },
|
|
37
|
+
sv: { "Customers": "Kunder", "Quotes": "Offerter" },
|
|
38
|
+
},
|
|
39
|
+
modules: {
|
|
40
|
+
sales: true,
|
|
41
|
+
voice: true,
|
|
42
|
+
search: true,
|
|
43
|
+
},
|
|
44
|
+
chatInstructions: "You are a helpful CRM assistant.",
|
|
45
|
+
});
|
|
24
46
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
// ...other config
|
|
29
|
-
});
|
|
30
|
-
```
|
|
47
|
+
// Render to DOM
|
|
48
|
+
app.render("#root");
|
|
49
|
+
```
|
|
31
50
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
That's it! You now have a fully configured Codicent vertical app with:
|
|
52
|
+
- ✅ Auth0 authentication
|
|
53
|
+
- ✅ Navigation buttons
|
|
54
|
+
- ✅ List views with filtering and sorting
|
|
55
|
+
- ✅ i18n support
|
|
56
|
+
- ✅ AI chat integration
|
|
57
|
+
- ✅ Module-based feature flags
|
|
37
58
|
|
|
38
59
|
---
|
|
39
60
|
|
|
40
|
-
|
|
41
61
|
## Installation
|
|
42
62
|
|
|
43
63
|
### From GitHub (Recommended)
|
|
@@ -47,17 +67,36 @@ npm install github:izaxon/codicent-app-sdk
|
|
|
47
67
|
yarn add github:izaxon/codicent-app-sdk
|
|
48
68
|
```
|
|
49
69
|
|
|
50
|
-
### From npm
|
|
70
|
+
### From npm
|
|
51
71
|
```bash
|
|
52
|
-
npm install
|
|
72
|
+
npm install codicent-app-sdk
|
|
53
73
|
# or
|
|
54
|
-
yarn add
|
|
74
|
+
yarn add codicent-app-sdk
|
|
55
75
|
```
|
|
56
76
|
|
|
77
|
+
---
|
|
57
78
|
|
|
58
79
|
## Usage
|
|
59
80
|
|
|
60
|
-
###
|
|
81
|
+
### Option 1: Simplified Bootstrap (v2 - Recommended)
|
|
82
|
+
|
|
83
|
+
Use `createCodicentApp()` for the fastest setup. This handles all initialization, routing, and authentication automatically.
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
import { createCodicentApp } from 'codicent-app-sdk';
|
|
87
|
+
|
|
88
|
+
const app = createCodicentApp({
|
|
89
|
+
name: "My App",
|
|
90
|
+
apiBaseUrl: "https://codicent.com/",
|
|
91
|
+
// ... config
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
app.render("#root");
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
See the [API Reference](#api-reference) below for all configuration options.
|
|
98
|
+
|
|
99
|
+
### Option 2: Manual Initialization (v1 - Still Supported)
|
|
61
100
|
|
|
62
101
|
Before using the SDK, initialize it with your app’s settings:
|
|
63
102
|
|
|
@@ -116,6 +155,114 @@ All API calls, including authentication, chat, file uploads, and data operations
|
|
|
116
155
|
|
|
117
156
|
📄 **For complete custom domain setup, see the [Custom Domain Configuration Guide](docs/CUSTOM_DOMAIN_GUIDE.md)**
|
|
118
157
|
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## API Reference
|
|
161
|
+
|
|
162
|
+
### `createCodicentApp(config)`
|
|
163
|
+
|
|
164
|
+
Creates a fully-configured Codicent app instance.
|
|
165
|
+
|
|
166
|
+
**Parameters:**
|
|
167
|
+
|
|
168
|
+
| Property | Type | Required | Description |
|
|
169
|
+
|----------|------|----------|-------------|
|
|
170
|
+
| `name` | `string` | ✅ | Application name |
|
|
171
|
+
| `apiBaseUrl` | `string` | ✅ | API base URL (e.g., "https://codicent.com/") |
|
|
172
|
+
| `appPrefix` | `string` | | App-specific URL prefix (defaults to kebab-cased name) |
|
|
173
|
+
| `userPrefix` | `string` | | User namespace prefix (default: "users") |
|
|
174
|
+
| `buttons` | `ButtonConfig[]` | | Navigation buttons |
|
|
175
|
+
| `listDefinitions` | `ListDefinitions` | | List view column definitions per tag |
|
|
176
|
+
| `translations` | `Translations` | | i18n translation maps by language |
|
|
177
|
+
| `defaultLanguage` | `string` | | Default language code (default: "en") |
|
|
178
|
+
| `modules` | `ModuleFlags` | | Feature module flags (sales, voice, forms, etc.) |
|
|
179
|
+
| `chatInstructions` | `string` | | AI chat system prompt |
|
|
180
|
+
| `voiceInstructions` | `string` | | AI voice system prompt |
|
|
181
|
+
| `auth0` | `Auth0Config` | | Auth0 configuration |
|
|
182
|
+
| `stripe` | `StripeConfig` | | Stripe configuration |
|
|
183
|
+
| `theme` | `ThemeConfig` | | Theme/branding configuration |
|
|
184
|
+
|
|
185
|
+
**Returns:** `CodicentApp` instance with:
|
|
186
|
+
- `render(container)` - Render app to a DOM element
|
|
187
|
+
- `unmount()` - Unmount the app
|
|
188
|
+
- `getConfig()` - Get current configuration
|
|
189
|
+
|
|
190
|
+
**Example:**
|
|
191
|
+
|
|
192
|
+
```tsx
|
|
193
|
+
const app = createCodicentApp({
|
|
194
|
+
name: "Sales CRM",
|
|
195
|
+
apiBaseUrl: "https://codicent.com/",
|
|
196
|
+
buttons: [
|
|
197
|
+
{ title: "Dashboard", url: "./#/" },
|
|
198
|
+
{ title: "Customers", url: "./#/list?tag=customer2" },
|
|
199
|
+
],
|
|
200
|
+
listDefinitions: {
|
|
201
|
+
customer2: [
|
|
202
|
+
{ key: "name", title: "Customer Name", filterable: true },
|
|
203
|
+
{ key: "email", title: "Email" },
|
|
204
|
+
],
|
|
205
|
+
},
|
|
206
|
+
modules: { sales: true, voice: false },
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
app.render("#root");
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## TypeScript Types
|
|
215
|
+
|
|
216
|
+
All public types are fully documented with JSDoc and exported from `codicent-app-sdk`:
|
|
217
|
+
|
|
218
|
+
```tsx
|
|
219
|
+
import type {
|
|
220
|
+
ButtonConfig,
|
|
221
|
+
ColumnDefinition,
|
|
222
|
+
ListDefinitions,
|
|
223
|
+
ModuleFlags,
|
|
224
|
+
Translations,
|
|
225
|
+
UserInfo,
|
|
226
|
+
DataMessage,
|
|
227
|
+
CodicentAppState,
|
|
228
|
+
// ... and more
|
|
229
|
+
} from 'codicent-app-sdk';
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
See [src/types/index.ts](src/types/index.ts) for the complete type definitions.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Components
|
|
237
|
+
|
|
238
|
+
### Standalone Components
|
|
239
|
+
|
|
240
|
+
The SDK exports several standalone React components that can be used independently:
|
|
241
|
+
|
|
242
|
+
#### `Chat`
|
|
243
|
+
|
|
244
|
+
AI chat interface component (exported from pages).
|
|
245
|
+
|
|
246
|
+
```tsx
|
|
247
|
+
import { Chat } from 'codicent-app-sdk';
|
|
248
|
+
|
|
249
|
+
<Chat />
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
For detailed usage, see [src/pages/Chat.tsx](src/pages/Chat.tsx).
|
|
253
|
+
|
|
254
|
+
#### `ListView`
|
|
255
|
+
|
|
256
|
+
Display tabular data with sorting, filtering, and actions. While ListView is currently in the `codicentapp` package, you can import the types from the SDK:
|
|
257
|
+
|
|
258
|
+
```tsx
|
|
259
|
+
import type { ColumnDefinition, ListViewProps } from 'codicent-app-sdk';
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
See [codicentapp/src/components/ListView.tsx](../codicentapp/src/components/ListView.tsx) for the reference implementation.
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
119
266
|
### CRUD Operations
|
|
120
267
|
|
|
121
268
|
The SDK provides comprehensive CRUD (Create, Read, Update, Delete) methods for managing structured data. For detailed documentation and examples, see:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.__module={exports:{}};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Simplified app bootstrap for codicent-app-sdk v2
|
|
3
|
+
* @module codicent-app-sdk/bootstrap
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
import { Root } from "react-dom/client";
|
|
7
|
+
import type { ButtonConfig, ListDefinitions, Translations, ModuleFlags } from "./types";
|
|
8
|
+
/**
|
|
9
|
+
* Complete app configuration for createCodicentApp()
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export interface CreateAppConfig {
|
|
13
|
+
/** Application name */
|
|
14
|
+
name: string;
|
|
15
|
+
/** API base URL (e.g., "https://codicent.com/" or custom domain) */
|
|
16
|
+
apiBaseUrl: string;
|
|
17
|
+
/** App-specific URL prefix (used in routing and namespacing) */
|
|
18
|
+
appPrefix?: string;
|
|
19
|
+
/** User namespace prefix */
|
|
20
|
+
userPrefix?: string;
|
|
21
|
+
/** Navigation buttons */
|
|
22
|
+
buttons?: ButtonConfig[];
|
|
23
|
+
/** List view column definitions per tag */
|
|
24
|
+
listDefinitions?: ListDefinitions;
|
|
25
|
+
/** i18n translations map */
|
|
26
|
+
translations?: Translations;
|
|
27
|
+
/** Default language code (e.g., "en", "sv") */
|
|
28
|
+
defaultLanguage?: string;
|
|
29
|
+
/** Feature module flags */
|
|
30
|
+
modules?: ModuleFlags;
|
|
31
|
+
/** AI chat instructions */
|
|
32
|
+
chatInstructions?: string;
|
|
33
|
+
/** AI voice instructions */
|
|
34
|
+
voiceInstructions?: string;
|
|
35
|
+
/** Auth0 configuration */
|
|
36
|
+
auth0?: {
|
|
37
|
+
domain: string;
|
|
38
|
+
clientId: string;
|
|
39
|
+
audience?: string;
|
|
40
|
+
};
|
|
41
|
+
/** Stripe configuration */
|
|
42
|
+
stripe?: {
|
|
43
|
+
publicKey: string;
|
|
44
|
+
priceId?: string;
|
|
45
|
+
trialDays?: number;
|
|
46
|
+
};
|
|
47
|
+
/** Theme/branding configuration */
|
|
48
|
+
theme?: {
|
|
49
|
+
headerColor?: string;
|
|
50
|
+
footerColor?: string;
|
|
51
|
+
buttonColor?: string;
|
|
52
|
+
logoUrl?: string;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* CodicentApp instance returned by createCodicentApp()
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
59
|
+
export interface CodicentApp {
|
|
60
|
+
/**
|
|
61
|
+
* Render the app to a DOM element
|
|
62
|
+
* @param container - DOM element or selector to render into
|
|
63
|
+
*/
|
|
64
|
+
render(container: HTMLElement | string): Root;
|
|
65
|
+
/**
|
|
66
|
+
* Unmount the app
|
|
67
|
+
*/
|
|
68
|
+
unmount(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current configuration
|
|
71
|
+
*/
|
|
72
|
+
getConfig(): CreateAppConfig;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create a Codicent app with the specified configuration.
|
|
76
|
+
*
|
|
77
|
+
* This is the recommended way to bootstrap a new Codicent vertical app.
|
|
78
|
+
* Pass a configuration object and call `.render()` to mount the app.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```tsx
|
|
82
|
+
* import { createCodicentApp } from "codicent-app-sdk";
|
|
83
|
+
*
|
|
84
|
+
* const app = createCodicentApp({
|
|
85
|
+
* name: "My CRM",
|
|
86
|
+
* apiBaseUrl: "https://codicent.com/",
|
|
87
|
+
* buttons: [
|
|
88
|
+
* { title: "Customers", url: "./#/list?tag=customer2" },
|
|
89
|
+
* { title: "Chat", url: "./#/chat" },
|
|
90
|
+
* ],
|
|
91
|
+
* listDefinitions: {
|
|
92
|
+
* customer2: [
|
|
93
|
+
* { key: "name", title: "Name", filterable: true },
|
|
94
|
+
* { key: "email", title: "Email" },
|
|
95
|
+
* ],
|
|
96
|
+
* },
|
|
97
|
+
* translations: {
|
|
98
|
+
* en: { "Kunder": "Customers" },
|
|
99
|
+
* sv: { "Customers": "Kunder" },
|
|
100
|
+
* },
|
|
101
|
+
* modules: { sales: true, voice: false },
|
|
102
|
+
* });
|
|
103
|
+
*
|
|
104
|
+
* app.render("#root");
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @param config - App configuration
|
|
108
|
+
* @returns CodicentApp instance with render() method
|
|
109
|
+
* @public
|
|
110
|
+
*/
|
|
111
|
+
export declare function createCodicentApp(config: CreateAppConfig): CodicentApp;
|
|
112
|
+
//# sourceMappingURL=bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAc,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAKpD,OAAO,KAAK,EAA6B,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAwBnH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0BAA0B;IAC1B,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,2BAA2B;IAC3B,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,mCAAmC;IACnC,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IAE9C;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,SAAS,IAAI,eAAe,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,CAsKtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=require("react"),t=require("react-dom/client"),r=require("react-router-dom"),n=require("./node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),o=require("./config/index.js"),i=require("./node_modules/@fluentui/tokens/lib/utils/createLightTheme.js"),a=require("./node_modules/@fluentui/react-provider/lib/components/FluentProvider/FluentProvider.js");const s={10:"#000000",20:"#10141C",30:"#172033",40:"#1E2E4B",50:"#233C64",60:"#284A7E",70:"#2D5A9A",80:"#3069B6",90:"#3779D1",100:"#4F89E1",110:"#6799EE",120:"#80A9F8",130:"#99BAFF",140:"#B5CBFF",150:"#CFDCFF",160:"#E7EEFF"};exports.createCodicentApp=function(u){let l=null,c=!1;if(!u.name)throw new Error("createCodicentApp: 'name' is required");if(!u.apiBaseUrl)throw new Error("createCodicentApp: 'apiBaseUrl' is required");const d={API_BASE_URL:u.apiBaseUrl,APP_NAME:u.name,APP_PREFIX:u.appPrefix||u.name.toLowerCase().replace(/\s+/g,"-"),USER_PREFIX:u.userPrefix||"users",DEFAULT_LANGUAGE:u.defaultLanguage||"en",TRANSLATIONS:u.translations,CHAT_INSTRUCTIONS:u.chatInstructions,REALTIME_VOICE_INSTRUCTIONS:u.voiceInstructions,MODULE_SALES:u.modules?.sales??!1,MODULE_VOICE:u.modules?.voice??!1,MODULE_FORMS:u.modules?.forms??!1,MODULE_SEARCH:u.modules?.search??!1,MODULE_QR:u.modules?.qr??!1,MODULE_SNAP:u.modules?.snap??!1,AUTH0_DOMAIN:u.auth0?.domain||"auth.codicent.com",AUTH0_CLIENT_ID:u.auth0?.clientId||"80STzWmmzN3Tgf76HgFRyv54keYmvnaw",AUTH0_AUDIENCE:u.auth0?.audience||"https://codicent.com/api",AUTH0_PROVIDER_SCOPE:"read:current_user update:current_user_metadata openid profile email",AUTH0_SCOPE:"read:current_user",STRIPE_PUBLIC_KEY:u.stripe?.publicKey||"",STRIPE_PRICE_ID:u.stripe?.priceId||"",STRIPE_TRIAL_PERIOD_DAYS:u.stripe?.trialDays||0,SUBSCRIPTION_NEEDED:!!u.stripe?.publicKey,APP_HEADER_COLOR:u.theme?.headerColor,APP_FOOTER_COLOR:u.theme?.footerColor,BUTTON_BACKGROUND_COLOR:u.theme?.buttonColor,APP_ICON_URL:u.theme?.logoUrl,APP_HEADER_ICON_URL:u.theme?.logoUrl,APP_CONFIG:{apps:{[u.appPrefix||u.name]:{buttons:u.buttons||[],tasks:[],voiceInstructions:u.voiceInstructions||"",chatInstructions:u.chatInstructions||"",listDefinitions:u.listDefinitions||{}}}}};o.initCodicentApp(d);const E=s,m={...i.createLightTheme(E),fontFamilyBase:"'Segoe UI', Roboto, 'Helvetica Neue', sans-serif"};return{render(o){if(c)return console.warn("createCodicentApp: App is already mounted. Call unmount() first."),l;const i="string"==typeof o?document.querySelector(o):o;if(!i)throw new Error(`createCodicentApp: Could not find container: ${o}`);return l=t.createRoot(i),l.render(e.createElement(e.StrictMode,null,e.createElement(n.Auth0Provider,{domain:d.AUTH0_DOMAIN,clientId:d.AUTH0_CLIENT_ID,authorizationParams:{redirect_uri:window.location.origin,audience:d.AUTH0_AUDIENCE,scope:d.AUTH0_PROVIDER_SCOPE,ui_locales:d.DEFAULT_LANGUAGE},cacheLocation:"localstorage",useRefreshTokens:!0},e.createElement(a.FluentProvider,{theme:m},e.createElement(r.HashRouter,null,e.createElement((()=>e.createElement("div",{style:{padding:"20px",fontFamily:"system-ui, sans-serif",maxWidth:"600px",margin:"40px auto"}},e.createElement("h1",null,`Welcome to ${u.name}`),e.createElement("p",null,"Your Codicent app is configured and ready."),e.createElement("p",null,"To use the full app UI, import and render your App component directly."),e.createElement("h2",null,"Configuration:"),e.createElement("pre",{style:{background:"#f5f5f5",padding:"10px",borderRadius:"4px",overflow:"auto"}},JSON.stringify({name:u.name,apiBaseUrl:u.apiBaseUrl,buttons:u.buttons?.length||0,modules:u.modules},null,2)))))))))),c=!0,l},unmount(){l&&(l.unmount(),l=null,c=!1)},getConfig:()=>u}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react");require("./Markdown.js"),require("./Textarea.js");var s=require("./Button.js");require("./CompoundButton.js");var i=require("./Text.js"),a=require("./Spinner.js");require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../services/codicent.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react");require("./Markdown.js"),require("./Textarea.js");var s=require("./Button.js");require("./CompoundButton.js");var i=require("./Text.js"),a=require("./Spinner.js");require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../services/codicent.js");var t=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js"),require("./Content.js"),require("./Page.js"),require("../pages/QrScan.js");var o=require("../hooks/useLocalization.js");require("./FileThumbnail.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./QrCodeDialog.js"),require("./QrScanner.js"),require("./OfflineMessage.js"),require("./LanguageSelector.js"),require("./ListView.js"),require("./RecordModal.js"),require("./BulkUploadDialog.js");var u=require("../node_modules/@griffel/react/makeStyles.esm.js"),l=require("../node_modules/@fluentui/react-utilities/lib/hooks/useId.js"),n=require("../node_modules/@fluentui/react-combobox/lib/components/Combobox/Combobox.js"),c=require("../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js");const j=u.makeStyles({root:{display:"grid",gridTemplateRows:"repeat(1fr)",justifyItems:"start",gap:"2px",maxWidth:"400px",padding:"8px"},combo:{width:"100%"},horizonal:{display:"flex",flexDirection:"row",verticalAlign:"middle"}});exports.default=u=>{const{id:d,options:q,title:p,placeholder:m,onChangeValue:g,value:x="",prompt:h,service:f}=u,b=l.useId(d+"-combo"),[v,w]=r.useState([...q||[]]),[C,S]=r.useState(),[y,_]=r.useState(!1),k=j(),{t:T}=o.default();r.useEffect((()=>{g(C)}),[C,g]);return e.jsxs("div",{id:d,className:k.root,children:[e.jsxs("div",{className:k.horizonal,children:[e.jsx(i.Text,{size:400,id:b,children:p}),h&&e.jsxs(e.Fragment,{children:[!y&&e.jsx(s.Button,{icon:"WandRegular",title:T("Autoskapa"),style:{fontSize:16,marginLeft:6},onClick:async()=>{_(!0),await(async e=>{if(e){const r=await f.chat(e);if(r){const e=new t.default(r.content).content;g(e)}}})(h),_(!1)},appearance:"transparent",size:"small"}),y&&e.jsx(a.Spinner,{size:"extra-small",style:{marginLeft:12},children:T("Arbetar...")})]})]}),e.jsxs(n.Combobox,{className:k.combo,"aria-labelledby":b,freeform:!0,placeholder:m||T("Välj..."),onChange:e=>{const r=e.target.value;S(r);const s=(q||[]).filter((e=>0===e.toLowerCase().indexOf(r.toLowerCase())));w(s)},onOptionSelect:(e,r)=>{r.optionText&&(q||[]).includes(r.optionText);S(r.optionText)},size:"large",value:x,children:[C?e.jsx(c.Option,{text:C,children:T("Sök efter ")+C},"freeform"):null,v.map((r=>e.jsx(c.Option,{children:r},r)))]})]})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react"),require("../services/codicent.js"),require("./Markdown.js"),require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js");var r=require("../utils/withWakeLock.js");require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js"),require("../
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react"),require("../services/codicent.js"),require("./Markdown.js"),require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js");var r=require("../utils/withWakeLock.js");require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("./QrScanner.js"),require("../hooks/useLocalization.js"),require("./OfflineMessage.js"),require("./LanguageSelector.js"),require("./ListView.js"),require("./RecordModal.js"),require("./BulkUploadDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var s=require("../hooks/useAppStyles.js"),i=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js");const u=r.default((({isSoundCaptured:r,stopRecording:u})=>{const{pointer:a}=s.default();return r?e.jsx(i.MicPulse24Filled,{onClick:u,className:a}):e.jsx(i.MicRecord24Filled,{onClick:u,className:a})}));exports.default=({audio:r,disabled:a})=>{const{isRecording:o,isSoundCaptured:t,startRecording:j,stopRecording:l}=r,{pointer:n}=s.default();return a?e.jsx(i.Mic24Regular,{}):o?e.jsx(u,{isSoundCaptured:t,stopRecording:l}):e.jsx(i.Mic24Regular,{onClick:()=>j(""),className:n})};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CodicentService } from "../services/codicent";
|
|
2
|
+
interface BulkUploadDialogProps {
|
|
3
|
+
project: string;
|
|
4
|
+
hidden: boolean;
|
|
5
|
+
onDismiss: () => void;
|
|
6
|
+
sendMessage: (text: string) => Promise<string | undefined>;
|
|
7
|
+
onUploaded?: () => void;
|
|
8
|
+
service: CodicentService;
|
|
9
|
+
tags?: string[];
|
|
10
|
+
title?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
dropText?: string;
|
|
13
|
+
}
|
|
14
|
+
declare const BulkUploadDialog: (props: BulkUploadDialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export default BulkUploadDialog;
|
|
16
|
+
//# sourceMappingURL=BulkUploadDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BulkUploadDialog.d.ts","sourceRoot":"","sources":["../../../src/components/BulkUploadDialog.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE3D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAkCD,QAAA,MAAM,gBAAgB,UAAW,qBAAqB,4CAkNrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),o=require("./Spinner.js"),r=require("../hooks/useLocalization.js"),n=require("./Button.js"),l=require("react"),a=require("../node_modules/@griffel/react/makeStyles.esm.js"),t=require("../node_modules/@griffel/core/index.esm.js"),s=require("../node_modules/@fluentui/tokens/lib/tokens.js"),i=require("../node_modules/@fluentui/react-dialog/lib/components/Dialog/Dialog.js"),c=require("../node_modules/@fluentui/react-dialog/lib/components/DialogSurface/DialogSurface.js"),d=require("../node_modules/@fluentui/react-dialog/lib/components/DialogBody/DialogBody.js"),u=require("../node_modules/@fluentui/react-dialog/lib/components/DialogTitle/DialogTitle.js"),g=require("../node_modules/@fluentui/react-dialog/lib/components/DialogContent/DialogContent.js"),p=require("../node_modules/@fluentui/react-message-bar/lib/components/MessageBar/MessageBar.js"),f=require("../node_modules/@fluentui/react-dialog/lib/components/DialogActions/DialogActions.js");const m=a.makeStyles({dropZone:{...t.shorthands.border("2px","dashed",s.tokens.colorNeutralStroke2),...t.shorthands.borderRadius(s.tokens.borderRadiusMedium),...t.shorthands.padding("2rem"),textAlign:"center",backgroundColor:s.tokens.colorNeutralBackground1,cursor:"pointer",transition:"all 0.2s ease-in-out","&:hover":{backgroundColor:s.tokens.colorNeutralBackground1Hover}},dropZoneActive:{...t.shorthands.border("2px","dashed",s.tokens.colorBrandBackground),backgroundColor:s.tokens.colorBrandBackground2},dropZoneText:{color:s.tokens.colorNeutralForeground2,fontSize:s.tokens.fontSizeBase300,marginBottom:"1rem"},fileInput:{display:"none"},fileList:{fontSize:"0.8rem",color:s.tokens.colorNeutralForeground3,marginTop:"0.5rem"}});exports.default=a=>{const[t,s]=l.useState(""),[h,k]=l.useState(!1),[j,D]=l.useState(""),[x,b]=l.useState(!1),[C,v]=l.useState([]),B=m(),S=l.useRef(null),{hidden:q,onDismiss:y,project:_,sendMessage:N,onUploaded:$,service:A,title:T,description:z,dropText:E}=a,{t:M}=r.default();l.useEffect((()=>{q&&(v([]),s(""),k(!1),D(""),b(!1),S.current&&(S.current.value=""))}),[q]);const P=l.useCallback((async e=>{0!==e.length&&(v(e),s(""))}),[]),U=l.useCallback((()=>{try{if(S.current?.files){const e=Array.from(S.current.files);P(e)}}catch{s(M("Error selecting files"))}}),[P,M]),Z=l.useCallback((e=>{e.preventDefault(),e.stopPropagation(),b(!0)}),[]),F=l.useCallback((e=>{e.preventDefault(),e.stopPropagation(),b(!1)}),[]),L=l.useCallback((e=>{e.preventDefault(),e.stopPropagation()}),[]),w=l.useCallback((e=>{e.preventDefault(),e.stopPropagation(),b(!1);const o=Array.from(e.dataTransfer.files);P(o)}),[P]),O=l.useCallback((()=>{S.current?.click()}),[]);return e.jsx(i.Dialog,{open:!q,onOpenChange:(e,o)=>!o.open&&y(),children:e.jsx(c.DialogSurface,{children:e.jsxs(d.DialogBody,{children:[e.jsx(u.DialogTitle,{children:T||M("Bulk Upload")}),e.jsxs(g.DialogContent,{children:[e.jsx("p",{children:z||M("Drag and drop files here or click to select files")}),e.jsxs("div",{className:`${B.dropZone} ${x?B.dropZoneActive:""}`,onDragEnter:Z,onDragLeave:F,onDragOver:L,onDrop:w,onClick:O,children:[e.jsx("div",{className:B.dropZoneText,children:x?M("Drop files here..."):C.length>0?M(`${C.length} ${1===C.length?"file":"files"} selected`):E||M("Drag and drop files here or click to select")}),!x&&C.length>0&&e.jsx("div",{className:B.fileList,children:C.map(((o,r)=>e.jsx("div",{children:o.name},r)))})]}),e.jsx("input",{ref:S,className:B.fileInput,title:"Upload",type:"file",name:"files",multiple:!0,onChange:U}),h&&e.jsx(o.Spinner,{size:"large",children:M("Uploading...")}),h&&e.jsxs("p",{children:[M("Uploading")," ",j]}),""!==t&&e.jsx(p.MessageBar,{intent:"error",children:t})]}),e.jsxs(f.DialogActions,{children:[e.jsx(n.Button,{onClick:y,children:M("Cancel")}),e.jsx(n.Button,{disabled:0===C.length||h,onClick:async()=>{if(0!==C.length){k(!0),s("");for(const e of C)try{const o=new FormData;o.append("file",e),D(e.name);const r=await A.uploadFile(e.name,o);if(!r){s(M("Error uploading file"));continue}const n=a.tags?a.tags.map((e=>`#${e}`)).join(" "):"#index #summarize",l=`@${_} ${n}\n\n${e.name}\n#file:${r}\n`;console.log("uploading file: "+l);if(!await N(l)){s(M("Error sending file"));continue}}catch(e){console.log(e),s(M("Error uploading file"))}k(!1),$&&$(),y()}else s(M("Please select files to upload"))},appearance:"primary",children:M("Upload")})]})]})})})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),i=require("./FileThumbnail.js"),t=require("../hooks/useStateWithLocalStorage.js");require("../services/codicent.js"),require("./Markdown.js");var s=require("./Textarea.js");require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var a=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),i=require("./FileThumbnail.js"),t=require("../hooks/useStateWithLocalStorage.js");require("../services/codicent.js"),require("./Markdown.js");var s=require("./Textarea.js");require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var a=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("./QrScanner.js");var o=require("../hooks/useLocalization.js");require("./OfflineMessage.js"),require("./LanguageSelector.js"),require("./ListView.js"),require("./RecordModal.js"),require("./BulkUploadDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var l=require("../hooks/useAppStyles.js"),n=require("../node_modules/@griffel/react/makeStyles.esm.js"),u=require("../node_modules/@fluentui/react-button/lib/components/Button/Button.js"),c=require("../node_modules/@fluentui/react-spinner/lib/components/Spinner/Spinner.js"),d=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js"),p=require("../node_modules/@griffel/core/mergeClasses.esm.js"),g=require("../node_modules/@fluentui/tokens/lib/tokens.js"),j=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js");const f=n.makeStyles({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:g.tokens.colorNeutralBackground2,borderRadius:g.tokens.borderRadiusMedium,"&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:g.tokens.colorNeutralStroke1,borderRadius:"3px"}},hiddenInput:{display:"none"},button:{color:g.tokens.colorNeutralForeground2,"&:hover":{color:g.tokens.colorBrandBackground,backgroundColor:"transparent"}}});exports.default=({onSend:n,disableSend:g,onSelectFiles:m,getImageUrl:q,getFileInfo:h,codicent:x,defaultText:b,rows:S,noMemory:_,selectAll:k,id:v})=>{const C=f(),[T,w]=t.default("chatInput-"+x,""),y=r.useRef(null),[D,N]=r.useState([]),[B,F]=r.useState([]),[E,O]=r.useState(!1),[I,P]=r.useState([]),{t:A}=o.default(),H=l.default();r.useEffect((()=>{b&&w(b)}),[w,b]),r.useEffect((()=>{!0===_&&w("")}),[_,w]);const R=()=>{if(""===T.trim()&&0===I.length)return;const e=D.length>0?" #"+D.join(" #"):"",r=B.length>0?"\n#file:"+B.join("\n#file:"):"";n(e+T+r),w(""),N([]),F([]),P([])};return e.jsxs("div",{className:C.inputContainer,children:[e.jsx("input",{title:A("Välj fil att ladda upp"),type:"file",ref:y,className:C.hiddenInput,onChange:async e=>{const r=e.target.files;if(r&&r.length>0&&m){O(!0);try{const e=await m(r),i=await Promise.all(e.map((e=>h(e))));F((r=>[...r,...e])),P((e=>[...e,...i]))}catch(e){console.error("Failed to upload files",e)}finally{O(!1),y.current&&(y.current.value="")}}},multiple:!0,accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx,.txt"}),I.length>0&&e.jsx("div",{className:C.fileList,children:I.map((r=>e.jsx(i.FileThumbnail,{file:r,getImageUrl:q,onDelete:()=>{return e=r.id,F((r=>r.filter((r=>r!==e)))),void P((r=>r.filter((r=>r.id!==e))));var e}},r.id)))}),e.jsxs("div",{className:C.textareaWrapper,onPaste:async e=>{for(const r of e.clipboardData.items)if(-1!==r.type.indexOf("image")){const i=r.getAsFile();if(i&&(e.preventDefault(),m))try{O(!0);const e=new DataTransfer;e.items.add(i);const r=await m(e.files),t=await Promise.all(r.map((e=>h(e))));F((e=>[...e,...r])),P((e=>[...e,...t]))}catch(e){console.error("Failed to upload pasted image",e)}finally{O(!1)}}},children:[e.jsx(s.Textarea,{size:"large",id:v||"chat-input",placeholder:A(a.getConfigValue("APP_CHAT_TEXT_PLACEHOLDER")||"Skriv ditt meddelande här..."),value:T,onChange:e=>w(e.target.value),onKeyDown:e=>{g||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),R())},autoFocus:!1,rows:S||4,onFocus:e=>{if(!0===k){e.target.select()}}}),e.jsxs("div",{className:C.actionButtonRow,children:[e.jsx("div",{children:!a.getConfigValue("HIDE_CHAT_ADD_FILE_BUTTON")&&m&&e.jsx(u.Button,{appearance:"subtle",size:"small",title:A("Lägg till fil"),icon:E?e.jsx(c.Spinner,{}):e.jsx(j.AddRegular,{}),onClick:()=>y.current?.click(),className:C.button})}),e.jsx(u.Button,{appearance:a.getConfigValue("SHOW_SEND_BUTTON_TEXT")?"primary":"subtle",size:a.getConfigValue("SHOW_SEND_BUTTON_TEXT")?"small":"large",title:A("Skicka"),disabled:g,icon:""===T.trim()&&0===I.length?e.jsx(d.SendRegular,{}):e.jsx(d.SendFilled,{}),onClick:R,className:a.getConfigValue("SEND_BUTTON_ROUND_BACKGROUND")?p.mergeClasses(H.roundButton,C.button):a.getConfigValue("SHOW_SEND_BUTTON_TEXT")?void 0:C.button,children:a.getConfigValue("SHOW_SEND_BUTTON_TEXT")&&e.jsx("span",{children:A("Skicka")})})]})]})]})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react"),require("../services/codicent.js");var r=require("./Markdown.js");require("./Textarea.js");var s=require("./Button.js");require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./Header.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react"),require("../services/codicent.js");var r=require("./Markdown.js");require("./Textarea.js");var s=require("./Button.js");require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./Header.js");var i=require("../utils/MessageContent.js");require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var t=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("./QrScanner.js");var a=require("../hooks/useLocalization.js");require("./OfflineMessage.js"),require("./LanguageSelector.js"),require("./ListView.js"),require("./RecordModal.js"),require("./BulkUploadDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var o=require("../node_modules/@griffel/react/makeStyles.esm.js"),u=require("../node_modules/@griffel/core/mergeClasses.esm.js"),n=require("../node_modules/@fluentui/tokens/lib/tokens.js"),l=require("../node_modules/@fluentui/react-text/lib/components/Text/Text.js"),d=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js");const g=o.makeStyles({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"}});exports.default=({sender:o,content:c,isNew:j,children:q,showSuggestions:p,onSuggestionClicked:m})=>{const f=g(),{t:C}=a.default();let x=[];if("bot"===o&&c.includes("#suggested_questions")){const e=c.split("#suggested_questions");c=e[0],x=e[1].split("\n").filter((e=>""!==e.trim())).map((e=>e.trim()))}const h=new i.default(c);let _=h.content;"user"===o&&h.content.includes("---")&&(_=h.content.split("---")[0]);const b=h.content.startsWith("Error code: ")?C("Ett fel uppstod 😟 => starta en ny chatt"):null;return e.jsx("div",{className:u.mergeClasses(f.message,"user"===o?f.user:f.bot),children:e.jsxs("div",{className:u.mergeClasses(f.messageContent,"user"===o?f.userMessage:f.botMessage,j&&f.newMessage),style:{backgroundColor:"user"===o?t.getConfigValue("CHAT_USER_BACKGROUND_COLOR")||n.tokens.colorBrandBackground:t.getConfigValue("CHAT_BOT_BACKGROUND_COLOR")||n.tokens.colorBrandBackground2,color:"user"===o?t.getConfigValue("CHAT_USER_TEXT_COLOR")||n.tokens.colorNeutralForegroundInverted:t.getConfigValue("CHAT_BOT_TEXT_COLOR")||n.tokens.colorNeutralForeground1},children:[e.jsxs(l.Text,{size:400,children:[b,!b&&e.jsx(r.default,{content:_}),h.files.length>0&&e.jsx(d.ChannelRegular,{}),p&&x&&x.length>0&&e.jsx("div",{style:{marginTop:"8px",display:"flex",gap:"8px",flexWrap:"wrap"},children:x.map(((r,i)=>e.jsx(s.Button,{size:"small",shape:"circular",onClick:()=>m?.(r),style:{textAlign:"left"},children:r},i)))})]}),q]})})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime");require("react"),require("../services/codicent.js"),require("./Markdown.js");var r=require("./Textarea.js"),i=require("./Button.js");require("./CompoundButton.js");var s=require("./Text.js");require("./Spinner.js");var a=require("./Label.js");require("./TextHeader.js"),require("./TypingIndicator.js");var l=require("./Dialog.js");require("./ChatInput.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js")
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime");require("react"),require("../services/codicent.js"),require("./Markdown.js");var r=require("./Textarea.js"),i=require("./Button.js");require("./CompoundButton.js");var s=require("./Text.js");require("./Spinner.js");var a=require("./Label.js");require("./TextHeader.js"),require("./TypingIndicator.js");var l=require("./Dialog.js");require("./ChatInput.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Footer.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("./QrScanner.js");var o=require("../hooks/useLocalization.js");require("./OfflineMessage.js"),require("./LanguageSelector.js"),require("./ListView.js"),require("./RecordModal.js"),require("./BulkUploadDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("react-router-dom"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var n=require("../node_modules/@griffel/react/makeStyles.esm.js"),t=require("../node_modules/@griffel/core/index.esm.js"),u=require("../node_modules/@fluentui/tokens/lib/tokens.js");const c=n.makeStyles({container:{display:"flex",flexDirection:"column",...t.shorthands.gap("12px")},section:{display:"flex",flexDirection:"column",...t.shorthands.gap("8px")},field:{display:"flex",flexDirection:"column",...t.shorthands.gap("4px")},fileItem:{display:"flex",alignItems:"center",...t.shorthands.gap("8px")},label:{fontWeight:u.tokens.fontWeightSemibold},textarea:{minHeight:"100px",resize:"vertical"},dialogSurface:{backgroundColor:u.tokens.colorNeutralBackground1,boxShadow:u.tokens.shadow16},dialogBody:{backgroundColor:"transparent"}});exports.CombinedPlaceholderDialog=({open:n,templateVariables:t,filePlaceholders:u,onTemplateVariablesChange:d,onFilePlaceholdersChange:j,onConfirm:p,onCancel:q,uploadFile:g})=>{const m=c(),{t:h}=o.default();return e.jsxs(l.Dialog,{open:n,children:[e.jsx(l.DialogTitle,{children:h("Fyll i information")}),e.jsx(l.DialogContent,{children:e.jsxs("div",{className:m.container,children:[t.length>0&&e.jsx("div",{className:m.section,children:t.map(((i,s)=>e.jsxs("div",{className:m.field,children:[e.jsx(a.Label,{className:m.label,children:i.name}),e.jsx(r.Textarea,{className:m.textarea,value:i.value,onChange:e=>{const r=[...t];r[s].value=e.target.value,d(r)}})]},s)))}),u.length>0&&e.jsx("div",{className:m.section,children:u.map(((r,a)=>e.jsxs("div",{className:m.fileItem,children:[e.jsx(s.Text,{weight:"semibold",children:r.description}),e.jsx(i.Button,{appearance:"primary",onClick:()=>(async e=>{const r=document.createElement("input");r.type="file";const i=await new Promise((e=>{r.onchange=r=>e(r.target.files),r.click()}));if(i&&i.length>0){const r=i[0],s=new FormData;s.append("file",r);const a=await g(r.name,s),l=[...u];l[e].fileId=a,j(l)}})(a),children:r.fileId?h("Fil vald"):h("Välj fil")})]},a)))})]})}),e.jsxs(l.DialogActions,{children:[e.jsx(i.Button,{appearance:"secondary",onClick:q,children:h("Avbryt")}),e.jsx(i.Button,{appearance:"primary",onClick:p,children:h("OK")})]})]})};
|
|
@@ -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
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("react/jsx-runtime"),e=require("react");class o extends e.Component{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.jsxs("div",{style:{padding:"20px",margin:"20px",border:"1px solid #f5c2c7",borderRadius:"5px",backgroundColor:"#f8d7da",color:"#842029"},children:[r.jsx("h2",{children:"Something went wrong"}),r.jsx("p",{children:"The application encountered an error. Please try refreshing the page."}),r.jsxs("details",{style:{whiteSpace:"pre-wrap",margin:"10px 0"},children:[r.jsx("summary",{children:"Error Details"}),this.state.error?.toString()]}),r.jsx("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}}exports.default=o;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),r=require("react-router-dom");require("../services/codicent.js"),require("./Markdown.js"),require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var i=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),r=require("react-router-dom");require("../services/codicent.js"),require("./Markdown.js"),require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var i=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Page.js"),require("./QrCodeDialog.js"),require("./QrScanner.js");var o=require("../hooks/useLocalization.js");require("./OfflineMessage.js"),require("./LanguageSelector.js"),require("./ListView.js"),require("./RecordModal.js"),require("./BulkUploadDialog.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js"),require("../pages/QrScan.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js"),require("../hooks/useAppStyles.js");var a=require("../node_modules/@griffel/react/makeStyles.esm.js"),n=require("../node_modules/@griffel/core/index.esm.js"),t=require("../node_modules/@fluentui/tokens/lib/tokens.js"),l=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js"),u=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js"),c=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js"),d=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js"),j=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js"),g=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js");const p=a.makeStyles({footer:{...n.shorthands.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:t.tokens.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...n.shorthands.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none"},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),m=()=>{const a=p(),n=r.useLocation(),[m,q]=s.useState(null),{t:h}=o.default(),x={backgroundColor:i.getConfigValue("APP_FOOTER_COLOR")||t.tokens.colorBrandBackground,color:i.getConfigValue("APP_FOOTER_TEXT_COLOR")||t.tokens.colorNeutralForegroundOnBrand},f=i.getConfigValue("APP_FOOTER_SELECTED_COLOR")||void 0;return s.useEffect((()=>{const e=n.pathname;"/"===e?q("home"):"/chat"===e?q("chat"):"/new"===e?q("save"):"/menu"===e?q("menu"):"/log"===e?q("log"):"/canvas"===e?q("canvas"):"/snap"===e&&q("snap")}),[n]),s.useEffect((()=>{m&&console.log(`footer-button: ${m}`)}),[m]),e.jsx("footer",{className:a.footer,style:x,children:e.jsxs("div",{className:a.container,children:[e.jsxs(r.Link,{to:"/",className:`${a.link} ${"home"===m?"selected":""}`,onClick:()=>q("home"),style:"home"===m?{color:f}:void 0,children:["home"===m?e.jsx(l.Home24Filled,{}):e.jsx(l.Home24Regular,{}),e.jsx("p",{className:a.buttonText,children:h("Hem")})]}),!i.getConfigValue("HIDE_CHAT_BUTTON")&&e.jsxs(r.Link,{to:"/chat",className:`${a.link} ${"chat"===m?"selected":""}`,onClick:()=>q("chat"),style:"chat"===m?{color:f}:void 0,children:["chat"===m?e.jsx(u.Chat24Filled,{}):e.jsx(u.Chat24Regular,{}),e.jsx("p",{className:a.buttonText,children:h(i.getConfigValue("APP_CHAT_TITLE")||"Chatt")})]}),!i.getConfigValue("HIDE_SAVE_BUTTON")&&e.jsxs(r.Link,{to:"/new",className:`${a.link} ${"save"===m?"selected":""}`,onClick:()=>q("save"),style:"save"===m?{color:f}:void 0,children:["save"===m?e.jsx(c.AddSquare24Filled,{}):e.jsx(c.AddSquare24Regular,{}),e.jsx("p",{className:a.buttonText,children:h(i.getConfigValue("APP_SAVE_TITLE")||"Spara")})]}),i.getConfigValue("SHOW_SNAP_BUTTON")&&e.jsxs(r.Link,{to:"/snap",className:`${a.link} ${"snap"===m?"selected":""}`,onClick:()=>q("snap"),style:"snap"===m?{color:f}:void 0,children:["snap"===m?e.jsx(d.ClipboardDay24Filled,{}):e.jsx(d.ClipboardDay24Regular,{}),e.jsx("p",{className:a.buttonText,children:h("Snap")})]}),i.getConfigValue("SHOW_LOGBOOK_BUTTON")&&e.jsxs(r.Link,{to:"/log",className:`${a.link} ${"log"===m?"selected":""}`,onClick:()=>q("log"),style:"log"===m?{color:f}:void 0,children:["log"===m?e.jsx(j.SlideText24Filled,{}):e.jsx(j.SlideText24Regular,{}),e.jsx("p",{className:a.buttonText,children:h(i.getConfigValue("APP_LOGBOOK_TITLE")||"Loggbok")})]}),i.getConfigValue("SHOW_CANVAS_BUTTON")&&e.jsxs(r.Link,{to:"/canvas",className:`${a.link} ${"canvas"===m?"selected":""}`,onClick:()=>q("canvas"),style:"canvas"===m?{color:f}:void 0,children:["canvas"===m?e.jsx(g.Whiteboard24Filled,{}):e.jsx(g.Whiteboard24Regular,{}),e.jsx("p",{className:a.buttonText,children:h("Kanvas")})]}),!i.getConfigValue("HIDE_MENU_BUTTON")&&e.jsxs(r.Link,{to:"/menu",className:`${a.link} ${"menu"===m?"selected":""}`,onClick:()=>q("menu"),style:"menu"===m?{color:f}:void 0,children:["menu"===m?e.jsx(c.Apps24Filled,{}):e.jsx(c.Apps24Regular,{}),e.jsx("p",{className:a.buttonText,children:h("Meny")})]})]})})};exports.Footer=m,exports.default=m;
|