aboutsummaryrefslogtreecommitdiff
path: root/llama.cpp/tools/server/webui/.storybook
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-02-12 20:57:17 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-02-12 20:57:17 +0100
commitb333b06772c89d96aacb5490d6a219fba7c09cc6 (patch)
tree211df60083a5946baa2ed61d33d8121b7e251b06 /llama.cpp/tools/server/webui/.storybook
downloadllmnpc-b333b06772c89d96aacb5490d6a219fba7c09cc6.tar.gz
Engage!
Diffstat (limited to 'llama.cpp/tools/server/webui/.storybook')
-rw-r--r--llama.cpp/tools/server/webui/.storybook/ModeWatcherDecorator.svelte36
-rw-r--r--llama.cpp/tools/server/webui/.storybook/TooltipProviderDecorator.svelte13
-rw-r--r--llama.cpp/tools/server/webui/.storybook/main.ts17
-rw-r--r--llama.cpp/tools/server/webui/.storybook/preview.ts42
-rw-r--r--llama.cpp/tools/server/webui/.storybook/vitest.setup.ts12
5 files changed, 120 insertions, 0 deletions
diff --git a/llama.cpp/tools/server/webui/.storybook/ModeWatcherDecorator.svelte b/llama.cpp/tools/server/webui/.storybook/ModeWatcherDecorator.svelte
new file mode 100644
index 0000000..8bded8b
--- /dev/null
+++ b/llama.cpp/tools/server/webui/.storybook/ModeWatcherDecorator.svelte
@@ -0,0 +1,36 @@
1<script lang="ts">
2 import { ModeWatcher } from 'mode-watcher';
3 import { onMount } from 'svelte';
4
5 interface Props {
6 children?: any;
7 }
8
9 let { children }: Props = $props();
10
11 onMount(() => {
12 const root = document.documentElement;
13 const theme = localStorage.getItem('mode-watcher-mode') || 'system';
14
15 if (theme === 'dark') {
16 root.classList.add('dark');
17 } else if (theme === 'light') {
18 root.classList.remove('dark');
19 } else {
20 const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
21 if (prefersDark) {
22 root.classList.add('dark');
23 } else {
24 root.classList.remove('dark');
25 }
26 }
27 });
28</script>
29
30<ModeWatcher />
31
32{#if children}
33 {@const Component = children}
34
35 <Component />
36{/if}
diff --git a/llama.cpp/tools/server/webui/.storybook/TooltipProviderDecorator.svelte b/llama.cpp/tools/server/webui/.storybook/TooltipProviderDecorator.svelte
new file mode 100644
index 0000000..9aad1ea
--- /dev/null
+++ b/llama.cpp/tools/server/webui/.storybook/TooltipProviderDecorator.svelte
@@ -0,0 +1,13 @@
1<script lang="ts">
2 import * as Tooltip from '../src/lib/components/ui/tooltip';
3
4 interface Props {
5 children: any;
6 }
7
8 let { children }: Props = $props();
9</script>
10
11<Tooltip.Provider>
12 {@render children()}
13</Tooltip.Provider>
diff --git a/llama.cpp/tools/server/webui/.storybook/main.ts b/llama.cpp/tools/server/webui/.storybook/main.ts
new file mode 100644
index 0000000..bfd16fa
--- /dev/null
+++ b/llama.cpp/tools/server/webui/.storybook/main.ts
@@ -0,0 +1,17 @@
1import type { StorybookConfig } from '@storybook/sveltekit';
2
3const config: StorybookConfig = {
4 stories: ['../tests/stories/**/*.mdx', '../tests/stories/**/*.stories.@(js|ts|svelte)'],
5 addons: [
6 '@storybook/addon-svelte-csf',
7 '@chromatic-com/storybook',
8 '@storybook/addon-docs',
9 '@storybook/addon-a11y',
10 '@storybook/addon-vitest'
11 ],
12 framework: {
13 name: '@storybook/sveltekit',
14 options: {}
15 }
16};
17export default config;
diff --git a/llama.cpp/tools/server/webui/.storybook/preview.ts b/llama.cpp/tools/server/webui/.storybook/preview.ts
new file mode 100644
index 0000000..8d530e4
--- /dev/null
+++ b/llama.cpp/tools/server/webui/.storybook/preview.ts
@@ -0,0 +1,42 @@
1import type { Preview } from '@storybook/sveltekit';
2import '../src/app.css';
3import ModeWatcherDecorator from './ModeWatcherDecorator.svelte';
4import TooltipProviderDecorator from './TooltipProviderDecorator.svelte';
5
6const preview: Preview = {
7 parameters: {
8 controls: {
9 matchers: {
10 color: /(background|color)$/i,
11 date: /Date$/i
12 }
13 },
14
15 backgrounds: {
16 disable: true
17 },
18
19 a11y: {
20 // 'todo' - show a11y violations in the test UI only
21 // 'error' - fail CI on a11y violations
22 // 'off' - skip a11y checks entirely
23 test: 'todo'
24 }
25 },
26 decorators: [
27 (story) => ({
28 Component: ModeWatcherDecorator,
29 props: {
30 children: story
31 }
32 }),
33 (story) => ({
34 Component: TooltipProviderDecorator,
35 props: {
36 children: story
37 }
38 })
39 ]
40};
41
42export default preview;
diff --git a/llama.cpp/tools/server/webui/.storybook/vitest.setup.ts b/llama.cpp/tools/server/webui/.storybook/vitest.setup.ts
new file mode 100644
index 0000000..1471572
--- /dev/null
+++ b/llama.cpp/tools/server/webui/.storybook/vitest.setup.ts
@@ -0,0 +1,12 @@
1import * as a11yAddonAnnotations from '@storybook/addon-a11y/preview';
2import { setProjectAnnotations } from '@storybook/sveltekit';
3import * as previewAnnotations from './preview';
4import { beforeAll } from 'vitest';
5
6const project = setProjectAnnotations([a11yAddonAnnotations, previewAnnotations]);
7
8beforeAll(async () => {
9 if (project.beforeAll) {
10 await project.beforeAll();
11 }
12});