@ai-matrx/canvas 0.10.34 → 0.10.36
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/CHANGELOG.md +12 -0
- package/dist/react.cjs +46 -33
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +5 -1
- package/dist/react.d.ts +5 -1
- package/dist/react.js +46 -33
- package/dist/react.js.map +1 -1
- package/dist/styles.css +89 -23
- package/dist/tokens.css +7 -0
- package/package.json +2 -2
package/dist/styles.css
CHANGED
|
@@ -533,6 +533,8 @@
|
|
|
533
533
|
max-width: 12rem;
|
|
534
534
|
display: flex;
|
|
535
535
|
align-items: center;
|
|
536
|
+
/* macOS tabs (Safari, Terminal, Finder) centre their icon and name. */
|
|
537
|
+
justify-content: center;
|
|
536
538
|
gap: 0.25rem;
|
|
537
539
|
height: 1.625rem;
|
|
538
540
|
padding: 0 0.375rem;
|
|
@@ -546,9 +548,9 @@
|
|
|
546
548
|
box-sizing: border-box;
|
|
547
549
|
}
|
|
548
550
|
|
|
549
|
-
/* The active tab always shows its close: its room is reserved. */
|
|
551
|
+
/* The active tab always shows its close: its room is reserved (at the leading edge, as macOS tabs put it). */
|
|
550
552
|
.mxc-tab[data-active]:has(> .mxc-tab-close) {
|
|
551
|
-
padding-
|
|
553
|
+
padding-left: 1.25rem;
|
|
552
554
|
}
|
|
553
555
|
|
|
554
556
|
/* The active tab: the same width rules as every tab (no flex-shrink of its own — 0.7.0 live: it ran under "All tabs"). */
|
|
@@ -655,7 +657,7 @@
|
|
|
655
657
|
@media (hover: hover) {
|
|
656
658
|
.mxc-tab:not([data-active]):hover:has(> .mxc-tab-close),
|
|
657
659
|
.mxc-tab:not([data-active]):focus-within:has(> .mxc-tab-close) {
|
|
658
|
-
padding-
|
|
660
|
+
padding-left: 1.25rem;
|
|
659
661
|
}
|
|
660
662
|
}
|
|
661
663
|
|
|
@@ -668,7 +670,7 @@
|
|
|
668
670
|
.mxc-tab-close {
|
|
669
671
|
position: absolute;
|
|
670
672
|
top: 50%;
|
|
671
|
-
|
|
673
|
+
left: 0.1875rem;
|
|
672
674
|
transform: translateY(-50%);
|
|
673
675
|
display: inline-flex;
|
|
674
676
|
align-items: center;
|
|
@@ -716,43 +718,95 @@
|
|
|
716
718
|
|
|
717
719
|
/* ── browser bar ────────────────────────────────────────────────────────── */
|
|
718
720
|
|
|
719
|
-
/*
|
|
721
|
+
/*
|
|
722
|
+
* Safari's toolbar row (macOS 26): Back and Forward in one capsule, the address
|
|
723
|
+
* as a centred pill showing the site's host until clicked, Reload inside its
|
|
724
|
+
* trailing edge, the page's actions in a capsule after it. 8px apart.
|
|
725
|
+
* In a body column it keeps its own height; in a header's leading slot it fills the width.
|
|
726
|
+
*/
|
|
720
727
|
.mxc-browser-bar {
|
|
721
|
-
flex:
|
|
728
|
+
flex: 1 1 auto;
|
|
722
729
|
min-width: 0;
|
|
723
730
|
display: flex;
|
|
724
731
|
align-items: center;
|
|
725
|
-
gap: 0.
|
|
726
|
-
height: 2.
|
|
727
|
-
padding: 0 0.
|
|
732
|
+
gap: 0.5rem;
|
|
733
|
+
height: 2.75rem;
|
|
734
|
+
padding: 0 0.5rem;
|
|
728
735
|
}
|
|
729
736
|
|
|
730
737
|
.mxc-pane-leading > .mxc-browser-bar {
|
|
731
|
-
flex: 1 1 auto;
|
|
732
738
|
height: auto;
|
|
733
739
|
padding: 0;
|
|
734
740
|
}
|
|
735
741
|
|
|
742
|
+
/* A glass capsule of related buttons (Back | Forward; a page's actions). */
|
|
743
|
+
.mxc-capsule {
|
|
744
|
+
flex: none;
|
|
745
|
+
display: inline-flex;
|
|
746
|
+
align-items: center;
|
|
747
|
+
gap: 0;
|
|
748
|
+
height: 2rem;
|
|
749
|
+
padding: 0 0.125rem;
|
|
750
|
+
border-radius: 999px;
|
|
751
|
+
background: var(--mxc-capsule-bg);
|
|
752
|
+
box-shadow: var(--mxc-capsule-shadow);
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
.mxc-capsule > .mxc-icon-button {
|
|
756
|
+
border-radius: 999px;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
.mxc-capsule-divider {
|
|
760
|
+
flex: none;
|
|
761
|
+
width: 1px;
|
|
762
|
+
height: 1rem;
|
|
763
|
+
background: var(--mxc-border);
|
|
764
|
+
}
|
|
765
|
+
|
|
736
766
|
.mxc-address-form {
|
|
767
|
+
position: relative;
|
|
737
768
|
flex: 1 1 auto;
|
|
738
|
-
min-width:
|
|
739
|
-
|
|
769
|
+
min-width: 6rem;
|
|
770
|
+
display: flex;
|
|
771
|
+
align-items: center;
|
|
772
|
+
margin: 0;
|
|
740
773
|
}
|
|
741
774
|
|
|
742
775
|
.mxc-address {
|
|
743
776
|
width: 100%;
|
|
744
|
-
height:
|
|
745
|
-
padding: 0
|
|
746
|
-
border:
|
|
777
|
+
height: 2rem;
|
|
778
|
+
padding: 0 2rem;
|
|
779
|
+
border: 0;
|
|
747
780
|
border-radius: 999px;
|
|
748
|
-
background: var(--mxc-
|
|
781
|
+
background: var(--mxc-capsule-bg);
|
|
782
|
+
box-shadow: var(--mxc-capsule-shadow);
|
|
749
783
|
color: var(--mxc-fg);
|
|
750
784
|
font: inherit;
|
|
751
|
-
font-size: 0.
|
|
785
|
+
font-size: 0.8125rem;
|
|
752
786
|
text-align: center;
|
|
753
787
|
outline: none;
|
|
754
788
|
}
|
|
755
789
|
|
|
790
|
+
/* Not being typed in: the field keeps the whole address (its value, its accessible name), and the
|
|
791
|
+
host is what shows, centred, as Safari's does. */
|
|
792
|
+
.mxc-address[data-shown="host"] {
|
|
793
|
+
color: transparent;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
.mxc-address-host {
|
|
797
|
+
position: absolute;
|
|
798
|
+
inset: 0 2rem;
|
|
799
|
+
display: flex;
|
|
800
|
+
align-items: center;
|
|
801
|
+
justify-content: center;
|
|
802
|
+
overflow: hidden;
|
|
803
|
+
font-size: 0.8125rem;
|
|
804
|
+
color: var(--mxc-fg);
|
|
805
|
+
white-space: nowrap;
|
|
806
|
+
text-overflow: ellipsis;
|
|
807
|
+
pointer-events: none;
|
|
808
|
+
}
|
|
809
|
+
|
|
756
810
|
.mxc-address::placeholder {
|
|
757
811
|
color: var(--mxc-muted);
|
|
758
812
|
}
|
|
@@ -760,15 +814,27 @@
|
|
|
760
814
|
.mxc-address:focus {
|
|
761
815
|
background: var(--mxc-tab-active-bg);
|
|
762
816
|
text-align: left;
|
|
763
|
-
|
|
817
|
+
padding-left: 0.875rem;
|
|
818
|
+
box-shadow: 0 0 0 3px var(--mxc-ring);
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
.mxc-address-reload {
|
|
822
|
+
position: absolute;
|
|
823
|
+
right: 0.25rem;
|
|
824
|
+
border-radius: 999px;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
/* No page yet: no Reload, so the placeholder gets the whole pill. */
|
|
828
|
+
.mxc-address-form:not(:has(> .mxc-address-reload)) > .mxc-address {
|
|
829
|
+
padding: 0 0.875rem;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
.mxc-address-form[data-editing] > .mxc-address-reload {
|
|
833
|
+
display: none;
|
|
764
834
|
}
|
|
765
835
|
|
|
766
836
|
.mxc-browser-bar-trailing {
|
|
767
|
-
|
|
768
|
-
display: flex;
|
|
769
|
-
align-items: center;
|
|
770
|
-
gap: 0.125rem;
|
|
771
|
-
margin-left: 0.25rem;
|
|
837
|
+
margin-left: 0;
|
|
772
838
|
}
|
|
773
839
|
|
|
774
840
|
/* ── bodies ─────────────────────────────────────────────────────────────── */
|
package/dist/tokens.css
CHANGED
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
--mxc-tab-active-bg: hsl(var(--background, 0 0% 100%));
|
|
22
22
|
--mxc-tab-active-shadow: 0 0 0 0.5px hsl(var(--border, 240 6% 85%)), 0 1px 2px hsl(var(--foreground, 240 6% 10%) / 0.06);
|
|
23
23
|
--mxc-input-bg: hsl(var(--muted, 240 5% 96%) / 0.5);
|
|
24
|
+
/* Safari's glass capsules (Back | Forward, the address pill): raised on the toolbar. */
|
|
25
|
+
--mxc-capsule-bg: hsl(var(--background, 0 0% 100%));
|
|
26
|
+
--mxc-capsule-shadow: 0 0 0 0.5px hsl(var(--foreground, 240 6% 10%) / 0.12), 0 1px 3px hsl(var(--foreground, 240 6% 10%) / 0.08);
|
|
24
27
|
--mxc-ring: hsl(var(--ring, 217 91% 60%) / 0.6);
|
|
25
28
|
--mxc-accent: hsl(var(--primary, 221 83% 53%));
|
|
26
29
|
--mxc-accent-soft: hsl(var(--primary, 221 83% 53%) / 0.18);
|
|
@@ -51,6 +54,8 @@
|
|
|
51
54
|
--mxc-tab-active-bg: hsl(var(--background, 240 6% 7%));
|
|
52
55
|
--mxc-tab-active-shadow: 0 0 0 0.5px hsl(var(--border, 240 4% 22%)), 0 1px 2px rgb(0 0 0 / 0.3);
|
|
53
56
|
--mxc-input-bg: hsl(var(--muted, 240 4% 16%) / 0.5);
|
|
57
|
+
--mxc-capsule-bg: hsl(var(--foreground, 240 5% 96%) / 0.1);
|
|
58
|
+
--mxc-capsule-shadow: 0 0 0 0.5px hsl(var(--foreground, 240 5% 96%) / 0.12), 0 1px 3px rgb(0 0 0 / 0.3);
|
|
54
59
|
--mxc-tooltip-bg: hsl(var(--foreground, 240 5% 96%));
|
|
55
60
|
--mxc-tooltip-fg: hsl(var(--background, 240 6% 7%));
|
|
56
61
|
}
|
|
@@ -69,6 +74,8 @@
|
|
|
69
74
|
--mxc-tab-active-bg: hsl(var(--background, 240 6% 7%));
|
|
70
75
|
--mxc-tab-active-shadow: 0 0 0 0.5px hsl(var(--border, 240 4% 22%)), 0 1px 2px rgb(0 0 0 / 0.3);
|
|
71
76
|
--mxc-input-bg: hsl(var(--muted, 240 4% 16%) / 0.5);
|
|
77
|
+
--mxc-capsule-bg: hsl(var(--foreground, 240 5% 96%) / 0.1);
|
|
78
|
+
--mxc-capsule-shadow: 0 0 0 0.5px hsl(var(--foreground, 240 5% 96%) / 0.12), 0 1px 3px rgb(0 0 0 / 0.3);
|
|
72
79
|
--mxc-tooltip-bg: hsl(var(--foreground, 240 5% 96%));
|
|
73
80
|
--mxc-tooltip-fg: hsl(var(--background, 240 6% 7%));
|
|
74
81
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-matrx/canvas",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.36",
|
|
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",
|
|
@@ -103,5 +103,5 @@
|
|
|
103
103
|
"check:package": "pnpm build && node ../scripts/check-exports-agreement.mjs && publint && pnpm verify:tarball",
|
|
104
104
|
"verify:tarball": "node scripts/verify-tarball.mjs"
|
|
105
105
|
},
|
|
106
|
-
"gitHead": "
|
|
106
|
+
"gitHead": "9f444022a727510773f188bf82b090fc5687e7f8"
|
|
107
107
|
}
|