@streamoid/ui 0.4.5 → 0.4.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
@@ -1381,30 +1381,30 @@
1381
1381
  --x-0: 72%;
1382
1382
  --s-start-0: 8%;
1383
1383
  --s-end-0: 32%;
1384
- --c-0: #1030ff;
1384
+ --c-0: #D91536;
1385
1385
  --y-0: 90%;
1386
1386
  --x-1: 33%;
1387
1387
  --s-start-1: 8.392%;
1388
1388
  --s-end-1: 22.109%;
1389
- --c-1: #21bdff;
1389
+ --c-1: #FFA585;
1390
1390
  --y-1: -7%;
1391
1391
  --s-start-2: 8%;
1392
1392
  --s-end-2: 34%;
1393
1393
  --x-2: 93%;
1394
- --c-2: #1030ff;
1394
+ --c-2: #D91536;
1395
1395
  --y-2: 63%;
1396
1396
  --s-start-3: 8%;
1397
1397
  --s-end-3: 64%;
1398
1398
  --x-3: 7%;
1399
- --c-3: #21bdff;
1399
+ --c-3: #FFA585;
1400
1400
  --y-3: -20%;
1401
- --c-4: #21bdff;
1401
+ --c-4: #FFA585;
1402
1402
  --s-start-4: 8.392%;
1403
1403
  --s-end-4: 22.109%;
1404
1404
  --x-4: 33%;
1405
1405
  --y-4: -7%;
1406
1406
  --y-5: -7%;
1407
- --c-5: #21bdff;
1407
+ --c-5: #FFA585;
1408
1408
  --s-start-5: 8.392%;
1409
1409
  --s-end-5: 22.109%;
1410
1410
  --x-5: 33%;
@@ -1413,30 +1413,30 @@
1413
1413
  --x-0: 8%;
1414
1414
  --s-start-0: 12%;
1415
1415
  --s-end-0: 121%;
1416
- --c-0: #1030ff;
1416
+ --c-0: #D91536;
1417
1417
  --y-0: 59%;
1418
1418
  --x-1: 42%;
1419
1419
  --s-start-1: 8.392%;
1420
1420
  --s-end-1: 41.694%;
1421
- --c-1: #21bdff;
1421
+ --c-1: #FFA585;
1422
1422
  --y-1: 10%;
1423
1423
  --s-start-2: 12%;
1424
1424
  --s-end-2: 86%;
1425
1425
  --x-2: 2%;
1426
- --c-2: #1030ff;
1426
+ --c-2: #D91536;
1427
1427
  --y-2: 59%;
1428
1428
  --s-start-3: 8%;
1429
1429
  --s-end-3: 54%;
1430
1430
  --x-3: 55%;
1431
- --c-3: #21bdff;
1431
+ --c-3: #FFA585;
1432
1432
  --y-3: 10%;
1433
- --c-4: #21bdff;
1433
+ --c-4: #FFA585;
1434
1434
  --s-start-4: 8.392%;
1435
1435
  --s-end-4: 41.694%;
1436
1436
  --x-4: 42%;
1437
1437
  --y-4: 10%;
1438
1438
  --y-5: 10%;
1439
- --c-5: #21bdff;
1439
+ --c-5: #FFA585;
1440
1440
  --s-start-5: 8.392%;
1441
1441
  --s-end-5: 41.694%;
1442
1442
  --x-5: 42%;
@@ -1445,30 +1445,30 @@
1445
1445
  --x-0: 40%;
1446
1446
  --s-start-0: 10%;
1447
1447
  --s-end-0: 80%;
1448
- --c-0: #1030ff;
1448
+ --c-0: #D91536;
1449
1449
  --y-0: 75%;
1450
1450
  --x-1: 76%;
1451
1451
  --s-start-1: 8.392%;
1452
1452
  --s-end-1: 59.322%;
1453
- --c-1: #21bdff;
1453
+ --c-1: #FFA585;
1454
1454
  --y-1: -3%;
1455
1455
  --s-start-2: 12%;
1456
1456
  --s-end-2: 86%;
1457
1457
  --x-2: 2%;
1458
- --c-2: #1030ff;
1458
+ --c-2: #D91536;
1459
1459
  --y-2: 59%;
1460
1460
  --s-start-3: 8%;
1461
1461
  --s-end-3: 92%;
1462
1462
  --x-3: 76%;
1463
- --c-3: #21bdff;
1463
+ --c-3: #FFA585;
1464
1464
  --y-3: -3%;
1465
- --c-4: #21bdff;
1465
+ --c-4: #FFA585;
1466
1466
  --s-start-4: 8.392%;
1467
1467
  --s-end-4: 59.322%;
1468
1468
  --x-4: 76%;
1469
1469
  --y-4: -3%;
1470
1470
  --y-5: -3%;
1471
- --c-5: #21bdff;
1471
+ --c-5: #FFA585;
1472
1472
  --s-start-5: 8.392%;
1473
1473
  --s-end-5: 59.322%;
1474
1474
  --x-5: 76%;
@@ -1477,30 +1477,30 @@
1477
1477
  --x-0: 55%;
1478
1478
  --s-start-0: 9%;
1479
1479
  --s-end-0: 55%;
1480
- --c-0: #1030ff;
1480
+ --c-0: #D91536;
1481
1481
  --y-0: 82%;
1482
1482
  --x-1: 76%;
1483
1483
  --s-start-1: 8.392%;
1484
1484
  --s-end-1: 59.322%;
1485
- --c-1: #21bdff;
1485
+ --c-1: #FFA585;
1486
1486
  --y-1: -3%;
1487
1487
  --s-start-2: 10%;
1488
1488
  --s-end-2: 60%;
1489
1489
  --x-2: 48%;
1490
- --c-2: #1030ff;
1490
+ --c-2: #D91536;
1491
1491
  --y-2: 61%;
1492
1492
  --s-start-3: 8%;
1493
1493
  --s-end-3: 78%;
1494
1494
  --x-3: 40%;
1495
- --c-3: #21bdff;
1495
+ --c-3: #FFA585;
1496
1496
  --y-3: -10%;
1497
- --c-4: #21bdff;
1497
+ --c-4: #FFA585;
1498
1498
  --s-start-4: 8.392%;
1499
1499
  --s-end-4: 40%;
1500
1500
  --x-4: 55%;
1501
1501
  --y-4: -5%;
1502
1502
  --y-5: -5%;
1503
- --c-5: #21bdff;
1503
+ --c-5: #FFA585;
1504
1504
  --s-start-5: 8.392%;
1505
1505
  --s-end-5: 40%;
1506
1506
  --x-5: 55%;
@@ -1509,36 +1509,36 @@
1509
1509
  .ScButton_scButton.ScButton_state-default.ScButton_variant-primary.ScButton_type-primary,
1510
1510
  .ScButton_scButton.ScButton_state-disabled.ScButton_variant-primary.ScButton_type-primary {
1511
1511
  --x-0: 72%;
1512
- --c-0: #1030ff;
1512
+ --c-0: #D91536;
1513
1513
  --y-0: 90%;
1514
1514
  --s-start-0: 8%;
1515
1515
  --s-end-0: 32%;
1516
1516
  --x-1: 33%;
1517
- --c-1: #21bdff;
1517
+ --c-1: #FFA585;
1518
1518
  --y-1: -7%;
1519
1519
  --s-start-1: 8.392%;
1520
1520
  --s-end-1: 22.109%;
1521
1521
  --x-2: 93%;
1522
- --c-2: #1030ff;
1522
+ --c-2: #D91536;
1523
1523
  --y-2: 63%;
1524
1524
  --s-start-2: 8%;
1525
1525
  --s-end-2: 34%;
1526
1526
  --x-3: 7%;
1527
- --c-3: #21bdff;
1527
+ --c-3: #FFA585;
1528
1528
  --y-3: -20%;
1529
1529
  --s-start-3: 8%;
1530
1530
  --s-end-3: 64%;
1531
- --c-4: #21bdff;
1531
+ --c-4: #FFA585;
1532
1532
  --x-4: 33%;
1533
1533
  --y-4: -7%;
1534
1534
  --s-start-4: 8.392%;
1535
1535
  --s-end-4: 22.109%;
1536
- --c-5: #21bdff;
1536
+ --c-5: #FFA585;
1537
1537
  --x-5: 33%;
1538
1538
  --y-5: -7%;
1539
1539
  --s-start-5: 8.392%;
1540
1540
  --s-end-5: 22.109%;
1541
- background-color: #1661FF;
1541
+ background-color: #E33A38;
1542
1542
  background-image:
1543
1543
  radial-gradient(
1544
1544
  circle at var(--x-0) var(--y-0),
@@ -4069,51 +4069,46 @@
4069
4069
  .ScSideBarLogoUnit_row {
4070
4070
  display: flex;
4071
4071
  align-items: center;
4072
- width: 100%;
4073
- }
4074
- .ScSideBarLogoUnit_chip {
4075
- flex: 1 0 0;
4076
- display: flex;
4077
- align-items: center;
4078
- min-width: 0;
4079
- background-color: var(--alias-surface-canvas, #0b0b0b);
4080
- border-radius: var(--radius-xl, 0.75rem);
4072
+ justify-content: space-between;
4073
+ height: 4rem;
4081
4074
  padding: var(--spacing-3xl, 1rem) var(--spacing-xl, 0.75rem) var(--spacing-3xl, 1rem) var(--spacing-3xl, 1rem);
4082
- margin-right: -0.875rem;
4075
+ border-radius: var(--radius-xl, 0.75rem);
4076
+ width: 100%;
4077
+ background: transparent;
4083
4078
  border: none;
4084
4079
  cursor: pointer;
4085
4080
  text-align: left;
4086
4081
  font: inherit;
4087
4082
  color: inherit;
4083
+ transition: background-color 120ms ease-out;
4088
4084
  }
4089
- .ScSideBarLogoUnit_chip:disabled,
4090
- .ScSideBarLogoUnit_chip.ScSideBarLogoUnit_nonInteractive {
4085
+ .ScSideBarLogoUnit_row:disabled,
4086
+ .ScSideBarLogoUnit_row.ScSideBarLogoUnit_nonInteractive {
4091
4087
  cursor: default;
4092
4088
  }
4093
- .ScSideBarLogoUnit_chip > * {
4089
+ .ScSideBarLogoUnit_row:hover,
4090
+ .ScSideBarLogoUnit_row.ScSideBarLogoUnit_forceHover {
4091
+ background-color: var(--alias-surface-subtle, #1a1a1a);
4092
+ }
4093
+ .ScSideBarLogoUnit_wordmarkSlot {
4094
4094
  display: inline-flex;
4095
4095
  align-items: center;
4096
- flex-shrink: 0;
4097
4096
  height: 2rem;
4097
+ flex-shrink: 0;
4098
4098
  }
4099
4099
  .ScSideBarLogoUnit_switch {
4100
4100
  display: inline-flex;
4101
4101
  align-items: center;
4102
4102
  justify-content: center;
4103
- background-color: var(--alias-fill-neutral-neutral, #1a1a1a);
4104
- border-radius: var(--radius-md, 0.5rem);
4105
4103
  padding: var(--spacing-sm, 0.375rem);
4106
- border: none;
4107
- cursor: pointer;
4104
+ border-radius: var(--radius-md, 0.5rem);
4108
4105
  flex-shrink: 0;
4109
- position: relative;
4110
- }
4111
- .ScSideBarLogoUnit_switch:hover {
4112
- background-color: var(--alias-fill-neutral-neutraltohover, #1f1f1f);
4106
+ background-color: var(--alias-fill-neutral-neutral, #1a1a1a);
4107
+ transition: background-color 120ms ease-out;
4113
4108
  }
4114
- .ScSideBarLogoUnit_switch:disabled {
4115
- cursor: default;
4116
- opacity: 0.5;
4109
+ .ScSideBarLogoUnit_row:hover .ScSideBarLogoUnit_switch,
4110
+ .ScSideBarLogoUnit_row.ScSideBarLogoUnit_forceHover .ScSideBarLogoUnit_switch {
4111
+ background-color: var(--alias-fill-neutral-neutralplus, #151515);
4117
4112
  }
4118
4113
  .ScSideBarLogoUnit_switchIcon {
4119
4114
  display: inline-flex;
package/dist/index.d.mts CHANGED
@@ -409,28 +409,36 @@ interface IScGuideProps {
409
409
  declare const ScGuide: ({ title, description, skipLabel, nextLabel, nextIcon, onSkip, onNext, hideSkip, hideNext, disabled, className, style, }: IScGuideProps) => JSX.Element;
410
410
 
411
411
  interface IScSideBarLogoUnitProps {
412
- /** "expanded" renders the wordmark chip + switcher. "collapsed" renders a
413
- * bare clickable product icon (no chip, no switcher). */
412
+ /** "expanded" renders the merged wordmark + switcher row.
413
+ * "collapsed" renders a bare clickable product icon. */
414
414
  state?: "expanded" | "collapsed";
415
415
  /** In expanded state: the stacked "Product / Streamoid" wordmark `<img>`.
416
416
  * In collapsed state: the square product icon `<img>`. */
417
417
  wordmark?: ReactNode;
418
- /** Click handler for the wordmark chip / collapsed icon (e.g. navigate home). */
418
+ /** Click handler for the whole row (wordmark + switcher are one click
419
+ * target now — matches the design intent). */
419
420
  onClick?: () => void;
420
- /** Click handler for the double-arrow product / workspace switcher.
421
- * Ignored when state="collapsed". */
421
+ /** Back-compat: fires alongside `onClick` if both are set. Either prop
422
+ * alone is enough. */
422
423
  onSwitchClick?: () => void;
423
- /** Accessible label for the switch button. Defaults to "Switch product". */
424
+ /** Accessible label for the row when it acts as the product switcher.
425
+ * Defaults to "Switch product". */
424
426
  switchAriaLabel?: string;
425
- /** Hide the switch button (useful when there's nothing to switch to).
426
- * Only applies in expanded state — collapsed has no switch button. */
427
+ /** Hide the switch icon (rare; the design always shows it). */
427
428
  hideSwitch?: boolean;
429
+ /**
430
+ * Force the hover styling on or off, regardless of the mouse position.
431
+ * - `true`: row + switch pill render with their hover backgrounds.
432
+ * - `false`: hover backgrounds are suppressed even on mouse hover.
433
+ * - `undefined` (default): CSS `:hover` drives the visual state.
434
+ */
435
+ hover?: boolean;
428
436
  /** Disable interactions. */
429
437
  disabled?: boolean;
430
438
  className?: string;
431
439
  style?: CSSProperties;
432
440
  }
433
- declare const ScSideBarLogoUnit: ({ state, wordmark, onClick, onSwitchClick, switchAriaLabel, hideSwitch, disabled, className, style, }: IScSideBarLogoUnitProps) => JSX.Element;
441
+ declare const ScSideBarLogoUnit: ({ state, wordmark, onClick, onSwitchClick, switchAriaLabel, hideSwitch, hover, disabled, className, style, }: IScSideBarLogoUnitProps) => JSX.Element;
434
442
 
435
443
  interface IScSidebarMenuProps extends React.HTMLAttributes<HTMLDivElement> {
436
444
  icon?: JSX.Element;
package/dist/index.d.ts CHANGED
@@ -409,28 +409,36 @@ interface IScGuideProps {
409
409
  declare const ScGuide: ({ title, description, skipLabel, nextLabel, nextIcon, onSkip, onNext, hideSkip, hideNext, disabled, className, style, }: IScGuideProps) => JSX.Element;
410
410
 
411
411
  interface IScSideBarLogoUnitProps {
412
- /** "expanded" renders the wordmark chip + switcher. "collapsed" renders a
413
- * bare clickable product icon (no chip, no switcher). */
412
+ /** "expanded" renders the merged wordmark + switcher row.
413
+ * "collapsed" renders a bare clickable product icon. */
414
414
  state?: "expanded" | "collapsed";
415
415
  /** In expanded state: the stacked "Product / Streamoid" wordmark `<img>`.
416
416
  * In collapsed state: the square product icon `<img>`. */
417
417
  wordmark?: ReactNode;
418
- /** Click handler for the wordmark chip / collapsed icon (e.g. navigate home). */
418
+ /** Click handler for the whole row (wordmark + switcher are one click
419
+ * target now — matches the design intent). */
419
420
  onClick?: () => void;
420
- /** Click handler for the double-arrow product / workspace switcher.
421
- * Ignored when state="collapsed". */
421
+ /** Back-compat: fires alongside `onClick` if both are set. Either prop
422
+ * alone is enough. */
422
423
  onSwitchClick?: () => void;
423
- /** Accessible label for the switch button. Defaults to "Switch product". */
424
+ /** Accessible label for the row when it acts as the product switcher.
425
+ * Defaults to "Switch product". */
424
426
  switchAriaLabel?: string;
425
- /** Hide the switch button (useful when there's nothing to switch to).
426
- * Only applies in expanded state — collapsed has no switch button. */
427
+ /** Hide the switch icon (rare; the design always shows it). */
427
428
  hideSwitch?: boolean;
429
+ /**
430
+ * Force the hover styling on or off, regardless of the mouse position.
431
+ * - `true`: row + switch pill render with their hover backgrounds.
432
+ * - `false`: hover backgrounds are suppressed even on mouse hover.
433
+ * - `undefined` (default): CSS `:hover` drives the visual state.
434
+ */
435
+ hover?: boolean;
428
436
  /** Disable interactions. */
429
437
  disabled?: boolean;
430
438
  className?: string;
431
439
  style?: CSSProperties;
432
440
  }
433
- declare const ScSideBarLogoUnit: ({ state, wordmark, onClick, onSwitchClick, switchAriaLabel, hideSwitch, disabled, className, style, }: IScSideBarLogoUnitProps) => JSX.Element;
441
+ declare const ScSideBarLogoUnit: ({ state, wordmark, onClick, onSwitchClick, switchAriaLabel, hideSwitch, hover, disabled, className, style, }: IScSideBarLogoUnitProps) => JSX.Element;
434
442
 
435
443
  interface IScSidebarMenuProps extends React.HTMLAttributes<HTMLDivElement> {
436
444
  icon?: JSX.Element;
package/dist/index.js CHANGED
@@ -3026,11 +3026,12 @@ function StreamoidSidebar({
3026
3026
  ) : null
3027
3027
  ] }),
3028
3028
  !!(topItems?.length || config.topItem) && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
3029
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(HDivider, {}),
3029
3030
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3030
3031
  "div",
3031
3032
  {
3032
3033
  className: "flex flex-col items-stretch shrink-0 w-full",
3033
- style: { gap: "var(--spacing-md)", paddingBottom: "var(--spacing-md)" },
3034
+ style: { gap: "var(--spacing-md)", paddingTop: "var(--spacing-md)", paddingBottom: "var(--spacing-md)" },
3034
3035
  children: (topItems ?? (config.topItem ? [config.topItem] : [])).map(
3035
3036
  (item) => renderMenuItem({
3036
3037
  item,
@@ -3208,11 +3209,12 @@ function StreamoidSidebar({
3208
3209
  children: [
3209
3210
  collapsedLogo,
3210
3211
  !!(topItems?.length || config.topItem) ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
3212
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(HDivider, {}),
3211
3213
  /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3212
3214
  "div",
3213
3215
  {
3214
3216
  className: "flex flex-col items-center shrink-0",
3215
- style: { gap: "var(--spacing-xxs)", paddingBottom: "var(--spacing-xxs)" },
3217
+ style: { gap: "var(--spacing-xxs)", paddingTop: "var(--spacing-xxs)", paddingBottom: "var(--spacing-xxs)" },
3216
3218
  children: (topItems ?? (config.topItem ? [config.topItem] : [])).map(
3217
3219
  (item) => renderMenuItem({
3218
3220
  item,
@@ -3725,8 +3727,9 @@ var ScGuide = ({
3725
3727
  var ScSideBarLogoUnit_default = {
3726
3728
  scSideBarLogoUnit: "ScSideBarLogoUnit_scSideBarLogoUnit",
3727
3729
  row: "ScSideBarLogoUnit_row",
3728
- chip: "ScSideBarLogoUnit_chip",
3729
3730
  nonInteractive: "ScSideBarLogoUnit_nonInteractive",
3731
+ forceHover: "ScSideBarLogoUnit_forceHover",
3732
+ wordmarkSlot: "ScSideBarLogoUnit_wordmarkSlot",
3730
3733
  switch: "ScSideBarLogoUnit_switch",
3731
3734
  switchIcon: "ScSideBarLogoUnit_switchIcon",
3732
3735
  collapsed: "ScSideBarLogoUnit_collapsed",
@@ -3743,11 +3746,17 @@ var ScSideBarLogoUnit = ({
3743
3746
  onSwitchClick,
3744
3747
  switchAriaLabel = "Switch product",
3745
3748
  hideSwitch = false,
3749
+ hover,
3746
3750
  disabled = false,
3747
3751
  className,
3748
3752
  style
3749
3753
  }) => {
3750
- const interactive = !!onClick && !disabled;
3754
+ const interactive = !disabled && (!!onClick || !!onSwitchClick);
3755
+ const handleClick = () => {
3756
+ if (!interactive) return;
3757
+ onClick?.();
3758
+ onSwitchClick?.();
3759
+ };
3751
3760
  if (state === "collapsed") {
3752
3761
  return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3753
3762
  "div",
@@ -3759,8 +3768,9 @@ var ScSideBarLogoUnit = ({
3759
3768
  {
3760
3769
  type: "button",
3761
3770
  className: ScSideBarLogoUnit_default.collapsedTrigger + (interactive ? "" : " " + ScSideBarLogoUnit_default.nonInteractive),
3762
- onClick: interactive ? onClick : void 0,
3771
+ onClick: interactive ? handleClick : void 0,
3763
3772
  disabled,
3773
+ "aria-label": interactive ? switchAriaLabel : void 0,
3764
3774
  "aria-disabled": !interactive || disabled,
3765
3775
  children: wordmark
3766
3776
  }
@@ -3768,35 +3778,38 @@ var ScSideBarLogoUnit = ({
3768
3778
  }
3769
3779
  );
3770
3780
  }
3781
+ const rowClasses = [
3782
+ ScSideBarLogoUnit_default.row,
3783
+ interactive ? "" : ScSideBarLogoUnit_default.nonInteractive,
3784
+ hover === true ? ScSideBarLogoUnit_default.forceHover : ""
3785
+ ].filter(Boolean).join(" ");
3771
3786
  return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3772
3787
  "div",
3773
3788
  {
3774
3789
  className: ScSideBarLogoUnit_default.scSideBarLogoUnit + (className ? " " + className : ""),
3775
- style,
3776
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: ScSideBarLogoUnit_default.row, children: [
3777
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3778
- "button",
3779
- {
3780
- type: "button",
3781
- className: ScSideBarLogoUnit_default.chip + (interactive ? "" : " " + ScSideBarLogoUnit_default.nonInteractive),
3782
- onClick: interactive ? onClick : void 0,
3783
- disabled,
3784
- "aria-disabled": !interactive || disabled,
3785
- children: wordmark
3786
- }
3787
- ),
3788
- hideSwitch ? null : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3789
- "button",
3790
- {
3791
- type: "button",
3792
- className: ScSideBarLogoUnit_default.switch,
3793
- onClick: onSwitchClick,
3794
- disabled: disabled || !onSwitchClick,
3795
- "aria-label": switchAriaLabel,
3796
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: ScSideBarLogoUnit_default.switchIcon, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons37.SiconDoubleArrow, { size: 16, strokeWidth: 1.5 }) })
3797
- }
3798
- )
3799
- ] })
3790
+ style: {
3791
+ ...style,
3792
+ // Suppressing hover when `hover === false` — overrides CSS :hover.
3793
+ ...hover === false ? { pointerEvents: "auto" } : null
3794
+ },
3795
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
3796
+ "button",
3797
+ {
3798
+ type: "button",
3799
+ className: rowClasses,
3800
+ onClick: interactive ? handleClick : void 0,
3801
+ disabled,
3802
+ "aria-label": interactive ? switchAriaLabel : void 0,
3803
+ "aria-disabled": !interactive || disabled,
3804
+ style: hover === false ? {
3805
+ backgroundColor: "transparent"
3806
+ } : void 0,
3807
+ children: [
3808
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: ScSideBarLogoUnit_default.wordmarkSlot, children: wordmark }),
3809
+ hideSwitch ? null : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: ScSideBarLogoUnit_default.switch, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: ScSideBarLogoUnit_default.switchIcon, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons37.SiconDoubleArrow, { size: 16, strokeWidth: 1.5 }) }) })
3810
+ ]
3811
+ }
3812
+ )
3800
3813
  }
3801
3814
  );
3802
3815
  };
package/dist/index.mjs CHANGED
@@ -2917,11 +2917,12 @@ function StreamoidSidebar({
2917
2917
  ) : null
2918
2918
  ] }),
2919
2919
  !!(topItems?.length || config.topItem) && /* @__PURE__ */ jsxs32(Fragment14, { children: [
2920
+ /* @__PURE__ */ jsx40(HDivider, {}),
2920
2921
  /* @__PURE__ */ jsx40(
2921
2922
  "div",
2922
2923
  {
2923
2924
  className: "flex flex-col items-stretch shrink-0 w-full",
2924
- style: { gap: "var(--spacing-md)", paddingBottom: "var(--spacing-md)" },
2925
+ style: { gap: "var(--spacing-md)", paddingTop: "var(--spacing-md)", paddingBottom: "var(--spacing-md)" },
2925
2926
  children: (topItems ?? (config.topItem ? [config.topItem] : [])).map(
2926
2927
  (item) => renderMenuItem({
2927
2928
  item,
@@ -3099,11 +3100,12 @@ function StreamoidSidebar({
3099
3100
  children: [
3100
3101
  collapsedLogo,
3101
3102
  !!(topItems?.length || config.topItem) ? /* @__PURE__ */ jsxs32(Fragment14, { children: [
3103
+ /* @__PURE__ */ jsx40(HDivider, {}),
3102
3104
  /* @__PURE__ */ jsx40(
3103
3105
  "div",
3104
3106
  {
3105
3107
  className: "flex flex-col items-center shrink-0",
3106
- style: { gap: "var(--spacing-xxs)", paddingBottom: "var(--spacing-xxs)" },
3108
+ style: { gap: "var(--spacing-xxs)", paddingTop: "var(--spacing-xxs)", paddingBottom: "var(--spacing-xxs)" },
3107
3109
  children: (topItems ?? (config.topItem ? [config.topItem] : [])).map(
3108
3110
  (item) => renderMenuItem({
3109
3111
  item,
@@ -3624,8 +3626,9 @@ var ScGuide = ({
3624
3626
  var ScSideBarLogoUnit_default = {
3625
3627
  scSideBarLogoUnit: "ScSideBarLogoUnit_scSideBarLogoUnit",
3626
3628
  row: "ScSideBarLogoUnit_row",
3627
- chip: "ScSideBarLogoUnit_chip",
3628
3629
  nonInteractive: "ScSideBarLogoUnit_nonInteractive",
3630
+ forceHover: "ScSideBarLogoUnit_forceHover",
3631
+ wordmarkSlot: "ScSideBarLogoUnit_wordmarkSlot",
3629
3632
  switch: "ScSideBarLogoUnit_switch",
3630
3633
  switchIcon: "ScSideBarLogoUnit_switchIcon",
3631
3634
  collapsed: "ScSideBarLogoUnit_collapsed",
@@ -3642,11 +3645,17 @@ var ScSideBarLogoUnit = ({
3642
3645
  onSwitchClick,
3643
3646
  switchAriaLabel = "Switch product",
3644
3647
  hideSwitch = false,
3648
+ hover,
3645
3649
  disabled = false,
3646
3650
  className,
3647
3651
  style
3648
3652
  }) => {
3649
- const interactive = !!onClick && !disabled;
3653
+ const interactive = !disabled && (!!onClick || !!onSwitchClick);
3654
+ const handleClick = () => {
3655
+ if (!interactive) return;
3656
+ onClick?.();
3657
+ onSwitchClick?.();
3658
+ };
3650
3659
  if (state === "collapsed") {
3651
3660
  return /* @__PURE__ */ jsx43(
3652
3661
  "div",
@@ -3658,8 +3667,9 @@ var ScSideBarLogoUnit = ({
3658
3667
  {
3659
3668
  type: "button",
3660
3669
  className: ScSideBarLogoUnit_default.collapsedTrigger + (interactive ? "" : " " + ScSideBarLogoUnit_default.nonInteractive),
3661
- onClick: interactive ? onClick : void 0,
3670
+ onClick: interactive ? handleClick : void 0,
3662
3671
  disabled,
3672
+ "aria-label": interactive ? switchAriaLabel : void 0,
3663
3673
  "aria-disabled": !interactive || disabled,
3664
3674
  children: wordmark
3665
3675
  }
@@ -3667,35 +3677,38 @@ var ScSideBarLogoUnit = ({
3667
3677
  }
3668
3678
  );
3669
3679
  }
3680
+ const rowClasses = [
3681
+ ScSideBarLogoUnit_default.row,
3682
+ interactive ? "" : ScSideBarLogoUnit_default.nonInteractive,
3683
+ hover === true ? ScSideBarLogoUnit_default.forceHover : ""
3684
+ ].filter(Boolean).join(" ");
3670
3685
  return /* @__PURE__ */ jsx43(
3671
3686
  "div",
3672
3687
  {
3673
3688
  className: ScSideBarLogoUnit_default.scSideBarLogoUnit + (className ? " " + className : ""),
3674
- style,
3675
- children: /* @__PURE__ */ jsxs35("div", { className: ScSideBarLogoUnit_default.row, children: [
3676
- /* @__PURE__ */ jsx43(
3677
- "button",
3678
- {
3679
- type: "button",
3680
- className: ScSideBarLogoUnit_default.chip + (interactive ? "" : " " + ScSideBarLogoUnit_default.nonInteractive),
3681
- onClick: interactive ? onClick : void 0,
3682
- disabled,
3683
- "aria-disabled": !interactive || disabled,
3684
- children: wordmark
3685
- }
3686
- ),
3687
- hideSwitch ? null : /* @__PURE__ */ jsx43(
3688
- "button",
3689
- {
3690
- type: "button",
3691
- className: ScSideBarLogoUnit_default.switch,
3692
- onClick: onSwitchClick,
3693
- disabled: disabled || !onSwitchClick,
3694
- "aria-label": switchAriaLabel,
3695
- children: /* @__PURE__ */ jsx43("span", { className: ScSideBarLogoUnit_default.switchIcon, children: /* @__PURE__ */ jsx43(SiconDoubleArrow, { size: 16, strokeWidth: 1.5 }) })
3696
- }
3697
- )
3698
- ] })
3689
+ style: {
3690
+ ...style,
3691
+ // Suppressing hover when `hover === false` — overrides CSS :hover.
3692
+ ...hover === false ? { pointerEvents: "auto" } : null
3693
+ },
3694
+ children: /* @__PURE__ */ jsxs35(
3695
+ "button",
3696
+ {
3697
+ type: "button",
3698
+ className: rowClasses,
3699
+ onClick: interactive ? handleClick : void 0,
3700
+ disabled,
3701
+ "aria-label": interactive ? switchAriaLabel : void 0,
3702
+ "aria-disabled": !interactive || disabled,
3703
+ style: hover === false ? {
3704
+ backgroundColor: "transparent"
3705
+ } : void 0,
3706
+ children: [
3707
+ /* @__PURE__ */ jsx43("span", { className: ScSideBarLogoUnit_default.wordmarkSlot, children: wordmark }),
3708
+ hideSwitch ? null : /* @__PURE__ */ jsx43("span", { className: ScSideBarLogoUnit_default.switch, children: /* @__PURE__ */ jsx43("span", { className: ScSideBarLogoUnit_default.switchIcon, children: /* @__PURE__ */ jsx43(SiconDoubleArrow, { size: 16, strokeWidth: 1.5 }) }) })
3709
+ ]
3710
+ }
3711
+ )
3699
3712
  }
3700
3713
  );
3701
3714
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamoid/ui",
3
- "version": "0.4.5",
3
+ "version": "0.4.6",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",