@threadlabs/looma 0.23.14 → 0.23.16
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/ui-icon-button/ui-icon-button.html +27 -0
- package/components/ui-input/ui-input.html +6 -1
- package/components/ui-tree-item/ui-tree-item.html +50 -1
- package/components/ui-tree-item/ui-tree-item.js +2 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-icon-button.css +28 -0
- package/styles/ui-input.css +6 -1
- package/styles/ui-tree-item.css +54 -2
- package/vanilla/UiIconButton.d.ts +1 -0
- package/vanilla/UiIconButton.js +4 -1
- package/vue/UiIconButton.d.ts +9 -0
- package/vue/UiIconButton.vue +46 -0
- package/vue/UiInput.vue +6 -1
- package/vue/UiTreeItem.vue +59 -1
- package/vue/chunks/UiIconButton.js +24 -1
- package/vue/chunks/UiInput.js +1 -1
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +216 -140
- package/vue/editor/LoomaEditor.d.ts +3 -2
- package/vue/editor/index.js +2 -2
package/vue/components.css
CHANGED
|
@@ -4533,7 +4533,7 @@ svg[data-v-68ef93fb-s] {
|
|
|
4533
4533
|
syntax: "*";
|
|
4534
4534
|
inherits: false;
|
|
4535
4535
|
}
|
|
4536
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4536
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b] {
|
|
4537
4537
|
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
4538
4538
|
--_ui-icon-button-icon-size: var(--ui-icon-button-icon-size);
|
|
4539
4539
|
--_ui-icon-button-icon-stroke-width: var(--ui-icon-button-icon-stroke-width);
|
|
@@ -4541,10 +4541,10 @@ svg[data-v-68ef93fb-s] {
|
|
|
4541
4541
|
display: inline-flex;
|
|
4542
4542
|
color: var(--ui-text-secondary);
|
|
4543
4543
|
}
|
|
4544
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4544
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-1cd8b91b] {
|
|
4545
4545
|
position: relative;
|
|
4546
4546
|
}
|
|
4547
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4547
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-1cd8b91b]::before {
|
|
4548
4548
|
content: "";
|
|
4549
4549
|
position: absolute;
|
|
4550
4550
|
inset: 50% auto auto 50%;
|
|
@@ -4558,13 +4558,13 @@ svg[data-v-68ef93fb-s] {
|
|
|
4558
4558
|
transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
|
|
4559
4559
|
pointer-events: none;
|
|
4560
4560
|
}
|
|
4561
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4561
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-1cd8b91b]:disabled::before {
|
|
4562
4562
|
opacity: 0;
|
|
4563
4563
|
}
|
|
4564
4564
|
|
|
4565
4565
|
/* At rest an anticipatory button shows only its guide dot. The icon grows into place when
|
|
4566
4566
|
proximity, hover, or focus reveals it; the button's hit area and guide remain stable. */
|
|
4567
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-
|
|
4567
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-1cd8b91b] {
|
|
4568
4568
|
opacity: 1;
|
|
4569
4569
|
transform: scale(1);
|
|
4570
4570
|
transition:
|
|
@@ -4572,22 +4572,22 @@ svg[data-v-68ef93fb-s] {
|
|
|
4572
4572
|
transform calc(var(--ui-motion-fast) * 2) cubic-bezier(0.2, 1.4, 0.35, 1);
|
|
4573
4573
|
}
|
|
4574
4574
|
@media (hover: hover) and (pointer: fine) {
|
|
4575
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4575
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-1cd8b91b]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"], :disabled, [data-ui-proximity="near"], :hover, :focus-visible) {
|
|
4576
4576
|
border-color: transparent;
|
|
4577
4577
|
background-color: transparent;
|
|
4578
4578
|
box-shadow: none;
|
|
4579
4579
|
}
|
|
4580
4580
|
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"], :disabled, [data-ui-proximity="near"], :hover, :focus-visible)
|
|
4581
|
-
.content[data-v-
|
|
4581
|
+
.content[data-v-1cd8b91b] {
|
|
4582
4582
|
opacity: 0;
|
|
4583
4583
|
transform: scale(0.65);
|
|
4584
4584
|
transition-duration: var(--ui-motion-fast);
|
|
4585
4585
|
}
|
|
4586
4586
|
}
|
|
4587
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4587
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-1cd8b91b]:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-ui-proximity="near"], :hover, :focus-visible)::before {
|
|
4588
4588
|
opacity: 0;
|
|
4589
4589
|
}
|
|
4590
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4590
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b] {
|
|
4591
4591
|
/* The size prop resolves here; --ui-icon-button-size overrides it on an element. */
|
|
4592
4592
|
--_size: 2rem;
|
|
4593
4593
|
appearance: none;
|
|
@@ -4613,7 +4613,7 @@ svg[data-v-68ef93fb-s] {
|
|
|
4613
4613
|
transform var(--ui-motion-fast) var(--ui-motion-ease);
|
|
4614
4614
|
}
|
|
4615
4615
|
@media (hover: none), (pointer: coarse) {
|
|
4616
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-
|
|
4616
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-1cd8b91b]::before {
|
|
4617
4617
|
opacity: 0;
|
|
4618
4618
|
}
|
|
4619
4619
|
}
|
|
@@ -4621,10 +4621,10 @@ svg[data-v-68ef93fb-s] {
|
|
|
4621
4621
|
/* A touch target without a bigger button: an invisible hit area, at least the control
|
|
4622
4622
|
minimum, centred on the button (::before is the anticipatory guide). */
|
|
4623
4623
|
@media (pointer: coarse) {
|
|
4624
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4624
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b] {
|
|
4625
4625
|
position: relative;
|
|
4626
4626
|
}
|
|
4627
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4627
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b]::after {
|
|
4628
4628
|
content: "";
|
|
4629
4629
|
position: absolute;
|
|
4630
4630
|
inset: 50% auto auto 50%;
|
|
@@ -4633,10 +4633,10 @@ svg[data-v-68ef93fb-s] {
|
|
|
4633
4633
|
transform: translate(-50%, -50%);
|
|
4634
4634
|
}
|
|
4635
4635
|
}
|
|
4636
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-
|
|
4636
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-1cd8b91b] {
|
|
4637
4637
|
position: relative;
|
|
4638
4638
|
}
|
|
4639
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-
|
|
4639
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-1cd8b91b]::after {
|
|
4640
4640
|
content: "";
|
|
4641
4641
|
position: absolute;
|
|
4642
4642
|
inset: 50% auto auto 50%;
|
|
@@ -4644,31 +4644,54 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-7
|
|
|
4644
4644
|
block-size: max(100%, var(--ui-control-min-block-size));
|
|
4645
4645
|
transform: translate(-50%, -50%);
|
|
4646
4646
|
}
|
|
4647
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-
|
|
4647
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-1cd8b91b] {
|
|
4648
4648
|
--_size: 1.75rem;
|
|
4649
4649
|
inline-size: var(--ui-icon-button-size, var(--_size));
|
|
4650
4650
|
block-size: var(--ui-icon-button-size, var(--_size));
|
|
4651
4651
|
min-inline-size: var(--ui-icon-button-size, var(--_size));
|
|
4652
4652
|
min-block-size: var(--ui-icon-button-size, var(--_size));
|
|
4653
4653
|
}
|
|
4654
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-
|
|
4654
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-1cd8b91b] {
|
|
4655
4655
|
--_size: 2.5rem;
|
|
4656
4656
|
inline-size: var(--ui-icon-button-size, var(--_size));
|
|
4657
4657
|
block-size: var(--ui-icon-button-size, var(--_size));
|
|
4658
4658
|
min-inline-size: var(--ui-icon-button-size, var(--_size));
|
|
4659
4659
|
min-block-size: var(--ui-icon-button-size, var(--_size));
|
|
4660
4660
|
}
|
|
4661
|
-
|
|
4661
|
+
|
|
4662
|
+
/* A text button's companion uses control geometry; compact icon buttons keep their own density. */
|
|
4663
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-1cd8b91b] {
|
|
4664
|
+
--_size: var(--ui-control-size-md);
|
|
4665
|
+
block-size: auto;
|
|
4666
|
+
align-self: stretch;
|
|
4667
|
+
}
|
|
4668
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=sm"][data-v-1cd8b91b] {
|
|
4669
|
+
--_size: var(--ui-control-size-sm);
|
|
4670
|
+
}
|
|
4671
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=lg"][data-v-1cd8b91b] {
|
|
4672
|
+
--_size: var(--ui-control-size-lg);
|
|
4673
|
+
}
|
|
4674
|
+
@media (pointer: coarse) {
|
|
4675
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="matchButton"][data-v-1cd8b91b] {
|
|
4676
|
+
inline-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
|
|
4677
|
+
min-inline-size: max(
|
|
4678
|
+
var(--ui-icon-button-size, var(--_size)),
|
|
4679
|
+
var(--ui-control-min-block-size)
|
|
4680
|
+
);
|
|
4681
|
+
min-block-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
|
|
4682
|
+
}
|
|
4683
|
+
}
|
|
4684
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="round"][data-v-1cd8b91b] {
|
|
4662
4685
|
border-radius: var(--ui-radius-round);
|
|
4663
4686
|
}
|
|
4664
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-
|
|
4687
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-1cd8b91b] {
|
|
4665
4688
|
border-color: var(--ui-icon-button-border, var(--ui-control-border, var(--ui-border-strong)));
|
|
4666
4689
|
background-color: var(--ui-icon-button-outline-surface, var(--ui-surface-default));
|
|
4667
4690
|
background-image: var(--ui-raised-highlight);
|
|
4668
4691
|
color: var(--ui-icon-button-outline-text, var(--ui-text-primary));
|
|
4669
4692
|
box-shadow: var(--ui-raised);
|
|
4670
4693
|
}
|
|
4671
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-
|
|
4694
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-1cd8b91b] {
|
|
4672
4695
|
background-color: var(--ui-icon-button-solid-surface, var(--ui-accent-solid));
|
|
4673
4696
|
background-image: var(--ui-raised-highlight);
|
|
4674
4697
|
color: var(--ui-icon-button-solid-text, var(--ui-text-on-accent));
|
|
@@ -4677,7 +4700,7 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-7
|
|
|
4677
4700
|
0 1px 2px color-mix(in srgb, var(--ui-accent-solid) 18%, transparent)
|
|
4678
4701
|
);
|
|
4679
4702
|
}
|
|
4680
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4703
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b]:hover:enabled:not([aria-disabled="true"]) {
|
|
4681
4704
|
/* Derived from the text colour so the ghost hover shows on any background. */
|
|
4682
4705
|
background-color: var(
|
|
4683
4706
|
--ui-icon-button-hover-surface,
|
|
@@ -4685,16 +4708,16 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-7
|
|
|
4685
4708
|
);
|
|
4686
4709
|
color: var(--ui-icon-button-hover-text, var(--ui-text-primary));
|
|
4687
4710
|
}
|
|
4688
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-
|
|
4711
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-1cd8b91b]:hover:enabled:not([aria-disabled="true"]) {
|
|
4689
4712
|
border-color: var(
|
|
4690
4713
|
--ui-icon-button-hover-border,
|
|
4691
4714
|
var(--ui-control-border-hover, var(--ui-control-border))
|
|
4692
4715
|
);
|
|
4693
4716
|
}
|
|
4694
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-
|
|
4717
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-1cd8b91b]:hover:enabled:not([aria-disabled="true"]) {
|
|
4695
4718
|
background-color: var(--ui-icon-button-solid-hover-surface, var(--ui-accent-hover));
|
|
4696
4719
|
}
|
|
4697
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][aria-expanded="true"][data-v-
|
|
4720
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][aria-expanded="true"][data-v-1cd8b91b]:enabled:not([aria-disabled="true"]) {
|
|
4698
4721
|
background-color: var(
|
|
4699
4722
|
--ui-icon-button-active-surface,
|
|
4700
4723
|
color-mix(in srgb, currentColor 16%, transparent)
|
|
@@ -4702,33 +4725,33 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-7
|
|
|
4702
4725
|
color: var(--ui-icon-button-hover-text, var(--ui-text-primary));
|
|
4703
4726
|
box-shadow: var(--ui-pressed);
|
|
4704
4727
|
}
|
|
4705
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4728
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b]:active:enabled:not([aria-disabled="true"]) {
|
|
4706
4729
|
transform: scale(var(--ui-icon-button-active-scale, 0.96));
|
|
4707
4730
|
}
|
|
4708
|
-
:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"][data-v-
|
|
4731
|
+
:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"][data-v-1cd8b91b], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"][data-v-1cd8b91b]) {
|
|
4709
4732
|
cursor: progress;
|
|
4710
4733
|
}
|
|
4711
|
-
.content[data-v-
|
|
4734
|
+
.content[data-v-1cd8b91b] {
|
|
4712
4735
|
display: inline-flex;
|
|
4713
4736
|
align-items: center;
|
|
4714
4737
|
justify-content: center;
|
|
4715
4738
|
}
|
|
4716
4739
|
:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"])
|
|
4717
|
-
.content[data-v-
|
|
4740
|
+
.content[data-v-1cd8b91b] {
|
|
4718
4741
|
display: none;
|
|
4719
4742
|
}
|
|
4720
4743
|
@media (prefers-reduced-motion: reduce) {
|
|
4721
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-
|
|
4744
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"] .content[data-v-1cd8b91b] {
|
|
4722
4745
|
transition: none;
|
|
4723
4746
|
}
|
|
4724
4747
|
}
|
|
4725
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4748
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b]:focus-visible {
|
|
4726
4749
|
outline: none;
|
|
4727
4750
|
box-shadow: var(--ui-focus-halo);
|
|
4728
4751
|
}
|
|
4729
4752
|
|
|
4730
4753
|
/* Disabled is a flat neutral control, independent of the active variant's tone. */
|
|
4731
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4754
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b]:disabled {
|
|
4732
4755
|
border-color: var(--ui-disabled-border);
|
|
4733
4756
|
background-color: var(--ui-disabled-surface);
|
|
4734
4757
|
color: var(--ui-disabled-text);
|
|
@@ -4738,23 +4761,23 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"][data-v-7
|
|
|
4738
4761
|
box-shadow: none;
|
|
4739
4762
|
background-image: none;
|
|
4740
4763
|
}
|
|
4741
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][data-v-
|
|
4764
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=ghost"][data-v-1cd8b91b]:disabled {
|
|
4742
4765
|
border-color: transparent;
|
|
4743
4766
|
}
|
|
4744
|
-
[data-component~="ui-icon-button"][data-v-
|
|
4767
|
+
[data-component~="ui-icon-button"][data-v-1cd8b91b] {
|
|
4745
4768
|
--_icon-button-icon-default: var(--ui-icon-size-md);
|
|
4746
4769
|
/* A slotted ui-icon is its own component, out of reach of the svg rule below; these are its
|
|
4747
4770
|
defaults, which its own --ui-icon-* hooks still override. */
|
|
4748
4771
|
--_ui-default-icon-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
4749
4772
|
--_ui-default-icon-stroke-width: var(--_ui-icon-button-icon-stroke-width, 1.75);
|
|
4750
4773
|
}
|
|
4751
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-
|
|
4774
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-1cd8b91b] {
|
|
4752
4775
|
--_icon-button-icon-default: var(--ui-icon-size-sm);
|
|
4753
4776
|
}
|
|
4754
|
-
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-
|
|
4777
|
+
[data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-1cd8b91b] {
|
|
4755
4778
|
--_icon-button-icon-default: var(--ui-icon-size-lg);
|
|
4756
4779
|
}
|
|
4757
|
-
svg[data-v-
|
|
4780
|
+
svg[data-v-1cd8b91b-s] {
|
|
4758
4781
|
inline-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
4759
4782
|
block-size: var(--_ui-icon-button-icon-size, var(--_icon-button-icon-default));
|
|
4760
4783
|
flex-shrink: 0;
|
|
@@ -4762,7 +4785,7 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4762
4785
|
}
|
|
4763
4786
|
|
|
4764
4787
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
4765
|
-
[data-component~="ui-icon-button"][hidden][data-v-
|
|
4788
|
+
[data-component~="ui-icon-button"][hidden][data-v-1cd8b91b] {
|
|
4766
4789
|
display: none;
|
|
4767
4790
|
}
|
|
4768
4791
|
|
|
@@ -4820,7 +4843,7 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4820
4843
|
syntax: "*";
|
|
4821
4844
|
inherits: false;
|
|
4822
4845
|
}
|
|
4823
|
-
[data-component~="ui-input"][data-v-
|
|
4846
|
+
[data-component~="ui-input"][data-v-e45d8c3f] {
|
|
4824
4847
|
box-sizing: border-box;
|
|
4825
4848
|
display: inline-block;
|
|
4826
4849
|
inline-size: var(--ui-input-inline-size, 100%);
|
|
@@ -4860,7 +4883,7 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4860
4883
|
}
|
|
4861
4884
|
|
|
4862
4885
|
/* Each size reads the hook and then an Input Group's default first, so a group, which draws the frame, can zero it. */
|
|
4863
|
-
[data-component~="ui-input"][data-ui-input-state~="size=sm"][data-v-
|
|
4886
|
+
[data-component~="ui-input"][data-ui-input-state~="size=sm"][data-v-e45d8c3f] {
|
|
4864
4887
|
min-block-size: var(
|
|
4865
4888
|
--ui-input-min-block-size,
|
|
4866
4889
|
var(--_ui-default-input-min-block-size, var(--ui-control-size-sm))
|
|
@@ -4868,7 +4891,7 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4868
4891
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
4869
4892
|
font-size: var(--ui-font-size-sm);
|
|
4870
4893
|
}
|
|
4871
|
-
[data-component~="ui-input"][data-ui-input-state~="size=lg"][data-v-
|
|
4894
|
+
[data-component~="ui-input"][data-ui-input-state~="size=lg"][data-v-e45d8c3f] {
|
|
4872
4895
|
min-block-size: var(
|
|
4873
4896
|
--ui-input-min-block-size,
|
|
4874
4897
|
var(--_ui-default-input-min-block-size, var(--ui-control-size-lg))
|
|
@@ -4880,31 +4903,35 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4880
4903
|
/* Under touch a small field is still a touch-sized target, as a small button is, and keeps
|
|
4881
4904
|
body-size text: below 16px, iOS zooms the page into the focused field. */
|
|
4882
4905
|
@media (pointer: coarse) {
|
|
4883
|
-
[data-component~="ui-input"][data-
|
|
4906
|
+
[data-component~="ui-input"][data-v-e45d8c3f],
|
|
4907
|
+
[data-component~="ui-input"][data-ui-input-state~="size=sm"][data-v-e45d8c3f],
|
|
4908
|
+
[data-component~="ui-input"][data-ui-input-state~="size=lg"][data-v-e45d8c3f] {
|
|
4909
|
+
font-size: var(--ui-font-size-md);
|
|
4910
|
+
}
|
|
4911
|
+
[data-component~="ui-input"][data-ui-input-state~="size=sm"][data-v-e45d8c3f] {
|
|
4884
4912
|
min-block-size: var(
|
|
4885
4913
|
--ui-input-min-block-size,
|
|
4886
4914
|
var(--_ui-default-input-min-block-size, var(--ui-control-min-block-size))
|
|
4887
4915
|
);
|
|
4888
|
-
font-size: inherit;
|
|
4889
4916
|
}
|
|
4890
4917
|
}
|
|
4891
4918
|
|
|
4892
4919
|
/* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
|
|
4893
|
-
[data-component~="ui-input"][data-v-
|
|
4920
|
+
[data-component~="ui-input"][data-v-e45d8c3f]::selection {
|
|
4894
4921
|
background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
|
|
4895
4922
|
color: inherit;
|
|
4896
4923
|
}
|
|
4897
|
-
[data-component~="ui-input"][data-v-
|
|
4924
|
+
[data-component~="ui-input"][data-v-e45d8c3f]::placeholder {
|
|
4898
4925
|
color: var(--ui-control-placeholder, var(--ui-text-secondary));
|
|
4899
4926
|
opacity: 1;
|
|
4900
4927
|
}
|
|
4901
|
-
[data-component~="ui-input"][data-v-
|
|
4928
|
+
[data-component~="ui-input"][data-v-e45d8c3f]:hover:not(:focus):not(:disabled):not(:read-only):not([aria-invalid="true"]):not(:is(:user-invalid, [data-user-invalid])) {
|
|
4902
4929
|
border-color: var(
|
|
4903
4930
|
--ui-input-border-hover,
|
|
4904
4931
|
var(--_ui-default-input-border-hover, var(--ui-control-border-hover, var(--ui-text-secondary)))
|
|
4905
4932
|
);
|
|
4906
4933
|
}
|
|
4907
|
-
[data-component~="ui-input"][data-v-
|
|
4934
|
+
[data-component~="ui-input"][data-v-e45d8c3f]:focus-visible {
|
|
4908
4935
|
border-color: var(
|
|
4909
4936
|
--ui-input-focus-border,
|
|
4910
4937
|
var(--_ui-default-input-focus-border, var(--ui-control-focus, var(--ui-accent-solid)))
|
|
@@ -4921,14 +4948,14 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4921
4948
|
}
|
|
4922
4949
|
|
|
4923
4950
|
/* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
|
|
4924
|
-
[data-component~="ui-input"][aria-invalid="true"][data-v-
|
|
4925
|
-
[data-component~="ui-input"][data-v-
|
|
4951
|
+
[data-component~="ui-input"][aria-invalid="true"][data-v-e45d8c3f],
|
|
4952
|
+
[data-component~="ui-input"][data-v-e45d8c3f]:is(:user-invalid, [data-user-invalid]) {
|
|
4926
4953
|
border-color: var(
|
|
4927
4954
|
--ui-input-invalid-border,
|
|
4928
4955
|
var(--_ui-default-input-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)))
|
|
4929
4956
|
);
|
|
4930
4957
|
}
|
|
4931
|
-
[data-component~="ui-input"][data-v-
|
|
4958
|
+
[data-component~="ui-input"][data-v-e45d8c3f]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
|
|
4932
4959
|
box-shadow: var(
|
|
4933
4960
|
--ui-input-invalid-focus-shadow,
|
|
4934
4961
|
var(
|
|
@@ -4942,7 +4969,7 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4942
4969
|
)
|
|
4943
4970
|
);
|
|
4944
4971
|
}
|
|
4945
|
-
[data-component~="ui-input"][data-v-
|
|
4972
|
+
[data-component~="ui-input"][data-v-e45d8c3f]:disabled {
|
|
4946
4973
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
4947
4974
|
color: var(--ui-disabled-text);
|
|
4948
4975
|
box-shadow: none;
|
|
@@ -4951,7 +4978,7 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4951
4978
|
|
|
4952
4979
|
/* Forced colors drop box shadows, so the focus ring becomes an outline. */
|
|
4953
4980
|
@media (forced-colors: active) {
|
|
4954
|
-
[data-component~="ui-input"][data-v-
|
|
4981
|
+
[data-component~="ui-input"][data-v-e45d8c3f]:focus-visible {
|
|
4955
4982
|
outline: var(
|
|
4956
4983
|
--ui-input-focus-outline,
|
|
4957
4984
|
var(--_ui-default-input-focus-outline, var(--ui-focus-width) solid Highlight)
|
|
@@ -4964,7 +4991,7 @@ svg[data-v-7bb0fe2e-s] {
|
|
|
4964
4991
|
* scroll vertically inside the field. Native inputs already center their single line. */
|
|
4965
4992
|
|
|
4966
4993
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
4967
|
-
[data-component~="ui-input"][hidden][data-v-
|
|
4994
|
+
[data-component~="ui-input"][hidden][data-v-e45d8c3f] {
|
|
4968
4995
|
display: none;
|
|
4969
4996
|
}
|
|
4970
4997
|
|
|
@@ -8459,7 +8486,7 @@ to {
|
|
|
8459
8486
|
syntax: "*";
|
|
8460
8487
|
inherits: false;
|
|
8461
8488
|
}
|
|
8462
|
-
[data-component~="ui-tree-item"][data-v-
|
|
8489
|
+
[data-component~="ui-tree-item"][data-v-fd74ff6c] {
|
|
8463
8490
|
/* Hooks do not inherit, so the parts below read them from the root. The tree's density
|
|
8464
8491
|
sets the defaults, in --_ui-default-*. */
|
|
8465
8492
|
--_ui-tree-item-min-block-size: var(
|
|
@@ -8481,7 +8508,7 @@ to {
|
|
|
8481
8508
|
min-inline-size: 0;
|
|
8482
8509
|
margin-inline-start: calc(var(--_ui-tree-item-indent-step, 0) * var(--_ui-tree-indent, 16px));
|
|
8483
8510
|
}
|
|
8484
|
-
.row[data-v-
|
|
8511
|
+
.row[data-v-fd74ff6c] {
|
|
8485
8512
|
position: relative;
|
|
8486
8513
|
display: grid;
|
|
8487
8514
|
grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr);
|
|
@@ -8498,54 +8525,54 @@ to {
|
|
|
8498
8525
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
|
|
8499
8526
|
min-block-size var(--ui-motion-base) var(--ui-motion-ease);
|
|
8500
8527
|
}
|
|
8501
|
-
.row[data-v-
|
|
8502
|
-
.row[data-v-
|
|
8528
|
+
.row[data-v-fd74ff6c]:hover,
|
|
8529
|
+
.row[data-v-fd74ff6c]:focus-within {
|
|
8503
8530
|
color: var(--ui-text-primary);
|
|
8504
8531
|
background: var(--ui-surface-muted);
|
|
8505
8532
|
}
|
|
8506
8533
|
|
|
8507
8534
|
/* Selection is the same surface recipe as destination and choice rows. */
|
|
8508
|
-
[data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] > .row[data-v-
|
|
8535
|
+
[data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] > .row[data-v-fd74ff6c] {
|
|
8509
8536
|
color: var(--ui-selection-text);
|
|
8510
8537
|
background: var(--ui-selection-surface);
|
|
8511
8538
|
}
|
|
8512
8539
|
[data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"]:not([aria-disabled="true"])
|
|
8513
8540
|
> .row
|
|
8514
|
-
> .leading[data-v-
|
|
8541
|
+
> .leading[data-v-fd74ff6c] {
|
|
8515
8542
|
color: var(--ui-selection-text);
|
|
8516
8543
|
}
|
|
8517
|
-
[data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-
|
|
8544
|
+
[data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-fd74ff6c] {
|
|
8518
8545
|
color: var(--ui-disabled-text);
|
|
8519
8546
|
background: var(--ui-disabled-surface);
|
|
8520
8547
|
}
|
|
8521
|
-
[data-component~="ui-tree-item"][data-dragging]:not([data-move-source]) .row[data-v-
|
|
8548
|
+
[data-component~="ui-tree-item"][data-dragging]:not([data-move-source]) .row[data-v-fd74ff6c] {
|
|
8522
8549
|
opacity: 0.42;
|
|
8523
8550
|
}
|
|
8524
|
-
[data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-
|
|
8525
|
-
[data-component~="ui-tree-item"][data-move-source] > .row > .leading[data-v-
|
|
8551
|
+
[data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-fd74ff6c],
|
|
8552
|
+
[data-component~="ui-tree-item"][data-move-source] > .row > .leading[data-v-fd74ff6c] {
|
|
8526
8553
|
opacity: 0.42;
|
|
8527
8554
|
}
|
|
8528
|
-
[data-component~="ui-tree-item"][data-v-
|
|
8555
|
+
[data-component~="ui-tree-item"][data-v-fd74ff6c]:focus {
|
|
8529
8556
|
outline: none;
|
|
8530
8557
|
}
|
|
8531
|
-
[data-component~="ui-tree-item"]:focus-visible .row[data-v-
|
|
8558
|
+
[data-component~="ui-tree-item"]:focus-visible .row[data-v-fd74ff6c] {
|
|
8532
8559
|
box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
|
|
8533
8560
|
}
|
|
8534
8561
|
|
|
8535
8562
|
/* Child combinators: drop feedback belongs to this item's own row, not the rows nested in it. */
|
|
8536
|
-
[data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-
|
|
8563
|
+
[data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-fd74ff6c] {
|
|
8537
8564
|
background: var(--ui-accent-subtle);
|
|
8538
8565
|
box-shadow: inset 0 0 0 var(--ui-accent-line-width)
|
|
8539
8566
|
var(--_ui-tree-drop-color, var(--ui-accent-solid));
|
|
8540
8567
|
}
|
|
8541
|
-
.disclosure[data-v-
|
|
8542
|
-
.disclosure-spacer[data-v-
|
|
8568
|
+
.disclosure[data-v-fd74ff6c],
|
|
8569
|
+
.disclosure-spacer[data-v-fd74ff6c] {
|
|
8543
8570
|
grid-column: 1;
|
|
8544
8571
|
grid-row: 1;
|
|
8545
8572
|
inline-size: var(--_tree-disclosure-size);
|
|
8546
8573
|
block-size: 28px;
|
|
8547
8574
|
}
|
|
8548
|
-
.disclosure[data-v-
|
|
8575
|
+
.disclosure[data-v-fd74ff6c] {
|
|
8549
8576
|
display: grid;
|
|
8550
8577
|
/* Start-aligned: the chevron's ink, not its hit area, aligns with the content above it. */
|
|
8551
8578
|
place-items: center start;
|
|
@@ -8556,10 +8583,10 @@ to {
|
|
|
8556
8583
|
border-radius: var(--ui-radius-sm);
|
|
8557
8584
|
cursor: pointer;
|
|
8558
8585
|
}
|
|
8559
|
-
.disclosure[hidden][data-v-
|
|
8586
|
+
.disclosure[hidden][data-v-fd74ff6c] {
|
|
8560
8587
|
display: none;
|
|
8561
8588
|
}
|
|
8562
|
-
.selection-hit[data-v-
|
|
8589
|
+
.selection-hit[data-v-fd74ff6c] {
|
|
8563
8590
|
display: none;
|
|
8564
8591
|
grid-column: 2;
|
|
8565
8592
|
grid-row: 1;
|
|
@@ -8568,29 +8595,29 @@ to {
|
|
|
8568
8595
|
block-size: var(--_ui-tree-item-min-block-size, var(--_tree-row-min-height));
|
|
8569
8596
|
cursor: pointer;
|
|
8570
8597
|
}
|
|
8571
|
-
.selection-checkbox[data-v-
|
|
8598
|
+
.selection-checkbox[data-v-fd74ff6c] {
|
|
8572
8599
|
inline-size: 1rem;
|
|
8573
8600
|
block-size: 1rem;
|
|
8574
8601
|
margin: 0;
|
|
8575
8602
|
accent-color: var(--ui-accent-solid);
|
|
8576
8603
|
}
|
|
8577
|
-
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-
|
|
8604
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-fd74ff6c] {
|
|
8578
8605
|
grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr);
|
|
8579
8606
|
}
|
|
8580
|
-
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-
|
|
8607
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-fd74ff6c] {
|
|
8581
8608
|
display: grid;
|
|
8582
8609
|
}
|
|
8583
|
-
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-
|
|
8610
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-fd74ff6c] {
|
|
8584
8611
|
grid-column: 3;
|
|
8585
8612
|
}
|
|
8586
|
-
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-
|
|
8613
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-fd74ff6c] {
|
|
8587
8614
|
grid-column: 4;
|
|
8588
8615
|
}
|
|
8589
|
-
.disclosure[data-v-
|
|
8616
|
+
.disclosure[data-v-fd74ff6c]:hover {
|
|
8590
8617
|
color: var(--ui-text-primary);
|
|
8591
8618
|
background: var(--ui-surface-elevated);
|
|
8592
8619
|
}
|
|
8593
|
-
.disclosure-icon[data-v-
|
|
8620
|
+
.disclosure-icon[data-v-fd74ff6c] {
|
|
8594
8621
|
display: grid;
|
|
8595
8622
|
place-items: center;
|
|
8596
8623
|
inline-size: 12px;
|
|
@@ -8598,7 +8625,7 @@ to {
|
|
|
8598
8625
|
transform: rotate(-90deg);
|
|
8599
8626
|
transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
|
|
8600
8627
|
}
|
|
8601
|
-
.disclosure-icon[data-v-
|
|
8628
|
+
.disclosure-icon[data-v-fd74ff6c]::before {
|
|
8602
8629
|
display: block;
|
|
8603
8630
|
inline-size: 0.375rem;
|
|
8604
8631
|
block-size: 0.375rem;
|
|
@@ -8608,19 +8635,19 @@ to {
|
|
|
8608
8635
|
/* A chevron's ink sits below its box centre; lift it so it centres optically (in either rotation). */
|
|
8609
8636
|
transform: translateY(-20%) rotate(45deg);
|
|
8610
8637
|
}
|
|
8611
|
-
[data-component~="ui-tree-item"][aria-expanded="true"] .disclosure-icon[data-v-
|
|
8638
|
+
[data-component~="ui-tree-item"][aria-expanded="true"] .disclosure-icon[data-v-fd74ff6c] {
|
|
8612
8639
|
transform: rotate(0deg);
|
|
8613
8640
|
}
|
|
8614
8641
|
|
|
8615
8642
|
/* Lucide grip-vertical, filling the handle as in Looma 0.2. */
|
|
8616
|
-
.drag-handle svg[data-v-
|
|
8643
|
+
.drag-handle svg[data-v-fd74ff6c] {
|
|
8617
8644
|
display: block;
|
|
8618
8645
|
inline-size: 100%;
|
|
8619
8646
|
block-size: 100%;
|
|
8620
8647
|
}
|
|
8621
8648
|
|
|
8622
8649
|
/* Slotted content is outside this scope, so :has() cannot see it; hide only a truly empty slot. */
|
|
8623
|
-
.leading[data-v-
|
|
8650
|
+
.leading[data-v-fd74ff6c] {
|
|
8624
8651
|
display: inline-grid;
|
|
8625
8652
|
place-items: center;
|
|
8626
8653
|
grid-column: 2;
|
|
@@ -8633,12 +8660,12 @@ to {
|
|
|
8633
8660
|
position: relative;
|
|
8634
8661
|
z-index: 1;
|
|
8635
8662
|
}
|
|
8636
|
-
.leading[data-v-
|
|
8663
|
+
.leading[data-v-fd74ff6c]:empty {
|
|
8637
8664
|
display: none;
|
|
8638
8665
|
}
|
|
8639
8666
|
|
|
8640
8667
|
/* Icons match the label's size (as in Knit's tree): an unsized SVG would otherwise render 300×150. */
|
|
8641
|
-
svg[data-v-
|
|
8668
|
+
svg[data-v-fd74ff6c-s],img[data-v-fd74ff6c-s] {
|
|
8642
8669
|
display: block;
|
|
8643
8670
|
inline-size: 1em;
|
|
8644
8671
|
block-size: 1em;
|
|
@@ -8647,7 +8674,7 @@ svg[data-v-d2b1bbe0-s],img[data-v-d2b1bbe0-s] {
|
|
|
8647
8674
|
|
|
8648
8675
|
/* The label spans the row's height and centres its content, so slotted content (a link) can
|
|
8649
8676
|
stretch to fill the row as its own hit area; the padding tokens remove the inset. */
|
|
8650
|
-
.label[data-v-
|
|
8677
|
+
.label[data-v-fd74ff6c] {
|
|
8651
8678
|
grid-column: 3;
|
|
8652
8679
|
grid-row: 1;
|
|
8653
8680
|
align-self: stretch;
|
|
@@ -8665,7 +8692,7 @@ svg[data-v-d2b1bbe0-s],img[data-v-d2b1bbe0-s] {
|
|
|
8665
8692
|
|
|
8666
8693
|
/* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
|
|
8667
8694
|
its own text and reading as overflow. */
|
|
8668
|
-
.label-text[data-v-
|
|
8695
|
+
.label-text[data-v-fd74ff6c] {
|
|
8669
8696
|
display: flex;
|
|
8670
8697
|
align-items: center;
|
|
8671
8698
|
/* Stretches, so slotted content can still be the row's full-height hit area. */
|
|
@@ -8675,16 +8702,16 @@ svg[data-v-d2b1bbe0-s],img[data-v-d2b1bbe0-s] {
|
|
|
8675
8702
|
inline-size: 100%;
|
|
8676
8703
|
white-space: nowrap;
|
|
8677
8704
|
}
|
|
8678
|
-
.label-text > [data-v-
|
|
8705
|
+
.label-text > [data-v-fd74ff6c-s] {
|
|
8679
8706
|
flex: 1 1 auto;
|
|
8680
8707
|
min-inline-size: 0;
|
|
8681
8708
|
}
|
|
8682
8709
|
|
|
8683
8710
|
/* The controls sit over the label's end, so the text fades out where they begin. The fade is
|
|
8684
8711
|
the truncation mark while it shows: an ellipsis under it would read as a second one. */
|
|
8685
|
-
.row:hover > .label[data-v-
|
|
8686
|
-
.row:focus-within > .label[data-v-
|
|
8687
|
-
[data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-
|
|
8712
|
+
.row:hover > .label[data-v-fd74ff6c],
|
|
8713
|
+
.row:focus-within > .label[data-v-fd74ff6c],
|
|
8714
|
+
[data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-fd74ff6c] {
|
|
8688
8715
|
text-overflow: clip;
|
|
8689
8716
|
mask-image: linear-gradient(
|
|
8690
8717
|
to right,
|
|
@@ -8692,9 +8719,9 @@ svg[data-v-d2b1bbe0-s],img[data-v-d2b1bbe0-s] {
|
|
|
8692
8719
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
8693
8720
|
);
|
|
8694
8721
|
}
|
|
8695
|
-
.row:hover > .label[data-v-
|
|
8696
|
-
.row:focus-within > .label[data-v-
|
|
8697
|
-
[data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-
|
|
8722
|
+
.row:hover > .label[data-v-fd74ff6c]:dir(rtl),
|
|
8723
|
+
.row:focus-within > .label[data-v-fd74ff6c]:dir(rtl),
|
|
8724
|
+
[data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-fd74ff6c]:dir(rtl) {
|
|
8698
8725
|
mask-image: linear-gradient(
|
|
8699
8726
|
to left,
|
|
8700
8727
|
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
@@ -8706,10 +8733,10 @@ svg[data-v-d2b1bbe0-s],img[data-v-d2b1bbe0-s] {
|
|
|
8706
8733
|
there, and starts again. Only when it actually overflows — the controller measures by how
|
|
8707
8734
|
much — after the controls have taken their place over its end — and hands over the distance
|
|
8708
8735
|
and a duration from it, so every name moves at the same speed. */
|
|
8709
|
-
.row[data-ui-marquee] > .label > .label-text[data-v-
|
|
8736
|
+
.row[data-ui-marquee] > .label > .label-text[data-v-fd74ff6c] {
|
|
8710
8737
|
/* Once per pass: the controller restarts it after a rest at the end, so the name holds still
|
|
8711
8738
|
long enough to read rather than sliding back and forth. */
|
|
8712
|
-
animation: ui-tree-item-marquee-
|
|
8739
|
+
animation: ui-tree-item-marquee-fd74ff6c var(--_marquee-duration) linear 0.5s 1 normal forwards;
|
|
8713
8740
|
will-change: transform;
|
|
8714
8741
|
}
|
|
8715
8742
|
|
|
@@ -8717,7 +8744,7 @@ svg[data-v-d2b1bbe0-s],img[data-v-d2b1bbe0-s] {
|
|
|
8717
8744
|
slides, the label reaches back under the icon (the controller measures how far) with its text
|
|
8718
8745
|
where it was, and fades out across the gap before the icon, fully gone where the icon begins
|
|
8719
8746
|
to cover it: the name slips under the icon rather than stopping at a hard edge beside it. */
|
|
8720
|
-
.row[data-ui-marquee] > .label[data-v-
|
|
8747
|
+
.row[data-ui-marquee] > .label[data-v-fd74ff6c] {
|
|
8721
8748
|
margin-inline-start: calc(-1 * var(--_marquee-lead, 0px));
|
|
8722
8749
|
padding-inline-start: calc(
|
|
8723
8750
|
var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
|
|
@@ -8732,7 +8759,7 @@ svg[data-v-d2b1bbe0-s],img[data-v-d2b1bbe0-s] {
|
|
|
8732
8759
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
8733
8760
|
);
|
|
8734
8761
|
}
|
|
8735
|
-
.row[data-ui-marquee] > .label[data-v-
|
|
8762
|
+
.row[data-ui-marquee] > .label[data-v-fd74ff6c]:dir(rtl) {
|
|
8736
8763
|
mask-image: linear-gradient(
|
|
8737
8764
|
to left,
|
|
8738
8765
|
transparent var(--_marquee-icon-width, 0px),
|
|
@@ -8743,7 +8770,7 @@ svg[data-v-d2b1bbe0-s],img[data-v-d2b1bbe0-s] {
|
|
|
8743
8770
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
8744
8771
|
);
|
|
8745
8772
|
}
|
|
8746
|
-
@keyframes ui-tree-item-marquee-
|
|
8773
|
+
@keyframes ui-tree-item-marquee-fd74ff6c {
|
|
8747
8774
|
from {
|
|
8748
8775
|
transform: translateX(0);
|
|
8749
8776
|
}
|
|
@@ -8754,15 +8781,15 @@ to {
|
|
|
8754
8781
|
|
|
8755
8782
|
/* Reduced motion keeps the fade, which already says the name continues. */
|
|
8756
8783
|
@media (prefers-reduced-motion: reduce) {
|
|
8757
|
-
.row[data-ui-marquee] > .label > .label-text[data-v-
|
|
8784
|
+
.row[data-ui-marquee] > .label > .label-text[data-v-fd74ff6c] {
|
|
8758
8785
|
animation: none;
|
|
8759
8786
|
}
|
|
8760
8787
|
}
|
|
8761
|
-
.row:hover > .label > [data-v-
|
|
8762
|
-
.row:focus-within > .label > [data-v-
|
|
8788
|
+
.row:hover > .label > [data-v-fd74ff6c-s],
|
|
8789
|
+
.row:focus-within > .label > [data-v-fd74ff6c-s] {
|
|
8763
8790
|
text-overflow: clip;
|
|
8764
8791
|
}
|
|
8765
|
-
.actions[data-v-
|
|
8792
|
+
.actions[data-v-fd74ff6c] {
|
|
8766
8793
|
position: absolute;
|
|
8767
8794
|
z-index: 1;
|
|
8768
8795
|
inset-block: 0;
|
|
@@ -8774,19 +8801,19 @@ to {
|
|
|
8774
8801
|
pointer-events: none;
|
|
8775
8802
|
transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
|
|
8776
8803
|
}
|
|
8777
|
-
.row:hover > .actions[data-v-
|
|
8778
|
-
.row:focus-within > .actions[data-v-
|
|
8779
|
-
[data-component~="ui-tree-item"][data-move-source] > .row > .actions[data-v-
|
|
8804
|
+
.row:hover > .actions[data-v-fd74ff6c],
|
|
8805
|
+
.row:focus-within > .actions[data-v-fd74ff6c],
|
|
8806
|
+
[data-component~="ui-tree-item"][data-move-source] > .row > .actions[data-v-fd74ff6c] {
|
|
8780
8807
|
opacity: 1;
|
|
8781
8808
|
pointer-events: auto;
|
|
8782
8809
|
}
|
|
8783
8810
|
|
|
8784
8811
|
/* Without hover there is no reveal, so the controls keep their own column. */
|
|
8785
|
-
@media (hover: none) {
|
|
8786
|
-
.row[data-v-
|
|
8812
|
+
@media (hover: none), (pointer: coarse) {
|
|
8813
|
+
.row[data-v-fd74ff6c] {
|
|
8787
8814
|
grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
|
|
8788
8815
|
}
|
|
8789
|
-
.actions[data-v-
|
|
8816
|
+
.actions[data-v-fd74ff6c] {
|
|
8790
8817
|
position: static;
|
|
8791
8818
|
grid-column: 4;
|
|
8792
8819
|
grid-row: 1;
|
|
@@ -8795,13 +8822,43 @@ to {
|
|
|
8795
8822
|
opacity: 1;
|
|
8796
8823
|
pointer-events: auto;
|
|
8797
8824
|
}
|
|
8825
|
+
.row:is(:hover, :focus-within) > .label[data-v-fd74ff6c],
|
|
8826
|
+
.row:is(:hover, :focus-within) > .label[data-v-fd74ff6c]:dir(rtl),
|
|
8827
|
+
[data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-fd74ff6c],
|
|
8828
|
+
[data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-fd74ff6c]:dir(rtl) {
|
|
8829
|
+
mask-image: none;
|
|
8830
|
+
}
|
|
8831
|
+
.row[data-ui-marquee] > .label[data-v-fd74ff6c] {
|
|
8832
|
+
mask-image: linear-gradient(
|
|
8833
|
+
to right,
|
|
8834
|
+
transparent var(--_marquee-icon-width, 0px),
|
|
8835
|
+
#000 calc(
|
|
8836
|
+
var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
|
|
8837
|
+
)
|
|
8838
|
+
);
|
|
8839
|
+
}
|
|
8840
|
+
.row[data-ui-marquee] > .label[data-v-fd74ff6c]:dir(rtl) {
|
|
8841
|
+
mask-image: linear-gradient(
|
|
8842
|
+
to left,
|
|
8843
|
+
transparent var(--_marquee-icon-width, 0px),
|
|
8844
|
+
#000 calc(
|
|
8845
|
+
var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
|
|
8846
|
+
)
|
|
8847
|
+
);
|
|
8848
|
+
}
|
|
8849
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-fd74ff6c] {
|
|
8850
|
+
grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr) auto;
|
|
8851
|
+
}
|
|
8852
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .actions[data-v-fd74ff6c] {
|
|
8853
|
+
grid-column: 5;
|
|
8854
|
+
}
|
|
8798
8855
|
}
|
|
8799
8856
|
|
|
8800
8857
|
/* The handle sits beside what it drags. A leaf row has no disclosure, so the handle takes that
|
|
8801
8858
|
empty column, right before the icon; a branch's disclosure is there, so its handle sits just
|
|
8802
8859
|
outside the row. It is bare until pointed at: a resting surface behind it read as a faint
|
|
8803
8860
|
patch rather than as a control. */
|
|
8804
|
-
.drag-handle[data-v-
|
|
8861
|
+
.drag-handle[data-v-fd74ff6c] {
|
|
8805
8862
|
position: absolute;
|
|
8806
8863
|
z-index: 2;
|
|
8807
8864
|
inset-block-start: 50%;
|
|
@@ -8822,24 +8879,24 @@ to {
|
|
|
8822
8879
|
transform: translateY(-50%);
|
|
8823
8880
|
transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
|
|
8824
8881
|
}
|
|
8825
|
-
.row:hover .drag-handle[data-v-
|
|
8826
|
-
.drag-handle[data-v-
|
|
8827
|
-
.drag-handle[data-v-
|
|
8828
|
-
[data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-
|
|
8882
|
+
.row:hover .drag-handle[data-v-fd74ff6c],
|
|
8883
|
+
.drag-handle[data-v-fd74ff6c]:hover,
|
|
8884
|
+
.drag-handle[data-v-fd74ff6c]:focus-visible,
|
|
8885
|
+
[data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-fd74ff6c] {
|
|
8829
8886
|
opacity: 1;
|
|
8830
8887
|
}
|
|
8831
|
-
[data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-
|
|
8888
|
+
[data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-fd74ff6c] {
|
|
8832
8889
|
inset-inline-start: calc(-1 * var(--_tree-disclosure-size) - 2px);
|
|
8833
8890
|
}
|
|
8834
|
-
.drag-handle[data-v-
|
|
8835
|
-
.drag-handle[data-v-
|
|
8891
|
+
.drag-handle[data-v-fd74ff6c]:hover,
|
|
8892
|
+
.drag-handle[data-v-fd74ff6c]:focus-visible {
|
|
8836
8893
|
color: var(--ui-text-primary);
|
|
8837
8894
|
background: var(--ui-surface-hover);
|
|
8838
8895
|
}
|
|
8839
|
-
.drag-handle[data-v-
|
|
8896
|
+
.drag-handle[data-v-fd74ff6c]:active {
|
|
8840
8897
|
cursor: grabbing;
|
|
8841
8898
|
}
|
|
8842
|
-
.drop-indicator[data-v-
|
|
8899
|
+
.drop-indicator[data-v-fd74ff6c] {
|
|
8843
8900
|
position: absolute;
|
|
8844
8901
|
z-index: 3;
|
|
8845
8902
|
inset-inline: 1px;
|
|
@@ -8849,8 +8906,8 @@ to {
|
|
|
8849
8906
|
background: var(--_ui-tree-drop-color, var(--ui-accent-solid));
|
|
8850
8907
|
pointer-events: none;
|
|
8851
8908
|
}
|
|
8852
|
-
.drop-indicator[data-v-
|
|
8853
|
-
.drop-indicator[data-v-
|
|
8909
|
+
.drop-indicator[data-v-fd74ff6c]::before,
|
|
8910
|
+
.drop-indicator[data-v-fd74ff6c]::after {
|
|
8854
8911
|
content: "";
|
|
8855
8912
|
position: absolute;
|
|
8856
8913
|
inset-block-start: 50%;
|
|
@@ -8861,34 +8918,34 @@ to {
|
|
|
8861
8918
|
background: var(--ui-surface-elevated);
|
|
8862
8919
|
transform: translateY(-50%);
|
|
8863
8920
|
}
|
|
8864
|
-
.drop-indicator[data-v-
|
|
8921
|
+
.drop-indicator[data-v-fd74ff6c]::before {
|
|
8865
8922
|
inset-inline-start: -1px;
|
|
8866
8923
|
}
|
|
8867
|
-
.drop-indicator[data-v-
|
|
8924
|
+
.drop-indicator[data-v-fd74ff6c]::after {
|
|
8868
8925
|
inset-inline-end: -1px;
|
|
8869
8926
|
}
|
|
8870
|
-
[data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-
|
|
8927
|
+
[data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-fd74ff6c] {
|
|
8871
8928
|
display: block;
|
|
8872
8929
|
inset-block-start: calc(-0.5 * var(--ui-accent-line-width));
|
|
8873
8930
|
}
|
|
8874
|
-
[data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-
|
|
8931
|
+
[data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-fd74ff6c] {
|
|
8875
8932
|
display: block;
|
|
8876
8933
|
inset-block-end: calc(-0.5 * var(--ui-accent-line-width));
|
|
8877
8934
|
}
|
|
8878
|
-
.children[hidden][data-v-
|
|
8935
|
+
.children[hidden][data-v-fd74ff6c] {
|
|
8879
8936
|
display: none;
|
|
8880
8937
|
}
|
|
8881
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-
|
|
8938
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-fd74ff6c] {
|
|
8882
8939
|
--_tree-row-min-height: 44px;
|
|
8883
8940
|
}
|
|
8884
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-
|
|
8941
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-fd74ff6c] {
|
|
8885
8942
|
grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr);
|
|
8886
8943
|
}
|
|
8887
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-
|
|
8944
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-fd74ff6c],
|
|
8888
8945
|
html[data-ui-input-modality="touch"]
|
|
8889
8946
|
[data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"]
|
|
8890
8947
|
> .row
|
|
8891
|
-
> .drag-handle[data-v-
|
|
8948
|
+
> .drag-handle[data-v-fd74ff6c] {
|
|
8892
8949
|
position: relative;
|
|
8893
8950
|
grid-column: 1;
|
|
8894
8951
|
grid-row: 1;
|
|
@@ -8900,24 +8957,24 @@ html[data-ui-input-modality="touch"]
|
|
|
8900
8957
|
transform: none;
|
|
8901
8958
|
cursor: pointer;
|
|
8902
8959
|
}
|
|
8903
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-
|
|
8960
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-fd74ff6c] {
|
|
8904
8961
|
grid-column: 2;
|
|
8905
8962
|
}
|
|
8906
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-
|
|
8963
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-fd74ff6c] {
|
|
8907
8964
|
grid-column: 3;
|
|
8908
8965
|
}
|
|
8909
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-
|
|
8966
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-fd74ff6c] {
|
|
8910
8967
|
grid-column: 4;
|
|
8911
8968
|
}
|
|
8912
8969
|
html[data-ui-input-modality="touch"]
|
|
8913
8970
|
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
8914
|
-
> .row[data-v-
|
|
8971
|
+
> .row[data-v-fd74ff6c] {
|
|
8915
8972
|
grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr);
|
|
8916
8973
|
}
|
|
8917
8974
|
html[data-ui-input-modality="touch"]
|
|
8918
8975
|
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
8919
8976
|
> .row
|
|
8920
|
-
> .selection-hit[data-v-
|
|
8977
|
+
> .selection-hit[data-v-fd74ff6c] {
|
|
8921
8978
|
grid-column: 3;
|
|
8922
8979
|
inline-size: 44px;
|
|
8923
8980
|
block-size: 44px;
|
|
@@ -8925,36 +8982,55 @@ html[data-ui-input-modality="touch"]
|
|
|
8925
8982
|
html[data-ui-input-modality="touch"]
|
|
8926
8983
|
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
8927
8984
|
> .row
|
|
8928
|
-
> .leading[data-v-
|
|
8985
|
+
> .leading[data-v-fd74ff6c] {
|
|
8929
8986
|
grid-column: 4;
|
|
8930
8987
|
}
|
|
8931
8988
|
html[data-ui-input-modality="touch"]
|
|
8932
8989
|
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
8933
8990
|
> .row
|
|
8934
|
-
> .label[data-v-
|
|
8991
|
+
> .label[data-v-fd74ff6c] {
|
|
8935
8992
|
grid-column: 5;
|
|
8936
8993
|
}
|
|
8994
|
+
@media (hover: none), (pointer: coarse) {
|
|
8995
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-fd74ff6c] {
|
|
8996
|
+
grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
|
|
8997
|
+
}
|
|
8998
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .actions[data-v-fd74ff6c] {
|
|
8999
|
+
grid-column: 5;
|
|
9000
|
+
}
|
|
9001
|
+
html[data-ui-input-modality="touch"]
|
|
9002
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
9003
|
+
> .row[data-v-fd74ff6c] {
|
|
9004
|
+
grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr) auto;
|
|
9005
|
+
}
|
|
9006
|
+
html[data-ui-input-modality="touch"]
|
|
9007
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
9008
|
+
> .row
|
|
9009
|
+
> .actions[data-v-fd74ff6c] {
|
|
9010
|
+
grid-column: 6;
|
|
9011
|
+
}
|
|
9012
|
+
}
|
|
8937
9013
|
@media (prefers-reduced-motion: reduce) {
|
|
8938
|
-
.row[data-v-
|
|
8939
|
-
.disclosure-icon[data-v-
|
|
8940
|
-
.drag-handle[data-v-
|
|
9014
|
+
.row[data-v-fd74ff6c],
|
|
9015
|
+
.disclosure-icon[data-v-fd74ff6c],
|
|
9016
|
+
.drag-handle[data-v-fd74ff6c] {
|
|
8941
9017
|
transition: none;
|
|
8942
9018
|
}
|
|
8943
9019
|
}
|
|
8944
9020
|
@media (forced-colors: active) {
|
|
8945
|
-
[data-component~="ui-tree-item"]:focus-visible > .row[data-v-
|
|
9021
|
+
[data-component~="ui-tree-item"]:focus-visible > .row[data-v-fd74ff6c] {
|
|
8946
9022
|
outline: var(--ui-focus-width) solid Highlight;
|
|
8947
9023
|
outline-offset: calc(-1 * var(--ui-focus-width));
|
|
8948
9024
|
}
|
|
8949
9025
|
[data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"]:not(:focus-visible):not([aria-disabled="true"])
|
|
8950
|
-
> .row[data-v-
|
|
9026
|
+
> .row[data-v-fd74ff6c] {
|
|
8951
9027
|
outline: var(--ui-border-width) solid Highlight;
|
|
8952
9028
|
outline-offset: calc(-1 * var(--ui-border-width));
|
|
8953
9029
|
}
|
|
8954
9030
|
}
|
|
8955
9031
|
|
|
8956
9032
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
8957
|
-
[data-component~="ui-tree-item"][hidden][data-v-
|
|
9033
|
+
[data-component~="ui-tree-item"][hidden][data-v-fd74ff6c] {
|
|
8958
9034
|
display: none;
|
|
8959
9035
|
}
|
|
8960
9036
|
/**
|