veloria-ui 0.1.2 → 0.1.3
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/CHANGELOG.md +122 -100
- package/README.md +13 -13
- package/dist/cli/index.js +12 -14
- package/dist/index.d.mts +15 -15
- package/dist/index.d.ts +15 -15
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -8
- package/dist/index.mjs.map +1 -1
- package/dist/provider.d.mts +3 -3
- package/dist/provider.d.ts +3 -3
- package/dist/provider.js +3 -3
- package/dist/provider.js.map +1 -1
- package/dist/provider.mjs +2 -2
- package/dist/provider.mjs.map +1 -1
- package/dist/tailwind.d.ts +9 -9
- package/dist/tailwind.js +9 -9
- package/package.json +5 -7
- package/src/cli/index.ts +10 -10
- package/src/hooks/index.ts +10 -7
- package/src/hooks/use-toast.tsx +5 -5
- package/src/index.ts +5 -5
- package/src/provider.tsx +7 -7
- package/src/styles/{atlas.css → veloria.css} +57 -69
- package/src/tailwind.ts +10 -10
- package/src/types/index.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,18 +1,91 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
All notable changes to Veloria UI are documented here.
|
|
4
|
-
Project by [JohnDev19](https://github.com/JohnDev19) · [GitHub](https://github.com/JohnDev19/Veloria-UI) · [veloria
|
|
4
|
+
Project by [JohnDev19](https://github.com/JohnDev19) · [GitHub](https://github.com/JohnDev19/Veloria-UI) · [ui-veloria.vercel.app](https://ui-veloria.vercel.app/)
|
|
5
5
|
|
|
6
6
|
This project follows [Semantic Versioning](https://semver.org).
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [0.1.3] — 2026-03-16 (Edited)
|
|
11
|
+
|
|
12
|
+
### Branding & Naming
|
|
13
|
+
|
|
14
|
+
- Renamed all `atlas-` CSS keyframe and class prefixes to `veloria-` throughout `veloria.css`
|
|
15
|
+
- Renamed `atlas.css` to `veloria.css` — update your import to `import "veloria-ui/styles"`
|
|
16
|
+
- Renamed `atlasPlugin` → `veloriaPlugin` and `atlasPreset` → `veloriaPreset` in `tailwind.ts`
|
|
17
|
+
- Renamed `AtlasProvider` → `VeloriaProvider` and `AtlasProviderProps` → `VeloriaProviderProps` in `provider.tsx`
|
|
18
|
+
- Renamed `AtlasTheme` type → `VeloriaTheme` in `hooks/index.ts`
|
|
19
|
+
- Renamed `AtlasBaseProps` → `VeloriaBaseProps` and `AtlasAriaProps` → `VeloriaAriaProps` in `types/index.ts`
|
|
20
|
+
- Renamed `atlas.config.json` → `veloria.config.json` — CLI `init` now writes `veloria.config.json`
|
|
21
|
+
- Renamed localStorage theme key from `atlas-theme` to `veloria-theme`
|
|
22
|
+
- Removed legacy `atlas` bin alias from `package.json`
|
|
23
|
+
- Updated all homepage and docs URLs to `https://ui-veloria.vercel.app/`
|
|
24
|
+
- Removed hardcoded component count from descriptions and CLI copy
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
- Fixed `TypeError: Cannot read properties of null (reading 'matches')` — `window.matchMedia` now uses optional chaining (`?.`) in `useTheme` and an explicit null guard in `useMediaQuery`, preventing crashes in jsdom and certain SSR environments
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## [0.1.2] — 2026-03-15 (UPDATED)
|
|
33
|
+
|
|
34
|
+
### New Components (20)
|
|
35
|
+
|
|
36
|
+
**Advanced Forms**
|
|
37
|
+
- `PhoneInput` — international phone number with country dial-code selector
|
|
38
|
+
- `TagInput` — type and press Enter to add inline tags, supports max, duplicates control
|
|
39
|
+
- `CurrencyInput` — formatted number input with locale-aware currency symbol
|
|
40
|
+
- `RatingInput` — star rating picker with hover state, clear button, and read-only mode
|
|
41
|
+
|
|
42
|
+
**Data Display**
|
|
43
|
+
- `StatsCard` — metric card with icon, trend indicator, and loading skeleton
|
|
44
|
+
- `TreeView` — nested expandable tree with keyboard navigation and multi-depth support
|
|
45
|
+
- `JsonViewer` — collapsible syntax-highlighted JSON tree with configurable max depth
|
|
46
|
+
- `Heatmap` — GitHub-style activity grid with value intensity scale
|
|
47
|
+
- `KanbanBoard` — drag-and-drop column board with card tagging and assignee slot
|
|
48
|
+
|
|
49
|
+
**Feedback and Overlay**
|
|
50
|
+
- `BannerAlert` — full-width top-of-page announcement strip with 4 variants
|
|
51
|
+
- `ConfirmDialog` — opinionated confirmation modal with async confirm support and danger variant
|
|
52
|
+
- `FloatingActionButton` — FAB with expandable speed-dial actions and 3 position presets
|
|
53
|
+
- `RichTooltip` — tooltip with title, description, and action slot
|
|
54
|
+
- `Tour` — multi-step onboarding overlay with dot progress indicator
|
|
55
|
+
|
|
56
|
+
**Utility**
|
|
57
|
+
- `InfiniteScroll` — IntersectionObserver-based load-more trigger with loader slot
|
|
58
|
+
- `VirtualList` — windowed list renderer for large datasets with configurable overscan
|
|
59
|
+
|
|
60
|
+
### New Hooks (6)
|
|
61
|
+
|
|
62
|
+
- `useForm` — form state and validation with touched tracking, no extra dependencies
|
|
63
|
+
- `usePagination` — pagination logic decoupled from UI, with from/to helpers
|
|
64
|
+
- `useIntersection` — IntersectionObserver wrapper with optional `once` mode
|
|
65
|
+
- `useWindowSize` — reactive window width and height, SSR-safe
|
|
66
|
+
- `useStep` — multi-step wizard state with `isFirst`, `isLast`, and progress percentage
|
|
67
|
+
- `useCountdown` — countdown timer with `start`, `pause`, and `reset` controls
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## [0.1.1] — 2026-03-13 (UPDATED)
|
|
72
|
+
|
|
73
|
+
### Build fixes
|
|
74
|
+
|
|
75
|
+
- Fixed `tailwindcss/plugin` resolve error — marked as external in tsup, switched to `require()` at runtime
|
|
76
|
+
- Fixed `"types"` export condition ordering in `package.json` — `types` now comes before `import`/`require`
|
|
77
|
+
- Fixed `use-toast.ts` renamed to `use-toast.tsx` — file contained JSX but had `.ts` extension
|
|
78
|
+
- Fixed `TS2320` / `TS2322` conflicts across all component interfaces — `HTMLAttributes` built-in props (`color`, `size`, `title`, `prefix`, `onChange`, `onDrop`, `onDragOver`) now properly `Omit`-ed before extending
|
|
79
|
+
- Renamed package from `veloria-ui-kit` to `veloria-ui`
|
|
80
|
+
- CLI `--version` flag now reads dynamically from `package.json` instead of being hardcoded
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
10
84
|
## [0.1.0] — 2024-06-28
|
|
11
85
|
|
|
12
86
|
### Initial Release
|
|
13
87
|
|
|
14
|
-
First public release of Veloria UI.
|
|
15
|
-
plugin, and a complete CSS token system with light + dark mode.
|
|
88
|
+
First public release of Veloria UI. A full CLI, hooks, a Tailwind plugin, and a complete CSS token system with light + dark mode.
|
|
16
89
|
|
|
17
90
|
---
|
|
18
91
|
|
|
@@ -62,56 +135,59 @@ plugin, and a complete CSS token system with light + dark mode.
|
|
|
62
135
|
- `Switch` — three sizes, label, description
|
|
63
136
|
- `Slider` — range slider
|
|
64
137
|
- `RangeSlider` — dual-thumb slider
|
|
65
|
-
- `DatePicker` —
|
|
66
|
-
- `TimePicker` —
|
|
138
|
+
- `DatePicker` — calendar popover with keyboard navigation
|
|
139
|
+
- `TimePicker` — hour/minute/second with AM/PM toggle
|
|
67
140
|
|
|
68
141
|
**Advanced Forms (10)**
|
|
69
|
-
- `FileUpload` — drag-and-drop
|
|
70
|
-
- `OTPInput` —
|
|
71
|
-
- `ColorPicker` —
|
|
72
|
-
- `SearchInput` — search with
|
|
73
|
-
- `PasswordInput` — toggle
|
|
74
|
-
- `Combobox` — searchable
|
|
75
|
-
- `MultiSelect` — multi-value select
|
|
76
|
-
- `FormField`
|
|
142
|
+
- `FileUpload` — drag-and-drop with preview, size limit, MIME type filter
|
|
143
|
+
- `OTPInput` — SMS-style one-time-password input
|
|
144
|
+
- `ColorPicker` — HEX/RGB/HSL input with swatch palette
|
|
145
|
+
- `SearchInput` — debounced search with clear button
|
|
146
|
+
- `PasswordInput` — toggle visibility with strength meter
|
|
147
|
+
- `Combobox` — searchable dropdown with keyboard navigation
|
|
148
|
+
- `MultiSelect` — tag-style multi-value select
|
|
149
|
+
- `FormField` — label + input + error wrapper
|
|
150
|
+
- `FormLabel` — accessible label
|
|
151
|
+
- `FormError` — error message slot
|
|
77
152
|
|
|
78
153
|
**Data Display (10)**
|
|
79
|
-
- `Card`
|
|
80
|
-
- `Table`
|
|
81
|
-
- `DataTable` —
|
|
82
|
-
- `List` / `ListItem`
|
|
83
|
-
- `Statistic` —
|
|
84
|
-
- `Timeline` — vertical
|
|
85
|
-
- `Calendar` — month
|
|
86
|
-
- `
|
|
87
|
-
- `
|
|
154
|
+
- `Card` / `CardHeader` / `CardContent` / `CardFooter`
|
|
155
|
+
- `Table` — sortable columns, sticky header
|
|
156
|
+
- `DataTable` — full-featured table with pagination and row selection
|
|
157
|
+
- `List` / `ListItem`
|
|
158
|
+
- `Statistic` — large number with label and trend
|
|
159
|
+
- `Timeline` — vertical event list
|
|
160
|
+
- `Calendar` — month grid with event dots
|
|
161
|
+
- `Chart` — wrapper around Recharts with theme tokens
|
|
162
|
+
- `CodeBlock` — syntax-highlighted code with copy button
|
|
88
163
|
|
|
89
164
|
**Feedback (10)**
|
|
90
|
-
- `Alert` —
|
|
91
|
-
- `Toast` — Radix Toast with
|
|
92
|
-
- `Snackbar` —
|
|
93
|
-
- `Progress` — linear
|
|
94
|
-
- `CircularProgress` — SVG ring with
|
|
95
|
-
- `Skeleton` —
|
|
96
|
-
- `LoadingSpinner` —
|
|
165
|
+
- `Alert` — inline alert with 5 variants and icon slot
|
|
166
|
+
- `Toast` — Radix Toast with 5 variants · programmatic via `useToast`
|
|
167
|
+
- `Snackbar` — bottom-anchored status message
|
|
168
|
+
- `Progress` — linear with animated fill
|
|
169
|
+
- `CircularProgress` — SVG ring with percentage label
|
|
170
|
+
- `Skeleton` — text, rect, circle variants
|
|
171
|
+
- `LoadingSpinner` — 4 sizes · 3 variants
|
|
97
172
|
- `EmptyState` — icon + title + description + action slot
|
|
98
|
-
- `StatusIndicator` —
|
|
99
|
-
- `Notification` — notification
|
|
173
|
+
- `StatusIndicator` — colored dot with pulse animation
|
|
174
|
+
- `Notification` — card-style notification with timestamp
|
|
100
175
|
|
|
101
176
|
**Overlay (10)**
|
|
102
|
-
- `Modal` —
|
|
103
|
-
- `Dialog` — full Radix Dialog
|
|
104
|
-
- `Drawer` —
|
|
105
|
-
- `Sheet` — Drawer alias
|
|
106
|
-
- `Popover` —
|
|
107
|
-
- `HoverCard` —
|
|
108
|
-
- `ContextMenu` — right-click menu
|
|
177
|
+
- `Modal` — centered dialog with close button
|
|
178
|
+
- `Dialog` — full Radix Dialog with all sub-primitives
|
|
179
|
+
- `Drawer` — side-sheet with 4 sides
|
|
180
|
+
- `Sheet` — lightweight Drawer alias
|
|
181
|
+
- `Popover` — Radix Popover
|
|
182
|
+
- `HoverCard` — hover-triggered card
|
|
183
|
+
- `ContextMenu` — right-click menu via Radix
|
|
109
184
|
- `CommandDialog` — ⌘K palette
|
|
110
|
-
- `Lightbox`
|
|
185
|
+
- `Lightbox` — full-screen image viewer with zoom
|
|
186
|
+
- `ImageViewer` — in-place image pan and zoom
|
|
111
187
|
|
|
112
188
|
**Media (5)**
|
|
113
|
-
- `Image` —
|
|
114
|
-
- `VideoPlayer` —
|
|
189
|
+
- `Image` — next/image wrapper with blur placeholder and fallback
|
|
190
|
+
- `VideoPlayer` — custom controls, poster, autoplay, loop, track support
|
|
115
191
|
- `AudioPlayer` — custom UI with seek bar, cover art
|
|
116
192
|
- `Carousel` — autoplay, dots, arrows, loop, slidesPerView
|
|
117
193
|
- `Gallery` — responsive image grid with click handler
|
|
@@ -137,70 +213,16 @@ plugin, and a complete CSS token system with light + dark mode.
|
|
|
137
213
|
- `useToast` — programmatic toast notifications
|
|
138
214
|
|
|
139
215
|
#### Infrastructure
|
|
140
|
-
- Tailwind CSS plugin + preset (`
|
|
216
|
+
- Tailwind CSS plugin + preset (`veloriaPlugin`, `veloriaPreset`)
|
|
141
217
|
- Full CSS design token system — light and dark themes
|
|
142
|
-
- `
|
|
218
|
+
- `VeloriaProvider` for Next.js App Router
|
|
143
219
|
- TypeScript strict throughout — full named type exports
|
|
144
220
|
- Tree-shakeable ESM + CJS dual build via tsup
|
|
145
221
|
- Turbo monorepo setup
|
|
146
222
|
|
|
147
223
|
#### veloria-ui CLI
|
|
148
|
-
- `init` — project setup wizard (detects Next.js, writes
|
|
224
|
+
- `init` — project setup wizard (detects Next.js, writes veloria.config.json)
|
|
149
225
|
- `add` — copies components + installs npm deps, resolves Veloria UI peer deps
|
|
150
|
-
- `list` — browse all
|
|
226
|
+
- `list` — browse all components filtered by category
|
|
151
227
|
- `diff` — compare local copy to latest (registry fetch, coming soon)
|
|
152
|
-
- Auto-detects npm / pnpm / yarn / bun
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## [0.1.1] — 2026-03-13 (UPDATED)
|
|
159
|
-
|
|
160
|
-
### Build fixes
|
|
161
|
-
|
|
162
|
-
- Fixed `tailwindcss/plugin` resolve error — marked as external in tsup, switched to `require()` at runtime
|
|
163
|
-
- Fixed `"types"` export condition ordering in `package.json` — `types` now comes before `import`/`require`
|
|
164
|
-
- Fixed `use-toast.ts` renamed to `use-toast.tsx` — file contained JSX but had `.ts` extension
|
|
165
|
-
- Fixed `TS2320` / `TS2322` conflicts across all component interfaces — `HTMLAttributes` built-in props (`color`, `size`, `title`, `prefix`, `onChange`, `onDrop`, `onDragOver`) now properly `Omit`-ed before extending
|
|
166
|
-
- Renamed package from `veloria-ui-kit` to `veloria-ui`
|
|
167
|
-
- CLI `--version` flag now reads dynamically from `package.json` instead of being hardcoded
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## [0.1.2] — 2026-03-15 (UPDATED)
|
|
172
|
-
|
|
173
|
-
### New Components (20)
|
|
174
|
-
|
|
175
|
-
**Advanced Forms**
|
|
176
|
-
- `PhoneInput` — international phone number with country dial-code selector
|
|
177
|
-
- `TagInput` — type and press Enter to add inline tags, supports max, duplicates control
|
|
178
|
-
- `CurrencyInput` — formatted number input with locale-aware currency symbol
|
|
179
|
-
- `RatingInput` — star rating picker with hover state, clear button, and read-only mode
|
|
180
|
-
|
|
181
|
-
**Data Display**
|
|
182
|
-
- `StatsCard` — metric card with icon, trend indicator, and loading skeleton
|
|
183
|
-
- `TreeView` — nested expandable tree with keyboard navigation and multi-depth support
|
|
184
|
-
- `JsonViewer` — collapsible syntax-highlighted JSON tree with configurable max depth
|
|
185
|
-
- `Heatmap` — GitHub-style activity grid with value intensity scale
|
|
186
|
-
- `KanbanBoard` — drag-and-drop column board with card tagging and assignee slot
|
|
187
|
-
|
|
188
|
-
**Feedback and Overlay**
|
|
189
|
-
- `BannerAlert` — full-width top-of-page announcement strip with 4 variants
|
|
190
|
-
- `ConfirmDialog` — opinionated confirmation modal with async confirm support and danger variant
|
|
191
|
-
- `FloatingActionButton` — FAB with expandable speed-dial actions and 3 position presets
|
|
192
|
-
- `RichTooltip` — tooltip with title, description, and action slot
|
|
193
|
-
- `Tour` — multi-step onboarding overlay with dot progress indicator
|
|
194
|
-
|
|
195
|
-
**Utility**
|
|
196
|
-
- `InfiniteScroll` — IntersectionObserver-based load-more trigger with loader slot
|
|
197
|
-
- `VirtualList` — windowed list renderer for large datasets with configurable overscan
|
|
198
|
-
|
|
199
|
-
### New Hooks (6)
|
|
200
|
-
|
|
201
|
-
- `useForm` — form state and validation with touched tracking, no extra dependencies
|
|
202
|
-
- `usePagination` — pagination logic decoupled from UI, with from/to helpers
|
|
203
|
-
- `useIntersection` — IntersectionObserver wrapper with optional `once` mode
|
|
204
|
-
- `useWindowSize` — reactive window width and height, SSR-safe
|
|
205
|
-
- `useStep` — multi-step wizard state with `isFirst`, `isLast`, and progress percentage
|
|
206
|
-
- `useCountdown` — countdown timer with `start`, `pause`, and `reset` controls
|
|
228
|
+
- Auto-detects npm / pnpm / yarn / bun
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
### **Build anything. Ship faster.**
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Production-ready React components — accessible, composable, dark-mode ready.
|
|
14
14
|
Works with Tailwind CSS and Next.js out of the box.
|
|
15
15
|
|
|
16
16
|
[](https://www.npmjs.com/package/veloria-ui)
|
|
@@ -18,7 +18,7 @@ Works with Tailwind CSS and Next.js out of the box.
|
|
|
18
18
|
[](https://www.typescriptlang.org)
|
|
19
19
|
[](https://github.com/JohnDev19/Veloria-UI)
|
|
20
20
|
|
|
21
|
-
**[Docs](https://veloria
|
|
21
|
+
**[Docs](https://ui-veloria.vercel.app/)** · **[Components](https://ui-veloria.vercel.app/components)** · **[Issues](https://github.com/JohnDev19/Veloria-UI/issues)** · **[Changelog](CHANGELOG.md)**
|
|
22
22
|
|
|
23
23
|
</div>
|
|
24
24
|
|
|
@@ -47,12 +47,12 @@ import "veloria-ui/styles";
|
|
|
47
47
|
|
|
48
48
|
```ts
|
|
49
49
|
// tailwind.config.ts
|
|
50
|
-
import {
|
|
50
|
+
import { veloriaPlugin } from "veloria-ui/tailwind";
|
|
51
51
|
|
|
52
52
|
export default {
|
|
53
53
|
darkMode: ["class"],
|
|
54
54
|
content: ["./app/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}"],
|
|
55
|
-
plugins: [
|
|
55
|
+
plugins: [veloriaPlugin],
|
|
56
56
|
};
|
|
57
57
|
```
|
|
58
58
|
|
|
@@ -60,13 +60,13 @@ export default {
|
|
|
60
60
|
|
|
61
61
|
```tsx
|
|
62
62
|
// app/layout.tsx
|
|
63
|
-
import {
|
|
63
|
+
import { VeloriaProvider } from "veloria-ui/provider";
|
|
64
64
|
|
|
65
65
|
export default function RootLayout({ children }) {
|
|
66
66
|
return (
|
|
67
67
|
<html lang="en">
|
|
68
68
|
<body>
|
|
69
|
-
<
|
|
69
|
+
<VeloriaProvider>{children}</VeloriaProvider>
|
|
70
70
|
</body>
|
|
71
71
|
</html>
|
|
72
72
|
);
|
|
@@ -98,14 +98,14 @@ export default function Page() {
|
|
|
98
98
|
veloria-ui ships with a CLI that copies components straight into your project — shadcn-style. You own the code.
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
# Set up veloria-ui in your project (writes
|
|
101
|
+
# Set up veloria-ui in your project (writes veloria.config.json)
|
|
102
102
|
npx veloria-ui init
|
|
103
103
|
|
|
104
104
|
# Add components
|
|
105
105
|
npx veloria-ui add button
|
|
106
106
|
npx veloria-ui add card modal drawer toast
|
|
107
107
|
|
|
108
|
-
# Browse all
|
|
108
|
+
# Browse all components
|
|
109
109
|
npx veloria-ui list
|
|
110
110
|
npx veloria-ui list --category forms
|
|
111
111
|
|
|
@@ -117,7 +117,7 @@ After running `add`, a file like `components/ui/button/index.tsx` appears in you
|
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
120
|
-
## Components
|
|
120
|
+
## Components
|
|
121
121
|
|
|
122
122
|
### Basic (10)
|
|
123
123
|
`Button` `IconButton` `Link` `Badge` `Avatar` `AvatarGroup` `Divider` `Tag` `Chip` `Tooltip`
|
|
@@ -221,13 +221,13 @@ veloria-ui/
|
|
|
221
221
|
│ │ ├── overlay/ Modal, Drawer, CommandDialog, Lightbox…
|
|
222
222
|
│ │ ├── media/ VideoPlayer, AudioPlayer, Carousel, Gallery…
|
|
223
223
|
│ │ └── utility/ ThemeSwitcher, CopyButton, ResizablePanel…
|
|
224
|
-
│ ├── hooks/
|
|
225
|
-
│ ├── styles/
|
|
224
|
+
│ ├── hooks/ utility hooks
|
|
225
|
+
│ ├── styles/ veloria.css — full design token system
|
|
226
226
|
│ ├── types/ shared TypeScript types
|
|
227
227
|
│ ├── utils/ cn() and helpers
|
|
228
228
|
│ ├── cli/ veloria-ui CLI (add, init, list, diff)
|
|
229
|
-
│ ├── provider.tsx
|
|
230
|
-
│ └── tailwind.ts
|
|
229
|
+
│ ├── provider.tsx VeloriaProvider for Next.js
|
|
230
|
+
│ └── tailwind.ts veloriaPlugin + veloriaPreset
|
|
231
231
|
├── package.json
|
|
232
232
|
├── tsup.config.ts
|
|
233
233
|
└── tsconfig.json
|
package/dist/cli/index.js
CHANGED
|
@@ -32,15 +32,14 @@ var require_package = __commonJS({
|
|
|
32
32
|
"package.json"(exports2, module2) {
|
|
33
33
|
module2.exports = {
|
|
34
34
|
name: "veloria-ui",
|
|
35
|
-
version: "0.1.
|
|
35
|
+
version: "0.1.3",
|
|
36
36
|
private: false,
|
|
37
|
-
description: "Veloria UI \u2014 Build anything. Ship faster.
|
|
37
|
+
description: "Veloria UI \u2014 Build anything. Ship faster. Accessible, composable React components with Tailwind CSS and dark mode.",
|
|
38
38
|
keywords: [
|
|
39
39
|
"react",
|
|
40
40
|
"ui",
|
|
41
41
|
"components",
|
|
42
42
|
"veloria-ui",
|
|
43
|
-
"veloria-ui",
|
|
44
43
|
"design-system",
|
|
45
44
|
"accessible",
|
|
46
45
|
"aria",
|
|
@@ -52,7 +51,7 @@ var require_package = __commonJS({
|
|
|
52
51
|
"radix-ui",
|
|
53
52
|
"component-library"
|
|
54
53
|
],
|
|
55
|
-
homepage: "https://veloria
|
|
54
|
+
homepage: "https://ui-veloria.vercel.app/",
|
|
56
55
|
repository: {
|
|
57
56
|
type: "git",
|
|
58
57
|
url: "https://github.com/JohnDev19/Veloria-UI.git"
|
|
@@ -74,7 +73,7 @@ var require_package = __commonJS({
|
|
|
74
73
|
import: "./dist/index.mjs",
|
|
75
74
|
require: "./dist/index.js"
|
|
76
75
|
},
|
|
77
|
-
"./styles": "./dist/styles/
|
|
76
|
+
"./styles": "./dist/styles/veloria.css",
|
|
78
77
|
"./tailwind": "./dist/tailwind.js",
|
|
79
78
|
"./provider": {
|
|
80
79
|
types: "./dist/provider.d.ts",
|
|
@@ -87,8 +86,7 @@ var require_package = __commonJS({
|
|
|
87
86
|
module: "./dist/index.mjs",
|
|
88
87
|
types: "./dist/index.d.ts",
|
|
89
88
|
bin: {
|
|
90
|
-
"veloria-ui": "./dist/cli/index.js"
|
|
91
|
-
atlas: "./dist/cli/index.js"
|
|
89
|
+
"veloria-ui": "./dist/cli/index.js"
|
|
92
90
|
},
|
|
93
91
|
files: [
|
|
94
92
|
"dist",
|
|
@@ -333,14 +331,14 @@ program.command("init").description("Set up veloria-ui in your project").option(
|
|
|
333
331
|
}
|
|
334
332
|
]);
|
|
335
333
|
if (!answers.componentsDir) return;
|
|
336
|
-
import_fs_extra.default.writeJsonSync(import_path.default.join(cwd, "
|
|
337
|
-
$schema: "https://veloria
|
|
334
|
+
import_fs_extra.default.writeJsonSync(import_path.default.join(cwd, "veloria.config.json"), {
|
|
335
|
+
$schema: "https://ui-veloria.vercel.app/schema.json",
|
|
338
336
|
style: "default",
|
|
339
337
|
typescript: opts.typescript ?? true,
|
|
340
338
|
tailwind: { config: "tailwind.config.ts", css: answers.cssPath, baseColor: "slate", cssVariables: true },
|
|
341
339
|
aliases: { components: `@/${answers.componentsDir}`, utils: "@/lib/utils" }
|
|
342
340
|
}, { spaces: 2 });
|
|
343
|
-
console.log(import_chalk.default.green(" \u2713 Created
|
|
341
|
+
console.log(import_chalk.default.green(" \u2713 Created veloria.config.json"));
|
|
344
342
|
const utilsPath = import_path.default.join(cwd, "lib", "utils.ts");
|
|
345
343
|
if (!import_fs_extra.default.existsSync(utilsPath)) {
|
|
346
344
|
await import_fs_extra.default.ensureDir(import_path.default.dirname(utilsPath));
|
|
@@ -375,7 +373,7 @@ ${import_chalk.default.bold.green(" Veloria UI is ready!")}
|
|
|
375
373
|
${import_chalk.default.dim("Next steps:")}
|
|
376
374
|
${import_chalk.default.cyan("1.")} Add components: ${import_chalk.default.bold("npx veloria-ui add button card modal")}
|
|
377
375
|
${import_chalk.default.cyan("2.")} Browse all: ${import_chalk.default.bold("npx veloria-ui list")}
|
|
378
|
-
${import_chalk.default.cyan("3.")} Docs: ${import_chalk.default.bold("https://veloria
|
|
376
|
+
${import_chalk.default.cyan("3.")} Docs: ${import_chalk.default.bold("https://ui-veloria.vercel.app/")}
|
|
379
377
|
${import_chalk.default.cyan("4.")} Issues: ${import_chalk.default.bold("https://github.com/JohnDev19/Veloria-UI/issues")}
|
|
380
378
|
`);
|
|
381
379
|
});
|
|
@@ -403,7 +401,7 @@ program.command("add [components...]").alias("a").description("Copy one or more
|
|
|
403
401
|
}
|
|
404
402
|
components.forEach(resolve);
|
|
405
403
|
if (!toAdd.size) return;
|
|
406
|
-
const configPath = import_path.default.join(cwd, "
|
|
404
|
+
const configPath = import_path.default.join(cwd, "veloria.config.json");
|
|
407
405
|
const config = import_fs_extra.default.existsSync(configPath) ? import_fs_extra.default.readJsonSync(configPath) : null;
|
|
408
406
|
const aliasDir = config?.aliases?.components?.replace(/^@\//, "");
|
|
409
407
|
const targetDir = import_path.default.join(cwd, opts.dir ?? aliasDir ?? "components/ui");
|
|
@@ -430,7 +428,7 @@ program.command("add [components...]").alias("a").description("Copy one or more
|
|
|
430
428
|
* Re-export from veloria-ui to stay in sync, or paste the full source here
|
|
431
429
|
* to customise the internals.
|
|
432
430
|
*
|
|
433
|
-
* Docs: https://veloria
|
|
431
|
+
* Docs: https://ui-veloria.vercel.app/components/${name}
|
|
434
432
|
* Source: https://github.com/JohnDev19/Veloria-UI
|
|
435
433
|
*/
|
|
436
434
|
|
|
@@ -476,7 +474,7 @@ program.command("list").alias("ls").description("List all available components")
|
|
|
476
474
|
console.log();
|
|
477
475
|
}
|
|
478
476
|
console.log(import_chalk.default.dim(` ${REGISTRY.length} components total
|
|
479
|
-
`) + import_chalk.default.dim(" Add one: ") + import_chalk.default.cyan("npx veloria-ui add <
|
|
477
|
+
`) + import_chalk.default.dim(" Add one: ") + import_chalk.default.cyan("npx veloria-ui add <n>\n"));
|
|
480
478
|
});
|
|
481
479
|
program.command("diff [component]").description("Compare your local copy to the latest version").action((component) => {
|
|
482
480
|
if (!component) {
|
package/dist/index.d.mts
CHANGED
|
@@ -1086,10 +1086,10 @@ declare function useClipboard(options?: UseClipboardOptions): {
|
|
|
1086
1086
|
* Safe to use with SSR — reads from storage only inside useEffect timing.
|
|
1087
1087
|
*/
|
|
1088
1088
|
declare function useLocalStorage<T>(key: string, defaultValue: T): [T, (value: T | ((prev: T) => T)) => void];
|
|
1089
|
-
type
|
|
1089
|
+
type VeloriaTheme = "light" | "dark" | "system";
|
|
1090
1090
|
/**
|
|
1091
1091
|
* Read and set the current Veloria UI theme.
|
|
1092
|
-
* Persists the selection to localStorage under "
|
|
1092
|
+
* Persists the selection to localStorage under "veloria-theme".
|
|
1093
1093
|
* Applies the "dark" class to <html> so Tailwind's dark: utilities kick in.
|
|
1094
1094
|
*
|
|
1095
1095
|
* @example
|
|
@@ -1097,9 +1097,9 @@ type AtlasTheme = "light" | "dark" | "system";
|
|
|
1097
1097
|
* <button onClick={() => setTheme("dark")}>Go dark</button>
|
|
1098
1098
|
*/
|
|
1099
1099
|
declare function useTheme(): {
|
|
1100
|
-
theme:
|
|
1100
|
+
theme: VeloriaTheme;
|
|
1101
1101
|
resolvedTheme: "dark" | "light";
|
|
1102
|
-
setTheme: (t:
|
|
1102
|
+
setTheme: (t: VeloriaTheme) => void;
|
|
1103
1103
|
};
|
|
1104
1104
|
/**
|
|
1105
1105
|
* Delays updating the returned value until `delay` ms have passed
|
|
@@ -1246,7 +1246,7 @@ type ColorScheme = "primary" | "secondary" | "success" | "warning" | "danger" |
|
|
|
1246
1246
|
type Variant = "solid" | "outline" | "ghost" | "soft" | "link";
|
|
1247
1247
|
type Placement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
|
|
1248
1248
|
type Side = "top" | "right" | "bottom" | "left";
|
|
1249
|
-
interface
|
|
1249
|
+
interface VeloriaBaseProps {
|
|
1250
1250
|
/** Additional CSS class names */
|
|
1251
1251
|
className?: string;
|
|
1252
1252
|
/** Inline style overrides */
|
|
@@ -1254,7 +1254,7 @@ interface AtlasBaseProps {
|
|
|
1254
1254
|
/** Data attributes passthrough */
|
|
1255
1255
|
[key: `data-${string}`]: unknown;
|
|
1256
1256
|
}
|
|
1257
|
-
interface
|
|
1257
|
+
interface VeloriaAriaProps {
|
|
1258
1258
|
"aria-label"?: string;
|
|
1259
1259
|
"aria-labelledby"?: string;
|
|
1260
1260
|
"aria-describedby"?: string;
|
|
@@ -1296,22 +1296,22 @@ declare function isDefined<T>(value: T | undefined | null): value is T;
|
|
|
1296
1296
|
/**
|
|
1297
1297
|
* Veloria UI Tailwind plugin.
|
|
1298
1298
|
*
|
|
1299
|
-
* Maps the CSS custom properties in
|
|
1299
|
+
* Maps the CSS custom properties in veloria.css to Tailwind utilities.
|
|
1300
1300
|
* Add to your tailwind.config.ts:
|
|
1301
1301
|
*
|
|
1302
|
-
* import {
|
|
1303
|
-
* plugins: [
|
|
1302
|
+
* import { veloriaPlugin } from "veloria-ui/tailwind";
|
|
1303
|
+
* plugins: [veloriaPlugin],
|
|
1304
1304
|
*
|
|
1305
|
-
* Or use
|
|
1305
|
+
* Or use veloriaPreset which also sets darkMode: ["class"]:
|
|
1306
1306
|
*
|
|
1307
|
-
* import {
|
|
1308
|
-
* presets: [
|
|
1307
|
+
* import { veloriaPreset } from "veloria-ui/tailwind";
|
|
1308
|
+
* presets: [veloriaPreset],
|
|
1309
1309
|
*/
|
|
1310
|
-
declare const
|
|
1310
|
+
declare const veloriaPlugin: {
|
|
1311
1311
|
handler: tailwindcss_types_config.PluginCreator;
|
|
1312
1312
|
config?: Partial<tailwindcss_types_config.Config>;
|
|
1313
1313
|
};
|
|
1314
1314
|
/** Full preset — includes the plugin + darkMode: ["class"]. Recommended for new projects. */
|
|
1315
|
-
declare const
|
|
1315
|
+
declare const veloriaPreset: Partial<Config>;
|
|
1316
1316
|
|
|
1317
|
-
export { Alert, AlertDescription, type AlertProps, AlertTitle, type AsChildProps, AspectRatio,
|
|
1317
|
+
export { Alert, AlertDescription, type AlertProps, AlertTitle, type AsChildProps, AspectRatio, AudioPlayer, type AudioPlayerProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, BannerAlert, type BannerAlertProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, Button, type ButtonProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Carousel, type CarouselProps, Center, type CenterProps, Chart, type ChartProps, Checkbox, type CheckboxProps, Chip, type ChipProps, CircularProgress, type CircularProgressProps, CodeBlock, type CodeBlockProps, ColorPicker, type ColorPickerProps, type ColorScheme, Combobox, type ComboboxOption, type ComboboxProps, CommandDialog, type CommandDialogProps, CommandGroup, CommandItem, CommandSeparator, ConfirmDialog, type ConfirmDialogProps, Container, type ContainerProps, ContextMenu, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuSeparator, ContextMenuSub, ContextMenuTrigger, CopyButton, type CopyButtonProps, CurrencyInput, type CurrencyInputProps, DataTable, type DataTableColumn, type DataTableProps, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, type DividerProps, DragDropArea, type DragDropAreaProps, Drawer, type DrawerProps, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuTrigger, EmptyState, type EmptyStateProps, type FABAction, FileUpload, type FileUploadProps, Flex, type FlexProps, FloatingActionButton, type FloatingActionButtonProps, FormError, type FormErrorProps, FormField, type FormFieldProps, FormLabel, type FormLabelProps, Gallery, type GalleryImage, type GalleryProps, Grid, type GridProps, Heatmap, type HeatmapCell, type HeatmapProps, HoverCard, HoverCardContent, HoverCardTrigger, IconButton, type IconButtonProps, Image, type ImageProps, ImageViewer, InfiniteScroll, type InfiniteScrollProps, Input, type InputProps, type JsonValue, JsonViewer, type JsonViewerProps, KanbanBoard, type KanbanBoardProps, type KanbanCard, type KanbanColumn, KeyboardShortcut, type KeyboardShortcutProps, Lightbox, type LightboxProps, Link, type LinkProps, List, ListItem, type ListItemProps, type ListProps, LoadingSpinner, type LoadingSpinnerProps, Masonry, type MasonryProps, Menu, MenuItem, type MenuItemProps, Modal, type ModalProps, MultiSelect, type MultiSelectProps, Navbar, type NavbarProps, Notification, type NotificationProps, OTPInput, type OTPInputProps, type Orientation, Pagination, type PaginationProps, PasswordInput, type PasswordInputProps, PhoneInput, type PhoneInputProps, type Placement, Popover, PopoverContent, PopoverTrigger, Progress, type ProgressProps, RadioGroup, type RadioGroupProps, type RadioOption, RangeSlider, RatingInput, type RatingInputProps, ResizablePanel, type ResizablePanelProps, type ResponsiveSize, RichTooltip, type RichTooltipProps, ScrollArea, SearchInput, type SearchInputProps, Section, type SectionProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Sheet, type Side, Sidebar, type SidebarProps, type Size, Skeleton, type SkeletonProps, Slider, Snackbar, type SnackbarProps, Spacer, type SpacerProps, Stack, type StackProps, Statistic, type StatisticProps, StatsCard, type StatsCardProps, type Status, StatusIndicator, type StatusIndicatorProps, Stepper, type StepperProps, type StepperStep, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TagInput, type TagInputProps, type TagProps, TextArea, type TextAreaProps, type Theme, ThemeSwitcher, type ThemeSwitcherProps, TimePicker, type TimePickerProps, Timeline, type TimelineEvent, type TimelineProps, Toast, ToastAction, ToastClose, ToastContextProvider, type ToastData, ToastDescription, type ToastInput, ToastProvider, ToastTitle, type ToastVariant, ToastViewport, Tooltip, TooltipContent, type TooltipProps, TooltipProvider, TooltipRoot, TooltipTrigger, Tour, type TourProps, type TourStep, type TreeNode, TreeView, type TreeViewProps, type UseClipboardOptions, type UseCountdownOptions, type UseCountdownReturn, type UseDisclosureOptions, type UseFormOptions, type UseFormReturn, type UseIntersectionOptions, type UsePaginationOptions, type UsePaginationReturn, type UseStepOptions, type UseStepReturn, type Variant, type VeloriaAriaProps, type VeloriaBaseProps, type VeloriaTheme, VideoPlayer, type VideoPlayerProps, VirtualList, type VirtualListProps, type WindowSize, badgeVariants, buttonVariants, cn, composeEventHandlers, generateId, iconButtonVariants, inputVariants, isBrowser, isDefined, noop, useBreakpoint, useClipboard, useCountdown, useDebounce, useDisclosure, useForm, useIntersection, useKeydown, useLocalStorage, useMediaQuery, useMounted, useOnClickOutside, usePagination, useStep, useTheme, useToast, useWindowSize, veloriaPlugin, veloriaPreset };
|