@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.
Files changed (71) hide show
  1. package/components/ui-action-bar/ui-action-bar.html +72 -0
  2. package/components/ui-input/ui-input.html +4 -4
  3. package/components/ui-input-group/ui-input-group.html +86 -0
  4. package/components/ui-list/ui-list.html +12 -0
  5. package/components/ui-list-item/ui-list-item.html +4 -4
  6. package/dist/index.js +1 -1
  7. package/package.json +1 -1
  8. package/styles/ui-action-bar.css +77 -0
  9. package/styles/ui-input-group.css +87 -0
  10. package/styles/ui-input.css +4 -4
  11. package/styles/ui-list-item.css +4 -4
  12. package/styles/ui-list.css +11 -0
  13. package/vanilla/UiActionBar.d.ts +13 -0
  14. package/vanilla/UiActionBar.js +59 -0
  15. package/vanilla/UiInputGroup.d.ts +14 -0
  16. package/vanilla/UiInputGroup.js +53 -0
  17. package/vanilla/UiList.d.ts +1 -0
  18. package/vanilla/UiList.js +3 -1
  19. package/vanilla/index.js +2 -0
  20. package/vue/UiActionBar.d.ts +19 -0
  21. package/vue/UiActionBar.js +2 -0
  22. package/vue/UiActionBar.vue +77 -0
  23. package/vue/UiCombobox.d.ts +1 -1
  24. package/vue/UiInput.vue +7 -4
  25. package/vue/UiInputGroup.d.ts +22 -0
  26. package/vue/UiInputGroup.js +2 -0
  27. package/vue/UiInputGroup.vue +113 -0
  28. package/vue/UiList.d.ts +2 -0
  29. package/vue/UiList.vue +12 -0
  30. package/vue/UiListItem.vue +10 -4
  31. package/vue/UiRadioGroup.d.ts +1 -1
  32. package/vue/chunks/UiActionBar.js +24 -0
  33. package/vue/chunks/UiAffordanceScope.js +1 -1
  34. package/vue/chunks/UiAvatar.js +1 -1
  35. package/vue/chunks/UiAvatarGroup.js +1 -1
  36. package/vue/chunks/UiCheckbox.js +1 -1
  37. package/vue/chunks/UiCombobox.js +1 -1
  38. package/vue/chunks/UiContextMenu.js +1 -1
  39. package/vue/chunks/UiDialog.js +1 -1
  40. package/vue/chunks/UiDisclosure.js +1 -1
  41. package/vue/chunks/UiEditable.js +1 -1
  42. package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
  43. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  44. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  45. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  46. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  47. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  48. package/vue/chunks/UiFormField.js +1 -1
  49. package/vue/chunks/UiIcon.js +1 -1
  50. package/vue/chunks/UiIconButton.js +1 -1
  51. package/vue/chunks/UiInput.js +2 -2
  52. package/vue/chunks/UiInputGroup.js +31 -0
  53. package/vue/chunks/UiList.js +6 -3
  54. package/vue/chunks/UiListItem.js +1 -1
  55. package/vue/chunks/UiMenu.js +1 -1
  56. package/vue/chunks/UiPopover.js +1 -1
  57. package/vue/chunks/UiRadio.js +1 -1
  58. package/vue/chunks/UiRadioGroup.js +1 -1
  59. package/vue/chunks/UiSearchShell.js +1 -1
  60. package/vue/chunks/UiSelect.js +1 -1
  61. package/vue/chunks/UiSidebar.js +1 -1
  62. package/vue/chunks/UiSwitch.js +1 -1
  63. package/vue/chunks/UiTabs.js +1 -1
  64. package/vue/chunks/UiTextarea.js +1 -1
  65. package/vue/chunks/UiToastRegion.js +1 -1
  66. package/vue/chunks/UiTooltip.js +1 -1
  67. package/vue/chunks/UiTree.js +1 -1
  68. package/vue/chunks/UiTreeItem.js +1 -1
  69. package/vue/components.css +187 -43
  70. package/vue/index.d.ts +2 -0
  71. package/vue/index.js +3 -1
@@ -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-f84acfe8] {
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-f84acfe8]::selection {
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-f84acfe8]::placeholder {
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-f84acfe8]:hover:not(:focus):not(:disabled) {
3102
- border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
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-f84acfe8]:focus-visible {
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-f84acfe8],
3116
- [data-component~="ui-input"][data-v-f84acfe8]:is(:user-invalid, [data-user-invalid]) {
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-f84acfe8]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
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-f84acfe8]:disabled {
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-f84acfe8] {
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-935b1197] {
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
- [data-component~="ui-list"][data-ui-list-state~="layout=grid"][data-v-935b1197] {
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-935b1197] {
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-d61daf46] {
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(--ui-list-item-padding-block, var(--ui-space-2));
3181
- padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-3));
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-d61daf46] {
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-d61daf46]:has(.title a[href]:hover) {
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-d61daf46]:has(.title
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-d61daf46] {
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-d61daf46]:has(.title a[href]:focus-visible) {
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-d61daf46],
3209
- .trailing[data-v-d61daf46] {
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-d61daf46] {
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-d61daf46] {
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-d61daf46] {
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-d61daf46],
3235
- .description[data-v-d61daf46] {
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-d61daf46] {
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-d61daf46] {
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-d61daf46-s] {
3396
+ .title > a[data-v-30896b18-s] {
3253
3397
  color: inherit;
3254
3398
  text-decoration: none;
3255
3399
  }
3256
- .title > a[data-v-d61daf46-s]:focus-visible {
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-d61daf46-s]::after {
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-d61daf46]:empty,
3269
- .description[data-v-d61daf46]:empty,
3270
- .trailing[data-v-d61daf46]:empty {
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-d61daf46] {
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 };