@kiefer-tek/sophea-design-system 0.15.5 → 0.15.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/index.css CHANGED
@@ -10475,6 +10475,45 @@ tbody tr:hover .sn-Table-module__td--jv9tA {
10475
10475
  box-shadow: 0 0 0 2px var(--action-link-04);
10476
10476
  }
10477
10477
 
10478
+ /* Full-width "bar" trigger — avatar + name/email row for a wide sidebar. */
10479
+ .sn-AccountMenu-module__triggerBar--1deLW {
10480
+ display: flex;
10481
+ align-items: center;
10482
+ gap: 0.625rem;
10483
+ width: 100%;
10484
+ min-width: 0;
10485
+ padding: 0.375rem 0.5rem;
10486
+ border: 0;
10487
+ background: transparent;
10488
+ border-radius: 12px;
10489
+ cursor: pointer;
10490
+ text-align: start;
10491
+ outline: none;
10492
+ }
10493
+
10494
+ .sn-AccountMenu-module__triggerBar--1deLW:hover {
10495
+ background: var(--shell-chrome-hover-bg);
10496
+ }
10497
+
10498
+ .sn-AccountMenu-module__triggerBar--1deLW:focus-visible {
10499
+ box-shadow: 0 0 0 2px var(--action-link-04);
10500
+ }
10501
+
10502
+ .sn-AccountMenu-module__barIdentity--UoPcg {
10503
+ display: flex;
10504
+ flex-direction: column;
10505
+ min-width: 0;
10506
+ flex: 1;
10507
+ }
10508
+
10509
+ /* Avatar + badge anchor (so the badge positions to the avatar in either
10510
+ trigger shape). */
10511
+ .sn-AccountMenu-module__avatarWrap--j5Q62 {
10512
+ position: relative;
10513
+ display: inline-flex;
10514
+ flex-shrink: 0;
10515
+ }
10516
+
10478
10517
  /* Unread badge on the avatar — top-right pill. */
10479
10518
  .sn-AccountMenu-module__avatarBadge--2qs2m {
10480
10519
  position: absolute;
@@ -10966,7 +11005,10 @@ html[data-resizing] .sn-AppShell-module__sidebar--9-Zb9 {
10966
11005
  inset: 0;
10967
11006
  z-index: -1;
10968
11007
  overflow: hidden;
10969
- background: var(--shell-region-glass);
11008
+ /* Glass by default (aurora frosts through the content pane). Tunable so a host
11009
+ can make the main pane opaque while keeping the rail/sidebar glass — e.g. a
11010
+ glass sidebar over an opaque content area. */
11011
+ background: var(--shell-main-backdrop, var(--shell-region-glass));
10970
11012
  }
10971
11013
 
10972
11014
  .sn-AppShell-module__mainBackdropImage--bjtQh {
@@ -11070,6 +11112,46 @@ html[data-resizing] .sn-AppShell-module__sidebar--9-Zb9 {
11070
11112
  width: 100%;
11071
11113
  flex-shrink: 0;
11072
11114
  }
11115
+
11116
+ /* ------------------------------------------------------------ Solid variant
11117
+ <AppShell.Root surface="solid"> — opaque theme surfaces, no glass/blur.
11118
+ Flat dark shell in the dark theme. Each region is tunable via a
11119
+ --shell-solid-* variable (falling back to the DS solid surface tokens). */
11120
+ .sn-AppShell-module__root--PpqXq[data-surface="solid"] {
11121
+ background: var(--shell-solid-bg, var(--surface-s1));
11122
+ /* Sidebar shares the main pane's surface (s1) so the shell reads as one flat
11123
+ dark slab separated only by the divider — and so elevated widgets inside it
11124
+ (utility chips, account bar) stand out at s2 instead of blending into a
11125
+ same-surface sidebar. */
11126
+ --shell-solid-sidebar: var(--surface-s1);
11127
+ /* Soften descendant search fields (e.g. CommandPalette.Trigger) so they read
11128
+ as a subtle elevated surface on the flat dark shell, not a bright box. */
11129
+ --command-palette-trigger-bg: var(--surface-s2);
11130
+ --command-palette-trigger-bg-hover: var(--surface-s3);
11131
+ --command-palette-trigger-border: var(--shell-divider);
11132
+ }
11133
+ .sn-AppShell-module__root--PpqXq[data-surface="solid"] .sn-AppShell-module__rail--RlMBL {
11134
+ background: var(--shell-solid-rail, var(--surface-s2));
11135
+ -webkit-backdrop-filter: none;
11136
+ backdrop-filter: none;
11137
+ }
11138
+ .sn-AppShell-module__root--PpqXq[data-surface="solid"] .sn-AppShell-module__sidebar--9-Zb9 {
11139
+ background: var(--shell-solid-sidebar, var(--surface-s2));
11140
+ }
11141
+ .sn-AppShell-module__root--PpqXq[data-surface="solid"] .sn-AppShell-module__drawer--3Zhql {
11142
+ background-color: var(--shell-solid-sidebar, var(--surface-s2));
11143
+ background-image: none;
11144
+ box-shadow: none;
11145
+ -webkit-backdrop-filter: none;
11146
+ backdrop-filter: none;
11147
+ }
11148
+ .sn-AppShell-module__root--PpqXq[data-surface="solid"] .sn-AppShell-module__mainBackdrop--oikM- {
11149
+ background: var(--shell-solid-main, var(--surface-s1));
11150
+ }
11151
+ .sn-AppShell-module__root--PpqXq[data-surface="solid"] .sn-AppShell-module__mainBackdropFrost--BmFr9 {
11152
+ -webkit-backdrop-filter: none;
11153
+ backdrop-filter: none;
11154
+ }
11073
11155
  /* CommandPalette — tokens only. Trigger mirrors the AppShell header search
11074
11156
  field; overlay/panel mirror the DS Modal substrate; result highlight reuses
11075
11157
  the shell rail-item selection tint. */
@@ -11085,9 +11167,13 @@ html[data-resizing] .sn-AppShell-module__sidebar--9-Zb9 {
11085
11167
  max-width: 448px;
11086
11168
  height: 36px;
11087
11169
  padding: 0 10px 0 12px;
11088
- border: 1px solid var(--border-04);
11089
- border-radius: 8px;
11090
- background: var(--shell-search-bg);
11170
+ /* Matches the DS SearchInput field by default (surface-s3 / border-04 / 10px
11171
+ radius). The fill + border are tunable so a host shell can soften them —
11172
+ e.g. AppShell `surface="solid"` makes them a subtle elevated surface so the
11173
+ field doesn't read as a bright floating box on a flat dark page. */
11174
+ border: 1px solid var(--command-palette-trigger-border, var(--border-04));
11175
+ border-radius: 10px;
11176
+ background: var(--command-palette-trigger-bg, var(--surface-s3));
11091
11177
  color: var(--text-03);
11092
11178
  font-family: "Geist", ui-sans-serif, system-ui, sans-serif;
11093
11179
  font-size: 14px;
@@ -11098,7 +11184,7 @@ html[data-resizing] .sn-AppShell-module__sidebar--9-Zb9 {
11098
11184
  }
11099
11185
 
11100
11186
  .sn-CommandPalette-module__trigger--ZE1so:hover {
11101
- background: var(--shell-search-bg-open);
11187
+ background: var(--command-palette-trigger-bg-hover, var(--surface-s4));
11102
11188
  }
11103
11189
 
11104
11190
  .sn-CommandPalette-module__trigger--ZE1so:focus-visible {
package/dist/index.js CHANGED
@@ -8189,6 +8189,9 @@ const IllustrationContent = forwardRef(
8189
8189
  }
8190
8190
  );
8191
8191
  const trigger$1 = "sn-AccountMenu-module__trigger--EHklO";
8192
+ const triggerBar = "sn-AccountMenu-module__triggerBar--1deLW";
8193
+ const barIdentity = "sn-AccountMenu-module__barIdentity--UoPcg";
8194
+ const avatarWrap = "sn-AccountMenu-module__avatarWrap--j5Q62";
8192
8195
  const avatarBadge = "sn-AccountMenu-module__avatarBadge--2qs2m";
8193
8196
  const itemBadge = "sn-AccountMenu-module__itemBadge--7gWAX";
8194
8197
  const identityName = "sn-AccountMenu-module__identityName--h6xu9";
@@ -8201,6 +8204,9 @@ const notifTitle$1 = "sn-AccountMenu-module__notifTitle--MR2jU";
8201
8204
  const notifBody$1 = "sn-AccountMenu-module__notifBody--RH0Ym";
8202
8205
  const styles$i = {
8203
8206
  trigger: trigger$1,
8207
+ triggerBar,
8208
+ barIdentity,
8209
+ avatarWrap,
8204
8210
  avatarBadge,
8205
8211
  itemBadge,
8206
8212
  identityName,
@@ -8223,6 +8229,7 @@ const AccountMenu = forwardRef(function AccountMenu2({
8223
8229
  avatarTone = "brand",
8224
8230
  avatarSize = "md",
8225
8231
  items,
8232
+ triggerVariant = "avatar",
8226
8233
  notifications,
8227
8234
  side = "right",
8228
8235
  align = "end",
@@ -8240,10 +8247,25 @@ const AccountMenu = forwardRef(function AccountMenu2({
8240
8247
  if (!next) setView("menu");
8241
8248
  };
8242
8249
  return /* @__PURE__ */ jsxs(DropdownMenu, { open, onOpenChange, children: [
8243
- /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs("button", { ref, type: "button", "aria-label": ariaLabel, className: cx$2(styles$i.trigger, className), children: [
8244
- /* @__PURE__ */ jsx(Avatar, { src: avatarSrc, alt: avatarAlt, tone: avatarTone, size: avatarSize, children: initials }),
8245
- notifications && hasUnread ? /* @__PURE__ */ jsx("span", { className: styles$i.avatarBadge, "aria-hidden": "true", children: formatBadge(count2) }) : null
8246
- ] }) }),
8250
+ /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
8251
+ "button",
8252
+ {
8253
+ ref,
8254
+ type: "button",
8255
+ "aria-label": ariaLabel,
8256
+ className: cx$2(triggerVariant === "bar" ? styles$i.triggerBar : styles$i.trigger, className),
8257
+ children: [
8258
+ /* @__PURE__ */ jsxs("span", { className: styles$i.avatarWrap, children: [
8259
+ /* @__PURE__ */ jsx(Avatar, { src: avatarSrc, alt: avatarAlt, tone: avatarTone, size: avatarSize, children: initials }),
8260
+ notifications && hasUnread ? /* @__PURE__ */ jsx("span", { className: styles$i.avatarBadge, "aria-hidden": "true", children: formatBadge(count2) }) : null
8261
+ ] }),
8262
+ triggerVariant === "bar" ? /* @__PURE__ */ jsxs("span", { className: styles$i.barIdentity, children: [
8263
+ name2 ? /* @__PURE__ */ jsx("span", { className: styles$i.identityName, children: name2 }) : null,
8264
+ email ? /* @__PURE__ */ jsx("span", { className: styles$i.identityEmail, children: email }) : null
8265
+ ] }) : null
8266
+ ]
8267
+ }
8268
+ ) }),
8247
8269
  /* @__PURE__ */ jsx(
8248
8270
  DropdownMenuContent,
8249
8271
  {
@@ -8382,7 +8404,7 @@ function AppShellProvider({
8382
8404
  }
8383
8405
  );
8384
8406
  }
8385
- const AppShellRoot = forwardRef(function AppShellRoot2({ drawerOpen, onDrawerOpenChange, children, className, ...rest }, ref) {
8407
+ const AppShellRoot = forwardRef(function AppShellRoot2({ drawerOpen, onDrawerOpenChange, surface = "glass", children, className, ...rest }, ref) {
8386
8408
  const ctx = useContext(AppShellContext);
8387
8409
  const open = drawerOpen ?? ctx?.drawerOpen ?? false;
8388
8410
  const setOpen = onDrawerOpenChange ?? ctx?.setDrawerOpen;
@@ -8392,7 +8414,7 @@ const AppShellRoot = forwardRef(function AppShellRoot2({ drawerOpen, onDrawerOpe
8392
8414
  if (roleOf(child) === "drawer") drawerChildren.push(child);
8393
8415
  else rowChildren.push(child);
8394
8416
  });
8395
- return /* @__PURE__ */ jsxs("div", { ref, className: cx$1(styles$h.root, className), ...rest, children: [
8417
+ return /* @__PURE__ */ jsxs("div", { ref, className: cx$1(styles$h.root, className), "data-surface": surface, ...rest, children: [
8396
8418
  /* @__PURE__ */ jsx("span", { className: styles$h.topAccent, "aria-hidden": "true" }),
8397
8419
  /* @__PURE__ */ jsx(
8398
8420
  "button",
@@ -8602,12 +8624,12 @@ const AppShellMain = forwardRef(function AppShellMain2({ backgroundCss, children
8602
8624
  footer2
8603
8625
  ] });
8604
8626
  });
8605
- const AppShellHeader = forwardRef(function AppShellHeader2({ left, center, right: right2, className, ...rest }, ref) {
8606
- return /* @__PURE__ */ jsxs("header", { ref, className: cx$1(styles$h.header, className), ...rest, children: [
8627
+ const AppShellHeader = forwardRef(function AppShellHeader2({ left, center, right: right2, children, className, ...rest }, ref) {
8628
+ return /* @__PURE__ */ jsx("header", { ref, className: cx$1(styles$h.header, className), ...rest, children: children != null ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
8607
8629
  /* @__PURE__ */ jsx("div", { className: styles$h.headerLeft, children: left }),
8608
8630
  /* @__PURE__ */ jsx("div", { className: styles$h.headerCenter, children: center }),
8609
8631
  /* @__PURE__ */ jsx("div", { className: styles$h.headerRight, children: right2 })
8610
- ] });
8632
+ ] }) });
8611
8633
  });
8612
8634
  AppShellHeader[ROLE] = "header";
8613
8635
  const AppShellMainFooter = forwardRef(