cisse-vue-ui 0.1.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 +15 -0
- package/dist/BadgeType.vue_vue_type_script_setup_true_lang-CJb63H1I.cjs +145 -0
- package/dist/BadgeType.vue_vue_type_script_setup_true_lang-CJb63H1I.cjs.map +1 -0
- package/dist/BadgeType.vue_vue_type_script_setup_true_lang-CnB5eNEM.js +146 -0
- package/dist/BadgeType.vue_vue_type_script_setup_true_lang-CnB5eNEM.js.map +1 -0
- package/dist/NotificationList.vue_vue_type_script_setup_true_lang-B2hjbMm4.js +351 -0
- package/dist/NotificationList.vue_vue_type_script_setup_true_lang-B2hjbMm4.js.map +1 -0
- package/dist/NotificationList.vue_vue_type_script_setup_true_lang-Ci3zIvrv.cjs +350 -0
- package/dist/NotificationList.vue_vue_type_script_setup_true_lang-Ci3zIvrv.cjs.map +1 -0
- package/dist/SearchInput.vue_vue_type_script_setup_true_lang-Be73hShP.cjs +234 -0
- package/dist/SearchInput.vue_vue_type_script_setup_true_lang-Be73hShP.cjs.map +1 -0
- package/dist/SearchInput.vue_vue_type_script_setup_true_lang-DjT2qdcp.js +235 -0
- package/dist/SearchInput.vue_vue_type_script_setup_true_lang-DjT2qdcp.js.map +1 -0
- package/dist/TableAction.vue_vue_type_script_setup_true_lang-BHskhVhK.js +540 -0
- package/dist/TableAction.vue_vue_type_script_setup_true_lang-BHskhVhK.js.map +1 -0
- package/dist/TableAction.vue_vue_type_script_setup_true_lang-CojbKn7E.cjs +539 -0
- package/dist/TableAction.vue_vue_type_script_setup_true_lang-CojbKn7E.cjs.map +1 -0
- package/dist/components/core/AutocompleteComponent.vue.d.ts +19 -0
- package/dist/components/core/CardComponent.vue.d.ts +24 -0
- package/dist/components/core/MenuItem.vue.d.ts +6 -0
- package/dist/components/core/StatusBadge.vue.d.ts +21 -0
- package/dist/components/core/TableAction.vue.d.ts +8 -0
- package/dist/components/core/TableComponent.vue.d.ts +40 -0
- package/dist/components/core/index.cjs +11 -0
- package/dist/components/core/index.cjs.map +1 -0
- package/dist/components/core/index.d.ts +6 -0
- package/dist/components/core/index.js +11 -0
- package/dist/components/core/index.js.map +1 -0
- package/dist/components/feedback/LoadingSpinner.vue.d.ts +7 -0
- package/dist/components/feedback/Modal.vue.d.ts +32 -0
- package/dist/components/feedback/NotificationComponent.vue.d.ts +12 -0
- package/dist/components/feedback/NotificationList.vue.d.ts +12 -0
- package/dist/components/feedback/PaginationControls.vue.d.ts +21 -0
- package/dist/components/feedback/index.cjs +9 -0
- package/dist/components/feedback/index.cjs.map +1 -0
- package/dist/components/feedback/index.d.ts +5 -0
- package/dist/components/feedback/index.js +9 -0
- package/dist/components/feedback/index.js.map +1 -0
- package/dist/components/form/FormGroup.vue.d.ts +30 -0
- package/dist/components/form/FormHelp.vue.d.ts +21 -0
- package/dist/components/form/FormInput.vue.d.ts +13 -0
- package/dist/components/form/FormLabel.vue.d.ts +21 -0
- package/dist/components/form/FormSelect.vue.d.ts +26 -0
- package/dist/components/form/SearchInput.vue.d.ts +12 -0
- package/dist/components/form/index.cjs +10 -0
- package/dist/components/form/index.cjs.map +1 -0
- package/dist/components/form/index.d.ts +6 -0
- package/dist/components/form/index.js +10 -0
- package/dist/components/form/index.js.map +1 -0
- package/dist/components/index.cjs +29 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +29 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/type/BadgeType.vue.d.ts +11 -0
- package/dist/components/type/BooleanType.vue.d.ts +11 -0
- package/dist/components/type/DateType.vue.d.ts +10 -0
- package/dist/components/type/NumberType.vue.d.ts +9 -0
- package/dist/components/type/TextType.vue.d.ts +8 -0
- package/dist/components/type/index.cjs +9 -0
- package/dist/components/type/index.cjs.map +1 -0
- package/dist/components/type/index.d.ts +5 -0
- package/dist/components/type/index.js +9 -0
- package/dist/components/type/index.js.map +1 -0
- package/dist/composables/index.cjs +7 -0
- package/dist/composables/index.cjs.map +1 -0
- package/dist/composables/index.d.ts +3 -0
- package/dist/composables/index.js +7 -0
- package/dist/composables/index.js.map +1 -0
- package/dist/composables/useDarkMode.d.ts +14 -0
- package/dist/composables/useExportCSV.d.ts +10 -0
- package/dist/composables/useNotifications.d.ts +27 -0
- package/dist/index-BoCtJCg0.cjs +32 -0
- package/dist/index-BoCtJCg0.cjs.map +1 -0
- package/dist/index-CGhDI10m.js +33 -0
- package/dist/index-CGhDI10m.js.map +1 -0
- package/dist/index.cjs +49 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +24 -0
- package/dist/types/components.d.ts +18 -0
- package/dist/types/form.d.ts +27 -0
- package/dist/types/index.cjs +2 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/notification.d.ts +12 -0
- package/dist/types/property.d.ts +34 -0
- package/dist/useExportCSV-B9o9lJ3D.js +130 -0
- package/dist/useExportCSV-B9o9lJ3D.js.map +1 -0
- package/dist/useExportCSV-BPC_hd25.cjs +129 -0
- package/dist/useExportCSV-BPC_hd25.cjs.map +1 -0
- package/package.json +131 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useExportCSV-BPC_hd25.cjs","sources":["../src/composables/useNotifications.ts","../src/composables/useDarkMode.ts","../src/composables/useExportCSV.ts"],"sourcesContent":["import { ref, readonly } from 'vue'\nimport type { Notification, NotificationType, NotificationOptions } from '@/types'\n\n/**\n * Composable for managing notifications/toasts\n * Standalone implementation without Pinia dependency\n */\nexport function useNotifications() {\n const notifications = ref<Notification[]>([])\n let idCounter = 0\n\n const generateId = () => `notification-${++idCounter}-${Date.now()}`\n\n const notify = (\n type: NotificationType,\n message: string,\n options: NotificationOptions = {},\n ): string => {\n const id = generateId()\n const notification: Notification = {\n id,\n type,\n message,\n title: options.title ?? null,\n duration: options.duration ?? 5000,\n }\n\n notifications.value.push(notification)\n\n if (notification.duration && notification.duration > 0) {\n setTimeout(() => remove(id), notification.duration)\n }\n\n return id\n }\n\n const success = (message: string, options?: NotificationOptions) =>\n notify('success', message, options)\n\n const warning = (message: string, options?: NotificationOptions) =>\n notify('warning', message, options)\n\n const error = (message: string, options?: NotificationOptions) =>\n notify('error', message, options)\n\n const info = (message: string, options?: NotificationOptions) =>\n notify('info', message, options)\n\n const remove = (id: string) => {\n notifications.value = notifications.value.filter((n) => n.id !== id)\n }\n\n const clear = () => {\n notifications.value = []\n }\n\n return {\n notifications: readonly(notifications),\n notify,\n success,\n warning,\n error,\n info,\n remove,\n clear,\n }\n}\n","import { ref, watch, onMounted } from 'vue'\n\nexport interface DarkModeOptions {\n selector?: string\n attribute?: string\n storageKey?: string\n defaultValue?: boolean\n}\n\n/**\n * Composable for managing dark mode state\n */\nexport function useDarkMode(options: DarkModeOptions = {}) {\n const {\n selector = 'html',\n attribute = 'class',\n storageKey = 'dark-mode',\n defaultValue = false,\n } = options\n\n const isDark = ref(defaultValue)\n\n const getInitialValue = (): boolean => {\n if (typeof window === 'undefined') return defaultValue\n\n const stored = localStorage.getItem(storageKey)\n if (stored !== null) {\n return stored === 'true'\n }\n\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n }\n\n const updateDOM = (dark: boolean) => {\n if (typeof document === 'undefined') return\n\n const element = document.querySelector(selector)\n if (!element) return\n\n if (attribute === 'class') {\n element.classList.toggle('dark', dark)\n } else {\n element.setAttribute(attribute, dark ? 'dark' : 'light')\n }\n }\n\n const toggle = () => {\n isDark.value = !isDark.value\n }\n\n const set = (value: boolean) => {\n isDark.value = value\n }\n\n watch(isDark, (newValue) => {\n updateDOM(newValue)\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(storageKey, String(newValue))\n }\n })\n\n onMounted(() => {\n isDark.value = getInitialValue()\n updateDOM(isDark.value)\n })\n\n return {\n isDark,\n toggle,\n set,\n }\n}\n","/**\n * Composable for exporting data to CSV format\n */\nexport function useExportCSV() {\n const escapeCSV = (value: unknown): string => {\n if (value === null || value === undefined) return ''\n const str = String(value)\n if (str.includes(',') || str.includes('\"') || str.includes('\\n')) {\n return `\"${str.replace(/\"/g, '\"\"')}\"`\n }\n return str\n }\n\n const exportToCSV = <T extends Record<string, unknown>>(\n data: T[],\n columns: { key: keyof T; label: string }[],\n filename: string = 'export.csv',\n ) => {\n if (!data || data.length === 0) {\n console.warn('No data to export')\n return\n }\n\n // Create header row\n const headers = columns.map((col) => escapeCSV(col.label)).join(',')\n\n // Create data rows\n const rows = data.map((item) =>\n columns.map((col) => escapeCSV(item[col.key])).join(','),\n )\n\n // Combine header and rows\n const csv = [headers, ...rows].join('\\n')\n\n // Create and trigger download\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' })\n const url = URL.createObjectURL(blob)\n const link = document.createElement('a')\n link.setAttribute('href', url)\n link.setAttribute('download', filename)\n link.style.visibility = 'hidden'\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n URL.revokeObjectURL(url)\n }\n\n return {\n exportToCSV,\n escapeCSV,\n }\n}\n"],"names":["ref","readonly","watch","onMounted"],"mappings":";;AAOO,SAAS,mBAAmB;AACjC,QAAM,gBAAgBA,IAAAA,IAAoB,EAAE;AAC5C,MAAI,YAAY;AAEhB,QAAM,aAAa,MAAM,gBAAgB,EAAE,SAAS,IAAI,KAAK,KAAK;AAElE,QAAM,SAAS,CACb,MACA,SACA,UAA+B,CAAA,MACpB;AACX,UAAM,KAAK,WAAA;AACX,UAAM,eAA6B;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,QAAQ,SAAS;AAAA,MACxB,UAAU,QAAQ,YAAY;AAAA,IAAA;AAGhC,kBAAc,MAAM,KAAK,YAAY;AAErC,QAAI,aAAa,YAAY,aAAa,WAAW,GAAG;AACtD,iBAAW,MAAM,OAAO,EAAE,GAAG,aAAa,QAAQ;AAAA,IACpD;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,CAAC,SAAiB,YAChC,OAAO,WAAW,SAAS,OAAO;AAEpC,QAAM,UAAU,CAAC,SAAiB,YAChC,OAAO,WAAW,SAAS,OAAO;AAEpC,QAAM,QAAQ,CAAC,SAAiB,YAC9B,OAAO,SAAS,SAAS,OAAO;AAElC,QAAM,OAAO,CAAC,SAAiB,YAC7B,OAAO,QAAQ,SAAS,OAAO;AAEjC,QAAM,SAAS,CAAC,OAAe;AAC7B,kBAAc,QAAQ,cAAc,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,EACrE;AAEA,QAAM,QAAQ,MAAM;AAClB,kBAAc,QAAQ,CAAA;AAAA,EACxB;AAEA,SAAO;AAAA,IACL,eAAeC,IAAAA,SAAS,aAAa;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;ACtDO,SAAS,YAAY,UAA2B,IAAI;AACzD,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,eAAe;AAAA,EAAA,IACb;AAEJ,QAAM,SAASD,IAAAA,IAAI,YAAY;AAE/B,QAAM,kBAAkB,MAAe;AACrC,QAAI,OAAO,WAAW,YAAa,QAAO;AAE1C,UAAM,SAAS,aAAa,QAAQ,UAAU;AAC9C,QAAI,WAAW,MAAM;AACnB,aAAO,WAAW;AAAA,IACpB;AAEA,WAAO,OAAO,WAAW,8BAA8B,EAAE;AAAA,EAC3D;AAEA,QAAM,YAAY,CAAC,SAAkB;AACnC,QAAI,OAAO,aAAa,YAAa;AAErC,UAAM,UAAU,SAAS,cAAc,QAAQ;AAC/C,QAAI,CAAC,QAAS;AAEd,QAAI,cAAc,SAAS;AACzB,cAAQ,UAAU,OAAO,QAAQ,IAAI;AAAA,IACvC,OAAO;AACL,cAAQ,aAAa,WAAW,OAAO,SAAS,OAAO;AAAA,IACzD;AAAA,EACF;AAEA,QAAM,SAAS,MAAM;AACnB,WAAO,QAAQ,CAAC,OAAO;AAAA,EACzB;AAEA,QAAM,MAAM,CAAC,UAAmB;AAC9B,WAAO,QAAQ;AAAA,EACjB;AAEAE,YAAM,QAAQ,CAAC,aAAa;AAC1B,cAAU,QAAQ;AAClB,QAAI,OAAO,iBAAiB,aAAa;AACvC,mBAAa,QAAQ,YAAY,OAAO,QAAQ,CAAC;AAAA,IACnD;AAAA,EACF,CAAC;AAEDC,MAAAA,UAAU,MAAM;AACd,WAAO,QAAQ,gBAAA;AACf,cAAU,OAAO,KAAK;AAAA,EACxB,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;ACpEO,SAAS,eAAe;AAC7B,QAAM,YAAY,CAAC,UAA2B;AAC5C,QAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAClD,UAAM,MAAM,OAAO,KAAK;AACxB,QAAI,IAAI,SAAS,GAAG,KAAK,IAAI,SAAS,GAAG,KAAK,IAAI,SAAS,IAAI,GAAG;AAChE,aAAO,IAAI,IAAI,QAAQ,MAAM,IAAI,CAAC;AAAA,IACpC;AACA,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,CAClB,MACA,SACA,WAAmB,iBAChB;AACH,QAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC9B,cAAQ,KAAK,mBAAmB;AAChC;AAAA,IACF;AAGA,UAAM,UAAU,QAAQ,IAAI,CAAC,QAAQ,UAAU,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG;AAGnE,UAAM,OAAO,KAAK;AAAA,MAAI,CAAC,SACrB,QAAQ,IAAI,CAAC,QAAQ,UAAU,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG;AAAA,IAAA;AAIzD,UAAM,MAAM,CAAC,SAAS,GAAG,IAAI,EAAE,KAAK,IAAI;AAGxC,UAAM,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,MAAM,2BAA2B;AAChE,UAAM,MAAM,IAAI,gBAAgB,IAAI;AACpC,UAAM,OAAO,SAAS,cAAc,GAAG;AACvC,SAAK,aAAa,QAAQ,GAAG;AAC7B,SAAK,aAAa,YAAY,QAAQ;AACtC,SAAK,MAAM,aAAa;AACxB,aAAS,KAAK,YAAY,IAAI;AAC9B,SAAK,MAAA;AACL,aAAS,KAAK,YAAY,IAAI;AAC9B,QAAI,gBAAgB,GAAG;AAAA,EACzB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EAAA;AAEJ;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cisse-vue-ui",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Vue 3 + TypeScript + Tailwind CSS v4 component library",
|
|
5
|
+
"author": "Cisse",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "./dist/index.cjs",
|
|
9
|
+
"module": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"require": {
|
|
18
|
+
"types": "./dist/index.d.cts",
|
|
19
|
+
"default": "./dist/index.cjs"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"./components": {
|
|
23
|
+
"import": {
|
|
24
|
+
"types": "./dist/components/index.d.ts",
|
|
25
|
+
"default": "./dist/components/index.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"./components/core": {
|
|
29
|
+
"import": {
|
|
30
|
+
"types": "./dist/components/core/index.d.ts",
|
|
31
|
+
"default": "./dist/components/core/index.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"./components/form": {
|
|
35
|
+
"import": {
|
|
36
|
+
"types": "./dist/components/form/index.d.ts",
|
|
37
|
+
"default": "./dist/components/form/index.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"./components/feedback": {
|
|
41
|
+
"import": {
|
|
42
|
+
"types": "./dist/components/feedback/index.d.ts",
|
|
43
|
+
"default": "./dist/components/feedback/index.js"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"./components/type": {
|
|
47
|
+
"import": {
|
|
48
|
+
"types": "./dist/components/type/index.d.ts",
|
|
49
|
+
"default": "./dist/components/type/index.js"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"./composables": {
|
|
53
|
+
"import": {
|
|
54
|
+
"types": "./dist/composables/index.d.ts",
|
|
55
|
+
"default": "./dist/composables/index.js"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"./types": {
|
|
59
|
+
"import": {
|
|
60
|
+
"types": "./dist/types/index.d.ts",
|
|
61
|
+
"default": "./dist/types/index.js"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"./styles/theme.css": "./dist/styles/theme.css"
|
|
65
|
+
},
|
|
66
|
+
"files": [
|
|
67
|
+
"dist",
|
|
68
|
+
"README.md",
|
|
69
|
+
"LICENSE"
|
|
70
|
+
],
|
|
71
|
+
"sideEffects": [
|
|
72
|
+
"*.css"
|
|
73
|
+
],
|
|
74
|
+
"keywords": [
|
|
75
|
+
"vue",
|
|
76
|
+
"vue3",
|
|
77
|
+
"typescript",
|
|
78
|
+
"tailwindcss",
|
|
79
|
+
"tailwind",
|
|
80
|
+
"ui",
|
|
81
|
+
"components",
|
|
82
|
+
"library"
|
|
83
|
+
],
|
|
84
|
+
"repository": {
|
|
85
|
+
"type": "git",
|
|
86
|
+
"url": "https://github.com/moulayecisse/cisse-vue-ui.git"
|
|
87
|
+
},
|
|
88
|
+
"scripts": {
|
|
89
|
+
"dev": "vite --config playground/vite.config.ts",
|
|
90
|
+
"build": "vue-tsc --noEmit && vite build",
|
|
91
|
+
"preview": "vite preview",
|
|
92
|
+
"test": "vitest",
|
|
93
|
+
"type-check": "vue-tsc --noEmit",
|
|
94
|
+
"lint": "eslint . --fix",
|
|
95
|
+
"prepublishOnly": "bun run build"
|
|
96
|
+
},
|
|
97
|
+
"peerDependencies": {
|
|
98
|
+
"@iconify/vue": ">=4.0.0",
|
|
99
|
+
"tailwindcss": ">=4.0.0",
|
|
100
|
+
"vue": ">=3.4.0"
|
|
101
|
+
},
|
|
102
|
+
"peerDependenciesMeta": {
|
|
103
|
+
"pinia": {
|
|
104
|
+
"optional": true
|
|
105
|
+
},
|
|
106
|
+
"vue-router": {
|
|
107
|
+
"optional": true
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"devDependencies": {
|
|
111
|
+
"@iconify/vue": "^5.0.0",
|
|
112
|
+
"@tailwindcss/vite": "^4.1.17",
|
|
113
|
+
"@types/node": "^22.19.1",
|
|
114
|
+
"@vitejs/plugin-vue": "^6.0.1",
|
|
115
|
+
"@vue/tsconfig": "^0.8.0",
|
|
116
|
+
"ajv": "^8.17.1",
|
|
117
|
+
"eslint": "^9.39.0",
|
|
118
|
+
"pinia": "^3.0.4",
|
|
119
|
+
"tailwindcss": "^4.1.17",
|
|
120
|
+
"typescript": "~5.9.3",
|
|
121
|
+
"vite": "^6.3.5",
|
|
122
|
+
"vite-plugin-dts": "^4.5.0",
|
|
123
|
+
"vitest": "^3.2.4",
|
|
124
|
+
"vue": "^3.5.24",
|
|
125
|
+
"vue-router": "^4.6.3",
|
|
126
|
+
"vue-tsc": "^2.2.10"
|
|
127
|
+
},
|
|
128
|
+
"dependencies": {
|
|
129
|
+
"tailwind-merge": "^3.4.0"
|
|
130
|
+
}
|
|
131
|
+
}
|