cisse-vue-ui 0.5.25 → 0.5.26

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 (2) hide show
  1. package/README.md +107 -10
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -107,30 +107,51 @@ app.use(VueTailwindUI, { components: ['Button', 'CardComponent'] })
107
107
  | `TableAction` | Icon button for table row actions |
108
108
  | `Stepper` | Multi-step progress indicator with horizontal/vertical orientation |
109
109
  | `CollapsibleCard` | Card that can expand/collapse its content |
110
+ | `Accordion` | Expandable content sections with single/multiple mode |
111
+ | `Breadcrumb` | Navigation breadcrumb trail |
112
+ | `Drawer` | Slide-out panel from any edge (left, right, top, bottom) |
113
+ | `Popover` | Floating content panel triggered by click or hover |
114
+ | `Timeline` | Vertical timeline for events/history display |
115
+ | `Tooltip` | Hover tooltip with customizable position |
110
116
 
111
117
  ### Form
112
118
 
113
119
  | Component | Description |
114
120
  |-----------|-------------|
115
- | `FormInput` | Text input with label, validation, and icons |
116
- | `FormSelect` | Select dropdown with label and validation |
117
- | `FormGroup` | Form field wrapper with label and help text |
118
- | `FormLabel` | Styled form label |
119
- | `FormHelp` | Help text for form fields |
121
+ | `FormInput` | Text input with validation states and ARIA support |
122
+ | `FormSelect` | Select dropdown with search, multi-select, and validation |
123
+ | `FormGroup` | Form field wrapper with label, help text, and error states |
124
+ | `FormLabel` | Styled form label with required indicator |
125
+ | `FormHelp` | Help/error text for form fields |
120
126
  | `SearchInput` | Search input with icon and clear button |
121
127
  | `Switch` | Toggle switch with label and description |
122
- | `Checkbox` | Checkbox with label and description |
128
+ | `Checkbox` | Checkbox with label, description, and indeterminate state |
129
+ | `Combobox` | Multi-select combobox with search and tags |
130
+ | `DatePicker` | Calendar date picker with min/max dates |
131
+ | `ColorPicker` | Color selection with swatches and custom input |
132
+ | `FileUpload` | Drag-and-drop file upload with preview |
133
+ | `Rating` | Star rating input with half-star support |
134
+ | `Slider` | Single value slider input |
135
+ | `RangeSlider` | Dual-handle range slider |
123
136
 
124
137
  ### Feedback
125
138
 
126
139
  | Component | Description |
127
140
  |-----------|-------------|
128
- | `Modal` | Modal dialog with header, body, footer slots |
141
+ | `Modal` | Modal dialog with focus trap, ARIA support, and slots |
142
+ | `ConfirmDialog` | Confirmation modal with customizable actions |
129
143
  | `Alert` | Alert banner with variants (info, success, warning, error) |
144
+ | `Toast` | Individual toast notification with auto-dismiss |
145
+ | `ToastContainer` | Toast notification container with positioning |
130
146
  | `LoadingSpinner` | Loading indicator with size variants |
147
+ | `Progress` | Progress bar with percentage display |
148
+ | `Skeleton` | Loading placeholder with animation |
149
+ | `CardSkeleton` | Card loading skeleton |
150
+ | `ListSkeleton` | List loading skeleton |
151
+ | `TableSkeleton` | Table loading skeleton |
131
152
  | `PaginationControls` | Pagination with page numbers and navigation |
132
- | `NotificationList` | Toast notification container |
133
- | `NotificationComponent` | Individual toast notification |
153
+ | `NotificationList` | Notification list container |
154
+ | `NotificationComponent` | Individual notification item |
134
155
  | `EmptyState` | Placeholder for empty content with icon and action slot |
135
156
 
136
157
  ### Layout
@@ -153,7 +174,16 @@ app.use(VueTailwindUI, { components: ['Button', 'CardComponent'] })
153
174
  ## Composables
154
175
 
155
176
  ```typescript
156
- import { useNotifications, useDarkMode, useExportCSV, useDropdown, useModal } from 'cisse-vue-ui/composables'
177
+ import {
178
+ useNotifications,
179
+ useDarkMode,
180
+ useExportCSV,
181
+ useDropdown,
182
+ useModal,
183
+ useToast,
184
+ useFocusTrap,
185
+ useId
186
+ } from 'cisse-vue-ui/composables'
157
187
  ```
158
188
 
159
189
  ### useModal
@@ -252,6 +282,73 @@ const { exportToCSV } = useExportCSV()
252
282
  exportToCSV(data, columns, 'export.csv')
253
283
  ```
254
284
 
285
+ ### useToast
286
+
287
+ Toast notification system with positioning and auto-dismiss:
288
+
289
+ ```typescript
290
+ import { useToast } from 'cisse-vue-ui/composables'
291
+
292
+ const { toasts, addToast, removeToast, clearToasts } = useToast()
293
+
294
+ // Add a toast
295
+ addToast({
296
+ type: 'success',
297
+ title: 'Success!',
298
+ message: 'Your changes have been saved.',
299
+ duration: 5000 // auto-dismiss after 5s
300
+ })
301
+
302
+ // Different toast types
303
+ addToast({ type: 'error', title: 'Error', message: 'Something went wrong' })
304
+ addToast({ type: 'warning', title: 'Warning', message: 'Please review' })
305
+ addToast({ type: 'info', title: 'Info', message: 'New update available' })
306
+ ```
307
+
308
+ ```vue
309
+ <template>
310
+ <!-- Add ToastContainer to your app root -->
311
+ <ToastContainer position="top-right" />
312
+ </template>
313
+ ```
314
+
315
+ ### useFocusTrap
316
+
317
+ Trap focus within a container (used internally by Modal):
318
+
319
+ ```typescript
320
+ import { useFocusTrap } from 'cisse-vue-ui/composables'
321
+ import { ref } from 'vue'
322
+
323
+ const isActive = ref(true)
324
+ const { containerRef } = useFocusTrap({
325
+ active: isActive,
326
+ focusFirst: true, // Focus first focusable element on activate
327
+ restoreFocus: true // Restore focus on deactivate
328
+ })
329
+ ```
330
+
331
+ ### useId
332
+
333
+ Generate unique IDs for accessibility (ARIA relationships):
334
+
335
+ ```typescript
336
+ import { useId } from 'cisse-vue-ui/composables'
337
+
338
+ const { id, related } = useId({ prefix: 'modal' })
339
+ // id.value = 'cisse-modal-1'
340
+ // related('title') = 'cisse-modal-1-title'
341
+ // related('description') = 'cisse-modal-1-description'
342
+ ```
343
+
344
+ ```vue
345
+ <template>
346
+ <div :id="id" role="dialog" :aria-labelledby="related('title')">
347
+ <h2 :id="related('title')">Dialog Title</h2>
348
+ </div>
349
+ </template>
350
+ ```
351
+
255
352
  ## Types
256
353
 
257
354
  ```typescript
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cisse-vue-ui",
3
- "version": "0.5.25",
3
+ "version": "0.5.26",
4
4
  "description": "Vue 3 + TypeScript + Tailwind CSS v4 component library",
5
5
  "author": "Cisse",
6
6
  "license": "MIT",