cisse-vue-ui 0.2.8 → 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-DzDK0MZi.cjs → Skeleton.vue_vue_type_script_setup_true_lang-D2S5g9s5.cjs} +313 -62
  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-BBLBf32F.js → Skeleton.vue_vue_type_script_setup_true_lang-DRC4EADS.js} +314 -63
  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-BBLBf32F.js.map +0 -1
  102. package/dist/EmptyState.vue_vue_type_script_setup_true_lang-DzDK0MZi.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-BEUu6KNI.js +0 -51
  106. package/dist/index-BEUu6KNI.js.map +0 -1
  107. package/dist/index-DHo9Tbn4.cjs +0 -50
  108. package/dist/index-DHo9Tbn4.cjs.map +0 -1
  109. package/dist/useModal-Aq8hn152.js.map +0 -1
  110. package/dist/useModal-DDF_ZS8C.cjs.map +0 -1
@@ -19,7 +19,7 @@ const _hoisted_5$3 = {
19
19
  class: "text-sm font-normal text-gray-600 dark:text-gray-400"
20
20
  };
21
21
  const _hoisted_6$3 = { class: "flex gap-2" };
22
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
22
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
23
23
  __name: "CardComponent",
24
24
  props: {
25
25
  title: {},
@@ -72,7 +72,7 @@ const _hoisted_9$2 = {
72
72
  class: "flex items-center justify-end gap-2 px-3 py-4"
73
73
  };
74
74
  const _hoisted_10$1 = { key: 0 };
75
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
75
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
76
76
  __name: "TableComponent",
77
77
  props: {
78
78
  properties: {},
@@ -255,7 +255,7 @@ const _hoisted_7$1 = {
255
255
  const _hoisted_8$1 = { class: "flex-1 min-w-0" };
256
256
  const _hoisted_9$1 = { class: "flex-shrink-0" };
257
257
  const _hoisted_10 = { key: 1 };
258
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
258
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
259
259
  __name: "MobileList",
260
260
  props: {
261
261
  items: {},
@@ -303,7 +303,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
303
303
  const hasEmptySlot = vue.computed(() => !!slots.empty);
304
304
  return (_ctx, _cache) => {
305
305
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
306
- __props.selectable && selectableItems.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$b, { key: 0 }, {
306
+ __props.selectable && selectableItems.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$d, { key: 0 }, {
307
307
  default: vue.withCtx(() => [
308
308
  vue.createElementVNode("div", _hoisted_2$4, [
309
309
  vue.createVNode(Checkbox_vue_vue_type_script_setup_true_lang._sfc_main, {
@@ -318,7 +318,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
318
318
  _: 1
319
319
  })) : vue.createCommentVNode("", true),
320
320
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item) => {
321
- return vue.openBlock(), vue.createBlock(_sfc_main$b, {
321
+ return vue.openBlock(), vue.createBlock(_sfc_main$d, {
322
322
  key: getKey(item),
323
323
  class: vue.normalizeClass(["hover:shadow-lg transition-all duration-200", {
324
324
  "ring-2 ring-primary": isSelected(item)
@@ -553,7 +553,7 @@ function useBreakpoints(breakpoints, options = {}) {
553
553
  }
554
554
  });
555
555
  }
556
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
556
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
557
557
  __name: "ResponsiveList",
558
558
  props: {
559
559
  items: {},
@@ -608,7 +608,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
608
608
  const isDesktop = vue.computed(() => breakpoints.greaterOrEqual(props.breakpoint).value);
609
609
  return (_ctx, _cache) => {
610
610
  return vue.openBlock(), vue.createElementBlock("div", null, [
611
- !isDesktop.value ? (vue.openBlock(), vue.createBlock(_sfc_main$9, {
611
+ !isDesktop.value ? (vue.openBlock(), vue.createBlock(_sfc_main$b, {
612
612
  key: 0,
613
613
  items: __props.items,
614
614
  "key-field": __props.keyField,
@@ -633,9 +633,9 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
633
633
  vue.renderSlot(_ctx.$slots, "empty")
634
634
  ]),
635
635
  _: 3
636
- }, 8, ["items", "key-field", "selectable", "selected-items", "selectable-filter"])) : (vue.openBlock(), vue.createBlock(_sfc_main$b, { key: 1 }, {
636
+ }, 8, ["items", "key-field", "selectable", "selected-items", "selectable-filter"])) : (vue.openBlock(), vue.createBlock(_sfc_main$d, { key: 1 }, {
637
637
  default: vue.withCtx(() => [
638
- vue.createVNode(_sfc_main$a, {
638
+ vue.createVNode(_sfc_main$c, {
639
639
  items: __props.items,
640
640
  properties: tableProperties.value,
641
641
  "key-field": __props.keyField,
@@ -697,7 +697,7 @@ const _hoisted_9 = {
697
697
  key: 1,
698
698
  class: "mt-1 text-sm text-red-600"
699
699
  };
700
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
700
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
701
701
  __name: "AutocompleteComponent",
702
702
  props: {
703
703
  modelValue: {},
@@ -906,7 +906,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
906
906
  };
907
907
  }
908
908
  });
909
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
909
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
910
910
  __name: "TableAction",
911
911
  props: {
912
912
  link: {},
@@ -975,7 +975,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
975
975
  };
976
976
  }
977
977
  });
978
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
978
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
979
979
  __name: "Button",
980
980
  props: {
981
981
  variant: { default: "primary" },
@@ -1071,7 +1071,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
1071
1071
  const _hoisted_1$4 = { class: "relative inline-block" };
1072
1072
  const _hoisted_2$2 = ["src", "alt"];
1073
1073
  const _hoisted_3 = { key: 1 };
1074
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
1074
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
1075
1075
  __name: "Avatar",
1076
1076
  props: {
1077
1077
  src: {},
@@ -1151,7 +1151,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
1151
1151
  });
1152
1152
  const _hoisted_1$3 = ["aria-selected", "disabled", "onClick"];
1153
1153
  const _hoisted_2$1 = { class: "mt-4" };
1154
- const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
1154
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
1155
1155
  __name: "Tabs",
1156
1156
  props: {
1157
1157
  tabs: {},
@@ -1227,7 +1227,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
1227
1227
  }
1228
1228
  });
1229
1229
  const _hoisted_1$2 = { role: "tabpanel" };
1230
- const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
1230
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
1231
1231
  __name: "TabPanel",
1232
1232
  props: {
1233
1233
  value: {}
@@ -1249,7 +1249,7 @@ const _hoisted_1$1 = {
1249
1249
  key: 2,
1250
1250
  class: "text-sm font-semibold"
1251
1251
  };
1252
- const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
1252
+ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
1253
1253
  __name: "Stepper",
1254
1254
  props: {
1255
1255
  steps: {},
@@ -1348,7 +1348,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
1348
1348
  });
1349
1349
  const _hoisted_1 = { class: "overflow-hidden" };
1350
1350
  const _hoisted_2 = { class: "space-y-4 p-6" };
1351
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
1351
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
1352
1352
  __name: "CollapsibleCard",
1353
1353
  props: {
1354
1354
  title: {},
@@ -1362,7 +1362,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
1362
1362
  isExpanded.value = !isExpanded.value;
1363
1363
  };
1364
1364
  return (_ctx, _cache) => {
1365
- return vue.openBlock(), vue.createBlock(_sfc_main$b, {
1365
+ return vue.openBlock(), vue.createBlock(_sfc_main$d, {
1366
1366
  title: __props.title,
1367
1367
  description: __props.description
1368
1368
  }, {
@@ -1405,16 +1405,176 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
1405
1405
  };
1406
1406
  }
1407
1407
  });
1408
- exports._sfc_main = _sfc_main$b;
1409
- exports._sfc_main$1 = _sfc_main$a;
1410
- exports._sfc_main$10 = _sfc_main$1;
1411
- exports._sfc_main$11 = _sfc_main;
1412
- exports._sfc_main$2 = _sfc_main$9;
1413
- exports._sfc_main$3 = _sfc_main$8;
1414
- exports._sfc_main$4 = _sfc_main$7;
1415
- exports._sfc_main$5 = _sfc_main$6;
1416
- exports._sfc_main$6 = _sfc_main$5;
1417
- exports._sfc_main$7 = _sfc_main$4;
1418
- exports._sfc_main$8 = _sfc_main$3;
1419
- exports._sfc_main$9 = _sfc_main$2;
1420
- //# sourceMappingURL=CollapsibleCard.vue_vue_type_script_setup_true_lang-ClNZxjzF.cjs.map
1408
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
1409
+ __name: "Tooltip",
1410
+ props: {
1411
+ content: {},
1412
+ position: { default: "top" },
1413
+ delay: { default: 0 },
1414
+ disabled: { type: Boolean, default: false }
1415
+ },
1416
+ setup(__props) {
1417
+ const props = __props;
1418
+ const isVisible = vue.ref(false);
1419
+ let timeoutId = null;
1420
+ const show = () => {
1421
+ if (props.disabled) return;
1422
+ if (props.delay > 0) {
1423
+ timeoutId = setTimeout(() => {
1424
+ isVisible.value = true;
1425
+ }, props.delay);
1426
+ } else {
1427
+ isVisible.value = true;
1428
+ }
1429
+ };
1430
+ const hide = () => {
1431
+ if (timeoutId) {
1432
+ clearTimeout(timeoutId);
1433
+ timeoutId = null;
1434
+ }
1435
+ isVisible.value = false;
1436
+ };
1437
+ const positionClasses = vue.computed(() => {
1438
+ const base = "absolute z-50 px-2 py-1 text-xs font-medium text-white bg-gray-900 rounded shadow-lg whitespace-nowrap dark:bg-gray-700";
1439
+ const arrow = "after:absolute after:border-4 after:border-transparent";
1440
+ switch (props.position) {
1441
+ case "top":
1442
+ return `${base} ${arrow} bottom-full left-1/2 -translate-x-1/2 mb-2 after:top-full after:left-1/2 after:-translate-x-1/2 after:border-t-gray-900 dark:after:border-t-gray-700`;
1443
+ case "bottom":
1444
+ return `${base} ${arrow} top-full left-1/2 -translate-x-1/2 mt-2 after:bottom-full after:left-1/2 after:-translate-x-1/2 after:border-b-gray-900 dark:after:border-b-gray-700`;
1445
+ case "left":
1446
+ return `${base} ${arrow} right-full top-1/2 -translate-y-1/2 mr-2 after:left-full after:top-1/2 after:-translate-y-1/2 after:border-l-gray-900 dark:after:border-l-gray-700`;
1447
+ case "right":
1448
+ return `${base} ${arrow} left-full top-1/2 -translate-y-1/2 ml-2 after:right-full after:top-1/2 after:-translate-y-1/2 after:border-r-gray-900 dark:after:border-r-gray-700`;
1449
+ default:
1450
+ return base;
1451
+ }
1452
+ });
1453
+ return (_ctx, _cache) => {
1454
+ return vue.openBlock(), vue.createElementBlock("div", {
1455
+ class: "relative inline-block",
1456
+ onMouseenter: show,
1457
+ onMouseleave: hide,
1458
+ onFocus: show,
1459
+ onBlur: hide
1460
+ }, [
1461
+ vue.renderSlot(_ctx.$slots, "default"),
1462
+ vue.createVNode(vue.Transition, {
1463
+ "enter-active-class": "transition duration-150 ease-out",
1464
+ "enter-from-class": "opacity-0 scale-95",
1465
+ "enter-to-class": "opacity-100 scale-100",
1466
+ "leave-active-class": "transition duration-100 ease-in",
1467
+ "leave-from-class": "opacity-100 scale-100",
1468
+ "leave-to-class": "opacity-0 scale-95"
1469
+ }, {
1470
+ default: vue.withCtx(() => [
1471
+ isVisible.value && __props.content ? (vue.openBlock(), vue.createElementBlock("div", {
1472
+ key: 0,
1473
+ class: vue.normalizeClass(positionClasses.value),
1474
+ role: "tooltip"
1475
+ }, vue.toDisplayString(__props.content), 3)) : vue.createCommentVNode("", true)
1476
+ ]),
1477
+ _: 1
1478
+ })
1479
+ ], 32);
1480
+ };
1481
+ }
1482
+ });
1483
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
1484
+ __name: "Popover",
1485
+ props: {
1486
+ position: { default: "bottom" },
1487
+ hover: { type: Boolean, default: false },
1488
+ teleport: { type: Boolean, default: true },
1489
+ width: { default: "auto" }
1490
+ },
1491
+ setup(__props) {
1492
+ const props = __props;
1493
+ const triggerRef = vue.ref();
1494
+ const popoverRef = vue.ref();
1495
+ const { isOpen, dropdownStyle, toggle, close, open } = useDropdown.useDropdown(triggerRef, popoverRef, {
1496
+ teleport: props.teleport,
1497
+ gap: 8
1498
+ });
1499
+ const handleTrigger = () => {
1500
+ if (!props.hover) {
1501
+ toggle();
1502
+ }
1503
+ };
1504
+ const handleMouseEnter = () => {
1505
+ if (props.hover) {
1506
+ open();
1507
+ }
1508
+ };
1509
+ const handleMouseLeave = () => {
1510
+ if (props.hover) {
1511
+ close();
1512
+ }
1513
+ };
1514
+ const widthClasses = {
1515
+ auto: "w-auto min-w-[12rem]",
1516
+ sm: "w-48",
1517
+ md: "w-64",
1518
+ lg: "w-80"
1519
+ };
1520
+ return (_ctx, _cache) => {
1521
+ return vue.openBlock(), vue.createElementBlock("div", {
1522
+ class: "relative inline-block",
1523
+ onMouseenter: handleMouseEnter,
1524
+ onMouseleave: handleMouseLeave
1525
+ }, [
1526
+ vue.createElementVNode("div", {
1527
+ ref_key: "triggerRef",
1528
+ ref: triggerRef,
1529
+ onClick: handleTrigger
1530
+ }, [
1531
+ vue.renderSlot(_ctx.$slots, "trigger")
1532
+ ], 512),
1533
+ (vue.openBlock(), vue.createBlock(vue.Teleport, {
1534
+ to: "body",
1535
+ disabled: !__props.teleport
1536
+ }, [
1537
+ vue.createVNode(vue.Transition, {
1538
+ "enter-active-class": "transition duration-150 ease-out",
1539
+ "enter-from-class": "opacity-0 scale-95",
1540
+ "enter-to-class": "opacity-100 scale-100",
1541
+ "leave-active-class": "transition duration-100 ease-in",
1542
+ "leave-from-class": "opacity-100 scale-100",
1543
+ "leave-to-class": "opacity-0 scale-95"
1544
+ }, {
1545
+ default: vue.withCtx(() => [
1546
+ vue.unref(isOpen) ? (vue.openBlock(), vue.createElementBlock("div", {
1547
+ key: 0,
1548
+ ref_key: "popoverRef",
1549
+ ref: popoverRef,
1550
+ style: vue.normalizeStyle(vue.unref(dropdownStyle)),
1551
+ class: vue.normalizeClass([
1552
+ "z-[9999] rounded-lg border border-gray-200 bg-white p-4 shadow-lg dark:border-gray-700 dark:bg-gray-800",
1553
+ widthClasses[__props.width]
1554
+ ])
1555
+ }, [
1556
+ vue.renderSlot(_ctx.$slots, "default", { close: vue.unref(close) })
1557
+ ], 6)) : vue.createCommentVNode("", true)
1558
+ ]),
1559
+ _: 3
1560
+ })
1561
+ ], 8, ["disabled"]))
1562
+ ], 32);
1563
+ };
1564
+ }
1565
+ });
1566
+ exports._sfc_main = _sfc_main$d;
1567
+ exports._sfc_main$1 = _sfc_main$c;
1568
+ exports._sfc_main$10 = _sfc_main$3;
1569
+ exports._sfc_main$11 = _sfc_main$2;
1570
+ exports._sfc_main$12 = _sfc_main$1;
1571
+ exports._sfc_main$13 = _sfc_main;
1572
+ exports._sfc_main$2 = _sfc_main$b;
1573
+ exports._sfc_main$3 = _sfc_main$a;
1574
+ exports._sfc_main$4 = _sfc_main$9;
1575
+ exports._sfc_main$5 = _sfc_main$8;
1576
+ exports._sfc_main$6 = _sfc_main$7;
1577
+ exports._sfc_main$7 = _sfc_main$6;
1578
+ exports._sfc_main$8 = _sfc_main$5;
1579
+ exports._sfc_main$9 = _sfc_main$4;
1580
+ //# sourceMappingURL=Popover.vue_vue_type_script_setup_true_lang-dvlDTcf1.cjs.map