+
+
+
+
{
+ setGitlabUrl(e.target.value);
+ if (validationError) setValidationError(null);
+ }}
+ onKeyDown={(e) => {
+ if (e.key === 'Enter' && canSubmit && !isLoading) {
+ e.preventDefault();
+ handleAnalyze();
+ }
+ }}
+ disabled={isLoading}
+ placeholder="https://gitlab.com/owner/repo"
+ autoComplete="url"
+ spellCheck={false}
+ className="flex-1 border-none bg-transparent font-mono text-sm text-text-primary outline-none placeholder:text-text-muted disabled:opacity-50"
+ />
+ {gitlabUrl.length > 10 && (
+
+ {isValidGitlabUrl(gitlabUrl) ? (
+
+ ) : (
+
+ )}
+
+ )}
+
+
+ Supports GitLab.com and self-hosted GitLab instances.
+
+
+ )}
+
{/* Local folder input */}
{showInput && mode === 'local' && (
diff --git a/gitnexus-web/src/lib/lucide-icons.tsx b/gitnexus-web/src/lib/lucide-icons.tsx
index 05676e50d..dc69b279f 100644
--- a/gitnexus-web/src/lib/lucide-icons.tsx
+++ b/gitnexus-web/src/lib/lucide-icons.tsx
@@ -123,6 +123,67 @@ export {
* defaults to `currentColor`, so Tailwind `text-*` utilities work the same as
* with any other icon in this module.
*/
+/**
+ * GitLab tanuki mark — SVG path data from simple-icons (CC0-1.0).
+ *
+ * GitLab's logo (the tanuki/fox-head) is a registered trademark of GitLab Inc.
+ * We use it here only to indicate GitLab source-repo integration.
+ *
+ * API-compatible with `lucide-react` icons (`LucideProps`).
+ */
+export const Gitlab = forwardRef
(function Gitlab(
+ {
+ size = 24,
+ color = 'currentColor',
+ className,
+ strokeWidth: _strokeWidth,
+ absoluteStrokeWidth: _absoluteStrokeWidth,
+ ...rest
+ },
+ ref,
+) {
+ const numericSize = typeof size === 'string' ? Number.parseFloat(size) : size;
+ const useSmallVariant = Number.isFinite(numericSize) && (numericSize as number) <= 16;
+
+ if (useSmallVariant) {
+ return (
+
+ );
+ }
+
+ return (
+
+ );
+});
+
export const Github = forwardRef(function Github(
{
size = 24,