@threadlabs/looma 0.23.0 → 0.23.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threadlabs/looma",
3
- "version": "0.23.0",
3
+ "version": "0.23.2",
4
4
  "type": "module",
5
5
  "description": "Looma components as HTML, Vue, and plain DOM, with design tokens.",
6
6
  "license": "MIT",
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  :scope[data-ui-scroll-area-state~="size=sm"] {
41
- max-block-size: 9.375rem;
41
+ max-block-size: calc(9.375rem + var(--ui-scroll-fade-size, 24px));
42
42
  }
43
43
  :scope[data-ui-scroll-area-state~="size=md"] {
44
44
  max-block-size: 20rem;
@@ -62,6 +62,17 @@
62
62
  font-family: var(--ui-font-family-sans, sans-serif);
63
63
  }
64
64
 
65
+ /* Slot wrappers own their line boxes even when an app makes buttons inherit body typography. */
66
+ :scope[data-ui-search-result-row-state~="density=compact"] .title {
67
+ font-size: var(--ui-font-size-sm);
68
+ line-height: var(--ui-line-height);
69
+ }
70
+
71
+ :scope[data-ui-search-result-row-state~="density=compact"] .meta {
72
+ font-size: var(--ui-font-size-xs);
73
+ line-height: var(--ui-line-height);
74
+ }
75
+
65
76
  :scope:hover:enabled {
66
77
  background: var(--ui-search-result-row-hover-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%));
67
78
  }
@@ -129,6 +140,8 @@
129
140
  @scope ([data-component~="ui-search-result-row"]) to ([data-component]) {
130
141
  /* This component's hooks style the element they are set on, and never a nested one. */
131
142
 
143
+ /* Slot wrappers own their line boxes even when an app makes buttons inherit body typography. */
144
+
132
145
  /* An unused region takes no space. */
133
146
 
134
147
  :where([data-slotted], [data-slotted] *):is([slot="title"]),
@@ -23,7 +23,7 @@ const propValidityContract = {
23
23
  required: false,
24
24
  target: { attribute: 'size' },
25
25
  description:
26
- 'Optional height preset. content keeps intrinsic sizing; sm fits three compact 3.125rem result rows, md is 20rem, and lg is 30rem.',
26
+ 'Optional height preset. content keeps intrinsic sizing; sm fits three compact 3.125rem result rows before the overflow fade, md is 20rem, and lg is\n 30rem.',
27
27
  values: ['content', 'sm', 'md', 'lg'],
28
28
  default: 'content',
29
29
  },
@@ -201,7 +201,7 @@ useComponentHost(() => import('../components/ui-scroll-area/ui-scroll-area.js'),
201
201
  }
202
202
 
203
203
  [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=sm"] {
204
- max-block-size: 9.375rem;
204
+ max-block-size: calc(9.375rem + var(--ui-scroll-fade-size, 24px));
205
205
  }
206
206
  [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=md"] {
207
207
  max-block-size: 20rem;
@@ -221,6 +221,18 @@ const hostState = computed(() =>
221
221
  font-family: var(--ui-font-family-sans, sans-serif);
222
222
  }
223
223
 
224
+ /* Slot wrappers own their line boxes even when an app makes buttons inherit body typography. */
225
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"]
226
+ .title {
227
+ font-size: var(--ui-font-size-sm);
228
+ line-height: var(--ui-line-height);
229
+ }
230
+
231
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"] .meta {
232
+ font-size: var(--ui-font-size-xs);
233
+ line-height: var(--ui-line-height);
234
+ }
235
+
224
236
  [data-component~="ui-search-result-row"]:hover:enabled {
225
237
  background: var(
226
238
  --ui-search-result-row-hover-surface,
@@ -47,7 +47,7 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
47
47
  },
48
48
  required: false,
49
49
  target: { attribute: "size" },
50
- description: "Optional height preset. content keeps intrinsic sizing; sm fits three compact 3.125rem result rows, md is 20rem, and lg is 30rem.",
50
+ description: "Optional height preset. content keeps intrinsic sizing; sm fits three compact 3.125rem result rows before the overflow fade, md is 20rem, and lg is\n 30rem.",
51
51
  values: [
52
52
  "content",
53
53
  "sm",
@@ -140,6 +140,6 @@ var UiScrollArea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
140
140
  }]]);
141
141
  };
142
142
  }
143
- }), [["__scopeId", "data-v-97150230"]]);
143
+ }), [["__scopeId", "data-v-c514834a"]]);
144
144
  //#endregion
145
145
  export { UiScrollArea_default as t };
@@ -144,6 +144,6 @@ var UiSearchResultRow_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
144
144
  }]]);
145
145
  };
146
146
  }
147
- }), [["__scopeId", "data-v-694c84bd"]]);
147
+ }), [["__scopeId", "data-v-a72753f3"]]);
148
148
  //#endregion
149
149
  export { UiSearchResultRow_default as t };
@@ -2340,7 +2340,7 @@ dd[data-v-7a7db3d1] {
2340
2340
  /* The controller sets each fade length from overflow and scroll position. The mask blends
2341
2341
  into whatever is behind the area without needing to know its colour. Before upgrade, its
2342
2342
  zero-length defaults leave the authored scroll area fully visible. */
2343
- [data-component~="ui-scroll-area"][data-v-97150230] {
2343
+ [data-component~="ui-scroll-area"][data-v-c514834a] {
2344
2344
  display: block;
2345
2345
  box-sizing: border-box;
2346
2346
  min-block-size: 0;
@@ -2359,29 +2359,29 @@ dd[data-v-7a7db3d1] {
2359
2359
  transparent
2360
2360
  );
2361
2361
  }
2362
- .content[data-v-97150230] {
2362
+ .content[data-v-c514834a] {
2363
2363
  display: flow-root;
2364
2364
  }
2365
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="orientation=horizontal"][data-v-97150230] {
2365
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="orientation=horizontal"][data-v-c514834a] {
2366
2366
  overflow-x: auto;
2367
2367
  overflow-y: hidden;
2368
2368
  --_ui-scroll-fade-direction: var(--_ui-scroll-fade-inline);
2369
2369
  }
2370
- [data-component~="ui-scroll-area"][data-v-97150230]:dir(rtl) {
2370
+ [data-component~="ui-scroll-area"][data-v-c514834a]:dir(rtl) {
2371
2371
  --_ui-scroll-fade-inline: to left;
2372
2372
  }
2373
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=sm"][data-v-97150230] {
2374
- max-block-size: 9.375rem;
2373
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=sm"][data-v-c514834a] {
2374
+ max-block-size: calc(9.375rem + var(--ui-scroll-fade-size, 24px));
2375
2375
  }
2376
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=md"][data-v-97150230] {
2376
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=md"][data-v-c514834a] {
2377
2377
  max-block-size: 20rem;
2378
2378
  }
2379
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=lg"][data-v-97150230] {
2379
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=lg"][data-v-c514834a] {
2380
2380
  max-block-size: 30rem;
2381
2381
  }
2382
2382
 
2383
2383
  /* A component that sets its display still honours the hidden attribute on its root. */
2384
- [data-component~="ui-scroll-area"][hidden][data-v-97150230] {
2384
+ [data-component~="ui-scroll-area"][hidden][data-v-c514834a] {
2385
2385
  display: none;
2386
2386
  }
2387
2387
 
@@ -6359,7 +6359,7 @@ legend[data-v-f7b72b3f] + * {
6359
6359
  syntax: "*";
6360
6360
  inherits: false;
6361
6361
  }
6362
- [data-component~="ui-search-result-row"][data-v-694c84bd] {
6362
+ [data-component~="ui-search-result-row"][data-v-a72753f3] {
6363
6363
  appearance: none;
6364
6364
  inline-size: 100%;
6365
6365
  min-block-size: var(--ui-search-result-row-min-height, 56px);
@@ -6377,7 +6377,7 @@ legend[data-v-f7b72b3f] + * {
6377
6377
  text-align: left;
6378
6378
  transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
6379
6379
  }
6380
- [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"][data-v-694c84bd] {
6380
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"][data-v-a72753f3] {
6381
6381
  min-block-size: var(--ui-search-result-row-min-height, 3.125rem);
6382
6382
  padding-block: var(--ui-search-result-row-padding-block, var(--ui-space-1));
6383
6383
  padding-inline: var(--ui-search-result-row-padding-inline, var(--ui-space-2));
@@ -6385,67 +6385,78 @@ legend[data-v-f7b72b3f] + * {
6385
6385
  align-items: center;
6386
6386
  font-family: var(--ui-font-family-sans, sans-serif);
6387
6387
  }
6388
- [data-component~="ui-search-result-row"][data-v-694c84bd]:hover:enabled {
6388
+
6389
+ /* Slot wrappers own their line boxes even when an app makes buttons inherit body typography. */
6390
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"]
6391
+ .title[data-v-a72753f3] {
6392
+ font-size: var(--ui-font-size-sm);
6393
+ line-height: var(--ui-line-height);
6394
+ }
6395
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"] .meta[data-v-a72753f3] {
6396
+ font-size: var(--ui-font-size-xs);
6397
+ line-height: var(--ui-line-height);
6398
+ }
6399
+ [data-component~="ui-search-result-row"][data-v-a72753f3]:hover:enabled {
6389
6400
  background: var(
6390
6401
  --ui-search-result-row-hover-surface,
6391
6402
  color-mix(in srgb, var(--ui-surface) 85%, black 3%)
6392
6403
  );
6393
6404
  }
6394
- [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-694c84bd] {
6405
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-a72753f3] {
6395
6406
  background: var(
6396
6407
  --ui-search-result-row-selected-bg,
6397
6408
  var(--ui-selection-surface)
6398
6409
  );
6399
6410
  color: var(--ui-selection-text);
6400
6411
  }
6401
- [data-component~="ui-search-result-row"][data-v-694c84bd]:focus-visible {
6412
+ [data-component~="ui-search-result-row"][data-v-a72753f3]:focus-visible {
6402
6413
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
6403
6414
  outline-offset: calc(-1 * var(--ui-focus-width));
6404
6415
  }
6405
- [data-component~="ui-search-result-row"][data-v-694c84bd]:disabled {
6416
+ [data-component~="ui-search-result-row"][data-v-a72753f3]:disabled {
6406
6417
  background: var(--ui-disabled-surface);
6407
6418
  color: var(--ui-disabled-text);
6408
6419
  cursor: not-allowed;
6409
6420
  }
6410
- .leading[data-v-694c84bd],
6411
- .trailing[data-v-694c84bd] {
6421
+ .leading[data-v-a72753f3],
6422
+ .trailing[data-v-a72753f3] {
6412
6423
  display: inline-flex;
6413
6424
  align-items: flex-start;
6414
6425
  flex-shrink: 0;
6415
6426
  }
6416
- .content[data-v-694c84bd] {
6427
+ .content[data-v-a72753f3] {
6417
6428
  min-inline-size: 0;
6418
6429
  flex: 1;
6419
6430
  display: flex;
6420
6431
  flex-direction: column;
6421
6432
  }
6422
- .title[data-v-694c84bd],
6423
- .meta[data-v-694c84bd],
6424
- .excerpt[data-v-694c84bd] {
6433
+ .title[data-v-a72753f3],
6434
+ .meta[data-v-a72753f3],
6435
+ .excerpt[data-v-a72753f3] {
6425
6436
  display: block;
6426
6437
  min-inline-size: 0;
6427
6438
  }
6428
6439
 
6429
6440
  /* An unused region takes no space. */
6430
- .leading[data-v-694c84bd]:empty,
6431
- .meta[data-v-694c84bd]:empty,
6432
- .excerpt[data-v-694c84bd]:empty,
6433
- .trailing[data-v-694c84bd]:empty {
6441
+ .leading[data-v-a72753f3]:empty,
6442
+ .meta[data-v-a72753f3]:empty,
6443
+ .excerpt[data-v-a72753f3]:empty,
6444
+ .trailing[data-v-a72753f3]:empty {
6434
6445
  display: none;
6435
6446
  }
6436
- [slot="title"][data-v-694c84bd-s],[slot="meta"][data-v-694c84bd-s],[slot="excerpt"][data-v-694c84bd-s] {
6447
+ [slot="title"][data-v-a72753f3-s],[slot="meta"][data-v-a72753f3-s],[slot="excerpt"][data-v-a72753f3-s] {
6437
6448
  display: block;
6438
6449
  margin: 0;
6439
6450
  }
6440
6451
  @media (forced-colors: active) {
6441
- [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-694c84bd]:not(:focus-visible):not(:disabled) {
6452
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-a72753f3]:not(:focus-visible):not(:disabled) {
6442
6453
  outline: var(--ui-border-width) solid Highlight;
6443
6454
  outline-offset: calc(-1 * var(--ui-border-width));
6444
6455
  }
6445
6456
  }
6446
6457
 
6447
6458
  /* A component that sets its display still honours the hidden attribute on its root. */
6448
- [data-component~="ui-search-result-row"][hidden][data-v-694c84bd] {
6459
+ [data-component~="ui-search-result-row"][hidden][data-v-a72753f3] {
6449
6460
  display: none;
6450
6461
  }
6451
6462