@adecore/ui 0.50.5 → 0.50.6

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/theme.css CHANGED
@@ -825,6 +825,8 @@
825
825
  own edge and shadow; those two sit a step darker, in the well behind it. */
826
826
  .ade-workspace {
827
827
  --workspace-well: color-mix(in srgb, var(--surface) 70%, var(--surface-sunken));
828
+ /* What shows beyond the sheet's rounded corners. */
829
+ --workspace-ground: var(--workspace-well);
828
830
  display: flex;
829
831
  width: 100%;
830
832
  height: 100%;
@@ -841,18 +843,39 @@
841
843
  flex: 1;
842
844
  min-width: 0;
843
845
  min-height: 0;
844
- overflow: hidden;
846
+ /* No rounded clip: Chromium leaves tiles of a scaled canvas inside one unpainted while it zooms. The
847
+ corners are drawn over the content instead. */
845
848
  border-radius: 0 12px 12px 0;
846
849
  /* The surface its regions draw, so no lighter ground shows where the rounded edge cuts them. Roomy shows its gaps in it. */
847
850
  background: var(--surface);
848
851
  box-shadow: 0 0 0 1px var(--border), var(--sheet-shadow);
849
852
  }
853
+ .ade-workspace-sheet::before, .ade-workspace-sheet::after {
854
+ content: "";
855
+ position: absolute;
856
+ right: 0;
857
+ z-index: 1;
858
+ width: 12px;
859
+ height: 12px;
860
+ pointer-events: none;
861
+ }
862
+ /* The arc, its hairline just outside it, and the ground beyond, as the box shadow draws them along the straight edges. */
863
+ .ade-workspace-sheet::before {
864
+ top: 0;
865
+ background: radial-gradient(circle at 0 100%, transparent 11px, var(--border) 12px, var(--workspace-ground) 13px);
866
+ }
867
+ .ade-workspace-sheet::after {
868
+ bottom: 0;
869
+ background: radial-gradient(circle at 0 0, transparent 11px, var(--border) 12px, var(--workspace-ground) 13px);
870
+ }
850
871
  .ade-workspace-center {
851
872
  display: flex;
852
873
  flex: 1;
853
874
  min-width: 0;
854
875
  min-height: 0;
855
876
  flex-direction: column;
877
+ /* Keeps what the content stacks under the sheet's corners. */
878
+ isolation: isolate;
856
879
  }
857
880
  .ade-workspace-sidebar, .ade-workspace-side-panel {
858
881
  flex: none;
@@ -885,6 +908,8 @@
885
908
  .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet { box-shadow: 0 0 0 1px var(--border); }
886
909
  /* Roomy's panes round their own corners, so the sheet's corner on the window's bottom stays square. */
887
910
  .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet { border-bottom-right-radius: 0; }
911
+ .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet::after { display: none; }
912
+ .ade-workspace[data-layout="roomy"] { --workspace-ground: var(--separator); }
888
913
  .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet > .ade-workspace-center { gap: 8px; }
889
914
  .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet > .ade-workspace-sidebar:not([data-auto]) { margin-right: 8px; }
890
915
  .ade-workspace[data-layout="roomy"] > .ade-workspace-side-panel:not([data-auto]) { margin-left: 8px; }
@@ -1039,6 +1064,9 @@
1039
1064
  outline-offset: -2px;
1040
1065
  white-space: nowrap;
1041
1066
  }
1067
+ /* Only the label gives way; an icon, a detail or a mark keeps its size. */
1068
+ .ade-document-tab-open > * { flex-shrink: 0; }
1069
+ .ade-document-tab-open > .ade-document-tab-label { flex-shrink: 1; min-width: 0; }
1042
1070
  .ade-document-tab-close { opacity: 0; }
1043
1071
  .ade-document-tab:is(:hover, :focus-within, [data-active]) .ade-document-tab-close { opacity: 1; }
1044
1072
  .ade-document-tab[data-detail] .ade-document-tab-open { max-width: 200px; }
@@ -249,7 +249,7 @@ export function PaneBar(t0) {
249
249
  }
250
250
  const t13 = tabs ? "min-w-24 self-stretch" : "min-w-5";
251
251
  const t14 = inContainer ? tabs ? "-ml-1" : "pl-2" : !tabs && "pl-1";
252
- const t15 = tabs || (folded || !hasActions) && !inContainer ? "grow" : "shrink-100";
252
+ const t15 = !inContainer && (tabs || folded || !hasActions) ? "grow" : "shrink-100";
253
253
  let t16;
254
254
  if ($[38] !== t13 || $[39] !== t14 || $[40] !== t15) {
255
255
  t16 = clsx("ade-pane-title flex items-center gap-2", t13, t14, t15);
@@ -276,7 +276,7 @@ export function PaneBar(t0) {
276
276
  const t18 = !separate && actionsPart;
277
277
  let t19;
278
278
  if ($[45] !== folded || $[46] !== hasActions || $[47] !== inContainer || $[48] !== tabs) {
279
- t19 = inContainer && !tabs && (folded || !hasActions) && /*#__PURE__*/_jsx("span", {
279
+ t19 = inContainer && (tabs || folded || !hasActions) && /*#__PURE__*/_jsx("span", {
280
280
  "aria-hidden": "true",
281
281
  className: "grow self-stretch"
282
282
  });
@@ -728,7 +728,7 @@ export function DocumentTab(t0) {
728
728
  let t19;
729
729
  if ($[57] !== item.label) {
730
730
  t19 = /*#__PURE__*/_jsx("span", {
731
- className: "truncate",
731
+ className: "ade-document-tab-label truncate",
732
732
  children: item.label
733
733
  });
734
734
  $[57] = item.label;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adecore/ui",
3
- "version": "0.50.5",
3
+ "version": "0.50.6",
4
4
  "description": "React components, a theme, formatters and a settings dialog for desktop-grade apps on React 19, Base UI and Tailwind 4.",
5
5
  "license": "FSL-1.1-MIT",
6
6
  "author": "Bas Milius",
package/src/theme.css CHANGED
@@ -825,6 +825,8 @@
825
825
  own edge and shadow; those two sit a step darker, in the well behind it. */
826
826
  .ade-workspace {
827
827
  --workspace-well: color-mix(in srgb, var(--surface) 70%, var(--surface-sunken));
828
+ /* What shows beyond the sheet's rounded corners. */
829
+ --workspace-ground: var(--workspace-well);
828
830
  display: flex;
829
831
  width: 100%;
830
832
  height: 100%;
@@ -841,18 +843,39 @@
841
843
  flex: 1;
842
844
  min-width: 0;
843
845
  min-height: 0;
844
- overflow: hidden;
846
+ /* No rounded clip: Chromium leaves tiles of a scaled canvas inside one unpainted while it zooms. The
847
+ corners are drawn over the content instead. */
845
848
  border-radius: 0 12px 12px 0;
846
849
  /* The surface its regions draw, so no lighter ground shows where the rounded edge cuts them. Roomy shows its gaps in it. */
847
850
  background: var(--surface);
848
851
  box-shadow: 0 0 0 1px var(--border), var(--sheet-shadow);
849
852
  }
853
+ .ade-workspace-sheet::before, .ade-workspace-sheet::after {
854
+ content: "";
855
+ position: absolute;
856
+ right: 0;
857
+ z-index: 1;
858
+ width: 12px;
859
+ height: 12px;
860
+ pointer-events: none;
861
+ }
862
+ /* The arc, its hairline just outside it, and the ground beyond, as the box shadow draws them along the straight edges. */
863
+ .ade-workspace-sheet::before {
864
+ top: 0;
865
+ background: radial-gradient(circle at 0 100%, transparent 11px, var(--border) 12px, var(--workspace-ground) 13px);
866
+ }
867
+ .ade-workspace-sheet::after {
868
+ bottom: 0;
869
+ background: radial-gradient(circle at 0 0, transparent 11px, var(--border) 12px, var(--workspace-ground) 13px);
870
+ }
850
871
  .ade-workspace-center {
851
872
  display: flex;
852
873
  flex: 1;
853
874
  min-width: 0;
854
875
  min-height: 0;
855
876
  flex-direction: column;
877
+ /* Keeps what the content stacks under the sheet's corners. */
878
+ isolation: isolate;
856
879
  }
857
880
  .ade-workspace-sidebar, .ade-workspace-side-panel {
858
881
  flex: none;
@@ -885,6 +908,8 @@
885
908
  .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet { box-shadow: 0 0 0 1px var(--border); }
886
909
  /* Roomy's panes round their own corners, so the sheet's corner on the window's bottom stays square. */
887
910
  .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet { border-bottom-right-radius: 0; }
911
+ .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet::after { display: none; }
912
+ .ade-workspace[data-layout="roomy"] { --workspace-ground: var(--separator); }
888
913
  .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet > .ade-workspace-center { gap: 8px; }
889
914
  .ade-workspace[data-layout="roomy"] > .ade-workspace-sheet > .ade-workspace-sidebar:not([data-auto]) { margin-right: 8px; }
890
915
  .ade-workspace[data-layout="roomy"] > .ade-workspace-side-panel:not([data-auto]) { margin-left: 8px; }
@@ -1039,6 +1064,9 @@
1039
1064
  outline-offset: -2px;
1040
1065
  white-space: nowrap;
1041
1066
  }
1067
+ /* Only the label gives way; an icon, a detail or a mark keeps its size. */
1068
+ .ade-document-tab-open > * { flex-shrink: 0; }
1069
+ .ade-document-tab-open > .ade-document-tab-label { flex-shrink: 1; min-width: 0; }
1042
1070
  .ade-document-tab-close { opacity: 0; }
1043
1071
  .ade-document-tab:is(:hover, :focus-within, [data-active]) .ade-document-tab-close { opacity: 1; }
1044
1072
  .ade-document-tab[data-detail] .ade-document-tab-open { max-width: 200px; }
@@ -221,7 +221,7 @@ export function PaneBar({
221
221
  stands before it: 16 pixels, of which the gap brings 8 and a tab 12 of its own. */
222
222
  inContainer ? (tabs ? '-ml-1' : 'pl-2') : !tabs && 'pl-1',
223
223
  // A weight rather than `shrink`, since controls whose labels truncate shrink as well.
224
- tabs || ((folded || !hasActions) && !inContainer) ? 'grow' : 'shrink-100'
224
+ !inContainer && (tabs || folded || !hasActions) ? 'grow' : 'shrink-100'
225
225
  )}
226
226
  >
227
227
  {title}
@@ -229,7 +229,7 @@ export function PaneBar({
229
229
  {accessory}
230
230
  {!separate && actionsPart}
231
231
  {/* The room the title leaves in a container, which the window drags by. */}
232
- {inContainer && !tabs && (folded || !hasActions) && <span aria-hidden="true" className="grow self-stretch" />}
232
+ {inContainer && (tabs || folded || !hasActions) && <span aria-hidden="true" className="grow self-stretch" />}
233
233
  {trailing}
234
234
  {onClose && (
235
235
  <CloseButton label={closeLabel ?? t('workspace.closePane')} kbd={closeShortcut} size="sm" className="cursor-default" onClick={onClose} />
@@ -382,7 +382,7 @@ export function DocumentTab({ item, onClose, closeShortcut, onDoubleClick, onDra
382
382
  }}
383
383
  >
384
384
  {item.icon}
385
- <span className="truncate">{item.label}</span>
385
+ <span className="ade-document-tab-label truncate">{item.label}</span>
386
386
  {item.detail}
387
387
  {item.attention}
388
388
  {item.unsaved && (