cisse-vue-ui 0.2.7 → 0.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.
Files changed (110) hide show
  1. package/README.md +666 -664
  2. package/dist/{Switch.vue_vue_type_script_setup_true_lang-dRPxDu8I.js → DatePicker.vue_vue_type_script_setup_true_lang-DgGJ5-8v.js} +372 -60
  3. package/dist/DatePicker.vue_vue_type_script_setup_true_lang-DgGJ5-8v.js.map +1 -0
  4. package/dist/{Switch.vue_vue_type_script_setup_true_lang-wRTWorCd.cjs → DatePicker.vue_vue_type_script_setup_true_lang-qux1VNn0.cjs} +371 -59
  5. package/dist/DatePicker.vue_vue_type_script_setup_true_lang-qux1VNn0.cjs.map +1 -0
  6. package/dist/Dropdown.vue_vue_type_script_setup_true_lang-B9DsCY8M.js.map +1 -1
  7. package/dist/Dropdown.vue_vue_type_script_setup_true_lang-nMP2OxXp.cjs.map +1 -1
  8. package/dist/PageLayout.vue_vue_type_script_setup_true_lang-Bnw5L-xO.cjs.map +1 -1
  9. package/dist/PageLayout.vue_vue_type_script_setup_true_lang-D8uD3-Fe.js.map +1 -1
  10. package/dist/{CollapsibleCard.vue_vue_type_script_setup_true_lang-Y1wvT4aS.js → Popover.vue_vue_type_script_setup_true_lang-Q7gRZsT9.js} +203 -43
  11. package/dist/Popover.vue_vue_type_script_setup_true_lang-Q7gRZsT9.js.map +1 -0
  12. package/dist/{CollapsibleCard.vue_vue_type_script_setup_true_lang-ClNZxjzF.cjs → Popover.vue_vue_type_script_setup_true_lang-dvlDTcf1.cjs} +191 -31
  13. package/dist/Popover.vue_vue_type_script_setup_true_lang-dvlDTcf1.cjs.map +1 -0
  14. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-mlqLBP5W.cjs → Skeleton.vue_vue_type_script_setup_true_lang-D2S5g9s5.cjs} +325 -72
  15. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-D2S5g9s5.cjs.map +1 -0
  16. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-CrVvFwXA.js → Skeleton.vue_vue_type_script_setup_true_lang-DRC4EADS.js} +326 -73
  17. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-DRC4EADS.js.map +1 -0
  18. package/dist/_plugin-vue_export-helper-1tPrXgE0.js +11 -0
  19. package/dist/_plugin-vue_export-helper-1tPrXgE0.js.map +1 -0
  20. package/dist/_plugin-vue_export-helper-DM9IkUGy.cjs +10 -0
  21. package/dist/_plugin-vue_export-helper-DM9IkUGy.cjs.map +1 -0
  22. package/dist/cisse-vue-ui.css +83 -0
  23. package/dist/components/core/Avatar.stories.d.ts +12 -0
  24. package/dist/components/core/Button.stories.d.ts +18 -0
  25. package/dist/components/core/CardComponent.stories.d.ts +10 -0
  26. package/dist/components/core/CollapsibleCard.stories.d.ts +10 -0
  27. package/dist/components/core/Dropdown.stories.d.ts +11 -0
  28. package/dist/components/core/Popover.stories.d.ts +10 -0
  29. package/dist/components/core/Popover.vue.d.ts +42 -0
  30. package/dist/components/core/StatusBadge.stories.d.ts +13 -0
  31. package/dist/components/core/Stepper.stories.d.ts +12 -0
  32. package/dist/components/core/Tabs.stories.d.ts +10 -0
  33. package/dist/components/core/Tooltip.stories.d.ts +10 -0
  34. package/dist/components/core/Tooltip.vue.d.ts +32 -0
  35. package/dist/components/core/index.cjs +15 -13
  36. package/dist/components/core/index.cjs.map +1 -1
  37. package/dist/components/core/index.d.ts +4 -0
  38. package/dist/components/core/index.js +4 -2
  39. package/dist/components/feedback/Alert.stories.d.ts +13 -0
  40. package/dist/components/feedback/EmptyState.stories.d.ts +13 -0
  41. package/dist/components/feedback/LoadingSpinner.stories.d.ts +11 -0
  42. package/dist/components/feedback/Modal.stories.d.ts +11 -0
  43. package/dist/components/feedback/PaginationControls.stories.d.ts +12 -0
  44. package/dist/components/feedback/Progress.stories.d.ts +14 -0
  45. package/dist/components/feedback/Progress.vue.d.ts +30 -0
  46. package/dist/components/feedback/Skeleton.stories.d.ts +15 -0
  47. package/dist/components/feedback/Skeleton.vue.d.ts +19 -0
  48. package/dist/components/feedback/Toast.stories.d.ts +12 -0
  49. package/dist/components/feedback/Toast.vue.d.ts +23 -0
  50. package/dist/components/feedback/ToastContainer.vue.d.ts +22 -0
  51. package/dist/components/feedback/index.cjs +12 -8
  52. package/dist/components/feedback/index.cjs.map +1 -1
  53. package/dist/components/feedback/index.d.ts +8 -0
  54. package/dist/components/feedback/index.js +6 -2
  55. package/dist/components/form/Checkbox.stories.d.ts +13 -0
  56. package/dist/components/form/DatePicker.stories.d.ts +15 -0
  57. package/dist/components/form/DatePicker.vue.d.ts +34 -0
  58. package/dist/components/form/FormGroup.stories.d.ts +10 -0
  59. package/dist/components/form/FormInput.stories.d.ts +12 -0
  60. package/dist/components/form/FormSelect.stories.d.ts +11 -0
  61. package/dist/components/form/Slider.stories.d.ts +13 -0
  62. package/dist/components/form/Slider.vue.d.ts +29 -0
  63. package/dist/components/form/Switch.stories.d.ts +11 -0
  64. package/dist/components/form/index.cjs +10 -8
  65. package/dist/components/form/index.cjs.map +1 -1
  66. package/dist/components/form/index.d.ts +2 -0
  67. package/dist/components/form/index.js +3 -1
  68. package/dist/components/index.cjs +37 -29
  69. package/dist/components/index.cjs.map +1 -1
  70. package/dist/components/index.js +12 -4
  71. package/dist/components/layout/BaseLayout.stories.d.ts +9 -0
  72. package/dist/components/layout/BaseLayout.vue.d.ts +1 -1
  73. package/dist/components/layout/PageLayout.stories.d.ts +10 -0
  74. package/dist/components/type/BadgeType.stories.d.ts +13 -0
  75. package/dist/components/type/BooleanType.stories.d.ts +12 -0
  76. package/dist/components/type/DateType.stories.d.ts +12 -0
  77. package/dist/components/type/NumberType.stories.d.ts +11 -0
  78. package/dist/components/type/TextType.stories.d.ts +10 -0
  79. package/dist/composables/index.cjs +7 -6
  80. package/dist/composables/index.cjs.map +1 -1
  81. package/dist/composables/index.d.ts +1 -0
  82. package/dist/composables/index.js +3 -2
  83. package/dist/composables/useToast.d.ts +30 -0
  84. package/dist/index-BQtfDfYo.js +59 -0
  85. package/dist/index-BQtfDfYo.js.map +1 -0
  86. package/dist/index-CzzlUYhY.cjs +58 -0
  87. package/dist/index-CzzlUYhY.cjs.map +1 -0
  88. package/dist/index.cjs +45 -36
  89. package/dist/index.cjs.map +1 -1
  90. package/dist/index.js +15 -6
  91. package/dist/style.css +1 -1
  92. package/dist/useDropdown-DHFnd259.cjs.map +1 -1
  93. package/dist/useDropdown-iVu14E6s.js.map +1 -1
  94. package/dist/{useModal-Aq8hn152.js → useToast-DT9hFfpM.js} +49 -1
  95. package/dist/useToast-DT9hFfpM.js.map +1 -0
  96. package/dist/{useModal-DDF_ZS8C.cjs → useToast-nJXpFz_M.cjs} +49 -1
  97. package/dist/useToast-nJXpFz_M.cjs.map +1 -0
  98. package/package.json +21 -2
  99. package/dist/CollapsibleCard.vue_vue_type_script_setup_true_lang-ClNZxjzF.cjs.map +0 -1
  100. package/dist/CollapsibleCard.vue_vue_type_script_setup_true_lang-Y1wvT4aS.js.map +0 -1
  101. package/dist/EmptyState.vue_vue_type_script_setup_true_lang-CrVvFwXA.js.map +0 -1
  102. package/dist/EmptyState.vue_vue_type_script_setup_true_lang-mlqLBP5W.cjs.map +0 -1
  103. package/dist/Switch.vue_vue_type_script_setup_true_lang-dRPxDu8I.js.map +0 -1
  104. package/dist/Switch.vue_vue_type_script_setup_true_lang-wRTWorCd.cjs.map +0 -1
  105. package/dist/index-CCWZb44b.cjs +0 -50
  106. package/dist/index-CCWZb44b.cjs.map +0 -1
  107. package/dist/index-RD8wq3O6.js +0 -51
  108. package/dist/index-RD8wq3O6.js.map +0 -1
  109. package/dist/useModal-Aq8hn152.js.map +0 -1
  110. package/dist/useModal-DDF_ZS8C.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.vue_vue_type_script_setup_true_lang-DRC4EADS.js","sources":["../src/components/feedback/LoadingSpinner.vue","../src/components/feedback/Modal.vue","../src/components/feedback/PaginationControls.vue","../src/components/feedback/NotificationComponent.vue","../src/components/feedback/NotificationList.vue","../src/components/feedback/Alert.vue","../src/components/feedback/EmptyState.vue","../src/components/feedback/Toast.vue","../src/components/feedback/ToastContainer.vue","../src/components/feedback/Progress.vue","../src/components/feedback/Skeleton.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { SpinnerSize } from '@/types'\n\nconst { text, size = 'md' } = defineProps<{\n text?: string\n size?: SpinnerSize\n}>()\n\nconst sizeClasses: Record<SpinnerSize, string> = {\n sm: 'h-8 w-8',\n md: 'h-12 w-12',\n lg: 'h-16 w-16',\n}\n</script>\n\n<template>\n <div class=\"flex items-center justify-center py-12\">\n <div class=\"text-center\">\n <div\n :class=\"sizeClasses[size]\"\n class=\"border-primary inline-block animate-spin rounded-full border-4 border-solid border-r-transparent\"\n ></div>\n <p v-if=\"text\" class=\"mt-4 text-gray-600 dark:text-gray-400\">{{ text }}</p>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { Icon } from '@iconify/vue'\nimport { onMounted, onUnmounted } from 'vue'\nimport type { ModalSize } from '@/types'\n\nconst {\n title = '',\n size = 'default',\n closeOnBackdrop = true,\n closeOnEscape = true,\n closeButtonLabel = 'Close',\n} = defineProps<{\n title?: string\n size?: ModalSize\n closeOnBackdrop?: boolean\n closeOnEscape?: boolean\n closeButtonLabel?: string\n}>()\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nconst sizeClasses: Record<ModalSize, string> = {\n sm: 'max-w-md',\n default: 'max-w-3xl',\n lg: 'max-w-5xl',\n xl: 'max-w-7xl',\n full: 'max-w-full mx-4',\n}\n\nconst handleBackdropClick = () => {\n if (closeOnBackdrop) {\n emit('close')\n }\n}\n\nconst handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && closeOnEscape) {\n emit('close')\n }\n}\n\nonMounted(() => {\n document.addEventListener('keydown', handleEscape)\n document.body.style.overflow = 'hidden'\n})\n\nonUnmounted(() => {\n document.removeEventListener('keydown', handleEscape)\n document.body.style.overflow = ''\n})\n</script>\n\n<template>\n <div\n class=\"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4\"\n @click.self=\"handleBackdropClick\"\n >\n <div\n :class=\"sizeClasses[size]\"\n class=\"flex max-h-[90vh] w-full flex-col rounded-lg bg-white shadow-xl dark:bg-gray-900\"\n >\n <!-- Header -->\n <div\n v-if=\"title || $slots.header || $slots.title\"\n class=\"flex items-center justify-between border-b border-gray-200 px-6 py-4 dark:border-gray-700\"\n >\n <h3 class=\"text-xl font-semibold text-gray-900 dark:text-gray-100\">\n <slot name=\"header\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </slot>\n </h3>\n <button\n class=\"rounded-lg p-1.5 text-gray-400 hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-800 dark:hover:text-gray-100\"\n type=\"button\"\n @click=\"emit('close')\"\n >\n <Icon class=\"h-5 w-5\" icon=\"lucide:x\" />\n <span class=\"sr-only\">{{ closeButtonLabel }}</span>\n </button>\n </div>\n\n <!-- Body -->\n <div class=\"flex-1 overflow-y-auto px-6 py-4\">\n <slot />\n </div>\n\n <!-- Footer -->\n <div\n v-if=\"$slots.footer\"\n class=\"flex items-center justify-end gap-3 border-t border-gray-200 px-6 py-4 dark:border-gray-700\"\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\r\nimport { Icon } from '@iconify/vue'\r\n\r\nconst {\r\n currentPage,\r\n totalPages,\r\n loading = false,\r\n pageSize = 10,\r\n pageSizeOptions = [10, 20, 50, 100],\r\n showPageSize = true,\r\n pageLabel = 'Page',\r\n ofLabel = 'of',\r\n itemsPerPageLabel = 'Items per page:',\r\n previousLabel = 'Previous',\r\n nextLabel = 'Next',\r\n} = defineProps<{\r\n currentPage: number\r\n totalPages: number\r\n loading?: boolean\r\n pageSize?: number\r\n pageSizeOptions?: number[]\r\n showPageSize?: boolean\r\n pageLabel?: string\r\n ofLabel?: string\r\n itemsPerPageLabel?: string\r\n previousLabel?: string\r\n nextLabel?: string\r\n}>()\r\n\r\nconst emit = defineEmits<{\r\n 'update:page': [page: number]\r\n 'update:pageSize': [size: number]\r\n}>()\r\n\r\nconst changePage = (page: number) => {\r\n if (page >= 1 && page <= totalPages && !loading) {\r\n emit('update:page', page)\r\n }\r\n}\r\n\r\nconst changePageSize = (event: Event) => {\r\n const target = event.target as HTMLSelectElement\r\n emit('update:pageSize', Number(target.value))\r\n}\r\n</script>\r\n\r\n<template>\r\n <div\r\n v-if=\"totalPages > 1\"\r\n class=\"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 border-t border-gray-200 px-4 sm:px-6 py-4 dark:border-gray-700\"\r\n >\r\n <!-- Info and page size -->\r\n <div class=\"flex flex-col sm:flex-row sm:items-center gap-3 sm:gap-4\">\r\n <div class=\"text-sm text-gray-700 dark:text-gray-300 text-center sm:text-left\">\r\n {{ pageLabel }} {{ currentPage }} {{ ofLabel }} {{ totalPages }}\r\n </div>\r\n <div v-if=\"showPageSize\" class=\"flex items-center justify-center sm:justify-start gap-2\">\r\n <label class=\"text-sm text-gray-600 dark:text-gray-400 hidden sm:inline\" for=\"page-size\">\r\n {{ itemsPerPageLabel }}\r\n </label>\r\n <select\r\n id=\"page-size\"\r\n :value=\"pageSize\"\r\n class=\"focus:border-primary focus:ring-primary rounded border border-gray-300 bg-white px-2 py-1 text-sm text-gray-900 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100\"\r\n @change=\"changePageSize\"\r\n >\r\n <option v-for=\"size in pageSizeOptions\" :key=\"size\" :value=\"size\">\r\n {{ size }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <!-- Navigation buttons -->\r\n <div class=\"flex justify-center sm:justify-end gap-2\">\r\n <button\r\n :disabled=\"currentPage === 1 || loading\"\r\n class=\"focus:ring-primary inline-flex items-center gap-1 rounded-lg border border-gray-300 bg-white px-3 sm:px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700\"\r\n @click=\"changePage(currentPage - 1)\"\r\n >\r\n <Icon class=\"h-4 w-4\" icon=\"lucide:chevron-left\" />\r\n <span class=\"hidden sm:inline\">{{ previousLabel }}</span>\r\n </button>\r\n <button\r\n :disabled=\"currentPage === totalPages || loading\"\r\n class=\"focus:ring-primary inline-flex items-center gap-1 rounded-lg border border-gray-300 bg-white px-3 sm:px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-200 dark:hover:bg-gray-700\"\r\n @click=\"changePage(currentPage + 1)\"\r\n >\r\n <span class=\"hidden sm:inline\">{{ nextLabel }}</span>\r\n <Icon class=\"h-4 w-4\" icon=\"lucide:chevron-right\" />\r\n </button>\r\n </div>\r\n </div>\r\n</template>\r\n","<script lang=\"ts\" setup>\nimport type { Notification } from '@/types'\nimport { computed, onMounted } from 'vue'\nimport { Icon } from '@iconify/vue'\n\nconst props = defineProps<{\n notification: Notification\n autoDismiss?: boolean\n duration?: number\n}>()\n\nconst emit = defineEmits<{\n dismiss: [id: string]\n}>()\n\nconst iconName = computed(() => {\n switch (props.notification.type) {\n case 'success':\n return 'lucide:check-circle'\n case 'info':\n return 'lucide:info'\n case 'warning':\n return 'lucide:alert-triangle'\n case 'error':\n return 'lucide:x-circle'\n default:\n return 'lucide:bell'\n }\n})\n\nconst iconColor = computed(() => {\n switch (props.notification.type) {\n case 'success':\n return 'text-green-600 dark:text-green-400'\n case 'info':\n return 'text-blue-600 dark:text-blue-400'\n case 'warning':\n return 'text-yellow-600 dark:text-yellow-400'\n case 'error':\n return 'text-red-600 dark:text-red-400'\n default:\n return 'text-gray-600 dark:text-gray-400'\n }\n})\n\nconst bgColor = computed(() => {\n switch (props.notification.type) {\n case 'success':\n return 'bg-green-50 dark:bg-green-950'\n case 'info':\n return 'bg-blue-50 dark:bg-blue-950'\n case 'warning':\n return 'bg-yellow-50 dark:bg-yellow-950'\n case 'error':\n return 'bg-red-50 dark:bg-red-950'\n default:\n return 'bg-gray-50 dark:bg-gray-950'\n }\n})\n\nconst handleDismiss = () => {\n if (props.notification.id) {\n emit('dismiss', props.notification.id)\n }\n}\n\nonMounted(() => {\n const duration = props.notification.duration ?? props.duration ?? 5000\n if (props.autoDismiss !== false && duration > 0) {\n setTimeout(() => {\n handleDismiss()\n }, duration)\n }\n})\n</script>\n\n<template>\n <div\n class=\"flex max-w-md items-start space-x-3 rounded-lg border border-gray-200 bg-white p-4 shadow-lg dark:border-gray-800 dark:bg-black\"\n >\n <div :class=\"[bgColor, 'flex items-center justify-center rounded-full p-2']\">\n <Icon :class=\"iconColor\" :icon=\"iconName\" class=\"h-5 w-5\" />\n </div>\n\n <div class=\"flex min-w-0 flex-1 flex-col\">\n <h4 v-if=\"notification.title\" class=\"text-sm font-semibold text-gray-900 dark:text-gray-100\">\n {{ notification.title }}\n </h4>\n <p v-if=\"notification.message\" class=\"mt-1 text-sm text-gray-600 dark:text-gray-400\">\n {{ notification.message }}\n </p>\n </div>\n\n <button\n class=\"shrink-0 text-gray-400 transition-colors hover:text-gray-600 dark:text-gray-600 dark:hover:text-gray-400\"\n @click=\"handleDismiss\"\n >\n <Icon class=\"h-4 w-4\" icon=\"lucide:x\" />\n </button>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { Notification } from '@/types'\nimport NotificationComponent from './NotificationComponent.vue'\n\ndefineProps<{\n notifications: Notification[]\n autoDismiss?: boolean\n duration?: number\n}>()\n\nconst emit = defineEmits<{\n dismiss: [id: string]\n}>()\n</script>\n\n<template>\n <div class=\"fixed top-5 right-5 z-50 flex flex-col gap-3\">\n <NotificationComponent\n v-for=\"notification in notifications\"\n :key=\"notification.id\"\n :notification=\"notification\"\n :auto-dismiss=\"autoDismiss\"\n :duration=\"duration\"\n @dismiss=\"emit('dismiss', $event)\"\n />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { Icon } from '@iconify/vue'\n\nexport type AlertVariant = 'info' | 'success' | 'warning' | 'error'\n\nconst props = withDefaults(\n defineProps<{\n /** Alert variant */\n variant?: AlertVariant\n /** Title text */\n title?: string\n /** Show close button */\n dismissible?: boolean\n /** Custom icon */\n icon?: string\n }>(),\n {\n variant: 'info',\n },\n)\n\nconst emit = defineEmits<{\n dismiss: []\n}>()\n\nconst variantStyles: Record<AlertVariant, { bg: string; border: string; icon: string; iconColor: string }> = {\n info: {\n bg: 'bg-blue-50 dark:bg-blue-900/20',\n border: 'border-blue-200 dark:border-blue-800',\n icon: 'lucide:info',\n iconColor: 'text-blue-500',\n },\n success: {\n bg: 'bg-green-50 dark:bg-green-900/20',\n border: 'border-green-200 dark:border-green-800',\n icon: 'lucide:check-circle',\n iconColor: 'text-green-500',\n },\n warning: {\n bg: 'bg-yellow-50 dark:bg-yellow-900/20',\n border: 'border-yellow-200 dark:border-yellow-800',\n icon: 'lucide:alert-triangle',\n iconColor: 'text-yellow-500',\n },\n error: {\n bg: 'bg-red-50 dark:bg-red-900/20',\n border: 'border-red-200 dark:border-red-800',\n icon: 'lucide:alert-circle',\n iconColor: 'text-red-500',\n },\n}\n\nconst styles = variantStyles[props.variant]\n</script>\n\n<template>\n <div\n :class=\"[\n 'flex gap-3 rounded-lg border p-4',\n styles.bg,\n styles.border,\n ]\"\n role=\"alert\"\n >\n <Icon\n :icon=\"icon || styles.icon\"\n :class=\"['size-5 shrink-0', styles.iconColor]\"\n />\n <div class=\"flex-1\">\n <h4\n v-if=\"title\"\n class=\"mb-1 font-medium text-gray-900 dark:text-white\"\n >\n {{ title }}\n </h4>\n <div class=\"text-sm text-gray-700 dark:text-gray-300\">\n <slot />\n </div>\n </div>\n <button\n v-if=\"dismissible\"\n type=\"button\"\n class=\"shrink-0 rounded p-1 text-gray-400 hover:bg-gray-200 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300\"\n @click=\"emit('dismiss')\"\n >\n <Icon icon=\"lucide:x\" class=\"size-4\" />\n </button>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { Icon } from '@iconify/vue'\n\nwithDefaults(\n defineProps<{\n /** Message to display */\n message?: string\n /** Icon name (iconify format) */\n icon?: string\n /** Title text */\n title?: string\n }>(),\n {\n message: 'No results found',\n icon: 'lucide:inbox',\n },\n)\n</script>\n\n<template>\n <div class=\"py-12 text-center\">\n <Icon\n v-if=\"icon\"\n :icon=\"icon\"\n class=\"mx-auto mb-4 size-12 text-gray-400 dark:text-gray-500\"\n />\n <h3 v-if=\"title\" class=\"mb-2 text-lg font-medium text-gray-900 dark:text-white\">\n {{ title }}\n </h3>\n <p class=\"text-gray-500 dark:text-gray-400\">\n <slot>{{ message }}</slot>\n </p>\n <div v-if=\"$slots.action\" class=\"mt-4\">\n <slot name=\"action\" />\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\r\nimport { Icon } from '@iconify/vue'\r\n\r\nexport type ToastType = 'success' | 'error' | 'warning' | 'info'\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /** Toast message */\r\n message: string\r\n /** Toast type */\r\n type?: ToastType\r\n /** Title (optional) */\r\n title?: string\r\n /** Show close button */\r\n closable?: boolean\r\n /** Duration in ms (0 = no auto-close) */\r\n duration?: number\r\n }>(),\r\n {\r\n type: 'info',\r\n closable: true,\r\n duration: 5000,\r\n },\r\n)\r\n\r\nconst emit = defineEmits<{\r\n close: []\r\n}>()\r\n\r\nconst typeConfig: Record<ToastType, { icon: string; bg: string; iconColor: string }> = {\r\n success: {\r\n icon: 'lucide:check-circle',\r\n bg: 'bg-green-50 border-green-200 dark:bg-green-900/20 dark:border-green-800',\r\n iconColor: 'text-green-500',\r\n },\r\n error: {\r\n icon: 'lucide:x-circle',\r\n bg: 'bg-red-50 border-red-200 dark:bg-red-900/20 dark:border-red-800',\r\n iconColor: 'text-red-500',\r\n },\r\n warning: {\r\n icon: 'lucide:alert-triangle',\r\n bg: 'bg-yellow-50 border-yellow-200 dark:bg-yellow-900/20 dark:border-yellow-800',\r\n iconColor: 'text-yellow-500',\r\n },\r\n info: {\r\n icon: 'lucide:info',\r\n bg: 'bg-blue-50 border-blue-200 dark:bg-blue-900/20 dark:border-blue-800',\r\n iconColor: 'text-blue-500',\r\n },\r\n}\r\n\r\nconst config = typeConfig[props.type]\r\n\r\n// Auto-close\r\nif (props.duration > 0) {\r\n setTimeout(() => {\r\n emit('close')\r\n }, props.duration)\r\n}\r\n</script>\r\n\r\n<template>\r\n <div\r\n :class=\"[\r\n 'flex items-start gap-3 rounded-lg border p-4 shadow-lg',\r\n config.bg,\r\n ]\"\r\n role=\"alert\"\r\n >\r\n <Icon :icon=\"config.icon\" :class=\"['size-5 shrink-0', config.iconColor]\" />\r\n <div class=\"flex-1 min-w-0\">\r\n <p v-if=\"title\" class=\"font-medium text-gray-900 dark:text-white\">\r\n {{ title }}\r\n </p>\r\n <p class=\"text-sm text-gray-700 dark:text-gray-300\">\r\n {{ message }}\r\n </p>\r\n </div>\r\n <button\r\n v-if=\"closable\"\r\n type=\"button\"\r\n class=\"shrink-0 rounded p-1 text-gray-400 hover:bg-gray-200 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300\"\r\n @click=\"emit('close')\"\r\n >\r\n <Icon icon=\"lucide:x\" class=\"size-4\" />\r\n </button>\r\n </div>\r\n</template>\r\n","<script lang=\"ts\" setup>\r\nimport Toast from './Toast.vue'\r\nimport type { ToastType } from './Toast.vue'\r\n\r\nexport interface ToastItem {\r\n id: string\r\n message: string\r\n type?: ToastType\r\n title?: string\r\n duration?: number\r\n}\r\n\r\nwithDefaults(\r\n defineProps<{\r\n /** Array of toast items */\r\n toasts: ToastItem[]\r\n /** Position of the container */\r\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center'\r\n }>(),\r\n {\r\n position: 'top-right',\r\n },\r\n)\r\n\r\nconst emit = defineEmits<{\r\n close: [id: string]\r\n}>()\r\n\r\nconst positionClasses: Record<string, string> = {\r\n 'top-right': 'top-4 right-4',\r\n 'top-left': 'top-4 left-4',\r\n 'bottom-right': 'bottom-4 right-4',\r\n 'bottom-left': 'bottom-4 left-4',\r\n 'top-center': 'top-4 left-1/2 -translate-x-1/2',\r\n 'bottom-center': 'bottom-4 left-1/2 -translate-x-1/2',\r\n}\r\n</script>\r\n\r\n<template>\r\n <Teleport to=\"body\">\r\n <div :class=\"['fixed z-[9999] flex flex-col gap-2 w-full max-w-sm', positionClasses[position]]\">\r\n <TransitionGroup\r\n enter-active-class=\"transition duration-300 ease-out\"\r\n enter-from-class=\"opacity-0 translate-x-4\"\r\n enter-to-class=\"opacity-100 translate-x-0\"\r\n leave-active-class=\"transition duration-200 ease-in\"\r\n leave-from-class=\"opacity-100 translate-x-0\"\r\n leave-to-class=\"opacity-0 translate-x-4\"\r\n >\r\n <Toast\r\n v-for=\"toast in toasts\"\r\n :key=\"toast.id\"\r\n :message=\"toast.message\"\r\n :type=\"toast.type\"\r\n :title=\"toast.title\"\r\n :duration=\"toast.duration\"\r\n @close=\"emit('close', toast.id)\"\r\n />\r\n </TransitionGroup>\r\n </div>\r\n </Teleport>\r\n</template>\r\n","<script lang=\"ts\" setup>\r\nimport { computed } from 'vue'\r\n\r\nexport type ProgressSize = 'sm' | 'md' | 'lg'\r\nexport type ProgressVariant = 'default' | 'success' | 'warning' | 'error'\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /** Current value (0-100) */\r\n value: number\r\n /** Maximum value */\r\n max?: number\r\n /** Size variant */\r\n size?: ProgressSize\r\n /** Color variant */\r\n variant?: ProgressVariant\r\n /** Show percentage label */\r\n showLabel?: boolean\r\n /** Striped animation */\r\n striped?: boolean\r\n /** Animated stripes */\r\n animated?: boolean\r\n /** Indeterminate state (loading) */\r\n indeterminate?: boolean\r\n }>(),\r\n {\r\n max: 100,\r\n size: 'md',\r\n variant: 'default',\r\n showLabel: false,\r\n striped: false,\r\n animated: false,\r\n indeterminate: false,\r\n },\r\n)\r\n\r\nconst percentage = computed(() => {\r\n if (props.indeterminate) return 100\r\n return Math.min(Math.max((props.value / props.max) * 100, 0), 100)\r\n})\r\n\r\nconst sizeClasses: Record<ProgressSize, string> = {\r\n sm: 'h-1',\r\n md: 'h-2',\r\n lg: 'h-4',\r\n}\r\n\r\nconst variantClasses: Record<ProgressVariant, string> = {\r\n default: 'bg-primary',\r\n success: 'bg-green-500',\r\n warning: 'bg-yellow-500',\r\n error: 'bg-red-500',\r\n}\r\n</script>\r\n\r\n<template>\r\n <div class=\"w-full\">\r\n <div v-if=\"showLabel && !indeterminate\" class=\"mb-1 flex justify-between text-sm\">\r\n <span class=\"text-gray-600 dark:text-gray-400\">Progress</span>\r\n <span class=\"font-medium text-gray-900 dark:text-white\">{{ Math.round(percentage) }}%</span>\r\n </div>\r\n <div\r\n :class=\"[\r\n 'w-full overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700',\r\n sizeClasses[size],\r\n ]\"\r\n role=\"progressbar\"\r\n :aria-valuenow=\"indeterminate ? undefined : value\"\r\n :aria-valuemin=\"0\"\r\n :aria-valuemax=\"max\"\r\n >\r\n <div\r\n :class=\"[\r\n 'h-full rounded-full transition-all duration-300',\r\n variantClasses[variant],\r\n striped && 'bg-stripes',\r\n animated && 'animate-stripes',\r\n indeterminate && 'animate-indeterminate',\r\n ]\"\r\n :style=\"{ width: indeterminate ? '30%' : `${percentage}%` }\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style scoped>\r\n.bg-stripes {\r\n background-image: linear-gradient(\r\n 45deg,\r\n rgba(255, 255, 255, 0.15) 25%,\r\n transparent 25%,\r\n transparent 50%,\r\n rgba(255, 255, 255, 0.15) 50%,\r\n rgba(255, 255, 255, 0.15) 75%,\r\n transparent 75%,\r\n transparent\r\n );\r\n background-size: 1rem 1rem;\r\n}\r\n\r\n.animate-stripes {\r\n animation: stripes 1s linear infinite;\r\n}\r\n\r\n@keyframes stripes {\r\n from {\r\n background-position: 1rem 0;\r\n }\r\n to {\r\n background-position: 0 0;\r\n }\r\n}\r\n\r\n.animate-indeterminate {\r\n animation: indeterminate 1.5s ease-in-out infinite;\r\n}\r\n\r\n@keyframes indeterminate {\r\n 0% {\r\n transform: translateX(-100%);\r\n }\r\n 100% {\r\n transform: translateX(400%);\r\n }\r\n}\r\n</style>\r\n","<script lang=\"ts\" setup>\r\nexport type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'rounded'\r\n\r\nwithDefaults(\r\n defineProps<{\r\n /** Variant style */\r\n variant?: SkeletonVariant\r\n /** Width (CSS value) */\r\n width?: string\r\n /** Height (CSS value) */\r\n height?: string\r\n /** Number of lines (for text variant) */\r\n lines?: number\r\n /** Animate the skeleton */\r\n animate?: boolean\r\n }>(),\r\n {\r\n variant: 'text',\r\n animate: true,\r\n lines: 1,\r\n },\r\n)\r\n\r\nconst variantClasses: Record<SkeletonVariant, string> = {\r\n text: 'h-4 rounded',\r\n circular: 'rounded-full',\r\n rectangular: '',\r\n rounded: 'rounded-lg',\r\n}\r\n</script>\r\n\r\n<template>\r\n <div v-if=\"variant === 'text' && lines > 1\" class=\"space-y-2\">\r\n <div\r\n v-for=\"i in lines\"\r\n :key=\"i\"\r\n :class=\"[\r\n 'bg-gray-200 dark:bg-gray-700',\r\n variantClasses[variant],\r\n animate && 'animate-pulse',\r\n ]\"\r\n :style=\"{\r\n width: i === lines ? '75%' : width || '100%',\r\n height: height,\r\n }\"\r\n />\r\n </div>\r\n <div\r\n v-else\r\n :class=\"[\r\n 'bg-gray-200 dark:bg-gray-700',\r\n variantClasses[variant],\r\n animate && 'animate-pulse',\r\n ]\"\r\n :style=\"{\r\n width: width || (variant === 'circular' ? '3rem' : '100%'),\r\n height: height || (variant === 'circular' ? '3rem' : variant === 'text' ? '1rem' : '6rem'),\r\n }\"\r\n />\r\n</template>\r\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_normalizeClass","_hoisted_3","_toDisplayString","$slots","_renderSlot","_createVNode","_unref","_hoisted_4","_hoisted_5","_Fragment","_renderList","_createBlock","NotificationComponent","_Teleport","_TransitionGroup","Toast","_normalizeStyle"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ const _export_sfc = (sfc, props) => {
2
+ const target = sfc.__vccOpts || sfc;
3
+ for (const [key, val] of props) {
4
+ target[key] = val;
5
+ }
6
+ return target;
7
+ };
8
+ export {
9
+ _export_sfc as _
10
+ };
11
+ //# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plugin-vue_export-helper-1tPrXgE0.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ const _export_sfc = (sfc, props) => {
3
+ const target = sfc.__vccOpts || sfc;
4
+ for (const [key, val] of props) {
5
+ target[key] = val;
6
+ }
7
+ return target;
8
+ };
9
+ exports._export_sfc = _export_sfc;
10
+ //# sourceMappingURL=_plugin-vue_export-helper-DM9IkUGy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plugin-vue_export-helper-DM9IkUGy.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,83 @@
1
+
2
+ .slider-input[data-v-89741e22] {
3
+ height: 0.5rem;
4
+ }
5
+ .slider-input[data-v-89741e22]::-webkit-slider-runnable-track {
6
+ height: 0.5rem;
7
+ border-radius: 9999px;
8
+ background-color: #e5e7eb;
9
+ }
10
+ .dark .slider-input[data-v-89741e22]::-webkit-slider-runnable-track {
11
+ background-color: #374151;
12
+ }
13
+ .slider-input[data-v-89741e22]::-webkit-slider-thumb {
14
+ -webkit-appearance: none;
15
+ appearance: none;
16
+ width: 1.25rem;
17
+ height: 1.25rem;
18
+ border-radius: 9999px;
19
+ background-color: var(--color-primary, #3b82f6);
20
+ border: 2px solid white;
21
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
22
+ margin-top: -0.375rem;
23
+ cursor: pointer;
24
+ }
25
+ .slider-input[data-v-89741e22]::-moz-range-track {
26
+ height: 0.5rem;
27
+ border-radius: 9999px;
28
+ background-color: #e5e7eb;
29
+ }
30
+ .dark .slider-input[data-v-89741e22]::-moz-range-track {
31
+ background-color: #374151;
32
+ }
33
+ .slider-input[data-v-89741e22]::-moz-range-thumb {
34
+ width: 1.25rem;
35
+ height: 1.25rem;
36
+ border-radius: 9999px;
37
+ background-color: var(--color-primary, #3b82f6);
38
+ border: 2px solid white;
39
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
40
+ cursor: pointer;
41
+ }
42
+ .slider-input[data-v-89741e22]:focus::-webkit-slider-thumb {
43
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);
44
+ }
45
+ .slider-input[data-v-89741e22]:focus::-moz-range-thumb {
46
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);
47
+ }
48
+
49
+ .bg-stripes[data-v-f2118741] {
50
+ background-image: linear-gradient(
51
+ 45deg,
52
+ rgba(255, 255, 255, 0.15) 25%,
53
+ transparent 25%,
54
+ transparent 50%,
55
+ rgba(255, 255, 255, 0.15) 50%,
56
+ rgba(255, 255, 255, 0.15) 75%,
57
+ transparent 75%,
58
+ transparent
59
+ );
60
+ background-size: 1rem 1rem;
61
+ }
62
+ .animate-stripes[data-v-f2118741] {
63
+ animation: stripes-f2118741 1s linear infinite;
64
+ }
65
+ @keyframes stripes-f2118741 {
66
+ from {
67
+ background-position: 1rem 0;
68
+ }
69
+ to {
70
+ background-position: 0 0;
71
+ }
72
+ }
73
+ .animate-indeterminate[data-v-f2118741] {
74
+ animation: indeterminate-f2118741 1.5s ease-in-out infinite;
75
+ }
76
+ @keyframes indeterminate-f2118741 {
77
+ 0% {
78
+ transform: translateX(-100%);
79
+ }
80
+ 100% {
81
+ transform: translateX(400%);
82
+ }
83
+ }
@@ -0,0 +1,12 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Avatar } from './Avatar.vue';
3
+ declare const meta: Meta<typeof Avatar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const WithImage: Story;
8
+ export declare const WithInitials: Story;
9
+ export declare const AllSizes: Story;
10
+ export declare const WithStatus: Story;
11
+ export declare const RoundedVariants: Story;
12
+ export declare const ImageWithStatus: Story;
@@ -0,0 +1,18 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Button } from './Button.vue';
3
+ declare const meta: Meta<typeof Button>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Primary: Story;
7
+ export declare const Secondary: Story;
8
+ export declare const Outline: Story;
9
+ export declare const Ghost: Story;
10
+ export declare const Danger: Story;
11
+ export declare const Success: Story;
12
+ export declare const AllVariants: Story;
13
+ export declare const AllSizes: Story;
14
+ export declare const WithIcon: Story;
15
+ export declare const WithIconRight: Story;
16
+ export declare const Loading: Story;
17
+ export declare const Disabled: Story;
18
+ export declare const FullWidth: Story;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as CardComponent } from './CardComponent.vue';
3
+ declare const meta: Meta<typeof CardComponent>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const WithTitle: Story;
8
+ export declare const WithTitleAndDescription: Story;
9
+ export declare const WithActions: Story;
10
+ export declare const CustomSlots: Story;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as CollapsibleCard } from './CollapsibleCard.vue';
3
+ declare const meta: Meta<typeof CollapsibleCard>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const InitiallyCollapsed: Story;
8
+ export declare const WithActions: Story;
9
+ export declare const MultipleCards: Story;
10
+ export declare const LongContent: Story;
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Dropdown } from './Dropdown.vue';
3
+ declare const meta: Meta<typeof Dropdown>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const WithCustomTrigger: Story;
8
+ export declare const AlignRight: Story;
9
+ export declare const WithDisabledItems: Story;
10
+ export declare const DifferentWidths: Story;
11
+ export declare const CustomContent: Story;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Popover } from './Popover.vue';
3
+ declare const meta: Meta<typeof Popover>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const OnHover: Story;
8
+ export declare const Widths: Story;
9
+ export declare const WithForm: Story;
10
+ export declare const UserCard: Story;
@@ -0,0 +1,42 @@
1
+ export type PopoverPosition = 'top' | 'bottom' | 'left' | 'right';
2
+ type __VLS_Props = {
3
+ /** Position of the popover */
4
+ position?: PopoverPosition;
5
+ /** Trigger on hover instead of click */
6
+ hover?: boolean;
7
+ /** Use teleport to body */
8
+ teleport?: boolean;
9
+ /** Width of the popover */
10
+ width?: 'auto' | 'sm' | 'md' | 'lg';
11
+ };
12
+ declare function __VLS_template(): {
13
+ attrs: Partial<{}>;
14
+ slots: {
15
+ trigger?(_: {}): any;
16
+ default?(_: {
17
+ close: () => void;
18
+ }): any;
19
+ };
20
+ refs: {
21
+ triggerRef: HTMLDivElement;
22
+ popoverRef: HTMLDivElement;
23
+ };
24
+ rootEl: HTMLDivElement;
25
+ };
26
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
27
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
28
+ width: "auto" | "sm" | "md" | "lg";
29
+ teleport: boolean;
30
+ position: PopoverPosition;
31
+ hover: boolean;
32
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
33
+ triggerRef: HTMLDivElement;
34
+ popoverRef: HTMLDivElement;
35
+ }, HTMLDivElement>;
36
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
37
+ export default _default;
38
+ type __VLS_WithTemplateSlots<T, S> = T & {
39
+ new (): {
40
+ $slots: S;
41
+ };
42
+ };
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as StatusBadge } from './StatusBadge.vue';
3
+ declare const meta: Meta<typeof StatusBadge>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const Success: Story;
8
+ export declare const Error: Story;
9
+ export declare const Warning: Story;
10
+ export declare const Info: Story;
11
+ export declare const SemanticVariants: Story;
12
+ export declare const ColorVariants: Story;
13
+ export declare const UseCases: Story;
@@ -0,0 +1,12 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Stepper } from './Stepper.vue';
3
+ declare const meta: Meta<typeof Stepper>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Horizontal: Story;
7
+ export declare const Vertical: Story;
8
+ export declare const FirstStep: Story;
9
+ export declare const LastStep: Story;
10
+ export declare const WithIcons: Story;
11
+ export declare const Interactive: Story;
12
+ export declare const ManySteps: Story;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Tabs } from './Tabs.vue';
3
+ declare const meta: Meta<typeof Tabs>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Underline: Story;
7
+ export declare const Pills: Story;
8
+ export declare const Boxed: Story;
9
+ export declare const WithDisabledTab: Story;
10
+ export declare const AllVariants: Story;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Tooltip } from './Tooltip.vue';
3
+ declare const meta: Meta<typeof Tooltip>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const Positions: Story;
8
+ export declare const WithDelay: Story;
9
+ export declare const Disabled: Story;
10
+ export declare const OnIcons: Story;
@@ -0,0 +1,32 @@
1
+ export type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
2
+ type __VLS_Props = {
3
+ /** Tooltip content text */
4
+ content: string;
5
+ /** Position of the tooltip */
6
+ position?: TooltipPosition;
7
+ /** Delay before showing (ms) */
8
+ delay?: number;
9
+ /** Disable the tooltip */
10
+ disabled?: boolean;
11
+ };
12
+ declare function __VLS_template(): {
13
+ attrs: Partial<{}>;
14
+ slots: {
15
+ default?(_: {}): any;
16
+ };
17
+ refs: {};
18
+ rootEl: HTMLDivElement;
19
+ };
20
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
22
+ disabled: boolean;
23
+ position: TooltipPosition;
24
+ delay: number;
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
27
+ export default _default;
28
+ type __VLS_WithTemplateSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -1,20 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const CollapsibleCard_vue_vue_type_script_setup_true_lang = require("../../CollapsibleCard.vue_vue_type_script_setup_true_lang-ClNZxjzF.cjs");
3
+ const Popover_vue_vue_type_script_setup_true_lang = require("../../Popover.vue_vue_type_script_setup_true_lang-dvlDTcf1.cjs");
4
4
  const Dropdown_vue_vue_type_script_setup_true_lang = require("../../Dropdown.vue_vue_type_script_setup_true_lang-nMP2OxXp.cjs");
5
5
  const BadgeType_vue_vue_type_script_setup_true_lang = require("../../BadgeType.vue_vue_type_script_setup_true_lang-CJb63H1I.cjs");
6
- exports.AutocompleteComponent = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$4;
7
- exports.Avatar = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$7;
8
- exports.Button = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$6;
9
- exports.CardComponent = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main;
10
- exports.CollapsibleCard = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$11;
11
- exports.MobileList = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$2;
12
- exports.ResponsiveList = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$3;
13
- exports.Stepper = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$10;
14
- exports.TabPanel = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$9;
15
- exports.TableAction = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$5;
16
- exports.TableComponent = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$1;
17
- exports.Tabs = CollapsibleCard_vue_vue_type_script_setup_true_lang._sfc_main$8;
6
+ exports.AutocompleteComponent = Popover_vue_vue_type_script_setup_true_lang._sfc_main$4;
7
+ exports.Avatar = Popover_vue_vue_type_script_setup_true_lang._sfc_main$7;
8
+ exports.Button = Popover_vue_vue_type_script_setup_true_lang._sfc_main$6;
9
+ exports.CardComponent = Popover_vue_vue_type_script_setup_true_lang._sfc_main;
10
+ exports.CollapsibleCard = Popover_vue_vue_type_script_setup_true_lang._sfc_main$11;
11
+ exports.MobileList = Popover_vue_vue_type_script_setup_true_lang._sfc_main$2;
12
+ exports.Popover = Popover_vue_vue_type_script_setup_true_lang._sfc_main$13;
13
+ exports.ResponsiveList = Popover_vue_vue_type_script_setup_true_lang._sfc_main$3;
14
+ exports.Stepper = Popover_vue_vue_type_script_setup_true_lang._sfc_main$10;
15
+ exports.TabPanel = Popover_vue_vue_type_script_setup_true_lang._sfc_main$9;
16
+ exports.TableAction = Popover_vue_vue_type_script_setup_true_lang._sfc_main$5;
17
+ exports.TableComponent = Popover_vue_vue_type_script_setup_true_lang._sfc_main$1;
18
+ exports.Tabs = Popover_vue_vue_type_script_setup_true_lang._sfc_main$8;
19
+ exports.Tooltip = Popover_vue_vue_type_script_setup_true_lang._sfc_main$12;
18
20
  exports.Dropdown = Dropdown_vue_vue_type_script_setup_true_lang._sfc_main$1;
19
21
  exports.MenuItem = Dropdown_vue_vue_type_script_setup_true_lang._sfc_main;
20
22
  exports.StatusBadge = BadgeType_vue_vue_type_script_setup_true_lang._sfc_main;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -13,7 +13,11 @@ export { default as TabPanel } from './TabPanel.vue';
13
13
  export { default as Dropdown } from './Dropdown.vue';
14
14
  export { default as Stepper } from './Stepper.vue';
15
15
  export { default as CollapsibleCard } from './CollapsibleCard.vue';
16
+ export { default as Tooltip } from './Tooltip.vue';
17
+ export { default as Popover } from './Popover.vue';
16
18
  export type { ButtonVariant, ButtonSize } from './Button.vue';
19
+ export type { TooltipPosition } from './Tooltip.vue';
20
+ export type { PopoverPosition } from './Popover.vue';
17
21
  export type { Step } from './Stepper.vue';
18
22
  export type { AvatarSize } from './Avatar.vue';
19
23
  export type { Tab } from './Tabs.vue';
@@ -1,4 +1,4 @@
1
- import { d, g, f, _, k, b, c, j, i, e, a, h } from "../../CollapsibleCard.vue_vue_type_script_setup_true_lang-Y1wvT4aS.js";
1
+ import { d, g, f, _, k, b, m, c, j, i, e, a, h, l } from "../../Popover.vue_vue_type_script_setup_true_lang-Q7gRZsT9.js";
2
2
  import { a as a2, _ as _2 } from "../../Dropdown.vue_vue_type_script_setup_true_lang-B9DsCY8M.js";
3
3
  import { _ as _3 } from "../../BadgeType.vue_vue_type_script_setup_true_lang-CnB5eNEM.js";
4
4
  export {
@@ -10,12 +10,14 @@ export {
10
10
  a2 as Dropdown,
11
11
  _2 as MenuItem,
12
12
  b as MobileList,
13
+ m as Popover,
13
14
  c as ResponsiveList,
14
15
  _3 as StatusBadge,
15
16
  j as Stepper,
16
17
  i as TabPanel,
17
18
  e as TableAction,
18
19
  a as TableComponent,
19
- h as Tabs
20
+ h as Tabs,
21
+ l as Tooltip
20
22
  };
21
23
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Alert } from './Alert.vue';
3
+ declare const meta: Meta<typeof Alert>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Info: Story;
7
+ export declare const Success: Story;
8
+ export declare const Warning: Story;
9
+ export declare const Error: Story;
10
+ export declare const AllVariants: Story;
11
+ export declare const Dismissible: Story;
12
+ export declare const WithoutTitle: Story;
13
+ export declare const CustomIcon: Story;
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as EmptyState } from './EmptyState.vue';
3
+ declare const meta: Meta<typeof EmptyState>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const WithTitle: Story;
8
+ export declare const CustomIcon: Story;
9
+ export declare const WithAction: Story;
10
+ export declare const SearchResults: Story;
11
+ export declare const ErrorState: Story;
12
+ export declare const InCard: Story;
13
+ export declare const CustomSlotContent: Story;
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as LoadingSpinner } from './LoadingSpinner.vue';
3
+ declare const meta: Meta<typeof LoadingSpinner>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const WithText: Story;
8
+ export declare const Small: Story;
9
+ export declare const Large: Story;
10
+ export declare const AllSizes: Story;
11
+ export declare const InCard: Story;
@@ -0,0 +1,11 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Modal } from './Modal.vue';
3
+ declare const meta: Meta<typeof Modal>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const WithFooter: Story;
8
+ export declare const Sizes: Story;
9
+ export declare const NoCloseOnBackdrop: Story;
10
+ export declare const FormModal: Story;
11
+ export declare const DeleteConfirmation: Story;
@@ -0,0 +1,12 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as PaginationControls } from './PaginationControls.vue';
3
+ declare const meta: Meta<typeof PaginationControls>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const MidPage: Story;
8
+ export declare const LastPage: Story;
9
+ export declare const WithoutPageSize: Story;
10
+ export declare const Loading: Story;
11
+ export declare const CustomPageSizes: Story;
12
+ export declare const InTable: Story;
@@ -0,0 +1,14 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Progress } from './Progress.vue';
3
+ declare const meta: Meta<typeof Progress>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
7
+ export declare const WithLabel: Story;
8
+ export declare const Sizes: Story;
9
+ export declare const Variants: Story;
10
+ export declare const Striped: Story;
11
+ export declare const Animated: Story;
12
+ export declare const Indeterminate: Story;
13
+ export declare const AnimatedProgress: Story;
14
+ export declare const FileUpload: Story;
@@ -0,0 +1,30 @@
1
+ export type ProgressSize = 'sm' | 'md' | 'lg';
2
+ export type ProgressVariant = 'default' | 'success' | 'warning' | 'error';
3
+ type __VLS_Props = {
4
+ /** Current value (0-100) */
5
+ value: number;
6
+ /** Maximum value */
7
+ max?: number;
8
+ /** Size variant */
9
+ size?: ProgressSize;
10
+ /** Color variant */
11
+ variant?: ProgressVariant;
12
+ /** Show percentage label */
13
+ showLabel?: boolean;
14
+ /** Striped animation */
15
+ striped?: boolean;
16
+ /** Animated stripes */
17
+ animated?: boolean;
18
+ /** Indeterminate state (loading) */
19
+ indeterminate?: boolean;
20
+ };
21
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
22
+ variant: ProgressVariant;
23
+ size: ProgressSize;
24
+ indeterminate: boolean;
25
+ max: number;
26
+ showLabel: boolean;
27
+ striped: boolean;
28
+ animated: boolean;
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as Skeleton } from './Skeleton.vue';
3
+ declare const meta: Meta<typeof Skeleton>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Text: Story;
7
+ export declare const MultipleLines: Story;
8
+ export declare const Circular: Story;
9
+ export declare const Rectangular: Story;
10
+ export declare const Rounded: Story;
11
+ export declare const CardSkeleton: Story;
12
+ export declare const ListSkeleton: Story;
13
+ export declare const TableSkeleton: Story;
14
+ export declare const ProfileSkeleton: Story;
15
+ export declare const NoAnimation: Story;