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.
- package/README.md +666 -664
- 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
- package/dist/DatePicker.vue_vue_type_script_setup_true_lang-DgGJ5-8v.js.map +1 -0
- package/dist/{Switch.vue_vue_type_script_setup_true_lang-wRTWorCd.cjs → DatePicker.vue_vue_type_script_setup_true_lang-qux1VNn0.cjs} +371 -59
- package/dist/DatePicker.vue_vue_type_script_setup_true_lang-qux1VNn0.cjs.map +1 -0
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-B9DsCY8M.js.map +1 -1
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-nMP2OxXp.cjs.map +1 -1
- package/dist/PageLayout.vue_vue_type_script_setup_true_lang-Bnw5L-xO.cjs.map +1 -1
- package/dist/PageLayout.vue_vue_type_script_setup_true_lang-D8uD3-Fe.js.map +1 -1
- package/dist/{CollapsibleCard.vue_vue_type_script_setup_true_lang-Y1wvT4aS.js → Popover.vue_vue_type_script_setup_true_lang-Q7gRZsT9.js} +203 -43
- package/dist/Popover.vue_vue_type_script_setup_true_lang-Q7gRZsT9.js.map +1 -0
- package/dist/{CollapsibleCard.vue_vue_type_script_setup_true_lang-ClNZxjzF.cjs → Popover.vue_vue_type_script_setup_true_lang-dvlDTcf1.cjs} +191 -31
- package/dist/Popover.vue_vue_type_script_setup_true_lang-dvlDTcf1.cjs.map +1 -0
- package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-DzDK0MZi.cjs → Skeleton.vue_vue_type_script_setup_true_lang-D2S5g9s5.cjs} +313 -62
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-D2S5g9s5.cjs.map +1 -0
- package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-BBLBf32F.js → Skeleton.vue_vue_type_script_setup_true_lang-DRC4EADS.js} +314 -63
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-DRC4EADS.js.map +1 -0
- package/dist/_plugin-vue_export-helper-1tPrXgE0.js +11 -0
- package/dist/_plugin-vue_export-helper-1tPrXgE0.js.map +1 -0
- package/dist/_plugin-vue_export-helper-DM9IkUGy.cjs +10 -0
- package/dist/_plugin-vue_export-helper-DM9IkUGy.cjs.map +1 -0
- package/dist/cisse-vue-ui.css +83 -0
- package/dist/components/core/Avatar.stories.d.ts +12 -0
- package/dist/components/core/Button.stories.d.ts +18 -0
- package/dist/components/core/CardComponent.stories.d.ts +10 -0
- package/dist/components/core/CollapsibleCard.stories.d.ts +10 -0
- package/dist/components/core/Dropdown.stories.d.ts +11 -0
- package/dist/components/core/Popover.stories.d.ts +10 -0
- package/dist/components/core/Popover.vue.d.ts +42 -0
- package/dist/components/core/StatusBadge.stories.d.ts +13 -0
- package/dist/components/core/Stepper.stories.d.ts +12 -0
- package/dist/components/core/Tabs.stories.d.ts +10 -0
- package/dist/components/core/Tooltip.stories.d.ts +10 -0
- package/dist/components/core/Tooltip.vue.d.ts +32 -0
- package/dist/components/core/index.cjs +15 -13
- package/dist/components/core/index.cjs.map +1 -1
- package/dist/components/core/index.d.ts +4 -0
- package/dist/components/core/index.js +4 -2
- package/dist/components/feedback/Alert.stories.d.ts +13 -0
- package/dist/components/feedback/EmptyState.stories.d.ts +13 -0
- package/dist/components/feedback/LoadingSpinner.stories.d.ts +11 -0
- package/dist/components/feedback/Modal.stories.d.ts +11 -0
- package/dist/components/feedback/PaginationControls.stories.d.ts +12 -0
- package/dist/components/feedback/Progress.stories.d.ts +14 -0
- package/dist/components/feedback/Progress.vue.d.ts +30 -0
- package/dist/components/feedback/Skeleton.stories.d.ts +15 -0
- package/dist/components/feedback/Skeleton.vue.d.ts +19 -0
- package/dist/components/feedback/Toast.stories.d.ts +12 -0
- package/dist/components/feedback/Toast.vue.d.ts +23 -0
- package/dist/components/feedback/ToastContainer.vue.d.ts +22 -0
- package/dist/components/feedback/index.cjs +12 -8
- package/dist/components/feedback/index.cjs.map +1 -1
- package/dist/components/feedback/index.d.ts +8 -0
- package/dist/components/feedback/index.js +6 -2
- package/dist/components/form/Checkbox.stories.d.ts +13 -0
- package/dist/components/form/DatePicker.stories.d.ts +15 -0
- package/dist/components/form/DatePicker.vue.d.ts +34 -0
- package/dist/components/form/FormGroup.stories.d.ts +10 -0
- package/dist/components/form/FormInput.stories.d.ts +12 -0
- package/dist/components/form/FormSelect.stories.d.ts +11 -0
- package/dist/components/form/Slider.stories.d.ts +13 -0
- package/dist/components/form/Slider.vue.d.ts +29 -0
- package/dist/components/form/Switch.stories.d.ts +11 -0
- package/dist/components/form/index.cjs +10 -8
- package/dist/components/form/index.cjs.map +1 -1
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.js +3 -1
- package/dist/components/index.cjs +37 -29
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +12 -4
- package/dist/components/layout/BaseLayout.stories.d.ts +9 -0
- package/dist/components/layout/BaseLayout.vue.d.ts +1 -1
- package/dist/components/layout/PageLayout.stories.d.ts +10 -0
- package/dist/components/type/BadgeType.stories.d.ts +13 -0
- package/dist/components/type/BooleanType.stories.d.ts +12 -0
- package/dist/components/type/DateType.stories.d.ts +12 -0
- package/dist/components/type/NumberType.stories.d.ts +11 -0
- package/dist/components/type/TextType.stories.d.ts +10 -0
- package/dist/composables/index.cjs +7 -6
- package/dist/composables/index.cjs.map +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/index.js +3 -2
- package/dist/composables/useToast.d.ts +30 -0
- package/dist/index-BQtfDfYo.js +59 -0
- package/dist/index-BQtfDfYo.js.map +1 -0
- package/dist/index-CzzlUYhY.cjs +58 -0
- package/dist/index-CzzlUYhY.cjs.map +1 -0
- package/dist/index.cjs +45 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +15 -6
- package/dist/style.css +1 -1
- package/dist/useDropdown-DHFnd259.cjs.map +1 -1
- package/dist/useDropdown-iVu14E6s.js.map +1 -1
- package/dist/{useModal-Aq8hn152.js → useToast-DT9hFfpM.js} +49 -1
- package/dist/useToast-DT9hFfpM.js.map +1 -0
- package/dist/{useModal-DDF_ZS8C.cjs → useToast-nJXpFz_M.cjs} +49 -1
- package/dist/useToast-nJXpFz_M.cjs.map +1 -0
- package/package.json +21 -2
- package/dist/CollapsibleCard.vue_vue_type_script_setup_true_lang-ClNZxjzF.cjs.map +0 -1
- package/dist/CollapsibleCard.vue_vue_type_script_setup_true_lang-Y1wvT4aS.js.map +0 -1
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-BBLBf32F.js.map +0 -1
- package/dist/EmptyState.vue_vue_type_script_setup_true_lang-DzDK0MZi.cjs.map +0 -1
- package/dist/Switch.vue_vue_type_script_setup_true_lang-dRPxDu8I.js.map +0 -1
- package/dist/Switch.vue_vue_type_script_setup_true_lang-wRTWorCd.cjs.map +0 -1
- package/dist/index-BEUu6KNI.js +0 -51
- package/dist/index-BEUu6KNI.js.map +0 -1
- package/dist/index-DHo9Tbn4.cjs +0 -50
- package/dist/index-DHo9Tbn4.cjs.map +0 -1
- package/dist/useModal-Aq8hn152.js.map +0 -1
- 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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
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
|