diff --git a/src/shared/ui/FooterLink/FooterLink.stories.svelte b/src/shared/ui/FooterLink/FooterLink.stories.svelte
deleted file mode 100644
index 7462b26..0000000
--- a/src/shared/ui/FooterLink/FooterLink.stories.svelte
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
- {#snippet template(args: ComponentProps)}
-
- {/snippet}
-
-
-
- {#snippet template()}
-
-
-
-
-
- {/snippet}
-
diff --git a/src/shared/ui/FooterLink/FooterLink.svelte.test.ts b/src/shared/ui/FooterLink/FooterLink.svelte.test.ts
deleted file mode 100644
index 66435a7..0000000
--- a/src/shared/ui/FooterLink/FooterLink.svelte.test.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import {
- render,
- screen,
-} from '@testing-library/svelte';
-import FooterLink from './FooterLink.svelte';
-
-describe('FooterLink', () => {
- const defaultProps = {
- text: 'Google Fonts',
- href: 'https://fonts.google.com',
- };
-
- describe('Rendering', () => {
- it('renders text content', () => {
- render(FooterLink, { props: defaultProps });
- expect(screen.getByText('Google Fonts')).toBeInTheDocument();
- });
-
- it('renders as an anchor element with correct href', () => {
- render(FooterLink, { props: defaultProps });
- const link = screen.getByRole('link');
- expect(link).toBeInTheDocument();
- expect(link).toHaveAttribute('href', 'https://fonts.google.com');
- });
-
- it('renders the arrow icon', () => {
- const { container } = render(FooterLink, { props: defaultProps });
- const icon = container.querySelector('svg');
- expect(icon).toBeInTheDocument();
- expect(icon).toHaveClass('lucide-arrow-up-right');
- });
- });
-
- describe('Attributes', () => {
- it('applies custom CSS classes', () => {
- render(FooterLink, {
- props: {
- ...defaultProps,
- class: 'custom-class',
- },
- });
- expect(screen.getByRole('link')).toHaveClass('custom-class');
- });
-
- it('spreads additional anchor attributes', () => {
- render(FooterLink, {
- props: {
- ...defaultProps,
- target: '_blank',
- rel: 'noopener',
- },
- });
- const link = screen.getByRole('link');
- expect(link).toHaveAttribute('target', '_blank');
- expect(link).toHaveAttribute('rel', 'noopener');
- });
- });
-});
diff --git a/src/shared/ui/index.ts b/src/shared/ui/index.ts
index 15688ee..d02efb3 100644
--- a/src/shared/ui/index.ts
+++ b/src/shared/ui/index.ts
@@ -52,12 +52,6 @@ export {
*/
default as FilterGroup,
} from './FilterGroup/FilterGroup.svelte';
-export {
- /**
- * Standard footer link with arrow icon and hover effects
- */
- default as FooterLink,
-} from './FooterLink/FooterLink.svelte';
export {
/**
* Small text for secondary meta-information
@@ -76,6 +70,12 @@ export {
*/
default as Label,
} from './Label/Label.svelte';
+export {
+ /**
+ * Styled link with optional icon
+ */
+ default as Link,
+} from './Link/Link.svelte';
export {
/**
* Full-page or component-level progress spinner
diff --git a/src/widgets/Footer/ui/Footer.svelte b/src/widgets/Footer/ui/Footer.svelte
index d36a0f9..390e9d4 100644
--- a/src/widgets/Footer/ui/Footer.svelte
+++ b/src/widgets/Footer/ui/Footer.svelte
@@ -6,8 +6,8 @@
-
{text}
-
-
+ {#snippet icon()}
+
+ {/snippet}
+