saha-ui 1.11.1 → 1.13.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.
Files changed (123) hide show
  1. package/README.md +123 -2
  2. package/bin/cli.js +346 -261
  3. package/dist/components/Accordion/index.d.ts.map +1 -1
  4. package/dist/components/Alert/index.d.ts.map +1 -1
  5. package/dist/components/AspectRatio/AspectRatio.styles.d.ts +1 -1
  6. package/dist/components/AspectRatio/index.d.ts.map +1 -1
  7. package/dist/components/Autocomplete/index.d.ts.map +1 -1
  8. package/dist/components/Avatar/index.d.ts.map +1 -1
  9. package/dist/components/AvatarGroup/index.d.ts.map +1 -1
  10. package/dist/components/Badge/index.d.ts +1 -1
  11. package/dist/components/Badge/index.d.ts.map +1 -1
  12. package/dist/components/Badge/index.js +33 -56
  13. package/dist/components/Breadcrumb/index.d.ts +1 -1
  14. package/dist/components/Breadcrumb/index.d.ts.map +1 -1
  15. package/dist/components/Button/index.d.ts.map +1 -1
  16. package/dist/components/Button/index.js +26 -42
  17. package/dist/components/ButtonGroup/index.d.ts.map +1 -1
  18. package/dist/components/Calendar/Calendar.styles.d.ts +2 -2
  19. package/dist/components/Calendar/index.d.ts.map +1 -1
  20. package/dist/components/Card/Card.styles.d.ts +1 -1
  21. package/dist/components/Card/index.d.ts.map +1 -1
  22. package/dist/components/Card/index.js +51 -78
  23. package/dist/components/Carousel/index.d.ts.map +1 -1
  24. package/dist/components/Checkbox/index.d.ts.map +1 -1
  25. package/dist/components/Chip/index.d.ts.map +1 -1
  26. package/dist/components/Chip/index.js +45 -76
  27. package/dist/components/CodeEditor/variants.d.ts +10 -10
  28. package/dist/components/Collapsible/index.d.ts.map +1 -1
  29. package/dist/components/ContextMenu/index.d.ts.map +1 -1
  30. package/dist/components/DataTable/index.d.ts.map +1 -1
  31. package/dist/components/DatePicker/index.d.ts.map +1 -1
  32. package/dist/components/DatePicker/index.js +214 -277
  33. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  34. package/dist/components/Dialog/Dialog.js +125 -234
  35. package/dist/components/Dialog/Dialog.styles.d.ts +1 -1
  36. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  37. package/dist/components/Drawer/Drawer.js +30 -32
  38. package/dist/components/Dropdown/index.d.ts.map +1 -1
  39. package/dist/components/Field/Field.styles.d.ts +1 -1
  40. package/dist/components/FloatingActionButton/index.d.ts.map +1 -1
  41. package/dist/components/FloatingActionButton/index.js +41 -72
  42. package/dist/components/Form/index.d.ts.map +1 -1
  43. package/dist/components/HoverCard/index.d.ts.map +1 -1
  44. package/dist/components/Image/index.d.ts.map +1 -1
  45. package/dist/components/Input/index.d.ts.map +1 -1
  46. package/dist/components/InputOTP/index.d.ts.map +1 -1
  47. package/dist/components/Item/index.d.ts.map +1 -1
  48. package/dist/components/Kbd/index.d.ts.map +1 -1
  49. package/dist/components/Kbd/index.js +73 -117
  50. package/dist/components/Label/index.d.ts.map +1 -1
  51. package/dist/components/Link/index.d.ts.map +1 -1
  52. package/dist/components/Link/index.js +35 -64
  53. package/dist/components/List/index.d.ts.map +1 -1
  54. package/dist/components/List/index.js +42 -65
  55. package/dist/components/Menubar/index.d.ts.map +1 -1
  56. package/dist/components/NativeSelect/index.d.ts.map +1 -1
  57. package/dist/components/Pagination/index.d.ts.map +1 -1
  58. package/dist/components/PlayButton/index.d.ts.map +1 -1
  59. package/dist/components/Popover/index.d.ts.map +1 -1
  60. package/dist/components/Popover/index.js +3 -2
  61. package/dist/components/Progress/index.d.ts.map +1 -1
  62. package/dist/components/Progress/index.js +65 -124
  63. package/dist/components/Radio/index.d.ts.map +1 -1
  64. package/dist/components/Rating/index.d.ts.map +1 -1
  65. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  66. package/dist/components/Select/index.d.ts.map +1 -1
  67. package/dist/components/Separator/Separator.styles.d.ts +1 -1
  68. package/dist/components/Separator/index.d.ts.map +1 -1
  69. package/dist/components/Separator/index.js +41 -83
  70. package/dist/components/Skeleton/index.d.ts.map +1 -1
  71. package/dist/components/Skeleton/index.js +44 -72
  72. package/dist/components/Slider/Slider.d.ts.map +1 -1
  73. package/dist/components/Sonner/index.d.ts.map +1 -1
  74. package/dist/components/Spinner/index.d.ts.map +1 -1
  75. package/dist/components/Spinner/index.js +166 -236
  76. package/dist/components/Steps/index.d.ts.map +1 -1
  77. package/dist/components/Switch/index.d.ts.map +1 -1
  78. package/dist/components/Tab/index.d.ts.map +1 -1
  79. package/dist/components/Table/index.d.ts.map +1 -1
  80. package/dist/components/Tag/Tag.styles.d.ts +1 -1
  81. package/dist/components/Tag/index.d.ts.map +1 -1
  82. package/dist/components/TagInput/TagInput.styles.d.ts +1 -1
  83. package/dist/components/TagInput/index.d.ts.map +1 -1
  84. package/dist/components/TextArea/TextArea.styles.d.ts +1 -1
  85. package/dist/components/TextArea/index.d.ts.map +1 -1
  86. package/dist/components/TextEditor/TextEditor.styles.d.ts +4 -4
  87. package/dist/components/TextEditor/index.d.ts.map +1 -1
  88. package/dist/components/ThemeProvider/NextThemeProvider.d.ts +9 -0
  89. package/dist/components/ThemeProvider/NextThemeProvider.d.ts.map +1 -0
  90. package/dist/components/ThemeProvider/NextThemeProvider.js +8 -0
  91. package/dist/components/ThemeProvider/ThemeProvider.d.ts +6 -0
  92. package/dist/components/ThemeProvider/ThemeProvider.d.ts.map +1 -0
  93. package/dist/components/ThemeProvider/ThemeProvider.js +34 -0
  94. package/dist/components/ThemeProvider/ThemeProvider.types.d.ts +2 -1
  95. package/dist/components/ThemeProvider/ThemeProvider.types.d.ts.map +1 -1
  96. package/dist/components/ThemeProvider/index.d.ts +2 -5
  97. package/dist/components/ThemeProvider/index.d.ts.map +1 -1
  98. package/dist/components/ThemeProvider/index.js +5 -32
  99. package/dist/components/ThemeToggle/ThemeToggle.styles.d.ts +17 -0
  100. package/dist/components/ThemeToggle/ThemeToggle.styles.d.ts.map +1 -0
  101. package/dist/components/ThemeToggle/ThemeToggle.styles.js +90 -0
  102. package/dist/components/ThemeToggle/ThemeToggle.types.d.ts +1 -0
  103. package/dist/components/ThemeToggle/ThemeToggle.types.d.ts.map +1 -1
  104. package/dist/components/ThemeToggle/index.d.ts.map +1 -1
  105. package/dist/components/ThemeToggle/index.js +67 -30
  106. package/dist/components/Timeline/index.d.ts.map +1 -1
  107. package/dist/components/Toast/ToastItem.d.ts.map +1 -1
  108. package/dist/components/Toast/ToastProvider.d.ts.map +1 -1
  109. package/dist/components/Toggle/Toggle.styles.d.ts +1 -1
  110. package/dist/components/Toggle/index.d.ts.map +1 -1
  111. package/dist/components/ToggleGroup/ToggleGroup.styles.d.ts +1 -1
  112. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  113. package/dist/components/Tooltip/index.d.ts.map +1 -1
  114. package/dist/components/Tree/index.d.ts.map +1 -1
  115. package/dist/components/Typography/Typography.styles.d.ts +1 -1
  116. package/dist/components/Upload/ImageEditor.d.ts.map +1 -1
  117. package/dist/components/Upload/Upload.styles.d.ts +1 -1
  118. package/dist/components/Upload/index.d.ts.map +1 -1
  119. package/dist/hooks/useMediaQuery.d.ts.map +1 -1
  120. package/dist/index.d.ts +68 -2
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +723 -415
  123. package/package.json +3 -2
package/README.md CHANGED
@@ -11,13 +11,15 @@
11
11
 
12
12
  <p>
13
13
  A beautiful, accessible, and type-safe React component library built with<br/>
14
- <strong>TypeScript</strong> • <strong>Tailwind CSS v4</strong> • <strong>OKLCH Colors</strong> • <strong>Glass Morphism</strong>
14
+ <strong>TypeScript</strong> • <strong>Tailwind CSS v4</strong> • <strong>OKLCH Colors</strong> • <strong>Glass Morphism</strong><br/>
15
+ ✅ <strong>Next.js 15/16 Ready</strong> • <strong>App Router</strong> • <strong>Server Components</strong>
15
16
  </p>
16
17
 
17
18
  <p>
18
19
  <a href="#-installation">Installation</a> •
19
20
  <a href="#-features">Features</a> •
20
21
  <a href="#-components">Components</a> •
22
+ <a href="#-nextjs-1516-compatibility">Next.js Guide</a> •
21
23
  <a href="#-quick-examples">Quick Examples</a> •
22
24
  <a href="#-documentation">Documentation</a>
23
25
  </p>
@@ -27,7 +29,8 @@
27
29
 
28
30
  ## ✨ Features
29
31
 
30
- - 🎨 **73 Modern Components** - Accordion, Alert, AspectRatio, Autocomplete, Avatar, AvatarGroup, Badge, Breadcrumb, Button, ButtonGroup, Calendar, Card, Carousel, Checkbox, Chip, CodeEditor, Collapsible, Combobox, Command, ContextMenu, DataTable, DatePicker, Dialog, Drawer, Dropdown, Empty, Field, FloatingActionButton, Form, HoverCard, Image, Input, InputOTP, Item, Kbd, Label, Link, List, Menubar, NativeSelect, NavigationMenu, Pagination, PlayButton, Popover, Progress, Radio, Rating, Resizable, ScrollArea, Select, Separator, Skeleton, Slider, Sonner, Spinner, Steps, Switch, Tab, Table, Tag, TagInput, TextArea, TextEditor, ThemeProvider, ThemeToggle, Timeline, Toast, Toggle, ToggleGroup, Tooltip, Tree, Typography, Upload
32
+ - 🎨 **73 Modern Components** - Accordion, Alert, AspectRatio, Autocomplete, Avatar, AvatarGroup, Badge, Breadcrumb, Button, ButtonGroup, Calendar, Card, Carousel, Chart, Checkbox, Chip, CodeEditor, Collapsible, Combobox, Command, ContextMenu, DataTable, DatePicker, Dialog, Drawer, Dropdown, Empty, Field, FloatingActionButton, Form, HoverCard, Image, Input, InputOTP, Item, Kbd, Label, Link, List, Menubar, NativeSelect, NavigationMenu, Pagination, PlayButton, Popover, Progress, Radio, Rating, Resizable, ScrollArea, Select, Separator, Skeleton, Slider, Sonner, Spinner, Steps, Switch, Tab, Table, Tag, TagInput, TextArea, TextEditor, ThemeProvider, ThemeToggle, Timeline, Toast, Toggle, ToggleGroup, Tooltip, Tree, Typography, Upload
33
+ - ⚡ **Next.js 15/16 Ready** - Full App Router support with Server & Client Components
31
34
  - 🌓 **Dark Mode** - Seamless theme switching with full dark mode support
32
35
  - 🔮 **Glass Morphism** - Beautiful backdrop blur effects across components
33
36
  - 🎯 **Type-Safe** - Full TypeScript support with comprehensive prop types
@@ -44,6 +47,8 @@
44
47
 
45
48
  ## 📦 Installation
46
49
 
50
+ ### Step 1: Install the package
51
+
47
52
  ```bash
48
53
  # npm
49
54
  npm install saha-ui
@@ -55,14 +60,43 @@ yarn add saha-ui
55
60
  pnpm add saha-ui
56
61
  ```
57
62
 
63
+ ### Step 2: Initialize Saha UI (REQUIRED)
64
+
65
+ Run this command in your project root to setup CSS and Tailwind configuration:
66
+
67
+ ```bash
68
+ npx saha-ui init
69
+ ```
70
+
71
+ This will automatically:
72
+
73
+ - ✅ Inject CSS variables and design tokens
74
+ - ✅ Configure Tailwind to scan Saha UI components in `node_modules`
75
+ - ✅ Install required dependencies
76
+ - ✅ Detect your Tailwind version (v3 or v4) and configure accordingly
77
+
78
+ **Without this step, the components will not be styled properly!**
79
+
80
+ See [CSS_DISTRIBUTION_SOLUTION.md](./CSS_DISTRIBUTION_SOLUTION.md) for detailed explanation.
81
+
58
82
  ### Peer Dependencies
59
83
 
60
84
  Saha UI requires React 18+ or React 19+:
61
85
 
86
+ ```bash
87
+ npm install react@^18.0.0 react-dom@^18.0.0
88
+ # or
89
+ npm install react@^19.0.0 react-dom@^19.0.0
90
+ ```
91
+
62
92
  ### Optional Dependencies
63
93
 
64
94
  For icons (if using Link or ThemeToggle components):
65
95
 
96
+ ```bash
97
+ npm install lucide-react
98
+ ```
99
+
66
100
  ## 🚀 Quick Start
67
101
 
68
102
  ### 1. Wrap your app with ThemeProvider
@@ -136,6 +170,93 @@ import { cn } from "saha-ui/lib/utils";
136
170
 
137
171
  ---
138
172
 
173
+ ## 🚀 Next.js 15/16 Compatibility
174
+
175
+ Saha UI is **fully compatible** with Next.js 15 and 16 App Router!
176
+
177
+ ### Quick Setup
178
+
179
+ ```bash
180
+ npm install saha-ui
181
+ ```
182
+
183
+ ```tsx
184
+ // app/providers.tsx
185
+ "use client";
186
+
187
+ import { ThemeProvider } from "saha-ui";
188
+
189
+ export function Providers({ children }: { children: React.ReactNode }) {
190
+ return (
191
+ <ThemeProvider defaultTheme="system" storageKey="my-app-theme">
192
+ {children}
193
+ </ThemeProvider>
194
+ );
195
+ }
196
+ ```
197
+
198
+ ```tsx
199
+ // app/layout.tsx
200
+ import { Providers } from "./providers";
201
+ import "./globals.css";
202
+
203
+ export default function RootLayout({ children }) {
204
+ return (
205
+ <html lang="en" suppressHydrationWarning>
206
+ <body>
207
+ <Providers>{children}</Providers>
208
+ </body>
209
+ </html>
210
+ );
211
+ }
212
+ ```
213
+
214
+ ### Component Classification
215
+
216
+ - **58 Client Components** (require `"use client"`) - All interactive components (forms, modals, charts, etc.)
217
+ - **15 Flexible Components** (work as Server or Client) - Pure display components (cards, badges, avatars, etc.)
218
+
219
+ ### Usage Examples
220
+
221
+ **Server Component with Client Interaction:**
222
+
223
+ ```tsx
224
+ // app/page.tsx (Server Component)
225
+ import { Card, Badge } from "saha-ui";
226
+ import { InteractiveButton } from "./interactive-button";
227
+
228
+ export default async function Page() {
229
+ const data = await fetch("https://api.example.com/data");
230
+
231
+ return (
232
+ <Card>
233
+ <Badge variant="success">New</Badge>
234
+ <InteractiveButton /> {/* Client Component */}
235
+ </Card>
236
+ );
237
+ }
238
+ ```
239
+
240
+ ```tsx
241
+ // app/interactive-button.tsx (Client Component)
242
+ "use client";
243
+
244
+ import { Button } from "saha-ui";
245
+
246
+ export function InteractiveButton() {
247
+ return <Button onClick={() => alert("Clicked!")}>Click Me</Button>;
248
+ }
249
+ ```
250
+
251
+ **Full Documentation:**
252
+
253
+ - 📘 [NEXTJS_15_16_COMPATIBILITY.md](./NEXTJS_15_16_COMPATIBILITY.md) - Complete integration guide
254
+ - 📗 [NEXTJS_CLIENT_DIRECTIVE_GUIDE.md](./NEXTJS_CLIENT_DIRECTIVE_GUIDE.md) - "use client" reference
255
+ - 📙 [NEXTJS_READINESS_SUMMARY.md](./NEXTJS_READINESS_SUMMARY.md) - Component analysis
256
+ - 📕 [QUICK_REFERENCE_NEXTJS.md](./QUICK_REFERENCE_NEXTJS.md) - Quick reference card
257
+
258
+ ---
259
+
139
260
  ## 🎨 Components
140
261
 
141
262
  ### Overview