cisse-vue-ui 0.2.5 → 0.2.7
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 +67 -1
- package/dist/{CollapsibleCard.vue_vue_type_script_setup_true_lang-D_8YbCbl.cjs → CollapsibleCard.vue_vue_type_script_setup_true_lang-ClNZxjzF.cjs} +31 -94
- package/dist/CollapsibleCard.vue_vue_type_script_setup_true_lang-ClNZxjzF.cjs.map +1 -0
- package/dist/{CollapsibleCard.vue_vue_type_script_setup_true_lang-Cwn5A5CH.js → CollapsibleCard.vue_vue_type_script_setup_true_lang-Y1wvT4aS.js} +32 -95
- package/dist/CollapsibleCard.vue_vue_type_script_setup_true_lang-Y1wvT4aS.js.map +1 -0
- package/dist/{Dropdown.vue_vue_type_script_setup_true_lang-D65uMijW.js → Dropdown.vue_vue_type_script_setup_true_lang-B9DsCY8M.js} +26 -74
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-B9DsCY8M.js.map +1 -0
- package/dist/{Dropdown.vue_vue_type_script_setup_true_lang-H6wsySqi.cjs → Dropdown.vue_vue_type_script_setup_true_lang-nMP2OxXp.cjs} +25 -73
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-nMP2OxXp.cjs.map +1 -0
- package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-DoawksKc.cjs → PageLayout.vue_vue_type_script_setup_true_lang-Bnw5L-xO.cjs} +2 -2
- package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-DoawksKc.cjs.map → PageLayout.vue_vue_type_script_setup_true_lang-Bnw5L-xO.cjs.map} +1 -1
- package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-J1I-WjM-.js → PageLayout.vue_vue_type_script_setup_true_lang-D8uD3-Fe.js} +2 -2
- package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-J1I-WjM-.js.map → PageLayout.vue_vue_type_script_setup_true_lang-D8uD3-Fe.js.map} +1 -1
- package/dist/{Switch.vue_vue_type_script_setup_true_lang-C2_5u-HL.js → Switch.vue_vue_type_script_setup_true_lang-dRPxDu8I.js} +33 -103
- package/dist/Switch.vue_vue_type_script_setup_true_lang-dRPxDu8I.js.map +1 -0
- package/dist/{Switch.vue_vue_type_script_setup_true_lang-V-FtNcTd.cjs → Switch.vue_vue_type_script_setup_true_lang-wRTWorCd.cjs} +32 -102
- package/dist/Switch.vue_vue_type_script_setup_true_lang-wRTWorCd.cjs.map +1 -0
- package/dist/components/core/Dropdown.vue.d.ts +2 -4
- package/dist/components/core/TableComponent.vue.d.ts +18 -2
- package/dist/components/core/index.cjs +2 -2
- package/dist/components/core/index.js +2 -2
- package/dist/components/form/index.cjs +1 -1
- package/dist/components/form/index.js +1 -1
- package/dist/components/index.cjs +4 -4
- package/dist/components/index.js +4 -4
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +1 -1
- package/dist/composables/index.cjs +8 -4
- package/dist/composables/index.cjs.map +1 -1
- package/dist/composables/index.d.ts +2 -0
- package/dist/composables/index.js +5 -1
- package/dist/composables/index.js.map +1 -1
- package/dist/composables/useDropdown.d.ts +51 -0
- package/dist/composables/useModal.d.ts +60 -0
- package/dist/{index-9hTVj6LT.cjs → index-CCWZb44b.cjs} +5 -5
- package/dist/index-CCWZb44b.cjs.map +1 -0
- package/dist/{index-CWhT0eYI.js → index-RD8wq3O6.js} +5 -5
- package/dist/index-RD8wq3O6.js.map +1 -0
- package/dist/index.cjs +13 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/useDropdown-DHFnd259.cjs +130 -0
- package/dist/useDropdown-DHFnd259.cjs.map +1 -0
- package/dist/useDropdown-iVu14E6s.js +131 -0
- package/dist/useDropdown-iVu14E6s.js.map +1 -0
- package/dist/{useExportCSV-B9o9lJ3D.js → useModal-Aq8hn152.js} +40 -1
- package/dist/useModal-Aq8hn152.js.map +1 -0
- package/dist/{useExportCSV-BPC_hd25.cjs → useModal-DDF_ZS8C.cjs} +40 -1
- package/dist/useModal-DDF_ZS8C.cjs.map +1 -0
- package/package.json +1 -1
- package/dist/CollapsibleCard.vue_vue_type_script_setup_true_lang-Cwn5A5CH.js.map +0 -1
- package/dist/CollapsibleCard.vue_vue_type_script_setup_true_lang-D_8YbCbl.cjs.map +0 -1
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-D65uMijW.js.map +0 -1
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-H6wsySqi.cjs.map +0 -1
- package/dist/Switch.vue_vue_type_script_setup_true_lang-C2_5u-HL.js.map +0 -1
- package/dist/Switch.vue_vue_type_script_setup_true_lang-V-FtNcTd.cjs.map +0 -1
- package/dist/index-9hTVj6LT.cjs.map +0 -1
- package/dist/index-CWhT0eYI.js.map +0 -1
- package/dist/useExportCSV-B9o9lJ3D.js.map +0 -1
- package/dist/useExportCSV-BPC_hd25.cjs.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { defineComponent, createElementBlock, openBlock, createCommentVNode, renderSlot, createElementVNode, createTextVNode, toDisplayString, useSlots, computed, createVNode, Fragment, renderList, normalizeClass, createBlock, resolveDynamicComponent, withCtx, onMounted, nextTick, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, watch, shallowRef, toValue, watchEffect, unref, createSlots, ref,
|
|
1
|
+
import { defineComponent, createElementBlock, openBlock, createCommentVNode, renderSlot, createElementVNode, createTextVNode, toDisplayString, useSlots, computed, createVNode, Fragment, renderList, normalizeClass, createBlock, resolveDynamicComponent, withCtx, onMounted, nextTick, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, watch, shallowRef, toValue, watchEffect, unref, createSlots, ref, withDirectives, vModelText, withModifiers, Teleport, Transition, normalizeStyle, resolveComponent, mergeProps, provide, vShow } from "vue";
|
|
2
2
|
import { _ as _sfc_main$c } from "./Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js";
|
|
3
3
|
import { e as _sfc_main$d, d as _sfc_main$e, c as _sfc_main$f, b as _sfc_main$g, a as _sfc_main$h } from "./BadgeType.vue_vue_type_script_setup_true_lang-CnB5eNEM.js";
|
|
4
4
|
import { Icon } from "@iconify/vue";
|
|
5
|
+
import { u as useDropdown } from "./useDropdown-iVu14E6s.js";
|
|
5
6
|
const _hoisted_1$8 = { class: "flex flex-col overflow-hidden rounded-lg bg-white shadow-md dark:bg-slate-950" };
|
|
6
7
|
const _hoisted_2$6 = {
|
|
7
8
|
key: 0,
|
|
@@ -82,9 +83,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
82
83
|
},
|
|
83
84
|
emits: ["select", "selectAll"],
|
|
84
85
|
setup(__props, { emit: __emit }) {
|
|
86
|
+
const slots = useSlots();
|
|
85
87
|
const props = __props;
|
|
86
88
|
const emit = __emit;
|
|
87
|
-
const slots = useSlots();
|
|
88
89
|
const typeComponents = {
|
|
89
90
|
text: _sfc_main$h,
|
|
90
91
|
number: _sfc_main$g,
|
|
@@ -712,13 +713,21 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
712
713
|
const props = __props;
|
|
713
714
|
const emit = __emit;
|
|
714
715
|
const searchQuery = ref("");
|
|
715
|
-
const isOpen = ref(false);
|
|
716
|
-
const highlightedIndex = ref(-1);
|
|
717
716
|
const inputRef = ref(null);
|
|
718
|
-
const dropdownRef = ref(null);
|
|
719
717
|
const containerRef = ref(null);
|
|
718
|
+
const dropdownRef = ref(null);
|
|
720
719
|
const inputWrapperRef = ref(null);
|
|
721
|
-
const
|
|
720
|
+
const {
|
|
721
|
+
isOpen,
|
|
722
|
+
highlightedIndex,
|
|
723
|
+
dropdownStyle,
|
|
724
|
+
open: openBase,
|
|
725
|
+
close: closeBase,
|
|
726
|
+
handleKeydown: baseHandleKeydown,
|
|
727
|
+
scrollToHighlighted
|
|
728
|
+
} = useDropdown(inputWrapperRef, dropdownRef, {
|
|
729
|
+
teleport: props.teleport
|
|
730
|
+
});
|
|
722
731
|
const filteredOptions = computed(() => {
|
|
723
732
|
if (!searchQuery.value) {
|
|
724
733
|
return props.options;
|
|
@@ -742,30 +751,19 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
742
751
|
},
|
|
743
752
|
{ immediate: true }
|
|
744
753
|
);
|
|
745
|
-
const updatePosition = () => {
|
|
746
|
-
if (!inputWrapperRef.value || !props.teleport) return;
|
|
747
|
-
const rect = inputWrapperRef.value.getBoundingClientRect();
|
|
748
|
-
dropdownPosition.value = {
|
|
749
|
-
top: rect.bottom + window.scrollY + 8,
|
|
750
|
-
left: rect.left + window.scrollX,
|
|
751
|
-
width: rect.width
|
|
752
|
-
};
|
|
753
|
-
};
|
|
754
754
|
const openDropdown = () => {
|
|
755
755
|
if (props.disabled) return;
|
|
756
|
-
isOpen.value = true;
|
|
757
756
|
searchQuery.value = "";
|
|
758
757
|
highlightedIndex.value = -1;
|
|
758
|
+
openBase();
|
|
759
759
|
nextTick(() => {
|
|
760
760
|
var _a;
|
|
761
761
|
(_a = inputRef.value) == null ? void 0 : _a.focus();
|
|
762
|
-
updatePosition();
|
|
763
762
|
});
|
|
764
763
|
};
|
|
765
764
|
const closeDropdown = () => {
|
|
766
|
-
|
|
765
|
+
closeBase();
|
|
767
766
|
searchQuery.value = selectedLabel.value;
|
|
768
|
-
highlightedIndex.value = -1;
|
|
769
767
|
};
|
|
770
768
|
const selectOption = (option) => {
|
|
771
769
|
emit("update:modelValue", option.value);
|
|
@@ -782,79 +780,18 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
782
780
|
});
|
|
783
781
|
};
|
|
784
782
|
const handleKeydown = (event) => {
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
highlightedIndex.value + 1,
|
|
791
|
-
filteredOptions.value.length - 1
|
|
792
|
-
);
|
|
793
|
-
scrollToHighlighted();
|
|
794
|
-
break;
|
|
795
|
-
case "ArrowUp":
|
|
796
|
-
event.preventDefault();
|
|
797
|
-
highlightedIndex.value = Math.max(highlightedIndex.value - 1, 0);
|
|
798
|
-
scrollToHighlighted();
|
|
799
|
-
break;
|
|
800
|
-
case "Enter":
|
|
801
|
-
event.preventDefault();
|
|
802
|
-
if (highlightedIndex.value >= 0 && filteredOptions.value[highlightedIndex.value]) {
|
|
803
|
-
selectOption(filteredOptions.value[highlightedIndex.value]);
|
|
804
|
-
}
|
|
805
|
-
break;
|
|
806
|
-
case "Escape":
|
|
807
|
-
event.preventDefault();
|
|
808
|
-
closeDropdown();
|
|
809
|
-
break;
|
|
810
|
-
}
|
|
811
|
-
};
|
|
812
|
-
const scrollToHighlighted = () => {
|
|
813
|
-
nextTick(() => {
|
|
814
|
-
if (dropdownRef.value) {
|
|
815
|
-
const highlightedElement = dropdownRef.value.querySelector(
|
|
816
|
-
`[data-index="${highlightedIndex.value}"]`
|
|
817
|
-
);
|
|
818
|
-
if (highlightedElement) {
|
|
819
|
-
highlightedElement.scrollIntoView({ block: "nearest" });
|
|
783
|
+
baseHandleKeydown(event, {
|
|
784
|
+
itemCount: filteredOptions.value.length,
|
|
785
|
+
onSelect: (index) => {
|
|
786
|
+
if (filteredOptions.value[index]) {
|
|
787
|
+
selectOption(filteredOptions.value[index]);
|
|
820
788
|
}
|
|
821
789
|
}
|
|
822
790
|
});
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
var _a, _b;
|
|
826
|
-
const target = event.target;
|
|
827
|
-
const isInsideContainer = (_a = containerRef.value) == null ? void 0 : _a.contains(target);
|
|
828
|
-
const isInsideDropdown = (_b = dropdownRef.value) == null ? void 0 : _b.contains(target);
|
|
829
|
-
if (!isInsideContainer && !isInsideDropdown) {
|
|
830
|
-
closeDropdown();
|
|
791
|
+
if (isOpen.value) {
|
|
792
|
+
scrollToHighlighted(dropdownRef.value);
|
|
831
793
|
}
|
|
832
794
|
};
|
|
833
|
-
watch(isOpen, (newValue) => {
|
|
834
|
-
if (newValue) {
|
|
835
|
-
document.addEventListener("click", handleClickOutside);
|
|
836
|
-
window.addEventListener("scroll", updatePosition, true);
|
|
837
|
-
window.addEventListener("resize", updatePosition);
|
|
838
|
-
} else {
|
|
839
|
-
document.removeEventListener("click", handleClickOutside);
|
|
840
|
-
window.removeEventListener("scroll", updatePosition, true);
|
|
841
|
-
window.removeEventListener("resize", updatePosition);
|
|
842
|
-
}
|
|
843
|
-
});
|
|
844
|
-
onUnmounted(() => {
|
|
845
|
-
document.removeEventListener("click", handleClickOutside);
|
|
846
|
-
window.removeEventListener("scroll", updatePosition, true);
|
|
847
|
-
window.removeEventListener("resize", updatePosition);
|
|
848
|
-
});
|
|
849
|
-
const dropdownStyle = computed(() => {
|
|
850
|
-
if (!props.teleport) return {};
|
|
851
|
-
return {
|
|
852
|
-
position: "absolute",
|
|
853
|
-
top: `${dropdownPosition.value.top}px`,
|
|
854
|
-
left: `${dropdownPosition.value.left}px`,
|
|
855
|
-
width: `${dropdownPosition.value.width}px`
|
|
856
|
-
};
|
|
857
|
-
});
|
|
858
795
|
return (_ctx, _cache) => {
|
|
859
796
|
return openBlock(), createElementBlock("div", {
|
|
860
797
|
ref_key: "containerRef",
|
|
@@ -868,8 +805,8 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
868
805
|
ref: inputWrapperRef,
|
|
869
806
|
class: normalizeClass([{
|
|
870
807
|
"border-red-500": __props.error,
|
|
871
|
-
"border-gray-300 dark:border-gray-600": !__props.error && !isOpen
|
|
872
|
-
"border-primary ring-2 ring-primary/20": isOpen
|
|
808
|
+
"border-gray-300 dark:border-gray-600": !__props.error && !unref(isOpen),
|
|
809
|
+
"border-primary ring-2 ring-primary/20": unref(isOpen),
|
|
873
810
|
"cursor-not-allowed opacity-50": __props.disabled
|
|
874
811
|
}, "flex items-center gap-2 rounded-lg border bg-white px-3 py-2 transition dark:bg-gray-800"])
|
|
875
812
|
}, [
|
|
@@ -905,10 +842,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
905
842
|
disabled: __props.disabled,
|
|
906
843
|
class: "rounded p-1 transition hover:bg-gray-100 dark:hover:bg-gray-700",
|
|
907
844
|
type: "button",
|
|
908
|
-
onClick: _cache[1] || (_cache[1] = withModifiers(($event) => isOpen
|
|
845
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(($event) => unref(isOpen) ? closeDropdown() : openDropdown(), ["stop"]))
|
|
909
846
|
}, [
|
|
910
847
|
createVNode(unref(Icon), {
|
|
911
|
-
class: normalizeClass([{ "rotate-180": isOpen
|
|
848
|
+
class: normalizeClass([{ "rotate-180": unref(isOpen) }, "size-4 text-gray-400 transition"]),
|
|
912
849
|
icon: "lucide:chevron-down"
|
|
913
850
|
}, null, 8, ["class"])
|
|
914
851
|
], 8, _hoisted_4)
|
|
@@ -926,11 +863,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
926
863
|
"leave-to-class": "opacity-0 scale-95"
|
|
927
864
|
}, {
|
|
928
865
|
default: withCtx(() => [
|
|
929
|
-
isOpen
|
|
866
|
+
unref(isOpen) ? (openBlock(), createElementBlock("div", {
|
|
930
867
|
key: 0,
|
|
931
868
|
ref_key: "dropdownRef",
|
|
932
869
|
ref: dropdownRef,
|
|
933
|
-
style: normalizeStyle(dropdownStyle
|
|
870
|
+
style: normalizeStyle(unref(dropdownStyle)),
|
|
934
871
|
class: normalizeClass([
|
|
935
872
|
"autocomplete-dropdown z-[9999] max-h-60 overflow-auto rounded-lg border border-gray-200 bg-white shadow-lg dark:border-gray-700 dark:bg-gray-800",
|
|
936
873
|
!__props.teleport && "absolute mt-2 w-full"
|
|
@@ -941,7 +878,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
941
878
|
return openBlock(), createElementBlock("button", {
|
|
942
879
|
key: option.value,
|
|
943
880
|
class: normalizeClass([{
|
|
944
|
-
"bg-gray-100 dark:bg-gray-700": highlightedIndex
|
|
881
|
+
"bg-gray-100 dark:bg-gray-700": unref(highlightedIndex) === index,
|
|
945
882
|
"bg-primary/10": __props.modelValue === option.value
|
|
946
883
|
}, "flex w-full items-center gap-2 px-4 py-2 text-left text-sm transition hover:bg-gray-100 dark:hover:bg-gray-700"]),
|
|
947
884
|
"data-index": index,
|
|
@@ -1481,4 +1418,4 @@ export {
|
|
|
1481
1418
|
_sfc_main$1 as j,
|
|
1482
1419
|
_sfc_main as k
|
|
1483
1420
|
};
|
|
1484
|
-
//# sourceMappingURL=CollapsibleCard.vue_vue_type_script_setup_true_lang-
|
|
1421
|
+
//# sourceMappingURL=CollapsibleCard.vue_vue_type_script_setup_true_lang-Y1wvT4aS.js.map
|