@ai-matrx/canvas 0.7.0 → 0.7.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/dist/styles.css CHANGED
@@ -490,7 +490,7 @@
490
490
  .mxc-tab {
491
491
  position: relative;
492
492
  flex: 0 1 auto;
493
- min-width: var(--mxc-tab-min, 78px);
493
+ min-width: var(--mxc-tab-min, 88px);
494
494
  max-width: 12rem;
495
495
  display: flex;
496
496
  align-items: center;
@@ -512,10 +512,14 @@
512
512
  padding-right: 1.25rem;
513
513
  }
514
514
 
515
- /* The active tab gets priority width: it shrinks last and keeps a higher floor. */
515
+ /*
516
+ * The active tab gets priority width through its higher floor. (Never a
517
+ * flex-shrink below 1: once it is the last tab still shrinking, the flex
518
+ * algorithm hands it only that fraction of the overflow and it runs under
519
+ * the "All tabs" button — measured live on 0.7.0.)
520
+ */
516
521
  .mxc-tab[data-active] {
517
- flex-shrink: 0.2;
518
- min-width: var(--mxc-tab-active-min, 100px);
522
+ min-width: var(--mxc-tab-active-min, 112px);
519
523
  background: var(--mxc-tab-active-bg);
520
524
  color: var(--mxc-fg);
521
525
  box-shadow: var(--mxc-tab-active-shadow);
@@ -579,11 +583,17 @@
579
583
  text-overflow: ellipsis;
580
584
  }
581
585
 
582
- /* A background tab's close is overlaid while shown: the name's end fades under it. */
583
- .mxc-tab:not([data-active]):hover:has(> .mxc-tab-close) .mxc-tab-title,
584
- .mxc-tab:not([data-active]):focus-within:has(> .mxc-tab-close) .mxc-tab-title {
585
- -webkit-mask-image: linear-gradient(to left, transparent 1.125rem, #000 1.875rem);
586
- mask-image: linear-gradient(to left, transparent 1.125rem, #000 1.875rem);
586
+ /*
587
+ * A background tab's close shows on hover / focus, and while it shows the name
588
+ * ends (ellipsis) before it: the room is reserved then, never overlaid. Touch
589
+ * screens have no hover, so a background tab shows no close there at all (only
590
+ * the active tab does) and its name keeps the room.
591
+ */
592
+ @media (hover: hover) {
593
+ .mxc-tab:not([data-active]):hover:has(> .mxc-tab-close),
594
+ .mxc-tab:not([data-active]):focus-within:has(> .mxc-tab-close) {
595
+ padding-right: 1.25rem;
596
+ }
587
597
  }
588
598
 
589
599
  .mxc-tab-note {
@@ -634,11 +644,10 @@
634
644
  box-shadow: 0 0 0 2px var(--mxc-ring);
635
645
  }
636
646
 
637
- /* Touch screens have no hover: every tab's close is reachable. */
647
+ /* Touch screens have no hover: only the active tab shows a close, so names get the room. */
638
648
  @media (pointer: coarse) {
639
- .mxc-tab .mxc-tab-close {
640
- opacity: 1;
641
- pointer-events: auto;
649
+ .mxc-tab:not([data-active]) .mxc-tab-close {
650
+ display: none;
642
651
  }
643
652
  }
644
653
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/canvas",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "The AI Matrx canvas: a docked right-hand column with split panes, tabs, full screen, a kind registry, Redux-compatible state and persistence.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",