pelatform-ui 1.2.8 → 1.3.0

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 CHANGED
@@ -3,12 +3,18 @@
3
3
  [![Version](https://img.shields.io/npm/v/pelatform-ui.svg)](https://www.npmjs.com/package/pelatform-ui)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
5
 
6
- A Modern and Minimal React UI Library built with TailwindCSS. The main package that provides access to all Pelatform UI components, hooks, and utilities through a unified interface.
6
+ **A Modern and Minimal React UI Library built with TailwindCSS.**
7
+
8
+ The main package that provides all Pelatform UI components, hooks, utilities, and styles.
7
9
 
8
10
  ## Installation
9
11
 
10
12
  ```bash
13
+ # Install the main package directly
11
14
  bun add pelatform-ui
15
+
16
+ # Or install the scoped package (recommended)
17
+ bun add @pelatform/ui
12
18
  ```
13
19
 
14
20
  ### Peer Dependencies
@@ -16,32 +22,16 @@ bun add pelatform-ui
16
22
  Make sure you have these installed:
17
23
 
18
24
  ```bash
19
- bun add react react-dom @tanstack/react-query lucide-react motion next-themes sonner
20
- ```
21
-
22
- ### Import Styles
23
-
24
- ```typescript
25
- import "pelatform-ui/css";
25
+ bun add react react-dom
26
26
  ```
27
27
 
28
- ## Package Structure
28
+ ## Package Overview
29
29
 
30
- pelatform-ui is the main entry point that consolidates all Pelatform UI packages:
31
-
32
- - **@pelatform/ui.components** - All UI components (172 components)
33
- - Animation (18 components)
34
- - Base (77 headless components)
35
- - Radix (77 styled components)
36
- - **@pelatform/ui.hook** - React hooks (18 hooks)
37
- - **Custom components** - Ready-to-use layouts, navigation, providers, and utilities
30
+ `pelatform-ui` is the main package containing all UI components, hooks, and styles for the Pelatform UI library.
38
31
 
39
32
  ## Import Paths
40
33
 
41
34
  ```typescript
42
- // Main exports (utilities, types, icons)
43
- import { cn, cva } from "pelatform-ui";
44
-
45
35
  // React hooks
46
36
  import { useHydrated, useMobile, useMediaQuery } from "pelatform-ui/hooks";
47
37
 
@@ -59,10 +49,174 @@ import { Button, Input, Select } from "pelatform-ui/base";
59
49
  import { Card, DataGrid, Calendar } from "pelatform-ui/radix";
60
50
 
61
51
  // Custom Pelatform components
62
- import { SiteHeader, SiteFooter, CommandMenu } from "pelatform-ui/components";
52
+ import { Icons, Logo } from "pelatform-ui/components";
63
53
 
64
54
  // Styles
65
- import "pelatform-ui/css";
55
+ import "@pelatform/ui/css";
56
+ ```
57
+
58
+ ## Entry Points
59
+
60
+ This package provides 6 organized entry points:
61
+
62
+ ### Animation (`./animation`)
63
+
64
+ 14 animation components for text effects, number animations, layout effects, and backgrounds:
65
+
66
+ ```typescript
67
+ import {
68
+ ShimmeringText,
69
+ TextReveal,
70
+ TypingText,
71
+ VideoText,
72
+ WordRotate,
73
+ SvgText,
74
+ CountingNumber,
75
+ SlidingNumber,
76
+ Marquee,
77
+ GitHubButton,
78
+ AvatarGroup,
79
+ GradientBackground,
80
+ GridBackground,
81
+ HoverBackground,
82
+ } from "pelatform-ui/animation";
83
+ ```
84
+
85
+ ### Base (`./base`)
86
+
87
+ 77 headless components built on Base UI for complete styling control:
88
+
89
+ ```typescript
90
+ import {
91
+ // Forms
92
+ Button,
93
+ Input,
94
+ Textarea,
95
+ Select,
96
+ Checkbox,
97
+ Radio,
98
+ Switch,
99
+ Slider,
100
+
101
+ // Selection
102
+ Combobox,
103
+ Listbox,
104
+ Autocomplete,
105
+
106
+ // Layout
107
+ Accordion,
108
+ Tabs,
109
+ Dialog,
110
+ Popover,
111
+ Tooltip,
112
+
113
+ // Data
114
+ Table,
115
+ Pagination,
116
+ Avatar,
117
+ Badge,
118
+ } from "pelatform-ui/base";
119
+ ```
120
+
121
+ ### Components (`./components`)
122
+
123
+ Custom Pelatform components:
124
+
125
+ ```typescript
126
+ import { Icons, Logo } from "pelatform-ui/components";
127
+ ```
128
+
129
+ ### Hooks (`./hooks`)
130
+
131
+ 18 React hooks for common use cases:
132
+
133
+ ```typescript
134
+ import {
135
+ // Analytics
136
+ useAnalytics,
137
+
138
+ // DOM Interactions
139
+ useBodyClass,
140
+ useCopyToClipboard,
141
+ useFileUpload,
142
+ useScrollPosition,
143
+ useSliderInput,
144
+
145
+ // Detection
146
+ useHydrated,
147
+ useIntersectionObserver,
148
+ useIsMac,
149
+ useIsMobile,
150
+ useMediaQuery,
151
+ useMounted,
152
+ useMutationObserver,
153
+ useViewport,
154
+
155
+ // Features
156
+ useMenu,
157
+ useRecaptchaV2,
158
+ useRemoveGAParams,
159
+ } from "pelatform-ui/hooks";
160
+ ```
161
+
162
+ ### Radix (`./radix`)
163
+
164
+ 77 pre-styled Radix UI components:
165
+
166
+ ```typescript
167
+ import {
168
+ // Layout & Structure
169
+ Accordion,
170
+ Card,
171
+ Resizable,
172
+ Separator,
173
+
174
+ // Navigation
175
+ Breadcrumb,
176
+ Command,
177
+ ContextMenu,
178
+ DropdownMenu,
179
+ Menubar,
180
+ NavigationMenu,
181
+ Tabs,
182
+
183
+ // Forms
184
+ Checkbox,
185
+ Combobox,
186
+ Form,
187
+ Input,
188
+ Label,
189
+ RadioGroup,
190
+ Select,
191
+ Slider,
192
+ Switch,
193
+ Textarea,
194
+
195
+ // Overlays
196
+ AlertDialog,
197
+ Dialog,
198
+ Drawer,
199
+ HoverCard,
200
+ Popover,
201
+ Sheet,
202
+ Toast,
203
+
204
+ // Feedback
205
+ Alert,
206
+ Progress,
207
+ Skeleton,
208
+ Sonner,
209
+
210
+ // Data Display
211
+ Avatar,
212
+ Badge,
213
+ Calendar,
214
+ Carousel,
215
+ Chart,
216
+ DataGrid,
217
+ Table,
218
+ Tree,
219
+ } from "pelatform-ui/radix";
66
220
  ```
67
221
 
68
222
  ## Quick Start
@@ -70,7 +224,7 @@ import "pelatform-ui/css";
70
224
  ```typescript
71
225
  import { Card, Button, Input } from "pelatform-ui/radix";
72
226
  import { useHydrated } from "pelatform-ui/hooks";
73
- import "pelatform-ui/css";
227
+ import "@pelatform/ui/css";
74
228
 
75
229
  function App() {
76
230
  const hydrated = useHydrated();
@@ -86,86 +240,41 @@ function App() {
86
240
  }
87
241
  ```
88
242
 
89
- ## Custom Components
90
-
91
- ### Layout Components
92
-
93
- - **Auth** - Authentication page layout
94
- - **Blank** - Minimal blank layout
95
- - **Body** - Main content body
96
- - **ComingSoon** - Coming soon page
97
- - **Error** - Error page layout
98
- - **Grid** - Grid-based layout
99
- - **Section** - Content section
100
- - **SiteHeader** - Sticky header with blur
101
- - **SiteFooter** - Site footer
102
- - **Wrapper** - Container wrapper
103
-
104
- ### Navigation Components
105
-
106
- - **BackLink** - Back navigation link
107
- - **CommandMenu** - Command palette
108
- - **MainNav** - Main navigation menu
109
- - **MobileNav** - Mobile navigation
110
-
111
- ### Feedback Components
112
-
113
- - **Alert** - Alert notifications
114
- - **Dialog** - Modal dialog
115
- - **ScreenLoader** - Loading screen
116
-
117
- ### UI Components
118
-
119
- - **Announcement** - Announcement banner with tags
120
- - **BackgroundPaths** - Decorative backgrounds
121
- - **Book** - Book/document display
122
- - **DotsPattern** - Dot pattern background
123
- - **GridBackground** - Grid pattern background
124
- - **HexagonBadge** - Hexagon-shaped badge
125
- - **ImageInput** - Image upload input
126
- - **LanguageSwitcher** - Language selector
127
- - **Logo** - Brand logo
128
- - **ModeSwitcher** - Theme mode toggle
129
- - **MovingBorder** - Animated border effect
130
- - **Toolbar** - Toolbar component
131
- - **UserAvatar** - User avatar display
132
-
133
- ### Provider Components
134
-
135
- - **QueryProvider** - TanStack Query provider
136
- - **ThemeProvider** - Theme management (next-themes)
243
+ ## Styling
137
244
 
138
- ### MDX Components
245
+ Import the CSS in your app:
139
246
 
140
- - **CodeDisplay** - Code snippet display
141
- - **Download** - Download link
142
- - **Link** - Custom link
143
- - **Video** - Video embed
144
- - **Wrapper** - MDX content wrapper
145
- - **YouTube** - YouTube embed
247
+ ```typescript
248
+ import "@pelatform/ui/css";
249
+ ```
146
250
 
147
- ### Utility Components
251
+ CSS includes:
148
252
 
149
- - **Fonts** - Font configuration
150
- - **Shared** - Shared utilities
253
+ - Theme variables
254
+ - Component styles
255
+ - Animation utilities
256
+ - Pattern backgrounds
257
+ - Custom transitions
151
258
 
152
- ## Theme Management
259
+ You can also import individual CSS files:
153
260
 
154
261
  ```typescript
155
- import { ThemeProvider } from "pelatform-ui/components";
156
-
157
- function App({ children }) {
158
- return (
159
- <ThemeProvider
160
- attribute="class"
161
- defaultTheme="system"
162
- enableSystem
163
- disableTransitionOnChange
164
- >
165
- {children}
166
- </ThemeProvider>
167
- );
168
- }
262
+ // Main theme (includes animations)
263
+ import "@pelatform/ui/css";
264
+
265
+ // Color variants
266
+ import "@pelatform/ui/color/slate";
267
+ import "@pelatform/ui/color/gray";
268
+ import "@pelatform/ui/color/neutral";
269
+ import "@pelatform/ui/color/stone";
270
+ import "@pelatform/ui/color/zinc";
271
+
272
+ // Theme styles
273
+ import "@pelatform/ui/styles/style-vega";
274
+ import "@pelatform/ui/styles/style-nova";
275
+ import "@pelatform/ui/styles/style-mira";
276
+ import "@pelatform/ui/styles/style-maia";
277
+ import "@pelatform/ui/styles/style-lyra";
169
278
  ```
170
279
 
171
280
  ## Hooks
@@ -213,36 +322,24 @@ function App({ children }) {
213
322
  - **useHydrated** - SSR-safe hydration detection
214
323
  - **useRemoveGAParams** - GA parameter cleanup
215
324
 
216
- ## Styling
325
+ ## TypeScript Support
217
326
 
218
- The package uses Tailwind CSS with custom theme configuration. Import the CSS in your app:
327
+ Full TypeScript support with comprehensive type definitions for all components and hooks:
219
328
 
220
329
  ```typescript
221
- import "pelatform-ui/css";
330
+ import type { ButtonProps } from "pelatform-ui/base";
331
+ import type { DataGridProps } from "pelatform-ui/radix";
222
332
  ```
223
333
 
224
- CSS includes:
225
-
226
- - Theme variables
227
- - Component styles
228
- - Animation utilities
229
- - Pattern backgrounds
230
- - Custom transitions
231
-
232
- ## TypeScript Support
233
-
234
- Full TypeScript support with comprehensive type definitions for all components and hooks.
235
-
236
334
  ## Features
237
335
 
238
- - 172+ total components across all packages
336
+ - 170+ production-ready components
239
337
  - 18 React hooks for common use cases
240
338
  - Full dark mode support
241
339
  - Responsive design
242
340
  - Accessibility (WCAG 2.1)
243
341
  - SSR-safe implementations
244
342
  - Tree-shakeable exports
245
- - TanStack Query integration
246
343
  - Next.js optimized
247
344
  - Tailwind CSS styling
248
345
 
@@ -251,27 +348,64 @@ Full TypeScript support with comprehensive type definitions for all components a
251
348
  ### Production Dependencies
252
349
 
253
350
  - `class-variance-authority` - Component variants
254
- - `clsx` - Conditional className
255
- - `tailwind-merge` - Tailwind class merging
351
+ - `recharts` - Chart components
256
352
  - `tw-animate-css` - Animation utilities
257
353
 
258
354
  ### Peer Dependencies
259
355
 
260
356
  - `react`
261
357
  - `react-dom`
262
- - `@tanstack/react-query`
358
+ - `@base-ui/react`
359
+ - `@dnd-kit/core`
360
+ - `@dnd-kit/modifiers`
361
+ - `@dnd-kit/sortable`
362
+ - `@dnd-kit/utilities`
363
+ - `@headless-tree/core`
364
+ - `@pelatform/utils`
365
+ - `@tanstack/react-table`
366
+ - `cmdk`
367
+ - `date-fns`
368
+ - `embla-carousel-react`
369
+ - `input-otp`
263
370
  - `lucide-react`
264
371
  - `motion`
265
372
  - `next-themes`
373
+ - `radix-ui`
374
+ - `react-day-picker`
375
+ - `react-phone-number-input`
376
+ - `react-resizable-panels`
266
377
  - `sonner`
378
+ - `vaul`
379
+
380
+ ## Related Packages
381
+
382
+ - **[@pelatform/ui](https://www.npmjs.com/package/@pelatform/ui)** - Scope package with organized imports
383
+ - **[@pelatform/mcp.ui](https://github.com/pelatformlabs/ui/tree/main/packages/mcp)** - MCP server for documentation
384
+
385
+ ## Choosing Between Base and Radix
386
+
387
+ - **Use Base components** when:
388
+ - Building a custom design system
389
+ - Need complete styling control
390
+ - Want minimal bundle size
391
+ - Creating brand-specific components
392
+
393
+ - **Use Radix components** when:
394
+ - Need pre-styled components
395
+ - Building prototypes quickly
396
+ - Want consistent styling
397
+ - Don't have strict design requirements
398
+
399
+ - **Use both** - Import from both categories in the same application
267
400
 
268
401
  ## Links
269
402
 
270
403
  - [npm Package](https://www.npmjs.com/package/pelatform-ui)
271
- - [Contributing Guide](../../../CONTRIBUTING.md)
272
- - [Code of Conduct](../../../CODE_OF_CONDUCT.md)
273
- - [License](../../../LICENSE)
404
+ - [GitHub Repository](https://github.com/pelatformlabs/ui)
405
+ - [Contributing Guide](../../CONTRIBUTING.md)
406
+ - [Code of Conduct](../../CODE_OF_CONDUCT.md)
407
+ - [License](../../LICENSE)
274
408
 
275
409
  ## License
276
410
 
277
- MIT © [Pelatform Inc.](../../../LICENSE)
411
+ MIT © [Pelatform Inc.](../../LICENSE)
package/css/theme.css CHANGED
@@ -1,8 +1,6 @@
1
1
  @import "tw-animate-css";
2
2
 
3
- @import "@pelatform/ui.components/css";
4
-
5
- @import "./shadcn/neutral.css";
3
+ @import "./color/neutral.css";
6
4
  @import "./animations.css";
7
5
 
8
6
  /* start: shadcn/create styles */
@@ -26,10 +24,6 @@
26
24
  @custom-variant fixed (&:is(.layout-fixed *));
27
25
 
28
26
  :root {
29
- /** Dashboard **/
30
- --sidebar-width: 280px;
31
- --header-height: 60px;
32
-
33
27
  /* Extended colors */
34
28
  --success: var(--color-emerald-500);
35
29
  --success-foreground: var(--color-emerald-900);
@@ -39,17 +33,6 @@
39
33
  --warning-foreground: var(--color-yellow-900);
40
34
  --invert: var(--color-zinc-900);
41
35
  --invert-foreground: var(--color-zinc-50);
42
-
43
- --surface: oklch(0.98 0 0);
44
- --surface-foreground: var(--foreground);
45
- --code: var(--surface);
46
- --code-foreground: var(--surface-foreground);
47
- --code-highlight: oklch(0.96 0 0);
48
- --code-number: oklch(0.56 0 0);
49
-
50
- /** Grid colors **/
51
- --grid-base-color: rgba(66, 71, 112, 0.09);
52
- --grid-dots-color: rgba(66, 71, 112, 0.09);
53
36
  }
54
37
 
55
38
  .dark {
@@ -62,17 +45,6 @@
62
45
  --warning-foreground: var(--color-yellow-600);
63
46
  --invert: var(--color-zinc-700);
64
47
  --invert-foreground: var(--color-zinc-50);
65
-
66
- --surface: oklch(0.2 0 0);
67
- --surface-foreground: oklch(0.708 0 0);
68
- --code: var(--surface);
69
- --code-foreground: var(--surface-foreground);
70
- --code-highlight: oklch(0.27 0 0);
71
- --code-number: oklch(0.72 0 0);
72
-
73
- /** Grid color **/
74
- --grid-base-color: rgba(255, 255, 255, 0.09);
75
- --grid-dots-color: rgba(255, 255, 255, 0.09);
76
48
  }
77
49
 
78
50
  @theme inline {
@@ -98,13 +70,6 @@
98
70
  --color-warning-foreground: var(--warning-foreground);
99
71
  --color-invert: var(--invert);
100
72
  --color-invert-foreground: var(--invert-foreground);
101
-
102
- --color-surface: var(--surface);
103
- --color-surface-foreground: var(--surface-foreground);
104
- --color-code: var(--code);
105
- --color-code-foreground: var(--code-foreground);
106
- --color-code-highlight: var(--code-highlight);
107
- --color-code-number: var(--code-number);
108
73
  }
109
74
 
110
75
  /** Custom Scrollbar **/
@@ -142,14 +107,6 @@
142
107
  @apply border-border/50 dark:border-border;
143
108
  }
144
109
 
145
- @utility border-ghost {
146
- @apply after:border-border relative after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten;
147
- }
148
-
149
- @utility section-soft {
150
- @apply from-background to-surface/40 dark:bg-background 3xl:fixed:bg-none bg-gradient-to-b;
151
- }
152
-
153
110
  @utility theme-container {
154
111
  @apply font-sans;
155
112
  }
@@ -188,18 +145,3 @@
188
145
  border-radius: 5px;
189
146
  }
190
147
  }
191
-
192
- @utility step {
193
- counter-increment: step;
194
-
195
- &:before {
196
- @apply border-background bg-muted mr-2 inline-flex size-6 items-center justify-center rounded-full text-center -indent-px font-mono text-sm font-medium md:absolute md:mt-[-4px] md:ml-[-50px] md:size-9 md:border-4;
197
- content: counter(step);
198
- }
199
- }
200
-
201
- @utility extend-touch-target {
202
- @media (pointer: coarse) {
203
- @apply relative touch-manipulation after:absolute after:-inset-2;
204
- }
205
- }