@threadlabs/looma 0.9.2 → 0.10.1
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/components/shared/form-reset.js +21 -0
- package/components/ui-checkbox/ui-checkbox.html +17 -4
- package/components/ui-checkbox/ui-checkbox.js +9 -0
- package/components/ui-combobox/ui-combobox.html +23 -11
- package/components/ui-combobox/ui-combobox.js +31 -12
- package/components/ui-editable/ui-editable.html +3 -1
- package/components/ui-editable/ui-editable.js +7 -6
- package/components/ui-editor-toolbar/ui-editor-toolbar.html +70 -20
- package/components/ui-editor-toolbar/ui-editor-toolbar.js +24 -0
- package/components/ui-input/ui-input.html +2 -2
- package/components/ui-input/ui-input.js +5 -2
- package/components/ui-radio/ui-radio.html +3 -1
- package/components/ui-radio/ui-radio.js +11 -0
- package/components/ui-radio-group/ui-radio-group.html +7 -5
- package/components/ui-radio-group/ui-radio-group.js +16 -3
- package/components/ui-search-result-row/ui-search-result-row.html +3 -3
- package/components/ui-select/ui-select.html +3 -1
- package/components/ui-select/ui-select.js +5 -2
- package/components/ui-switch/ui-switch.html +7 -4
- package/components/ui-switch/ui-switch.js +9 -0
- package/components/ui-textarea/ui-textarea.html +2 -2
- package/components/ui-textarea/ui-textarea.js +5 -2
- package/components/ui-tree-item/ui-tree-item.html +2 -2
- package/dist/index.js +20 -19
- package/package.json +1 -1
- package/styles/ui-editor-toolbar.css +72 -18
- package/vanilla/UiCheckbox.d.ts +1 -0
- package/vanilla/UiCheckbox.js +7 -4
- package/vanilla/UiCombobox.js +113 -99
- package/vanilla/UiEditorToolbar.js +11 -6
- package/vanilla/UiRadioGroup.js +7 -1
- package/vanilla/UiSearchResultRow.js +4 -1
- package/vanilla/UiSwitch.d.ts +1 -0
- package/vanilla/UiSwitch.js +7 -4
- package/vue/UiCheckbox.d.ts +2 -0
- package/vue/UiCheckbox.vue +3 -0
- package/vue/UiCombobox.vue +27 -4
- package/vue/UiEditorToolbar.vue +90 -20
- package/vue/UiRadioGroup.vue +2 -0
- package/vue/UiSearchResultRow.vue +1 -0
- package/vue/UiSwitch.d.ts +2 -0
- package/vue/UiSwitch.vue +3 -0
- package/vue/chunks/UiCheckbox.js +4 -1
- package/vue/chunks/UiCombobox.js +67 -39
- package/vue/chunks/UiEditorToolbar.js +33 -4
- package/vue/chunks/UiRadioGroup.js +8 -2
- package/vue/chunks/UiSearchResultRow.js +7 -2
- package/vue/chunks/UiSwitch.js +4 -1
- package/vue/components.css +159 -115
package/vue/components.css
CHANGED
|
@@ -549,7 +549,7 @@
|
|
|
549
549
|
display: none;
|
|
550
550
|
}
|
|
551
551
|
|
|
552
|
-
[data-component~="ui-checkbox"][data-v-
|
|
552
|
+
[data-component~="ui-checkbox"][data-v-44d93832] {
|
|
553
553
|
display: inline-flex;
|
|
554
554
|
align-items: flex-start;
|
|
555
555
|
gap: var(--ui-checkbox-gap, var(--ui-space-2));
|
|
@@ -557,11 +557,11 @@
|
|
|
557
557
|
color: var(--ui-text-primary);
|
|
558
558
|
cursor: pointer;
|
|
559
559
|
}
|
|
560
|
-
.label[data-v-
|
|
560
|
+
.label[data-v-44d93832] {
|
|
561
561
|
min-inline-size: 0;
|
|
562
562
|
line-height: var(--ui-line-height-md);
|
|
563
563
|
}
|
|
564
|
-
input[data-v-
|
|
564
|
+
input[data-v-44d93832] {
|
|
565
565
|
appearance: none;
|
|
566
566
|
-webkit-appearance: none;
|
|
567
567
|
position: relative;
|
|
@@ -579,20 +579,20 @@ input[data-v-964081a0] {
|
|
|
579
579
|
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
580
580
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
581
581
|
}
|
|
582
|
-
input[data-v-
|
|
582
|
+
input[data-v-44d93832]::after {
|
|
583
583
|
content: "";
|
|
584
584
|
position: absolute;
|
|
585
585
|
opacity: 0;
|
|
586
586
|
}
|
|
587
|
-
input[data-v-
|
|
588
|
-
input[data-v-
|
|
587
|
+
input[data-v-44d93832]:checked,
|
|
588
|
+
input[data-v-44d93832]:indeterminate {
|
|
589
589
|
border-color: var(--ui-accent-solid);
|
|
590
590
|
background: var(--ui-accent-solid);
|
|
591
591
|
box-shadow: inset 0 1px 2px color-mix(in srgb, #000 16%, transparent);
|
|
592
592
|
}
|
|
593
593
|
|
|
594
594
|
/* Centre the tick's box, then lift it: a rotated L's ink sits ~0.11rem below its box centre. */
|
|
595
|
-
input[data-v-
|
|
595
|
+
input[data-v-44d93832]:checked::after {
|
|
596
596
|
inset: 0;
|
|
597
597
|
margin: auto;
|
|
598
598
|
inline-size: 0.32rem;
|
|
@@ -605,7 +605,7 @@ input[data-v-964081a0]:checked::after {
|
|
|
605
605
|
opacity: 1;
|
|
606
606
|
transform: translateY(-0.11rem) rotate(45deg);
|
|
607
607
|
}
|
|
608
|
-
input[data-v-
|
|
608
|
+
input[data-v-44d93832]:indeterminate::after {
|
|
609
609
|
inset: 50% 0.23rem auto;
|
|
610
610
|
block-size: 0.125rem;
|
|
611
611
|
border-radius: var(--ui-radius-round);
|
|
@@ -613,25 +613,25 @@ input[data-v-964081a0]:indeterminate::after {
|
|
|
613
613
|
opacity: 1;
|
|
614
614
|
transform: translateY(-50%);
|
|
615
615
|
}
|
|
616
|
-
input[data-v-
|
|
616
|
+
input[data-v-44d93832]:hover:enabled {
|
|
617
617
|
border-color: var(--ui-accent-solid);
|
|
618
618
|
}
|
|
619
|
-
input[data-v-
|
|
619
|
+
input[data-v-44d93832]:focus-visible {
|
|
620
620
|
outline: 2px solid var(--ui-focus-ring, var(--ui-accent-solid));
|
|
621
621
|
outline-offset: 2px;
|
|
622
622
|
}
|
|
623
|
-
[data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"][data-v-
|
|
623
|
+
[data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"][data-v-44d93832] {
|
|
624
624
|
color: var(--ui-text-muted);
|
|
625
625
|
cursor: not-allowed;
|
|
626
626
|
}
|
|
627
|
-
[data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input[data-v-
|
|
627
|
+
[data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input[data-v-44d93832] {
|
|
628
628
|
border-color: var(--ui-border-default);
|
|
629
629
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
630
630
|
cursor: not-allowed;
|
|
631
631
|
}
|
|
632
632
|
|
|
633
633
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
634
|
-
[data-component~="ui-checkbox"][hidden][data-v-
|
|
634
|
+
[data-component~="ui-checkbox"][hidden][data-v-44d93832] {
|
|
635
635
|
display: none;
|
|
636
636
|
}
|
|
637
637
|
|
|
@@ -770,27 +770,27 @@ input[data-v-964081a0]:focus-visible {
|
|
|
770
770
|
}
|
|
771
771
|
}
|
|
772
772
|
|
|
773
|
-
[data-component~="ui-combobox"][data-v-
|
|
773
|
+
[data-component~="ui-combobox"][data-v-cd33b9b7] {
|
|
774
774
|
display: grid;
|
|
775
775
|
gap: var(--ui-space-1);
|
|
776
776
|
min-inline-size: 0;
|
|
777
777
|
color: var(--ui-text-primary);
|
|
778
778
|
font: inherit;
|
|
779
779
|
}
|
|
780
|
-
label[data-v-
|
|
780
|
+
label[data-v-cd33b9b7] {
|
|
781
781
|
color: var(--ui-combobox-label-text, var(--ui-text-primary));
|
|
782
782
|
font-size: var(--ui-combobox-label-font-size, var(--ui-font-size-sm));
|
|
783
783
|
font-weight: 500;
|
|
784
784
|
}
|
|
785
785
|
/* The field and anything that annotates it sit on one row; the help button is beside the box,
|
|
786
786
|
not inside it, because a control's box holds its value. */
|
|
787
|
-
.control[data-v-
|
|
787
|
+
.control[data-v-cd33b9b7] {
|
|
788
788
|
display: flex;
|
|
789
789
|
align-items: center;
|
|
790
790
|
gap: var(--ui-space-2);
|
|
791
791
|
min-inline-size: 0;
|
|
792
792
|
}
|
|
793
|
-
.field[data-v-
|
|
793
|
+
.field[data-v-cd33b9b7] {
|
|
794
794
|
flex: 1 1 auto;
|
|
795
795
|
display: flex;
|
|
796
796
|
min-inline-size: 0;
|
|
@@ -802,14 +802,14 @@ label[data-v-3b8b0ecf] {
|
|
|
802
802
|
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
803
803
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
804
804
|
}
|
|
805
|
-
.field[data-v-
|
|
805
|
+
.field[data-v-cd33b9b7]:focus-within {
|
|
806
806
|
border-color: var(--ui-control-focus, var(--ui-accent-solid));
|
|
807
807
|
box-shadow:
|
|
808
808
|
var(--ui-control-inset),
|
|
809
809
|
var(--ui-control-focus-halo-shadow);
|
|
810
810
|
}
|
|
811
811
|
/* A ghost icon button: the affordance is the mark, not a box around it. */
|
|
812
|
-
.help[data-v-
|
|
812
|
+
.help[data-v-cd33b9b7] {
|
|
813
813
|
flex: none;
|
|
814
814
|
display: inline-flex;
|
|
815
815
|
align-items: center;
|
|
@@ -826,28 +826,28 @@ label[data-v-3b8b0ecf] {
|
|
|
826
826
|
background-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
827
827
|
color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
828
828
|
}
|
|
829
|
-
.help[data-v-
|
|
830
|
-
.help[aria-expanded="true"][data-v-
|
|
829
|
+
.help[data-v-cd33b9b7]:hover:enabled,
|
|
830
|
+
.help[aria-expanded="true"][data-v-cd33b9b7] {
|
|
831
831
|
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
832
832
|
color: var(--ui-text-primary);
|
|
833
833
|
}
|
|
834
|
-
.help[data-v-
|
|
834
|
+
.help[data-v-cd33b9b7]:focus-visible {
|
|
835
835
|
outline: none;
|
|
836
836
|
box-shadow: var(--ui-focus-halo);
|
|
837
837
|
}
|
|
838
|
-
.help[data-v-
|
|
838
|
+
.help[data-v-cd33b9b7]:disabled {
|
|
839
839
|
color: var(--ui-disabled-text);
|
|
840
840
|
cursor: not-allowed;
|
|
841
841
|
}
|
|
842
|
-
.help-icon[data-v-
|
|
842
|
+
.help-icon[data-v-cd33b9b7] {
|
|
843
843
|
inline-size: var(--ui-icon-size-sm);
|
|
844
844
|
block-size: var(--ui-icon-size-sm);
|
|
845
845
|
}
|
|
846
|
-
input[data-v-
|
|
846
|
+
input[data-v-cd33b9b7]::selection {
|
|
847
847
|
background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
|
|
848
848
|
color: inherit;
|
|
849
849
|
}
|
|
850
|
-
input[data-v-
|
|
850
|
+
input[data-v-cd33b9b7] {
|
|
851
851
|
appearance: none;
|
|
852
852
|
width: 100%;
|
|
853
853
|
min-inline-size: 0;
|
|
@@ -863,11 +863,11 @@ input[data-v-3b8b0ecf] {
|
|
|
863
863
|
margin: 0;
|
|
864
864
|
outline: none;
|
|
865
865
|
}
|
|
866
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"] input[data-v-
|
|
866
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"] input[data-v-cd33b9b7] {
|
|
867
867
|
min-block-size: calc(var(--ui-control-size-sm) - 2px);
|
|
868
868
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
869
869
|
}
|
|
870
|
-
button[data-v-
|
|
870
|
+
button[data-v-cd33b9b7] {
|
|
871
871
|
appearance: none;
|
|
872
872
|
display: inline-grid;
|
|
873
873
|
place-items: center;
|
|
@@ -882,31 +882,31 @@ button[data-v-3b8b0ecf] {
|
|
|
882
882
|
padding: 0 var(--ui-space-1);
|
|
883
883
|
cursor: pointer;
|
|
884
884
|
}
|
|
885
|
-
.affordance-icon[data-v-
|
|
885
|
+
.affordance-icon[data-v-cd33b9b7] {
|
|
886
886
|
display: block;
|
|
887
887
|
inline-size: var(--ui-icon-size-sm);
|
|
888
888
|
block-size: var(--ui-icon-size-sm);
|
|
889
889
|
}
|
|
890
|
-
button[data-v-
|
|
890
|
+
button[data-v-cd33b9b7]:hover:enabled {
|
|
891
891
|
background: var(--ui-surface-muted);
|
|
892
892
|
color: var(--ui-text-primary);
|
|
893
893
|
}
|
|
894
|
-
button[data-v-
|
|
894
|
+
button[data-v-cd33b9b7]:focus-visible {
|
|
895
895
|
outline: none;
|
|
896
896
|
background: var(--ui-surface-muted);
|
|
897
897
|
box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
|
|
898
898
|
}
|
|
899
|
-
input[data-v-
|
|
899
|
+
input[data-v-cd33b9b7]:disabled, button[data-v-cd33b9b7]:disabled {
|
|
900
900
|
color: var(--ui-text-muted);
|
|
901
901
|
cursor: not-allowed;
|
|
902
902
|
}
|
|
903
|
-
.field[data-v-
|
|
903
|
+
.field[data-v-cd33b9b7]:has(input:disabled) {
|
|
904
904
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
905
905
|
}
|
|
906
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="validationStatus=error"] .field[data-v-
|
|
906
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="validationStatus=error"] .field[data-v-cd33b9b7] {
|
|
907
907
|
border-color: var(--ui-danger-solid, var(--ui-accent-active));
|
|
908
908
|
}
|
|
909
|
-
.popup[data-v-
|
|
909
|
+
.popup[data-v-cd33b9b7] {
|
|
910
910
|
box-sizing: border-box;
|
|
911
911
|
min-inline-size: 12rem;
|
|
912
912
|
max-inline-size: calc(100vw - 1rem);
|
|
@@ -920,40 +920,40 @@ input[data-v-3b8b0ecf]:disabled, button[data-v-3b8b0ecf]:disabled {
|
|
|
920
920
|
color: var(--ui-text-primary);
|
|
921
921
|
box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
|
|
922
922
|
}
|
|
923
|
-
[hidden][data-v-
|
|
923
|
+
[hidden][data-v-cd33b9b7] {
|
|
924
924
|
display: none;
|
|
925
925
|
}
|
|
926
|
-
.option[data-v-
|
|
926
|
+
.option[data-v-cd33b9b7] {
|
|
927
927
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
928
928
|
border-radius: var(--ui-radius-sm);
|
|
929
929
|
cursor: pointer;
|
|
930
930
|
overflow-wrap: anywhere;
|
|
931
931
|
}
|
|
932
|
-
.option[data-v-
|
|
932
|
+
.option[data-v-cd33b9b7]:hover, .option.active[data-v-cd33b9b7] {
|
|
933
933
|
background: var(--ui-surface-muted);
|
|
934
934
|
outline: 1px solid var(--ui-focus-ring);
|
|
935
935
|
outline-offset: -1px;
|
|
936
936
|
}
|
|
937
|
-
.option[aria-disabled="true"][data-v-
|
|
937
|
+
.option[aria-disabled="true"][data-v-cd33b9b7] {
|
|
938
938
|
color: var(--ui-text-muted);
|
|
939
939
|
cursor: not-allowed;
|
|
940
940
|
}
|
|
941
|
-
.primary[data-v-
|
|
941
|
+
.primary[data-v-cd33b9b7] {
|
|
942
942
|
display: block;
|
|
943
943
|
color: var(--ui-combobox-option-text, var(--ui-text-primary));
|
|
944
944
|
font-weight: 500;
|
|
945
945
|
}
|
|
946
|
-
.message[data-v-
|
|
946
|
+
.message[data-v-cd33b9b7], .group[data-v-cd33b9b7] {
|
|
947
947
|
color: var(--ui-combobox-message-text, var(--ui-text-secondary));
|
|
948
948
|
font-weight: 400;
|
|
949
949
|
font-size: var(--ui-font-size-sm);
|
|
950
950
|
line-height: var(--ui-line-height-md);
|
|
951
951
|
overflow-wrap: anywhere;
|
|
952
952
|
}
|
|
953
|
-
.group[data-v-
|
|
953
|
+
.group[data-v-cd33b9b7], .popup .message[data-v-cd33b9b7] {
|
|
954
954
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
955
955
|
}
|
|
956
|
-
.sr-only[data-v-
|
|
956
|
+
.sr-only[data-v-cd33b9b7] {
|
|
957
957
|
position: absolute;
|
|
958
958
|
inline-size: 1px;
|
|
959
959
|
block-size: 1px;
|
|
@@ -962,16 +962,16 @@ input[data-v-3b8b0ecf]:disabled, button[data-v-3b8b0ecf]:disabled {
|
|
|
962
962
|
white-space: nowrap;
|
|
963
963
|
}
|
|
964
964
|
@media (pointer: coarse) {
|
|
965
|
-
button[data-v-
|
|
965
|
+
button[data-v-cd33b9b7] {
|
|
966
966
|
min-inline-size: 2.75rem;
|
|
967
967
|
min-block-size: 2.75rem;
|
|
968
968
|
}
|
|
969
969
|
}
|
|
970
970
|
@media (forced-colors: active) {
|
|
971
|
-
.field[data-v-
|
|
971
|
+
.field[data-v-cd33b9b7], .popup[data-v-cd33b9b7] {
|
|
972
972
|
border-color: CanvasText;
|
|
973
973
|
}
|
|
974
|
-
.option.active[data-v-
|
|
974
|
+
.option.active[data-v-cd33b9b7] {
|
|
975
975
|
outline-color: Highlight;
|
|
976
976
|
}
|
|
977
977
|
}
|
|
@@ -979,12 +979,12 @@ button[data-v-3b8b0ecf] {
|
|
|
979
979
|
/* Multiple mode: every option carries a checkbox, so a list that takes several answers says so
|
|
980
980
|
before anything is picked. aria-selected is the state; this draws it.
|
|
981
981
|
Longhands, not shorthands: lowering drops a shorthand that omits a component. */
|
|
982
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .option[data-v-
|
|
982
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .option[data-v-cd33b9b7] {
|
|
983
983
|
display: flex;
|
|
984
984
|
gap: var(--ui-space-2);
|
|
985
985
|
align-items: center;
|
|
986
986
|
}
|
|
987
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .option[data-v-
|
|
987
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .option[data-v-cd33b9b7]::before {
|
|
988
988
|
content: "";
|
|
989
989
|
flex: none;
|
|
990
990
|
inline-size: 1.125rem;
|
|
@@ -999,7 +999,7 @@ button[data-v-3b8b0ecf] {
|
|
|
999
999
|
background-size: 0.7rem;
|
|
1000
1000
|
}
|
|
1001
1001
|
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"]
|
|
1002
|
-
.option[aria-selected="true"][data-v-
|
|
1002
|
+
.option[aria-selected="true"][data-v-cd33b9b7]::before {
|
|
1003
1003
|
border-color: var(--ui-accent-solid);
|
|
1004
1004
|
background-color: var(--ui-accent-solid);
|
|
1005
1005
|
background-image: var(
|
|
@@ -1009,20 +1009,20 @@ button[data-v-3b8b0ecf] {
|
|
|
1009
1009
|
}
|
|
1010
1010
|
|
|
1011
1011
|
/* Multiple mode: chips wrap before the cursor on one flexible field line. */
|
|
1012
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .field[data-v-
|
|
1012
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .field[data-v-cd33b9b7] {
|
|
1013
1013
|
flex-wrap: wrap;
|
|
1014
1014
|
align-items: center;
|
|
1015
1015
|
gap: var(--ui-space-1);
|
|
1016
1016
|
min-block-size: var(--ui-combobox-item-min-block-size, 2.5rem);
|
|
1017
1017
|
padding: var(--ui-space-1);
|
|
1018
1018
|
}
|
|
1019
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] input[data-v-
|
|
1019
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] input[data-v-cd33b9b7] {
|
|
1020
1020
|
flex: 1 0 var(--ui-combobox-item-input-min-inline-size, 5rem);
|
|
1021
1021
|
width: auto;
|
|
1022
1022
|
min-block-size: 1.75rem;
|
|
1023
1023
|
padding: var(--ui-space-0-5) var(--ui-space-1);
|
|
1024
1024
|
}
|
|
1025
|
-
.item[data-v-
|
|
1025
|
+
.item[data-v-cd33b9b7] {
|
|
1026
1026
|
appearance: none;
|
|
1027
1027
|
display: inline-flex;
|
|
1028
1028
|
min-inline-size: 0;
|
|
@@ -1036,16 +1036,16 @@ button[data-v-3b8b0ecf] {
|
|
|
1036
1036
|
font: inherit;
|
|
1037
1037
|
cursor: default;
|
|
1038
1038
|
}
|
|
1039
|
-
.item[data-v-
|
|
1039
|
+
.item[data-v-cd33b9b7]:focus-visible {
|
|
1040
1040
|
outline: 2px solid var(--ui-focus-ring);
|
|
1041
1041
|
outline-offset: 1px;
|
|
1042
1042
|
}
|
|
1043
|
-
.item[data-v-
|
|
1043
|
+
.item[data-v-cd33b9b7]:disabled {
|
|
1044
1044
|
opacity: 0.6;
|
|
1045
1045
|
}
|
|
1046
1046
|
|
|
1047
1047
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
1048
|
-
[data-component~="ui-combobox"][hidden][data-v-
|
|
1048
|
+
[data-component~="ui-combobox"][hidden][data-v-cd33b9b7] {
|
|
1049
1049
|
display: none;
|
|
1050
1050
|
}
|
|
1051
1051
|
|
|
@@ -2349,46 +2349,88 @@ svg[data-v-7b1048a0] {
|
|
|
2349
2349
|
display: none;
|
|
2350
2350
|
}
|
|
2351
2351
|
|
|
2352
|
-
[data-component~="ui-editor-toolbar"][data-v-
|
|
2352
|
+
[data-component~="ui-editor-toolbar"][data-v-e776f060] {
|
|
2353
|
+
/* The colour the edge fades blend into: whatever the toolbar is painted with. */
|
|
2354
|
+
--_matte: var(--ui-editor-toolbar-surface, var(--ui-surface));
|
|
2355
|
+
|
|
2353
2356
|
position: sticky;
|
|
2354
2357
|
top: 0;
|
|
2355
2358
|
z-index: var(--ui-editor-toolbar-z-index, 10);
|
|
2356
2359
|
display: flex;
|
|
2357
2360
|
align-items: center;
|
|
2358
|
-
justify-content: flex-start;
|
|
2359
|
-
gap: var(--ui-editor-toolbar-gap, 2px);
|
|
2360
2361
|
padding: var(--ui-editor-toolbar-padding-block, 6px)
|
|
2361
2362
|
var(--ui-editor-toolbar-padding-inline, 12px);
|
|
2362
2363
|
min-height: var(--ui-editor-toolbar-min-height, 48px);
|
|
2363
|
-
/* More controls than the column is wide is normal at a readable measure, so the row wraps.
|
|
2364
|
-
Scrolling hid the tail behind an invisible scrollbar. */
|
|
2365
|
-
flex-wrap: wrap;
|
|
2366
|
-
row-gap: var(--ui-editor-toolbar-row-gap, var(--ui-editor-toolbar-gap, 2px));
|
|
2367
2364
|
background: var(--ui-editor-toolbar-surface, var(--ui-surface));
|
|
2368
2365
|
border-bottom: 1px solid var(--ui-editor-toolbar-border, var(--ui-border));
|
|
2369
2366
|
}
|
|
2370
|
-
|
|
2367
|
+
|
|
2368
|
+
/* One row, always. When the controls outgrow the space, the row scrolls sideways rather than
|
|
2369
|
+
wrapping into several lines, and a fade at each edge that has more to show says so. */
|
|
2370
|
+
.strip[data-v-e776f060] {
|
|
2371
|
+
display: flex;
|
|
2372
|
+
flex: 1 1 auto;
|
|
2373
|
+
align-items: center;
|
|
2374
|
+
justify-content: flex-start;
|
|
2375
|
+
gap: var(--ui-editor-toolbar-gap, 2px);
|
|
2376
|
+
min-width: 0;
|
|
2377
|
+
overflow-x: auto;
|
|
2378
|
+
overflow-y: hidden;
|
|
2379
|
+
overscroll-behavior-inline: contain;
|
|
2380
|
+
scrollbar-width: none;
|
|
2381
|
+
}
|
|
2382
|
+
.strip[data-v-e776f060]::-webkit-scrollbar {
|
|
2371
2383
|
display: none;
|
|
2372
2384
|
}
|
|
2373
|
-
|
|
2385
|
+
.strip > [data-v-e776f060-s] {
|
|
2374
2386
|
flex: 0 0 auto;
|
|
2375
2387
|
}
|
|
2376
|
-
|
|
2388
|
+
|
|
2389
|
+
/* The fades are mattes laid over the strip in the toolbar's own colour, not a mask, so a floating
|
|
2390
|
+
toolbar's border and shadow stay whole. Each appears only while that edge hides controls. */
|
|
2391
|
+
[data-component~="ui-editor-toolbar"][data-v-e776f060]::before,
|
|
2392
|
+
[data-component~="ui-editor-toolbar"][data-v-e776f060]::after {
|
|
2393
|
+
position: absolute;
|
|
2394
|
+
z-index: 1;
|
|
2395
|
+
inset-block: 0;
|
|
2396
|
+
inline-size: var(--ui-editor-toolbar-fade-size, 32px);
|
|
2397
|
+
content: "";
|
|
2398
|
+
opacity: 0;
|
|
2399
|
+
pointer-events: none;
|
|
2400
|
+
transition: opacity var(--ui-motion-fast, 120ms) var(--ui-motion-ease, ease);
|
|
2401
|
+
}
|
|
2402
|
+
[data-component~="ui-editor-toolbar"][data-v-e776f060]::before {
|
|
2403
|
+
inset-inline-start: 0;
|
|
2404
|
+
background: linear-gradient(to right, var(--_matte), transparent);
|
|
2405
|
+
}
|
|
2406
|
+
[data-component~="ui-editor-toolbar"][data-v-e776f060]::after {
|
|
2407
|
+
inset-inline-end: 0;
|
|
2408
|
+
background: linear-gradient(to left, var(--_matte), transparent);
|
|
2409
|
+
}
|
|
2410
|
+
[data-component~="ui-editor-toolbar"][data-v-e776f060]:dir(rtl)::before {
|
|
2411
|
+
background: linear-gradient(to left, var(--_matte), transparent);
|
|
2412
|
+
}
|
|
2413
|
+
[data-component~="ui-editor-toolbar"][data-v-e776f060]:dir(rtl)::after {
|
|
2414
|
+
background: linear-gradient(to right, var(--_matte), transparent);
|
|
2415
|
+
}
|
|
2416
|
+
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="overflowStart"][data-v-e776f060]::before,
|
|
2417
|
+
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="overflowEnd"][data-v-e776f060]::after {
|
|
2418
|
+
opacity: 1;
|
|
2419
|
+
}
|
|
2420
|
+
.divider[data-v-e776f060-s] {
|
|
2377
2421
|
width: 1px;
|
|
2378
2422
|
height: 20px;
|
|
2379
2423
|
background: var(--ui-editor-toolbar-divider, var(--ui-border));
|
|
2380
2424
|
flex-shrink: 0;
|
|
2381
2425
|
margin: 0 var(--ui-editor-toolbar-divider-margin, 4px);
|
|
2382
2426
|
}
|
|
2383
|
-
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-
|
|
2384
|
-
|
|
2385
|
-
position: static;
|
|
2427
|
+
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-e776f060] {
|
|
2428
|
+
position: relative;
|
|
2386
2429
|
top: auto;
|
|
2387
2430
|
width: max-content;
|
|
2388
2431
|
max-width: min(calc(100vw - 24px), 100%);
|
|
2389
2432
|
min-height: auto;
|
|
2390
2433
|
padding: var(--ui-editor-toolbar-floating-padding, 4px);
|
|
2391
|
-
overflow-x: visible;
|
|
2392
2434
|
background: color-mix(
|
|
2393
2435
|
in srgb,
|
|
2394
2436
|
var(--ui-editor-toolbar-surface, var(--ui-surface)) 96%,
|
|
@@ -2403,7 +2445,7 @@ svg[data-v-7b1048a0] {
|
|
|
2403
2445
|
backdrop-filter: blur(10px);
|
|
2404
2446
|
}
|
|
2405
2447
|
@media (max-width: 767px) {
|
|
2406
|
-
[data-component~="ui-editor-toolbar"][data-v-
|
|
2448
|
+
[data-component~="ui-editor-toolbar"][data-v-e776f060] {
|
|
2407
2449
|
position: fixed;
|
|
2408
2450
|
top: auto;
|
|
2409
2451
|
bottom: env(safe-area-inset-bottom);
|
|
@@ -2414,8 +2456,8 @@ svg[data-v-7b1048a0] {
|
|
|
2414
2456
|
border-bottom: none;
|
|
2415
2457
|
box-shadow: var(--ui-editor-toolbar-mobile-shadow, 0 -2px 8px rgb(0 0 0 / 0.06));
|
|
2416
2458
|
}
|
|
2417
|
-
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-
|
|
2418
|
-
position:
|
|
2459
|
+
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-e776f060] {
|
|
2460
|
+
position: relative;
|
|
2419
2461
|
inset: auto;
|
|
2420
2462
|
min-height: auto;
|
|
2421
2463
|
border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border));
|
|
@@ -2428,10 +2470,11 @@ svg[data-v-7b1048a0] {
|
|
|
2428
2470
|
}
|
|
2429
2471
|
|
|
2430
2472
|
/* Inside LoomaEditor's sticky shell, the shell is the sticky surface. */
|
|
2431
|
-
.looma-editor__sticky-toolbar-shell [data-component~="ui-editor-toolbar"][data-v-
|
|
2432
|
-
|
|
2473
|
+
.looma-editor__sticky-toolbar-shell [data-component~="ui-editor-toolbar"][data-v-e776f060] {
|
|
2474
|
+
--_matte: var(--ui-editor-toolbar-surface, var(--ui-surface));
|
|
2475
|
+
|
|
2476
|
+
position: relative;
|
|
2433
2477
|
min-height: var(--ui-editor-toolbar-min-height, 48px);
|
|
2434
|
-
overscroll-behavior-inline: contain;
|
|
2435
2478
|
background: transparent;
|
|
2436
2479
|
border: 0;
|
|
2437
2480
|
box-shadow: none;
|
|
@@ -2439,24 +2482,25 @@ svg[data-v-7b1048a0] {
|
|
|
2439
2482
|
|
|
2440
2483
|
/* Inside LoomaEditor's mobile shell, the toolbar is a scroll-snapping strip. */
|
|
2441
2484
|
.looma-editor__mobile-toolbar-shell
|
|
2442
|
-
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-
|
|
2485
|
+
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-e776f060] {
|
|
2443
2486
|
width: 100%;
|
|
2444
2487
|
max-width: none;
|
|
2445
2488
|
min-height: 100%;
|
|
2446
2489
|
padding: 0;
|
|
2447
|
-
overflow-x: auto;
|
|
2448
|
-
overflow-y: hidden;
|
|
2449
|
-
overscroll-behavior-inline: contain;
|
|
2450
|
-
scroll-snap-type: x mandatory;
|
|
2451
2490
|
background: transparent;
|
|
2452
2491
|
border: 0;
|
|
2453
2492
|
border-radius: 0;
|
|
2454
2493
|
box-shadow: none;
|
|
2455
2494
|
backdrop-filter: none;
|
|
2456
2495
|
}
|
|
2496
|
+
.looma-editor__mobile-toolbar-shell
|
|
2497
|
+
[data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"]
|
|
2498
|
+
.strip[data-v-e776f060] {
|
|
2499
|
+
scroll-snap-type: x mandatory;
|
|
2500
|
+
}
|
|
2457
2501
|
|
|
2458
2502
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
2459
|
-
[data-component~="ui-editor-toolbar"][hidden][data-v-
|
|
2503
|
+
[data-component~="ui-editor-toolbar"][hidden][data-v-e776f060] {
|
|
2460
2504
|
display: none;
|
|
2461
2505
|
}
|
|
2462
2506
|
|
|
@@ -3060,7 +3104,7 @@ input[data-v-2c20c2e3]:focus-visible {
|
|
|
3060
3104
|
display: none;
|
|
3061
3105
|
}
|
|
3062
3106
|
|
|
3063
|
-
[data-component~="ui-radio-group"][data-v-
|
|
3107
|
+
[data-component~="ui-radio-group"][data-v-f54344c6] {
|
|
3064
3108
|
display: inline-flex;
|
|
3065
3109
|
align-items: center;
|
|
3066
3110
|
gap: var(--ui-space-2);
|
|
@@ -3069,7 +3113,7 @@ input[data-v-2c20c2e3]:focus-visible {
|
|
|
3069
3113
|
padding: 0;
|
|
3070
3114
|
border: 0;
|
|
3071
3115
|
}
|
|
3072
|
-
legend[data-v-
|
|
3116
|
+
legend[data-v-f54344c6] {
|
|
3073
3117
|
float: inline-start;
|
|
3074
3118
|
inline-size: 100%;
|
|
3075
3119
|
margin: 0 0 var(--ui-space-2);
|
|
@@ -3077,16 +3121,16 @@ legend[data-v-cd639df6] {
|
|
|
3077
3121
|
color: var(--ui-text-primary);
|
|
3078
3122
|
font-weight: var(--ui-font-medium);
|
|
3079
3123
|
}
|
|
3080
|
-
legend[data-v-
|
|
3124
|
+
legend[data-v-f54344c6] + * {
|
|
3081
3125
|
clear: both;
|
|
3082
3126
|
}
|
|
3083
|
-
[data-component~="ui-radio-group"][data-ui-radio-group-state~="orientation=vertical"][data-v-
|
|
3127
|
+
[data-component~="ui-radio-group"][data-ui-radio-group-state~="orientation=vertical"][data-v-f54344c6] {
|
|
3084
3128
|
display: inline-grid;
|
|
3085
3129
|
justify-items: start;
|
|
3086
3130
|
}
|
|
3087
3131
|
|
|
3088
3132
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3089
|
-
[data-component~="ui-radio-group"][hidden][data-v-
|
|
3133
|
+
[data-component~="ui-radio-group"][hidden][data-v-f54344c6] {
|
|
3090
3134
|
display: none;
|
|
3091
3135
|
}
|
|
3092
3136
|
|
|
@@ -3146,7 +3190,7 @@ legend[data-v-cd639df6] + * {
|
|
|
3146
3190
|
display: none;
|
|
3147
3191
|
}
|
|
3148
3192
|
|
|
3149
|
-
[data-component~="ui-search-result-row"][data-v-
|
|
3193
|
+
[data-component~="ui-search-result-row"][data-v-c2562cce] {
|
|
3150
3194
|
appearance: none;
|
|
3151
3195
|
inline-size: 100%;
|
|
3152
3196
|
min-block-size: var(--ui-search-result-row-min-height, 56px);
|
|
@@ -3164,62 +3208,62 @@ legend[data-v-cd639df6] + * {
|
|
|
3164
3208
|
text-align: left;
|
|
3165
3209
|
transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
3166
3210
|
}
|
|
3167
|
-
[data-component~="ui-search-result-row"][data-v-
|
|
3211
|
+
[data-component~="ui-search-result-row"][data-v-c2562cce]:last-child {
|
|
3168
3212
|
border-block-end: none;
|
|
3169
3213
|
}
|
|
3170
|
-
[data-component~="ui-search-result-row"][data-v-
|
|
3214
|
+
[data-component~="ui-search-result-row"][data-v-c2562cce]:hover:enabled {
|
|
3171
3215
|
background: var(
|
|
3172
3216
|
--ui-search-result-row-hover-surface,
|
|
3173
3217
|
color-mix(in srgb, var(--ui-surface) 85%, black 3%)
|
|
3174
3218
|
);
|
|
3175
3219
|
}
|
|
3176
|
-
[data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-
|
|
3220
|
+
[data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-c2562cce] {
|
|
3177
3221
|
background: var(
|
|
3178
3222
|
--ui-search-result-row-selected-bg,
|
|
3179
3223
|
var(--ui-search-result-row-hover-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%))
|
|
3180
3224
|
);
|
|
3181
3225
|
}
|
|
3182
|
-
[data-component~="ui-search-result-row"][data-v-
|
|
3226
|
+
[data-component~="ui-search-result-row"][data-v-c2562cce]:focus-visible {
|
|
3183
3227
|
outline: 2px solid var(--ui-focus-ring);
|
|
3184
3228
|
outline-offset: -2px;
|
|
3185
3229
|
}
|
|
3186
|
-
[data-component~="ui-search-result-row"][data-v-
|
|
3230
|
+
[data-component~="ui-search-result-row"][data-v-c2562cce]:disabled {
|
|
3187
3231
|
opacity: 0.6;
|
|
3188
3232
|
cursor: not-allowed;
|
|
3189
3233
|
}
|
|
3190
|
-
.leading[data-v-
|
|
3191
|
-
.trailing[data-v-
|
|
3234
|
+
.leading[data-v-c2562cce],
|
|
3235
|
+
.trailing[data-v-c2562cce] {
|
|
3192
3236
|
display: inline-flex;
|
|
3193
3237
|
align-items: flex-start;
|
|
3194
3238
|
flex-shrink: 0;
|
|
3195
3239
|
}
|
|
3196
|
-
.content[data-v-
|
|
3240
|
+
.content[data-v-c2562cce] {
|
|
3197
3241
|
min-inline-size: 0;
|
|
3198
3242
|
flex: 1;
|
|
3199
3243
|
display: flex;
|
|
3200
3244
|
flex-direction: column;
|
|
3201
3245
|
}
|
|
3202
|
-
.title[data-v-
|
|
3203
|
-
.meta[data-v-
|
|
3204
|
-
.excerpt[data-v-
|
|
3246
|
+
.title[data-v-c2562cce],
|
|
3247
|
+
.meta[data-v-c2562cce],
|
|
3248
|
+
.excerpt[data-v-c2562cce] {
|
|
3205
3249
|
display: block;
|
|
3206
3250
|
min-inline-size: 0;
|
|
3207
3251
|
}
|
|
3208
3252
|
|
|
3209
3253
|
/* An unused region takes no space. */
|
|
3210
|
-
.leading[data-v-
|
|
3211
|
-
.meta[data-v-
|
|
3212
|
-
.excerpt[data-v-
|
|
3213
|
-
.trailing[data-v-
|
|
3254
|
+
.leading[data-v-c2562cce]:empty,
|
|
3255
|
+
.meta[data-v-c2562cce]:empty,
|
|
3256
|
+
.excerpt[data-v-c2562cce]:empty,
|
|
3257
|
+
.trailing[data-v-c2562cce]:empty {
|
|
3214
3258
|
display: none;
|
|
3215
3259
|
}
|
|
3216
|
-
[slot="title"][data-v-
|
|
3260
|
+
[slot="title"][data-v-c2562cce-s],[slot="meta"][data-v-c2562cce-s],[slot="excerpt"][data-v-c2562cce-s] {
|
|
3217
3261
|
display: block;
|
|
3218
3262
|
margin: 0;
|
|
3219
3263
|
}
|
|
3220
3264
|
|
|
3221
3265
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3222
|
-
[data-component~="ui-search-result-row"][hidden][data-v-
|
|
3266
|
+
[data-component~="ui-search-result-row"][hidden][data-v-c2562cce] {
|
|
3223
3267
|
display: none;
|
|
3224
3268
|
}
|
|
3225
3269
|
|
|
@@ -3614,7 +3658,7 @@ hr[aria-orientation="vertical"][data-v-f07c3800] {
|
|
|
3614
3658
|
display: none;
|
|
3615
3659
|
}
|
|
3616
3660
|
|
|
3617
|
-
[data-component~="ui-switch"][data-v-
|
|
3661
|
+
[data-component~="ui-switch"][data-v-aeb44053] {
|
|
3618
3662
|
display: inline-flex;
|
|
3619
3663
|
align-items: flex-start;
|
|
3620
3664
|
gap: var(--ui-switch-gap, var(--ui-space-2));
|
|
@@ -3622,11 +3666,11 @@ hr[aria-orientation="vertical"][data-v-f07c3800] {
|
|
|
3622
3666
|
color: var(--ui-text-primary);
|
|
3623
3667
|
cursor: pointer;
|
|
3624
3668
|
}
|
|
3625
|
-
.label[data-v-
|
|
3669
|
+
.label[data-v-aeb44053] {
|
|
3626
3670
|
min-inline-size: 0;
|
|
3627
3671
|
line-height: var(--ui-line-height-md);
|
|
3628
3672
|
}
|
|
3629
|
-
input[data-v-
|
|
3673
|
+
input[data-v-aeb44053] {
|
|
3630
3674
|
appearance: none;
|
|
3631
3675
|
-webkit-appearance: none;
|
|
3632
3676
|
position: relative;
|
|
@@ -3644,7 +3688,7 @@ input[data-v-529fe437] {
|
|
|
3644
3688
|
border-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
3645
3689
|
margin: 0;
|
|
3646
3690
|
}
|
|
3647
|
-
input[data-v-
|
|
3691
|
+
input[data-v-aeb44053]::after {
|
|
3648
3692
|
content: "";
|
|
3649
3693
|
position: absolute;
|
|
3650
3694
|
top: 3px;
|
|
@@ -3656,35 +3700,35 @@ input[data-v-529fe437]::after {
|
|
|
3656
3700
|
box-shadow: var(--ui-shadow-xs);
|
|
3657
3701
|
transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
|
|
3658
3702
|
}
|
|
3659
|
-
input[data-v-
|
|
3703
|
+
input[data-v-aeb44053]:checked {
|
|
3660
3704
|
background: var(--ui-accent-solid);
|
|
3661
3705
|
border-color: var(--ui-accent-solid);
|
|
3662
3706
|
}
|
|
3663
|
-
input[data-v-
|
|
3707
|
+
input[data-v-aeb44053]:checked::after {
|
|
3664
3708
|
transform: translateX(1rem);
|
|
3665
3709
|
background: var(--ui-text-on-accent);
|
|
3666
3710
|
}
|
|
3667
|
-
input[data-v-
|
|
3711
|
+
input[data-v-aeb44053]:focus-visible {
|
|
3668
3712
|
outline: 2px solid var(--ui-focus-ring, var(--ui-accent-solid));
|
|
3669
3713
|
outline-offset: 2px;
|
|
3670
3714
|
}
|
|
3671
|
-
[data-component~="ui-switch"][data-ui-switch-state~="disabled"][data-v-
|
|
3715
|
+
[data-component~="ui-switch"][data-ui-switch-state~="disabled"][data-v-aeb44053] {
|
|
3672
3716
|
color: var(--ui-text-muted);
|
|
3673
3717
|
cursor: not-allowed;
|
|
3674
3718
|
}
|
|
3675
|
-
[data-component~="ui-switch"][data-ui-switch-state~="disabled"] input[data-v-
|
|
3719
|
+
[data-component~="ui-switch"][data-ui-switch-state~="disabled"] input[data-v-aeb44053] {
|
|
3676
3720
|
border-color: var(--ui-border-default);
|
|
3677
3721
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
3678
3722
|
cursor: not-allowed;
|
|
3679
3723
|
}
|
|
3680
3724
|
@media (prefers-reduced-motion: reduce) {
|
|
3681
|
-
input[data-v-
|
|
3725
|
+
input[data-v-aeb44053], input[data-v-aeb44053]::after {
|
|
3682
3726
|
transition: none;
|
|
3683
3727
|
}
|
|
3684
3728
|
}
|
|
3685
3729
|
|
|
3686
3730
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3687
|
-
[data-component~="ui-switch"][hidden][data-v-
|
|
3731
|
+
[data-component~="ui-switch"][hidden][data-v-aeb44053] {
|
|
3688
3732
|
display: none;
|
|
3689
3733
|
}
|
|
3690
3734
|
|