@crownpeak/dqm-react-component 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +52 -24
  3. package/dist/DQMSidebar.d.ts.map +1 -1
  4. package/dist/ErrorBoundary.d.ts.map +1 -1
  5. package/dist/__tests__/setup.d.ts +1 -0
  6. package/dist/__tests__/setup.d.ts.map +1 -0
  7. package/dist/__tests__/utils.d.ts +145 -0
  8. package/dist/__tests__/utils.d.ts.map +1 -0
  9. package/dist/auth-ui/assets/index-YKFZYENy.js +158 -0
  10. package/dist/auth-ui/index.html +1 -1
  11. package/dist/components/auth/DQMLogin.d.ts.map +1 -1
  12. package/dist/components/auth/index.d.ts +0 -1
  13. package/dist/components/auth/index.d.ts.map +1 -1
  14. package/dist/components/cards/AISummaryCard.d.ts +2 -0
  15. package/dist/components/cards/AISummaryCard.d.ts.map +1 -0
  16. package/dist/components/cards/index.d.ts +1 -0
  17. package/dist/components/cards/index.d.ts.map +1 -1
  18. package/dist/components/common/LanguageSwitch.d.ts +5 -0
  19. package/dist/components/common/LanguageSwitch.d.ts.map +1 -0
  20. package/dist/components/common/LanguageSwitchBase.d.ts +16 -0
  21. package/dist/components/common/LanguageSwitchBase.d.ts.map +1 -0
  22. package/dist/components/common/index.d.ts +1 -0
  23. package/dist/components/common/index.d.ts.map +1 -1
  24. package/dist/components/modals/AISettingsDialog.d.ts +61 -0
  25. package/dist/components/modals/AISettingsDialog.d.ts.map +1 -0
  26. package/dist/components/modals/HighlightModal.d.ts +45 -0
  27. package/dist/components/modals/HighlightModal.d.ts.map +1 -0
  28. package/dist/components/modals/LoginOverlay.d.ts +22 -0
  29. package/dist/components/modals/LoginOverlay.d.ts.map +1 -0
  30. package/dist/components/modals/index.d.ts +9 -0
  31. package/dist/components/modals/index.d.ts.map +1 -0
  32. package/dist/components/renderers/BrowserViewRenderer.d.ts.map +1 -1
  33. package/dist/components/renderers/ShadowDOMRenderer.d.ts.map +1 -1
  34. package/dist/components/sidebar/index.d.ts +1 -0
  35. package/dist/components/sidebar/index.d.ts.map +1 -1
  36. package/dist/context/ai/AIContext.d.ts +13 -0
  37. package/dist/context/ai/AIContext.d.ts.map +1 -0
  38. package/dist/context/ai/index.d.ts +12 -0
  39. package/dist/context/ai/index.d.ts.map +1 -0
  40. package/dist/context/ai/types.d.ts +161 -0
  41. package/dist/context/ai/types.d.ts.map +1 -0
  42. package/dist/context/ai/useAIEngine.d.ts +10 -0
  43. package/dist/context/ai/useAIEngine.d.ts.map +1 -0
  44. package/dist/context/ai/useAISummary.d.ts +10 -0
  45. package/dist/context/ai/useAISummary.d.ts.map +1 -0
  46. package/dist/context/ai/useAITranslation.d.ts +10 -0
  47. package/dist/context/ai/useAITranslation.d.ts.map +1 -0
  48. package/dist/context/ai/useTranslationCache.d.ts +9 -0
  49. package/dist/context/ai/useTranslationCache.d.ts.map +1 -0
  50. package/dist/dqm-widget.esm.js +394 -264
  51. package/dist/dqm-widget.iife.js +76 -25
  52. package/dist/hooks/index.d.ts +10 -0
  53. package/dist/hooks/index.d.ts.map +1 -0
  54. package/dist/hooks/useAnalysis.d.ts +43 -0
  55. package/dist/hooks/useAnalysis.d.ts.map +1 -0
  56. package/dist/hooks/useAuthentication.d.ts +49 -0
  57. package/dist/hooks/useAuthentication.d.ts.map +1 -0
  58. package/dist/hooks/useHighlightActions.d.ts +37 -0
  59. package/dist/hooks/useHighlightActions.d.ts.map +1 -0
  60. package/dist/hooks/useHighlights.d.ts +72 -0
  61. package/dist/hooks/useHighlights.d.ts.map +1 -0
  62. package/dist/html-pages/DQMWidget.d.ts.map +1 -1
  63. package/dist/html-pages/index.d.ts.map +1 -1
  64. package/dist/i18n/auth/de.d.ts +25 -0
  65. package/dist/i18n/auth/de.d.ts.map +1 -0
  66. package/dist/i18n/auth/en.d.ts +26 -0
  67. package/dist/i18n/auth/en.d.ts.map +1 -0
  68. package/dist/i18n/auth/es.d.ts +25 -0
  69. package/dist/i18n/auth/es.d.ts.map +1 -0
  70. package/dist/i18n/auth/index.d.ts +8 -0
  71. package/dist/i18n/auth/index.d.ts.map +1 -0
  72. package/dist/i18n/common/de.d.ts +18 -0
  73. package/dist/i18n/common/de.d.ts.map +1 -0
  74. package/dist/i18n/common/en.d.ts +19 -0
  75. package/dist/i18n/common/en.d.ts.map +1 -0
  76. package/dist/i18n/common/es.d.ts +18 -0
  77. package/dist/i18n/common/es.d.ts.map +1 -0
  78. package/dist/i18n/common/index.d.ts +8 -0
  79. package/dist/i18n/common/index.d.ts.map +1 -0
  80. package/dist/i18n/demo/de.d.ts +104 -0
  81. package/dist/i18n/demo/de.d.ts.map +1 -0
  82. package/dist/i18n/demo/en.d.ts +105 -0
  83. package/dist/i18n/demo/en.d.ts.map +1 -0
  84. package/dist/i18n/demo/es.d.ts +104 -0
  85. package/dist/i18n/demo/es.d.ts.map +1 -0
  86. package/dist/i18n/demo/index.d.ts +8 -0
  87. package/dist/i18n/demo/index.d.ts.map +1 -0
  88. package/dist/i18n/index.d.ts +673 -0
  89. package/dist/i18n/index.d.ts.map +1 -0
  90. package/dist/i18n/sidebar/de.d.ts +89 -0
  91. package/dist/i18n/sidebar/de.d.ts.map +1 -0
  92. package/dist/i18n/sidebar/en.d.ts +90 -0
  93. package/dist/i18n/sidebar/en.d.ts.map +1 -0
  94. package/dist/i18n/sidebar/es.d.ts +89 -0
  95. package/dist/i18n/sidebar/es.d.ts.map +1 -0
  96. package/dist/i18n/sidebar/index.d.ts +8 -0
  97. package/dist/i18n/sidebar/index.d.ts.map +1 -0
  98. package/dist/i18n.d.ts +8 -0
  99. package/dist/i18n.d.ts.map +1 -0
  100. package/dist/index.cjs +61 -31
  101. package/dist/index.cjs.map +1 -1
  102. package/dist/index.d.ts +7 -1
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.html +3 -3
  105. package/dist/index.js +17795 -7252
  106. package/dist/index.js.map +1 -1
  107. package/dist/locale.d.ts +25 -0
  108. package/dist/locale.d.ts.map +1 -0
  109. package/dist/mocks/browser.d.ts +23 -0
  110. package/dist/mocks/browser.d.ts.map +1 -0
  111. package/dist/mocks/handlers.d.ts +32 -0
  112. package/dist/mocks/handlers.d.ts.map +1 -0
  113. package/dist/mocks/index.d.ts +7 -0
  114. package/dist/mocks/index.d.ts.map +1 -0
  115. package/dist/mocks/server.d.ts +24 -0
  116. package/dist/mocks/server.d.ts.map +1 -0
  117. package/dist/server/routes/auth.js +0 -10
  118. package/dist/server/routes/auth.js.map +1 -1
  119. package/dist/store/api/dqmApi.d.ts +1793 -0
  120. package/dist/store/api/dqmApi.d.ts.map +1 -0
  121. package/dist/store/api/index.d.ts +6 -0
  122. package/dist/store/api/index.d.ts.map +1 -0
  123. package/dist/store/index.d.ts +57 -0
  124. package/dist/store/index.d.ts.map +1 -0
  125. package/dist/store/localeSlice.d.ts +6 -0
  126. package/dist/store/localeSlice.d.ts.map +1 -0
  127. package/dist/store/slices/aiSlice.d.ts +134 -0
  128. package/dist/store/slices/aiSlice.d.ts.map +1 -0
  129. package/dist/store/slices/analysisSlice.d.ts +54 -0
  130. package/dist/store/slices/analysisSlice.d.ts.map +1 -0
  131. package/dist/store/slices/authSlice.d.ts +170 -0
  132. package/dist/store/slices/authSlice.d.ts.map +1 -0
  133. package/dist/store/slices/highlightSlice.d.ts +188 -0
  134. package/dist/store/slices/highlightSlice.d.ts.map +1 -0
  135. package/dist/store/slices/index.d.ts +12 -0
  136. package/dist/store/slices/index.d.ts.map +1 -0
  137. package/dist/types.d.ts +27 -8
  138. package/dist/types.d.ts.map +1 -1
  139. package/dist/utils/aiJsonClient.d.ts +23 -0
  140. package/dist/utils/aiJsonClient.d.ts.map +1 -0
  141. package/dist/utils/colors/GenerateCategoryColors.d.ts.map +1 -1
  142. package/dist/utils/logger.d.ts +107 -0
  143. package/dist/utils/logger.d.ts.map +1 -0
  144. package/dist/utils/openaiJsonClient.d.ts +8 -0
  145. package/dist/utils/openaiJsonClient.d.ts.map +1 -0
  146. package/dist/utils/sanitizeHtmlDocument.d.ts +4 -0
  147. package/dist/utils/sanitizeHtmlDocument.d.ts.map +1 -0
  148. package/dist/utils/secureStorage.d.ts +95 -0
  149. package/dist/utils/secureStorage.d.ts.map +1 -0
  150. package/dist/utils/storage.d.ts.map +1 -1
  151. package/dist/utils/translationCache.d.ts +45 -0
  152. package/dist/utils/translationCache.d.ts.map +1 -0
  153. package/dist/utils/translationUtils.d.ts +52 -0
  154. package/dist/utils/translationUtils.d.ts.map +1 -0
  155. package/package.json +48 -10
  156. package/AUTHENTICATION.md +0 -281
  157. package/BACKEND-API.md +0 -1829
  158. package/DEVELOPMENT.md +0 -374
  159. package/EXAMPLES.md +0 -381
  160. package/QUICKSTART.md +0 -207
  161. package/dist/auth-ui/assets/index-CczTRrba.js +0 -158
  162. package/dist/components/auth/OAuth2CallbackHandler.d.ts +0 -15
  163. package/dist/components/auth/OAuth2CallbackHandler.d.ts.map +0 -1
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Hooks
3
+ *
4
+ * Custom React hooks for DQM Sidebar functionality.
5
+ */
6
+ export { useAnalysis, type UseAnalysisConfig, type UseAnalysisReturn } from './useAnalysis';
7
+ export { useHighlights, type UseHighlightsConfig, type UseHighlightsReturn } from './useHighlights';
8
+ export { useAuthentication, type UseAuthenticationConfig, type UseAuthenticationReturn } from './useAuthentication';
9
+ export { useHighlightActions, type UseHighlightActionsConfig, type UseHighlightActionsReturn } from './useHighlightActions';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACpH,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { AnalysisData, AnalysisState, SessionType } from '../types';
2
+ export interface UseAnalysisConfig {
3
+ /** Session type (direct API or backend proxy) */
4
+ sessionType: SessionType;
5
+ /** Session token for backend mode */
6
+ sessionToken: string | null;
7
+ /** Credentials for direct mode */
8
+ credentials: {
9
+ apiKey: string;
10
+ websiteId: string;
11
+ } | null;
12
+ /** Auth backend URL for backend mode */
13
+ authBackendUrl?: string;
14
+ /** Debug HTML for testing (bypasses actual page HTML) */
15
+ debugHtml?: string;
16
+ /** Callback when auth error occurs */
17
+ onAuthError?: (error: unknown) => void;
18
+ }
19
+ export interface UseAnalysisReturn {
20
+ /** Current analysis state */
21
+ state: AnalysisState;
22
+ /** Analysis data when completed */
23
+ data: AnalysisData | null;
24
+ /** Original analysis data (before translation) */
25
+ originalData: AnalysisData | null;
26
+ /** Error message if analysis failed */
27
+ error: string | null;
28
+ /** Current asset ID being polled */
29
+ assetId: string | null;
30
+ /** Grouped checkpoints by category */
31
+ groupedCategories: [string, AnalysisData['checkpoints']][];
32
+ /** Start a new analysis */
33
+ startAnalysis: () => Promise<void>;
34
+ /** Reset analysis state */
35
+ resetAnalysis: () => void;
36
+ /** Set analysis data (for translation updates) */
37
+ setData: (data: AnalysisData | null) => void;
38
+ /** Stop polling */
39
+ stopPolling: () => void;
40
+ }
41
+ export declare function useAnalysis(config: UseAnalysisConfig): UseAnalysisReturn;
42
+ export default useAnalysis;
43
+ //# sourceMappingURL=useAnalysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnalysis.d.ts","sourceRoot":"","sources":["../../src/hooks/useAnalysis.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAKzE,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,WAAW,EAAE,WAAW,CAAC;IACzB,qCAAqC;IACrC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kCAAkC;IAClC,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,mCAAmC;IACnC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,kDAAkD;IAClD,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,uCAAuC;IACvC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,oCAAoC;IACpC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sCAAsC;IACtC,iBAAiB,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;IAC3D,2BAA2B;IAC3B,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,2BAA2B;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,kDAAkD;IAClD,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,mBAAmB;IACnB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAmZxE;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { DQMConfig, SessionType } from '../types';
2
+ export interface UseAuthenticationConfig {
3
+ /** DQM configuration */
4
+ config?: DQMConfig;
5
+ /** Translation function for error messages */
6
+ t: (key: string, options?: object) => string;
7
+ /** Callback when auth succeeds */
8
+ onAuthSuccess?: (creds: {
9
+ apiKey: string;
10
+ websiteId: string;
11
+ sessionToken?: string;
12
+ sessionType: SessionType;
13
+ }) => void;
14
+ /** Callback when auth error occurs */
15
+ onAuthError?: (error: Error) => void;
16
+ }
17
+ export interface UseAuthenticationReturn {
18
+ /** Whether user is authenticated */
19
+ isAuthenticated: boolean;
20
+ /** Current credentials */
21
+ credentials: {
22
+ apiKey: string;
23
+ websiteId: string;
24
+ } | null;
25
+ /** Current session token (for backend mode) */
26
+ sessionToken: string | null;
27
+ /** Current session type */
28
+ sessionType: SessionType;
29
+ /** Authentication error message */
30
+ authError: string | null;
31
+ /** Handle successful authentication */
32
+ handleAuthSuccess: (creds: {
33
+ apiKey: string;
34
+ websiteId: string;
35
+ sessionToken?: string;
36
+ sessionType: SessionType;
37
+ }) => void;
38
+ /** Handle authentication error */
39
+ handleAuthError: (error: Error) => void;
40
+ /** Handle logout */
41
+ handleLogout: () => void;
42
+ /** Set auth error manually */
43
+ setAuthError: (error: string | null) => void;
44
+ /** Set is authenticated manually */
45
+ setIsAuthenticated: (value: boolean) => void;
46
+ }
47
+ export declare function useAuthentication(config: UseAuthenticationConfig): UseAuthenticationReturn;
48
+ export default useAuthentication;
49
+ //# sourceMappingURL=useAuthentication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthentication.d.ts","sourceRoot":"","sources":["../../src/hooks/useAuthentication.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQvD,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,8CAA8C;IAC9C,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,kCAAkC;IAClC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,WAAW,CAAC;KAC1B,KAAK,IAAI,CAAC;IACX,sCAAsC;IACtC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAC;IACzB,0BAA0B;IAC1B,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,+CAA+C;IAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2BAA2B;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,mCAAmC;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uCAAuC;IACvC,iBAAiB,EAAE,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,WAAW,CAAC;KAC1B,KAAK,IAAI,CAAC;IACX,kCAAkC;IAClC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,oBAAoB;IACpB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8BAA8B;IAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,oCAAoC;IACpC,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,uBAAuB,CAmJ1F;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { ViewMode } from '../store/slices/highlightSlice';
2
+ import { AnalysisData, Checkpoint } from '../types';
3
+ export interface UseHighlightActionsConfig {
4
+ /** Backend URL for proxy mode */
5
+ authBackendUrl?: string;
6
+ }
7
+ export interface UseHighlightActionsReturn {
8
+ checkpoint: Checkpoint | null;
9
+ checkpointId: string | null;
10
+ viewMode: ViewMode;
11
+ isModalOpen: boolean;
12
+ isLoading: boolean;
13
+ highlightedContent: string;
14
+ totalHighlights: number;
15
+ currentHighlight: number;
16
+ visibleHighlight: number;
17
+ clickedIndicator: number;
18
+ scriptsDisabled: boolean;
19
+ hasAutoScrolled: boolean;
20
+ currentAssetId: string | null;
21
+ fetchHighlightedErrors: (assetId: string, checkpointId: string, analysisData: AnalysisData, openTab?: 'browser' | 'source') => Promise<void>;
22
+ fetchSourceView: (assetId: string, checkpointId: string) => Promise<void>;
23
+ restoreBrowserView: (assetId: string, checkpointId: string) => Promise<void>;
24
+ openAllErrorsInNewTab: (analysisData: AnalysisData) => Promise<void>;
25
+ navigate: (direction: 'next' | 'prev') => void;
26
+ setViewMode: (mode: ViewMode) => void;
27
+ openModal: () => void;
28
+ closeModal: () => void;
29
+ toggleScripts: () => void;
30
+ setTotalHighlights: (count: number) => void;
31
+ setVisibleHighlight: (index: number) => void;
32
+ setHasAutoScrolled: (value: boolean) => void;
33
+ setCurrentAssetId: (assetId: string | null) => void;
34
+ }
35
+ export declare function useHighlightActions(config?: UseHighlightActionsConfig): UseHighlightActionsReturn;
36
+ export default useHighlightActions;
37
+ //# sourceMappingURL=useHighlightActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHighlightActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useHighlightActions.ts"],"names":[],"mappings":"AAWA,OAAO,EA+BL,KAAK,QAAQ,EACd,MAAM,gCAAgC,CAAC;AAOxC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAa,MAAM,UAAU,CAAC;AAGpE,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IAExC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,sBAAsB,EAAE,CACtB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,qBAAqB,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACrD;AAED,wBAAgB,mBAAmB,CACjC,MAAM,CAAC,EAAE,yBAAyB,GACjC,yBAAyB,CA4U3B;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { AnalysisData, SessionType } from '../types';
2
+ export interface UseHighlightsConfig {
3
+ /** Session type (direct API or backend proxy) */
4
+ sessionType: SessionType;
5
+ /** Session token for backend mode */
6
+ sessionToken: string | null;
7
+ /** Credentials for direct mode */
8
+ credentials: {
9
+ apiKey: string;
10
+ websiteId: string;
11
+ } | null;
12
+ /** Auth backend URL for backend mode */
13
+ authBackendUrl?: string;
14
+ /** Translation function for error messages */
15
+ t: (key: string, options?: object) => string;
16
+ }
17
+ export interface UseHighlightsReturn {
18
+ /** Current highlighted HTML content */
19
+ highlightedContent: string;
20
+ /** Whether content is loading */
21
+ isLoading: boolean;
22
+ /** Current view mode */
23
+ viewMode: 'browser' | 'source';
24
+ /** Set view mode */
25
+ setViewMode: (mode: 'browser' | 'source') => void;
26
+ /** Whether the highlight modal is open */
27
+ isModalOpen: boolean;
28
+ /** Current checkpoint being displayed */
29
+ currentCheckpoint: AnalysisData['checkpoints'][0] | null;
30
+ /** Current checkpoint ID */
31
+ currentCheckpointId: string | null;
32
+ /** Total number of highlights in current content */
33
+ totalHighlights: number;
34
+ /** Current highlight index (1-based, from navigation) */
35
+ currentHighlight: number;
36
+ /** Visible highlight index (1-based, from scroll tracking) */
37
+ visibleHighlight: number;
38
+ /** Click indicator for triggering scroll */
39
+ clickedIndicator: number;
40
+ /** Whether scripts are disabled in browser view */
41
+ scriptsDisabled: boolean;
42
+ /** Whether auto-scroll to first has occurred */
43
+ hasAutoScrolled: boolean;
44
+ /** Cached content by checkpoint ID */
45
+ cachedContent: Record<string, {
46
+ browser: string;
47
+ source: string;
48
+ }>;
49
+ /** Fetch highlighted errors for a checkpoint */
50
+ fetchHighlightedErrors: (assetId: string, checkpointId: string, analysisData: AnalysisData, openTab?: 'browser' | 'source') => Promise<void>;
51
+ /** Navigate to next/prev highlight */
52
+ navigateHighlight: (direction: 'prev' | 'next') => void;
53
+ /** Open the highlight modal */
54
+ openModal: () => void;
55
+ /** Close the highlight modal */
56
+ closeModal: () => void;
57
+ /** Set total highlights (from renderer) */
58
+ setTotalHighlights: (count: number) => void;
59
+ /** Set visible highlight (from scroll tracking) */
60
+ setVisibleHighlight: (index: number) => void;
61
+ /** Toggle scripts in browser view */
62
+ toggleScripts: () => void;
63
+ /** Set has auto-scrolled flag */
64
+ setHasAutoScrolled: (value: boolean) => void;
65
+ /** Restore browser view from cache */
66
+ restoreBrowserView: (assetId: string, checkpointId: string) => Promise<void>;
67
+ /** Fetch source view for checkpoint */
68
+ fetchSourceView: (assetId: string, checkpointId: string) => Promise<void>;
69
+ }
70
+ export declare function useHighlights(config: UseHighlightsConfig): UseHighlightsReturn;
71
+ export default useHighlights;
72
+ //# sourceMappingURL=useHighlights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHighlights.d.ts","sourceRoot":"","sources":["../../src/hooks/useHighlights.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI1D,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,WAAW,EAAE,WAAW,CAAC;IACzB,qCAAqC;IACrC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kCAAkC;IAClC,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAED,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iCAAiC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,oBAAoB;IACpB,WAAW,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IAClD,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,iBAAiB,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACzD,4BAA4B;IAC5B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,eAAe,EAAE,OAAO,CAAC;IACzB,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,gDAAgD;IAChD,sBAAsB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7I,sCAAsC;IACtC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACxD,+BAA+B;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gCAAgC;IAChC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,2CAA2C;IAC3C,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mDAAmD;IACnD,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,qCAAqC;IACrC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,iCAAiC;IACjC,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,sCAAsC;IACtC,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,uCAAuC;IACvC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,CA2R9E;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DQMWidget.d.ts","sourceRoot":"","sources":["../../src/html-pages/DQMWidget.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,sBAAsB,CAAC;AAQhD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAG3C,YAAY,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAC9C,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAiGD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAiChD,CAAC;AAmOF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,eAAe,EAAE,oBAAoB,WAAW,KAAG,IA0EzF,CAAC"}
1
+ {"version":3,"file":"DQMWidget.d.ts","sourceRoot":"","sources":["../../src/html-pages/DQMWidget.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,sBAAsB,CAAC;AAUhD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAQ3C,YAAY,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAC9C,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAiGD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CA6DhD,CAAC;AAmOF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,eAAe,EAAE,oBAAoB,WAAW,KAAG,IA0EzF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/html-pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CA+B3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAgB1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/html-pages/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CA+B3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAgB1E"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Auth translations - German
3
+ * @see I18N.md for documentation
4
+ */
5
+ export declare const auth: {
6
+ readonly heading: "DQM-Authentifizierung";
7
+ readonly subheading: "Bitte authentifizieren Sie sich für die Qualitätsanalyse";
8
+ readonly enter_credentials: "Zugangsdaten direkt eingeben";
9
+ readonly website_id: "Website-ID";
10
+ readonly website_id_helper: "Ihre Website-Kennung";
11
+ readonly api_key: "API-Schlüssel";
12
+ readonly api_key_helper: "Ihr Crownpeak DQM API-Schlüssel";
13
+ readonly continue: "Weiter";
14
+ readonly or: "ODER";
15
+ readonly login_backend: "Mit Backend-Sitzung anmelden";
16
+ readonly no_credentials: "Keine Zugangsdaten?";
17
+ readonly get_started: "Jetzt mit Crownpeak DQM starten";
18
+ readonly errors: {
19
+ readonly missing_fields: "Bitte API-Schlüssel und Website-ID eingeben";
20
+ readonly non_ascii_key: "API-Schlüssel enthält Nicht-ASCII-Zeichen";
21
+ readonly backend_missing: "Backend-URL nicht konfiguriert";
22
+ readonly failed_redirect: "Weiterleitung zur Login-Seite fehlgeschlagen";
23
+ };
24
+ };
25
+ //# sourceMappingURL=de.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/i18n/auth/de.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;CAmBP,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Auth translations - English (Fallback)
3
+ * @see I18N.md for documentation
4
+ */
5
+ export declare const auth: {
6
+ readonly heading: "DQM Authentication";
7
+ readonly subheading: "Please authenticate to access quality analysis";
8
+ readonly enter_credentials: "Enter credentials directly";
9
+ readonly website_id: "Website ID";
10
+ readonly website_id_helper: "Your website identifier";
11
+ readonly api_key: "API Key";
12
+ readonly api_key_helper: "Your Crownpeak DQM API key";
13
+ readonly continue: "Continue";
14
+ readonly or: "OR";
15
+ readonly login_backend: "Login with Backend Session";
16
+ readonly no_credentials: "Don't have credentials?";
17
+ readonly get_started: "Get started with Crownpeak DQM";
18
+ readonly errors: {
19
+ readonly missing_fields: "Please enter both API Key and Website ID";
20
+ readonly non_ascii_key: "API key contains non-ASCII characters";
21
+ readonly backend_missing: "Backend URL not configured";
22
+ readonly failed_redirect: "Failed to redirect to login page";
23
+ };
24
+ };
25
+ export type AuthTranslationKeys = keyof typeof auth;
26
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/auth/en.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;CAmBP,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,IAAI,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Auth translations - Spanish
3
+ * @see I18N.md for documentation
4
+ */
5
+ export declare const auth: {
6
+ readonly heading: "Autenticación DQM";
7
+ readonly subheading: "Autentícate para acceder al análisis de calidad";
8
+ readonly enter_credentials: "Introducir credenciales directamente";
9
+ readonly website_id: "ID del sitio web";
10
+ readonly website_id_helper: "Tu identificador de sitio web";
11
+ readonly api_key: "Clave API";
12
+ readonly api_key_helper: "Tu clave API de Crownpeak DQM";
13
+ readonly continue: "Continuar";
14
+ readonly or: "O";
15
+ readonly login_backend: "Iniciar sesión con sesión del backend";
16
+ readonly no_credentials: "¿No tienes credenciales?";
17
+ readonly get_started: "Comienza con Crownpeak DQM";
18
+ readonly errors: {
19
+ readonly missing_fields: "Introduce tanto la clave API como el ID del sitio web";
20
+ readonly non_ascii_key: "La clave API contiene caracteres no ASCII";
21
+ readonly backend_missing: "La URL del backend no está configurada";
22
+ readonly failed_redirect: "No se pudo redirigir a la página de inicio de sesión";
23
+ };
24
+ };
25
+ //# sourceMappingURL=es.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/i18n/auth/es.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;CAmBP,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Auth namespace - all languages
3
+ * @see I18N.md for documentation
4
+ */
5
+ export { auth as en } from './en';
6
+ export { auth as de } from './de';
7
+ export { auth as es } from './es';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/i18n/auth/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,MAAM,MAAM,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Common translations - German
3
+ * @see I18N.md for documentation
4
+ */
5
+ export declare const common: {
6
+ readonly language: "Sprache";
7
+ readonly language_switch_label: "Sprache";
8
+ readonly language_en: "Englisch";
9
+ readonly language_de: "Deutsch";
10
+ readonly language_es: "Spanisch";
11
+ readonly source_url: "URL-Override";
12
+ readonly source_user: "Durch Benutzer ausgewählt";
13
+ readonly source_navigator: "Browser-Einstellung";
14
+ readonly source_default: "Standard-Sprache";
15
+ readonly reset: "Zurücksetzen";
16
+ readonly logout: "Abmelden";
17
+ };
18
+ //# sourceMappingURL=de.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/i18n/common/de.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYT,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Common translations - English (Fallback)
3
+ * @see I18N.md for documentation
4
+ */
5
+ export declare const common: {
6
+ readonly language: "Language";
7
+ readonly language_switch_label: "Language";
8
+ readonly language_en: "English";
9
+ readonly language_de: "German";
10
+ readonly language_es: "Spanish";
11
+ readonly source_url: "URL overridden";
12
+ readonly source_user: "Custom selected";
13
+ readonly source_navigator: "Browser setting";
14
+ readonly source_default: "Default locale";
15
+ readonly reset: "Reset";
16
+ readonly logout: "Logout";
17
+ };
18
+ export type CommonTranslationKeys = keyof typeof common;
19
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/i18n/common/en.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYT,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,MAAM,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Common translations - Spanish
3
+ * @see I18N.md for documentation
4
+ */
5
+ export declare const common: {
6
+ readonly language: "Idioma";
7
+ readonly language_switch_label: "Idioma";
8
+ readonly language_en: "Inglés";
9
+ readonly language_de: "Alemán";
10
+ readonly language_es: "Español";
11
+ readonly source_url: "URL sobrescrita";
12
+ readonly source_user: "Seleccionado manualmente";
13
+ readonly source_navigator: "Configuración del navegador";
14
+ readonly source_default: "Idioma predeterminado";
15
+ readonly reset: "Restablecer";
16
+ readonly logout: "Cerrar sesión";
17
+ };
18
+ //# sourceMappingURL=es.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../src/i18n/common/es.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYT,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Common namespace - all languages
3
+ * @see I18N.md for documentation
4
+ */
5
+ export { common as en } from './en';
6
+ export { common as de } from './de';
7
+ export { common as es } from './es';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/i18n/common/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,MAAM,CAAC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Demo translations - German
3
+ * @see I18N.md for documentation
4
+ */
5
+ export declare const demo: {
6
+ readonly login_title: "DQM Widget Test";
7
+ readonly login_subtitle: "Geben Sie Ihre DQM-Zugangsdaten ein, um die Landing Page zu sehen";
8
+ readonly login_website_id: "Website-ID";
9
+ readonly login_api_key: "DQM API-Schlüssel";
10
+ readonly login_cta: "Landing Page anzeigen";
11
+ readonly hero_title: "Ihr Command Center für digitale Qualität";
12
+ readonly hero_subtitle: "Führen Sie Barrierefreiheits- und Qualitätschecks in Sekunden durch – mit geführten Highlights und klaren Handlungsschritten.";
13
+ readonly hero_cta: "Demo-Scan starten";
14
+ readonly features_title: "Alles für barrierefreie Erlebnisse";
15
+ readonly feature1_title: "Qualitätschecks mit einem Klick";
16
+ readonly feature1_body: "Starten Sie Crownpeak DQM direkt von der Seite aus, ohne den Workflow zu verlassen.";
17
+ readonly feature2_title: "Geführte Behebung";
18
+ readonly feature2_body: "Springen Sie zu markierten Problemen mit Quell- und Browseransicht für schnellere Fixes.";
19
+ readonly feature3_title: "Teamfähige Insights";
20
+ readonly feature3_body: "Teilen Sie Berichte, Trends und Checkpoints mit Ihrem Team.";
21
+ readonly stats_title: "Vertrauen von Teams weltweit";
22
+ readonly stat_active_customers: "Aktive Kunden";
23
+ readonly stat_uptime: "Verfügbarkeitsgarantie";
24
+ readonly stat_countries: "Länder im Einsatz";
25
+ readonly stat_support: "Experten-Support";
26
+ readonly testimonials_title: "Das sagen Teams";
27
+ readonly testimonial1_quote: "Die DQM-Sidebar hat unsere Accessibility-Triage halbiert. Highlights und Quellansicht sind ein Game Changer.";
28
+ readonly testimonial1_name: "Jordan Lee";
29
+ readonly testimonial1_title: "Lead Accessibility Engineer, Northwind";
30
+ readonly testimonial2_quote: "Endlich ein reproduzierbarer Prozess für konforme Seiten. Die geführte Navigation hält alle auf Kurs.";
31
+ readonly testimonial2_name: "Priya Desai";
32
+ readonly testimonial2_title: "Digital Experience Manager, Fabrikam";
33
+ readonly testimonial3_quote: "Schnell, zuverlässig und leicht auszurollen. DQM macht Qualität messbar.";
34
+ readonly testimonial3_name: "Alex Müller";
35
+ readonly testimonial3_title: "Product Director, Contoso";
36
+ readonly pricing_title: "Einfache, transparente Preise";
37
+ readonly pricing_subtitle: "Wählen Sie den passenden Plan für Ihr Team";
38
+ readonly plan_starter: "Starter";
39
+ readonly plan_starter_feat1: "10 GB Speicher";
40
+ readonly plan_starter_feat2: "100 GB Bandbreite";
41
+ readonly plan_starter_feat3: "E-Mail-Support";
42
+ readonly plan_starter_feat4: "99,9 % Verfügbarkeit";
43
+ readonly plan_cta_outline: "Jetzt starten";
44
+ readonly plan_badge_popular: "Beliebt";
45
+ readonly plan_pro: "Professional";
46
+ readonly plan_pro_feat1: "100 GB Speicher";
47
+ readonly plan_pro_feat2: "1 TB Bandbreite";
48
+ readonly plan_pro_feat3: "Priorisierter Support";
49
+ readonly plan_pro_feat4: "99,99 % Verfügbarkeit";
50
+ readonly plan_pro_feat5: "Erweiterte Analysen";
51
+ readonly plan_cta_primary: "Jetzt starten";
52
+ readonly plan_enterprise: "Enterprise";
53
+ readonly plan_enterprise_price: "Individuell";
54
+ readonly plan_ent_feat1: "Unbegrenzter Speicher";
55
+ readonly plan_ent_feat2: "Unbegrenzte Bandbreite";
56
+ readonly plan_ent_feat3: "24/7 Telefon-Support";
57
+ readonly plan_ent_feat4: "99,99 % SLA";
58
+ readonly plan_ent_feat5: "Dedizierter Manager";
59
+ readonly plan_cta_contact: "Vertrieb kontaktieren";
60
+ readonly cta_title: "Bereit zum Start?";
61
+ readonly cta_subtitle: "Schließen Sie sich Tausenden Unternehmen an, die bereits Cloudify nutzen. Keine Kreditkarte erforderlich.";
62
+ readonly cta_button: "Kostenlosen Test starten";
63
+ readonly footer_brand: "Cloudify";
64
+ readonly footer_tagline: "Moderne Cloud-Infrastruktur für die nächste Generation von Anwendungen.";
65
+ readonly footer_icon_speed: "Performance-Insights";
66
+ readonly footer_icon_security: "Sicherheits-Highlights";
67
+ readonly footer_icon_growth: "Wachstumsmetriken";
68
+ readonly footer_col_product: "Produkt";
69
+ readonly footer_col_company: "Unternehmen";
70
+ readonly footer_col_resources: "Ressourcen";
71
+ readonly footer_col_support: "Support";
72
+ readonly footer_link_features: "Funktionen";
73
+ readonly footer_link_pricing: "Preise";
74
+ readonly footer_link_integrations: "Integrationen";
75
+ readonly footer_link_docs: "Dokumentation";
76
+ readonly footer_link_contact: "Kontakt";
77
+ readonly footer_link_about: "Über uns";
78
+ readonly footer_link_blog: "Blog";
79
+ readonly footer_link_careers: "Karriere";
80
+ readonly footer_link_press: "Presse";
81
+ readonly footer_link_presskit: "Pressekit";
82
+ readonly footer_link_faq: "FAQ";
83
+ readonly footer_link_guides: "Leitfäden";
84
+ readonly footer_link_api: "API-Dokumentation";
85
+ readonly footer_link_community: "Community";
86
+ readonly footer_link_status: "Status";
87
+ readonly footer_link_help: "Hilfecenter";
88
+ readonly footer_link_terms: "Nutzungsbedingungen";
89
+ readonly footer_link_privacy: "Datenschutz";
90
+ readonly footer_link_cookies: "Cookie-Richtlinie";
91
+ readonly footer_copyright: "© 2025 Cloudify. Alle Rechte vorbehalten. |";
92
+ readonly editor_title: "HTML-Editor";
93
+ readonly debug_mode: "Debug-Modus aktiv";
94
+ readonly debug_desc: "Das DQM-Widget analysiert den benutzerdefinierten HTML-Code aus dem Editor anstelle des Seiteninhalts. Ihr HTML wird automatisch in IndexedDB gespeichert.";
95
+ readonly tab_editor: "HTML-Editor";
96
+ readonly tab_preview: "Vorschau";
97
+ readonly loading_html: "HTML wird aus IndexedDB geladen...";
98
+ readonly reset_default: "Auf Standard zurücksetzen";
99
+ readonly preview_html: "HTML ansehen";
100
+ readonly auto_saved: "Automatisch in IndexedDB gespeichert";
101
+ readonly close: "Schließen";
102
+ readonly analyze_custom_html: "Benutzerdefiniertes HTML analysieren";
103
+ };
104
+ //# sourceMappingURL=de.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../src/i18n/demo/de.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGP,CAAC"}