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.
- package/README.md +107 -10
- 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
|
|
116
|
-
| `FormSelect` | Select dropdown with
|
|
117
|
-
| `FormGroup` | Form field wrapper with label
|
|
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
|
|
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
|
|
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` |
|
|
133
|
-
| `NotificationComponent` | Individual
|
|
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 {
|
|
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
|