feedback-vos 1.0.9 → 1.0.11
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 +6 -3
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +115 -42
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +115 -42
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,7 +35,8 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
35
35
|
owner: process.env.NEXT_PUBLIC_GITHUB_OWNER!,
|
|
36
36
|
repo: process.env.NEXT_PUBLIC_GITHUB_REPO!,
|
|
37
37
|
}}
|
|
38
|
-
position=
|
|
38
|
+
position={process.env.NEXT_PUBLIC_FEEDBACK_POSITION as 'bottom-right' | 'bottom-left' | undefined}
|
|
39
|
+
language={process.env.NEXT_PUBLIC_FEEDBACK_LANG as 'en' | 'nl' | undefined}
|
|
39
40
|
/>
|
|
40
41
|
</body>
|
|
41
42
|
</html>
|
|
@@ -53,7 +54,8 @@ export default function RootLayout({ children }: { children: React.ReactNode })
|
|
|
53
54
|
NEXT_PUBLIC_GITHUB_TOKEN=your_github_token_here
|
|
54
55
|
NEXT_PUBLIC_GITHUB_OWNER=your-username
|
|
55
56
|
NEXT_PUBLIC_GITHUB_REPO=your-repo-name
|
|
56
|
-
NEXT_PUBLIC_FEEDBACK_POSITION=bottom-right # optional: bottom-left
|
|
57
|
+
NEXT_PUBLIC_FEEDBACK_POSITION=bottom-right # optional: bottom-left, top-right, top-left
|
|
58
|
+
NEXT_PUBLIC_FEEDBACK_LANG=nl # optional: 'nl' for Dutch, 'en' for English (default)
|
|
57
59
|
```
|
|
58
60
|
|
|
59
61
|
**Important:** `owner` and `repo` are case-sensitive. Ensure Issues are enabled in your repository.
|
|
@@ -69,7 +71,8 @@ interface WidgetProps {
|
|
|
69
71
|
repo: string;
|
|
70
72
|
screenshotPath?: string; // default: '.feedback-vos'
|
|
71
73
|
};
|
|
72
|
-
position?: 'bottom-right' | 'bottom-left';
|
|
74
|
+
position?: 'bottom-right' | 'bottom-left'; // or use NEXT_PUBLIC_FEEDBACK_POSITION env var
|
|
75
|
+
language?: 'en' | 'nl'; // defaults to 'en', or use NEXT_PUBLIC_FEEDBACK_LANG env var
|
|
73
76
|
}
|
|
74
77
|
```
|
|
75
78
|
|
package/dist/index.d.mts
CHANGED
|
@@ -10,8 +10,9 @@ interface WidgetProps {
|
|
|
10
10
|
integration: 'github';
|
|
11
11
|
githubConfig: GitHubConfig;
|
|
12
12
|
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
13
|
+
language?: 'en' | 'nl';
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
declare function Widget({ integration, githubConfig, position }: WidgetProps): react_jsx_runtime.JSX.Element;
|
|
16
|
+
declare function Widget({ integration, githubConfig, position, language, }: WidgetProps): react_jsx_runtime.JSX.Element;
|
|
16
17
|
|
|
17
18
|
export { type GitHubConfig, Widget, type WidgetProps };
|
package/dist/index.d.ts
CHANGED
|
@@ -10,8 +10,9 @@ interface WidgetProps {
|
|
|
10
10
|
integration: 'github';
|
|
11
11
|
githubConfig: GitHubConfig;
|
|
12
12
|
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
13
|
+
language?: 'en' | 'nl';
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
declare function Widget({ integration, githubConfig, position }: WidgetProps): react_jsx_runtime.JSX.Element;
|
|
16
|
+
declare function Widget({ integration, githubConfig, position, language, }: WidgetProps): react_jsx_runtime.JSX.Element;
|
|
16
17
|
|
|
17
18
|
export { type GitHubConfig, Widget, type WidgetProps };
|
package/dist/index.js
CHANGED
|
@@ -14,14 +14,69 @@ var html2canvas__default = /*#__PURE__*/_interopDefault(html2canvas);
|
|
|
14
14
|
var bugImageUrl = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTcuNzUwMDcgNEM4Ljc1MDA3IDMgOC4wMDAwNyAwIDYuMzEyMDcgMEM0LjYyNDA3IDAgNC43NTAwNyAyIDUuNzUwMDcgMkM2Ljc1MDA3IDIgNi43NTAwNyA0IDYuNzUwMDcgNUM2Ljc1MDA3IDYgNy43NTAwNyA0IDcuNzUwMDcgNFpNMy41NjcwNyA1LjcyQzQuNTY3MDcgNC43MiAzLjgxNzA3IDEuNzIgMi4xMjkwNyAxLjcyQzAuNDQxMDY4IDEuNzIgMC41NjcwNjggMy43MiAxLjU2NzA3IDMuNzJDMi41NjcwNyAzLjcyIDIuNTY3MDcgNS43MiAyLjU2NzA3IDYuNzJDMi41NjcwNyA3LjcyIDMuNTY3MDcgNS43MiAzLjU2NzA3IDUuNzJaIiBmaWxsPSIjQUE4REQ4Ii8+CjxwYXRoIGQ9Ik0yOS45NDIgMzIuODU2QzMwLjEzMSAzMy42NjQgMzEuMTY5IDM1LjEzNiAzMS45NzQgMzQuOTQ3QzMyLjc4IDM0Ljc1NyAzMy4wNTEgMzIuOTc2IDMyLjg2MiAzMi4xN0MzMi42NzMgMzEuMzYyIDMxLjg2NCAzMC44NjMgMzEuMDU4IDMxLjA1M0MzMC4yNTMgMzEuMjQzIDI5Ljc1MiAzMi4wNSAyOS45NDIgMzIuODU2Wk0yNC41MDggMzMuNTA1QzI0LjUxMSAzNC4zMzUgMjUuMTg5IDM2LjAwMyAyNi4wMTcgMzZDMjYuODQ1IDM1Ljk5NiAyNy41MTEgMzQuMzIzIDI3LjUwOCAzMy40OTRDMjcuNTA1IDMyLjY2NSAyNi44MzEgMzEuOTk3IDI2LjAwMyAzMS45OTlDMjUuMTc1IDMyLjAwMyAyNC41MDUgMzIuNjc2IDI0LjUwOCAzMy41MDVaTTE5LjIzNyAzMS4wNTlDMTguOTExIDMxLjgyMyAxOC44NzIgMzMuNjIyIDE5LjYzMyAzMy45NDlDMjAuMzk2IDM0LjI3MyAyMS42NyAzMy4wMDIgMjEuOTk2IDMyLjIzOUMyMi4zMjEgMzEuNDc3IDIxLjk2OCAzMC41OTYgMjEuMjA3IDMwLjI2OUMyMC40NDUgMjkuOTQ0IDE5LjU2NCAzMC4yOTYgMTkuMjM3IDMxLjA1OVpNMTQuMjA2IDIwLjAxOUMxMy4zOTQgMjAuMTkxIDExLjg5OCAyMS4xOTIgMTIuMDY3IDIyLjAwMkMxMi4yNCAyMi44MTIgMTQuMDEyIDIzLjEyNiAxNC44MjQgMjIuOTU1QzE1LjYzNSAyMi43ODQgMTYuMTUzIDIxLjk4OCAxNS45ODQgMjEuMTc4QzE1LjgxMiAyMC4zNjggMTUuMDE5IDE5Ljg0OCAxNC4yMDYgMjAuMDE5Wk0xMi4xNjkgMTUuMDE5QzExLjM1NyAxNS4xOTEgOS44NjEwNCAxNi4xOTIgMTAuMDMgMTcuMDAyQzEwLjIwMyAxNy44MTIgMTEuOTc1IDE4LjEyNiAxMi43ODcgMTcuOTU1QzEzLjU5OCAxNy43ODQgMTQuMTE2IDE2Ljk4OCAxMy45NDcgMTYuMTc4QzEzLjc3NSAxNS4zNjggMTIuOTgxIDE0Ljg0OCAxMi4xNjkgMTUuMDE5WiIgZmlsbD0iIzc0NEVBQSIvPgo8cGF0aCBkPSJNMjcuNTc5MSAzNEMzMC40MSAzNCAzMi41MDUgMzMuMTIzIDMyLjg0NSAzMi45NzNDMzUuMTE2MSAzMS45NjMgMzYuMTM4MSAyOS4zMDQgMzUuMTI5MSAyNy4wMzRDMzQuMTMwMSAyNC43ODQgMzEuNTEzMSAyMy43NTkgMjkuMjU3MSAyNC43MkMyOS4xMjQxIDI0Ljc3IDI3LjQ2NDEgMjUuMzY5IDI1LjkxNDEgMjQuNjQ4QzI0LjA2MzEgMjMuNzg3IDIyLjkxOTEgMjEuMzM5IDIyLjI4NjEgMTkuNDM5QzIyLjE0MjEgMTkuMDA5IDIxLjkwMTEgMTguMTY1IDIxLjYgMTcuMTIzQzE5LjczNDEgMTAuNjUyIDE4Ljc2ODEgOC44Mzc5OSAxNy42MTcxIDcuMzAyOTlDMTMuOTA2IDIuMzUxOTkgOC4wMjUwNSAyLjAwNjk5IDUuMTM0MDUgMi41ODY5OUMyLjY5NzA1IDMuMDczOTkgMS4xMTYwNSA1LjQ0NDk5IDEuNjA0MDUgNy44ODE5OUMyLjA5MjA1IDEwLjMyIDQuNDY0MDUgMTEuOTAyIDYuOTAwMDUgMTEuNDEyQzcuMDYyMDUgMTEuMzg2IDkuMTA0MDUgMTEuMTA2IDEwLjMyNDEgMTIuNTgxQzEwLjk2NzEgMTMuODY4IDEyLjQwNDEgMTcuNzA5IDEyLjk1NDEgMTkuNjE1QzEzLjMwMDEgMjAuODE0IDEzLjU4MzEgMjEuNzg2IDEzLjc0ODEgMjIuMjgyQzE1LjUyMTEgMjcuNTk5IDE4LjQxNDEgMzEuMTc1IDIyLjM1MTEgMzIuOTExQzI0LjIwMzEgMzMuNzI5IDI2LjAwNTEgMzQgMjcuNTc5MSAzNFoiIGZpbGw9IiM5MjY2Q0MiLz4KPHBhdGggZD0iTTcuMDE3MDkgNkM3LjU2OTM3IDYgOC4wMTcwOSA1LjU1MjI4IDguMDE3MDkgNUM4LjAxNzA5IDQuNDQ3NzIgNy41NjkzNyA0IDcuMDE3MDkgNEM2LjQ2NDgxIDQgNi4wMTcwOSA0LjQ0NzcyIDYuMDE3MDkgNUM2LjAxNzA5IDUuNTUyMjggNi40NjQ4MSA2IDcuMDE3MDkgNloiIGZpbGw9IiMyMDIwMjQiLz4KPHBhdGggZD0iTTMxLjI1ODEgMzIuOTY0QzMxLjE2OTEgMzIuOTY0IDMxLjA3ODEgMzIuOTUyIDMwLjk4OTEgMzIuOTI4QzMwLjQ1NzEgMzIuNzggMzAuMTQ1MSAzMi4yMjkgMzAuMjkzMSAzMS42OTdDMzEuMDUwMSAyOC45NzUgMjkuNTIzMSAyNy4xNTUgMjkuNTA4MSAyNy4xMzdDMjkuMTQ5MSAyNi43MTggMjkuMTk2MSAyNi4wODYgMjkuNjE1MSAyNS43MjdDMzAuMDMzMSAyNS4zNjggMzAuNjY2MSAyNS40MTUgMzEuMDI1MSAyNS44MzRDMzEuMTE3MSAyNS45NDEgMzMuMjU5MSAyOC40OTQgMzIuMjIwMSAzMi4yMzFDMzIuMDk4MSAzMi42NzQgMzEuNjk1MSAzMi45NjQgMzEuMjU4MSAzMi45NjRaTTI0LjA1OTEgMzIuNDAxQzIzLjgxNDEgMzIuNDAxIDIzLjU2OTEgMzIuMzEyIDIzLjM3NTEgMzIuMTMxQzIyLjk3MjEgMzEuNzUzIDIyLjk1MTEgMzEuMTIgMjMuMzI4MSAzMC43MTdDMjQuODEzMSAyOS4xMyAyNC43ODExIDI2LjUyNCAyNC43ODAxIDI2LjQ5N0MyNC43NjQxIDI1Ljk0NSAyNS4xOTkxIDI1LjQ4NSAyNS43NTIxIDI1LjQ2OUMyNi4yOTQxIDI1LjQ2NCAyNi43NjUxIDI1Ljg4OCAyNi43ODAxIDI2LjQ0MUMyNi43ODQxIDI2LjU4IDI2Ljg1MzEgMjkuODc4IDI0Ljc4OTEgMzIuMDg1QzI0LjU5MjEgMzIuMjk1IDI0LjMyNTEgMzIuNDAxIDI0LjA1OTEgMzIuNDAxWk0xNS41MTcxIDIzLjcwNUMxNS4wMzcxIDIzLjcwNSAxNC42MTMxIDIzLjM1OCAxNC41MzIxIDIyLjg2OEMxNC40NDIxIDIyLjMyNCAxNC44MTAxIDIxLjgwOCAxNS4zNTUxIDIxLjcxOUMxOC40MjkxIDIxLjIwOSAyMC4xMjkxIDE5LjM0MiAyMC4xNDYxIDE5LjMyM0MyMC41MTExIDE4LjkxMyAyMS4xNDQxIDE4Ljg3NCAyMS41NTUxIDE5LjIzOUMyMS45NjcxIDE5LjYwNCAyMi4wMDgxIDIwLjIzMiAyMS42NDYxIDIwLjY0NUMyMS41NTkxIDIwLjc0NCAxOS40OTAxIDIzLjA2IDE1LjY4MjEgMjMuNjkxQzE1LjYyNjEgMjMuNzAxIDE1LjU3MTEgMjMuNzA1IDE1LjUxNzEgMjMuNzA1Wk0xOC40MzgxIDI4LjU2MkMxOC4wMTMxIDI4LjU2MiAxNy42MTkxIDI4LjI5IDE3LjQ4NDEgMjcuODY0QzE3LjMxODEgMjcuMzM4IDE3LjYxMDEgMjYuNzc1IDE4LjEzNjEgMjYuNjA5QzIwLjgyOTEgMjUuNzU2IDIyLjAxNjEgMjMuNzc5IDIyLjAyODEgMjMuNzU5QzIyLjMwODEgMjMuMjgyIDIyLjkyMDEgMjMuMTIyIDIzLjM5NjEgMjMuNDAyQzIzLjg3MzEgMjMuNjgxIDI0LjAzMjEgMjQuMjk1IDIzLjc1MzEgMjQuNzdDMjMuNjkwMSAyNC44NzggMjIuMTU4MSAyNy40MzMgMTguNzQwMSAyOC41MTRDMTguNjM5MSAyOC41NDcgMTguNTM3MSAyOC41NjIgMTguNDM4MSAyOC41NjJaTTEzLjgxOTEgMTcuODkyQzEzLjMyMzEgMTcuODkyIDEyLjg5MjEgMTcuNTIzIDEyLjgyODEgMTcuMDE3QzEyLjc1OTEgMTYuNDY5IDEzLjE0NzEgMTUuOTY5IDEzLjY5NTEgMTUuODk5QzE2LjM4NDEgMTUuNTU5IDE4LjM1MjEgMTMuOTI4IDE4LjM3MTEgMTMuOTExQzE4Ljc5MzEgMTMuNTU3IDE5LjQyNDEgMTMuNjA4IDE5Ljc3OTEgMTQuMDNDMjAuMTM1MSAxNC40NTEgMjAuMDg0MSAxNS4wOCAxOS42NjQxIDE1LjQzN0MxOS41NjcxIDE1LjUyIDE3LjI0NDEgMTcuNDY2IDEzLjk0NjEgMTcuODgzQzEzLjkwMzEgMTcuODg5IDEzLjg2MTEgMTcuODkyIDEzLjgxOTEgMTcuODkyWk0xMS45OTgxIDEzLjEyNUMxMS41NzMxIDEzLjEyNSAxMS4xNzkxIDEyLjg1MiAxMS4wNDQxIDEyLjQyNEMxMC44NzkxIDExLjg5NyAxMS4xNzExIDExLjMzNiAxMS42OTgxIDExLjE3QzE0LjgyODEgMTAuMTg3IDE1Ljk1MTEgOC40NzggMTUuOTk3MSA4LjQwNkMxNi4yOTIxIDcuOTQ0IDE2LjkwODEgNy44MDEgMTcuMzcyMSA4LjA5NEMxNy44MzcxIDguMzg2IDE3Ljk4MzEgOC45OTMgMTcuNjk2MSA5LjQ2QzE3LjYzNjEgOS41NTcgMTYuMTkwMSAxMS44NTYgMTIuMjk3MSAxMy4wNzlDMTIuMTk4MSAxMy4xMSAxMi4wOTcxIDEzLjEyNSAxMS45OTgxIDEzLjEyNVoiIGZpbGw9IiM3NDRFQUEiLz4KPC9zdmc+";
|
|
15
15
|
var ideaImageUrl = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjMiIGhlaWdodD0iMzUiIHZpZXdCb3g9IjAgMCAyMyAzNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIyLjUgMTAuOTJDMjIuNSAxNy4zNTkgMTcuNSAxOC4zNTkgMTcuNSAyNC4zNkMxNy41IDI3LjQ1OCAxNC4zNzcgMjcuNzE5IDEyIDI3LjcxOUM5Ljk0NyAyNy43MTkgNS40MTQgMjYuOTQgNS40MTQgMjQuMzU4QzUuNDE0IDE4LjM2IDAuNSAxNy4zNiAwLjUgMTAuOTJDMC41IDQuODg5IDUuNzg1IDAgMTEuNTgzIDBDMTcuMzgzIDAgMjIuNSA0Ljg4OSAyMi41IDEwLjkyWiIgZmlsbD0iI0ZGREQ4MyIvPgo8cGF0aCBkPSJNMTUuNjY3IDMyLjM2QzE1LjY2NyAzMy4xODggMTMuNDMzIDM0Ljg2IDExLjUgMzQuODZDOS41NjcwMSAzNC44NiA3LjMzMzAxIDMzLjE4OCA3LjMzMzAxIDMyLjM2QzcuMzMzMDEgMzEuNTMyIDkuNTY2MDEgMzEuODYgMTEuNSAzMS44NkMxMy40MzMgMzEuODYgMTUuNjY3IDMxLjUzMiAxNS42NjcgMzIuMzZaIiBmaWxsPSIjQ0NENkREIi8+CjxwYXRoIGQ9Ik0xNi4yMDcgMTAuMTUzQzE1LjgxNiA5Ljc2MTk5IDE1LjE4NCA5Ljc2MTk5IDE0Ljc5MyAxMC4xNTNMMTEuNSAxMy40NDZMOC4yMDcwMSAxMC4xNTNDNy44MTYwMSA5Ljc2MTk5IDcuMTg0MDEgOS43NjE5OSA2Ljc5MzAxIDEwLjE1M0M2LjQwMjAxIDEwLjU0NCA2LjQwMjAxIDExLjE3NiA2Ljc5MzAxIDExLjU2N0wxMC41IDE1LjI3NFYyNS44NkMxMC41IDI2LjQxMyAxMC45NDggMjYuODYgMTEuNSAyNi44NkMxMi4wNTIgMjYuODYgMTIuNSAyNi40MTMgMTIuNSAyNS44NlYxNS4yNzRMMTYuMjA3IDExLjU2N0MxNi41OTggMTEuMTc2IDE2LjU5OCAxMC41NDQgMTYuMjA3IDEwLjE1M1oiIGZpbGw9IiNGRkNDNEQiLz4KPHBhdGggZD0iTTE3LjUgMzAuODZDMTcuNSAzMS45NjQgMTYuNjA0IDMyLjg2IDE1LjUgMzIuODZIOC41QzcuMzk2IDMyLjg2IDYuNSAzMS45NjQgNi41IDMwLjg2VjI0Ljg2SDE3LjVWMzAuODZaIiBmaWxsPSIjOTlBQUI1Ii8+CjxwYXRoIGQ9Ik01LjQ5OSAzMS44NkM1LjAxOSAzMS44NiA0LjU5NSAzMS41MTMgNC41MTQgMzEuMDI0QzQuNDIzIDMwLjQ4IDQuNzkxIDI5Ljk2NCA1LjMzNiAyOS44NzRMMTcuMzM2IDI3Ljg3NEMxNy44OCAyNy43NzYgMTguMzk2IDI4LjE1MSAxOC40ODYgMjguNjk2QzE4LjU3NyAyOS4yNCAxOC4yMDkgMjkuNzU2IDE3LjY2NCAyOS44NDZMOS42NjQgMzEuODQ2QzkuNjA5IDMxLjg1NiA5LjU1MyAzMS44NiA1LjQ5OSAzMS44NlpNNS40OTkgMjcuODZDNS4wMTkgMjcuODYgNC41OTUgMjcuNTEzIDQuNTE0IDI3LjAyNEM0LjQyMyAyNi40OCA0Ljc5MSAyNS45NjQgNS4zMzYgMjUuODc0TDE3LjMzNiAyMy44NzRDMTcuODggMjMuNzc3IDE4LjM5NiAyNC4xNTEgMTguNDg2IDI0LjY5NkMxOC41NzcgMjUuMjQgMTguMjA5IDI1Ljc1NiAxNy42NjQgMjUuODQ2TDkuNjY0IDI3Ljg0NkM5LjYwOSAyNy44NTYgOS41NTMgMjcuODYgNS40OTkgMjcuODZaIiBmaWxsPSIjQ0NENkREIi8+Cjwvc3ZnPg==";
|
|
16
16
|
var thoughtImageUrl = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzMiIHZpZXdCb3g9IjAgMCAzNiAzMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM1LjE2NjYgMTAuODc1QzM1LjE2NjYgNy4wMDkgMzIuMDMyNiAzLjg3NSAyOC4xNjY2IDMuODc1QzI2Ljk5OTYgMy44NzUgMjUuOTAxNiA0LjE2NSAyNC45MzQ2IDQuNjY5QzIyLjg1MjYgMS44NDIgMTkuNTA5NiAwIDE1LjcyOTYgMEMxMC41OTc2IDAgNi4yNTQ2MyAzLjM4IDQuODA2NjMgOC4wMzZDMi4xNDg2MyA4LjY1MyAwLjE2NjYyNiAxMS4wMyAwLjE2NjYyNiAxMy44NzVDMC4xNjY2MjYgMTYuODU0IDIuMzQwNjMgMTkuMzIgNS4xODc2MyAxOS43ODhDNS40MDM2MyAyMy43MzcgOC42NjQ2MyAyNi44NzUgMTIuNjY2NiAyNi44NzVDMTQuODQyNiAyNi44NzUgMTYuNzk2NiAyNS45NDIgMTguMTY2NiAyNC40NjJDMTkuNTM2NiAyNS45NDIgMjEuNDg5NiAyNi44NzUgMjMuNjY2NiAyNi44NzVDMjcuODA5NiAyNi44NzUgMzEuMTY2NiAyMy41MTggMzEuMTY2NiAxOS4zNzVDMzEuMTY2NiAxOC42NjUgMzEuMDYxNiAxNy45ODEgMzAuODc3NiAxNy4zM0MzMy4zOTY2IDE2LjI3MSAzNS4xNjY2IDEzLjc4IDM1LjE2NjYgMTAuODc1WiIgZmlsbD0iIzg1QzhGOCIvPgo8cGF0aCBkPSJNNC4xNjY2MyAzMi44NzVDNS44MjM0OCAzMi44NzUgNy4xNjY2MyAzMS41MzE5IDcuMTY2NjMgMjkuODc1QzcuMTY2NjMgMjguMjE4MSA1LjgyMzQ4IDI2Ljg3NSA0LjE2NjYzIDI2Ljg3NUMuNTA5NzcgMjYuODc1IDEuMTY2NjMgMjguMjE4MSAxLjE2NjYzIDI5Ljg3NUMxLjE2NjYzIDMxLjUzMTkgMi41MDk3NyAzMi44NzUgNC4xNjY2MyAzMi44NzVaIiBmaWxsPSIjODVDOEY4Ii8+Cjwvc3ZnPg==";
|
|
17
|
-
function CloseButton({ className = "" }) {
|
|
18
|
-
return /* @__PURE__ */ jsxRuntime.jsx(react.Popover.Button, { className: `text-zinc-400 hover:text-zinc-100 ${className}`, title
|
|
17
|
+
function CloseButton({ className = "", title = "Close feedback form" }) {
|
|
18
|
+
return /* @__PURE__ */ jsxRuntime.jsx(react.Popover.Button, { className: `text-zinc-400 hover:text-zinc-100 ${className}`, title, children: /* @__PURE__ */ jsxRuntime.jsx(phosphorReact.X, { weight: "bold", className: "w-4 h-4" }) });
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
|
|
21
|
+
// src/lib/translations.ts
|
|
22
|
+
var translations = {
|
|
23
|
+
en: {
|
|
24
|
+
widget: {
|
|
25
|
+
button: "Feedback"
|
|
26
|
+
},
|
|
27
|
+
form: {
|
|
28
|
+
header: "Please give us your feedback!",
|
|
29
|
+
closeButton: "Close feedback form"
|
|
30
|
+
},
|
|
31
|
+
types: {
|
|
32
|
+
bug: "Bug",
|
|
33
|
+
idea: "Idea",
|
|
34
|
+
other: "Other"
|
|
35
|
+
},
|
|
36
|
+
content: {
|
|
37
|
+
placeholder: "Tell in detail what is happening",
|
|
38
|
+
sendButton: "Send feedback",
|
|
39
|
+
error: "Failed to send feedback. Please try again."
|
|
40
|
+
},
|
|
41
|
+
success: {
|
|
42
|
+
message: "We appreciate the feedback",
|
|
43
|
+
sendAnother: "I want to send another"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
nl: {
|
|
47
|
+
widget: {
|
|
48
|
+
button: "Feedback"
|
|
49
|
+
},
|
|
50
|
+
form: {
|
|
51
|
+
header: "Geef ons je feedback!",
|
|
52
|
+
closeButton: "Feedback formulier sluiten"
|
|
53
|
+
},
|
|
54
|
+
types: {
|
|
55
|
+
bug: "Bug",
|
|
56
|
+
idea: "Idee",
|
|
57
|
+
other: "Anders"
|
|
58
|
+
},
|
|
59
|
+
content: {
|
|
60
|
+
placeholder: "Vertel in detail wat er gebeurt",
|
|
61
|
+
sendButton: "Feedback versturen",
|
|
62
|
+
error: "Feedback versturen mislukt. Probeer het opnieuw."
|
|
63
|
+
},
|
|
64
|
+
success: {
|
|
65
|
+
message: "Bedankt voor je feedback",
|
|
66
|
+
sendAnother: "Ik wil nog een sturen"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
function getTranslations(lang = "en") {
|
|
71
|
+
return translations[lang];
|
|
72
|
+
}
|
|
73
|
+
function FeedbackTypeStep({ onFeedbackTypeChanged, language }) {
|
|
74
|
+
const t = getTranslations(language);
|
|
75
|
+
const feedbackTypes = getFeedbackTypes(language);
|
|
21
76
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
22
77
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "flex items-center justify-between w-full gap-2", children: [
|
|
23
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xl leading-6", children:
|
|
24
|
-
/* @__PURE__ */ jsxRuntime.jsx(CloseButton, {})
|
|
78
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xl leading-6", children: t.form.header }),
|
|
79
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseButton, { title: t.form.closeButton })
|
|
25
80
|
] }),
|
|
26
81
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex py-8 gap-2 w-full", children: Object.entries(feedbackTypes).map(([key, value]) => {
|
|
27
82
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -460,8 +515,11 @@ function FeedbackContentStep({
|
|
|
460
515
|
onFeedbackRestartRequest,
|
|
461
516
|
onFeedbackSent,
|
|
462
517
|
integration,
|
|
463
|
-
githubConfig
|
|
518
|
+
githubConfig,
|
|
519
|
+
language
|
|
464
520
|
}) {
|
|
521
|
+
const t = getTranslations(language);
|
|
522
|
+
const feedbackTypes = getFeedbackTypes(language);
|
|
465
523
|
const [screenshot, setScreenshot] = react$1.useState(null);
|
|
466
524
|
const feedbackTypeData = feedbackTypes[feedbackType];
|
|
467
525
|
const [comment, setComment] = react$1.useState("");
|
|
@@ -485,7 +543,7 @@ function FeedbackContentStep({
|
|
|
485
543
|
} catch (error) {
|
|
486
544
|
console.error("Error sending feedback:", error);
|
|
487
545
|
setIsSendingFeedback(false);
|
|
488
|
-
alert(
|
|
546
|
+
alert(t.content.error);
|
|
489
547
|
}
|
|
490
548
|
}
|
|
491
549
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -510,14 +568,14 @@ function FeedbackContentStep({
|
|
|
510
568
|
),
|
|
511
569
|
feedbackTypeData.title
|
|
512
570
|
] }),
|
|
513
|
-
/* @__PURE__ */ jsxRuntime.jsx(CloseButton, { className: "absolute top-5 right-5" })
|
|
571
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseButton, { className: "absolute top-5 right-5", title: t.form.closeButton })
|
|
514
572
|
] }),
|
|
515
573
|
/* @__PURE__ */ jsxRuntime.jsxs("form", { onSubmit: handleSubmitFeedback, className: "my-4 w-full", children: [
|
|
516
574
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
517
575
|
"textarea",
|
|
518
576
|
{
|
|
519
577
|
className: "min-w-[384px] w-full min-h-[112px] text-sm \n placeholder-zinc-400 text-zinc-100 border-zinc-600 bg-transparent rounded-md \n focus:border-brand-500 focus:ring-brand-500 focus:ring-1 resize-none focus:outline-none\n scrollbar-thumb-zinc-700 scrollbar-track-transparent scrollbar-thin",
|
|
520
|
-
placeholder:
|
|
578
|
+
placeholder: t.content.placeholder,
|
|
521
579
|
onChange: (e) => setComment(e.target.value)
|
|
522
580
|
}
|
|
523
581
|
),
|
|
@@ -535,58 +593,62 @@ function FeedbackContentStep({
|
|
|
535
593
|
type: "submit",
|
|
536
594
|
disabled: comment.length === 0 || isSendingFeedback,
|
|
537
595
|
className: "p-2 bg-brand-500 rounded-md border-transparent flex-1 justify-center\n items-center text-sm hover:bg-brand-300 focus:outline-none focus:ring-2\n focus:ring-offset-2 focus:ring-offset-zinc-900 focus:ring-brand-500\n transition-colors disabled:opacity-50 disabled:cursor-not-allowed\n disabled:hover:bg-brand-500",
|
|
538
|
-
children: isSendingFeedback ? /* @__PURE__ */ jsxRuntime.jsx(Loading, {}) :
|
|
596
|
+
children: isSendingFeedback ? /* @__PURE__ */ jsxRuntime.jsx(Loading, {}) : t.content.sendButton
|
|
539
597
|
}
|
|
540
598
|
)
|
|
541
599
|
] })
|
|
542
600
|
] })
|
|
543
601
|
] });
|
|
544
602
|
}
|
|
545
|
-
function FeedbackSuccessStep({ onFeedbackRestartRequest }) {
|
|
603
|
+
function FeedbackSuccessStep({ onFeedbackRestartRequest, language }) {
|
|
604
|
+
const t = getTranslations(language);
|
|
546
605
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
547
|
-
/* @__PURE__ */ jsxRuntime.jsx("header", { children: /* @__PURE__ */ jsxRuntime.jsx(CloseButton, {}) }),
|
|
606
|
+
/* @__PURE__ */ jsxRuntime.jsx("header", { children: /* @__PURE__ */ jsxRuntime.jsx(CloseButton, { title: t.form.closeButton }) }),
|
|
548
607
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center py-10 w-[304px]", children: [
|
|
549
608
|
/* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "41", height: "40", viewBox: "0 0 41 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
550
609
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M38.5 34C38.5 36.209 36.709 38 34.5 38H6.5C4.291 38 2.5 36.209 2.5 34V6C2.5 3.791 4.291 2 6.5 2H34.5C36.709 2 38.5 3.791 38.5 6V34Z", fill: "#77B255" }),
|
|
551
610
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M31.78 8.36202C30.624 7.61102 29.076 7.94002 28.322 9.09802L17.436 25.877L12.407 21.227C11.393 20.289 9.81103 20.352 8.87403 21.365C7.93703 22.379 7.99903 23.961 9.01303 24.898L16.222 31.564C16.702 32.009 17.312 32.229 17.918 32.229C18.591 32.229 19.452 31.947 20.017 31.09C20.349 30.584 32.517 11.82 32.517 11.82C33.268 10.661 32.938 9.11302 31.78 8.36202Z", fill: "white" })
|
|
552
611
|
] }),
|
|
553
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xl mt-2", children:
|
|
612
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xl mt-2", children: t.success.message }),
|
|
554
613
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
555
614
|
"button",
|
|
556
615
|
{
|
|
557
616
|
type: "button",
|
|
558
617
|
onClick: onFeedbackRestartRequest,
|
|
559
618
|
className: "py-2 px-6 mt-6 bg-zinc-800 rounded-md border-transparent text-sm leading-6 hover:bg-zinc-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-zinc-900 focus:ring-brand-500 transition-colors",
|
|
560
|
-
children:
|
|
619
|
+
children: t.success.sendAnother
|
|
561
620
|
}
|
|
562
621
|
)
|
|
563
622
|
] })
|
|
564
623
|
] });
|
|
565
624
|
}
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
625
|
+
function getFeedbackTypes(language = "en") {
|
|
626
|
+
const t = getTranslations(language);
|
|
627
|
+
return {
|
|
628
|
+
BUG: {
|
|
629
|
+
title: t.types.bug,
|
|
630
|
+
image: {
|
|
631
|
+
source: bugImageUrl,
|
|
632
|
+
alt: "A purple caterpillar image"
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
IDEA: {
|
|
636
|
+
title: t.types.idea,
|
|
637
|
+
image: {
|
|
638
|
+
source: ideaImageUrl,
|
|
639
|
+
alt: "A Lamp image"
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
OTHER: {
|
|
643
|
+
title: t.types.other,
|
|
644
|
+
image: {
|
|
645
|
+
source: thoughtImageUrl,
|
|
646
|
+
alt: "A thought balloon image"
|
|
647
|
+
}
|
|
586
648
|
}
|
|
587
|
-
}
|
|
588
|
-
}
|
|
589
|
-
function WidgetForm({ integration, githubConfig }) {
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
function WidgetForm({ integration, githubConfig, language }) {
|
|
590
652
|
const [feedbackType, setFeedbackType] = react$1.useState(null);
|
|
591
653
|
const [feedbackSent, setFeedbackSent] = react$1.useState(false);
|
|
592
654
|
function handleRestartFeedback() {
|
|
@@ -594,14 +656,15 @@ function WidgetForm({ integration, githubConfig }) {
|
|
|
594
656
|
setFeedbackType(null);
|
|
595
657
|
}
|
|
596
658
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-zinc-900 p-4 relative rounded-2xl mb-4 flex flex-col items-center shadow-lg w-[calc(100vw-2rem)] md:w-auto", children: [
|
|
597
|
-
feedbackSent ? /* @__PURE__ */ jsxRuntime.jsx(FeedbackSuccessStep, { onFeedbackRestartRequest: handleRestartFeedback }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: !feedbackType ? /* @__PURE__ */ jsxRuntime.jsx(FeedbackTypeStep, { onFeedbackTypeChanged: setFeedbackType }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
659
|
+
feedbackSent ? /* @__PURE__ */ jsxRuntime.jsx(FeedbackSuccessStep, { onFeedbackRestartRequest: handleRestartFeedback, language }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: !feedbackType ? /* @__PURE__ */ jsxRuntime.jsx(FeedbackTypeStep, { onFeedbackTypeChanged: setFeedbackType, language }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
598
660
|
FeedbackContentStep,
|
|
599
661
|
{
|
|
600
662
|
feedbackType,
|
|
601
663
|
onFeedbackRestartRequest: handleRestartFeedback,
|
|
602
664
|
onFeedbackSent: () => setFeedbackSent(true),
|
|
603
665
|
integration,
|
|
604
|
-
githubConfig
|
|
666
|
+
githubConfig,
|
|
667
|
+
language
|
|
605
668
|
}
|
|
606
669
|
) }),
|
|
607
670
|
/* @__PURE__ */ jsxRuntime.jsx("footer", { className: "text-xs text-neutral-400", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -616,11 +679,20 @@ function WidgetForm({ integration, githubConfig }) {
|
|
|
616
679
|
) })
|
|
617
680
|
] });
|
|
618
681
|
}
|
|
682
|
+
function getDefaultLanguage() {
|
|
683
|
+
if (typeof process !== "undefined" && process.env.NEXT_PUBLIC_FEEDBACK_LANG === "nl") {
|
|
684
|
+
return "nl";
|
|
685
|
+
}
|
|
686
|
+
return "en";
|
|
687
|
+
}
|
|
619
688
|
function Widget({
|
|
620
689
|
integration,
|
|
621
690
|
githubConfig,
|
|
622
|
-
position = "bottom-right"
|
|
691
|
+
position = "bottom-right",
|
|
692
|
+
language
|
|
623
693
|
}) {
|
|
694
|
+
const finalLanguage = language || getDefaultLanguage();
|
|
695
|
+
const t = getTranslations(finalLanguage);
|
|
624
696
|
const positionClasses = {
|
|
625
697
|
"bottom-right": "bottom-4 right-4 md:bottom-8 md:right-8",
|
|
626
698
|
"bottom-left": "bottom-4 left-4 md:bottom-8 md:left-8",
|
|
@@ -633,14 +705,15 @@ function Widget({
|
|
|
633
705
|
WidgetForm,
|
|
634
706
|
{
|
|
635
707
|
integration,
|
|
636
|
-
githubConfig
|
|
708
|
+
githubConfig,
|
|
709
|
+
language: finalLanguage
|
|
637
710
|
}
|
|
638
711
|
) }),
|
|
639
712
|
/* @__PURE__ */ jsxRuntime.jsxs(react.Popover.Button, { className: "bg-brand-500 rounded-full px-3 h-12 text-white flex items-center group focus:outline-none", children: [
|
|
640
713
|
/* @__PURE__ */ jsxRuntime.jsx(phosphorReact.ChatTeardropDots, { className: "w-6 h-6" }),
|
|
641
714
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "max-w-0 overflow-hidden group-hover:max-w-xs transition-all duration-500 ease-linear", children: [
|
|
642
715
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pl-2" }),
|
|
643
|
-
|
|
716
|
+
t.widget.button
|
|
644
717
|
] })
|
|
645
718
|
] })
|
|
646
719
|
] });
|