From bb65f1c8d69fd7a6ff1f6ef4aa537cb71b632f9f Mon Sep 17 00:00:00 2001 From: Ilia Mashkov Date: Fri, 17 Apr 2026 18:01:24 +0300 Subject: [PATCH] feat: add missing storybook files and type template arguments properly --- .../BreadcrumbHeader.stories.svelte | 65 ++++++++++ .../BreadcrumbHeaderSeeded.svelte | 49 ++++++++ .../NavigationWrapper.stories.svelte | 109 +++++++++++++++++ .../FontApplicator.stories.svelte | 91 ++++++++++++++ .../FontVirtualList.stories.svelte | 114 ++++++++++++++++++ .../ui/FontSampler/FontSampler.stories.svelte | 5 +- .../ui/Filters/Filters.stories.svelte | 26 ++++ .../FilterControls.stories.svelte | 39 ++++++ .../TypographyMenu.stories.svelte | 54 +++++++++ src/shared/ui/Button/Button.stories.svelte | 13 +- .../ui/Button/ButtonGroup.stories.svelte | 11 +- .../ui/Button/IconButton.stories.svelte | 9 +- .../ui/Button/ToggleButton.stories.svelte | 19 ++- .../ComboControl/ComboControl.stories.svelte | 3 +- .../ContentEditable.stories.svelte | 12 +- .../ControlGroup/ControlGroup.stories.svelte | 53 ++++++++ .../ui/FilterGroup/FilterGroup.stories.svelte | 19 ++- .../ui/Footnote/Footnote.stories.svelte | 8 +- src/shared/ui/Input/Input.stories.svelte | 35 +++--- src/shared/ui/Label/Label.stories.svelte | 25 ++-- src/shared/ui/Loader/Loader.stories.svelte | 6 +- src/shared/ui/Logo/Logo.stories.svelte | 6 +- .../PerspectivePlan.stories.svelte | 91 ++++++++++++++ .../ui/SearchBar/SearchBar.stories.svelte | 7 +- .../SectionSeparator.stories.svelte | 45 +++++++ .../SectionTitle/SectionTitle.stories.svelte | 45 +++++++ .../SidebarContainer.stories.svelte | 102 ++++++++++++++++ .../ui/Skeleton/Skeleton.stories.svelte | 6 +- src/shared/ui/Slider/Slider.stories.svelte | 66 ++++++++-- src/shared/ui/Stat/StatGroup.stories.svelte | 52 ++++++++ .../ui/VirtualList/VirtualList.stories.svelte | 29 +++-- 31 files changed, 1124 insertions(+), 90 deletions(-) create mode 100644 src/entities/Breadcrumb/ui/BreadcrumbHeader/BreadcrumbHeader.stories.svelte create mode 100644 src/entities/Breadcrumb/ui/BreadcrumbHeader/BreadcrumbHeaderSeeded.svelte create mode 100644 src/entities/Breadcrumb/ui/NavigationWrapper/NavigationWrapper.stories.svelte create mode 100644 src/entities/Font/ui/FontApplicator/FontApplicator.stories.svelte create mode 100644 src/entities/Font/ui/FontVirtualList/FontVirtualList.stories.svelte create mode 100644 src/features/GetFonts/ui/Filters/Filters.stories.svelte create mode 100644 src/features/GetFonts/ui/FiltersControl/FilterControls.stories.svelte create mode 100644 src/features/SetupFont/ui/TypographyMenu/TypographyMenu.stories.svelte create mode 100644 src/shared/ui/ControlGroup/ControlGroup.stories.svelte create mode 100644 src/shared/ui/PerspectivePlan/PerspectivePlan.stories.svelte create mode 100644 src/shared/ui/Section/SectionSeparator/SectionSeparator.stories.svelte create mode 100644 src/shared/ui/Section/SectionTitle/SectionTitle.stories.svelte create mode 100644 src/shared/ui/SidebarContainer/SidebarContainer.stories.svelte create mode 100644 src/shared/ui/Stat/StatGroup.stories.svelte diff --git a/src/entities/Breadcrumb/ui/BreadcrumbHeader/BreadcrumbHeader.stories.svelte b/src/entities/Breadcrumb/ui/BreadcrumbHeader/BreadcrumbHeader.stories.svelte new file mode 100644 index 0000000..bdec72a --- /dev/null +++ b/src/entities/Breadcrumb/ui/BreadcrumbHeader/BreadcrumbHeader.stories.svelte @@ -0,0 +1,65 @@ + + + + + + {#snippet template()} + + + + {/snippet} + + + + {#snippet template()} + +
+ BreadcrumbHeader renders nothing when scrolledPastItems is empty. +
+ +
+ {/snippet} +
diff --git a/src/entities/Breadcrumb/ui/BreadcrumbHeader/BreadcrumbHeaderSeeded.svelte b/src/entities/Breadcrumb/ui/BreadcrumbHeader/BreadcrumbHeaderSeeded.svelte new file mode 100644 index 0000000..792d86c --- /dev/null +++ b/src/entities/Breadcrumb/ui/BreadcrumbHeader/BreadcrumbHeaderSeeded.svelte @@ -0,0 +1,49 @@ + + +
+ {#each sections as section} +
+ {section.title} — scroll up to see the breadcrumb header +
+ {/each} +
+ + diff --git a/src/entities/Breadcrumb/ui/NavigationWrapper/NavigationWrapper.stories.svelte b/src/entities/Breadcrumb/ui/NavigationWrapper/NavigationWrapper.stories.svelte new file mode 100644 index 0000000..d3adb47 --- /dev/null +++ b/src/entities/Breadcrumb/ui/NavigationWrapper/NavigationWrapper.stories.svelte @@ -0,0 +1,109 @@ + + + + + + {#snippet template(args: ComponentProps)} + + {#snippet content(register)} +
+

+ Section registered as {args.title} at index {args.index}. Scroll past this + section to see it appear in the breadcrumb header. +

+
+ {/snippet} +
+ {/snippet} +
+ + + {#snippet template()} +
+ + {#snippet content(register)} +
+

Introduction

+

+ Registered as section 0. Scroll down to build the breadcrumb trail. +

+
+ {/snippet} +
+ + + {#snippet content(register)} +
+

Typography

+

Registered as section 1.

+
+ {/snippet} +
+ + + {#snippet content(register)} +
+

Spacing

+

Registered as section 2.

+
+ {/snippet} +
+
+ {/snippet} +
diff --git a/src/entities/Font/ui/FontApplicator/FontApplicator.stories.svelte b/src/entities/Font/ui/FontApplicator/FontApplicator.stories.svelte new file mode 100644 index 0000000..ff14ba7 --- /dev/null +++ b/src/entities/Font/ui/FontApplicator/FontApplicator.stories.svelte @@ -0,0 +1,91 @@ + + + + + + {#snippet template(args: ComponentProps)} + +

The quick brown fox jumps over the lazy dog

+
+ {/snippet} +
+ + + {#snippet template(args: ComponentProps)} + +

The quick brown fox jumps over the lazy dog

+
+ {/snippet} +
+ + + {#snippet template(args: ComponentProps)} + +

The quick brown fox jumps over the lazy dog

+
+ {/snippet} +
diff --git a/src/entities/Font/ui/FontVirtualList/FontVirtualList.stories.svelte b/src/entities/Font/ui/FontVirtualList/FontVirtualList.stories.svelte new file mode 100644 index 0000000..caf0107 --- /dev/null +++ b/src/entities/Font/ui/FontVirtualList/FontVirtualList.stories.svelte @@ -0,0 +1,114 @@ + + + + + + {#snippet template(args: ComponentProps)} +
+ + {#snippet skeleton()} +
+ {#each Array(6) as _} +
+ {/each} +
+ {/snippet} + {#snippet children({ item })} +
{item.name}
+ {/snippet} +
+
+ {/snippet} +
+ + + {#snippet template(args: ComponentProps)} +
+ + {#snippet children({ item })} +
{item.name}
+ {/snippet} +
+
+ {/snippet} +
+ + + {#snippet template(args: ComponentProps)} +
+ + {#snippet skeleton()} +
+ {#each Array(6) as _} +
+ {/each} +
+ {/snippet} + {#snippet children({ item })} +
+ {item.name} + {item.category} +
+ {/snippet} +
+
+ {/snippet} +
diff --git a/src/features/DisplayFont/ui/FontSampler/FontSampler.stories.svelte b/src/features/DisplayFont/ui/FontSampler/FontSampler.stories.svelte index 19c1d84..ffc2a3f 100644 --- a/src/features/DisplayFont/ui/FontSampler/FontSampler.stories.svelte +++ b/src/features/DisplayFont/ui/FontSampler/FontSampler.stories.svelte @@ -35,6 +35,7 @@ const { Story } = defineMeta({ + + + {#snippet template()} + + {/snippet} + diff --git a/src/features/GetFonts/ui/FiltersControl/FilterControls.stories.svelte b/src/features/GetFonts/ui/FiltersControl/FilterControls.stories.svelte new file mode 100644 index 0000000..9f935a9 --- /dev/null +++ b/src/features/GetFonts/ui/FiltersControl/FilterControls.stories.svelte @@ -0,0 +1,39 @@ + + + + {#snippet template()} + + + + {/snippet} + + + + {#snippet template()} + +
+ +
+
+ {/snippet} +
diff --git a/src/features/SetupFont/ui/TypographyMenu/TypographyMenu.stories.svelte b/src/features/SetupFont/ui/TypographyMenu/TypographyMenu.stories.svelte new file mode 100644 index 0000000..20dde39 --- /dev/null +++ b/src/features/SetupFont/ui/TypographyMenu/TypographyMenu.stories.svelte @@ -0,0 +1,54 @@ + + + + {#snippet template()} + +
+ +
+
+ {/snippet} +
+ + + {#snippet template()} + +
+ +
+
+ {/snippet} +
+ + + {#snippet template()} + +
+
+
+ {/snippet} +
diff --git a/src/shared/ui/Button/Button.stories.svelte b/src/shared/ui/Button/Button.stories.svelte index 990177c..acb1748 100644 --- a/src/shared/ui/Button/Button.stories.svelte +++ b/src/shared/ui/Button/Button.stories.svelte @@ -45,6 +45,7 @@ const { Story } = defineMeta({ @@ -52,7 +53,7 @@ import ButtonGroup from './ButtonGroup.svelte'; name="Default/Basic" parameters={{ docs: { description: { story: 'Standard text button at all sizes' } } }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} @@ -67,7 +68,7 @@ import ButtonGroup from './ButtonGroup.svelte'; name="Default/With Icon" args={{ variant: 'secondary', size: 'md', iconPosition: 'left', active: false, animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -90,7 +91,7 @@ import ButtonGroup from './ButtonGroup.svelte'; name="Secondary" args={{ variant: 'secondary', size: 'md', iconPosition: 'left', active: false, animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -99,7 +100,7 @@ import ButtonGroup from './ButtonGroup.svelte'; name="Icon" args={{ variant: 'icon', size: 'md', iconPosition: 'left', active: false, animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} diff --git a/src/shared/ui/Button/ButtonGroup.stories.svelte b/src/shared/ui/Button/ButtonGroup.stories.svelte index 2babde6..b379c3f 100644 --- a/src/shared/ui/Button/ButtonGroup.stories.svelte +++ b/src/shared/ui/Button/ButtonGroup.stories.svelte @@ -27,10 +27,11 @@ const { Story } = defineMeta({ - {#snippet template(args)} + {#snippet template(args: ComponentProps)} @@ -40,7 +41,7 @@ import { Button } from '$shared/ui/Button'; - {#snippet template(args)} + {#snippet template(args: ComponentProps)} @@ -51,7 +52,7 @@ import { Button } from '$shared/ui/Button'; - {#snippet template(args)} + {#snippet template(args: ComponentProps)} @@ -61,7 +62,7 @@ import { Button } from '$shared/ui/Button'; - {#snippet template(args)} + {#snippet template(args: ComponentProps)} @@ -78,7 +79,7 @@ import { Button } from '$shared/ui/Button'; }, }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}

Dark Mode

diff --git a/src/shared/ui/Button/IconButton.stories.svelte b/src/shared/ui/Button/IconButton.stories.svelte index b097d6f..7b5793c 100644 --- a/src/shared/ui/Button/IconButton.stories.svelte +++ b/src/shared/ui/Button/IconButton.stories.svelte @@ -43,13 +43,14 @@ const { Story } = defineMeta({ import MoonIcon from '@lucide/svelte/icons/moon'; import SearchIcon from '@lucide/svelte/icons/search'; import TrashIcon from '@lucide/svelte/icons/trash-2'; +import type { ComponentProps } from 'svelte'; - {#snippet template(args)} + {#snippet template(args: ComponentProps)}
{#snippet icon()} @@ -74,7 +75,7 @@ import TrashIcon from '@lucide/svelte/icons/trash-2'; name="Variants" args={{ size: 'md', active: false, animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}
{#snippet icon()} @@ -99,7 +100,7 @@ import TrashIcon from '@lucide/svelte/icons/trash-2'; name="Active State" args={{ size: 'md', animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}
{#snippet icon()} @@ -123,7 +124,7 @@ import TrashIcon from '@lucide/svelte/icons/trash-2'; }, }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}

Dark Mode

diff --git a/src/shared/ui/Button/ToggleButton.stories.svelte b/src/shared/ui/Button/ToggleButton.stories.svelte index 73b115e..86d45b6 100644 --- a/src/shared/ui/Button/ToggleButton.stories.svelte +++ b/src/shared/ui/Button/ToggleButton.stories.svelte @@ -44,6 +44,7 @@ const { Story } = defineMeta({ @@ -51,7 +52,7 @@ let selected = $state(false); name="Default" args={{ variant: 'tertiary', size: 'md', selected: false, animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} Toggle Me {/snippet} @@ -60,7 +61,7 @@ let selected = $state(false); name="Selected/Unselected" args={{ variant: 'tertiary', size: 'md', animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}
Unselected @@ -76,7 +77,7 @@ let selected = $state(false); name="Variants" args={{ size: 'md', selected: true, animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}
Primary @@ -101,9 +102,15 @@ let selected = $state(false); name="Interactive" args={{ variant: 'tertiary', size: 'md', animate: true }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}
- selected = !selected}> + { + selected = !selected; + }} + > Click to toggle Currently: {selected ? 'selected' : 'unselected'} @@ -119,7 +126,7 @@ let selected = $state(false); }, }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}

Dark Mode

diff --git a/src/shared/ui/ComboControl/ComboControl.stories.svelte b/src/shared/ui/ComboControl/ComboControl.stories.svelte index 776669f..bdaf27f 100644 --- a/src/shared/ui/ComboControl/ComboControl.stories.svelte +++ b/src/shared/ui/ComboControl/ComboControl.stories.svelte @@ -30,6 +30,7 @@ const { Story } = defineMeta({ @@ -40,7 +41,7 @@ const horizontalControl = createTypographyControl({ min: 0, max: 100, step: 1, v label: 'Size', }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} diff --git a/src/shared/ui/ContentEditable/ContentEditable.stories.svelte b/src/shared/ui/ContentEditable/ContentEditable.stories.svelte index a71fd6d..f46335a 100644 --- a/src/shared/ui/ContentEditable/ContentEditable.stories.svelte +++ b/src/shared/ui/ContentEditable/ContentEditable.stories.svelte @@ -37,6 +37,8 @@ const { Story } = defineMeta({ + + + {#snippet template()} +
+ +
Control content here
+
+
+ {/snippet} +
+ + + {#snippet template()} +
+ +
+ + + +
+
+
+ {/snippet} +
diff --git a/src/shared/ui/FilterGroup/FilterGroup.stories.svelte b/src/shared/ui/FilterGroup/FilterGroup.stories.svelte index d9d8ada..dff21e0 100644 --- a/src/shared/ui/FilterGroup/FilterGroup.stories.svelte +++ b/src/shared/ui/FilterGroup/FilterGroup.stories.svelte @@ -29,6 +29,7 @@ const { Story } = defineMeta({ - - {#snippet template(args)} - + + {#snippet template(args: ComponentProps)} + {/snippet} - - {#snippet template(args)} - + + {#snippet template(args: ComponentProps)} + {/snippet} diff --git a/src/shared/ui/Footnote/Footnote.stories.svelte b/src/shared/ui/Footnote/Footnote.stories.svelte index c3f065b..f33bcc7 100644 --- a/src/shared/ui/Footnote/Footnote.stories.svelte +++ b/src/shared/ui/Footnote/Footnote.stories.svelte @@ -16,8 +16,12 @@ const { Story } = defineMeta({ }); + + - {#snippet template(args)} + {#snippet template(args: ComponentProps)} Footnote @@ -25,7 +29,7 @@ const { Story } = defineMeta({ - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {#snippet render({ class: className })} Footnote diff --git a/src/shared/ui/Input/Input.stories.svelte b/src/shared/ui/Input/Input.stories.svelte index 4a58da8..090c2fc 100644 --- a/src/shared/ui/Input/Input.stories.svelte +++ b/src/shared/ui/Input/Input.stories.svelte @@ -61,42 +61,43 @@ const { Story } = defineMeta({ - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} - {#snippet template(args)} + {#snippet template(args: ComponentProps)}
- - - - + + + +
{/snippet}
- - {#snippet template(args)} - + + {#snippet template(args: ComponentProps)} + {/snippet} - - {#snippet template(args)} - + + {#snippet template(args: ComponentProps)} + {/snippet} - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {#snippet rightIcon()} @@ -106,7 +107,7 @@ const placeholder = 'Enter text'; - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {#snippet leftIcon()} @@ -115,9 +116,9 @@ const placeholder = 'Enter text'; {/snippet} - - {#snippet template(args)} - + + {#snippet template(args: ComponentProps)} + {#snippet rightIcon()} {/snippet} diff --git a/src/shared/ui/Label/Label.stories.svelte b/src/shared/ui/Label/Label.stories.svelte index a72556e..dc9b81f 100644 --- a/src/shared/ui/Label/Label.stories.svelte +++ b/src/shared/ui/Label/Label.stories.svelte @@ -47,13 +47,14 @@ const { Story } = defineMeta({ import AlertTriangleIcon from '@lucide/svelte/icons/alert-triangle'; import CheckIcon from '@lucide/svelte/icons/check'; import CircleIcon from '@lucide/svelte/icons/circle'; +import type { ComponentProps } from 'svelte'; - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -72,7 +73,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Default variant" args={{ variant: 'default', size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -81,7 +82,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Accent variant" args={{ variant: 'accent', size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -90,7 +91,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Muted variant" args={{ variant: 'muted', size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -99,7 +100,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Success variant" args={{ variant: 'success', size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -108,7 +109,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Warning variant" args={{ variant: 'warning', size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet}
@@ -117,7 +118,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Error variant" args={{ variant: 'error', size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet}
@@ -139,7 +140,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Uppercase" args={{ uppercase: true, size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet}
@@ -148,7 +149,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Lowercase" args={{ uppercase: false, size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -157,7 +158,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="Bold" args={{ bold: true, size: 'sm' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)} {/snippet} @@ -166,7 +167,7 @@ import CircleIcon from '@lucide/svelte/icons/circle'; name="With icon (left)" args={{ variant: 'default', size: 'sm', iconPosition: 'left' }} > - {#snippet template(args)} + {#snippet template(args: ComponentProps)}