bloko-ui 0.0.1
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.
- package/README.md +58 -0
- package/dist/components/Accordion.svelte +107 -0
- package/dist/components/Accordion.svelte.d.ts +14 -0
- package/dist/components/Alert.svelte +136 -0
- package/dist/components/Alert.svelte.d.ts +11 -0
- package/dist/components/Avatar.svelte +82 -0
- package/dist/components/Avatar.svelte.d.ts +9 -0
- package/dist/components/Badge.svelte +61 -0
- package/dist/components/Badge.svelte.d.ts +8 -0
- package/dist/components/Breadcrumb.svelte +74 -0
- package/dist/components/Breadcrumb.svelte.d.ts +10 -0
- package/dist/components/Button.svelte +114 -0
- package/dist/components/Button.svelte.d.ts +12 -0
- package/dist/components/Card.svelte +49 -0
- package/dist/components/Card.svelte.d.ts +9 -0
- package/dist/components/Checkbox.svelte +108 -0
- package/dist/components/Checkbox.svelte.d.ts +10 -0
- package/dist/components/ContextMenu.svelte +132 -0
- package/dist/components/ContextMenu.svelte.d.ts +17 -0
- package/dist/components/Divider.svelte +55 -0
- package/dist/components/Divider.svelte.d.ts +7 -0
- package/dist/components/Dropdown.svelte +156 -0
- package/dist/components/Dropdown.svelte.d.ts +17 -0
- package/dist/components/EmptyState.svelte +79 -0
- package/dist/components/EmptyState.svelte.d.ts +10 -0
- package/dist/components/IconButton.svelte +88 -0
- package/dist/components/IconButton.svelte.d.ts +12 -0
- package/dist/components/Input.svelte +87 -0
- package/dist/components/Input.svelte.d.ts +15 -0
- package/dist/components/LangValue.svelte +124 -0
- package/dist/components/LangValue.svelte.d.ts +8 -0
- package/dist/components/Modal.svelte +136 -0
- package/dist/components/Modal.svelte.d.ts +10 -0
- package/dist/components/NumberInput.svelte +143 -0
- package/dist/components/NumberInput.svelte.d.ts +12 -0
- package/dist/components/Pagination.svelte +83 -0
- package/dist/components/Pagination.svelte.d.ts +9 -0
- package/dist/components/Popover.svelte +95 -0
- package/dist/components/Popover.svelte.d.ts +9 -0
- package/dist/components/Progress.svelte +55 -0
- package/dist/components/Progress.svelte.d.ts +9 -0
- package/dist/components/RadioGroup.svelte +111 -0
- package/dist/components/RadioGroup.svelte.d.ts +15 -0
- package/dist/components/SearchInput.svelte +121 -0
- package/dist/components/SearchInput.svelte.d.ts +10 -0
- package/dist/components/Select.svelte +82 -0
- package/dist/components/Select.svelte.d.ts +15 -0
- package/dist/components/Sidebar.svelte +97 -0
- package/dist/components/Sidebar.svelte.d.ts +13 -0
- package/dist/components/Skeleton.svelte +47 -0
- package/dist/components/Skeleton.svelte.d.ts +9 -0
- package/dist/components/Spinner.svelte +58 -0
- package/dist/components/Spinner.svelte.d.ts +7 -0
- package/dist/components/Switch.svelte +102 -0
- package/dist/components/Switch.svelte.d.ts +9 -0
- package/dist/components/Table.svelte +78 -0
- package/dist/components/Table.svelte.d.ts +6 -0
- package/dist/components/Tabs.svelte +74 -0
- package/dist/components/Tabs.svelte.d.ts +12 -0
- package/dist/components/Tag.svelte +75 -0
- package/dist/components/Tag.svelte.d.ts +9 -0
- package/dist/components/Textarea.svelte +63 -0
- package/dist/components/Textarea.svelte.d.ts +11 -0
- package/dist/components/Toast.svelte +103 -0
- package/dist/components/Toast.svelte.d.ts +10 -0
- package/dist/components/Tooltip.svelte +75 -0
- package/dist/components/Tooltip.svelte.d.ts +9 -0
- package/dist/components/TopNav.svelte +72 -0
- package/dist/components/TopNav.svelte.d.ts +12 -0
- package/dist/components/TruncatedText.svelte +46 -0
- package/dist/components/TruncatedText.svelte.d.ts +9 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +36 -0
- package/package.json +63 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
message: string;
|
|
4
|
+
variant?: 'info' | 'success' | 'warning' | 'error';
|
|
5
|
+
visible?: boolean;
|
|
6
|
+
duration?: number;
|
|
7
|
+
onclose?: () => void;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
let {
|
|
11
|
+
message,
|
|
12
|
+
variant = 'info',
|
|
13
|
+
visible = $bindable(true),
|
|
14
|
+
duration = 3000,
|
|
15
|
+
onclose
|
|
16
|
+
}: Props = $props();
|
|
17
|
+
|
|
18
|
+
$effect(() => {
|
|
19
|
+
if (visible && duration > 0) {
|
|
20
|
+
const timer = setTimeout(() => {
|
|
21
|
+
visible = false;
|
|
22
|
+
onclose?.();
|
|
23
|
+
}, duration);
|
|
24
|
+
return () => clearTimeout(timer);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
function close() {
|
|
29
|
+
visible = false;
|
|
30
|
+
onclose?.();
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
{#if visible}
|
|
35
|
+
<div class="toast toast-{variant}" role="alert">
|
|
36
|
+
<span class="message">{message}</span>
|
|
37
|
+
<button class="close" onclick={close} aria-label="Dismiss">
|
|
38
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
39
|
+
<path d="M18 6L6 18M6 6l12 12" />
|
|
40
|
+
</svg>
|
|
41
|
+
</button>
|
|
42
|
+
</div>
|
|
43
|
+
{/if}
|
|
44
|
+
|
|
45
|
+
<style>
|
|
46
|
+
.toast {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
gap: 12px;
|
|
50
|
+
padding: 10px 12px;
|
|
51
|
+
border-radius: 6px;
|
|
52
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
|
|
53
|
+
font-size: 12px;
|
|
54
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.toast-info {
|
|
58
|
+
background: #f0f9ff;
|
|
59
|
+
border: 1px solid #bae6fd;
|
|
60
|
+
color: #0369a1;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.toast-success {
|
|
64
|
+
background: #f0fdf4;
|
|
65
|
+
border: 1px solid #bbf7d0;
|
|
66
|
+
color: #166534;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.toast-warning {
|
|
70
|
+
background: #fefce8;
|
|
71
|
+
border: 1px solid #fef08a;
|
|
72
|
+
color: #854d0e;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.toast-error {
|
|
76
|
+
background: #fef2f2;
|
|
77
|
+
border: 1px solid #fecaca;
|
|
78
|
+
color: #991b1b;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.message {
|
|
82
|
+
flex: 1;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.close {
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
justify-content: center;
|
|
89
|
+
width: 20px;
|
|
90
|
+
height: 20px;
|
|
91
|
+
border: none;
|
|
92
|
+
background: none;
|
|
93
|
+
color: inherit;
|
|
94
|
+
opacity: 0.6;
|
|
95
|
+
cursor: pointer;
|
|
96
|
+
border-radius: 3px;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.close:hover {
|
|
100
|
+
opacity: 1;
|
|
101
|
+
background: rgba(0, 0, 0, 0.05);
|
|
102
|
+
}
|
|
103
|
+
</style>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
message: string;
|
|
3
|
+
variant?: 'info' | 'success' | 'warning' | 'error';
|
|
4
|
+
visible?: boolean;
|
|
5
|
+
duration?: number;
|
|
6
|
+
onclose?: () => void;
|
|
7
|
+
}
|
|
8
|
+
declare const Toast: import("svelte").Component<Props, {}, "visible">;
|
|
9
|
+
type Toast = ReturnType<typeof Toast>;
|
|
10
|
+
export default Toast;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
text: string;
|
|
6
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
7
|
+
children: Snippet;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
let { text, position = 'top', children }: Props = $props();
|
|
11
|
+
|
|
12
|
+
let visible = $state(false);
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<div
|
|
16
|
+
class="tooltip-wrapper"
|
|
17
|
+
onmouseenter={() => (visible = true)}
|
|
18
|
+
onmouseleave={() => (visible = false)}
|
|
19
|
+
onfocus={() => (visible = true)}
|
|
20
|
+
onblur={() => (visible = false)}
|
|
21
|
+
>
|
|
22
|
+
{@render children()}
|
|
23
|
+
{#if visible}
|
|
24
|
+
<div class="tooltip {position}" role="tooltip">
|
|
25
|
+
{text}
|
|
26
|
+
</div>
|
|
27
|
+
{/if}
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<style>
|
|
31
|
+
.tooltip-wrapper {
|
|
32
|
+
position: relative;
|
|
33
|
+
display: inline-block;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.tooltip {
|
|
37
|
+
position: absolute;
|
|
38
|
+
padding: 6px 10px;
|
|
39
|
+
font-size: 11px;
|
|
40
|
+
color: white;
|
|
41
|
+
background: #18181b;
|
|
42
|
+
border-radius: 4px;
|
|
43
|
+
white-space: nowrap;
|
|
44
|
+
z-index: 100;
|
|
45
|
+
pointer-events: none;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.tooltip.top {
|
|
49
|
+
bottom: 100%;
|
|
50
|
+
left: 50%;
|
|
51
|
+
transform: translateX(-50%);
|
|
52
|
+
margin-bottom: 6px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.tooltip.bottom {
|
|
56
|
+
top: 100%;
|
|
57
|
+
left: 50%;
|
|
58
|
+
transform: translateX(-50%);
|
|
59
|
+
margin-top: 6px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.tooltip.left {
|
|
63
|
+
right: 100%;
|
|
64
|
+
top: 50%;
|
|
65
|
+
transform: translateY(-50%);
|
|
66
|
+
margin-right: 6px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.tooltip.right {
|
|
70
|
+
left: 100%;
|
|
71
|
+
top: 50%;
|
|
72
|
+
transform: translateY(-50%);
|
|
73
|
+
margin-left: 6px;
|
|
74
|
+
}
|
|
75
|
+
</style>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
interface Props {
|
|
3
|
+
text: string;
|
|
4
|
+
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
5
|
+
children: Snippet;
|
|
6
|
+
}
|
|
7
|
+
declare const Tooltip: import("svelte").Component<Props, {}, "">;
|
|
8
|
+
type Tooltip = ReturnType<typeof Tooltip>;
|
|
9
|
+
export default Tooltip;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface NavItem {
|
|
3
|
+
label: string;
|
|
4
|
+
href: string;
|
|
5
|
+
active?: boolean;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
interface Props {
|
|
9
|
+
title?: string;
|
|
10
|
+
items?: NavItem[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let {
|
|
14
|
+
title = 'Bloko Studio',
|
|
15
|
+
items = []
|
|
16
|
+
}: Props = $props();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<nav class="topnav">
|
|
20
|
+
<a href="/" class="logo">{title}</a>
|
|
21
|
+
<div class="tabs">
|
|
22
|
+
{#each items as item}
|
|
23
|
+
<a href={item.href} class:active={item.active}>{item.label}</a>
|
|
24
|
+
{/each}
|
|
25
|
+
</div>
|
|
26
|
+
</nav>
|
|
27
|
+
|
|
28
|
+
<style>
|
|
29
|
+
.topnav {
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
height: 40px;
|
|
33
|
+
padding: 0 12px;
|
|
34
|
+
background: #18181b;
|
|
35
|
+
gap: 16px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.logo {
|
|
39
|
+
font-size: 13px;
|
|
40
|
+
font-weight: 600;
|
|
41
|
+
color: white;
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.tabs {
|
|
47
|
+
display: flex;
|
|
48
|
+
height: 100%;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.tabs a {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
padding: 0 10px;
|
|
55
|
+
font-size: 12px;
|
|
56
|
+
font-weight: 500;
|
|
57
|
+
color: #a1a1aa;
|
|
58
|
+
text-decoration: none;
|
|
59
|
+
border-bottom: 2px solid transparent;
|
|
60
|
+
transition: color 0.1s, border-color 0.1s;
|
|
61
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.tabs a:hover {
|
|
65
|
+
color: #e4e4e7;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.tabs a.active {
|
|
69
|
+
color: white;
|
|
70
|
+
border-bottom-color: white;
|
|
71
|
+
}
|
|
72
|
+
</style>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface NavItem {
|
|
2
|
+
label: string;
|
|
3
|
+
href: string;
|
|
4
|
+
active?: boolean;
|
|
5
|
+
}
|
|
6
|
+
interface Props {
|
|
7
|
+
title?: string;
|
|
8
|
+
items?: NavItem[];
|
|
9
|
+
}
|
|
10
|
+
declare const TopNav: import("svelte").Component<Props, {}, "">;
|
|
11
|
+
type TopNav = ReturnType<typeof TopNav>;
|
|
12
|
+
export default TopNav;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Tooltip from './Tooltip.svelte';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
value: string;
|
|
6
|
+
length?: number;
|
|
7
|
+
from?: 'start' | 'end';
|
|
8
|
+
tooltipPosition?: 'top' | 'bottom' | 'left' | 'right';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let { value, length = 8, from = 'start', tooltipPosition = 'bottom' }: Props = $props();
|
|
12
|
+
|
|
13
|
+
let isTruncated = $derived(value.length > length);
|
|
14
|
+
let truncated = $derived(
|
|
15
|
+
isTruncated
|
|
16
|
+
? from === 'start'
|
|
17
|
+
? value.slice(0, length)
|
|
18
|
+
: value.slice(-length)
|
|
19
|
+
: value
|
|
20
|
+
);
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
{#if isTruncated}
|
|
24
|
+
<Tooltip text={value} position={tooltipPosition}>
|
|
25
|
+
<span class="truncated-text">{truncated}</span>
|
|
26
|
+
</Tooltip>
|
|
27
|
+
{:else}
|
|
28
|
+
<span class="truncated-text">{truncated}</span>
|
|
29
|
+
{/if}
|
|
30
|
+
|
|
31
|
+
<style>
|
|
32
|
+
.truncated-text {
|
|
33
|
+
display: inline-block;
|
|
34
|
+
font-family: monospace;
|
|
35
|
+
font-size: 11px;
|
|
36
|
+
color: #71717a;
|
|
37
|
+
background: #f4f4f5;
|
|
38
|
+
padding: 2px 6px;
|
|
39
|
+
border-radius: 3px;
|
|
40
|
+
cursor: default;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.truncated-text:hover {
|
|
44
|
+
background: #e4e4e7;
|
|
45
|
+
}
|
|
46
|
+
</style>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
value: string;
|
|
3
|
+
length?: number;
|
|
4
|
+
from?: 'start' | 'end';
|
|
5
|
+
tooltipPosition?: 'top' | 'bottom' | 'left' | 'right';
|
|
6
|
+
}
|
|
7
|
+
declare const TruncatedText: import("svelte").Component<Props, {}, "">;
|
|
8
|
+
type TruncatedText = ReturnType<typeof TruncatedText>;
|
|
9
|
+
export default TruncatedText;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export { default as Button } from './components/Button.svelte';
|
|
2
|
+
export { default as Input } from './components/Input.svelte';
|
|
3
|
+
export { default as Badge } from './components/Badge.svelte';
|
|
4
|
+
export { default as Table } from './components/Table.svelte';
|
|
5
|
+
export { default as TopNav } from './components/TopNav.svelte';
|
|
6
|
+
export { default as Sidebar } from './components/Sidebar.svelte';
|
|
7
|
+
export { default as Select } from './components/Select.svelte';
|
|
8
|
+
export { default as Checkbox } from './components/Checkbox.svelte';
|
|
9
|
+
export { default as Modal } from './components/Modal.svelte';
|
|
10
|
+
export { default as Tabs } from './components/Tabs.svelte';
|
|
11
|
+
export { default as Breadcrumb } from './components/Breadcrumb.svelte';
|
|
12
|
+
export { default as Pagination } from './components/Pagination.svelte';
|
|
13
|
+
export { default as Toast } from './components/Toast.svelte';
|
|
14
|
+
export { default as Spinner } from './components/Spinner.svelte';
|
|
15
|
+
export { default as LangValue } from './components/LangValue.svelte';
|
|
16
|
+
export { default as TruncatedText } from './components/TruncatedText.svelte';
|
|
17
|
+
export { default as Switch } from './components/Switch.svelte';
|
|
18
|
+
export { default as Dropdown } from './components/Dropdown.svelte';
|
|
19
|
+
export { default as Skeleton } from './components/Skeleton.svelte';
|
|
20
|
+
export { default as EmptyState } from './components/EmptyState.svelte';
|
|
21
|
+
export { default as Alert } from './components/Alert.svelte';
|
|
22
|
+
export { default as Avatar } from './components/Avatar.svelte';
|
|
23
|
+
export { default as Tooltip } from './components/Tooltip.svelte';
|
|
24
|
+
export { default as Card } from './components/Card.svelte';
|
|
25
|
+
export { default as Divider } from './components/Divider.svelte';
|
|
26
|
+
export { default as Progress } from './components/Progress.svelte';
|
|
27
|
+
export { default as Tag } from './components/Tag.svelte';
|
|
28
|
+
export { default as IconButton } from './components/IconButton.svelte';
|
|
29
|
+
export { default as Textarea } from './components/Textarea.svelte';
|
|
30
|
+
export { default as RadioGroup } from './components/RadioGroup.svelte';
|
|
31
|
+
export { default as SearchInput } from './components/SearchInput.svelte';
|
|
32
|
+
export { default as NumberInput } from './components/NumberInput.svelte';
|
|
33
|
+
export { default as Accordion } from './components/Accordion.svelte';
|
|
34
|
+
export { default as Popover } from './components/Popover.svelte';
|
|
35
|
+
export { default as ContextMenu } from './components/ContextMenu.svelte';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Components
|
|
2
|
+
export { default as Button } from './components/Button.svelte';
|
|
3
|
+
export { default as Input } from './components/Input.svelte';
|
|
4
|
+
export { default as Badge } from './components/Badge.svelte';
|
|
5
|
+
export { default as Table } from './components/Table.svelte';
|
|
6
|
+
export { default as TopNav } from './components/TopNav.svelte';
|
|
7
|
+
export { default as Sidebar } from './components/Sidebar.svelte';
|
|
8
|
+
export { default as Select } from './components/Select.svelte';
|
|
9
|
+
export { default as Checkbox } from './components/Checkbox.svelte';
|
|
10
|
+
export { default as Modal } from './components/Modal.svelte';
|
|
11
|
+
export { default as Tabs } from './components/Tabs.svelte';
|
|
12
|
+
export { default as Breadcrumb } from './components/Breadcrumb.svelte';
|
|
13
|
+
export { default as Pagination } from './components/Pagination.svelte';
|
|
14
|
+
export { default as Toast } from './components/Toast.svelte';
|
|
15
|
+
export { default as Spinner } from './components/Spinner.svelte';
|
|
16
|
+
export { default as LangValue } from './components/LangValue.svelte';
|
|
17
|
+
export { default as TruncatedText } from './components/TruncatedText.svelte';
|
|
18
|
+
export { default as Switch } from './components/Switch.svelte';
|
|
19
|
+
export { default as Dropdown } from './components/Dropdown.svelte';
|
|
20
|
+
export { default as Skeleton } from './components/Skeleton.svelte';
|
|
21
|
+
export { default as EmptyState } from './components/EmptyState.svelte';
|
|
22
|
+
export { default as Alert } from './components/Alert.svelte';
|
|
23
|
+
export { default as Avatar } from './components/Avatar.svelte';
|
|
24
|
+
export { default as Tooltip } from './components/Tooltip.svelte';
|
|
25
|
+
export { default as Card } from './components/Card.svelte';
|
|
26
|
+
export { default as Divider } from './components/Divider.svelte';
|
|
27
|
+
export { default as Progress } from './components/Progress.svelte';
|
|
28
|
+
export { default as Tag } from './components/Tag.svelte';
|
|
29
|
+
export { default as IconButton } from './components/IconButton.svelte';
|
|
30
|
+
export { default as Textarea } from './components/Textarea.svelte';
|
|
31
|
+
export { default as RadioGroup } from './components/RadioGroup.svelte';
|
|
32
|
+
export { default as SearchInput } from './components/SearchInput.svelte';
|
|
33
|
+
export { default as NumberInput } from './components/NumberInput.svelte';
|
|
34
|
+
export { default as Accordion } from './components/Accordion.svelte';
|
|
35
|
+
export { default as Popover } from './components/Popover.svelte';
|
|
36
|
+
export { default as ContextMenu } from './components/ContextMenu.svelte';
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bloko-ui",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "vite dev",
|
|
8
|
+
"build": "vite build && npm run prepack",
|
|
9
|
+
"preview": "vite preview",
|
|
10
|
+
"prepare": "svelte-kit sync || echo ''",
|
|
11
|
+
"prepack": "svelte-kit sync && svelte-package && publint",
|
|
12
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
13
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
14
|
+
"storybook": "storybook dev -p 6006",
|
|
15
|
+
"build-storybook": "storybook build"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"!dist/**/*.test.*",
|
|
20
|
+
"!dist/**/*.spec.*",
|
|
21
|
+
"!dist/**/*.stories.*"
|
|
22
|
+
],
|
|
23
|
+
"sideEffects": [
|
|
24
|
+
"**/*.css"
|
|
25
|
+
],
|
|
26
|
+
"svelte": "./dist/index.js",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"type": "module",
|
|
29
|
+
"exports": {
|
|
30
|
+
".": {
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"svelte": "./dist/index.js"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"svelte": "^5.0.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@sveltejs/adapter-auto": "^7.0.0",
|
|
40
|
+
"@sveltejs/kit": "^2.49.1",
|
|
41
|
+
"@sveltejs/package": "^2.5.7",
|
|
42
|
+
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
|
43
|
+
"publint": "^0.3.15",
|
|
44
|
+
"svelte": "^5.45.6",
|
|
45
|
+
"svelte-check": "^4.3.4",
|
|
46
|
+
"typescript": "^5.9.3",
|
|
47
|
+
"vite": "^7.2.6",
|
|
48
|
+
"storybook": "^10.1.11",
|
|
49
|
+
"@storybook/sveltekit": "^10.1.11",
|
|
50
|
+
"@storybook/addon-svelte-csf": "^5.0.10",
|
|
51
|
+
"@chromatic-com/storybook": "^5.0.0",
|
|
52
|
+
"@storybook/addon-vitest": "^10.1.11",
|
|
53
|
+
"@storybook/addon-a11y": "^10.1.11",
|
|
54
|
+
"@storybook/addon-docs": "^10.1.11",
|
|
55
|
+
"vitest": "^4.0.17",
|
|
56
|
+
"playwright": "^1.57.0",
|
|
57
|
+
"@vitest/browser-playwright": "^4.0.17",
|
|
58
|
+
"@vitest/coverage-v8": "^4.0.17"
|
|
59
|
+
},
|
|
60
|
+
"keywords": [
|
|
61
|
+
"svelte"
|
|
62
|
+
]
|
|
63
|
+
}
|