@lumen-stack/react 0.12.5 → 0.13.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 +569 -15
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -532,9 +532,12 @@
|
|
|
532
532
|
display: flex;
|
|
533
533
|
align-items: center;
|
|
534
534
|
gap: 8px;
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
535
|
+
margin: 12px 16px 0;
|
|
536
|
+
padding: 7px 10px;
|
|
537
|
+
border-radius: var(--lumen-r-lg);
|
|
538
|
+
border: 0.5px solid var(--lumen-border);
|
|
539
|
+
background: var(--lumen-bg-elev);
|
|
540
|
+
box-shadow: var(--lumen-shadow-sm);
|
|
538
541
|
flex-wrap: wrap;
|
|
539
542
|
flex-shrink: 0;
|
|
540
543
|
}
|
|
@@ -634,12 +637,7 @@
|
|
|
634
637
|
position: relative;
|
|
635
638
|
display: grid;
|
|
636
639
|
place-items: center;
|
|
637
|
-
background:
|
|
638
|
-
linear-gradient(45deg, var(--lumen-bg-elev) 25%, transparent 25%) -8px 0 / 16px 16px,
|
|
639
|
-
linear-gradient(-45deg, var(--lumen-bg-elev) 25%, transparent 25%) -8px 0 / 16px 16px,
|
|
640
|
-
linear-gradient(45deg, transparent 75%, var(--lumen-bg-elev) 75%) 0 8px / 16px 16px,
|
|
641
|
-
linear-gradient(-45deg, transparent 75%, var(--lumen-bg-elev) 75%) 0 8px / 16px 16px,
|
|
642
|
-
var(--lumen-bg);
|
|
640
|
+
background: transparent;
|
|
643
641
|
padding: 12px 16px;
|
|
644
642
|
flex-shrink: 0;
|
|
645
643
|
}
|
|
@@ -647,27 +645,28 @@
|
|
|
647
645
|
position: relative;
|
|
648
646
|
display: inline-block;
|
|
649
647
|
max-width: 100%;
|
|
650
|
-
max-height:
|
|
651
|
-
border-radius: var(--lumen-r-
|
|
648
|
+
max-height: 54dvh;
|
|
649
|
+
border-radius: var(--lumen-r-lg);
|
|
652
650
|
overflow: hidden;
|
|
653
|
-
box-shadow:
|
|
651
|
+
box-shadow: 0 1px 3px rgb(0 0 0 / 0.14), 0 18px 44px -12px rgb(0 0 0 / 0.4),
|
|
652
|
+
0 0 0 0.5px var(--lumen-border);
|
|
654
653
|
line-height: 0;
|
|
655
654
|
}
|
|
656
655
|
@media (min-width: 640px) {
|
|
657
|
-
.lumen-annotate-frame { max-height:
|
|
656
|
+
.lumen-annotate-frame { max-height: 60dvh; }
|
|
658
657
|
}
|
|
659
658
|
.lumen-annotate-frame canvas {
|
|
660
659
|
display: block;
|
|
661
660
|
/* Base canvas dictates the rendered box; constrain by both axes so
|
|
662
661
|
* tall screenshots scale down preserving aspect without nested scroll. */
|
|
663
662
|
max-width: 100%;
|
|
664
|
-
max-height:
|
|
663
|
+
max-height: 54dvh;
|
|
665
664
|
width: auto;
|
|
666
665
|
height: auto;
|
|
667
666
|
object-fit: contain;
|
|
668
667
|
}
|
|
669
668
|
@media (min-width: 640px) {
|
|
670
|
-
.lumen-annotate-frame canvas { max-height:
|
|
669
|
+
.lumen-annotate-frame canvas { max-height: 60dvh; }
|
|
671
670
|
}
|
|
672
671
|
.lumen-annotate-overlay {
|
|
673
672
|
/* Absolute over the base canvas instead of CSS-grid stacking. iOS
|
|
@@ -687,6 +686,561 @@
|
|
|
687
686
|
cursor: copy;
|
|
688
687
|
}
|
|
689
688
|
|
|
689
|
+
/* ─── Stage 2a: fullscreen markup capture surface ────────────────────
|
|
690
|
+
When a capture is ready, the modal goes fullscreen: the screenshot sits
|
|
691
|
+
large in a dark surround (the frame still wraps the canvas so the
|
|
692
|
+
annotation overlay stays pixel-aligned) and the chrome floats over it. */
|
|
693
|
+
.lumen-modal[data-lumen-fs="true"] {
|
|
694
|
+
position: fixed;
|
|
695
|
+
inset: 0;
|
|
696
|
+
width: 100%;
|
|
697
|
+
height: 100%;
|
|
698
|
+
max-width: none;
|
|
699
|
+
max-height: none;
|
|
700
|
+
border-radius: 0;
|
|
701
|
+
}
|
|
702
|
+
/* Desktop: the fullscreen markup is a mobile pattern — center it as a phone-like
|
|
703
|
+
column over the dimmed backdrop instead of stretching edge-to-edge. */
|
|
704
|
+
@media (min-width: 640px) {
|
|
705
|
+
.lumen-modal[data-lumen-fs="true"] {
|
|
706
|
+
inset: auto;
|
|
707
|
+
top: 50%;
|
|
708
|
+
left: 50%;
|
|
709
|
+
transform: translate(-50%, -50%);
|
|
710
|
+
width: min(820px, 92vw);
|
|
711
|
+
height: 88vh;
|
|
712
|
+
max-height: 940px;
|
|
713
|
+
border-radius: 24px;
|
|
714
|
+
overflow: hidden;
|
|
715
|
+
box-shadow: var(--lumen-shadow-lg);
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-modal-grabber,
|
|
719
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-modal-header,
|
|
720
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-stepper,
|
|
721
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-cap-note,
|
|
722
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-modal-footer {
|
|
723
|
+
display: none;
|
|
724
|
+
}
|
|
725
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-modal-body {
|
|
726
|
+
padding: 0;
|
|
727
|
+
position: relative;
|
|
728
|
+
overflow: hidden;
|
|
729
|
+
/* soft surround behind the pre-capture states (record/upload/capturing),
|
|
730
|
+
matching the annotate surround so there's no jump to the markup view */
|
|
731
|
+
background: color-mix(in srgb, var(--lumen-fg) 8%, var(--lumen-bg));
|
|
732
|
+
}
|
|
733
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-pane { position: absolute; inset: 0; }
|
|
734
|
+
/* record prompt / upload picker / "capturing…" centered on the surround */
|
|
735
|
+
.lumen-fs-center {
|
|
736
|
+
position: absolute;
|
|
737
|
+
inset: calc(env(safe-area-inset-top, 0px) + 116px) 20px 24px;
|
|
738
|
+
display: flex;
|
|
739
|
+
flex-direction: column;
|
|
740
|
+
align-items: center;
|
|
741
|
+
justify-content: center;
|
|
742
|
+
gap: 14px;
|
|
743
|
+
text-align: center;
|
|
744
|
+
}
|
|
745
|
+
.lumen-fs-center .lumen-manual-drop,
|
|
746
|
+
.lumen-fs-center .lumen-record-prompt { width: 100%; max-width: 360px; }
|
|
747
|
+
/* method picker (fallback when auto-capture is unavailable) on the surround */
|
|
748
|
+
.lumen-fs-picker { gap: 18px; }
|
|
749
|
+
.lumen-fs-picker-head { display: flex; flex-direction: column; gap: 5px; }
|
|
750
|
+
.lumen-fs-picker-title { font: 700 18px/1.25 var(--lumen-font-ui); color: var(--lumen-fg); }
|
|
751
|
+
.lumen-fs-picker-sub { font: 400 13.5px/1.4 var(--lumen-font-ui); color: var(--lumen-fg-muted); }
|
|
752
|
+
.lumen-fs-picker .lumen-method { width: 100%; max-width: 360px; padding: 0; }
|
|
753
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-annotate {
|
|
754
|
+
position: absolute;
|
|
755
|
+
inset: 0;
|
|
756
|
+
padding: calc(env(safe-area-inset-top, 0px) + 126px) 14px 192px;
|
|
757
|
+
/* Theme-aware soft surround (harmonizes with the sheet — no harsh black):
|
|
758
|
+
light → soft grey, dark → slightly lifted dark. */
|
|
759
|
+
background: color-mix(in srgb, var(--lumen-fg) 8%, var(--lumen-bg));
|
|
760
|
+
place-items: center;
|
|
761
|
+
}
|
|
762
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-annotate-frame {
|
|
763
|
+
max-width: 100%;
|
|
764
|
+
max-height: 100%;
|
|
765
|
+
border-radius: var(--lumen-r-lg);
|
|
766
|
+
box-shadow: 0 10px 36px -10px rgb(0 0 0 / 0.22), 0 0 0 0.5px rgb(0 0 0 / 0.07);
|
|
767
|
+
}
|
|
768
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-annotate-frame canvas {
|
|
769
|
+
max-height: calc(100dvh - 210px);
|
|
770
|
+
}
|
|
771
|
+
/* floating top chrome: ✕ · method switch · Recapture (replaces the old
|
|
772
|
+
method-switch + cap-actions in the fullscreen capture surface) */
|
|
773
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-cap-actions { display: none; }
|
|
774
|
+
.lumen-fs-top {
|
|
775
|
+
position: absolute;
|
|
776
|
+
top: 0;
|
|
777
|
+
left: 0;
|
|
778
|
+
right: 0;
|
|
779
|
+
z-index: 6;
|
|
780
|
+
display: flex;
|
|
781
|
+
flex-direction: column;
|
|
782
|
+
gap: 10px;
|
|
783
|
+
padding: calc(env(safe-area-inset-top, 0px) + 18px) 12px 14px;
|
|
784
|
+
background: transparent;
|
|
785
|
+
}
|
|
786
|
+
.lumen-fs-toprow { display: flex; align-items: center; gap: 8px; }
|
|
787
|
+
.lumen-fs-row-corners { justify-content: space-between; }
|
|
788
|
+
.lumen-fs-row-pill { justify-content: center; }
|
|
789
|
+
.lumen-fs-pill {
|
|
790
|
+
display: inline-flex;
|
|
791
|
+
align-items: center;
|
|
792
|
+
gap: 2px;
|
|
793
|
+
padding: 4px;
|
|
794
|
+
border-radius: 19px;
|
|
795
|
+
background: rgb(20 20 24 / 0.66);
|
|
796
|
+
backdrop-filter: blur(18px) saturate(150%);
|
|
797
|
+
-webkit-backdrop-filter: blur(18px) saturate(150%);
|
|
798
|
+
}
|
|
799
|
+
.lumen-fs-pill-btn {
|
|
800
|
+
width: 38px;
|
|
801
|
+
height: 30px;
|
|
802
|
+
border: 0;
|
|
803
|
+
background: transparent;
|
|
804
|
+
color: rgb(255 255 255 / 0.6);
|
|
805
|
+
border-radius: 15px;
|
|
806
|
+
display: grid;
|
|
807
|
+
place-items: center;
|
|
808
|
+
cursor: pointer;
|
|
809
|
+
}
|
|
810
|
+
.lumen-fs-pill-btn svg { width: 16px; height: 16px; }
|
|
811
|
+
.lumen-fs-pill-btn[aria-pressed="true"] { background: rgb(255 255 255 / 0.2); color: #fff; }
|
|
812
|
+
.lumen-fs-pill-btn.lumen-fs-pentog[data-on="true"] { background: var(--lumen-accent); color: #fff; }
|
|
813
|
+
.lumen-fs-pill-sep { width: 0.5px; height: 20px; background: rgb(255 255 255 / 0.22); margin: 0 3px; }
|
|
814
|
+
/* annotation colour: single swatch button → popover (declutters the palette) */
|
|
815
|
+
.lumen-fs-color { position: relative; display: inline-flex; align-items: center; }
|
|
816
|
+
.lumen-fs-color-btn {
|
|
817
|
+
width: 24px;
|
|
818
|
+
height: 24px;
|
|
819
|
+
border-radius: 50%;
|
|
820
|
+
border: 2px solid rgb(255 255 255 / 0.55);
|
|
821
|
+
padding: 0;
|
|
822
|
+
cursor: pointer;
|
|
823
|
+
background-clip: padding-box;
|
|
824
|
+
}
|
|
825
|
+
.lumen-fs-color-overlay { position: fixed; inset: 0; z-index: 7; }
|
|
826
|
+
.lumen-fs-color-pop {
|
|
827
|
+
position: absolute;
|
|
828
|
+
bottom: 42px;
|
|
829
|
+
left: 50%;
|
|
830
|
+
transform: translateX(-50%);
|
|
831
|
+
z-index: 8;
|
|
832
|
+
display: flex;
|
|
833
|
+
gap: 9px;
|
|
834
|
+
padding: 9px 11px;
|
|
835
|
+
border-radius: 14px;
|
|
836
|
+
background: rgb(26 26 30 / 0.98);
|
|
837
|
+
backdrop-filter: blur(20px) saturate(160%);
|
|
838
|
+
-webkit-backdrop-filter: blur(20px) saturate(160%);
|
|
839
|
+
border: 0.5px solid rgb(255 255 255 / 0.16);
|
|
840
|
+
box-shadow: 0 16px 40px rgb(0 0 0 / 0.5);
|
|
841
|
+
}
|
|
842
|
+
.lumen-fs-color-pop .lumen-swatch {
|
|
843
|
+
width: 26px;
|
|
844
|
+
height: 26px;
|
|
845
|
+
border-color: rgb(255 255 255 / 0.25);
|
|
846
|
+
}
|
|
847
|
+
.lumen-fs-color-pop .lumen-swatch[aria-pressed="true"] {
|
|
848
|
+
box-shadow: 0 0 0 2px rgb(26 26 30), 0 0 0 4px #fff;
|
|
849
|
+
}
|
|
850
|
+
.lumen-fs-recap { position: relative; }
|
|
851
|
+
.lumen-fs-recap-overlay { position: fixed; inset: 0; z-index: 7; }
|
|
852
|
+
.lumen-fs-recap-menu {
|
|
853
|
+
position: absolute;
|
|
854
|
+
right: 0;
|
|
855
|
+
top: 46px;
|
|
856
|
+
width: 252px;
|
|
857
|
+
z-index: 8;
|
|
858
|
+
padding: 6px;
|
|
859
|
+
border-radius: 14px;
|
|
860
|
+
background: rgb(26 26 30 / 0.98);
|
|
861
|
+
backdrop-filter: blur(20px) saturate(160%);
|
|
862
|
+
-webkit-backdrop-filter: blur(20px) saturate(160%);
|
|
863
|
+
border: 0.5px solid rgb(255 255 255 / 0.16);
|
|
864
|
+
box-shadow: 0 18px 44px rgb(0 0 0 / 0.5);
|
|
865
|
+
}
|
|
866
|
+
.lumen-fs-recap-menu button {
|
|
867
|
+
display: flex;
|
|
868
|
+
align-items: flex-start;
|
|
869
|
+
gap: 11px;
|
|
870
|
+
width: 100%;
|
|
871
|
+
padding: 9px 10px;
|
|
872
|
+
border: 0;
|
|
873
|
+
background: transparent;
|
|
874
|
+
border-radius: 9px;
|
|
875
|
+
cursor: pointer;
|
|
876
|
+
text-align: left;
|
|
877
|
+
}
|
|
878
|
+
.lumen-fs-recap-menu button:active { background: rgb(255 255 255 / 0.08); }
|
|
879
|
+
.lumen-fs-mi-ic {
|
|
880
|
+
width: 30px;
|
|
881
|
+
height: 30px;
|
|
882
|
+
flex: none;
|
|
883
|
+
border-radius: 8px;
|
|
884
|
+
background: rgb(255 255 255 / 0.1);
|
|
885
|
+
color: #fff;
|
|
886
|
+
display: grid;
|
|
887
|
+
place-items: center;
|
|
888
|
+
}
|
|
889
|
+
.lumen-fs-mi-ic svg { width: 16px; height: 16px; }
|
|
890
|
+
.lumen-fs-recap-menu b {
|
|
891
|
+
display: block;
|
|
892
|
+
font: 600 13px/1.2 var(--lumen-font-ui);
|
|
893
|
+
color: #fff;
|
|
894
|
+
}
|
|
895
|
+
.lumen-fs-recap-menu small {
|
|
896
|
+
display: block;
|
|
897
|
+
font: 400 11px/1.3 var(--lumen-font-ui);
|
|
898
|
+
color: rgb(255 255 255 / 0.55);
|
|
899
|
+
margin-top: 2px;
|
|
900
|
+
}
|
|
901
|
+
.lumen-fs-chip {
|
|
902
|
+
height: 38px;
|
|
903
|
+
padding: 0 14px;
|
|
904
|
+
border: 0;
|
|
905
|
+
border-radius: 19px;
|
|
906
|
+
background: rgb(20 20 24 / 0.66);
|
|
907
|
+
color: #fff;
|
|
908
|
+
backdrop-filter: blur(18px) saturate(150%);
|
|
909
|
+
-webkit-backdrop-filter: blur(18px) saturate(150%);
|
|
910
|
+
display: inline-flex;
|
|
911
|
+
align-items: center;
|
|
912
|
+
gap: 6px;
|
|
913
|
+
font: 600 14px/1 var(--lumen-font-ui);
|
|
914
|
+
cursor: pointer;
|
|
915
|
+
}
|
|
916
|
+
.lumen-fs-chip svg { width: 15px; height: 15px; }
|
|
917
|
+
.lumen-fs-x { width: 38px; padding: 0; justify-content: center; font-size: 15px; }
|
|
918
|
+
.lumen-fs-mswitch {
|
|
919
|
+
display: inline-flex;
|
|
920
|
+
gap: 2px;
|
|
921
|
+
padding: 4px;
|
|
922
|
+
border-radius: 19px;
|
|
923
|
+
background: rgb(20 20 24 / 0.66);
|
|
924
|
+
backdrop-filter: blur(18px) saturate(150%);
|
|
925
|
+
-webkit-backdrop-filter: blur(18px) saturate(150%);
|
|
926
|
+
}
|
|
927
|
+
.lumen-fs-mswitch button {
|
|
928
|
+
width: 38px;
|
|
929
|
+
height: 30px;
|
|
930
|
+
border: 0;
|
|
931
|
+
background: transparent;
|
|
932
|
+
color: rgb(255 255 255 / 0.6);
|
|
933
|
+
border-radius: 15px;
|
|
934
|
+
display: grid;
|
|
935
|
+
place-items: center;
|
|
936
|
+
cursor: pointer;
|
|
937
|
+
}
|
|
938
|
+
.lumen-fs-mswitch button[aria-pressed="true"] { background: rgb(255 255 255 / 0.2); color: #fff; }
|
|
939
|
+
.lumen-fs-mswitch svg { width: 16px; height: 16px; }
|
|
940
|
+
/* floating glass tool palette */
|
|
941
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-toolbar {
|
|
942
|
+
position: absolute;
|
|
943
|
+
left: 50%;
|
|
944
|
+
bottom: 168px;
|
|
945
|
+
transform: translateX(-50%);
|
|
946
|
+
z-index: 7;
|
|
947
|
+
margin: 0;
|
|
948
|
+
width: auto;
|
|
949
|
+
max-width: calc(100% - 20px);
|
|
950
|
+
justify-content: center;
|
|
951
|
+
flex-wrap: nowrap;
|
|
952
|
+
gap: 6px;
|
|
953
|
+
padding: 7px 9px;
|
|
954
|
+
background: rgb(20 20 24 / 0.82);
|
|
955
|
+
backdrop-filter: blur(22px) saturate(160%);
|
|
956
|
+
-webkit-backdrop-filter: blur(22px) saturate(160%);
|
|
957
|
+
border: 0;
|
|
958
|
+
box-shadow: 0 12px 32px rgb(0 0 0 / 0.45);
|
|
959
|
+
}
|
|
960
|
+
/* one-row palette: 4 colors, tight groups */
|
|
961
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-swatch:nth-child(n+5) { display: none; }
|
|
962
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-swatches { gap: 5px; }
|
|
963
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-segmented { gap: 1px; padding: 0; background: transparent; }
|
|
964
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-segmented,
|
|
965
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-stroke-sizes { background: rgb(255 255 255 / 0.1); border: 0; }
|
|
966
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-tool { color: rgb(255 255 255 / 0.7); padding: 7px; }
|
|
967
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-tool svg { width: 18px; height: 18px; display: block; }
|
|
968
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-tool[disabled] { opacity: 0.4; }
|
|
969
|
+
/* top-left group: ✕ + pen-toggle (show/hide tools) */
|
|
970
|
+
.lumen-fs-topl { display: flex; align-items: center; gap: 8px; }
|
|
971
|
+
.lumen-fs-pentog { width: 38px; padding: 0; justify-content: center; }
|
|
972
|
+
.lumen-fs-pentog[data-on="true"] { background: var(--lumen-accent); color: #fff; }
|
|
973
|
+
.lumen-fs-pentog svg { width: 17px; height: 17px; }
|
|
974
|
+
/* bottom compose: description + voice + Next (replaces the footer in fullscreen) */
|
|
975
|
+
.lumen-fs-compose {
|
|
976
|
+
position: absolute;
|
|
977
|
+
left: 0;
|
|
978
|
+
right: 0;
|
|
979
|
+
bottom: 0;
|
|
980
|
+
z-index: 6;
|
|
981
|
+
background: var(--lumen-bg);
|
|
982
|
+
border-radius: var(--lumen-r-lg) var(--lumen-r-lg) 0 0;
|
|
983
|
+
box-shadow: 0 -0.5px 0 var(--lumen-border), 0 -16px 40px rgb(0 0 0 / 0.4);
|
|
984
|
+
padding: 12px 16px calc(16px + var(--lumen-keyboard-inset, 0px));
|
|
985
|
+
display: flex;
|
|
986
|
+
flex-direction: column;
|
|
987
|
+
gap: 10px;
|
|
988
|
+
}
|
|
989
|
+
.lumen-fs-desc { width: 100%; }
|
|
990
|
+
.lumen-fs-next { height: 48px; }
|
|
991
|
+
.lumen-fs-compose .lumen-voice-capture { margin: 0; padding: 0; }
|
|
992
|
+
/* grabber to minimize the sheet */
|
|
993
|
+
.lumen-fs-grab {
|
|
994
|
+
display: block;
|
|
995
|
+
width: 100%;
|
|
996
|
+
height: 16px;
|
|
997
|
+
padding: 0;
|
|
998
|
+
border: 0;
|
|
999
|
+
background: transparent;
|
|
1000
|
+
cursor: pointer;
|
|
1001
|
+
position: relative;
|
|
1002
|
+
flex: none;
|
|
1003
|
+
margin-top: -4px;
|
|
1004
|
+
}
|
|
1005
|
+
.lumen-fs-grab::before {
|
|
1006
|
+
content: "";
|
|
1007
|
+
position: absolute;
|
|
1008
|
+
top: 4px;
|
|
1009
|
+
left: 50%;
|
|
1010
|
+
transform: translateX(-50%);
|
|
1011
|
+
width: 36px;
|
|
1012
|
+
height: 5px;
|
|
1013
|
+
border-radius: 3px;
|
|
1014
|
+
background: var(--lumen-border-strong);
|
|
1015
|
+
}
|
|
1016
|
+
/* compact voice: mic lives in the field; hide the big idle button + hint */
|
|
1017
|
+
.lumen-fs-field { position: relative; }
|
|
1018
|
+
.lumen-fs-field .lumen-fs-desc { padding-right: 46px; }
|
|
1019
|
+
.lumen-fs-mic {
|
|
1020
|
+
position: absolute;
|
|
1021
|
+
right: 6px;
|
|
1022
|
+
top: 50%;
|
|
1023
|
+
transform: translateY(-50%);
|
|
1024
|
+
width: 34px;
|
|
1025
|
+
height: 34px;
|
|
1026
|
+
border: 0;
|
|
1027
|
+
border-radius: 50%;
|
|
1028
|
+
display: grid;
|
|
1029
|
+
place-items: center;
|
|
1030
|
+
color: var(--lumen-accent);
|
|
1031
|
+
background: color-mix(in srgb, var(--lumen-accent) 14%, transparent);
|
|
1032
|
+
cursor: pointer;
|
|
1033
|
+
}
|
|
1034
|
+
.lumen-fs-mic svg { width: 17px; height: 17px; }
|
|
1035
|
+
.lumen-fs-compose .lumen-voice-capture-btn,
|
|
1036
|
+
.lumen-fs-compose .lumen-voice-capture-hint { display: none; }
|
|
1037
|
+
/* collapse the sheet down to reveal the full capture */
|
|
1038
|
+
.lumen-fs-compose { transition: transform 0.32s var(--lumen-ease); }
|
|
1039
|
+
.lumen-modal[data-lumen-sheet="down"] .lumen-fs-compose {
|
|
1040
|
+
transform: translateY(calc(100% - 26px));
|
|
1041
|
+
}
|
|
1042
|
+
/* Minimizing the sheet must NOT hide the tool palette — only the pen-toggle
|
|
1043
|
+
(toolsHidden) controls that. */
|
|
1044
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-tool[aria-pressed="true"] {
|
|
1045
|
+
background: var(--lumen-accent);
|
|
1046
|
+
color: #fff;
|
|
1047
|
+
box-shadow: none;
|
|
1048
|
+
}
|
|
1049
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-toolbar .lumen-btn-ghost { color: rgb(255 255 255 / 0.85); }
|
|
1050
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-toolbar-sep { background: rgb(255 255 255 / 0.2); }
|
|
1051
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-stroke-size-dot { background: #fff; }
|
|
1052
|
+
/* footer = bottom action bar over the screen */
|
|
1053
|
+
.lumen-modal[data-lumen-fs="true"] .lumen-modal-footer {
|
|
1054
|
+
position: absolute;
|
|
1055
|
+
left: 0;
|
|
1056
|
+
right: 0;
|
|
1057
|
+
bottom: 0;
|
|
1058
|
+
z-index: 5;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
/* ─── Review & send detent (step 2) — a taller sheet that rises over the
|
|
1062
|
+
dimmed, annotated capture; editable priority/platform/description → Send ── */
|
|
1063
|
+
.lumen-rv-pane { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
|
|
1064
|
+
.lumen-rv-pane > .lumen-rv { pointer-events: auto; }
|
|
1065
|
+
/* On the review step the shared AnnotationLayer is still mounted behind the
|
|
1066
|
+
panel — anchor it to the top so it peeks above the sheet, and freeze it
|
|
1067
|
+
(no accidental drawing while reviewing). */
|
|
1068
|
+
.lumen-modal[data-lumen-review="true"] .lumen-annotate {
|
|
1069
|
+
padding: calc(env(safe-area-inset-top, 0px) + 22px) 14px 0;
|
|
1070
|
+
align-items: start;
|
|
1071
|
+
pointer-events: none;
|
|
1072
|
+
}
|
|
1073
|
+
.lumen-rv-scrim { position: absolute; inset: 0; background: rgb(8 10 18 / 0.5); }
|
|
1074
|
+
.lumen-rv {
|
|
1075
|
+
position: absolute;
|
|
1076
|
+
left: 0;
|
|
1077
|
+
right: 0;
|
|
1078
|
+
bottom: 0;
|
|
1079
|
+
z-index: 6;
|
|
1080
|
+
max-height: 80%;
|
|
1081
|
+
display: flex;
|
|
1082
|
+
flex-direction: column;
|
|
1083
|
+
background: var(--lumen-bg);
|
|
1084
|
+
border-radius: var(--lumen-r-lg) var(--lumen-r-lg) 0 0;
|
|
1085
|
+
box-shadow: 0 -0.5px 0 var(--lumen-border), 0 -16px 50px rgb(0 0 0 / 0.45);
|
|
1086
|
+
padding: 4px 16px calc(16px + var(--lumen-keyboard-inset, 0px));
|
|
1087
|
+
animation: lumen-rv-rise 0.34s var(--lumen-ease);
|
|
1088
|
+
}
|
|
1089
|
+
@keyframes lumen-rv-rise {
|
|
1090
|
+
from { transform: translateY(18px); opacity: 0; }
|
|
1091
|
+
to { transform: translateY(0); opacity: 1; }
|
|
1092
|
+
}
|
|
1093
|
+
.lumen-rv-head {
|
|
1094
|
+
flex: none;
|
|
1095
|
+
display: flex;
|
|
1096
|
+
align-items: center;
|
|
1097
|
+
justify-content: space-between;
|
|
1098
|
+
height: 46px;
|
|
1099
|
+
}
|
|
1100
|
+
.lumen-rv-back {
|
|
1101
|
+
display: inline-flex;
|
|
1102
|
+
align-items: center;
|
|
1103
|
+
gap: 1px;
|
|
1104
|
+
border: 0;
|
|
1105
|
+
background: transparent;
|
|
1106
|
+
cursor: pointer;
|
|
1107
|
+
color: var(--lumen-accent);
|
|
1108
|
+
font: 600 14px/1 var(--lumen-font-ui);
|
|
1109
|
+
padding: 6px 4px 6px 0;
|
|
1110
|
+
}
|
|
1111
|
+
.lumen-rv-back svg { width: 18px; height: 18px; }
|
|
1112
|
+
.lumen-rv-title { font: 600 15px/1 var(--lumen-font-ui); color: var(--lumen-fg); }
|
|
1113
|
+
.lumen-rv-spacer { width: 52px; }
|
|
1114
|
+
.lumen-rv-rows {
|
|
1115
|
+
flex: 1;
|
|
1116
|
+
min-height: 0;
|
|
1117
|
+
overflow-y: auto;
|
|
1118
|
+
-webkit-overflow-scrolling: touch;
|
|
1119
|
+
}
|
|
1120
|
+
.lumen-rv-set {
|
|
1121
|
+
display: flex;
|
|
1122
|
+
flex-direction: column;
|
|
1123
|
+
gap: 9px;
|
|
1124
|
+
padding: 12px 0;
|
|
1125
|
+
border-top: 0.5px solid var(--lumen-border);
|
|
1126
|
+
}
|
|
1127
|
+
.lumen-rv-set:first-child { border-top: 0; padding-top: 4px; }
|
|
1128
|
+
.lumen-rv-k {
|
|
1129
|
+
color: var(--lumen-fg-muted);
|
|
1130
|
+
font: 600 12.5px/1.3 var(--lumen-font-ui);
|
|
1131
|
+
}
|
|
1132
|
+
.lumen-rv-muted { color: var(--lumen-fg-muted); font-weight: 400; }
|
|
1133
|
+
.lumen-rv-desc {
|
|
1134
|
+
width: 100%;
|
|
1135
|
+
min-height: 52px;
|
|
1136
|
+
resize: none;
|
|
1137
|
+
font: 400 15px/1.4 var(--lumen-font-ui);
|
|
1138
|
+
}
|
|
1139
|
+
.lumen-rv-chips, .lumen-rv-prio { display: flex; gap: 7px; flex-wrap: wrap; }
|
|
1140
|
+
.lumen-rv-chip,
|
|
1141
|
+
.lumen-rv-prio-opt {
|
|
1142
|
+
display: inline-flex;
|
|
1143
|
+
align-items: center;
|
|
1144
|
+
gap: 7px;
|
|
1145
|
+
height: 34px;
|
|
1146
|
+
padding: 0 13px;
|
|
1147
|
+
border-radius: 9px;
|
|
1148
|
+
border: 1px solid var(--lumen-border);
|
|
1149
|
+
background: transparent;
|
|
1150
|
+
color: var(--lumen-fg);
|
|
1151
|
+
font: 600 13px/1 var(--lumen-font-ui);
|
|
1152
|
+
cursor: pointer;
|
|
1153
|
+
}
|
|
1154
|
+
.lumen-rv-chip[aria-pressed="true"],
|
|
1155
|
+
.lumen-rv-prio-opt[aria-pressed="true"] {
|
|
1156
|
+
border-color: var(--lumen-accent);
|
|
1157
|
+
background: color-mix(in srgb, var(--lumen-accent) 10%, transparent);
|
|
1158
|
+
color: var(--lumen-accent);
|
|
1159
|
+
}
|
|
1160
|
+
/* Linear-style priority glyphs */
|
|
1161
|
+
.lumen-pri-ic {
|
|
1162
|
+
display: inline-flex;
|
|
1163
|
+
align-items: flex-end;
|
|
1164
|
+
gap: 2px;
|
|
1165
|
+
height: 12px;
|
|
1166
|
+
color: var(--lumen-fg-muted);
|
|
1167
|
+
}
|
|
1168
|
+
.lumen-rv-prio-opt[aria-pressed="true"] .lumen-pri-ic { color: var(--lumen-accent); }
|
|
1169
|
+
.lumen-pri-bars i { width: 3px; border-radius: 1px; background: currentColor; opacity: 0.3; }
|
|
1170
|
+
.lumen-pri-bars i:nth-child(1) { height: 5px; }
|
|
1171
|
+
.lumen-pri-bars i:nth-child(2) { height: 8px; }
|
|
1172
|
+
.lumen-pri-bars i:nth-child(3) { height: 12px; }
|
|
1173
|
+
.lumen-pri-bars[data-level="1"] i:nth-child(1),
|
|
1174
|
+
.lumen-pri-bars[data-level="2"] i:nth-child(1),
|
|
1175
|
+
.lumen-pri-bars[data-level="2"] i:nth-child(2),
|
|
1176
|
+
.lumen-pri-bars[data-level="3"] i { opacity: 1; }
|
|
1177
|
+
.lumen-pri-urgent {
|
|
1178
|
+
width: 14px;
|
|
1179
|
+
height: 14px;
|
|
1180
|
+
border-radius: 4px;
|
|
1181
|
+
background: #f2994a;
|
|
1182
|
+
color: #fff;
|
|
1183
|
+
align-items: center;
|
|
1184
|
+
justify-content: center;
|
|
1185
|
+
font: 800 10px/1 var(--lumen-font-ui);
|
|
1186
|
+
}
|
|
1187
|
+
.lumen-rv-row {
|
|
1188
|
+
display: flex;
|
|
1189
|
+
align-items: center;
|
|
1190
|
+
justify-content: space-between;
|
|
1191
|
+
gap: 12px;
|
|
1192
|
+
padding: 11px 0;
|
|
1193
|
+
border-top: 0.5px solid var(--lumen-border);
|
|
1194
|
+
font: 400 13px/1.3 var(--lumen-font-ui);
|
|
1195
|
+
}
|
|
1196
|
+
.lumen-rv-rk { color: var(--lumen-fg-muted); font-weight: 600; }
|
|
1197
|
+
.lumen-rv-rv {
|
|
1198
|
+
color: var(--lumen-fg);
|
|
1199
|
+
display: inline-flex;
|
|
1200
|
+
align-items: center;
|
|
1201
|
+
gap: 8px;
|
|
1202
|
+
}
|
|
1203
|
+
.lumen-rv-rows .lumen-label { padding: 12px 0 0; border-top: 0.5px solid var(--lumen-border); }
|
|
1204
|
+
/* voice control reads as a neat bordered pill in the review (no oversized icon
|
|
1205
|
+
/ no text wrap) — matching the dashed "Attach a video" affordance */
|
|
1206
|
+
.lumen-rv-rows .lumen-audio-row .lumen-btn-ghost {
|
|
1207
|
+
display: inline-flex;
|
|
1208
|
+
align-items: center;
|
|
1209
|
+
gap: 7px;
|
|
1210
|
+
white-space: nowrap;
|
|
1211
|
+
height: 36px;
|
|
1212
|
+
padding: 0 14px;
|
|
1213
|
+
border: 1px solid var(--lumen-border);
|
|
1214
|
+
border-radius: 10px;
|
|
1215
|
+
}
|
|
1216
|
+
.lumen-rv-rows .lumen-audio-row .lumen-btn-ghost svg { width: 17px; height: 17px; flex: none; }
|
|
1217
|
+
.lumen-rv-attachrow { padding: 12px 0 2px; }
|
|
1218
|
+
.lumen-rv-attach {
|
|
1219
|
+
display: inline-flex;
|
|
1220
|
+
align-items: center;
|
|
1221
|
+
gap: 7px;
|
|
1222
|
+
height: 36px;
|
|
1223
|
+
padding: 0 13px;
|
|
1224
|
+
border-radius: 10px;
|
|
1225
|
+
border: 1px dashed color-mix(in srgb, var(--lumen-fg) 28%, transparent);
|
|
1226
|
+
background: transparent;
|
|
1227
|
+
color: var(--lumen-fg-muted);
|
|
1228
|
+
font: 600 13px/1 var(--lumen-font-ui);
|
|
1229
|
+
cursor: pointer;
|
|
1230
|
+
}
|
|
1231
|
+
.lumen-rv-attach svg { width: 15px; height: 15px; }
|
|
1232
|
+
.lumen-rv-attach input { display: none; }
|
|
1233
|
+
.lumen-rv-send {
|
|
1234
|
+
flex: none;
|
|
1235
|
+
height: 50px;
|
|
1236
|
+
margin-top: 12px;
|
|
1237
|
+
display: inline-flex;
|
|
1238
|
+
align-items: center;
|
|
1239
|
+
justify-content: center;
|
|
1240
|
+
gap: 9px;
|
|
1241
|
+
}
|
|
1242
|
+
.lumen-rv-send svg { width: 18px; height: 18px; }
|
|
1243
|
+
|
|
690
1244
|
/* ─── Comment / speech-bubble annotations (inline-editable, Figma-style) ── */
|
|
691
1245
|
.lumen-bubble-layer {
|
|
692
1246
|
position: absolute;
|