@easyling/sanity-connector 0.0.1 → 0.0.2-rc.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/dist/.tsbuildinfo +1 -1
- package/package.json +18 -12
- package/dist/actions/bulkTranslate.d.ts +0 -7
- package/dist/actions/bulkTranslate.d.ts.map +0 -1
- package/dist/actions/bulkTranslate.js +0 -543
- package/dist/actions/bulkTranslate.js.map +0 -1
- package/dist/actions/manageDNTFields.d.ts +0 -12
- package/dist/actions/manageDNTFields.d.ts.map +0 -1
- package/dist/actions/manageDNTFields.js +0 -100
- package/dist/actions/manageDNTFields.js.map +0 -1
- package/dist/actions/translateDocument.d.ts +0 -7
- package/dist/actions/translateDocument.d.ts.map +0 -1
- package/dist/actions/translateDocument.js +0 -256
- package/dist/actions/translateDocument.js.map +0 -1
- package/dist/components/RadioWithDefault.d.ts +0 -17
- package/dist/components/RadioWithDefault.d.ts.map +0 -1
- package/dist/components/RadioWithDefault.js +0 -29
- package/dist/components/RadioWithDefault.js.map +0 -1
- package/dist/components/auth/AuthNavbar.d.ts +0 -18
- package/dist/components/auth/AuthNavbar.d.ts.map +0 -1
- package/dist/components/auth/AuthNavbar.js +0 -15
- package/dist/components/auth/AuthNavbar.js.map +0 -1
- package/dist/components/auth/AuthStatus.d.ts +0 -27
- package/dist/components/auth/AuthStatus.d.ts.map +0 -1
- package/dist/components/auth/AuthStatus.js +0 -82
- package/dist/components/auth/AuthStatus.js.map +0 -1
- package/dist/components/auth/AuthStatusWrapper.d.ts +0 -15
- package/dist/components/auth/AuthStatusWrapper.d.ts.map +0 -1
- package/dist/components/auth/AuthStatusWrapper.js +0 -39
- package/dist/components/auth/AuthStatusWrapper.js.map +0 -1
- package/dist/components/auth/MigrationPrompt.d.ts +0 -20
- package/dist/components/auth/MigrationPrompt.d.ts.map +0 -1
- package/dist/components/auth/MigrationPrompt.js +0 -16
- package/dist/components/auth/MigrationPrompt.js.map +0 -1
- package/dist/components/auth/MigrationPromptWrapper.d.ts +0 -14
- package/dist/components/auth/MigrationPromptWrapper.d.ts.map +0 -1
- package/dist/components/auth/MigrationPromptWrapper.js +0 -16
- package/dist/components/auth/MigrationPromptWrapper.js.map +0 -1
- package/dist/components/auth/OAuthCallback.d.ts +0 -20
- package/dist/components/auth/OAuthCallback.d.ts.map +0 -1
- package/dist/components/auth/OAuthCallback.js +0 -12
- package/dist/components/auth/OAuthCallback.js.map +0 -1
- package/dist/components/auth/index.d.ts +0 -15
- package/dist/components/auth/index.d.ts.map +0 -1
- package/dist/components/auth/index.js +0 -12
- package/dist/components/auth/index.js.map +0 -1
- package/dist/components/config/LocaleConfigTool.d.ts +0 -17
- package/dist/components/config/LocaleConfigTool.d.ts.map +0 -1
- package/dist/components/config/LocaleConfigTool.js +0 -186
- package/dist/components/config/LocaleConfigTool.js.map +0 -1
- package/dist/components/config/LocaleConfigToolWrapper.d.ts +0 -13
- package/dist/components/config/LocaleConfigToolWrapper.d.ts.map +0 -1
- package/dist/components/config/LocaleConfigToolWrapper.js +0 -26
- package/dist/components/config/LocaleConfigToolWrapper.js.map +0 -1
- package/dist/components/config/OAuthConfig.d.ts +0 -26
- package/dist/components/config/OAuthConfig.d.ts.map +0 -1
- package/dist/components/config/OAuthConfig.js +0 -152
- package/dist/components/config/OAuthConfig.js.map +0 -1
- package/dist/components/config/OAuthConfigWrapper.d.ts +0 -13
- package/dist/components/config/OAuthConfigWrapper.d.ts.map +0 -1
- package/dist/components/config/OAuthConfigWrapper.js +0 -41
- package/dist/components/config/OAuthConfigWrapper.js.map +0 -1
- package/dist/components/config/PasswordInput.d.ts +0 -14
- package/dist/components/config/PasswordInput.d.ts.map +0 -1
- package/dist/components/config/PasswordInput.js +0 -23
- package/dist/components/config/PasswordInput.js.map +0 -1
- package/dist/components/config/index.d.ts +0 -9
- package/dist/components/config/index.d.ts.map +0 -1
- package/dist/components/config/index.js +0 -8
- package/dist/components/config/index.js.map +0 -1
- package/dist/components/config/localeConfigToolDefinition.d.ts +0 -13
- package/dist/components/config/localeConfigToolDefinition.d.ts.map +0 -1
- package/dist/components/config/localeConfigToolDefinition.js +0 -19
- package/dist/components/config/localeConfigToolDefinition.js.map +0 -1
- package/dist/components/config/oauthConfigToolDefinition.d.ts +0 -13
- package/dist/components/config/oauthConfigToolDefinition.d.ts.map +0 -1
- package/dist/components/config/oauthConfigToolDefinition.js +0 -19
- package/dist/components/config/oauthConfigToolDefinition.js.map +0 -1
- package/dist/components/dialogs/ConfirmationDialog.d.ts +0 -21
- package/dist/components/dialogs/ConfirmationDialog.d.ts.map +0 -1
- package/dist/components/dialogs/ConfirmationDialog.js +0 -28
- package/dist/components/dialogs/ConfirmationDialog.js.map +0 -1
- package/dist/components/dialogs/ErrorDialog.d.ts +0 -21
- package/dist/components/dialogs/ErrorDialog.d.ts.map +0 -1
- package/dist/components/dialogs/ErrorDialog.js +0 -28
- package/dist/components/dialogs/ErrorDialog.js.map +0 -1
- package/dist/components/dialogs/LocaleSelectionDialog.d.ts +0 -41
- package/dist/components/dialogs/LocaleSelectionDialog.d.ts.map +0 -1
- package/dist/components/dialogs/LocaleSelectionDialog.js +0 -117
- package/dist/components/dialogs/LocaleSelectionDialog.js.map +0 -1
- package/dist/components/dialogs/SuccessDialog.d.ts +0 -19
- package/dist/components/dialogs/SuccessDialog.d.ts.map +0 -1
- package/dist/components/dialogs/SuccessDialog.js +0 -37
- package/dist/components/dialogs/SuccessDialog.js.map +0 -1
- package/dist/components/dialogs/index.d.ts +0 -12
- package/dist/components/dialogs/index.d.ts.map +0 -1
- package/dist/components/dialogs/index.js +0 -8
- package/dist/components/dialogs/index.js.map +0 -1
- package/dist/components/dnt/DNTFieldBadge.d.ts +0 -16
- package/dist/components/dnt/DNTFieldBadge.d.ts.map +0 -1
- package/dist/components/dnt/DNTFieldBadge.js +0 -56
- package/dist/components/dnt/DNTFieldBadge.js.map +0 -1
- package/dist/components/dnt/DNTFieldComponent.d.ts +0 -17
- package/dist/components/dnt/DNTFieldComponent.d.ts.map +0 -1
- package/dist/components/dnt/DNTFieldComponent.js +0 -21
- package/dist/components/dnt/DNTFieldComponent.js.map +0 -1
- package/dist/components/dnt/DNTFieldInput.d.ts +0 -14
- package/dist/components/dnt/DNTFieldInput.d.ts.map +0 -1
- package/dist/components/dnt/DNTFieldInput.js +0 -76
- package/dist/components/dnt/DNTFieldInput.js.map +0 -1
- package/dist/components/dnt/index.d.ts +0 -7
- package/dist/components/dnt/index.d.ts.map +0 -1
- package/dist/components/dnt/index.js +0 -7
- package/dist/components/dnt/index.js.map +0 -1
- package/dist/config/index.d.ts +0 -6
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -6
- package/dist/config/index.js.map +0 -1
- package/dist/config/pluginConfig.d.ts +0 -163
- package/dist/config/pluginConfig.d.ts.map +0 -1
- package/dist/config/pluginConfig.js +0 -548
- package/dist/config/pluginConfig.js.map +0 -1
- package/dist/index.d.ts +0 -12
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -12
- package/dist/index.js.map +0 -1
- package/dist/plugin.d.ts +0 -3
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -137
- package/dist/plugin.js.map +0 -1
- package/dist/services/authStateManager.d.ts +0 -94
- package/dist/services/authStateManager.d.ts.map +0 -1
- package/dist/services/authStateManager.js +0 -208
- package/dist/services/authStateManager.js.map +0 -1
- package/dist/services/contentExtractor.d.ts +0 -95
- package/dist/services/contentExtractor.d.ts.map +0 -1
- package/dist/services/contentExtractor.js +0 -516
- package/dist/services/contentExtractor.js.map +0 -1
- package/dist/services/dialogService.d.ts +0 -96
- package/dist/services/dialogService.d.ts.map +0 -1
- package/dist/services/dialogService.js +0 -244
- package/dist/services/dialogService.js.map +0 -1
- package/dist/services/dntServiceManager.d.ts +0 -44
- package/dist/services/dntServiceManager.d.ts.map +0 -1
- package/dist/services/dntServiceManager.js +0 -74
- package/dist/services/dntServiceManager.js.map +0 -1
- package/dist/services/dntStorageAdapter.d.ts +0 -73
- package/dist/services/dntStorageAdapter.d.ts.map +0 -1
- package/dist/services/dntStorageAdapter.js +0 -192
- package/dist/services/dntStorageAdapter.js.map +0 -1
- package/dist/services/documentCreationService.d.ts +0 -139
- package/dist/services/documentCreationService.d.ts.map +0 -1
- package/dist/services/documentCreationService.js +0 -938
- package/dist/services/documentCreationService.js.map +0 -1
- package/dist/services/localeService.d.ts +0 -160
- package/dist/services/localeService.d.ts.map +0 -1
- package/dist/services/localeService.js +0 -300
- package/dist/services/localeService.js.map +0 -1
- package/dist/services/localeStorageAdapter.d.ts +0 -42
- package/dist/services/localeStorageAdapter.d.ts.map +0 -1
- package/dist/services/localeStorageAdapter.js +0 -107
- package/dist/services/localeStorageAdapter.js.map +0 -1
- package/dist/services/oauthConfigStorage.d.ts +0 -46
- package/dist/services/oauthConfigStorage.d.ts.map +0 -1
- package/dist/services/oauthConfigStorage.js +0 -122
- package/dist/services/oauthConfigStorage.js.map +0 -1
- package/dist/services/oauthService.d.ts +0 -48
- package/dist/services/oauthService.d.ts.map +0 -1
- package/dist/services/oauthService.js +0 -71
- package/dist/services/oauthService.js.map +0 -1
- package/dist/services/oauthServiceManager.d.ts +0 -189
- package/dist/services/oauthServiceManager.d.ts.map +0 -1
- package/dist/services/oauthServiceManager.js +0 -380
- package/dist/services/oauthServiceManager.js.map +0 -1
- package/dist/services/tokenStorage.d.ts +0 -54
- package/dist/services/tokenStorage.d.ts.map +0 -1
- package/dist/services/tokenStorage.js +0 -140
- package/dist/services/tokenStorage.js.map +0 -1
- package/dist/services/translationService.d.ts +0 -374
- package/dist/services/translationService.d.ts.map +0 -1
- package/dist/services/translationService.js +0 -687
- package/dist/services/translationService.js.map +0 -1
- package/dist/services/unifiedConfigStorage.d.ts +0 -124
- package/dist/services/unifiedConfigStorage.d.ts.map +0 -1
- package/dist/services/unifiedConfigStorage.js +0 -304
- package/dist/services/unifiedConfigStorage.js.map +0 -1
- package/dist/test-utils.d.ts +0 -9
- package/dist/test-utils.d.ts.map +0 -1
- package/dist/test-utils.js +0 -13
- package/dist/test-utils.js.map +0 -1
- package/dist/types/dialog.d.ts +0 -107
- package/dist/types/dialog.d.ts.map +0 -1
- package/dist/types/dialog.js +0 -6
- package/dist/types/dialog.js.map +0 -1
- package/dist/types/dnt.d.ts +0 -84
- package/dist/types/dnt.d.ts.map +0 -1
- package/dist/types/dnt.js +0 -5
- package/dist/types/dnt.js.map +0 -1
- package/dist/types/index.d.ts +0 -12
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +0 -1
- package/dist/types/locale.d.ts +0 -116
- package/dist/types/locale.d.ts.map +0 -1
- package/dist/types/locale.js +0 -189
- package/dist/types/locale.js.map +0 -1
- package/dist/types/oauth.d.ts +0 -90
- package/dist/types/oauth.d.ts.map +0 -1
- package/dist/types/oauth.js +0 -62
- package/dist/types/oauth.js.map +0 -1
- package/dist/types/pluginConfig.d.ts +0 -45
- package/dist/types/pluginConfig.d.ts.map +0 -1
- package/dist/types/pluginConfig.js +0 -6
- package/dist/types/pluginConfig.js.map +0 -1
- package/dist/types/translation.d.ts +0 -122
- package/dist/types/translation.d.ts.map +0 -1
- package/dist/types/translation.js +0 -6
- package/dist/types/translation.js.map +0 -1
- package/dist/utils/htmlFormatter.d.ts +0 -66
- package/dist/utils/htmlFormatter.d.ts.map +0 -1
- package/dist/utils/htmlFormatter.js +0 -191
- package/dist/utils/htmlFormatter.js.map +0 -1
- package/dist/utils/index.d.ts +0 -15
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -16
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -105
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -229
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/oauthErrorFeedback.d.ts +0 -76
- package/dist/utils/oauthErrorFeedback.d.ts.map +0 -1
- package/dist/utils/oauthErrorFeedback.js +0 -134
- package/dist/utils/oauthErrorFeedback.js.map +0 -1
- package/dist/utils/oauthLogger.d.ts +0 -176
- package/dist/utils/oauthLogger.d.ts.map +0 -1
- package/dist/utils/oauthLogger.js +0 -282
- package/dist/utils/oauthLogger.js.map +0 -1
- package/dist/utils/validator.d.ts +0 -67
- package/dist/utils/validator.d.ts.map +0 -1
- package/dist/utils/validator.js +0 -390
- package/dist/utils/validator.js.map +0 -1
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* LocaleSelectionDialog Component
|
|
4
|
-
* Requirements: 2.1, 2.2, 2.3, 2.4, 2.6, 2.7
|
|
5
|
-
*
|
|
6
|
-
* A dialog for selecting target locales for translation with search and validation
|
|
7
|
-
*/
|
|
8
|
-
import { useState, useEffect, useRef, useMemo } from 'react';
|
|
9
|
-
import { Dialog, Box, Stack, Text, Button, Card, Checkbox, TextInput, Flex, Radio } from '@sanity/ui';
|
|
10
|
-
import { SearchIcon } from '@sanity/icons';
|
|
11
|
-
/**
|
|
12
|
-
* LocaleSelectionDialog component with search and multi-select functionality
|
|
13
|
-
*/
|
|
14
|
-
export const LocaleSelectionDialog = ({ open, title, message, availableLocales, selectedLocales: initialSelectedLocales, selectedDocuments = [], mode, allowMultiple = true, required = true, showCreationModeOption = false, defaultCreationMode = 'draft', onConfirm, onCancel, }) => {
|
|
15
|
-
const [selectedLocales, setSelectedLocales] = useState(new Set(initialSelectedLocales));
|
|
16
|
-
const [creationMode, setCreationMode] = useState(defaultCreationMode);
|
|
17
|
-
const [searchQuery, setSearchQuery] = useState('');
|
|
18
|
-
const [validationError, setValidationError] = useState(null);
|
|
19
|
-
const searchInputRef = useRef(null);
|
|
20
|
-
const confirmButtonRef = useRef(null);
|
|
21
|
-
// Reset state when dialog opens
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
if (open) {
|
|
24
|
-
setSelectedLocales(new Set(initialSelectedLocales));
|
|
25
|
-
setCreationMode(defaultCreationMode);
|
|
26
|
-
setSearchQuery('');
|
|
27
|
-
setValidationError(null);
|
|
28
|
-
// Focus search input when dialog opens
|
|
29
|
-
setTimeout(() => {
|
|
30
|
-
searchInputRef.current?.focus();
|
|
31
|
-
}, 100);
|
|
32
|
-
}
|
|
33
|
-
}, [open, initialSelectedLocales, defaultCreationMode]);
|
|
34
|
-
// Filter locales based on search query
|
|
35
|
-
const filteredLocales = useMemo(() => {
|
|
36
|
-
if (!searchQuery.trim()) {
|
|
37
|
-
return availableLocales.filter(locale => locale.enabled);
|
|
38
|
-
}
|
|
39
|
-
const query = searchQuery.toLowerCase();
|
|
40
|
-
return availableLocales
|
|
41
|
-
.filter(locale => locale.enabled)
|
|
42
|
-
.filter(locale => locale.code.toLowerCase().includes(query) ||
|
|
43
|
-
locale.displayName.toLowerCase().includes(query));
|
|
44
|
-
}, [availableLocales, searchQuery]);
|
|
45
|
-
// Handle locale selection toggle
|
|
46
|
-
const handleLocaleToggle = (localeCode) => {
|
|
47
|
-
setValidationError(null);
|
|
48
|
-
const newSelected = new Set(selectedLocales);
|
|
49
|
-
if (newSelected.has(localeCode)) {
|
|
50
|
-
newSelected.delete(localeCode);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
if (!allowMultiple) {
|
|
54
|
-
// Single selection mode - clear others
|
|
55
|
-
newSelected.clear();
|
|
56
|
-
}
|
|
57
|
-
newSelected.add(localeCode);
|
|
58
|
-
}
|
|
59
|
-
setSelectedLocales(newSelected);
|
|
60
|
-
};
|
|
61
|
-
// Handle select all
|
|
62
|
-
const handleSelectAll = () => {
|
|
63
|
-
setValidationError(null);
|
|
64
|
-
const allFilteredCodes = new Set(filteredLocales.map(locale => locale.code));
|
|
65
|
-
setSelectedLocales(allFilteredCodes);
|
|
66
|
-
};
|
|
67
|
-
// Handle clear all
|
|
68
|
-
const handleClearAll = () => {
|
|
69
|
-
setValidationError(null);
|
|
70
|
-
setSelectedLocales(new Set());
|
|
71
|
-
};
|
|
72
|
-
// Validate and confirm selection
|
|
73
|
-
const handleConfirm = () => {
|
|
74
|
-
// Validate selection
|
|
75
|
-
if (required && selectedLocales.size === 0) {
|
|
76
|
-
setValidationError('Please select at least one locale');
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
// Convert Set to Array and confirm with creation mode if applicable
|
|
80
|
-
onConfirm(Array.from(selectedLocales), showCreationModeOption ? creationMode : undefined);
|
|
81
|
-
};
|
|
82
|
-
// Handle keyboard navigation
|
|
83
|
-
useEffect(() => {
|
|
84
|
-
if (!open)
|
|
85
|
-
return;
|
|
86
|
-
const handleKeyDown = (event) => {
|
|
87
|
-
if (event.key === 'Escape') {
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
onCancel();
|
|
90
|
-
}
|
|
91
|
-
else if (event.key === 'Enter' && event.ctrlKey) {
|
|
92
|
-
// Ctrl+Enter to confirm
|
|
93
|
-
event.preventDefault();
|
|
94
|
-
handleConfirm();
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
document.addEventListener('keydown', handleKeyDown);
|
|
98
|
-
return () => {
|
|
99
|
-
document.removeEventListener('keydown', handleKeyDown);
|
|
100
|
-
};
|
|
101
|
-
}, [open, selectedLocales, onCancel]);
|
|
102
|
-
if (!open)
|
|
103
|
-
return null;
|
|
104
|
-
const documentCount = selectedDocuments.length || 1;
|
|
105
|
-
const isValid = !required || selectedLocales.size > 0;
|
|
106
|
-
return (_jsx(Dialog, { id: "locale-selection-dialog", header: title, onClose: onCancel, onClickOutside: onCancel, width: 1, role: "dialog", "aria-labelledby": "locale-selection-dialog-title", "aria-describedby": "locale-selection-dialog-description", children: _jsx(Box, { padding: 4, children: _jsxs(Stack, { space: 4, children: [_jsx(Card, { children: _jsx(Box, { padding: 3, children: _jsxs(Stack, { space: 3, children: [_jsx(Text, { id: "locale-selection-dialog-description", size: 2, weight: "regular", children: message }), _jsx(Text, { size: 1, muted: true, children: mode === 'bulk'
|
|
107
|
-
? `Translating ${documentCount} document${documentCount !== 1 ? 's' : ''}`
|
|
108
|
-
: 'Translating 1 document' })] }) }) }), _jsx(Box, { children: _jsx(TextInput, { ref: searchInputRef, icon: SearchIcon, placeholder: "Search locales by code or name...", value: searchQuery, onChange: (event) => setSearchQuery(event.currentTarget.value), "aria-label": "Search locales" }) }), _jsx(Card, { border: true, padding: 3, children: _jsxs(Stack, { space: 3, children: [allowMultiple && filteredLocales.length > 1 && (_jsxs(Flex, { justify: "space-between", align: "center", children: [_jsxs(Text, { size: 1, weight: "semibold", children: [selectedLocales.size, " of ", filteredLocales.length, " selected"] }), _jsxs(Flex, { gap: 2, children: [_jsx(Button, { text: "Select All", mode: "ghost", fontSize: 1, padding: 2, onClick: handleSelectAll, disabled: selectedLocales.size === filteredLocales.length }), _jsx(Button, { text: "Clear All", mode: "ghost", fontSize: 1, padding: 2, onClick: handleClearAll, disabled: selectedLocales.size === 0 })] })] })), _jsx(Box, { style: { maxHeight: '300px', overflowY: 'auto' }, children: _jsx(Stack, { space: 2, children: filteredLocales.length === 0 ? (_jsx(Box, { padding: 3, children: _jsx(Text, { size: 1, muted: true, align: "center", children: searchQuery
|
|
109
|
-
? 'No locales match your search'
|
|
110
|
-
: 'No locales available. Please configure locales first.' }) })) : (filteredLocales.map((locale) => (_jsx(Card, { padding: 3, radius: 2, shadow: 1, style: { cursor: 'pointer' }, onClick: () => handleLocaleToggle(locale.code), role: "checkbox", "aria-checked": selectedLocales.has(locale.code), tabIndex: 0, onKeyDown: (e) => {
|
|
111
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
|
112
|
-
e.preventDefault();
|
|
113
|
-
handleLocaleToggle(locale.code);
|
|
114
|
-
}
|
|
115
|
-
}, children: _jsxs(Flex, { align: "center", gap: 3, children: [_jsx(Checkbox, { checked: selectedLocales.has(locale.code), readOnly: true, "aria-label": `Select ${locale.displayName}` }), _jsxs(Stack, { space: 1, flex: 1, children: [_jsx(Text, { size: 2, weight: "medium", children: locale.displayName }), _jsx(Text, { size: 1, muted: true, children: locale.code })] })] }) }, locale.code)))) }) })] }) }), showCreationModeOption && (_jsx(Card, { border: true, padding: 3, children: _jsxs(Stack, { space: 3, children: [_jsx(Text, { size: 1, weight: "semibold", children: "Document Creation Mode" }), _jsx(Text, { size: 1, muted: true, children: "Choose whether to create translated documents as drafts or publish them immediately." }), _jsxs(Stack, { space: 2, children: [_jsx(Card, { padding: 3, radius: 2, tone: creationMode === 'draft' ? 'primary' : 'default', style: { cursor: 'pointer' }, onClick: () => setCreationMode('draft'), children: _jsxs(Flex, { align: "center", gap: 3, children: [_jsx(Radio, { checked: creationMode === 'draft', readOnly: true, "aria-label": "Create as draft" }), _jsxs(Stack, { space: 1, flex: 1, children: [_jsx(Text, { size: 2, weight: "medium", children: "Draft" }), _jsx(Text, { size: 1, muted: true, children: "Create documents as drafts that need to be published manually" })] })] }) }), _jsx(Card, { padding: 3, radius: 2, tone: creationMode === 'published' ? 'primary' : 'default', style: { cursor: 'pointer' }, onClick: () => setCreationMode('published'), children: _jsxs(Flex, { align: "center", gap: 3, children: [_jsx(Radio, { checked: creationMode === 'published', readOnly: true, "aria-label": "Create as published" }), _jsxs(Stack, { space: 1, flex: 1, children: [_jsx(Text, { size: 2, weight: "medium", children: "Published" }), _jsx(Text, { size: 1, muted: true, children: "Create and publish documents immediately" })] })] }) })] })] }) })), validationError && (_jsx(Card, { tone: "critical", padding: 3, children: _jsx(Text, { size: 1, style: { color: 'var(--card-fg-color)' }, children: validationError }) })), _jsxs(Stack, { space: 2, children: [_jsx(Button, { ref: confirmButtonRef, text: `Translate to ${selectedLocales.size} locale${selectedLocales.size !== 1 ? 's' : ''}`, tone: "primary", onClick: handleConfirm, disabled: !isValid || filteredLocales.length === 0, mode: "default", "aria-label": "Confirm locale selection and start translation" }), _jsx(Button, { text: "Cancel", tone: "default", onClick: onCancel, mode: "ghost", "aria-label": "Cancel locale selection" })] }), _jsx(Text, { size: 1, muted: true, align: "center", children: "Press Ctrl+Enter to confirm, Esc to cancel" })] }) }) }));
|
|
116
|
-
};
|
|
117
|
-
//# sourceMappingURL=LocaleSelectionDialog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSelectionDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/LocaleSelectionDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SuccessDialog Component
|
|
3
|
-
* Requirements: 3.6, 3.8
|
|
4
|
-
*
|
|
5
|
-
* A success notification dialog with accessibility support
|
|
6
|
-
*/
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import type { SuccessDialogOptions } from '../../types/dialog';
|
|
9
|
-
export interface SuccessDialogProps extends SuccessDialogOptions {
|
|
10
|
-
/** Whether the dialog is open */
|
|
11
|
-
open: boolean;
|
|
12
|
-
/** Callback when dialog is closed */
|
|
13
|
-
onClose: () => void;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* SuccessDialog component for displaying success messages
|
|
17
|
-
*/
|
|
18
|
-
export declare const SuccessDialog: React.FC<SuccessDialogProps>;
|
|
19
|
-
//# sourceMappingURL=SuccessDialog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SuccessDialog.d.ts","sourceRoot":"","sources":["../../../src/components/dialogs/SuccessDialog.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgFtD,CAAC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* SuccessDialog Component
|
|
4
|
-
* Requirements: 3.6, 3.8
|
|
5
|
-
*
|
|
6
|
-
* A success notification dialog with accessibility support
|
|
7
|
-
*/
|
|
8
|
-
import { useEffect, useRef } from 'react';
|
|
9
|
-
import { Dialog, Box, Stack, Text, Button, Card } from '@sanity/ui';
|
|
10
|
-
import { CheckmarkCircleIcon } from '@sanity/icons';
|
|
11
|
-
/**
|
|
12
|
-
* SuccessDialog component for displaying success messages
|
|
13
|
-
*/
|
|
14
|
-
export const SuccessDialog = ({ open, title, message, details, autoCloseTimeout, closable = true, onClose, }) => {
|
|
15
|
-
const closeButtonRef = useRef(null);
|
|
16
|
-
// Focus the close button when dialog opens
|
|
17
|
-
useEffect(() => {
|
|
18
|
-
if (open && closeButtonRef.current) {
|
|
19
|
-
setTimeout(() => {
|
|
20
|
-
closeButtonRef.current?.focus();
|
|
21
|
-
}, 100);
|
|
22
|
-
}
|
|
23
|
-
}, [open]);
|
|
24
|
-
// Auto-close functionality
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (!open || !autoCloseTimeout)
|
|
27
|
-
return;
|
|
28
|
-
const timer = setTimeout(() => {
|
|
29
|
-
onClose();
|
|
30
|
-
}, autoCloseTimeout);
|
|
31
|
-
return () => clearTimeout(timer);
|
|
32
|
-
}, [open, autoCloseTimeout, onClose]);
|
|
33
|
-
if (!open)
|
|
34
|
-
return null;
|
|
35
|
-
return (_jsx(Dialog, { id: "success-dialog", header: title, onClose: closable ? onClose : undefined, onClickOutside: closable ? onClose : undefined, width: 1, role: "dialog", "aria-labelledby": "success-dialog-title", "aria-describedby": "success-dialog-description", children: _jsx(Box, { padding: 4, children: _jsxs(Stack, { space: 4, children: [_jsx(Card, { tone: "positive", padding: 3, radius: 2, children: _jsxs(Stack, { space: 3, children: [_jsx(Box, { children: _jsx(Text, { size: 3, children: _jsx(CheckmarkCircleIcon, {}) }) }), _jsx(Text, { id: "success-dialog-description", size: 2, weight: "regular", children: message }), details && (_jsx(Text, { size: 1, muted: true, children: details }))] }) }), _jsx(Button, { ref: closeButtonRef, text: "Close", tone: "positive", onClick: onClose, mode: "default", "aria-label": "Close success dialog" })] }) }) }));
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=SuccessDialog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SuccessDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/SuccessDialog.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAUpD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC1D,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,QAAQ,GAAG,IAAI,EACf,OAAO,GACR,EAAE,EAAE;IACH,MAAM,cAAc,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAEvD,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YACnC,UAAU,CAAC,GAAG,EAAE;gBACd,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAClC,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,2BAA2B;IAC3B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAEvC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAErB,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,MAAM,IACL,EAAE,EAAC,gBAAgB,EACnB,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EACvC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC9C,KAAK,EAAE,CAAC,EACR,IAAI,EAAC,QAAQ,qBACG,sBAAsB,sBACrB,4BAA4B,YAE7C,KAAC,GAAG,IAAC,OAAO,EAAE,CAAC,YACb,MAAC,KAAK,IAAC,KAAK,EAAE,CAAC,aACb,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,YACzC,MAAC,KAAK,IAAC,KAAK,EAAE,CAAC,aACb,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,YACX,KAAC,mBAAmB,KAAG,GAClB,GACH,EACN,KAAC,IAAI,IACH,EAAE,EAAC,4BAA4B,EAC/B,IAAI,EAAE,CAAC,EACP,MAAM,EAAC,SAAS,YAEf,OAAO,GACH,EACN,OAAO,IAAI,CACV,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,EAAE,KAAK,kBACjB,OAAO,GACH,CACR,IACK,GACH,EAEP,KAAC,MAAM,IACL,GAAG,EAAE,cAAc,EACnB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,SAAS,gBACH,sBAAsB,GACjC,IACI,GACJ,GACC,CACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dialog components exports
|
|
3
|
-
*/
|
|
4
|
-
export { ConfirmationDialog } from './ConfirmationDialog';
|
|
5
|
-
export type { ConfirmationDialogProps } from './ConfirmationDialog';
|
|
6
|
-
export { SuccessDialog } from './SuccessDialog';
|
|
7
|
-
export type { SuccessDialogProps } from './SuccessDialog';
|
|
8
|
-
export { ErrorDialog } from './ErrorDialog';
|
|
9
|
-
export type { ErrorDialogProps } from './ErrorDialog';
|
|
10
|
-
export { LocaleSelectionDialog } from './LocaleSelectionDialog';
|
|
11
|
-
export type { LocaleSelectionDialogProps } from './LocaleSelectionDialog';
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dialogs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dialog components exports
|
|
3
|
-
*/
|
|
4
|
-
export { ConfirmationDialog } from './ConfirmationDialog';
|
|
5
|
-
export { SuccessDialog } from './SuccessDialog';
|
|
6
|
-
export { ErrorDialog } from './ErrorDialog';
|
|
7
|
-
export { LocaleSelectionDialog } from './LocaleSelectionDialog';
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/dialogs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DNT Field Badge Component
|
|
3
|
-
* Displays a badge on fields indicating their translation status and allows toggling
|
|
4
|
-
*
|
|
5
|
-
* Now uses document-type-based configuration: toggling DNT for a field applies to
|
|
6
|
-
* ALL documents of the same type.
|
|
7
|
-
*/
|
|
8
|
-
interface DNTFieldBadgeProps {
|
|
9
|
-
documentId: string;
|
|
10
|
-
documentType: string;
|
|
11
|
-
fieldPath: string;
|
|
12
|
-
fieldTitle?: string;
|
|
13
|
-
}
|
|
14
|
-
export declare function DNTFieldBadge(props: DNTFieldBadgeProps): import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
-
export {};
|
|
16
|
-
//# sourceMappingURL=DNTFieldBadge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DNTFieldBadge.d.ts","sourceRoot":"","sources":["../../../src/components/dnt/DNTFieldBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,UAAU,kBAAkB;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,kDA4EtD"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* DNT Field Badge Component
|
|
4
|
-
* Displays a badge on fields indicating their translation status and allows toggling
|
|
5
|
-
*
|
|
6
|
-
* Now uses document-type-based configuration: toggling DNT for a field applies to
|
|
7
|
-
* ALL documents of the same type.
|
|
8
|
-
*/
|
|
9
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
10
|
-
import { Badge, Button, Flex, Tooltip } from '@sanity/ui';
|
|
11
|
-
import { TranslateIcon, BlockElementIcon } from '@sanity/icons';
|
|
12
|
-
import { getDNTStorage } from '../../services/dntServiceManager';
|
|
13
|
-
export function DNTFieldBadge(props) {
|
|
14
|
-
const { documentId, documentType, fieldPath, fieldTitle } = props;
|
|
15
|
-
const [isDNT, setIsDNT] = useState(false);
|
|
16
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
17
|
-
// Load initial DNT status
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
const loadDNTStatus = async () => {
|
|
20
|
-
try {
|
|
21
|
-
setIsLoading(true);
|
|
22
|
-
const dntStorage = getDNTStorage();
|
|
23
|
-
const status = await dntStorage.getFieldDNT(documentType, fieldPath);
|
|
24
|
-
setIsDNT(status);
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
console.error('Failed to load DNT status:', error);
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
setIsLoading(false);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
if (documentType && fieldPath) {
|
|
34
|
-
loadDNTStatus();
|
|
35
|
-
}
|
|
36
|
-
}, [documentType, fieldPath]);
|
|
37
|
-
// Toggle DNT status (applies to all documents of this type)
|
|
38
|
-
const handleToggle = useCallback(async () => {
|
|
39
|
-
try {
|
|
40
|
-
const dntStorage = getDNTStorage();
|
|
41
|
-
const newStatus = await dntStorage.toggleFieldDNT(documentType, fieldPath);
|
|
42
|
-
setIsDNT(newStatus);
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
console.error('Failed to toggle DNT status:', error);
|
|
46
|
-
}
|
|
47
|
-
}, [documentType, fieldPath]);
|
|
48
|
-
if (isLoading) {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
const tooltipContent = isDNT
|
|
52
|
-
? `This field will NOT be translated for ALL ${documentType} documents. Click to make it translatable.`
|
|
53
|
-
: `This field will be translated. Click to mark as "Do Not Translate" for ALL ${documentType} documents.`;
|
|
54
|
-
return (_jsx(Tooltip, { content: _jsxs(Flex, { padding: 2, direction: "column", gap: 2, children: [_jsx("div", { style: { fontWeight: 'bold' }, children: fieldTitle || fieldPath }), _jsx("div", { children: tooltipContent })] }), placement: "top", children: _jsx(Button, { mode: "bleed", padding: 2, onClick: handleToggle, style: { minHeight: 'auto' }, children: _jsx(Badge, { tone: isDNT ? 'critical' : 'positive', mode: isDNT ? 'default' : 'outline', children: _jsxs(Flex, { align: "center", gap: 1, children: [isDNT ? _jsx(BlockElementIcon, {}) : _jsx(TranslateIcon, {}), _jsx("span", { style: { fontSize: '0.75rem' }, children: isDNT ? 'DNT' : 'Translate' })] }) }) }) }));
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=DNTFieldBadge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DNTFieldBadge.js","sourceRoot":"","sources":["../../../src/components/dnt/DNTFieldBadge.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DNT Field Component
|
|
3
|
-
* A wrapper component that adds DNT toggle functionality to any field
|
|
4
|
-
*/
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import { ObjectInputProps, StringInputProps, NumberInputProps, BooleanInputProps, ArrayOfObjectsInputProps } from 'sanity';
|
|
7
|
-
type FieldInputProps = ObjectInputProps | StringInputProps | NumberInputProps | BooleanInputProps | ArrayOfObjectsInputProps;
|
|
8
|
-
interface DNTFieldComponentProps {
|
|
9
|
-
documentId?: string;
|
|
10
|
-
documentType?: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Higher-order component that wraps field components with DNT functionality
|
|
14
|
-
*/
|
|
15
|
-
export declare function withDNTBadge<P extends FieldInputProps>(Component: React.ComponentType<P>): React.ComponentType<P & DNTFieldComponentProps>;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=DNTFieldComponent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DNTFieldComponent.d.ts","sourceRoot":"","sources":["../../../src/components/dnt/DNTFieldComponent.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAI3H,KAAK,eAAe,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,wBAAwB,CAAC;AAE7B,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,eAAe,EACpD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAChC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,sBAAsB,CAAC,CA4BjD"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Stack } from '@sanity/ui';
|
|
3
|
-
import { DNTFieldBadge } from './DNTFieldBadge';
|
|
4
|
-
/**
|
|
5
|
-
* Higher-order component that wraps field components with DNT functionality
|
|
6
|
-
*/
|
|
7
|
-
export function withDNTBadge(Component) {
|
|
8
|
-
return function DNTFieldComponent(props) {
|
|
9
|
-
const { documentId, documentType, ...fieldProps } = props;
|
|
10
|
-
const typedProps = fieldProps;
|
|
11
|
-
// Get field information
|
|
12
|
-
const fieldPath = typedProps.path?.join('.') || '';
|
|
13
|
-
const fieldTitle = typedProps.schemaType?.title;
|
|
14
|
-
// Don't show badge if we don't have necessary info
|
|
15
|
-
if (!documentId || !fieldPath) {
|
|
16
|
-
return _jsx(Component, { ...typedProps });
|
|
17
|
-
}
|
|
18
|
-
return (_jsxs(Stack, { space: 2, children: [_jsx(Component, { ...typedProps }), _jsx("div", { style: { marginTop: '0.25rem' }, children: _jsx(DNTFieldBadge, { documentId: documentId, documentType: documentType || 'document', fieldPath: fieldPath, fieldTitle: fieldTitle }) })] }));
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=DNTFieldComponent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DNTFieldComponent.js","sourceRoot":"","sources":["../../../src/components/dnt/DNTFieldComponent.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAchD;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAiC;IAEjC,OAAO,SAAS,iBAAiB,CAAC,KAAiC;QACjE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;QAC1D,MAAM,UAAU,GAAG,UAAe,CAAC;QAEnC,wBAAwB;QACxB,MAAM,SAAS,GAAI,UAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAI,UAAkB,CAAC,UAAU,EAAE,KAAK,CAAC;QAEzD,mDAAmD;QACnD,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,KAAC,SAAS,OAAK,UAAU,GAAI,CAAC;QACvC,CAAC;QAED,OAAO,CACL,MAAC,KAAK,IAAC,KAAK,EAAE,CAAC,aACb,KAAC,SAAS,OAAK,UAAU,GAAI,EAC7B,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAClC,KAAC,aAAa,IACZ,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,IAAI,UAAU,EACxC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,GACtB,GACE,IACA,CACT,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DNT Field Input Component
|
|
3
|
-
* Wraps any field with a DNT toggle badge
|
|
4
|
-
*
|
|
5
|
-
* Now uses document-type-based configuration: toggling DNT for a field applies to
|
|
6
|
-
* ALL documents of the same type.
|
|
7
|
-
*/
|
|
8
|
-
import React from 'react';
|
|
9
|
-
import { FieldProps } from 'sanity';
|
|
10
|
-
/**
|
|
11
|
-
* Field component that adds DNT badge
|
|
12
|
-
*/
|
|
13
|
-
export declare function DNTFieldInput(props: FieldProps): React.JSX.Element;
|
|
14
|
-
//# sourceMappingURL=DNTFieldInput.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DNTFieldInput.d.ts","sourceRoot":"","sources":["../../../src/components/dnt/DNTFieldInput.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,UAAU,EAAgB,MAAM,QAAQ,CAAC;AAKlD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,qBA+F9C"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* DNT Field Input Component
|
|
4
|
-
* Wraps any field with a DNT toggle badge
|
|
5
|
-
*
|
|
6
|
-
* Now uses document-type-based configuration: toggling DNT for a field applies to
|
|
7
|
-
* ALL documents of the same type.
|
|
8
|
-
*/
|
|
9
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
10
|
-
import { useFormValue } from 'sanity';
|
|
11
|
-
import { Box, Button, Flex, Stack, Text, Tooltip } from '@sanity/ui';
|
|
12
|
-
import { TranslateIcon, BlockElementIcon } from '@sanity/icons';
|
|
13
|
-
import { getDNTStorage } from '../../services/dntServiceManager';
|
|
14
|
-
/**
|
|
15
|
-
* Field component that adds DNT badge
|
|
16
|
-
*/
|
|
17
|
-
export function DNTFieldInput(props) {
|
|
18
|
-
const { renderDefault, schemaType, path } = props;
|
|
19
|
-
// Get document from form context using Sanity hook
|
|
20
|
-
const document = useFormValue([]);
|
|
21
|
-
// Get document info
|
|
22
|
-
const documentId = document?._id;
|
|
23
|
-
const documentType = document?._type;
|
|
24
|
-
const fieldPath = path?.join('.') || '';
|
|
25
|
-
const fieldTitle = schemaType?.title || fieldPath;
|
|
26
|
-
// Don't show DNT badges for plugin configuration documents
|
|
27
|
-
const pluginConfigTypes = ['EL_PluginConfiguration', 'EL_oauth-config', 'EL_translation-plugin-config'];
|
|
28
|
-
if (documentType && pluginConfigTypes.includes(documentType)) {
|
|
29
|
-
return renderDefault(props);
|
|
30
|
-
}
|
|
31
|
-
const [isDNT, setIsDNT] = useState(false);
|
|
32
|
-
const [isLoading, setIsLoading] = useState(true);
|
|
33
|
-
// Load DNT status on mount (based on document type)
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
if (!documentType || !fieldPath) {
|
|
36
|
-
setIsLoading(false);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const loadDNTStatus = async () => {
|
|
40
|
-
try {
|
|
41
|
-
const dntStorage = getDNTStorage();
|
|
42
|
-
const status = await dntStorage.getFieldDNT(documentType, fieldPath);
|
|
43
|
-
setIsDNT(status);
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
console.error('Failed to load DNT status:', error);
|
|
47
|
-
}
|
|
48
|
-
finally {
|
|
49
|
-
setIsLoading(false);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
loadDNTStatus();
|
|
53
|
-
}, [documentType, fieldPath]);
|
|
54
|
-
// Toggle DNT status (applies to all documents of this type)
|
|
55
|
-
const handleToggleDNT = useCallback(async () => {
|
|
56
|
-
if (!documentType || !fieldPath)
|
|
57
|
-
return;
|
|
58
|
-
try {
|
|
59
|
-
const dntStorage = getDNTStorage();
|
|
60
|
-
const newStatus = await dntStorage.toggleFieldDNT(documentType, fieldPath);
|
|
61
|
-
setIsDNT(newStatus);
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
console.error('Failed to toggle DNT:', error);
|
|
65
|
-
}
|
|
66
|
-
}, [documentType, fieldPath]);
|
|
67
|
-
// Don't show badge for system fields or if no document ID
|
|
68
|
-
if (!documentId || !fieldPath || fieldPath.startsWith('_')) {
|
|
69
|
-
return renderDefault(props);
|
|
70
|
-
}
|
|
71
|
-
const tooltipContent = isDNT
|
|
72
|
-
? `This field will NOT be translated for ALL ${documentType} documents. Click to make it translatable.`
|
|
73
|
-
: `This field will be translated. Click to mark as "Do Not Translate" for ALL ${documentType} documents.`;
|
|
74
|
-
return (_jsxs(Stack, { space: 2, children: [_jsx(Box, { children: renderDefault(props) }), !isLoading && (_jsxs(Flex, { align: "center", gap: 2, paddingTop: 2, children: [_jsx(Tooltip, { content: _jsx(Box, { padding: 2, children: _jsx(Text, { size: 1, children: tooltipContent }) }), placement: "top", children: _jsx(Button, { mode: "ghost", tone: isDNT ? 'critical' : 'positive', padding: 2, fontSize: 1, onClick: handleToggleDNT, icon: isDNT ? BlockElementIcon : TranslateIcon, text: isDNT ? 'Do Not Translate' : 'Will Translate' }) }), _jsxs(Text, { muted: true, size: 1, children: ["Translation: ", _jsx("strong", { children: isDNT ? 'Disabled' : 'Enabled' }), " for ", fieldTitle] })] }))] }));
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=DNTFieldInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DNTFieldInput.js","sourceRoot":"","sources":["../../../src/components/dnt/DNTFieldInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dnt/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/dnt/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/config/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration exports
|
|
3
|
-
* Centralized exports for plugin configuration
|
|
4
|
-
*/
|
|
5
|
-
export { pluginConfigSchema, defaultLocaleConfig, commonLocales, validateLocaleCode, createLocaleDefinition, updateLocaleDefinition } from './pluginConfig';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC"}
|
package/dist/config/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration exports
|
|
3
|
-
* Centralized exports for plugin configuration
|
|
4
|
-
*/
|
|
5
|
-
export { pluginConfigSchema, defaultLocaleConfig, commonLocales, validateLocaleCode, createLocaleDefinition, updateLocaleDefinition } from './pluginConfig';
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC"}
|