@wtfalch/design 0.9.1 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/valet.css CHANGED
@@ -319,6 +319,9 @@
319
319
  }
320
320
  }
321
321
  @layer utilities {
322
+ .pointer-events-none {
323
+ pointer-events: none;
324
+ }
322
325
  .collapse {
323
326
  visibility: collapse;
324
327
  }
@@ -351,6 +354,9 @@
351
354
  .sticky {
352
355
  position: sticky;
353
356
  }
357
+ .inset-0 {
358
+ inset: 0px;
359
+ }
354
360
  .z-\[60\] {
355
361
  z-index: 60;
356
362
  }
@@ -384,12 +390,21 @@
384
390
  .mt-1 {
385
391
  margin-top: var(--spacing-1);
386
392
  }
393
+ .mt-2 {
394
+ margin-top: var(--spacing-2);
395
+ }
396
+ .mt-px {
397
+ margin-top: 1px;
398
+ }
387
399
  .mb-3 {
388
400
  margin-bottom: var(--spacing-3);
389
401
  }
390
402
  .ml-2 {
391
403
  margin-left: var(--spacing-2);
392
404
  }
405
+ .ml-auto {
406
+ margin-left: auto;
407
+ }
393
408
  .block {
394
409
  display: block;
395
410
  }
@@ -414,6 +429,9 @@
414
429
  .table {
415
430
  display: table;
416
431
  }
432
+ .h-4 {
433
+ height: var(--spacing-4);
434
+ }
417
435
  .h-\[14px\] {
418
436
  height: 14px;
419
437
  }
@@ -432,6 +450,9 @@
432
450
  .min-h-screen {
433
451
  min-height: 100vh;
434
452
  }
453
+ .w-4 {
454
+ width: var(--spacing-4);
455
+ }
435
456
  .w-\[18px\] {
436
457
  width: 18px;
437
458
  }
@@ -459,6 +480,18 @@
459
480
  .flex-1 {
460
481
  flex: 1;
461
482
  }
483
+ .flex-\[0_0_var\(--split\)\] {
484
+ flex: 0 0 var(--split);
485
+ }
486
+ .flex-\[1_1_0\] {
487
+ flex: 1 1 0;
488
+ }
489
+ .flex-\[1_1_260px\] {
490
+ flex: 1 1 260px;
491
+ }
492
+ .flex-\[1_1_auto\] {
493
+ flex: 1 1 auto;
494
+ }
462
495
  .flex-none {
463
496
  flex: none;
464
497
  }
@@ -489,6 +522,9 @@
489
522
  .flex-wrap {
490
523
  flex-wrap: wrap;
491
524
  }
525
+ .place-items-center {
526
+ place-items: center;
527
+ }
492
528
  .items-baseline {
493
529
  align-items: baseline;
494
530
  }
@@ -522,6 +558,9 @@
522
558
  .gap-\[var\(--border-width\)\] {
523
559
  gap: var(--border-width);
524
560
  }
561
+ .gap-px {
562
+ gap: 1px;
563
+ }
525
564
  .self-center {
526
565
  align-self: center;
527
566
  }
@@ -584,9 +623,15 @@
584
623
  .p-2 {
585
624
  padding: var(--spacing-2);
586
625
  }
626
+ .p-3 {
627
+ padding: var(--spacing-3);
628
+ }
587
629
  .p-4 {
588
630
  padding: var(--spacing-4);
589
631
  }
632
+ .px-2 {
633
+ padding-inline: var(--spacing-2);
634
+ }
590
635
  .px-4 {
591
636
  padding-inline: var(--spacing-4);
592
637
  }
@@ -605,6 +650,12 @@
605
650
  .py-10 {
606
651
  padding-block: var(--spacing-10);
607
652
  }
653
+ .pt-2 {
654
+ padding-top: var(--spacing-2);
655
+ }
656
+ .pb-1 {
657
+ padding-bottom: var(--spacing-1);
658
+ }
608
659
  .pb-2 {
609
660
  padding-bottom: var(--spacing-2);
610
661
  }
@@ -620,6 +671,9 @@
620
671
  .text-2xs {
621
672
  font-size: var(--text-2xs);
622
673
  }
674
+ .text-base {
675
+ font-size: var(--text-base);
676
+ }
623
677
  .text-lg {
624
678
  font-size: var(--text-lg);
625
679
  }
@@ -641,6 +695,10 @@
641
695
  --tw-leading: 1.25;
642
696
  line-height: 1.25;
643
697
  }
698
+ .leading-\[1\.35\] {
699
+ --tw-leading: 1.35;
700
+ line-height: 1.35;
701
+ }
644
702
  .leading-\[16px\] {
645
703
  --tw-leading: 16px;
646
704
  line-height: 16px;
@@ -685,6 +743,9 @@
685
743
  .opacity-60 {
686
744
  opacity: 60%;
687
745
  }
746
+ .opacity-90 {
747
+ opacity: 90%;
748
+ }
688
749
  .opacity-\[0\.55\] {
689
750
  opacity: 0.55;
690
751
  }
@@ -1723,23 +1784,6 @@ input:active, textarea:active, select:active { transform: none; }
1723
1784
  template are allowed to diverge, and this is only saying that they have. */
1724
1785
  .set-hint.drifted { color: var(--warn); }
1725
1786
 
1726
- /* What an applet drew, read back. A tree rather than prose, so it is left as
1727
- preformatted text and given a ceiling -- a busy applet is a hundred lines and
1728
- this sits inside a settings pane. */
1729
- .drawn {
1730
- margin: var(--space-2) 0 0;
1731
- padding: var(--space-2) var(--space-2);
1732
- max-height: 220px;
1733
- overflow: auto;
1734
- font-size: var(--text-xs);
1735
- line-height: 1.45;
1736
- white-space: pre-wrap;
1737
- overflow-wrap: anywhere;
1738
- border: 1px solid var(--border);
1739
- border-radius: var(--radius);
1740
- background: var(--panel-2);
1741
- }
1742
-
1743
1787
  /* One applet, alone on the page, at `/applet/<id>`. Fills the window: there is
1744
1788
  no grid here to decide a height, and a screenshot of an applet letterboxed
1745
1789
  inside a page is mostly not the applet. */
@@ -1786,11 +1830,6 @@ input:active, textarea:active, select:active { transform: none; }
1786
1830
  that belongs to a conversation lives here any more, so it can breathe. */
1787
1831
  .topbar .ctl-grow { flex: 1; min-width: 0; }
1788
1832
 
1789
- /* Back on the left, Next on the right, with the gap between them doing the
1790
- separating -- so the button that goes forward is in the same place on both
1791
- pages instead of sliding when Back appears. */
1792
- .first-run-actions { align-items: center; }
1793
-
1794
1833
  @keyframes listening-pulse { 0%, 100% { opacity: 1 } 50% { opacity: .35 } }
1795
1834
 
1796
1835
  /* table ---------------------------------------------------------------- */
@@ -2131,8 +2170,6 @@ input:active, textarea:active, select:active { transform: none; }
2131
2170
  border-radius: 4px;
2132
2171
  }
2133
2172
 
2134
- .danger-unavailable { margin-top: var(--space-2); opacity: 0.85; }
2135
-
2136
2173
  /* Label beside the control, for a settings pane: a column of names on the left
2137
2174
  and their controls on the right reads as a list of what is set, where the
2138
2175
  same rows stacked read as a form waiting to be filled in. The description
@@ -2210,8 +2247,6 @@ input:active, textarea:active, select:active { transform: none; }
2210
2247
  /* A callout that leaves on its own.
2211
2248
  Room at the bottom for the bar, and `position: relative` so the bar can sit
2212
2249
  on the border rather than inside the text. */
2213
- .callout-timed { position: relative; padding-bottom: var(--space-5); overflow: hidden; }
2214
-
2215
2250
  /* The countdown. Drawn as a shrinking bar rather than a number: nobody wants to
2216
2251
  read a clock, they want to know whether they have time. Animated width rather
2217
2252
  than a transition, so it starts the moment it is painted. */
@@ -2272,14 +2307,6 @@ input:active, textarea:active, select:active { transform: none; }
2272
2307
  is the operating system's font drawing a glyph beside an app that has an icon
2273
2308
  set for exactly this. The ring went with it: a circle around a warning
2274
2309
  triangle is two shapes saying one thing. */
2275
- .callout-mark {
2276
- flex: none;
2277
- display: grid;
2278
- place-items: center;
2279
- margin-top: 1px;
2280
- opacity: 0.9;
2281
- }
2282
-
2283
2310
  /* Held-back history when a local conversation would cross to a hosted model.
2284
2311
  Deliberately loud: the cost of missing it is uploading work that was kept
2285
2312
  local on purpose. */
@@ -2295,6 +2322,19 @@ input:active, textarea:active, select:active { transform: none; }
2295
2322
  }
2296
2323
 
2297
2324
  .callout button { flex: none; }
2325
+ /* A state, so it stays a class.
2326
+ *
2327
+ * `Callout` applies this as `running ? ' callout-timed' : ''` inside a
2328
+ * template literal -- which is not a class list a rewrite can read, and the
2329
+ * first pass at converting it deleted the rule while leaving the usage. The
2330
+ * box lost five spacing steps of padding and the countdown bar had nothing
2331
+ * to sit in. A class that appears only inside a conditional is a state; the
2332
+ * sheet is where those belong. */
2333
+ .callout-timed {
2334
+ position: relative;
2335
+ padding-bottom: var(--space-5);
2336
+ overflow: hidden;
2337
+ }
2298
2338
  }
2299
2339
 
2300
2340
  /* ---- ./card.css ---- */
@@ -2353,16 +2393,6 @@ input:active, textarea:active, select:active { transform: none; }
2353
2393
  which reads as a different column of content. */
2354
2394
  .card:has(.card-icon) .card-inline { padding-left: calc(var(--card-icon) + var(--space-3)); }
2355
2395
 
2356
- /* Its own line, above the sentence it introduces. */
2357
- .card-inline-label {
2358
- display: block;
2359
- font-size: var(--text-xs);
2360
- text-transform: uppercase;
2361
- letter-spacing: 0.04em;
2362
- color: var(--muted);
2363
- margin-bottom: 2px;
2364
- }
2365
-
2366
2396
  .card-title { display: block; font-size: var(--text-base); }
2367
2397
 
2368
2398
  .card-desc { margin-top: var(--space-1); color: var(--muted); font-size: var(--text-sm); line-height: 1.5; }
@@ -2500,12 +2530,8 @@ input:active, textarea:active, select:active { transform: none; }
2500
2530
  tooltip ended up orphaned under it. */
2501
2531
  .set-row > .switch-row { flex: 1; min-width: 0; padding-block: 0; }
2502
2532
 
2503
- .switch-label { color: var(--text); }
2504
-
2505
2533
  .switch-hint { font-size: var(--text-sm); color: var(--muted); }
2506
2534
 
2507
- .switch-said { flex: none; font-size: var(--text-xs); color: var(--muted); }
2508
-
2509
2535
  /* Three sizes, the same names every other control uses. The switch scales with
2510
2536
  the row: a 30x18 track beside 12px text is a different control from the same
2511
2537
  track beside 16px text. */
@@ -2678,17 +2704,6 @@ input[type='radio']:active:not(:disabled) {
2678
2704
 
2679
2705
  /* ---- ./skeleton.css ---- */
2680
2706
  @layer components {
2681
- .muted { color: var(--muted); }
2682
-
2683
- .pulse-block {
2684
- display: inline-block;
2685
- height: 8px;
2686
- border-radius: var(--radius-sm);
2687
- background: var(--muted);
2688
- animation: ds-pulse 1.4s ease-in-out infinite;
2689
- vertical-align: middle;
2690
- }
2691
-
2692
2707
  /* skeletons ------------------------------------------------------------ */
2693
2708
 
2694
2709
  /* Ink at low alpha, not a named surface.
@@ -2947,8 +2962,6 @@ input[type='radio']:active:not(:disabled) {
2947
2962
 
2948
2963
  .rows-split:first-of-type { margin-top: var(--space-2); }
2949
2964
 
2950
- .rows-empty { padding: var(--space-3) 0; }
2951
-
2952
2965
  /* The name, the pills and the line underneath. `min-width: 0` is the whole
2953
2966
  reason this is a class: a flex item will not shrink below its content, so
2954
2967
  without it the name pushes the pills off the end -- and the pills are the
@@ -2965,8 +2978,6 @@ input[type='radio']:active:not(:disabled) {
2965
2978
 
2966
2979
  /* The aligned column. `margin-left: auto` rather than a grid, because the rows
2967
2980
  are flex and a size that varies by two characters does not need a track. */
2968
- .row-trail { flex: none; margin-left: auto; white-space: nowrap; }
2969
-
2970
2981
  .rows-row.rows-top { align-items: flex-start; }
2971
2982
 
2972
2983
  .rows-row.rows-bad .truncate { color: var(--bad); }
@@ -3112,14 +3123,6 @@ input[type='radio']:active:not(:disabled) {
3112
3123
 
3113
3124
  .tabs-vertical .tab.on .tab-label { color: var(--accent); }
3114
3125
 
3115
- .tab-hint {
3116
- display: block;
3117
- margin-top: 1px;
3118
- font-size: var(--text-xs);
3119
- color: var(--muted);
3120
- line-height: 1.35;
3121
- }
3122
-
3123
3126
  /* A heading above a run of tabs. Set apart from the run above by space, not
3124
3127
  a rule -- the rail already has one edge -- and the tabs under it step in
3125
3128
  by the label's own padding so the label reads as theirs. */
@@ -3130,8 +3133,6 @@ input[type='radio']:active:not(:disabled) {
3130
3133
 
3131
3134
  .tabs-vertical .tab-group:first-child { padding-top: var(--space-2); }
3132
3135
 
3133
- .tab-group-label { display: block; font-size: var(--text-sm); font-weight: 600; color: var(--text); }
3134
-
3135
3136
  .tabs-vertical .tab.in-group { padding-left: var(--space-5); }
3136
3137
 
3137
3138
  /* No line under a vertical strip -- its edge is the border on the right. */
@@ -3341,8 +3342,6 @@ input[type='radio']:active:not(:disabled) {
3341
3342
  `<strong>` rule above is the one that sets the size. */
3342
3343
  /* Under the title, on the header's padding rather than the body's, so it reads
3343
3344
  as part of the heading rather than as the first line of content. */
3344
- .modal-desc { line-height: 1.5; }
3345
-
3346
3345
  .modal-body { padding: var(--space-2) var(--space-4) var(--space-3); overflow-y: auto; }
3347
3346
 
3348
3347
  /* The close cross. Its rule stayed behind in tf's stylesheet when the split
@@ -3510,12 +3509,8 @@ input[type='radio']:active:not(:disabled) {
3510
3509
 
3511
3510
  .slider-row.is-disabled { opacity: 0.55; }
3512
3511
 
3513
- .slider-body { flex: 1 1 260px; min-width: 0; display: grid; gap: 1px; }
3514
-
3515
3512
  .set-row > .slider-row { flex: 1; min-width: 0; padding-block: 0; }
3516
3513
 
3517
- .slider-label { color: var(--text); }
3518
-
3519
3514
  .slider-hint { font-size: var(--text-sm); color: var(--muted); }
3520
3515
 
3521
3516
  /* The box, with the value printed inside it at the right where a select
@@ -3741,8 +3736,6 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
3741
3736
  /* A run of checkboxes is one choice, not several settings that happen to be
3742
3737
  adjacent. Tight enough that the group reads as a block -- at the spacing a
3743
3738
  form field wants, four tools look like four unrelated questions. */
3744
- .choice-group { display: grid; gap: var(--space-1); }
3745
-
3746
3739
  /* The same choice, laid out as tiles instead of a column.
3747
3740
 
3748
3741
  Four short names down the full width of a card is four wide bands for four
@@ -3866,8 +3859,6 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
3866
3859
  second line is what the first line is actually asking for. */
3867
3860
  .choice-why { display: block; color: var(--muted); font-size: var(--text-sm); margin-top: 1px; }
3868
3861
 
3869
- .choice-meta { color: var(--muted); font-size: var(--text-xs); font-family: var(--font-mono); }
3870
-
3871
3862
  .choice[data-disabled] {
3872
3863
  cursor: not-allowed;
3873
3864
  border-color: var(--border);
@@ -4064,8 +4055,9 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4064
4055
  reason they can live in an app with four palettes: `ink` becomes the current
4065
4056
  text colour and `paper` becomes the surface behind it, so one file covers
4066
4057
  Night, Paper and both halves of System. Give the wrapper a `color` and
4067
- the figure follows it -- `.muted` for a quiet empty state, `--accent` for the
4068
- one thing on screen worth looking at. */
4058
+ the figure follows it: `--muted` for a quiet empty state, `--accent` for the
4059
+ one thing on screen worth looking at. Set that colour on the wrapper --
4060
+ `Empty` reaches for `text-muted`, and any token works. */
4069
4061
  .illo {
4070
4062
  display: inline-block;
4071
4063
  /* Height is the given dimension and the width comes from the drawing, so a
@@ -4082,18 +4074,6 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4082
4074
  caller says otherwise. Not `transparent`: these have overlapping shapes, and
4083
4075
  a shirt that lets the arm behind it show through reads as a hole. */
4084
4076
  .illo .paper { fill: var(--illo-paper); }
4085
-
4086
- /* The figure in a whole-surface `Empty`, drawn in the muted grey of the
4087
- sentence under it.
4088
- *
4089
- * A utility cannot do this, and the reason is worth keeping: `.illo` sets
4090
- * `color: inherit` and is unlayered, while every Tailwind utility lives in
4091
- * `@layer utilities` -- and an unlayered declaration beats a layered one
4092
- * whatever the specificity. So `text-muted` on the figure lost, silently,
4093
- * and the shirt came out full text black beside a muted sentence. The
4094
- * original rule already carried a note about needing two classes to beat
4095
- * `.illo`; layers make that impossible rather than merely fiddly. */
4096
- .nothing-figure { color: var(--muted); }
4097
4077
  }
4098
4078
 
4099
4079
  /* ---- ./field.css ---- */
@@ -4105,7 +4085,9 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4105
4085
  to what was typed, so it goes after. */
4106
4086
  .field { display: grid; gap: var(--space-1); }
4107
4087
 
4108
- .field-stack-layout { /* the default: label, description, control, error */ }
4088
+ /* `.field-stack-layout` carries no rules: stacking is what `.field` already
4089
+ does, and the class is emitted only so that both layouts name themselves
4090
+ the same way (`field-${layout}-layout`). Only the row layout overrides. */
4109
4091
 
4110
4092
  .field-row-layout > .field-label { grid-column: 1; }
4111
4093
 
@@ -4126,8 +4108,6 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4126
4108
 
4127
4109
  /* Not red. The asterisk marks which fields are required; colouring it the same
4128
4110
  as a failure says something has already gone wrong with every one of them. */
4129
- .field-required { color: var(--muted); }
4130
-
4131
4111
  .field-hint,
4132
4112
  .field-error { margin: 0; font-size: var(--text-sm); line-height: 1.45; }
4133
4113
 
@@ -4149,8 +4129,6 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4149
4129
  /* Fields stacked down a form. Wider than the gap inside one field, so the
4150
4130
  label of the next belongs to the input under it rather than to the error
4151
4131
  above it. */
4152
- .field-stack { display: grid; gap: var(--space-4); }
4153
-
4154
4132
  .field-row > .field { flex: 1; min-width: 0; }
4155
4133
 
4156
4134
  /* A password with an eye -- `Input type="password"`.
@@ -4278,10 +4256,6 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4278
4256
  @layer components {
4279
4257
  /* tour ----------------------------------------------------------------- */
4280
4258
 
4281
- /* The layer sits over everything and catches nothing: the scrim is painted by
4282
- the hole's shadow, so there is no full-screen element to swallow a click. */
4283
- .tour { position: fixed; inset: 0; z-index: 60; pointer-events: none; }
4284
-
4285
4259
  /* The control the tour is currently pointing at.
4286
4260
 
4287
4261
  Much of this chrome is invisible until you touch it -- `.view-add` lives at
@@ -4292,11 +4266,14 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4292
4266
  what every control does at rest, and the alternative is naming each one here
4293
4267
  and watching that list drift from the rules that hide them. One declaration
4294
4268
  that outranks whatever the resting state is beats an enumeration that goes
4295
- stale. It is scoped to a class only ever present on one element at a time. */
4296
- .tour-target {
4297
- opacity: 1 !important;
4298
- color: var(--text) !important;
4299
- }
4269
+ stale. It is scoped to a class only ever present on one element at a time.
4270
+
4271
+ Opacity and nothing else. This forced `color: var(--text)` too, from the
4272
+ original port, with no case on record that needed it -- and it broke the
4273
+ first target that painted its own background, turning a primary button's
4274
+ label dark on accent at 2.2:1. The spotlight makes a control visible; what
4275
+ colour it is at rest is the control's business. */
4276
+ .tour-target { opacity: 1 !important; }
4300
4277
 
4301
4278
  /* The spotlight. An enormous spread shadow dims the whole window except the
4302
4279
  rectangle it is drawn on, which needs no clip path and no arithmetic. */
@@ -4330,8 +4307,6 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4330
4307
 
4331
4308
  .tour-card:focus { outline: none; }
4332
4309
 
4333
- .tour-title { font-size: var(--text-base); }
4334
-
4335
4310
  .tour-body { margin: 0; color: var(--muted); font-size: var(--text-sm); line-height: 1.5; }
4336
4311
 
4337
4312
  .tour-actions { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-2); }
@@ -4503,17 +4478,6 @@ input[type='range'].slider:disabled::-moz-range-thumb { opacity: 0; }
4503
4478
  the intrinsic width of a mail list is the longest unbroken subject line in
4504
4479
  it. Without this the handle stops partway across and nothing on screen says
4505
4480
  why -- it just refuses, differently for every mailbox. */
4506
- .split-pane {
4507
- min-width: 0;
4508
- min-height: 0;
4509
- overflow: hidden;
4510
- display: flex;
4511
- flex-direction: column;
4512
- }
4513
-
4514
- .split-first { flex: 0 0 var(--split); }
4515
- .split-second { flex: 1 1 0; }
4516
-
4517
4481
  /* The handle is wider than it looks: a hairline is a correct-looking divider
4518
4482
  and an impossible pointer target. The grip is the line, drawn at
4519
4483
  `--border-width` down the middle of a `--space-3` strip, and the strip is
@@ -4610,13 +4574,6 @@ body.splitting * { cursor: inherit !important; }
4610
4574
  z-index: 60;
4611
4575
  }
4612
4576
 
4613
- .pop-body {
4614
- padding: var(--space-3);
4615
- outline: none;
4616
- color: var(--text);
4617
- font-size: var(--text-sm);
4618
- }
4619
-
4620
4577
  /* Entry, and the direction it comes from. `data-placement` is React Aria's,
4621
4578
  set to where the surface actually went rather than where it was asked to go,
4622
4579
  so the movement agrees with the flip. */
@@ -4677,8 +4634,6 @@ body.splitting * { cursor: inherit !important; }
4677
4634
  .menu-icon { flex: none; width: var(--space-4); height: var(--space-4); color: var(--muted); }
4678
4635
  .menu-item[data-focused] .menu-icon { color: var(--text); }
4679
4636
 
4680
- .menu-text { flex: 1 1 auto; min-width: 0; display: grid; }
4681
- .menu-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
4682
4637
  .menu-desc {
4683
4638
  font-size: var(--text-xs);
4684
4639
  color: var(--muted);
@@ -4757,18 +4712,6 @@ body.splitting * { cursor: inherit !important; }
4757
4712
  flex-direction: column;
4758
4713
  }
4759
4714
 
4760
- .cmd-body { outline: none; display: flex; flex-direction: column; min-height: 0; }
4761
-
4762
- .cmd-field {
4763
- display: flex;
4764
- align-items: center;
4765
- gap: var(--space-2);
4766
- padding: var(--space-3) var(--space-4);
4767
- border-bottom: var(--border-width) solid var(--border);
4768
- }
4769
-
4770
- .cmd-mark { flex: none; width: var(--space-4); height: var(--space-4); color: var(--muted); }
4771
-
4772
4715
  /* No border, no focus ring on the input itself: the whole surface is the
4773
4716
  field, focus is already in it when it opens, and a ring around a box that
4774
4717
  fills the top of the palette is a ring around the palette. */
@@ -4785,22 +4728,6 @@ body.splitting * { cursor: inherit !important; }
4785
4728
 
4786
4729
  .cmd-input::placeholder { color: var(--muted); }
4787
4730
 
4788
- .cmd-list {
4789
- padding: var(--space-2);
4790
- overflow: auto;
4791
- overscroll-behavior: contain;
4792
- outline: none;
4793
- min-height: 0;
4794
- }
4795
-
4796
- .cmd-group-title {
4797
- padding: var(--space-2) var(--space-2) var(--space-1);
4798
- font-size: var(--text-2xs);
4799
- text-transform: uppercase;
4800
- letter-spacing: var(--tracking);
4801
- color: var(--muted);
4802
- }
4803
-
4804
4731
  .cmd-item {
4805
4732
  display: flex;
4806
4733
  align-items: center;
@@ -4836,8 +4763,6 @@ body.splitting * { cursor: inherit !important; }
4836
4763
  .cmd-icon { flex: none; width: var(--space-4); height: var(--space-4); color: var(--muted); }
4837
4764
  .cmd-item[data-focused] .cmd-icon { color: var(--text); }
4838
4765
 
4839
- .cmd-text { flex: 1 1 auto; min-width: 0; display: grid; }
4840
- .cmd-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
4841
4766
  .cmd-desc {
4842
4767
  font-size: var(--text-xs);
4843
4768
  color: var(--muted);
@@ -5039,25 +4964,6 @@ body.splitting * { cursor: inherit !important; }
5039
4964
  font-size: var(--text-2xs);
5040
4965
  }
5041
4966
 
5042
- .ident-text { display: grid; min-width: 0; }
5043
-
5044
- .ident-name {
5045
- overflow: hidden;
5046
- text-overflow: ellipsis;
5047
- white-space: nowrap;
5048
- font-weight: var(--weight);
5049
- }
5050
-
5051
- .ident-address {
5052
- overflow: hidden;
5053
- text-overflow: ellipsis;
5054
- white-space: nowrap;
5055
- font-size: var(--text-xs);
5056
- color: var(--muted);
5057
- }
5058
-
5059
- .ident-aside { flex: none; color: var(--muted); font-size: var(--text-xs); }
5060
-
5061
4967
  /* A chip in a composer's To field: boxed, tighter, removable. */
5062
4968
  .ident.kind-chip {
5063
4969
  gap: var(--space-1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wtfalch/design",
3
- "version": "0.9.1",
3
+ "version": "0.10.1",
4
4
  "description": "wtfalch's design system: themeable components on a fixed token vocabulary.",
5
5
  "keywords": [
6
6
  "design-system",