@threadlabs/looma 0.25.6 → 0.25.7

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.
@@ -8952,7 +8952,7 @@ to {
8952
8952
  syntax: "*";
8953
8953
  inherits: false;
8954
8954
  }
8955
- [data-component~="ui-tree-item"][data-v-f2ec0a81] {
8955
+ [data-component~="ui-tree-item"][data-v-dc15f210] {
8956
8956
  /* Hooks do not inherit, so the parts below read them from the root. The tree's density
8957
8957
  sets the defaults, in --_ui-default-*. */
8958
8958
  --_ui-tree-item-min-block-size: var(
@@ -8974,7 +8974,7 @@ to {
8974
8974
  min-inline-size: 0;
8975
8975
  margin-inline-start: calc(var(--_ui-tree-item-indent-step, 0) * var(--_ui-tree-indent, 16px));
8976
8976
  }
8977
- .row[data-v-f2ec0a81] {
8977
+ .row[data-v-dc15f210] {
8978
8978
  position: relative;
8979
8979
  display: grid;
8980
8980
  grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr);
@@ -8991,54 +8991,54 @@ to {
8991
8991
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
8992
8992
  min-block-size var(--ui-motion-base) var(--ui-motion-ease);
8993
8993
  }
8994
- .row[data-v-f2ec0a81]:hover,
8995
- .row[data-v-f2ec0a81]:focus-within {
8994
+ .row[data-v-dc15f210]:hover,
8995
+ .row[data-v-dc15f210]:focus-within {
8996
8996
  color: var(--ui-text-primary);
8997
8997
  background: var(--ui-surface-muted);
8998
8998
  }
8999
8999
 
9000
9000
  /* Selection is the same surface recipe as destination and choice rows. */
9001
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] > .row[data-v-f2ec0a81] {
9001
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] > .row[data-v-dc15f210] {
9002
9002
  color: var(--ui-selection-text);
9003
9003
  background: var(--ui-selection-surface);
9004
9004
  }
9005
9005
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"]:not([aria-disabled="true"])
9006
9006
  > .row
9007
- > .leading[data-v-f2ec0a81] {
9007
+ > .leading[data-v-dc15f210] {
9008
9008
  color: var(--ui-selection-text);
9009
9009
  }
9010
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-f2ec0a81] {
9010
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-dc15f210] {
9011
9011
  color: var(--ui-disabled-text);
9012
9012
  background: var(--ui-disabled-surface);
9013
9013
  }
9014
- [data-component~="ui-tree-item"][data-dragging]:not([data-move-source]) .row[data-v-f2ec0a81] {
9014
+ [data-component~="ui-tree-item"][data-dragging]:not([data-move-source]) .row[data-v-dc15f210] {
9015
9015
  opacity: 0.42;
9016
9016
  }
9017
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81],
9018
- [data-component~="ui-tree-item"][data-move-source] > .row > .leading[data-v-f2ec0a81] {
9017
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210],
9018
+ [data-component~="ui-tree-item"][data-move-source] > .row > .leading[data-v-dc15f210] {
9019
9019
  opacity: 0.42;
9020
9020
  }
9021
- [data-component~="ui-tree-item"][data-v-f2ec0a81]:focus {
9021
+ [data-component~="ui-tree-item"][data-v-dc15f210]:focus {
9022
9022
  outline: none;
9023
9023
  }
9024
- [data-component~="ui-tree-item"]:focus-visible .row[data-v-f2ec0a81] {
9024
+ [data-component~="ui-tree-item"]:focus-visible .row[data-v-dc15f210] {
9025
9025
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
9026
9026
  }
9027
9027
 
9028
9028
  /* Child combinators: drop feedback belongs to this item's own row, not the rows nested in it. */
9029
- [data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-f2ec0a81] {
9029
+ [data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-dc15f210] {
9030
9030
  background: var(--ui-accent-subtle);
9031
9031
  box-shadow: inset 0 0 0 var(--ui-accent-line-width)
9032
9032
  var(--_ui-tree-drop-color, var(--ui-accent-solid));
9033
9033
  }
9034
- .disclosure[data-v-f2ec0a81],
9035
- .disclosure-spacer[data-v-f2ec0a81] {
9034
+ .disclosure[data-v-dc15f210],
9035
+ .disclosure-spacer[data-v-dc15f210] {
9036
9036
  grid-column: 1;
9037
9037
  grid-row: 1;
9038
9038
  inline-size: var(--_tree-disclosure-size);
9039
9039
  block-size: 28px;
9040
9040
  }
9041
- .disclosure[data-v-f2ec0a81] {
9041
+ .disclosure[data-v-dc15f210] {
9042
9042
  display: grid;
9043
9043
  /* Start-aligned: the chevron's ink, not its hit area, aligns with the content above it. */
9044
9044
  place-items: center start;
@@ -9049,10 +9049,10 @@ to {
9049
9049
  border-radius: var(--ui-radius-sm);
9050
9050
  cursor: pointer;
9051
9051
  }
9052
- .disclosure[hidden][data-v-f2ec0a81] {
9052
+ .disclosure[hidden][data-v-dc15f210] {
9053
9053
  display: none;
9054
9054
  }
9055
- .selection-hit[data-v-f2ec0a81] {
9055
+ .selection-hit[data-v-dc15f210] {
9056
9056
  display: none;
9057
9057
  grid-column: 2;
9058
9058
  grid-row: 1;
@@ -9061,29 +9061,29 @@ to {
9061
9061
  block-size: var(--_ui-tree-item-min-block-size, var(--_tree-row-min-height));
9062
9062
  cursor: pointer;
9063
9063
  }
9064
- .selection-checkbox[data-v-f2ec0a81] {
9064
+ .selection-checkbox[data-v-dc15f210] {
9065
9065
  inline-size: 1rem;
9066
9066
  block-size: 1rem;
9067
9067
  margin: 0;
9068
9068
  accent-color: var(--ui-accent-solid);
9069
9069
  }
9070
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-f2ec0a81] {
9070
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-dc15f210] {
9071
9071
  grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr);
9072
9072
  }
9073
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-f2ec0a81] {
9073
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-dc15f210] {
9074
9074
  display: grid;
9075
9075
  }
9076
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-f2ec0a81] {
9076
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-dc15f210] {
9077
9077
  grid-column: 3;
9078
9078
  }
9079
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-f2ec0a81] {
9079
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-dc15f210] {
9080
9080
  grid-column: 4;
9081
9081
  }
9082
- .disclosure[data-v-f2ec0a81]:hover {
9082
+ .disclosure[data-v-dc15f210]:hover {
9083
9083
  color: var(--ui-text-primary);
9084
9084
  background: var(--ui-surface-elevated);
9085
9085
  }
9086
- .disclosure-icon[data-v-f2ec0a81] {
9086
+ .disclosure-icon[data-v-dc15f210] {
9087
9087
  display: grid;
9088
9088
  place-items: center;
9089
9089
  inline-size: 12px;
@@ -9091,7 +9091,7 @@ to {
9091
9091
  transform: rotate(-90deg);
9092
9092
  transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
9093
9093
  }
9094
- .disclosure-icon[data-v-f2ec0a81]::before {
9094
+ .disclosure-icon[data-v-dc15f210]::before {
9095
9095
  display: block;
9096
9096
  inline-size: 0.375rem;
9097
9097
  block-size: 0.375rem;
@@ -9101,19 +9101,19 @@ to {
9101
9101
  /* A chevron's ink sits below its box centre; lift it so it centres optically (in either rotation). */
9102
9102
  transform: translateY(-20%) rotate(45deg);
9103
9103
  }
9104
- [data-component~="ui-tree-item"][aria-expanded="true"] > .row > .disclosure > .disclosure-icon[data-v-f2ec0a81] {
9104
+ [data-component~="ui-tree-item"][aria-expanded="true"] > .row > .disclosure > .disclosure-icon[data-v-dc15f210] {
9105
9105
  transform: rotate(0deg);
9106
9106
  }
9107
9107
 
9108
9108
  /* Lucide grip-vertical, filling the handle as in Looma 0.2. */
9109
- .drag-handle svg[data-v-f2ec0a81] {
9109
+ .drag-handle svg[data-v-dc15f210] {
9110
9110
  display: block;
9111
9111
  inline-size: 100%;
9112
9112
  block-size: 100%;
9113
9113
  }
9114
9114
 
9115
9115
  /* Slotted content is outside this scope, so :has() cannot see it; hide only a truly empty slot. */
9116
- .leading[data-v-f2ec0a81] {
9116
+ .leading[data-v-dc15f210] {
9117
9117
  display: inline-grid;
9118
9118
  place-items: center;
9119
9119
  grid-column: 2;
@@ -9126,12 +9126,12 @@ to {
9126
9126
  position: relative;
9127
9127
  z-index: 1;
9128
9128
  }
9129
- .leading[data-v-f2ec0a81]:empty {
9129
+ .leading[data-v-dc15f210]:empty {
9130
9130
  display: none;
9131
9131
  }
9132
9132
 
9133
9133
  /* Icons match the label's size (as in Knit's tree): an unsized SVG would otherwise render 300×150. */
9134
- svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9134
+ svg[data-v-dc15f210-s],img[data-v-dc15f210-s] {
9135
9135
  display: block;
9136
9136
  inline-size: 1em;
9137
9137
  block-size: 1em;
@@ -9140,7 +9140,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9140
9140
 
9141
9141
  /* The label spans the row's height and centres its content, so slotted content (a link) can
9142
9142
  stretch to fill the row as its own hit area; the padding tokens remove the inset. */
9143
- .label[data-v-f2ec0a81] {
9143
+ .label[data-v-dc15f210] {
9144
9144
  grid-column: 3;
9145
9145
  grid-row: 1;
9146
9146
  align-self: stretch;
@@ -9158,7 +9158,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9158
9158
 
9159
9159
  /* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
9160
9160
  its own text and reading as overflow. */
9161
- .label-text[data-v-f2ec0a81] {
9161
+ .label-text[data-v-dc15f210] {
9162
9162
  display: flex;
9163
9163
  align-items: center;
9164
9164
  /* Stretches, so slotted content can still be the row's full-height hit area. */
@@ -9168,16 +9168,17 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9168
9168
  inline-size: 100%;
9169
9169
  white-space: nowrap;
9170
9170
  }
9171
- .label-text > [data-v-f2ec0a81-s] {
9171
+ .label-text > [data-v-dc15f210-s] {
9172
9172
  flex: 1 1 auto;
9173
9173
  min-inline-size: 0;
9174
9174
  }
9175
9175
 
9176
9176
  /* The controls sit over the label's end, so the text fades out where they begin. The fade is
9177
9177
  the truncation mark while it shows: an ellipsis under it would read as a second one. */
9178
- .row:hover > .label[data-v-f2ec0a81],
9179
- .row:focus-within > .label[data-v-f2ec0a81],
9180
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81] {
9178
+ .row:hover > .label[data-v-dc15f210],
9179
+ .row:focus-within > .label[data-v-dc15f210],
9180
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .label[data-v-dc15f210],
9181
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210] {
9181
9182
  text-overflow: clip;
9182
9183
  mask-image: linear-gradient(
9183
9184
  to right,
@@ -9185,9 +9186,12 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9185
9186
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9186
9187
  );
9187
9188
  }
9188
- .row:hover > .label[data-v-f2ec0a81]:dir(rtl),
9189
- .row:focus-within > .label[data-v-f2ec0a81]:dir(rtl),
9190
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81]:dir(rtl) {
9189
+ .row:hover > .label[data-v-dc15f210]:dir(rtl),
9190
+ .row:focus-within > .label[data-v-dc15f210]:dir(rtl),
9191
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"]
9192
+ > .row
9193
+ > .label[data-v-dc15f210]:dir(rtl),
9194
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210]:dir(rtl) {
9191
9195
  mask-image: linear-gradient(
9192
9196
  to left,
9193
9197
  #000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
@@ -9199,10 +9203,10 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9199
9203
  there, and starts again. Only when it actually overflows — the controller measures by how
9200
9204
  much — after the controls have taken their place over its end — and hands over the distance
9201
9205
  and a duration from it, so every name moves at the same speed. */
9202
- .row[data-ui-marquee] > .label > .label-text[data-v-f2ec0a81] {
9206
+ .row[data-ui-marquee] > .label > .label-text[data-v-dc15f210] {
9203
9207
  /* Once per pass: the controller restarts it after a rest at the end, so the name holds still
9204
9208
  long enough to read rather than sliding back and forth. */
9205
- animation: ui-tree-item-marquee-f2ec0a81 var(--_marquee-duration) linear 0.5s 1 normal forwards;
9209
+ animation: ui-tree-item-marquee-dc15f210 var(--_marquee-duration) linear 0.5s 1 normal forwards;
9206
9210
  will-change: transform;
9207
9211
  }
9208
9212
 
@@ -9210,7 +9214,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9210
9214
  slides, the label reaches back under the icon (the controller measures how far) with its text
9211
9215
  where it was, and fades out across the gap before the icon, fully gone where the icon begins
9212
9216
  to cover it: the name slips under the icon rather than stopping at a hard edge beside it. */
9213
- .row[data-ui-marquee] > .label[data-v-f2ec0a81] {
9217
+ .row[data-ui-marquee] > .label[data-v-dc15f210] {
9214
9218
  margin-inline-start: calc(-1 * var(--_marquee-lead, 0px));
9215
9219
  padding-inline-start: calc(
9216
9220
  var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
@@ -9225,7 +9229,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9225
9229
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9226
9230
  );
9227
9231
  }
9228
- .row[data-ui-marquee] > .label[data-v-f2ec0a81]:dir(rtl) {
9232
+ .row[data-ui-marquee] > .label[data-v-dc15f210]:dir(rtl) {
9229
9233
  mask-image: linear-gradient(
9230
9234
  to left,
9231
9235
  transparent var(--_marquee-icon-width, 0px),
@@ -9236,7 +9240,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9236
9240
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9237
9241
  );
9238
9242
  }
9239
- @keyframes ui-tree-item-marquee-f2ec0a81 {
9243
+ @keyframes ui-tree-item-marquee-dc15f210 {
9240
9244
  from {
9241
9245
  transform: translateX(0);
9242
9246
  }
@@ -9247,15 +9251,15 @@ to {
9247
9251
 
9248
9252
  /* Reduced motion keeps the fade, which already says the name continues. */
9249
9253
  @media (prefers-reduced-motion: reduce) {
9250
- .row[data-ui-marquee] > .label > .label-text[data-v-f2ec0a81] {
9254
+ .row[data-ui-marquee] > .label > .label-text[data-v-dc15f210] {
9251
9255
  animation: none;
9252
9256
  }
9253
9257
  }
9254
- .row:hover > .label > [data-v-f2ec0a81-s],
9255
- .row:focus-within > .label > [data-v-f2ec0a81-s] {
9258
+ .row:hover > .label > [data-v-dc15f210-s],
9259
+ .row:focus-within > .label > [data-v-dc15f210-s] {
9256
9260
  text-overflow: clip;
9257
9261
  }
9258
- .actions[data-v-f2ec0a81] {
9262
+ .actions[data-v-dc15f210] {
9259
9263
  position: absolute;
9260
9264
  z-index: 1;
9261
9265
  inset-block: 0;
@@ -9267,19 +9271,20 @@ to {
9267
9271
  pointer-events: none;
9268
9272
  transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
9269
9273
  }
9270
- .row:hover > .actions[data-v-f2ec0a81],
9271
- .row:focus-within > .actions[data-v-f2ec0a81],
9272
- [data-component~="ui-tree-item"][data-move-source] > .row > .actions[data-v-f2ec0a81] {
9274
+ .row:hover > .actions[data-v-dc15f210],
9275
+ .row:focus-within > .actions[data-v-dc15f210],
9276
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .actions[data-v-dc15f210],
9277
+ [data-component~="ui-tree-item"][data-move-source] > .row > .actions[data-v-dc15f210] {
9273
9278
  opacity: 1;
9274
9279
  pointer-events: auto;
9275
9280
  }
9276
9281
 
9277
9282
  /* Without hover there is no reveal, so the controls keep their own column. */
9278
9283
  @media (hover: none), (pointer: coarse) {
9279
- .row[data-v-f2ec0a81] {
9284
+ .row[data-v-dc15f210] {
9280
9285
  grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
9281
9286
  }
9282
- .actions[data-v-f2ec0a81] {
9287
+ .actions[data-v-dc15f210] {
9283
9288
  position: static;
9284
9289
  grid-column: 4;
9285
9290
  grid-row: 1;
@@ -9288,13 +9293,13 @@ to {
9288
9293
  opacity: 1;
9289
9294
  pointer-events: auto;
9290
9295
  }
9291
- .row:is(:hover, :focus-within) > .label[data-v-f2ec0a81],
9292
- .row:is(:hover, :focus-within) > .label[data-v-f2ec0a81]:dir(rtl),
9293
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81],
9294
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81]:dir(rtl) {
9296
+ .row:is(:hover, :focus-within) > .label[data-v-dc15f210],
9297
+ .row:is(:hover, :focus-within) > .label[data-v-dc15f210]:dir(rtl),
9298
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210],
9299
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210]:dir(rtl) {
9295
9300
  mask-image: none;
9296
9301
  }
9297
- .row[data-ui-marquee] > .label[data-v-f2ec0a81] {
9302
+ .row[data-ui-marquee] > .label[data-v-dc15f210] {
9298
9303
  mask-image: linear-gradient(
9299
9304
  to right,
9300
9305
  transparent var(--_marquee-icon-width, 0px),
@@ -9303,7 +9308,17 @@ to {
9303
9308
  )
9304
9309
  );
9305
9310
  }
9306
- .row[data-ui-marquee] > .label[data-v-f2ec0a81]:dir(rtl) {
9311
+
9312
+ /* Persistent content has its own column on touch. Fade only the label's end. */
9313
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .label[data-v-dc15f210] {
9314
+ mask-image: linear-gradient(to right, #000 calc(100% - var(--ui-space-1)), transparent 100%);
9315
+ }
9316
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"]
9317
+ > .row
9318
+ > .label[data-v-dc15f210]:dir(rtl) {
9319
+ mask-image: linear-gradient(to left, #000 calc(100% - var(--ui-space-1)), transparent 100%);
9320
+ }
9321
+ .row[data-ui-marquee] > .label[data-v-dc15f210]:dir(rtl) {
9307
9322
  mask-image: linear-gradient(
9308
9323
  to left,
9309
9324
  transparent var(--_marquee-icon-width, 0px),
@@ -9312,10 +9327,10 @@ to {
9312
9327
  )
9313
9328
  );
9314
9329
  }
9315
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-f2ec0a81] {
9330
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-dc15f210] {
9316
9331
  grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr) auto;
9317
9332
  }
9318
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .actions[data-v-f2ec0a81] {
9333
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .actions[data-v-dc15f210] {
9319
9334
  grid-column: 5;
9320
9335
  }
9321
9336
  }
@@ -9324,7 +9339,7 @@ to {
9324
9339
  empty column, right before the icon; a branch's disclosure is there, so its handle sits just
9325
9340
  outside the row. It is bare until pointed at: a resting surface behind it read as a faint
9326
9341
  patch rather than as a control. */
9327
- .drag-handle[data-v-f2ec0a81] {
9342
+ .drag-handle[data-v-dc15f210] {
9328
9343
  position: absolute;
9329
9344
  z-index: 2;
9330
9345
  inset-block-start: 50%;
@@ -9345,24 +9360,24 @@ to {
9345
9360
  transform: translateY(-50%);
9346
9361
  transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
9347
9362
  }
9348
- .row:hover .drag-handle[data-v-f2ec0a81],
9349
- .drag-handle[data-v-f2ec0a81]:hover,
9350
- .drag-handle[data-v-f2ec0a81]:focus-visible,
9351
- [data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-f2ec0a81] {
9363
+ .row:hover .drag-handle[data-v-dc15f210],
9364
+ .drag-handle[data-v-dc15f210]:hover,
9365
+ .drag-handle[data-v-dc15f210]:focus-visible,
9366
+ [data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-dc15f210] {
9352
9367
  opacity: 1;
9353
9368
  }
9354
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-f2ec0a81] {
9369
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-dc15f210] {
9355
9370
  inset-inline-start: calc(-1 * var(--_tree-disclosure-size) - 2px);
9356
9371
  }
9357
- .drag-handle[data-v-f2ec0a81]:hover,
9358
- .drag-handle[data-v-f2ec0a81]:focus-visible {
9372
+ .drag-handle[data-v-dc15f210]:hover,
9373
+ .drag-handle[data-v-dc15f210]:focus-visible {
9359
9374
  color: var(--ui-text-primary);
9360
9375
  background: var(--ui-surface-hover);
9361
9376
  }
9362
- .drag-handle[data-v-f2ec0a81]:active {
9377
+ .drag-handle[data-v-dc15f210]:active {
9363
9378
  cursor: grabbing;
9364
9379
  }
9365
- .drop-indicator[data-v-f2ec0a81] {
9380
+ .drop-indicator[data-v-dc15f210] {
9366
9381
  position: absolute;
9367
9382
  z-index: 3;
9368
9383
  inset-inline: 1px;
@@ -9372,8 +9387,8 @@ to {
9372
9387
  background: var(--_ui-tree-drop-color, var(--ui-accent-solid));
9373
9388
  pointer-events: none;
9374
9389
  }
9375
- .drop-indicator[data-v-f2ec0a81]::before,
9376
- .drop-indicator[data-v-f2ec0a81]::after {
9390
+ .drop-indicator[data-v-dc15f210]::before,
9391
+ .drop-indicator[data-v-dc15f210]::after {
9377
9392
  content: "";
9378
9393
  position: absolute;
9379
9394
  inset-block-start: 50%;
@@ -9384,34 +9399,34 @@ to {
9384
9399
  background: var(--ui-surface-elevated);
9385
9400
  transform: translateY(-50%);
9386
9401
  }
9387
- .drop-indicator[data-v-f2ec0a81]::before {
9402
+ .drop-indicator[data-v-dc15f210]::before {
9388
9403
  inset-inline-start: -1px;
9389
9404
  }
9390
- .drop-indicator[data-v-f2ec0a81]::after {
9405
+ .drop-indicator[data-v-dc15f210]::after {
9391
9406
  inset-inline-end: -1px;
9392
9407
  }
9393
- [data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-f2ec0a81] {
9408
+ [data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-dc15f210] {
9394
9409
  display: block;
9395
9410
  inset-block-start: calc(-0.5 * var(--ui-accent-line-width));
9396
9411
  }
9397
- [data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-f2ec0a81] {
9412
+ [data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-dc15f210] {
9398
9413
  display: block;
9399
9414
  inset-block-end: calc(-0.5 * var(--ui-accent-line-width));
9400
9415
  }
9401
- .children[hidden][data-v-f2ec0a81] {
9416
+ .children[hidden][data-v-dc15f210] {
9402
9417
  display: none;
9403
9418
  }
9404
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-f2ec0a81] {
9419
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-dc15f210] {
9405
9420
  --_tree-row-min-height: 44px;
9406
9421
  }
9407
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-f2ec0a81] {
9422
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-dc15f210] {
9408
9423
  grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr);
9409
9424
  }
9410
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-f2ec0a81],
9425
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-dc15f210],
9411
9426
  html[data-ui-input-modality="touch"]
9412
9427
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"]
9413
9428
  > .row
9414
- > .drag-handle[data-v-f2ec0a81] {
9429
+ > .drag-handle[data-v-dc15f210] {
9415
9430
  position: relative;
9416
9431
  grid-column: 1;
9417
9432
  grid-row: 1;
@@ -9423,24 +9438,24 @@ html[data-ui-input-modality="touch"]
9423
9438
  transform: none;
9424
9439
  cursor: pointer;
9425
9440
  }
9426
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-f2ec0a81] {
9441
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-dc15f210] {
9427
9442
  grid-column: 2;
9428
9443
  }
9429
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-f2ec0a81] {
9444
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-dc15f210] {
9430
9445
  grid-column: 3;
9431
9446
  }
9432
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-f2ec0a81] {
9447
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-dc15f210] {
9433
9448
  grid-column: 4;
9434
9449
  }
9435
9450
  html[data-ui-input-modality="touch"]
9436
9451
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9437
- > .row[data-v-f2ec0a81] {
9452
+ > .row[data-v-dc15f210] {
9438
9453
  grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr);
9439
9454
  }
9440
9455
  html[data-ui-input-modality="touch"]
9441
9456
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9442
9457
  > .row
9443
- > .selection-hit[data-v-f2ec0a81] {
9458
+ > .selection-hit[data-v-dc15f210] {
9444
9459
  grid-column: 3;
9445
9460
  inline-size: 44px;
9446
9461
  block-size: 44px;
@@ -9448,55 +9463,55 @@ html[data-ui-input-modality="touch"]
9448
9463
  html[data-ui-input-modality="touch"]
9449
9464
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9450
9465
  > .row
9451
- > .leading[data-v-f2ec0a81] {
9466
+ > .leading[data-v-dc15f210] {
9452
9467
  grid-column: 4;
9453
9468
  }
9454
9469
  html[data-ui-input-modality="touch"]
9455
9470
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9456
9471
  > .row
9457
- > .label[data-v-f2ec0a81] {
9472
+ > .label[data-v-dc15f210] {
9458
9473
  grid-column: 5;
9459
9474
  }
9460
9475
  @media (hover: none), (pointer: coarse) {
9461
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-f2ec0a81] {
9476
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-dc15f210] {
9462
9477
  grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
9463
9478
  }
9464
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .actions[data-v-f2ec0a81] {
9479
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .actions[data-v-dc15f210] {
9465
9480
  grid-column: 5;
9466
9481
  }
9467
9482
  html[data-ui-input-modality="touch"]
9468
9483
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9469
- > .row[data-v-f2ec0a81] {
9484
+ > .row[data-v-dc15f210] {
9470
9485
  grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr) auto;
9471
9486
  }
9472
9487
  html[data-ui-input-modality="touch"]
9473
9488
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9474
9489
  > .row
9475
- > .actions[data-v-f2ec0a81] {
9490
+ > .actions[data-v-dc15f210] {
9476
9491
  grid-column: 6;
9477
9492
  }
9478
9493
  }
9479
9494
  @media (prefers-reduced-motion: reduce) {
9480
- .row[data-v-f2ec0a81],
9481
- .disclosure-icon[data-v-f2ec0a81],
9482
- .drag-handle[data-v-f2ec0a81] {
9495
+ .row[data-v-dc15f210],
9496
+ .disclosure-icon[data-v-dc15f210],
9497
+ .drag-handle[data-v-dc15f210] {
9483
9498
  transition: none;
9484
9499
  }
9485
9500
  }
9486
9501
  @media (forced-colors: active) {
9487
- [data-component~="ui-tree-item"]:focus-visible > .row[data-v-f2ec0a81] {
9502
+ [data-component~="ui-tree-item"]:focus-visible > .row[data-v-dc15f210] {
9488
9503
  outline: var(--ui-focus-width) solid Highlight;
9489
9504
  outline-offset: calc(-1 * var(--ui-focus-width));
9490
9505
  }
9491
9506
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"]:not(:focus-visible):not([aria-disabled="true"])
9492
- > .row[data-v-f2ec0a81] {
9507
+ > .row[data-v-dc15f210] {
9493
9508
  outline: var(--ui-border-width) solid Highlight;
9494
9509
  outline-offset: calc(-1 * var(--ui-border-width));
9495
9510
  }
9496
9511
  }
9497
9512
 
9498
9513
  /* A component that sets its display still honours the hidden attribute on its root. */
9499
- [data-component~="ui-tree-item"][hidden][data-v-f2ec0a81] {
9514
+ [data-component~="ui-tree-item"][hidden][data-v-dc15f210] {
9500
9515
  display: none;
9501
9516
  }
9502
9517
  /* The editor surface owns its renderer canvas. Existing hooks retain their defaults. */