@lyeve-labs/ui-kit 0.8.2
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/LICENSE +21 -0
- package/README.md +199 -0
- package/dist/components/Accordion.svelte +48 -0
- package/dist/components/Accordion.svelte.d.ts +10 -0
- package/dist/components/AccordionItem.svelte +55 -0
- package/dist/components/AccordionItem.svelte.d.ts +10 -0
- package/dist/components/Alert.svelte +60 -0
- package/dist/components/Alert.svelte.d.ts +13 -0
- package/dist/components/Autocomplete.svelte +198 -0
- package/dist/components/Autocomplete.svelte.d.ts +23 -0
- package/dist/components/Avatar.svelte +65 -0
- package/dist/components/Avatar.svelte.d.ts +9 -0
- package/dist/components/AvatarGroup.svelte +45 -0
- package/dist/components/AvatarGroup.svelte.d.ts +14 -0
- package/dist/components/Badge.svelte +48 -0
- package/dist/components/Badge.svelte.d.ts +13 -0
- package/dist/components/Banner.svelte +73 -0
- package/dist/components/Banner.svelte.d.ts +13 -0
- package/dist/components/Breadcrumb.svelte +47 -0
- package/dist/components/Breadcrumb.svelte.d.ts +10 -0
- package/dist/components/Button.svelte +71 -0
- package/dist/components/Button.svelte.d.ts +18 -0
- package/dist/components/ButtonGroup.svelte +33 -0
- package/dist/components/ButtonGroup.svelte.d.ts +9 -0
- package/dist/components/Card.svelte +72 -0
- package/dist/components/Card.svelte.d.ts +17 -0
- package/dist/components/Checkbox.svelte +80 -0
- package/dist/components/Checkbox.svelte.d.ts +14 -0
- package/dist/components/DatePicker.svelte +274 -0
- package/dist/components/DatePicker.svelte.d.ts +17 -0
- package/dist/components/Divider.svelte +23 -0
- package/dist/components/Divider.svelte.d.ts +8 -0
- package/dist/components/Drawer.svelte +120 -0
- package/dist/components/Drawer.svelte.d.ts +16 -0
- package/dist/components/Dropdown.svelte +88 -0
- package/dist/components/Dropdown.svelte.d.ts +23 -0
- package/dist/components/EmptyState.svelte +51 -0
- package/dist/components/EmptyState.svelte.d.ts +13 -0
- package/dist/components/FileInput.svelte +102 -0
- package/dist/components/FileInput.svelte.d.ts +15 -0
- package/dist/components/Indicator.svelte +38 -0
- package/dist/components/Indicator.svelte.d.ts +11 -0
- package/dist/components/Input.svelte +60 -0
- package/dist/components/Input.svelte.d.ts +17 -0
- package/dist/components/Kbd.svelte +18 -0
- package/dist/components/Kbd.svelte.d.ts +8 -0
- package/dist/components/Label.svelte +30 -0
- package/dist/components/Label.svelte.d.ts +11 -0
- package/dist/components/Modal.svelte +105 -0
- package/dist/components/Modal.svelte.d.ts +14 -0
- package/dist/components/MultiSelect.svelte +212 -0
- package/dist/components/MultiSelect.svelte.d.ts +22 -0
- package/dist/components/NumberInput.svelte +98 -0
- package/dist/components/NumberInput.svelte.d.ts +15 -0
- package/dist/components/PageHeader.svelte +22 -0
- package/dist/components/PageHeader.svelte.d.ts +10 -0
- package/dist/components/Pagination.svelte +112 -0
- package/dist/components/Pagination.svelte.d.ts +10 -0
- package/dist/components/Progress.svelte +70 -0
- package/dist/components/Progress.svelte.d.ts +15 -0
- package/dist/components/Radio.svelte +65 -0
- package/dist/components/Radio.svelte.d.ts +14 -0
- package/dist/components/RadioGroup.svelte +96 -0
- package/dist/components/RadioGroup.svelte.d.ts +22 -0
- package/dist/components/SearchInput.svelte +81 -0
- package/dist/components/SearchInput.svelte.d.ts +10 -0
- package/dist/components/Select.svelte +69 -0
- package/dist/components/Select.svelte.d.ts +18 -0
- package/dist/components/Skeleton.svelte +20 -0
- package/dist/components/Skeleton.svelte.d.ts +9 -0
- package/dist/components/Spinner.svelte +19 -0
- package/dist/components/Spinner.svelte.d.ts +7 -0
- package/dist/components/Stat.svelte +45 -0
- package/dist/components/Stat.svelte.d.ts +14 -0
- package/dist/components/StepIndicator.svelte +142 -0
- package/dist/components/StepIndicator.svelte.d.ts +13 -0
- package/dist/components/Table.svelte +36 -0
- package/dist/components/Table.svelte.d.ts +11 -0
- package/dist/components/Tabs.svelte +39 -0
- package/dist/components/Tabs.svelte.d.ts +13 -0
- package/dist/components/Tag.svelte +56 -0
- package/dist/components/Tag.svelte.d.ts +11 -0
- package/dist/components/Textarea.svelte +75 -0
- package/dist/components/Textarea.svelte.d.ts +26 -0
- package/dist/components/ThemeToggle.svelte +33 -0
- package/dist/components/ThemeToggle.svelte.d.ts +6 -0
- package/dist/components/Toaster.svelte +54 -0
- package/dist/components/Toaster.svelte.d.ts +18 -0
- package/dist/components/Toggle.svelte +74 -0
- package/dist/components/Toggle.svelte.d.ts +11 -0
- package/dist/components/Tooltip.svelte +44 -0
- package/dist/components/Tooltip.svelte.d.ts +11 -0
- package/dist/components/dialog/ConfirmDialog.svelte +95 -0
- package/dist/components/dialog/ConfirmDialog.svelte.d.ts +8 -0
- package/dist/components/dialog/Dialog.svelte +225 -0
- package/dist/components/dialog/Dialog.svelte.d.ts +9 -0
- package/dist/components/dialog/DialogContainer.svelte +17 -0
- package/dist/components/dialog/DialogContainer.svelte.d.ts +18 -0
- package/dist/components/dialog/dialog-manager.svelte.d.ts +54 -0
- package/dist/components/dialog/dialog-manager.svelte.js +164 -0
- package/dist/components/dialog/types.d.ts +33 -0
- package/dist/components/dialog/types.js +10 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.js +72 -0
- package/dist/stores/toast.svelte.d.ts +18 -0
- package/dist/stores/toast.svelte.js +28 -0
- package/dist/styles/theme.css +148 -0
- package/dist/utils/cn.d.ts +13 -0
- package/dist/utils/cn.js +24 -0
- package/dist/utils/theme.d.ts +26 -0
- package/dist/utils/theme.js +55 -0
- package/package.json +81 -0
- package/src/lib/styles/theme.css +148 -0
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lyeve-labs/ui-kit",
|
|
3
|
+
"version": "0.8.2",
|
|
4
|
+
"description": "A clean, accessible, palette-aware Svelte 5 component library. The design system behind LyEve.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "LyEve Labs <hello@lyeve.com>",
|
|
7
|
+
"homepage": "https://ui.lyeve.com",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/lyeve-labs/ui-kit.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/lyeve-labs/ui-kit/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"svelte",
|
|
17
|
+
"svelte5",
|
|
18
|
+
"components",
|
|
19
|
+
"ui-kit",
|
|
20
|
+
"tailwindcss",
|
|
21
|
+
"design-system",
|
|
22
|
+
"lyeve"
|
|
23
|
+
],
|
|
24
|
+
"type": "module",
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"engines": {
|
|
27
|
+
"node": ">=20"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"src/lib/styles",
|
|
32
|
+
"!dist/**/*.test.*",
|
|
33
|
+
"!dist/**/*.spec.*"
|
|
34
|
+
],
|
|
35
|
+
"svelte": "./dist/index.js",
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"exports": {
|
|
38
|
+
".": {
|
|
39
|
+
"types": "./dist/index.d.ts",
|
|
40
|
+
"svelte": "./dist/index.js",
|
|
41
|
+
"default": "./dist/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./styles.css": "./src/lib/styles/theme.css",
|
|
44
|
+
"./package.json": "./package.json"
|
|
45
|
+
},
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"svelte": "^5.0.0"
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public",
|
|
51
|
+
"provenance": false
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"@lucide/svelte": "^0.511.0"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@sveltejs/package": "^2.5.7",
|
|
58
|
+
"@sveltejs/vite-plugin-svelte": "^4.0.4",
|
|
59
|
+
"@testing-library/svelte": "^5.3.1",
|
|
60
|
+
"@vitest/coverage-v8": "^2.1.9",
|
|
61
|
+
"jsdom": "^25.0.1",
|
|
62
|
+
"prettier": "^3.8.3",
|
|
63
|
+
"prettier-plugin-svelte": "^4.0.1",
|
|
64
|
+
"prettier-plugin-tailwindcss": "^0.8.0",
|
|
65
|
+
"publint": "^0.2.12",
|
|
66
|
+
"svelte": "^5.55.9",
|
|
67
|
+
"svelte-check": "^4.4.8",
|
|
68
|
+
"typescript": "^5.9.3",
|
|
69
|
+
"vitest": "^2.1.9"
|
|
70
|
+
},
|
|
71
|
+
"scripts": {
|
|
72
|
+
"build": "svelte-package && publint",
|
|
73
|
+
"package": "svelte-package && publint",
|
|
74
|
+
"check": "svelte-check --tsconfig ./tsconfig.json",
|
|
75
|
+
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
|
|
76
|
+
"test": "vitest run",
|
|
77
|
+
"test:watch": "vitest",
|
|
78
|
+
"format": "prettier --write .",
|
|
79
|
+
"format:check": "prettier --check ."
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @lyeve/ui-kit - theme tokens
|
|
3
|
+
*
|
|
4
|
+
* A single CSS file imported once at the top of your app's root stylesheet.
|
|
5
|
+
* Declares two palettes - Soft Dark (default) and Soft Light - built from
|
|
6
|
+
* the LyEve brand guideline (Ink #0B1422 + Cyan #00D4FF) and exposes them
|
|
7
|
+
* as Tailwind v4 `@theme` tokens.
|
|
8
|
+
*
|
|
9
|
+
* import '@lyeve/ui-kit/styles.css';
|
|
10
|
+
*
|
|
11
|
+
* Switching themes is a single attribute on `<html>`:
|
|
12
|
+
* <html data-theme="light"> // light mode
|
|
13
|
+
* <html> // dark mode (default)
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
@import 'tailwindcss';
|
|
17
|
+
|
|
18
|
+
/* ── Soft Dark · default palette ─────────────────────────────────────────── */
|
|
19
|
+
@theme {
|
|
20
|
+
--color-ink: #0b1422;
|
|
21
|
+
--color-surface: #101a2b;
|
|
22
|
+
--color-surface-2: #162233;
|
|
23
|
+
--color-line: #1e2d40;
|
|
24
|
+
--color-fg: #e6e8ee;
|
|
25
|
+
--color-muted: #9aa1ad;
|
|
26
|
+
--color-faint: #525866;
|
|
27
|
+
|
|
28
|
+
--color-brand: #00d4ff;
|
|
29
|
+
--color-brand-light: #5fd9f4;
|
|
30
|
+
--color-brand-deep: #0099c4;
|
|
31
|
+
--color-violet: #7c6aef;
|
|
32
|
+
|
|
33
|
+
--color-success: #15803d;
|
|
34
|
+
--color-warn: #b45309;
|
|
35
|
+
--color-danger: #b91c1c;
|
|
36
|
+
|
|
37
|
+
/* ── Radius ─────────────────────────────────────────────────── */
|
|
38
|
+
--radius-xs: 4px;
|
|
39
|
+
--radius-sm: 6px;
|
|
40
|
+
--radius-md: 8px;
|
|
41
|
+
--radius-lg: 12px;
|
|
42
|
+
--radius-xl: 16px;
|
|
43
|
+
--radius-2xl: 24px;
|
|
44
|
+
|
|
45
|
+
/* ── Typography · families ───────────────────────────────────── */
|
|
46
|
+
--font-sans:
|
|
47
|
+
'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
|
48
|
+
'Noto Sans', sans-serif;
|
|
49
|
+
--font-mono:
|
|
50
|
+
'JetBrains Mono', ui-monospace, 'SF Mono', 'Cascadia Code', 'Fira Code', Menlo, Consolas,
|
|
51
|
+
monospace;
|
|
52
|
+
|
|
53
|
+
/* ── Typography · brand type scale (from brand guideline) ────── *
|
|
54
|
+
* Token Size Line Tracking Weight Use *
|
|
55
|
+
* Display 64px 1.05 −0.04em 700 Hero headlines *
|
|
56
|
+
* H1 44px 1.10 −0.025em 700 Page titles *
|
|
57
|
+
* H2 32px 1.15 −0.02em 600 Section headings *
|
|
58
|
+
* H3 22px 1.25 −0.015em 600 Card / group heads *
|
|
59
|
+
* Body 16px 1.55 0 400 Default body copy *
|
|
60
|
+
* Caption 13px 1.50 0 400 Labels, metadata *
|
|
61
|
+
* Mono 18px 1.50 0 500 Code, eyebrows *
|
|
62
|
+
* */
|
|
63
|
+
--font-size-display: 4rem; /* 64px */
|
|
64
|
+
--font-size-h1: 2.75rem; /* 44px */
|
|
65
|
+
--font-size-h2: 2rem; /* 32px */
|
|
66
|
+
--font-size-h3: 1.375rem; /* 22px */
|
|
67
|
+
--font-size-body: 1rem; /* 16px */
|
|
68
|
+
--font-size-caption: 0.8125rem; /* 13px */
|
|
69
|
+
--font-size-mono: 1.125rem; /* 18px */
|
|
70
|
+
|
|
71
|
+
--leading-display: 1.05;
|
|
72
|
+
--leading-h1: 1.1;
|
|
73
|
+
--leading-h2: 1.15;
|
|
74
|
+
--leading-h3: 1.25;
|
|
75
|
+
--leading-body: 1.55;
|
|
76
|
+
--leading-caption: 1.5;
|
|
77
|
+
--leading-mono: 1.5;
|
|
78
|
+
|
|
79
|
+
--tracking-display: -0.04em;
|
|
80
|
+
--tracking-h1: -0.025em;
|
|
81
|
+
--tracking-h2: -0.02em;
|
|
82
|
+
--tracking-h3: -0.015em;
|
|
83
|
+
|
|
84
|
+
/* ── Spacing grid · 4px base (semantic shortcuts) ────────────── *
|
|
85
|
+
* Tailwind's default 0.25rem (4px) grid is unchanged. *
|
|
86
|
+
* These tokens add named slots for common component spacing. */
|
|
87
|
+
--spacing-page-x: 1.5rem; /* 24px - page horizontal gutter */
|
|
88
|
+
--spacing-page-y: 2rem; /* 32px - page vertical gutter */
|
|
89
|
+
--spacing-card: 1.5rem; /* 24px - card inner padding */
|
|
90
|
+
--spacing-card-sm: 1rem; /* 16px - compact card padding */
|
|
91
|
+
--spacing-section: 3rem; /* 48px - section gap */
|
|
92
|
+
--spacing-input-x: 0.75rem; /* 12px - input horizontal padding */
|
|
93
|
+
--spacing-input-y: 0.5rem; /* 8px - input vertical padding */
|
|
94
|
+
--spacing-stack: 1rem; /* 16px - default vertical stack gap */
|
|
95
|
+
--spacing-inline: 0.5rem; /* 8px - default inline gap */
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* ── Soft Light · activated by html[data-theme="light"] ──────────────────── */
|
|
99
|
+
html[data-theme='light'] {
|
|
100
|
+
--color-ink: #f6f7f9;
|
|
101
|
+
--color-surface: #ffffff;
|
|
102
|
+
--color-surface-2: #e6e8ee;
|
|
103
|
+
--color-line: #d6d9e0;
|
|
104
|
+
--color-fg: #111827;
|
|
105
|
+
--color-muted: #525866;
|
|
106
|
+
--color-faint: #9aa1ad;
|
|
107
|
+
|
|
108
|
+
--color-brand: #007ea6;
|
|
109
|
+
--color-brand-light: #00b4dd;
|
|
110
|
+
--color-brand-deep: #006a8a;
|
|
111
|
+
--color-violet: #6b5cdf;
|
|
112
|
+
|
|
113
|
+
--color-success: #15803d;
|
|
114
|
+
--color-warn: #b45309;
|
|
115
|
+
--color-danger: #b91c1c;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@layer base {
|
|
119
|
+
html {
|
|
120
|
+
background-color: var(--color-ink);
|
|
121
|
+
color-scheme: dark;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
html[data-theme='light'] {
|
|
125
|
+
color-scheme: light;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
body {
|
|
129
|
+
background-color: var(--color-ink);
|
|
130
|
+
color: var(--color-fg);
|
|
131
|
+
font-family: var(--font-sans);
|
|
132
|
+
-webkit-font-smoothing: antialiased;
|
|
133
|
+
-moz-osx-font-smoothing: grayscale;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
::selection {
|
|
137
|
+
background-color: color-mix(in srgb, var(--color-brand) 30%, transparent);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
:focus-visible {
|
|
141
|
+
outline: 2px solid color-mix(in srgb, var(--color-brand) 60%, transparent);
|
|
142
|
+
outline-offset: 2px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
:focus:not(:focus-visible) {
|
|
146
|
+
outline: none;
|
|
147
|
+
}
|
|
148
|
+
}
|