@lumen-stack/react 0.13.0 → 0.15.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.cjs +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/styles.css +48 -3
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -713,6 +713,24 @@
|
|
|
713
713
|
border-radius: 24px;
|
|
714
714
|
overflow: hidden;
|
|
715
715
|
box-shadow: var(--lumen-shadow-lg);
|
|
716
|
+
transition: width 0.28s var(--lumen-ease), height 0.28s var(--lumen-ease),
|
|
717
|
+
border-radius 0.28s var(--lumen-ease);
|
|
718
|
+
}
|
|
719
|
+
/* Expanded: blow the centered column up to the full viewport for a much
|
|
720
|
+
larger annotation canvas. */
|
|
721
|
+
.lumen-modal[data-lumen-fs="true"][data-lumen-expanded="true"] {
|
|
722
|
+
top: 0;
|
|
723
|
+
left: 0;
|
|
724
|
+
transform: none;
|
|
725
|
+
width: 100vw;
|
|
726
|
+
height: 100dvh;
|
|
727
|
+
max-height: none;
|
|
728
|
+
border-radius: 0;
|
|
729
|
+
}
|
|
730
|
+
.lumen-modal[data-lumen-fs="true"][data-lumen-expanded="true"]
|
|
731
|
+
.lumen-annotate-frame
|
|
732
|
+
canvas {
|
|
733
|
+
max-height: calc(100dvh - 322px);
|
|
716
734
|
}
|
|
717
735
|
}
|
|
718
736
|
.lumen-modal[data-lumen-fs="true"] .lumen-modal-grabber,
|
|
@@ -753,20 +771,42 @@
|
|
|
753
771
|
.lumen-modal[data-lumen-fs="true"] .lumen-annotate {
|
|
754
772
|
position: absolute;
|
|
755
773
|
inset: 0;
|
|
756
|
-
|
|
774
|
+
/* Mobile: the capture takes (almost) the full height and the compose sheet
|
|
775
|
+
overlaps its lower edge — drag the grabber to push the sheet down and see
|
|
776
|
+
the rest. Desktop restores a full reserve below (landscape fits with a
|
|
777
|
+
gap, no overlap needed). */
|
|
778
|
+
padding: calc(env(safe-area-inset-top, 0px) + 126px) 14px
|
|
779
|
+
calc(env(safe-area-inset-bottom, 0px) + 20px);
|
|
757
780
|
/* Theme-aware soft surround (harmonizes with the sheet — no harsh black):
|
|
758
781
|
light → soft grey, dark → slightly lifted dark. */
|
|
759
782
|
background: color-mix(in srgb, var(--lumen-fg) 8%, var(--lumen-bg));
|
|
760
783
|
place-items: center;
|
|
761
784
|
}
|
|
785
|
+
@media (min-width: 640px) {
|
|
786
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-annotate { padding-bottom: 192px; }
|
|
787
|
+
}
|
|
762
788
|
.lumen-modal[data-lumen-fs="true"] .lumen-annotate-frame {
|
|
763
789
|
max-width: 100%;
|
|
764
790
|
max-height: 100%;
|
|
765
791
|
border-radius: var(--lumen-r-lg);
|
|
766
792
|
box-shadow: 0 10px 36px -10px rgb(0 0 0 / 0.22), 0 0 0 0.5px rgb(0 0 0 / 0.07);
|
|
767
793
|
}
|
|
794
|
+
/* Bound the canvas to the SAME available height as the frame — the modal
|
|
795
|
+
minus the top chrome (126px) and the bottom compose sheet (192px) — so a
|
|
796
|
+
tall screenshot scales down (object-fit: contain) instead of overflowing
|
|
797
|
+
the frame and getting clipped. Mobile = full-bleed modal (100dvh); desktop
|
|
798
|
+
= the centred 88vh column (capped at the 940px modal). */
|
|
768
799
|
.lumen-modal[data-lumen-fs="true"] .lumen-annotate-frame canvas {
|
|
769
|
-
|
|
800
|
+
/* Mobile: nearly the full height — the sheet overlaps the lower edge. */
|
|
801
|
+
max-height: calc(
|
|
802
|
+
100dvh - 154px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)
|
|
803
|
+
);
|
|
804
|
+
}
|
|
805
|
+
@media (min-width: 640px) {
|
|
806
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-annotate-frame canvas {
|
|
807
|
+
/* Desktop: fit above the sheet (landscape captures, no overlap needed). */
|
|
808
|
+
max-height: min(calc(88vh - 322px), 618px);
|
|
809
|
+
}
|
|
770
810
|
}
|
|
771
811
|
/* floating top chrome: ✕ · method switch · Recapture (replaces the old
|
|
772
812
|
method-switch + cap-actions in the fullscreen capture surface) */
|
|
@@ -914,7 +954,12 @@
|
|
|
914
954
|
cursor: pointer;
|
|
915
955
|
}
|
|
916
956
|
.lumen-fs-chip svg { width: 15px; height: 15px; }
|
|
917
|
-
.lumen-fs-x { width: 38px; padding: 0; justify-content: center; font-size: 15px; }
|
|
957
|
+
.lumen-fs-x { width: 38px; padding: 0; justify-content: center; font-size: 15px; margin-right: auto; }
|
|
958
|
+
/* Expand toggle: icon-only chip, sits with Recapture on the right. Desktop
|
|
959
|
+
only — mobile is already full-bleed. */
|
|
960
|
+
.lumen-fs-expand { width: 38px; padding: 0; justify-content: center; }
|
|
961
|
+
.lumen-fs-expand[aria-pressed="true"] { background: var(--lumen-accent); }
|
|
962
|
+
@media (max-width: 639px) { .lumen-fs-expand { display: none; } }
|
|
918
963
|
.lumen-fs-mswitch {
|
|
919
964
|
display: inline-flex;
|
|
920
965
|
gap: 2px;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lumen-stack/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "React SDK for Lumen — screenshot capture, annotation, and feedback widget.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"react-dom": ">=18"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@lumen-stack/core": "^0.
|
|
42
|
+
"@lumen-stack/core": "^0.15.0",
|
|
43
43
|
"html2canvas-pro": "^1.5.8",
|
|
44
44
|
"sonner": "^1.7.1"
|
|
45
45
|
},
|