@kerkhoff-ict/solora 2.5.3 → 2.6.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/dist/index.css +107 -5
- package/dist/index.js +24 -8
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -798,11 +798,8 @@
|
|
|
798
798
|
}
|
|
799
799
|
.popover-content {
|
|
800
800
|
position: absolute;
|
|
801
|
-
top: 100%;
|
|
802
|
-
left: 0;
|
|
803
801
|
min-width: 10rem;
|
|
804
802
|
border-radius: 12px;
|
|
805
|
-
margin-top: 0.5rem;
|
|
806
803
|
overflow: hidden;
|
|
807
804
|
overflow-y: auto;
|
|
808
805
|
background: transparent;
|
|
@@ -811,13 +808,118 @@
|
|
|
811
808
|
-webkit-backdrop-filter: blur(12px);
|
|
812
809
|
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
|
|
813
810
|
opacity: 0;
|
|
814
|
-
transform: translateY(-10px) scale(0.95);
|
|
815
811
|
pointer-events: none;
|
|
816
812
|
transition: all 0.25s cubic-bezier(0.25, 0.8, 0.25, 1);
|
|
817
813
|
z-index: 1000;
|
|
818
|
-
padding: 0.5rem;
|
|
819
814
|
color: var(--color-text-dark, #000);
|
|
820
815
|
}
|
|
816
|
+
.popover.top-left .popover-content {
|
|
817
|
+
bottom: 100%;
|
|
818
|
+
right: 0;
|
|
819
|
+
margin: 0.5rem 0;
|
|
820
|
+
}
|
|
821
|
+
.popover.top-center .popover-content {
|
|
822
|
+
bottom: 100%;
|
|
823
|
+
right: 50%;
|
|
824
|
+
transform: translateX(50%) !important;
|
|
825
|
+
margin: 0.5rem 0;
|
|
826
|
+
}
|
|
827
|
+
.popover.top-right .popover-content {
|
|
828
|
+
bottom: 100%;
|
|
829
|
+
left: 0;
|
|
830
|
+
margin: 0.5rem 0;
|
|
831
|
+
}
|
|
832
|
+
.popover.bottom-left .popover-content {
|
|
833
|
+
top: 100%;
|
|
834
|
+
right: 0;
|
|
835
|
+
margin: 0.5rem 0;
|
|
836
|
+
}
|
|
837
|
+
.popover.bottom-center .popover-content {
|
|
838
|
+
top: 100%;
|
|
839
|
+
left: 50%;
|
|
840
|
+
transform: translateX(-50%) !important;
|
|
841
|
+
margin: 0.5rem 0;
|
|
842
|
+
}
|
|
843
|
+
.popover.bottom-right .popover-content {
|
|
844
|
+
top: 100%;
|
|
845
|
+
left: 0;
|
|
846
|
+
margin: 0.5rem 0;
|
|
847
|
+
}
|
|
848
|
+
.popover.left .popover-content {
|
|
849
|
+
right: 100%;
|
|
850
|
+
top: 50%;
|
|
851
|
+
transform: translateY(-50%) !important;
|
|
852
|
+
margin: 0 0.5rem;
|
|
853
|
+
}
|
|
854
|
+
.popover.right .popover-content {
|
|
855
|
+
left: 100%;
|
|
856
|
+
top: 50%;
|
|
857
|
+
transform: translateY(-50%) !important;
|
|
858
|
+
margin: 0 0.5rem;
|
|
859
|
+
}
|
|
860
|
+
.popover-header {
|
|
861
|
+
padding: 0.8rem 1rem;
|
|
862
|
+
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
|
863
|
+
margin-bottom: 0.2rem;
|
|
864
|
+
}
|
|
865
|
+
.popover-header h3 {
|
|
866
|
+
font-size: 0.75rem;
|
|
867
|
+
font-weight: 700;
|
|
868
|
+
text-transform: uppercase;
|
|
869
|
+
letter-spacing: 0.025em;
|
|
870
|
+
color: var(--color-text-dark, #000);
|
|
871
|
+
opacity: 0.4;
|
|
872
|
+
}
|
|
873
|
+
.popover-list {
|
|
874
|
+
display: flex;
|
|
875
|
+
flex-direction: column;
|
|
876
|
+
padding: 0.3rem;
|
|
877
|
+
}
|
|
878
|
+
.popover-item {
|
|
879
|
+
display: flex;
|
|
880
|
+
align-items: center;
|
|
881
|
+
gap: 0.6rem;
|
|
882
|
+
width: 100%;
|
|
883
|
+
padding: 0.5rem 0.7rem;
|
|
884
|
+
font-size: 0.9rem;
|
|
885
|
+
font-weight: 500;
|
|
886
|
+
color: var(--color-text-dark, #000);
|
|
887
|
+
border-radius: 8px;
|
|
888
|
+
transition: all 0.15s ease;
|
|
889
|
+
text-align: left;
|
|
890
|
+
background: transparent;
|
|
891
|
+
border: none;
|
|
892
|
+
cursor: pointer;
|
|
893
|
+
}
|
|
894
|
+
.popover-item:hover {
|
|
895
|
+
background: rgba(0, 0, 0, 0.04);
|
|
896
|
+
}
|
|
897
|
+
.popover-item.item-danger {
|
|
898
|
+
color: var(--color-danger, #ff453a);
|
|
899
|
+
}
|
|
900
|
+
.popover-item.item-danger:hover {
|
|
901
|
+
background: rgba(255, 69, 58, 0.1);
|
|
902
|
+
}
|
|
903
|
+
.popover-divider {
|
|
904
|
+
height: 1px;
|
|
905
|
+
background: rgba(0, 0, 0, 0.05);
|
|
906
|
+
margin: 0.3rem 0;
|
|
907
|
+
}
|
|
908
|
+
:root.dark .popover-header {
|
|
909
|
+
border-bottom-color: rgba(255, 255, 255, 0.1);
|
|
910
|
+
}
|
|
911
|
+
:root.dark .popover-header h3 {
|
|
912
|
+
color: var(--color-text-light, #fff);
|
|
913
|
+
}
|
|
914
|
+
:root.dark .popover-item {
|
|
915
|
+
color: var(--color-text-light, #fff);
|
|
916
|
+
}
|
|
917
|
+
:root.dark .popover-item:hover {
|
|
918
|
+
background: rgba(255, 255, 255, 0.08);
|
|
919
|
+
}
|
|
920
|
+
:root.dark .popover-divider {
|
|
921
|
+
background: rgba(255, 255, 255, 0.1);
|
|
922
|
+
}
|
|
821
923
|
.popover.sol-pop-w-16 {
|
|
822
924
|
width: 4rem;
|
|
823
925
|
}
|
package/dist/index.js
CHANGED
|
@@ -2323,22 +2323,38 @@ function initThemeToggle(elementSelector = ".sol-theme-toggle") {
|
|
|
2323
2323
|
// src/components/popover.js
|
|
2324
2324
|
function initPopovers() {
|
|
2325
2325
|
if (typeof window === "undefined") return;
|
|
2326
|
-
document.querySelectorAll(".popover")
|
|
2326
|
+
const allPopovers = document.querySelectorAll(".popover");
|
|
2327
|
+
allPopovers.forEach((pop) => {
|
|
2327
2328
|
if (pop.dataset.initialized) return;
|
|
2328
2329
|
pop.dataset.initialized = "true";
|
|
2329
2330
|
const content = pop.querySelector(".popover-content");
|
|
2330
2331
|
if (!content) return;
|
|
2331
|
-
const
|
|
2332
|
-
|
|
2333
|
-
|
|
2332
|
+
const closeAllOthers = () => {
|
|
2333
|
+
allPopovers.forEach((p) => {
|
|
2334
|
+
if (p !== pop) p.classList.remove("open");
|
|
2335
|
+
});
|
|
2336
|
+
};
|
|
2337
|
+
const toggle = (e) => {
|
|
2334
2338
|
e.stopPropagation();
|
|
2335
|
-
|
|
2336
|
-
|
|
2339
|
+
const isOpen = pop.classList.contains("open");
|
|
2340
|
+
closeAllOthers();
|
|
2341
|
+
if (!isOpen) {
|
|
2342
|
+
pop.classList.add("open");
|
|
2343
|
+
} else {
|
|
2344
|
+
pop.classList.remove("open");
|
|
2345
|
+
}
|
|
2346
|
+
};
|
|
2347
|
+
const trigger = pop.querySelector(".popover-btn") || pop.querySelector("input") || pop;
|
|
2348
|
+
trigger.addEventListener("click", toggle);
|
|
2337
2349
|
document.addEventListener("click", (e) => {
|
|
2338
|
-
if (!pop.contains(e.target))
|
|
2350
|
+
if (!pop.contains(e.target)) {
|
|
2351
|
+
pop.classList.remove("open");
|
|
2352
|
+
}
|
|
2339
2353
|
});
|
|
2340
2354
|
document.addEventListener("keydown", (e) => {
|
|
2341
|
-
if (e.key === "Escape")
|
|
2355
|
+
if (e.key === "Escape") {
|
|
2356
|
+
pop.classList.remove("open");
|
|
2357
|
+
}
|
|
2342
2358
|
});
|
|
2343
2359
|
});
|
|
2344
2360
|
}
|