refactor(shared/ui): stop deep-importing sibling config/types (C-3)

Badge and TechText reached into $shared/ui/Label/config, and SearchBar into
$shared/ui/Input/types — bypassing the siblings public surface.

- Label/config.ts was explicitly shared text-styling config, not Labels
  internals; relocate it to shared/ui/labelConfig.ts (a neutral peer module)
  and point Label/Badge/TechText at it relatively.
- inputIconSize is a consumer-facing map; export it from Input/index.ts so
  SearchBar imports it through the barrel alongside Input.
This commit is contained in:
Ilia Mashkov
2026-06-03 10:36:15 +03:00
parent ec488cf1ce
commit 99ab7e9e08
6 changed files with 11 additions and 8 deletions
+3 -3
View File
@@ -4,12 +4,12 @@
-->
<script lang="ts">
import { cn } from '$shared/lib';
import type { Snippet } from 'svelte';
import type { HTMLAttributes } from 'svelte/elements';
import {
type LabelSize,
labelSizeConfig,
} from '$shared/ui/Label/config';
import type { Snippet } from 'svelte';
import type { HTMLAttributes } from 'svelte/elements';
} from '../labelConfig';
type BadgeVariant = 'default' | 'accent' | 'success' | 'warning' | 'info';
+1
View File
@@ -1 +1,2 @@
export { default as Input } from './Input.svelte';
export { inputIconSize } from './types';
+1 -1
View File
@@ -11,7 +11,7 @@ import {
type LabelVariant,
labelSizeConfig,
labelVariantConfig,
} from './config';
} from '../labelConfig';
interface Props {
/**
+4 -2
View File
@@ -7,8 +7,10 @@
They cannot pass leftIcon — it's owned by this wrapper.
-->
<script lang="ts">
import { Input } from '$shared/ui/Input';
import { inputIconSize } from '$shared/ui/Input/types';
import {
Input,
inputIconSize,
} from '$shared/ui/Input';
import SearchIcon from '@lucide/svelte/icons/search';
import type { ComponentProps } from 'svelte';
+2 -2
View File
@@ -4,13 +4,13 @@
-->
<script lang="ts">
import { cn } from '$shared/lib';
import type { Snippet } from 'svelte';
import {
type LabelSize,
type LabelVariant,
labelSizeConfig,
labelVariantConfig,
} from '$shared/ui/Label/config';
import type { Snippet } from 'svelte';
} from '../labelConfig';
interface Props {
/**