@threadlabs/looma 0.11.0 → 0.11.2
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-action-bar/ui-action-bar.html +72 -0
- package/components/ui-input/ui-input.html +4 -4
- package/components/ui-input-group/ui-input-group.html +86 -0
- package/components/ui-list/ui-list.html +12 -0
- package/components/ui-list-item/ui-list-item.html +4 -4
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-action-bar.css +77 -0
- package/styles/ui-input-group.css +87 -0
- package/styles/ui-input.css +4 -4
- package/styles/ui-list-item.css +4 -4
- package/styles/ui-list.css +11 -0
- package/vanilla/UiActionBar.d.ts +13 -0
- package/vanilla/UiActionBar.js +59 -0
- package/vanilla/UiInputGroup.d.ts +14 -0
- package/vanilla/UiInputGroup.js +53 -0
- package/vanilla/UiList.d.ts +1 -0
- package/vanilla/UiList.js +3 -1
- package/vanilla/index.js +2 -0
- package/vue/UiActionBar.d.ts +19 -0
- package/vue/UiActionBar.js +2 -0
- package/vue/UiActionBar.vue +77 -0
- package/vue/UiCombobox.d.ts +1 -1
- package/vue/UiInput.vue +7 -4
- package/vue/UiInputGroup.d.ts +22 -0
- package/vue/UiInputGroup.js +2 -0
- package/vue/UiInputGroup.vue +113 -0
- package/vue/UiList.d.ts +2 -0
- package/vue/UiList.vue +12 -0
- package/vue/UiListItem.vue +10 -4
- package/vue/UiRadioGroup.d.ts +1 -1
- package/vue/chunks/UiActionBar.js +24 -0
- package/vue/chunks/UiAffordanceScope.js +1 -1
- package/vue/chunks/UiAvatar.js +1 -1
- package/vue/chunks/UiAvatarGroup.js +1 -1
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiCombobox.js +1 -1
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiDialog.js +1 -1
- package/vue/chunks/UiDisclosure.js +1 -1
- package/vue/chunks/UiEditable.js +1 -1
- package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
- package/vue/chunks/UiEditorMentionMenu.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorTableContextMenu.js +1 -1
- package/vue/chunks/UiEditorTableOverlay.js +1 -1
- package/vue/chunks/UiEditorTableToolbar.js +1 -1
- package/vue/chunks/UiFormField.js +1 -1
- package/vue/chunks/UiIcon.js +1 -1
- package/vue/chunks/UiIconButton.js +1 -1
- package/vue/chunks/UiInput.js +2 -2
- package/vue/chunks/UiInputGroup.js +31 -0
- package/vue/chunks/UiList.js +6 -3
- package/vue/chunks/UiListItem.js +1 -1
- package/vue/chunks/UiMenu.js +1 -1
- package/vue/chunks/UiPopover.js +1 -1
- package/vue/chunks/UiRadio.js +1 -1
- package/vue/chunks/UiRadioGroup.js +1 -1
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSelect.js +1 -1
- package/vue/chunks/UiSidebar.js +1 -1
- package/vue/chunks/UiSwitch.js +1 -1
- package/vue/chunks/UiTabs.js +1 -1
- package/vue/chunks/UiTextarea.js +1 -1
- package/vue/chunks/UiToastRegion.js +1 -1
- package/vue/chunks/UiTooltip.js +1 -1
- package/vue/chunks/UiTree.js +1 -1
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +187 -43
- package/vue/index.d.ts +2 -0
- package/vue/index.js +3 -1
package/vue/components.css
CHANGED
|
@@ -1,4 +1,60 @@
|
|
|
1
1
|
|
|
2
|
+
/* The action row of a form or dialog. Tertiary actions (Back, Cancel, Discard) sit at the start
|
|
3
|
+
edge; secondary actions (Save as draft, Preview) sit just before the primary one, which ends the
|
|
4
|
+
row. The bar arranges its actions and leaves their look to them. */
|
|
5
|
+
[data-component~="ui-action-bar"][data-v-f4ba10f3] {
|
|
6
|
+
--_gap: var(--ui-space-2);
|
|
7
|
+
display: block;
|
|
8
|
+
/* A size container sizes itself from its container, never its content. */
|
|
9
|
+
container-type: inline-size;
|
|
10
|
+
inline-size: 100%;
|
|
11
|
+
min-inline-size: 0;
|
|
12
|
+
}
|
|
13
|
+
.bar[data-v-f4ba10f3],
|
|
14
|
+
.tertiary[data-v-f4ba10f3],
|
|
15
|
+
.secondary[data-v-f4ba10f3],
|
|
16
|
+
.primary[data-v-f4ba10f3] {
|
|
17
|
+
display: flex;
|
|
18
|
+
flex-wrap: wrap;
|
|
19
|
+
align-items: center;
|
|
20
|
+
gap: var(--ui-action-bar-gap, var(--_gap));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* The tertiary group takes the spare space, pushing the rest to the end edge; without it, the
|
|
24
|
+
rest still ends the row. */
|
|
25
|
+
.bar[data-v-f4ba10f3] {
|
|
26
|
+
justify-content: flex-end;
|
|
27
|
+
}
|
|
28
|
+
.tertiary[data-v-f4ba10f3] {
|
|
29
|
+
flex: 1 1 auto;
|
|
30
|
+
}
|
|
31
|
+
.tertiary[data-v-f4ba10f3]:empty,
|
|
32
|
+
.secondary[data-v-f4ba10f3]:empty,
|
|
33
|
+
.primary[data-v-f4ba10f3]:empty {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* A narrow container stacks the actions full width, primary on top: the row turned on its end,
|
|
38
|
+
read from its end edge. Container queries cannot read custom properties, so the width is fixed. */
|
|
39
|
+
@container (inline-size < 24rem) {
|
|
40
|
+
.bar[data-v-f4ba10f3],
|
|
41
|
+
.tertiary[data-v-f4ba10f3],
|
|
42
|
+
.secondary[data-v-f4ba10f3],
|
|
43
|
+
.primary[data-v-f4ba10f3] {
|
|
44
|
+
flex-direction: column-reverse;
|
|
45
|
+
flex-wrap: nowrap;
|
|
46
|
+
align-items: stretch;
|
|
47
|
+
}
|
|
48
|
+
.tertiary[data-v-f4ba10f3] {
|
|
49
|
+
flex: none;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
54
|
+
[data-component~="ui-action-bar"][hidden][data-v-f4ba10f3] {
|
|
55
|
+
display: none;
|
|
56
|
+
}
|
|
57
|
+
|
|
2
58
|
[data-component~="ui-affordance-scope"][data-v-c9fe5e81] {
|
|
3
59
|
display: contents;
|
|
4
60
|
--ui-affordance-scope-engaged: 0;
|
|
@@ -3067,7 +3123,7 @@ svg[data-v-bcedd63e-s] {
|
|
|
3067
3123
|
display: none;
|
|
3068
3124
|
}
|
|
3069
3125
|
|
|
3070
|
-
[data-component~="ui-input"][data-v-
|
|
3126
|
+
[data-component~="ui-input"][data-v-12ffae5a] {
|
|
3071
3127
|
box-sizing: border-box;
|
|
3072
3128
|
display: inline-block;
|
|
3073
3129
|
inline-size: 100%;
|
|
@@ -3076,9 +3132,9 @@ svg[data-v-bcedd63e-s] {
|
|
|
3076
3132
|
margin: 0;
|
|
3077
3133
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
3078
3134
|
appearance: none;
|
|
3079
|
-
border: 1px solid var(--ui-control-border, var(--ui-border-strong));
|
|
3135
|
+
border: 1px solid var(--ui-input-border, var(--ui-control-border, var(--ui-border-strong)));
|
|
3080
3136
|
border-radius: var(--ui-input-radius, var(--ui-radius-md));
|
|
3081
|
-
background: var(--ui-control-surface, var(--ui-surface-elevated));
|
|
3137
|
+
background: var(--ui-input-surface, var(--ui-control-surface, var(--ui-surface-elevated)));
|
|
3082
3138
|
color: var(--ui-text-primary);
|
|
3083
3139
|
font: inherit;
|
|
3084
3140
|
line-height: var(--ui-line-height-md);
|
|
@@ -3090,19 +3146,22 @@ svg[data-v-bcedd63e-s] {
|
|
|
3090
3146
|
}
|
|
3091
3147
|
|
|
3092
3148
|
/* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
|
|
3093
|
-
[data-component~="ui-input"][data-v-
|
|
3149
|
+
[data-component~="ui-input"][data-v-12ffae5a]::selection {
|
|
3094
3150
|
background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
|
|
3095
3151
|
color: inherit;
|
|
3096
3152
|
}
|
|
3097
|
-
[data-component~="ui-input"][data-v-
|
|
3153
|
+
[data-component~="ui-input"][data-v-12ffae5a]::placeholder {
|
|
3098
3154
|
color: var(--ui-control-placeholder, var(--ui-text-secondary));
|
|
3099
3155
|
opacity: 1;
|
|
3100
3156
|
}
|
|
3101
|
-
[data-component~="ui-input"][data-v-
|
|
3102
|
-
border-color: var(
|
|
3157
|
+
[data-component~="ui-input"][data-v-12ffae5a]:hover:not(:focus):not(:disabled) {
|
|
3158
|
+
border-color: var(
|
|
3159
|
+
--ui-input-border-hover,
|
|
3160
|
+
var(--ui-control-border-hover, var(--ui-text-secondary))
|
|
3161
|
+
);
|
|
3103
3162
|
}
|
|
3104
|
-
[data-component~="ui-input"][data-v-
|
|
3105
|
-
border-color: var(--ui-control-focus, var(--ui-accent-solid));
|
|
3163
|
+
[data-component~="ui-input"][data-v-12ffae5a]:focus-visible {
|
|
3164
|
+
border-color: var(--ui-input-focus-border, var(--ui-control-focus, var(--ui-accent-solid)));
|
|
3106
3165
|
outline: none;
|
|
3107
3166
|
box-shadow: var(
|
|
3108
3167
|
--ui-input-focus-shadow,
|
|
@@ -3112,16 +3171,16 @@ svg[data-v-bcedd63e-s] {
|
|
|
3112
3171
|
}
|
|
3113
3172
|
|
|
3114
3173
|
/* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
|
|
3115
|
-
[data-component~="ui-input"][aria-invalid="true"][data-v-
|
|
3116
|
-
[data-component~="ui-input"][data-v-
|
|
3174
|
+
[data-component~="ui-input"][aria-invalid="true"][data-v-12ffae5a],
|
|
3175
|
+
[data-component~="ui-input"][data-v-12ffae5a]:is(:user-invalid, [data-user-invalid]) {
|
|
3117
3176
|
border-color: var(--ui-danger-solid);
|
|
3118
3177
|
}
|
|
3119
|
-
[data-component~="ui-input"][data-v-
|
|
3178
|
+
[data-component~="ui-input"][data-v-12ffae5a]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
|
|
3120
3179
|
box-shadow:
|
|
3121
3180
|
var(--ui-control-inset),
|
|
3122
3181
|
0 0 0 3px color-mix(in srgb, var(--ui-danger-solid) 22%, transparent);
|
|
3123
3182
|
}
|
|
3124
|
-
[data-component~="ui-input"][data-v-
|
|
3183
|
+
[data-component~="ui-input"][data-v-12ffae5a]:disabled {
|
|
3125
3184
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
3126
3185
|
color: var(--ui-text-muted);
|
|
3127
3186
|
box-shadow: none;
|
|
@@ -3132,14 +3191,84 @@ svg[data-v-bcedd63e-s] {
|
|
|
3132
3191
|
* scroll vertically inside the field. Native inputs already center their single line. */
|
|
3133
3192
|
|
|
3134
3193
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3135
|
-
[data-component~="ui-input"][hidden][data-v-
|
|
3194
|
+
[data-component~="ui-input"][hidden][data-v-12ffae5a] {
|
|
3195
|
+
display: none;
|
|
3196
|
+
}
|
|
3197
|
+
|
|
3198
|
+
/* An input with fixed text before or after it, such as a domain after a site's name
|
|
3199
|
+
("acme" + ".example.com") or slashes around a path. The group draws the field's border and
|
|
3200
|
+
focus ring around the input and its affixes together; the input inside drops its own through
|
|
3201
|
+
its custom properties, so it is still the one ui-input, with its form behaviour intact. The
|
|
3202
|
+
affixes are plain text beside the input, so name the input with a label that says what the
|
|
3203
|
+
whole value is. */
|
|
3204
|
+
[data-component~="ui-input-group"][data-v-0a135fc1] {
|
|
3205
|
+
--ui-input-border: transparent;
|
|
3206
|
+
--ui-input-border-hover: transparent;
|
|
3207
|
+
--ui-input-focus-border: transparent;
|
|
3208
|
+
--ui-input-shadow: none;
|
|
3209
|
+
--ui-input-focus-shadow: none;
|
|
3210
|
+
--ui-input-radius: 0;
|
|
3211
|
+
--ui-input-surface: transparent;
|
|
3212
|
+
|
|
3213
|
+
display: flex;
|
|
3214
|
+
align-items: stretch;
|
|
3215
|
+
box-sizing: border-box;
|
|
3216
|
+
inline-size: 100%;
|
|
3217
|
+
min-inline-size: 0;
|
|
3218
|
+
min-block-size: var(--ui-control-size-md);
|
|
3219
|
+
border: 1px solid var(--ui-border-strong);
|
|
3220
|
+
border-radius: var(--ui-radius-md);
|
|
3221
|
+
background: var(--ui-surface-elevated);
|
|
3222
|
+
box-shadow: var(--ui-control-inset);
|
|
3223
|
+
overflow: hidden;
|
|
3224
|
+
transition:
|
|
3225
|
+
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
3226
|
+
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
3227
|
+
}
|
|
3228
|
+
[data-component~="ui-input-group"][data-v-0a135fc1]:hover:not(:focus-within) {
|
|
3229
|
+
border-color: var(--ui-text-secondary);
|
|
3230
|
+
}
|
|
3231
|
+
[data-component~="ui-input-group"][data-v-0a135fc1]:focus-within {
|
|
3232
|
+
border-color: var(--ui-accent-solid);
|
|
3233
|
+
box-shadow:
|
|
3234
|
+
var(--ui-control-inset),
|
|
3235
|
+
var(--ui-control-focus-halo-shadow);
|
|
3236
|
+
}
|
|
3237
|
+
[data-component~="ui-input-group"][data-v-0a135fc1]:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
|
|
3238
|
+
border-color: var(--ui-danger-solid);
|
|
3239
|
+
}
|
|
3240
|
+
[data-component~="ui-input-group"][data-ui-input-group-state~="disabled"][data-v-0a135fc1] {
|
|
3241
|
+
background: var(--ui-surface-muted);
|
|
3242
|
+
box-shadow: none;
|
|
3243
|
+
}
|
|
3244
|
+
.field[data-v-0a135fc1] {
|
|
3245
|
+
display: flex;
|
|
3246
|
+
flex: 1;
|
|
3247
|
+
min-inline-size: 0;
|
|
3248
|
+
}
|
|
3249
|
+
.affix[data-v-0a135fc1] {
|
|
3250
|
+
display: inline-flex;
|
|
3251
|
+
flex: none;
|
|
3252
|
+
align-items: center;
|
|
3253
|
+
padding-inline: var(--ui-space-2);
|
|
3254
|
+
color: var(--ui-text-secondary);
|
|
3255
|
+
font-family: var(--ui-font-family-mono);
|
|
3256
|
+
font-size: var(--ui-font-size-sm);
|
|
3257
|
+
white-space: nowrap;
|
|
3258
|
+
}
|
|
3259
|
+
.affix[data-v-0a135fc1]:empty {
|
|
3260
|
+
display: none;
|
|
3261
|
+
}
|
|
3262
|
+
|
|
3263
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3264
|
+
[data-component~="ui-input-group"][hidden][data-v-0a135fc1] {
|
|
3136
3265
|
display: none;
|
|
3137
3266
|
}
|
|
3138
3267
|
|
|
3139
3268
|
/* A list of items (ui-list-item). It owns the spacing between them, so a view never sets it. The
|
|
3140
3269
|
explicit list role keeps the list announced as one: some browsers drop it from a list with no
|
|
3141
3270
|
markers. */
|
|
3142
|
-
[data-component~="ui-list"][data-v-
|
|
3271
|
+
[data-component~="ui-list"][data-v-9e6cf63f] {
|
|
3143
3272
|
display: flex;
|
|
3144
3273
|
flex-direction: column;
|
|
3145
3274
|
gap: var(--ui-list-gap, var(--ui-space-1));
|
|
@@ -3148,7 +3277,16 @@ svg[data-v-bcedd63e-s] {
|
|
|
3148
3277
|
padding: 0;
|
|
3149
3278
|
list-style: none;
|
|
3150
3279
|
}
|
|
3151
|
-
|
|
3280
|
+
|
|
3281
|
+
/* Compact passes its size to the items through private properties, which cross into each item. */
|
|
3282
|
+
[data-component~="ui-list"][data-ui-list-state~="density=compact"][data-v-9e6cf63f] {
|
|
3283
|
+
--_ui-list-item-min-size: 0;
|
|
3284
|
+
--_ui-list-item-padding-block: 0;
|
|
3285
|
+
--_ui-list-item-padding-inline: 0;
|
|
3286
|
+
--_ui-list-item-title-weight: var(--ui-font-normal);
|
|
3287
|
+
gap: var(--ui-list-gap, var(--ui-space-2));
|
|
3288
|
+
}
|
|
3289
|
+
[data-component~="ui-list"][data-ui-list-state~="layout=grid"][data-v-9e6cf63f] {
|
|
3152
3290
|
display: grid;
|
|
3153
3291
|
grid-template-columns:
|
|
3154
3292
|
repeat(auto-fill, minmax(min(100%, var(--ui-list-min-item-width, 14rem)), 1fr));
|
|
@@ -3156,7 +3294,7 @@ svg[data-v-bcedd63e-s] {
|
|
|
3156
3294
|
}
|
|
3157
3295
|
|
|
3158
3296
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3159
|
-
[data-component~="ui-list"][hidden][data-v-
|
|
3297
|
+
[data-component~="ui-list"][hidden][data-v-9e6cf63f] {
|
|
3160
3298
|
display: none;
|
|
3161
3299
|
}
|
|
3162
3300
|
|
|
@@ -3169,95 +3307,101 @@ svg[data-v-bcedd63e-s] {
|
|
|
3169
3307
|
padding follow it too, and the item takes the link's focus ring. The link stays a real link, so
|
|
3170
3308
|
a router, a modified click, and "open in new tab" all work. Trailing controls sit above it and
|
|
3171
3309
|
stay their own. */
|
|
3172
|
-
[data-component~="ui-list-item"][data-v-
|
|
3310
|
+
[data-component~="ui-list-item"][data-v-30896b18] {
|
|
3173
3311
|
position: relative;
|
|
3174
3312
|
box-sizing: border-box;
|
|
3175
3313
|
display: flex;
|
|
3176
3314
|
align-items: center;
|
|
3177
3315
|
gap: var(--ui-list-item-gap, var(--ui-space-3));
|
|
3178
3316
|
min-inline-size: 0;
|
|
3179
|
-
min-block-size: var(--ui-control-size, 2.5rem);
|
|
3180
|
-
padding-block: var(
|
|
3181
|
-
|
|
3317
|
+
min-block-size: var(--_ui-list-item-min-size, var(--ui-control-size, 2.5rem));
|
|
3318
|
+
padding-block: var(
|
|
3319
|
+
--ui-list-item-padding-block,
|
|
3320
|
+
var(--_ui-list-item-padding-block, var(--ui-space-2))
|
|
3321
|
+
);
|
|
3322
|
+
padding-inline: var(
|
|
3323
|
+
--ui-list-item-padding-inline,
|
|
3324
|
+
var(--_ui-list-item-padding-inline, var(--ui-space-3))
|
|
3325
|
+
);
|
|
3182
3326
|
border-radius: var(--ui-radius-md);
|
|
3183
3327
|
color: var(--ui-text-primary);
|
|
3184
3328
|
transition:
|
|
3185
3329
|
background-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
3186
3330
|
border-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
3187
3331
|
}
|
|
3188
|
-
[data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-
|
|
3332
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-30896b18] {
|
|
3189
3333
|
padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
|
|
3190
3334
|
padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
|
|
3191
3335
|
border: 1px solid var(--ui-border-default);
|
|
3192
3336
|
border-radius: var(--ui-radius-lg);
|
|
3193
3337
|
background: var(--ui-surface-raised);
|
|
3194
3338
|
}
|
|
3195
|
-
[data-component~="ui-list-item"][data-v-
|
|
3339
|
+
[data-component~="ui-list-item"][data-v-30896b18]:has(.title a[href]:hover) {
|
|
3196
3340
|
background: var(--ui-surface-hover);
|
|
3197
3341
|
}
|
|
3198
|
-
[data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-
|
|
3342
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-30896b18]:has(.title
|
|
3199
3343
|
a[href]:hover) {
|
|
3200
3344
|
border-color: var(--ui-border-strong);
|
|
3201
3345
|
}
|
|
3202
|
-
[data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-
|
|
3346
|
+
[data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-30896b18] {
|
|
3203
3347
|
background: var(--ui-surface-hover);
|
|
3204
3348
|
}
|
|
3205
|
-
[data-component~="ui-list-item"][data-v-
|
|
3349
|
+
[data-component~="ui-list-item"][data-v-30896b18]:has(.title a[href]:focus-visible) {
|
|
3206
3350
|
box-shadow: 0 0 0 2px var(--ui-focus-ring);
|
|
3207
3351
|
}
|
|
3208
|
-
.leading[data-v-
|
|
3209
|
-
.trailing[data-v-
|
|
3352
|
+
.leading[data-v-30896b18],
|
|
3353
|
+
.trailing[data-v-30896b18] {
|
|
3210
3354
|
display: inline-flex;
|
|
3211
3355
|
flex: none;
|
|
3212
3356
|
align-items: center;
|
|
3213
3357
|
gap: var(--ui-space-2);
|
|
3214
3358
|
}
|
|
3215
|
-
.leading[data-v-
|
|
3359
|
+
.leading[data-v-30896b18] {
|
|
3216
3360
|
color: var(--ui-text-muted);
|
|
3217
3361
|
font-size: var(--ui-list-item-icon-size, var(--ui-font-size-lg));
|
|
3218
3362
|
}
|
|
3219
3363
|
|
|
3220
3364
|
/* Trailing controls take their own clicks, above the title link's stretched hit area. */
|
|
3221
|
-
.trailing[data-v-
|
|
3365
|
+
.trailing[data-v-30896b18] {
|
|
3222
3366
|
position: relative;
|
|
3223
3367
|
z-index: 1;
|
|
3224
3368
|
color: var(--ui-text-muted);
|
|
3225
3369
|
font-size: var(--ui-font-size-sm);
|
|
3226
3370
|
}
|
|
3227
|
-
.content[data-v-
|
|
3371
|
+
.content[data-v-30896b18] {
|
|
3228
3372
|
display: flex;
|
|
3229
3373
|
flex: 1;
|
|
3230
3374
|
flex-direction: column;
|
|
3231
3375
|
gap: var(--ui-space-0-5, 2px);
|
|
3232
3376
|
min-inline-size: 0;
|
|
3233
3377
|
}
|
|
3234
|
-
.title[data-v-
|
|
3235
|
-
.description[data-v-
|
|
3378
|
+
.title[data-v-30896b18],
|
|
3379
|
+
.description[data-v-30896b18] {
|
|
3236
3380
|
display: block;
|
|
3237
3381
|
min-inline-size: 0;
|
|
3238
3382
|
overflow: hidden;
|
|
3239
3383
|
text-overflow: ellipsis;
|
|
3240
3384
|
white-space: nowrap;
|
|
3241
3385
|
}
|
|
3242
|
-
.title[data-v-
|
|
3386
|
+
.title[data-v-30896b18] {
|
|
3243
3387
|
font-size: var(--ui-font-size-md);
|
|
3244
|
-
font-weight: var(--ui-font-medium);
|
|
3388
|
+
font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
|
|
3245
3389
|
line-height: var(--ui-line-height-tight);
|
|
3246
3390
|
}
|
|
3247
|
-
.description[data-v-
|
|
3391
|
+
.description[data-v-30896b18] {
|
|
3248
3392
|
color: var(--ui-text-muted);
|
|
3249
3393
|
font-size: var(--ui-font-size-sm);
|
|
3250
3394
|
line-height: var(--ui-line-height-tight);
|
|
3251
3395
|
}
|
|
3252
|
-
.title > a[data-v-
|
|
3396
|
+
.title > a[data-v-30896b18-s] {
|
|
3253
3397
|
color: inherit;
|
|
3254
3398
|
text-decoration: none;
|
|
3255
3399
|
}
|
|
3256
|
-
.title > a[data-v-
|
|
3400
|
+
.title > a[data-v-30896b18-s]:focus-visible {
|
|
3257
3401
|
outline: none;
|
|
3258
3402
|
box-shadow: none;
|
|
3259
3403
|
}
|
|
3260
|
-
.title > a[href][data-v-
|
|
3404
|
+
.title > a[href][data-v-30896b18-s]::after {
|
|
3261
3405
|
position: absolute;
|
|
3262
3406
|
inset: 0;
|
|
3263
3407
|
border-radius: inherit;
|
|
@@ -3265,14 +3409,14 @@ svg[data-v-bcedd63e-s] {
|
|
|
3265
3409
|
}
|
|
3266
3410
|
|
|
3267
3411
|
/* An unused region takes no space. */
|
|
3268
|
-
.leading[data-v-
|
|
3269
|
-
.description[data-v-
|
|
3270
|
-
.trailing[data-v-
|
|
3412
|
+
.leading[data-v-30896b18]:empty,
|
|
3413
|
+
.description[data-v-30896b18]:empty,
|
|
3414
|
+
.trailing[data-v-30896b18]:empty {
|
|
3271
3415
|
display: none;
|
|
3272
3416
|
}
|
|
3273
3417
|
|
|
3274
3418
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
3275
|
-
[data-component~="ui-list-item"][hidden][data-v-
|
|
3419
|
+
[data-component~="ui-list-item"][hidden][data-v-30896b18] {
|
|
3276
3420
|
display: none;
|
|
3277
3421
|
}
|
|
3278
3422
|
|
package/vue/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { default as ActionBar } from "./UiActionBar.js";
|
|
1
2
|
export { default as AffordanceScope } from "./UiAffordanceScope.js";
|
|
2
3
|
export { default as Avatar } from "./UiAvatar.js";
|
|
3
4
|
export { default as AvatarGroup } from "./UiAvatarGroup.js";
|
|
@@ -31,6 +32,7 @@ export { default as Grid } from "./UiGrid.js";
|
|
|
31
32
|
export { default as Icon } from "./UiIcon.js";
|
|
32
33
|
export { default as IconButton } from "./UiIconButton.js";
|
|
33
34
|
export { default as Input } from "./UiInput.js";
|
|
35
|
+
export { default as InputGroup } from "./UiInputGroup.js";
|
|
34
36
|
export { default as List } from "./UiList.js";
|
|
35
37
|
export { default as ListItem } from "./UiListItem.js";
|
|
36
38
|
export { default as Menu } from "./UiMenu.js";
|
package/vue/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as UiActionBar_default } from "./chunks/UiActionBar.js";
|
|
1
2
|
import { t as UiAffordanceScope_default } from "./chunks/UiAffordanceScope.js";
|
|
2
3
|
import { t as UiAvatar_default } from "./chunks/UiAvatar.js";
|
|
3
4
|
import { t as UiAvatarGroup_default } from "./chunks/UiAvatarGroup.js";
|
|
@@ -32,6 +33,7 @@ import { t as UiFormField_default } from "./chunks/UiFormField.js";
|
|
|
32
33
|
import { t as UiGrid_default } from "./chunks/UiGrid.js";
|
|
33
34
|
import { t as UiIconButton_default } from "./chunks/UiIconButton.js";
|
|
34
35
|
import { t as UiInput_default } from "./chunks/UiInput.js";
|
|
36
|
+
import { t as UiInputGroup_default } from "./chunks/UiInputGroup.js";
|
|
35
37
|
import { t as UiList_default } from "./chunks/UiList.js";
|
|
36
38
|
import { t as UiListItem_default } from "./chunks/UiListItem.js";
|
|
37
39
|
import { t as UiMenu_default } from "./chunks/UiMenu.js";
|
|
@@ -61,4 +63,4 @@ import { t as UiTopBar_default } from "./chunks/UiTopBar.js";
|
|
|
61
63
|
import { t as UiTree_default } from "./chunks/UiTree.js";
|
|
62
64
|
import { t as UiTreeItem_default } from "./chunks/UiTreeItem.js";
|
|
63
65
|
import { trackInputModality } from "@threadlabs/looma/components/shared/input-modality.js";
|
|
64
|
-
export { UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiInput_default as Input, UiList_default as List, UiListItem_default as ListItem, UiMenu_default as Menu, UiMenuItem_default as MenuItem, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
|
|
66
|
+
export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiInput_default as Input, UiInputGroup_default as InputGroup, UiList_default as List, UiListItem_default as ListItem, UiMenu_default as Menu, UiMenuItem_default as MenuItem, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
|