@threadlabs/looma 0.19.0 → 0.19.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/ui-tree-item/ui-tree-item.html +5 -5
- package/components/ui-tree-item/ui-tree-item.js +20 -3
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-tree-item.css +5 -5
- package/vue/UiTreeItem.vue +5 -5
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +85 -85
package/package.json
CHANGED
package/styles/ui-tree-item.css
CHANGED
|
@@ -220,7 +220,7 @@
|
|
|
220
220
|
padding: var(--_ui-tree-item-label-padding-block, var(--ui-space-1)) var(--_ui-tree-item-label-padding-inline, var(--ui-space-2));
|
|
221
221
|
/* The length of the fade before the controls. The label's one flex child lays out no gap; this
|
|
222
222
|
is where the controller reads the length in pixels to stop a sliding name before the fade. */
|
|
223
|
-
column-gap: var(--ui-space-
|
|
223
|
+
column-gap: var(--ui-space-1);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
/* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
|
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
text-overflow: clip;
|
|
244
244
|
mask-image: linear-gradient(
|
|
245
245
|
to right,
|
|
246
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
246
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
247
247
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
248
248
|
);
|
|
249
249
|
}
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
.row:focus-within > .label:dir(rtl) {
|
|
253
253
|
mask-image: linear-gradient(
|
|
254
254
|
to left,
|
|
255
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
255
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
256
256
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
257
257
|
);
|
|
258
258
|
}
|
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
to right,
|
|
280
280
|
transparent var(--_marquee-icon-width, 0px),
|
|
281
281
|
#000 calc(var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))),
|
|
282
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
282
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
283
283
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
284
284
|
);
|
|
285
285
|
}
|
|
@@ -289,7 +289,7 @@
|
|
|
289
289
|
to left,
|
|
290
290
|
transparent var(--_marquee-icon-width, 0px),
|
|
291
291
|
#000 calc(var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))),
|
|
292
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
292
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
293
293
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
294
294
|
);
|
|
295
295
|
}
|
package/vue/UiTreeItem.vue
CHANGED
|
@@ -408,7 +408,7 @@ useComponentHost(controllerModule.default, {
|
|
|
408
408
|
var(--_ui-tree-item-label-padding-inline, var(--ui-space-2));
|
|
409
409
|
/* The length of the fade before the controls. The label's one flex child lays out no gap; this
|
|
410
410
|
is where the controller reads the length in pixels to stop a sliding name before the fade. */
|
|
411
|
-
column-gap: var(--ui-space-
|
|
411
|
+
column-gap: var(--ui-space-1);
|
|
412
412
|
}
|
|
413
413
|
|
|
414
414
|
/* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
|
|
@@ -436,7 +436,7 @@ useComponentHost(controllerModule.default, {
|
|
|
436
436
|
text-overflow: clip;
|
|
437
437
|
mask-image: linear-gradient(
|
|
438
438
|
to right,
|
|
439
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
439
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
440
440
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
441
441
|
);
|
|
442
442
|
}
|
|
@@ -445,7 +445,7 @@ useComponentHost(controllerModule.default, {
|
|
|
445
445
|
.row:focus-within > .label:dir(rtl) {
|
|
446
446
|
mask-image: linear-gradient(
|
|
447
447
|
to left,
|
|
448
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
448
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
449
449
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
450
450
|
);
|
|
451
451
|
}
|
|
@@ -476,7 +476,7 @@ useComponentHost(controllerModule.default, {
|
|
|
476
476
|
#000 calc(
|
|
477
477
|
var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
|
|
478
478
|
),
|
|
479
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
479
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
480
480
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
481
481
|
);
|
|
482
482
|
}
|
|
@@ -488,7 +488,7 @@ useComponentHost(controllerModule.default, {
|
|
|
488
488
|
#000 calc(
|
|
489
489
|
var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
|
|
490
490
|
),
|
|
491
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
491
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
492
492
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
493
493
|
);
|
|
494
494
|
}
|
package/vue/chunks/UiTreeItem.js
CHANGED
|
@@ -252,6 +252,6 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
252
252
|
], 16, _hoisted_1);
|
|
253
253
|
};
|
|
254
254
|
}
|
|
255
|
-
}), [["__scopeId", "data-v-
|
|
255
|
+
}), [["__scopeId", "data-v-f9c58f7a"]]);
|
|
256
256
|
//#endregion
|
|
257
257
|
export { UiTreeItem_default as t };
|
package/vue/components.css
CHANGED
|
@@ -7992,7 +7992,7 @@ to {
|
|
|
7992
7992
|
syntax: "*";
|
|
7993
7993
|
inherits: false;
|
|
7994
7994
|
}
|
|
7995
|
-
[data-component~="ui-tree-item"][data-v-
|
|
7995
|
+
[data-component~="ui-tree-item"][data-v-f9c58f7a] {
|
|
7996
7996
|
/* Hooks do not inherit, so the parts below read them from the root. The tree's density
|
|
7997
7997
|
sets the defaults, in --_ui-default-*. */
|
|
7998
7998
|
--_ui-tree-item-min-block-size: var(
|
|
@@ -8014,7 +8014,7 @@ to {
|
|
|
8014
8014
|
min-inline-size: 0;
|
|
8015
8015
|
margin-inline-start: calc(var(--ui-tree-item-depth, 0) * var(--_ui-tree-indent, 16px));
|
|
8016
8016
|
}
|
|
8017
|
-
.row[data-v-
|
|
8017
|
+
.row[data-v-f9c58f7a] {
|
|
8018
8018
|
position: relative;
|
|
8019
8019
|
display: grid;
|
|
8020
8020
|
grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr);
|
|
@@ -8031,39 +8031,39 @@ to {
|
|
|
8031
8031
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
|
|
8032
8032
|
min-block-size var(--ui-motion-base) var(--ui-motion-ease);
|
|
8033
8033
|
}
|
|
8034
|
-
.row[data-v-
|
|
8035
|
-
[data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] .row[data-v-
|
|
8036
|
-
.row[data-v-
|
|
8034
|
+
.row[data-v-f9c58f7a]:hover,
|
|
8035
|
+
[data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] .row[data-v-f9c58f7a],
|
|
8036
|
+
.row[data-v-f9c58f7a]:focus-within {
|
|
8037
8037
|
color: var(--ui-text-primary);
|
|
8038
8038
|
background: var(--ui-surface-muted);
|
|
8039
8039
|
}
|
|
8040
|
-
[data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-
|
|
8040
|
+
[data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-f9c58f7a] {
|
|
8041
8041
|
color: var(--ui-disabled-text);
|
|
8042
8042
|
background: var(--ui-disabled-surface);
|
|
8043
8043
|
}
|
|
8044
|
-
[data-component~="ui-tree-item"][data-dragging] .row[data-v-
|
|
8044
|
+
[data-component~="ui-tree-item"][data-dragging] .row[data-v-f9c58f7a] {
|
|
8045
8045
|
opacity: 0.42;
|
|
8046
8046
|
}
|
|
8047
|
-
[data-component~="ui-tree-item"][data-v-
|
|
8047
|
+
[data-component~="ui-tree-item"][data-v-f9c58f7a]:focus {
|
|
8048
8048
|
outline: none;
|
|
8049
8049
|
}
|
|
8050
|
-
[data-component~="ui-tree-item"]:focus-visible .row[data-v-
|
|
8050
|
+
[data-component~="ui-tree-item"]:focus-visible .row[data-v-f9c58f7a] {
|
|
8051
8051
|
box-shadow: 0 0 0 2px var(--ui-focus-ring);
|
|
8052
8052
|
}
|
|
8053
8053
|
|
|
8054
8054
|
/* Child combinators: drop feedback belongs to this item's own row, not the rows nested in it. */
|
|
8055
|
-
[data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-
|
|
8055
|
+
[data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-f9c58f7a] {
|
|
8056
8056
|
background: var(--ui-accent-subtle);
|
|
8057
8057
|
box-shadow: inset 0 0 0 1px var(--_ui-tree-drop-color, var(--ui-accent-solid));
|
|
8058
8058
|
}
|
|
8059
|
-
.disclosure[data-v-
|
|
8060
|
-
.disclosure-spacer[data-v-
|
|
8059
|
+
.disclosure[data-v-f9c58f7a],
|
|
8060
|
+
.disclosure-spacer[data-v-f9c58f7a] {
|
|
8061
8061
|
grid-column: 1;
|
|
8062
8062
|
grid-row: 1;
|
|
8063
8063
|
inline-size: var(--_tree-disclosure-size);
|
|
8064
8064
|
block-size: 28px;
|
|
8065
8065
|
}
|
|
8066
|
-
.disclosure[data-v-
|
|
8066
|
+
.disclosure[data-v-f9c58f7a] {
|
|
8067
8067
|
display: grid;
|
|
8068
8068
|
/* Start-aligned: the chevron's ink, not its hit area, aligns with the content above it. */
|
|
8069
8069
|
place-items: center start;
|
|
@@ -8074,10 +8074,10 @@ to {
|
|
|
8074
8074
|
border-radius: var(--ui-radius-sm);
|
|
8075
8075
|
cursor: pointer;
|
|
8076
8076
|
}
|
|
8077
|
-
.disclosure[hidden][data-v-
|
|
8077
|
+
.disclosure[hidden][data-v-f9c58f7a] {
|
|
8078
8078
|
display: none;
|
|
8079
8079
|
}
|
|
8080
|
-
.selection-hit[data-v-
|
|
8080
|
+
.selection-hit[data-v-f9c58f7a] {
|
|
8081
8081
|
display: none;
|
|
8082
8082
|
grid-column: 2;
|
|
8083
8083
|
grid-row: 1;
|
|
@@ -8086,29 +8086,29 @@ to {
|
|
|
8086
8086
|
block-size: var(--_ui-tree-item-min-block-size, var(--_tree-row-min-height));
|
|
8087
8087
|
cursor: pointer;
|
|
8088
8088
|
}
|
|
8089
|
-
.selection-checkbox[data-v-
|
|
8089
|
+
.selection-checkbox[data-v-f9c58f7a] {
|
|
8090
8090
|
inline-size: 1rem;
|
|
8091
8091
|
block-size: 1rem;
|
|
8092
8092
|
margin: 0;
|
|
8093
8093
|
accent-color: var(--ui-accent-solid);
|
|
8094
8094
|
}
|
|
8095
|
-
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-
|
|
8095
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-f9c58f7a] {
|
|
8096
8096
|
grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr);
|
|
8097
8097
|
}
|
|
8098
|
-
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-
|
|
8098
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-f9c58f7a] {
|
|
8099
8099
|
display: grid;
|
|
8100
8100
|
}
|
|
8101
|
-
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-
|
|
8101
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-f9c58f7a] {
|
|
8102
8102
|
grid-column: 3;
|
|
8103
8103
|
}
|
|
8104
|
-
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-
|
|
8104
|
+
[data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-f9c58f7a] {
|
|
8105
8105
|
grid-column: 4;
|
|
8106
8106
|
}
|
|
8107
|
-
.disclosure[data-v-
|
|
8107
|
+
.disclosure[data-v-f9c58f7a]:hover {
|
|
8108
8108
|
color: var(--ui-text-primary);
|
|
8109
8109
|
background: var(--ui-surface-elevated);
|
|
8110
8110
|
}
|
|
8111
|
-
.disclosure-icon[data-v-
|
|
8111
|
+
.disclosure-icon[data-v-f9c58f7a] {
|
|
8112
8112
|
display: grid;
|
|
8113
8113
|
place-items: center;
|
|
8114
8114
|
inline-size: 12px;
|
|
@@ -8116,7 +8116,7 @@ to {
|
|
|
8116
8116
|
transform: rotate(-90deg);
|
|
8117
8117
|
transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
|
|
8118
8118
|
}
|
|
8119
|
-
.disclosure-icon[data-v-
|
|
8119
|
+
.disclosure-icon[data-v-f9c58f7a]::before {
|
|
8120
8120
|
display: block;
|
|
8121
8121
|
inline-size: 0.375rem;
|
|
8122
8122
|
block-size: 0.375rem;
|
|
@@ -8126,19 +8126,19 @@ to {
|
|
|
8126
8126
|
/* A chevron's ink sits below its box centre; lift it so it centres optically (in either rotation). */
|
|
8127
8127
|
transform: translateY(-20%) rotate(45deg);
|
|
8128
8128
|
}
|
|
8129
|
-
[data-component~="ui-tree-item"][aria-expanded="true"] .disclosure-icon[data-v-
|
|
8129
|
+
[data-component~="ui-tree-item"][aria-expanded="true"] .disclosure-icon[data-v-f9c58f7a] {
|
|
8130
8130
|
transform: rotate(0deg);
|
|
8131
8131
|
}
|
|
8132
8132
|
|
|
8133
8133
|
/* Lucide grip-vertical, filling the handle as in Looma 0.2. */
|
|
8134
|
-
.drag-handle svg[data-v-
|
|
8134
|
+
.drag-handle svg[data-v-f9c58f7a] {
|
|
8135
8135
|
display: block;
|
|
8136
8136
|
inline-size: 100%;
|
|
8137
8137
|
block-size: 100%;
|
|
8138
8138
|
}
|
|
8139
8139
|
|
|
8140
8140
|
/* Slotted content is outside this scope, so :has() cannot see it; hide only a truly empty slot. */
|
|
8141
|
-
.leading[data-v-
|
|
8141
|
+
.leading[data-v-f9c58f7a] {
|
|
8142
8142
|
display: inline-grid;
|
|
8143
8143
|
place-items: center;
|
|
8144
8144
|
grid-column: 2;
|
|
@@ -8151,12 +8151,12 @@ to {
|
|
|
8151
8151
|
position: relative;
|
|
8152
8152
|
z-index: 1;
|
|
8153
8153
|
}
|
|
8154
|
-
.leading[data-v-
|
|
8154
|
+
.leading[data-v-f9c58f7a]:empty {
|
|
8155
8155
|
display: none;
|
|
8156
8156
|
}
|
|
8157
8157
|
|
|
8158
8158
|
/* Icons match the label's size (as in Knit's tree): an unsized SVG would otherwise render 300×150. */
|
|
8159
|
-
svg[data-v-
|
|
8159
|
+
svg[data-v-f9c58f7a-s],img[data-v-f9c58f7a-s] {
|
|
8160
8160
|
display: block;
|
|
8161
8161
|
inline-size: 1em;
|
|
8162
8162
|
block-size: 1em;
|
|
@@ -8165,7 +8165,7 @@ svg[data-v-78d948f0-s],img[data-v-78d948f0-s] {
|
|
|
8165
8165
|
|
|
8166
8166
|
/* The label spans the row's height and centres its content, so slotted content (a link) can
|
|
8167
8167
|
stretch to fill the row as its own hit area; the padding tokens remove the inset. */
|
|
8168
|
-
.label[data-v-
|
|
8168
|
+
.label[data-v-f9c58f7a] {
|
|
8169
8169
|
grid-column: 3;
|
|
8170
8170
|
grid-row: 1;
|
|
8171
8171
|
align-self: stretch;
|
|
@@ -8178,12 +8178,12 @@ svg[data-v-78d948f0-s],img[data-v-78d948f0-s] {
|
|
|
8178
8178
|
var(--_ui-tree-item-label-padding-inline, var(--ui-space-2));
|
|
8179
8179
|
/* The length of the fade before the controls. The label's one flex child lays out no gap; this
|
|
8180
8180
|
is where the controller reads the length in pixels to stop a sliding name before the fade. */
|
|
8181
|
-
column-gap: var(--ui-space-
|
|
8181
|
+
column-gap: var(--ui-space-1);
|
|
8182
8182
|
}
|
|
8183
8183
|
|
|
8184
8184
|
/* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
|
|
8185
8185
|
its own text and reading as overflow. */
|
|
8186
|
-
.label-text[data-v-
|
|
8186
|
+
.label-text[data-v-f9c58f7a] {
|
|
8187
8187
|
display: flex;
|
|
8188
8188
|
align-items: center;
|
|
8189
8189
|
/* Stretches, so slotted content can still be the row's full-height hit area. */
|
|
@@ -8193,27 +8193,27 @@ svg[data-v-78d948f0-s],img[data-v-78d948f0-s] {
|
|
|
8193
8193
|
inline-size: 100%;
|
|
8194
8194
|
white-space: nowrap;
|
|
8195
8195
|
}
|
|
8196
|
-
.label-text > [data-v-
|
|
8196
|
+
.label-text > [data-v-f9c58f7a-s] {
|
|
8197
8197
|
flex: 1 1 auto;
|
|
8198
8198
|
min-inline-size: 0;
|
|
8199
8199
|
}
|
|
8200
8200
|
|
|
8201
8201
|
/* The controls sit over the label's end, so the text fades out where they begin. The fade is
|
|
8202
8202
|
the truncation mark while it shows: an ellipsis under it would read as a second one. */
|
|
8203
|
-
.row:hover > .label[data-v-
|
|
8204
|
-
.row:focus-within > .label[data-v-
|
|
8203
|
+
.row:hover > .label[data-v-f9c58f7a],
|
|
8204
|
+
.row:focus-within > .label[data-v-f9c58f7a] {
|
|
8205
8205
|
text-overflow: clip;
|
|
8206
8206
|
mask-image: linear-gradient(
|
|
8207
8207
|
to right,
|
|
8208
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
8208
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
8209
8209
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
8210
8210
|
);
|
|
8211
8211
|
}
|
|
8212
|
-
.row:hover > .label[data-v-
|
|
8213
|
-
.row:focus-within > .label[data-v-
|
|
8212
|
+
.row:hover > .label[data-v-f9c58f7a]:dir(rtl),
|
|
8213
|
+
.row:focus-within > .label[data-v-f9c58f7a]:dir(rtl) {
|
|
8214
8214
|
mask-image: linear-gradient(
|
|
8215
8215
|
to left,
|
|
8216
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
8216
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
8217
8217
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
8218
8218
|
);
|
|
8219
8219
|
}
|
|
@@ -8222,10 +8222,10 @@ svg[data-v-78d948f0-s],img[data-v-78d948f0-s] {
|
|
|
8222
8222
|
there, and starts again. Only when it actually overflows — the controller measures by how
|
|
8223
8223
|
much — after the controls have taken their place over its end — and hands over the distance
|
|
8224
8224
|
and a duration from it, so every name moves at the same speed. */
|
|
8225
|
-
.row[data-ui-marquee] > .label > .label-text[data-v-
|
|
8225
|
+
.row[data-ui-marquee] > .label > .label-text[data-v-f9c58f7a] {
|
|
8226
8226
|
/* Once per pass: the controller restarts it after a rest at the end, so the name holds still
|
|
8227
8227
|
long enough to read rather than sliding back and forth. */
|
|
8228
|
-
animation: ui-tree-item-marquee-
|
|
8228
|
+
animation: ui-tree-item-marquee-f9c58f7a var(--_marquee-duration) linear 0.5s 1 normal forwards;
|
|
8229
8229
|
will-change: transform;
|
|
8230
8230
|
}
|
|
8231
8231
|
|
|
@@ -8233,7 +8233,7 @@ svg[data-v-78d948f0-s],img[data-v-78d948f0-s] {
|
|
|
8233
8233
|
slides, the label reaches back under the icon (the controller measures how far) with its text
|
|
8234
8234
|
where it was, and fades out across the gap before the icon, fully gone where the icon begins
|
|
8235
8235
|
to cover it: the name slips under the icon rather than stopping at a hard edge beside it. */
|
|
8236
|
-
.row[data-ui-marquee] > .label[data-v-
|
|
8236
|
+
.row[data-ui-marquee] > .label[data-v-f9c58f7a] {
|
|
8237
8237
|
margin-inline-start: calc(-1 * var(--_marquee-lead, 0px));
|
|
8238
8238
|
padding-inline-start: calc(
|
|
8239
8239
|
var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
|
|
@@ -8244,22 +8244,22 @@ svg[data-v-78d948f0-s],img[data-v-78d948f0-s] {
|
|
|
8244
8244
|
#000 calc(
|
|
8245
8245
|
var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
|
|
8246
8246
|
),
|
|
8247
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
8247
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
8248
8248
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
8249
8249
|
);
|
|
8250
8250
|
}
|
|
8251
|
-
.row[data-ui-marquee] > .label[data-v-
|
|
8251
|
+
.row[data-ui-marquee] > .label[data-v-f9c58f7a]:dir(rtl) {
|
|
8252
8252
|
mask-image: linear-gradient(
|
|
8253
8253
|
to left,
|
|
8254
8254
|
transparent var(--_marquee-icon-width, 0px),
|
|
8255
8255
|
#000 calc(
|
|
8256
8256
|
var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
|
|
8257
8257
|
),
|
|
8258
|
-
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-
|
|
8258
|
+
#000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
|
|
8259
8259
|
transparent calc(100% - var(--_tree-actions-width, 1.75rem))
|
|
8260
8260
|
);
|
|
8261
8261
|
}
|
|
8262
|
-
@keyframes ui-tree-item-marquee-
|
|
8262
|
+
@keyframes ui-tree-item-marquee-f9c58f7a {
|
|
8263
8263
|
from {
|
|
8264
8264
|
transform: translateX(0);
|
|
8265
8265
|
}
|
|
@@ -8270,15 +8270,15 @@ to {
|
|
|
8270
8270
|
|
|
8271
8271
|
/* Reduced motion keeps the fade, which already says the name continues. */
|
|
8272
8272
|
@media (prefers-reduced-motion: reduce) {
|
|
8273
|
-
.row[data-ui-marquee] > .label > .label-text[data-v-
|
|
8273
|
+
.row[data-ui-marquee] > .label > .label-text[data-v-f9c58f7a] {
|
|
8274
8274
|
animation: none;
|
|
8275
8275
|
}
|
|
8276
8276
|
}
|
|
8277
|
-
.row:hover > .label > [data-v-
|
|
8278
|
-
.row:focus-within > .label > [data-v-
|
|
8277
|
+
.row:hover > .label > [data-v-f9c58f7a-s],
|
|
8278
|
+
.row:focus-within > .label > [data-v-f9c58f7a-s] {
|
|
8279
8279
|
text-overflow: clip;
|
|
8280
8280
|
}
|
|
8281
|
-
.actions[data-v-
|
|
8281
|
+
.actions[data-v-f9c58f7a] {
|
|
8282
8282
|
position: absolute;
|
|
8283
8283
|
z-index: 1;
|
|
8284
8284
|
inset-block: 0;
|
|
@@ -8290,18 +8290,18 @@ to {
|
|
|
8290
8290
|
pointer-events: none;
|
|
8291
8291
|
transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
|
|
8292
8292
|
}
|
|
8293
|
-
.row:hover > .actions[data-v-
|
|
8294
|
-
.row:focus-within > .actions[data-v-
|
|
8293
|
+
.row:hover > .actions[data-v-f9c58f7a],
|
|
8294
|
+
.row:focus-within > .actions[data-v-f9c58f7a] {
|
|
8295
8295
|
opacity: 1;
|
|
8296
8296
|
pointer-events: auto;
|
|
8297
8297
|
}
|
|
8298
8298
|
|
|
8299
8299
|
/* Without hover there is no reveal, so the controls keep their own column. */
|
|
8300
8300
|
@media (hover: none) {
|
|
8301
|
-
.row[data-v-
|
|
8301
|
+
.row[data-v-f9c58f7a] {
|
|
8302
8302
|
grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
|
|
8303
8303
|
}
|
|
8304
|
-
.actions[data-v-
|
|
8304
|
+
.actions[data-v-f9c58f7a] {
|
|
8305
8305
|
position: static;
|
|
8306
8306
|
grid-column: 4;
|
|
8307
8307
|
grid-row: 1;
|
|
@@ -8316,7 +8316,7 @@ to {
|
|
|
8316
8316
|
empty column, right before the icon; a branch's disclosure is there, so its handle sits just
|
|
8317
8317
|
outside the row. It is bare until pointed at: a resting surface behind it read as a faint
|
|
8318
8318
|
patch rather than as a control. */
|
|
8319
|
-
.drag-handle[data-v-
|
|
8319
|
+
.drag-handle[data-v-f9c58f7a] {
|
|
8320
8320
|
position: absolute;
|
|
8321
8321
|
z-index: 2;
|
|
8322
8322
|
inset-block-start: 50%;
|
|
@@ -8337,24 +8337,24 @@ to {
|
|
|
8337
8337
|
transform: translateY(-50%);
|
|
8338
8338
|
transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
|
|
8339
8339
|
}
|
|
8340
|
-
.row:hover .drag-handle[data-v-
|
|
8341
|
-
.drag-handle[data-v-
|
|
8342
|
-
.drag-handle[data-v-
|
|
8343
|
-
[data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-
|
|
8340
|
+
.row:hover .drag-handle[data-v-f9c58f7a],
|
|
8341
|
+
.drag-handle[data-v-f9c58f7a]:hover,
|
|
8342
|
+
.drag-handle[data-v-f9c58f7a]:focus-visible,
|
|
8343
|
+
[data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-f9c58f7a] {
|
|
8344
8344
|
opacity: 1;
|
|
8345
8345
|
}
|
|
8346
|
-
[data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-
|
|
8346
|
+
[data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-f9c58f7a] {
|
|
8347
8347
|
inset-inline-start: calc(-1 * var(--_tree-disclosure-size) - 2px);
|
|
8348
8348
|
}
|
|
8349
|
-
.drag-handle[data-v-
|
|
8350
|
-
.drag-handle[data-v-
|
|
8349
|
+
.drag-handle[data-v-f9c58f7a]:hover,
|
|
8350
|
+
.drag-handle[data-v-f9c58f7a]:focus-visible {
|
|
8351
8351
|
color: var(--ui-text-primary);
|
|
8352
8352
|
background: var(--ui-surface-hover);
|
|
8353
8353
|
}
|
|
8354
|
-
.drag-handle[data-v-
|
|
8354
|
+
.drag-handle[data-v-f9c58f7a]:active {
|
|
8355
8355
|
cursor: grabbing;
|
|
8356
8356
|
}
|
|
8357
|
-
.drop-indicator[data-v-
|
|
8357
|
+
.drop-indicator[data-v-f9c58f7a] {
|
|
8358
8358
|
position: absolute;
|
|
8359
8359
|
z-index: 3;
|
|
8360
8360
|
inset-inline: 1px;
|
|
@@ -8364,8 +8364,8 @@ to {
|
|
|
8364
8364
|
background: var(--_ui-tree-drop-color, var(--ui-accent-solid));
|
|
8365
8365
|
pointer-events: none;
|
|
8366
8366
|
}
|
|
8367
|
-
.drop-indicator[data-v-
|
|
8368
|
-
.drop-indicator[data-v-
|
|
8367
|
+
.drop-indicator[data-v-f9c58f7a]::before,
|
|
8368
|
+
.drop-indicator[data-v-f9c58f7a]::after {
|
|
8369
8369
|
content: "";
|
|
8370
8370
|
position: absolute;
|
|
8371
8371
|
inset-block-start: 50%;
|
|
@@ -8376,34 +8376,34 @@ to {
|
|
|
8376
8376
|
background: var(--ui-surface-elevated);
|
|
8377
8377
|
transform: translateY(-50%);
|
|
8378
8378
|
}
|
|
8379
|
-
.drop-indicator[data-v-
|
|
8379
|
+
.drop-indicator[data-v-f9c58f7a]::before {
|
|
8380
8380
|
inset-inline-start: -1px;
|
|
8381
8381
|
}
|
|
8382
|
-
.drop-indicator[data-v-
|
|
8382
|
+
.drop-indicator[data-v-f9c58f7a]::after {
|
|
8383
8383
|
inset-inline-end: -1px;
|
|
8384
8384
|
}
|
|
8385
|
-
[data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-
|
|
8385
|
+
[data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-f9c58f7a] {
|
|
8386
8386
|
display: block;
|
|
8387
8387
|
inset-block-start: -1px;
|
|
8388
8388
|
}
|
|
8389
|
-
[data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-
|
|
8389
|
+
[data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-f9c58f7a] {
|
|
8390
8390
|
display: block;
|
|
8391
8391
|
inset-block-end: -1px;
|
|
8392
8392
|
}
|
|
8393
|
-
.children[hidden][data-v-
|
|
8393
|
+
.children[hidden][data-v-f9c58f7a] {
|
|
8394
8394
|
display: none;
|
|
8395
8395
|
}
|
|
8396
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-
|
|
8396
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-f9c58f7a] {
|
|
8397
8397
|
--_tree-row-min-height: 44px;
|
|
8398
8398
|
}
|
|
8399
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-
|
|
8399
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-f9c58f7a] {
|
|
8400
8400
|
grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr);
|
|
8401
8401
|
}
|
|
8402
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-
|
|
8402
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-f9c58f7a],
|
|
8403
8403
|
html[data-ui-input-modality="touch"]
|
|
8404
8404
|
[data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"]
|
|
8405
8405
|
> .row
|
|
8406
|
-
> .drag-handle[data-v-
|
|
8406
|
+
> .drag-handle[data-v-f9c58f7a] {
|
|
8407
8407
|
position: relative;
|
|
8408
8408
|
grid-column: 1;
|
|
8409
8409
|
grid-row: 1;
|
|
@@ -8415,24 +8415,24 @@ html[data-ui-input-modality="touch"]
|
|
|
8415
8415
|
transform: none;
|
|
8416
8416
|
cursor: pointer;
|
|
8417
8417
|
}
|
|
8418
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-
|
|
8418
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-f9c58f7a] {
|
|
8419
8419
|
grid-column: 2;
|
|
8420
8420
|
}
|
|
8421
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-
|
|
8421
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-f9c58f7a] {
|
|
8422
8422
|
grid-column: 3;
|
|
8423
8423
|
}
|
|
8424
|
-
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-
|
|
8424
|
+
html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-f9c58f7a] {
|
|
8425
8425
|
grid-column: 4;
|
|
8426
8426
|
}
|
|
8427
8427
|
html[data-ui-input-modality="touch"]
|
|
8428
8428
|
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
8429
|
-
> .row[data-v-
|
|
8429
|
+
> .row[data-v-f9c58f7a] {
|
|
8430
8430
|
grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr);
|
|
8431
8431
|
}
|
|
8432
8432
|
html[data-ui-input-modality="touch"]
|
|
8433
8433
|
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
8434
8434
|
> .row
|
|
8435
|
-
> .selection-hit[data-v-
|
|
8435
|
+
> .selection-hit[data-v-f9c58f7a] {
|
|
8436
8436
|
grid-column: 3;
|
|
8437
8437
|
inline-size: 44px;
|
|
8438
8438
|
block-size: 44px;
|
|
@@ -8440,25 +8440,25 @@ html[data-ui-input-modality="touch"]
|
|
|
8440
8440
|
html[data-ui-input-modality="touch"]
|
|
8441
8441
|
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
8442
8442
|
> .row
|
|
8443
|
-
> .leading[data-v-
|
|
8443
|
+
> .leading[data-v-f9c58f7a] {
|
|
8444
8444
|
grid-column: 4;
|
|
8445
8445
|
}
|
|
8446
8446
|
html[data-ui-input-modality="touch"]
|
|
8447
8447
|
[data-component~="ui-tree-item"][data-selection-mode="multiple"]
|
|
8448
8448
|
> .row
|
|
8449
|
-
> .label[data-v-
|
|
8449
|
+
> .label[data-v-f9c58f7a] {
|
|
8450
8450
|
grid-column: 5;
|
|
8451
8451
|
}
|
|
8452
8452
|
@media (prefers-reduced-motion: reduce) {
|
|
8453
|
-
.row[data-v-
|
|
8454
|
-
.disclosure-icon[data-v-
|
|
8455
|
-
.drag-handle[data-v-
|
|
8453
|
+
.row[data-v-f9c58f7a],
|
|
8454
|
+
.disclosure-icon[data-v-f9c58f7a],
|
|
8455
|
+
.drag-handle[data-v-f9c58f7a] {
|
|
8456
8456
|
transition: none;
|
|
8457
8457
|
}
|
|
8458
8458
|
}
|
|
8459
8459
|
|
|
8460
8460
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
8461
|
-
[data-component~="ui-tree-item"][hidden][data-v-
|
|
8461
|
+
[data-component~="ui-tree-item"][hidden][data-v-f9c58f7a] {
|
|
8462
8462
|
display: none;
|
|
8463
8463
|
}
|
|
8464
8464
|
/**
|