@noahbaumgartner/svelte-ui 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/components/button/Button.svelte +0 -10
  2. package/dist/components/lightbox/Lightbox.svelte +136 -0
  3. package/dist/components/lightbox/Lightbox.svelte.d.ts +14 -0
  4. package/dist/components/media-preview/MediaPreview.svelte +110 -0
  5. package/dist/components/media-preview/MediaPreview.svelte.d.ts +11 -0
  6. package/dist/components/mesh-gradient/MeshGradient.svelte +19 -2
  7. package/dist/components/page-header/PageHeader.svelte +83 -0
  8. package/dist/components/page-header/PageHeader.svelte.d.ts +13 -0
  9. package/dist/components/section/Section.svelte +9 -5
  10. package/dist/components/section/Section.svelte.d.ts +6 -3
  11. package/dist/components/select/Select.svelte.d.ts +1 -1
  12. package/dist/components/table-of-contents/TableOfContents.svelte +296 -0
  13. package/dist/components/table-of-contents/TableOfContents.svelte.d.ts +7 -0
  14. package/dist/components/tabs/Tabs.svelte +72 -2
  15. package/dist/components/tabs/Tabs.svelte.d.ts +3 -1
  16. package/dist/components/theme-toggle/ThemeToggle.svelte +40 -0
  17. package/dist/components/theme-toggle/ThemeToggle.svelte.d.ts +7 -0
  18. package/dist/components/timeline/Timeline.svelte +122 -0
  19. package/dist/components/timeline/Timeline.svelte.d.ts +21 -0
  20. package/dist/icon.d.ts +7 -7
  21. package/dist/icons/GithubIcon.svelte +25 -0
  22. package/dist/icons/GithubIcon.svelte.d.ts +4 -0
  23. package/dist/index.d.ts +8 -2
  24. package/dist/index.js +7 -1
  25. package/dist/internal/icons/Monitor.svelte +15 -0
  26. package/dist/internal/icons/Monitor.svelte.d.ts +4 -0
  27. package/dist/internal/icons/Moon.svelte +18 -0
  28. package/dist/internal/icons/Moon.svelte.d.ts +4 -0
  29. package/dist/internal/icons/Pause.svelte +14 -0
  30. package/dist/internal/icons/Pause.svelte.d.ts +4 -0
  31. package/dist/internal/icons/Play.svelte +16 -0
  32. package/dist/internal/icons/Play.svelte.d.ts +4 -0
  33. package/dist/internal/icons/Sun.svelte +21 -0
  34. package/dist/internal/icons/Sun.svelte.d.ts +4 -0
  35. package/dist/styles/tokens.css +7 -0
  36. package/package.json +4 -2
  37. package/dist/components/entry/Entry.svelte +0 -94
  38. package/dist/components/entry/Entry.svelte.d.ts +0 -16
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export type { IconComponent } from './icon.js';
1
+ export type { IconComponent, IconProps } from './icon.js';
2
+ export { default as GithubIcon } from './icons/GithubIcon.svelte';
2
3
  export { default as Accordion } from './components/accordion/Accordion.svelte';
3
4
  export { default as AccordionItem } from './components/accordion/AccordionItem.svelte';
4
5
  export { default as AlertDialog } from './components/alert-dialog/AlertDialog.svelte';
@@ -28,7 +29,6 @@ export { default as ContextMenuInfo } from './components/context-menu/ContextMen
28
29
  export { default as Dialog } from './components/dialog/Dialog.svelte';
29
30
  export { default as Drawer } from './components/drawer/Drawer.svelte';
30
31
  export { default as EmptyState } from './components/empty-state/EmptyState.svelte';
31
- export { default as Entry } from './components/entry/Entry.svelte';
32
32
  export { default as Field } from './components/field/Field.svelte';
33
33
  export { default as FieldContent } from './components/field/FieldContent.svelte';
34
34
  export { default as FieldDescription } from './components/field/FieldDescription.svelte';
@@ -41,18 +41,21 @@ export { default as Footer } from './components/footer/Footer.svelte';
41
41
  export { default as FooterColumn } from './components/footer/FooterColumn.svelte';
42
42
  export { default as Image } from './components/image/Image.svelte';
43
43
  export { default as Input } from './components/input/Input.svelte';
44
+ export { default as Lightbox } from './components/lightbox/Lightbox.svelte';
44
45
  export { default as Kbd } from './components/kbd/Kbd.svelte';
45
46
  export { default as KbdGroup } from './components/kbd/KbdGroup.svelte';
46
47
  export { default as InputGroup } from './components/input-group/InputGroup.svelte';
47
48
  export { default as InputGroupAddon } from './components/input-group/InputGroupAddon.svelte';
48
49
  export { default as Label } from './components/label/Label.svelte';
49
50
  export { default as Link } from './components/link/Link.svelte';
51
+ export { default as MediaPreview } from './components/media-preview/MediaPreview.svelte';
50
52
  export { default as MeshGradient } from './components/mesh-gradient/MeshGradient.svelte';
51
53
  export { default as Navbar } from './components/navbar/Navbar.svelte';
52
54
  export { default as NavigationMenu } from './components/navigation-menu/NavigationMenu.svelte';
53
55
  export { default as NavigationMenuItem } from './components/navigation-menu/NavigationMenuItem.svelte';
54
56
  export { default as NavigationMenuLink } from './components/navigation-menu/NavigationMenuLink.svelte';
55
57
  export { default as NumberStepper } from './components/number-stepper/NumberStepper.svelte';
58
+ export { default as PageHeader } from './components/page-header/PageHeader.svelte';
56
59
  export { default as Popover } from './components/popover/Popover.svelte';
57
60
  export { default as PreviewCard } from './components/preview-card/PreviewCard.svelte';
58
61
  export { default as Progress } from './components/progress/Progress.svelte';
@@ -77,10 +80,13 @@ export { default as Skeleton } from './components/skeleton/Skeleton.svelte';
77
80
  export { default as Spinner } from './components/spinner/Spinner.svelte';
78
81
  export { default as Switch } from './components/switch/Switch.svelte';
79
82
  export { default as Table, type TableColumn, type TableSort, type TableSortValue } from './components/table/Table.svelte';
83
+ export { default as TableOfContents } from './components/table-of-contents/TableOfContents.svelte';
80
84
  export { default as Tabs, type TabsOption } from './components/tabs/Tabs.svelte';
81
85
  export { default as Textarea } from './components/textarea/Textarea.svelte';
82
86
  export { default as Toaster } from './components/toaster/Toaster.svelte';
83
87
  export { toast, type ToastOptions, type ToastAction } from './components/toaster/toast.svelte.js';
88
+ export { default as ThemeToggle } from './components/theme-toggle/ThemeToggle.svelte';
89
+ export { default as Timeline, type TimelineItem } from './components/timeline/Timeline.svelte';
84
90
  export { default as Toggle } from './components/toggle/Toggle.svelte';
85
91
  export { default as Tooltip } from './components/tooltip/Tooltip.svelte';
86
92
  export { default as TimePicker } from './components/time-picker/TimePicker.svelte';
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export { default as GithubIcon } from './icons/GithubIcon.svelte';
1
2
  export { default as Accordion } from './components/accordion/Accordion.svelte';
2
3
  export { default as AccordionItem } from './components/accordion/AccordionItem.svelte';
3
4
  export { default as AlertDialog } from './components/alert-dialog/AlertDialog.svelte';
@@ -27,7 +28,6 @@ export { default as ContextMenuInfo } from './components/context-menu/ContextMen
27
28
  export { default as Dialog } from './components/dialog/Dialog.svelte';
28
29
  export { default as Drawer } from './components/drawer/Drawer.svelte';
29
30
  export { default as EmptyState } from './components/empty-state/EmptyState.svelte';
30
- export { default as Entry } from './components/entry/Entry.svelte';
31
31
  export { default as Field } from './components/field/Field.svelte';
32
32
  export { default as FieldContent } from './components/field/FieldContent.svelte';
33
33
  export { default as FieldDescription } from './components/field/FieldDescription.svelte';
@@ -40,18 +40,21 @@ export { default as Footer } from './components/footer/Footer.svelte';
40
40
  export { default as FooterColumn } from './components/footer/FooterColumn.svelte';
41
41
  export { default as Image } from './components/image/Image.svelte';
42
42
  export { default as Input } from './components/input/Input.svelte';
43
+ export { default as Lightbox } from './components/lightbox/Lightbox.svelte';
43
44
  export { default as Kbd } from './components/kbd/Kbd.svelte';
44
45
  export { default as KbdGroup } from './components/kbd/KbdGroup.svelte';
45
46
  export { default as InputGroup } from './components/input-group/InputGroup.svelte';
46
47
  export { default as InputGroupAddon } from './components/input-group/InputGroupAddon.svelte';
47
48
  export { default as Label } from './components/label/Label.svelte';
48
49
  export { default as Link } from './components/link/Link.svelte';
50
+ export { default as MediaPreview } from './components/media-preview/MediaPreview.svelte';
49
51
  export { default as MeshGradient } from './components/mesh-gradient/MeshGradient.svelte';
50
52
  export { default as Navbar } from './components/navbar/Navbar.svelte';
51
53
  export { default as NavigationMenu } from './components/navigation-menu/NavigationMenu.svelte';
52
54
  export { default as NavigationMenuItem } from './components/navigation-menu/NavigationMenuItem.svelte';
53
55
  export { default as NavigationMenuLink } from './components/navigation-menu/NavigationMenuLink.svelte';
54
56
  export { default as NumberStepper } from './components/number-stepper/NumberStepper.svelte';
57
+ export { default as PageHeader } from './components/page-header/PageHeader.svelte';
55
58
  export { default as Popover } from './components/popover/Popover.svelte';
56
59
  export { default as PreviewCard } from './components/preview-card/PreviewCard.svelte';
57
60
  export { default as Progress } from './components/progress/Progress.svelte';
@@ -75,10 +78,13 @@ export { default as Skeleton } from './components/skeleton/Skeleton.svelte';
75
78
  export { default as Spinner } from './components/spinner/Spinner.svelte';
76
79
  export { default as Switch } from './components/switch/Switch.svelte';
77
80
  export { default as Table } from './components/table/Table.svelte';
81
+ export { default as TableOfContents } from './components/table-of-contents/TableOfContents.svelte';
78
82
  export { default as Tabs } from './components/tabs/Tabs.svelte';
79
83
  export { default as Textarea } from './components/textarea/Textarea.svelte';
80
84
  export { default as Toaster } from './components/toaster/Toaster.svelte';
81
85
  export { toast } from './components/toaster/toast.svelte.js';
86
+ export { default as ThemeToggle } from './components/theme-toggle/ThemeToggle.svelte';
87
+ export { default as Timeline } from './components/timeline/Timeline.svelte';
82
88
  export { default as Toggle } from './components/toggle/Toggle.svelte';
83
89
  export { default as Tooltip } from './components/tooltip/Tooltip.svelte';
84
90
  export { default as TimePicker } from './components/time-picker/TimePicker.svelte';
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import type { SVGAttributes } from 'svelte/elements';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let props: SVGAttributes<SVGSVGElement> = $props();
6
+ </script>
7
+
8
+ <Icon
9
+ {...props}
10
+ nodes={[
11
+ ['rect', { width: 20, height: 14, x: 2, y: 3, rx: 2 }],
12
+ ['line', { x1: 8, x2: 16, y1: 21, y2: 21 }],
13
+ ['line', { x1: 12, x2: 12, y1: 17, y2: 21 }]
14
+ ]}
15
+ />
@@ -0,0 +1,4 @@
1
+ import type { SVGAttributes } from 'svelte/elements';
2
+ declare const Monitor: import("svelte").Component<SVGAttributes<SVGSVGElement>, {}, "">;
3
+ type Monitor = ReturnType<typeof Monitor>;
4
+ export default Monitor;
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import type { SVGAttributes } from 'svelte/elements';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let props: SVGAttributes<SVGSVGElement> = $props();
6
+ </script>
7
+
8
+ <Icon
9
+ {...props}
10
+ nodes={[
11
+ [
12
+ 'path',
13
+ {
14
+ d: 'M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401'
15
+ }
16
+ ]
17
+ ]}
18
+ />
@@ -0,0 +1,4 @@
1
+ import type { SVGAttributes } from 'svelte/elements';
2
+ declare const Moon: import("svelte").Component<SVGAttributes<SVGSVGElement>, {}, "">;
3
+ type Moon = ReturnType<typeof Moon>;
4
+ export default Moon;
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import type { SVGAttributes } from 'svelte/elements';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let props: SVGAttributes<SVGSVGElement> = $props();
6
+ </script>
7
+
8
+ <Icon
9
+ {...props}
10
+ nodes={[
11
+ ['rect', { x: 14, y: 3, width: 5, height: 18, rx: 1 }],
12
+ ['rect', { x: 5, y: 3, width: 5, height: 18, rx: 1 }]
13
+ ]}
14
+ />
@@ -0,0 +1,4 @@
1
+ import type { SVGAttributes } from 'svelte/elements';
2
+ declare const Pause: import("svelte").Component<SVGAttributes<SVGSVGElement>, {}, "">;
3
+ type Pause = ReturnType<typeof Pause>;
4
+ export default Pause;
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import type { SVGAttributes } from 'svelte/elements';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let props: SVGAttributes<SVGSVGElement> = $props();
6
+ </script>
7
+
8
+ <Icon
9
+ {...props}
10
+ nodes={[
11
+ [
12
+ 'path',
13
+ { d: 'M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z' }
14
+ ]
15
+ ]}
16
+ />
@@ -0,0 +1,4 @@
1
+ import type { SVGAttributes } from 'svelte/elements';
2
+ declare const Play: import("svelte").Component<SVGAttributes<SVGSVGElement>, {}, "">;
3
+ type Play = ReturnType<typeof Play>;
4
+ export default Play;
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import type { SVGAttributes } from 'svelte/elements';
3
+ import Icon from './Icon.svelte';
4
+
5
+ let props: SVGAttributes<SVGSVGElement> = $props();
6
+ </script>
7
+
8
+ <Icon
9
+ {...props}
10
+ nodes={[
11
+ ['circle', { cx: 12, cy: 12, r: 4 }],
12
+ ['path', { d: 'M12 2v2' }],
13
+ ['path', { d: 'M12 20v2' }],
14
+ ['path', { d: 'm4.93 4.93 1.41 1.41' }],
15
+ ['path', { d: 'm17.66 17.66 1.41 1.41' }],
16
+ ['path', { d: 'M2 12h2' }],
17
+ ['path', { d: 'M20 12h2' }],
18
+ ['path', { d: 'm6.34 17.66-1.41 1.41' }],
19
+ ['path', { d: 'm19.07 4.93-1.41 1.41' }]
20
+ ]}
21
+ />
@@ -0,0 +1,4 @@
1
+ import type { SVGAttributes } from 'svelte/elements';
2
+ declare const Sun: import("svelte").Component<SVGAttributes<SVGSVGElement>, {}, "">;
3
+ type Sun = ReturnType<typeof Sun>;
4
+ export default Sun;
@@ -45,4 +45,11 @@
45
45
  color-scheme: dark;
46
46
  --color-destructive: #f87171;
47
47
  }
48
+
49
+ /* Page-coloured track, light handle. Standard properties let macOS draw its
50
+ rounded overlay scrollbar, which only shows while scrolling. */
51
+ :root {
52
+ scrollbar-width: auto;
53
+ scrollbar-color: color-mix(in srgb, var(--ui-base), var(--ui-ink) 40%) var(--color-bg);
54
+ }
48
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noahbaumgartner/svelte-ui",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "license": "MIT",
5
5
  "author": "Noah Baumgartner",
6
6
  "repository": {
@@ -41,12 +41,14 @@
41
41
  },
42
42
  "./tokens.css": "./dist/styles/tokens.css"
43
43
  },
44
+ "dependencies": {
45
+ "@lucide/svelte": "^1.47.0"
46
+ },
44
47
  "peerDependencies": {
45
48
  "svelte": "^5.0.0"
46
49
  },
47
50
  "devDependencies": {
48
51
  "@eslint/js": "^10.0.1",
49
- "@lucide/svelte": "^1.47.0",
50
52
  "@storybook/addon-a11y": "^10.6.0",
51
53
  "@storybook/addon-docs": "^10.6.0",
52
54
  "@storybook/addon-svelte-csf": "latest",
@@ -1,94 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
-
5
- type Props = Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'title'> & {
6
- /** Rendered as an `<h3>`. */
7
- title: string;
8
- /** Muted text next to the title, e.g. a period like "2021 - 2025". */
9
- meta?: string;
10
- /** The description. */
11
- children?: Snippet;
12
- /** Below the description, e.g. a Link. */
13
- footer?: Snippet;
14
- ref?: HTMLDivElement | null;
15
- };
16
-
17
- let {
18
- title,
19
- meta,
20
- class: className,
21
- children,
22
- footer,
23
- ref = $bindable(null),
24
- ...rest
25
- }: Props = $props();
26
- </script>
27
-
28
- <div {...rest} bind:this={ref} class={['entry', className]}>
29
- <div class="entry-heading">
30
- <h3 class="entry-title">{title}</h3>
31
- {#if meta}
32
- <span class="entry-meta">{meta}</span>
33
- {/if}
34
- </div>
35
- {#if children}
36
- <p class="entry-description">{@render children()}</p>
37
- {/if}
38
- {#if footer}
39
- <div class="entry-footer">{@render footer()}</div>
40
- {/if}
41
- </div>
42
-
43
- <style>
44
- @layer svelte-ui {
45
- .entry {
46
- display: flex;
47
- flex-direction: column;
48
- align-items: flex-start;
49
- gap: 10px;
50
- box-sizing: border-box;
51
- padding: 24px;
52
- color: var(--color-text);
53
- border: 1px solid var(--color-border-strong);
54
- border-radius: 10px;
55
- }
56
-
57
- .entry-heading {
58
- display: flex;
59
- flex-wrap: wrap;
60
- align-items: baseline;
61
- column-gap: 8px;
62
- }
63
-
64
- .entry-title {
65
- margin: 0;
66
- font-size: 20px;
67
- font-weight: 500;
68
- }
69
-
70
- .entry-meta {
71
- font-size: 14px;
72
- color: var(--color-text-muted);
73
- white-space: nowrap;
74
- }
75
-
76
- .entry-description {
77
- margin: 0;
78
- max-width: 640px;
79
- }
80
-
81
- .entry-footer {
82
- display: flex;
83
- flex-wrap: wrap;
84
- align-items: center;
85
- gap: 8px;
86
- }
87
-
88
- @media (min-width: 768px) {
89
- .entry {
90
- padding: 32px;
91
- }
92
- }
93
- }
94
- </style>
@@ -1,16 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- type Props = Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'title'> & {
4
- /** Rendered as an `<h3>`. */
5
- title: string;
6
- /** Muted text next to the title, e.g. a period like "2021 - 2025". */
7
- meta?: string;
8
- /** The description. */
9
- children?: Snippet;
10
- /** Below the description, e.g. a Link. */
11
- footer?: Snippet;
12
- ref?: HTMLDivElement | null;
13
- };
14
- declare const Entry: import("svelte").Component<Props, {}, "ref">;
15
- type Entry = ReturnType<typeof Entry>;
16
- export default Entry;