@zovaris/sephiro 0.8.1 → 0.9.0

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.
@@ -5592,20 +5592,94 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5592
5592
  animation: none;
5593
5593
  opacity: 1;
5594
5594
  }
5595
+ .sph-side-panel {
5596
+ position: relative;
5597
+ box-sizing: border-box;
5598
+ display: flex;
5599
+ flex: 0 0 auto;
5600
+ inline-size: var(--sph-side-panel-width, 280px);
5601
+ min-inline-size: 0;
5602
+ overflow: hidden;
5603
+ border-inline-end: 1px solid var(--sph-border);
5604
+ background: var(--sph-surface);
5605
+ color: var(--sph-text);
5606
+ font-family: var(--sph-font-sans);
5607
+ transition: inline-size var(--sph-motion-slow) var(--sph-ease-emphasis), margin-inline var(--sph-motion-slow) var(--sph-ease-emphasis), border-inline-width var(--sph-motion-slow) var(--sph-ease-emphasis), background-color var(--sph-motion-fast) var(--sph-ease-standard), box-shadow var(--sph-motion-slow) var(--sph-ease-emphasis);
5608
+ }
5609
+ .sph-side-panel[data-side="right"] {
5610
+ justify-content: flex-end;
5611
+ border-inline-end: 0;
5612
+ border-inline-start: 1px solid var(--sph-border);
5613
+ }
5614
+ .sph-side-panel__inner {
5615
+ box-sizing: border-box;
5616
+ display: flex;
5617
+ flex: 0 0 auto;
5618
+ flex-direction: column;
5619
+ inline-size: var(--sph-side-panel-width, 280px);
5620
+ min-block-size: 0;
5621
+ overflow-y: auto;
5622
+ overflow-x: hidden;
5623
+ transition: opacity var(--sph-motion-fast) var(--sph-ease-standard), visibility var(--sph-motion-slow) var(--sph-ease-emphasis);
5624
+ }
5625
+ .sph-side-panel[data-collapsed] {
5626
+ inline-size: 0;
5627
+ border-inline-width: 0;
5628
+ }
5629
+ .sph-side-panel[data-collapsed] .sph-side-panel__inner {
5630
+ opacity: 0;
5631
+ visibility: hidden;
5632
+ }
5633
+ .sph-side-panel[data-peek] {
5634
+ z-index: 2;
5635
+ inline-size: 10px;
5636
+ margin-inline-end: -10px;
5637
+ background-color: transparent;
5638
+ }
5639
+ .sph-side-panel[data-side="right"][data-peek] {
5640
+ margin-inline: -10px 0;
5641
+ }
5642
+ .sph-side-panel[data-peek]:is(:hover, :has(:focus-visible)) {
5643
+ inline-size: var(--sph-side-panel-width, 280px);
5644
+ margin-inline-end: calc(-1 * var(--sph-side-panel-width, 280px));
5645
+ border-inline-width: 1px;
5646
+ background-color: var(--sph-surface);
5647
+ box-shadow: var(--sph-shadow-popover);
5648
+ }
5649
+ .sph-side-panel[data-side="right"][data-peek]:is( :hover, :has(:focus-visible) ) {
5650
+ margin-inline: calc(-1 * var(--sph-side-panel-width, 280px)) 0;
5651
+ }
5652
+ .sph-side-panel[data-peek]:is(:hover, :has(:focus-visible)) .sph-side-panel__inner {
5653
+ opacity: 1;
5654
+ visibility: visible;
5655
+ }
5656
+ @media (prefers-reduced-motion: reduce) {
5657
+ .sph-side-panel, .sph-side-panel__inner {
5658
+ transition: none;
5659
+ }
5660
+ }
5595
5661
  .sph-sidebar {
5662
+ box-sizing: border-box;
5596
5663
  display: flex;
5664
+ flex: 0 0 auto;
5597
5665
  flex-direction: column;
5598
5666
  gap: 6px;
5599
5667
  inline-size: 224px;
5668
+ min-inline-size: 0;
5669
+ overflow: hidden;
5600
5670
  padding: 8px;
5601
5671
  border-inline-end: 1px solid var(--sph-border);
5602
5672
  background: var(--sph-surface);
5603
5673
  font-family: var(--sph-font-sans);
5604
- transition: inline-size var(--sph-motion-slow) var(--sph-ease-emphasis);
5674
+ transition: inline-size var(--sph-motion-slow) var(--sph-ease-emphasis), padding-inline var(--sph-motion-slow) var(--sph-ease-emphasis), margin-inline var(--sph-motion-slow) var(--sph-ease-emphasis), opacity var(--sph-motion-fast) var(--sph-ease-standard), visibility var(--sph-motion-slow) var(--sph-ease-emphasis), background-color var(--sph-motion-fast) var(--sph-ease-standard), border-color var(--sph-motion-fast) var(--sph-ease-standard), box-shadow var(--sph-motion-slow) var(--sph-ease-emphasis), border-inline-width var(--sph-motion-slow) var(--sph-ease-emphasis);
5605
5675
  }
5606
- .sph-sidebar[data-collapsed] {
5676
+ .sph-sidebar[data-rail] {
5607
5677
  inline-size: 56px;
5608
5678
  }
5679
+ .sph-sidebar[data-side="right"] {
5680
+ border-inline-end: 0;
5681
+ border-inline-start: 1px solid var(--sph-border);
5682
+ }
5609
5683
  .sph-sidebar__header {
5610
5684
  padding: 6px 8px 2px;
5611
5685
  }
@@ -5639,7 +5713,7 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5639
5713
  overflow: hidden;
5640
5714
  transition: opacity var(--sph-motion-fast) var(--sph-ease-standard);
5641
5715
  }
5642
- .sph-sidebar[data-collapsed] .sph-sidebar__section-title {
5716
+ .sph-sidebar[data-rail] .sph-sidebar__section-title {
5643
5717
  opacity: 0;
5644
5718
  block-size: 0;
5645
5719
  padding: 0;
@@ -5676,6 +5750,12 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5676
5750
  opacity: 45%;
5677
5751
  cursor: not-allowed;
5678
5752
  }
5753
+ .sph-sidebar[data-side="right"] .sph-sidebar__item:hover:not(:disabled) {
5754
+ transform: translateX(-2px);
5755
+ }
5756
+ .sph-sidebar[data-side="right"] .sph-sidebar__item:active:not(:disabled) {
5757
+ transform: translateX(-2px) scale(0.985);
5758
+ }
5679
5759
  .sph-sidebar__item[data-active] {
5680
5760
  background: var(--sph-accent);
5681
5761
  @supports (color: color-mix(in lab, red, red)) {
@@ -5695,6 +5775,14 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5695
5775
  .sph-sidebar__item[data-active] .sph-sidebar__icon {
5696
5776
  color: var(--sph-accent-strong);
5697
5777
  }
5778
+ .sph-sidebar[data-side="right"] .sph-sidebar__item[data-active]::before {
5779
+ inset-inline-start: auto;
5780
+ inset-inline-end: -8px;
5781
+ }
5782
+ .sph-sidebar[data-side="right"][data-rail] .sph-sidebar__item[data-active]::before {
5783
+ inset-inline-start: auto;
5784
+ inset-inline-end: -6px;
5785
+ }
5698
5786
  .sph-sidebar__icon {
5699
5787
  display: inline-flex;
5700
5788
  flex: 0 0 auto;
@@ -5708,21 +5796,29 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5708
5796
  text-overflow: ellipsis;
5709
5797
  transition: opacity var(--sph-motion-fast) var(--sph-ease-standard), flex-basis var(--sph-motion-slow) var(--sph-ease-emphasis);
5710
5798
  }
5711
- .sph-sidebar[data-collapsed] .sph-sidebar__header {
5799
+ .sph-sidebar[data-rail] .sph-sidebar__header {
5712
5800
  display: none;
5713
5801
  }
5714
- .sph-sidebar[data-collapsed] .sph-sidebar__label, .sph-sidebar[data-collapsed] .sph-sidebar__badge {
5802
+ .sph-sidebar[data-rail] .sph-sidebar__label, .sph-sidebar[data-rail] .sph-sidebar__badge {
5715
5803
  opacity: 0;
5716
- flex-basis: 0;
5804
+ flex: 0 0 auto;
5717
5805
  inline-size: 0;
5718
5806
  margin: 0;
5807
+ padding: 0;
5808
+ overflow: hidden;
5809
+ white-space: nowrap;
5719
5810
  pointer-events: none;
5720
5811
  }
5721
- .sph-sidebar[data-collapsed] .sph-sidebar__item {
5812
+ .sph-sidebar[data-rail] .sph-sidebar__item {
5722
5813
  justify-content: center;
5814
+ align-items: center;
5815
+ gap: 0;
5723
5816
  padding-inline: 0;
5724
5817
  }
5725
- .sph-sidebar[data-collapsed] .sph-sidebar__item[data-active]::before {
5818
+ .sph-sidebar[data-rail] .sph-sidebar__icon {
5819
+ margin: 0;
5820
+ }
5821
+ .sph-sidebar[data-rail] .sph-sidebar__item[data-active]::before {
5726
5822
  inset-inline-start: -6px;
5727
5823
  }
5728
5824
  .sph-sidebar__badge {
@@ -5742,10 +5838,10 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5742
5838
  min-inline-size: 0;
5743
5839
  overflow: hidden;
5744
5840
  }
5745
- .sph-sidebar[data-collapsed] .sph-sidebar__footer-content {
5841
+ .sph-sidebar[data-rail] .sph-sidebar__footer-content {
5746
5842
  display: none;
5747
5843
  }
5748
- .sph-sidebar[data-collapsed] .sph-sidebar__footer {
5844
+ .sph-sidebar[data-rail] .sph-sidebar__footer {
5749
5845
  justify-content: center;
5750
5846
  }
5751
5847
  .sph-sidebar__toggle {
@@ -5770,6 +5866,82 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5770
5866
  outline: 2px solid var(--sph-focus);
5771
5867
  outline-offset: 1px;
5772
5868
  }
5869
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) {
5870
+ inline-size: 224px;
5871
+ }
5872
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__header {
5873
+ display: block;
5874
+ }
5875
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__section-title {
5876
+ opacity: 1;
5877
+ block-size: auto;
5878
+ padding: 4px 8px 2px;
5879
+ }
5880
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__label, .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__badge {
5881
+ opacity: 1;
5882
+ inline-size: auto;
5883
+ overflow: visible;
5884
+ pointer-events: auto;
5885
+ }
5886
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__label {
5887
+ flex: 1 1 auto;
5888
+ }
5889
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__badge {
5890
+ flex: 0 0 auto;
5891
+ }
5892
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__item {
5893
+ justify-content: flex-start;
5894
+ gap: 9px;
5895
+ padding-inline: 9px;
5896
+ }
5897
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__footer-content {
5898
+ display: block;
5899
+ }
5900
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__footer {
5901
+ justify-content: flex-start;
5902
+ }
5903
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__item[data-active]::before {
5904
+ inset-inline-start: -8px;
5905
+ }
5906
+ .sph-sidebar[data-side="right"][data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__item[data-active]::before {
5907
+ inset-inline-start: auto;
5908
+ inset-inline-end: -8px;
5909
+ }
5910
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__badge {
5911
+ margin-inline-start: auto;
5912
+ }
5913
+ .sph-sidebar[data-collapsed-mode="hidden"][data-collapsed] {
5914
+ position: relative;
5915
+ z-index: 2;
5916
+ inline-size: 10px;
5917
+ margin-inline-end: -10px;
5918
+ padding-inline: 0;
5919
+ border-inline-width: 0;
5920
+ background-color: transparent;
5921
+ }
5922
+ .sph-sidebar[data-side="right"][data-collapsed-mode="hidden"][data-collapsed] {
5923
+ margin-inline: -10px 0;
5924
+ }
5925
+ .sph-sidebar[data-collapsed-mode="hidden"][data-collapsed] > * {
5926
+ opacity: 0;
5927
+ visibility: hidden;
5928
+ transition: opacity var(--sph-motion-fast) var(--sph-ease-standard), visibility var(--sph-motion-fast) var(--sph-ease-standard);
5929
+ }
5930
+ .sph-sidebar[data-collapsed-mode="hidden"][data-collapsed]:is( :hover, :has(:focus-visible) ) {
5931
+ inline-size: 56px;
5932
+ margin-inline-end: -56px;
5933
+ padding-inline: 8px;
5934
+ border-inline-width: 1px;
5935
+ background-color: var(--sph-surface);
5936
+ box-shadow: var(--sph-shadow-popover);
5937
+ }
5938
+ .sph-sidebar[data-side="right"][data-collapsed-mode="hidden"][data-collapsed]:is( :hover, :has(:focus-visible) ) {
5939
+ margin-inline: -56px 0;
5940
+ }
5941
+ .sph-sidebar[data-collapsed-mode="hidden"][data-collapsed]:is( :hover, :has(:focus-visible) ) > * {
5942
+ opacity: 1;
5943
+ visibility: visible;
5944
+ }
5773
5945
  @supports (interpolate-size: allow-keywords) {
5774
5946
  .sph-sidebar {
5775
5947
  interpolate-size: allow-keywords;
package/dist/index.css CHANGED
@@ -5888,20 +5888,94 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5888
5888
  animation: none;
5889
5889
  opacity: 1;
5890
5890
  }
5891
+ .sph-side-panel {
5892
+ position: relative;
5893
+ box-sizing: border-box;
5894
+ display: flex;
5895
+ flex: 0 0 auto;
5896
+ inline-size: var(--sph-side-panel-width, 280px);
5897
+ min-inline-size: 0;
5898
+ overflow: hidden;
5899
+ border-inline-end: 1px solid var(--sph-border);
5900
+ background: var(--sph-surface);
5901
+ color: var(--sph-text);
5902
+ font-family: var(--sph-font-sans);
5903
+ transition: inline-size var(--sph-motion-slow) var(--sph-ease-emphasis), margin-inline var(--sph-motion-slow) var(--sph-ease-emphasis), border-inline-width var(--sph-motion-slow) var(--sph-ease-emphasis), background-color var(--sph-motion-fast) var(--sph-ease-standard), box-shadow var(--sph-motion-slow) var(--sph-ease-emphasis);
5904
+ }
5905
+ .sph-side-panel[data-side="right"] {
5906
+ justify-content: flex-end;
5907
+ border-inline-end: 0;
5908
+ border-inline-start: 1px solid var(--sph-border);
5909
+ }
5910
+ .sph-side-panel__inner {
5911
+ box-sizing: border-box;
5912
+ display: flex;
5913
+ flex: 0 0 auto;
5914
+ flex-direction: column;
5915
+ inline-size: var(--sph-side-panel-width, 280px);
5916
+ min-block-size: 0;
5917
+ overflow-y: auto;
5918
+ overflow-x: hidden;
5919
+ transition: opacity var(--sph-motion-fast) var(--sph-ease-standard), visibility var(--sph-motion-slow) var(--sph-ease-emphasis);
5920
+ }
5921
+ .sph-side-panel[data-collapsed] {
5922
+ inline-size: 0;
5923
+ border-inline-width: 0;
5924
+ }
5925
+ .sph-side-panel[data-collapsed] .sph-side-panel__inner {
5926
+ opacity: 0;
5927
+ visibility: hidden;
5928
+ }
5929
+ .sph-side-panel[data-peek] {
5930
+ z-index: 2;
5931
+ inline-size: 10px;
5932
+ margin-inline-end: -10px;
5933
+ background-color: transparent;
5934
+ }
5935
+ .sph-side-panel[data-side="right"][data-peek] {
5936
+ margin-inline: -10px 0;
5937
+ }
5938
+ .sph-side-panel[data-peek]:is(:hover, :has(:focus-visible)) {
5939
+ inline-size: var(--sph-side-panel-width, 280px);
5940
+ margin-inline-end: calc(-1 * var(--sph-side-panel-width, 280px));
5941
+ border-inline-width: 1px;
5942
+ background-color: var(--sph-surface);
5943
+ box-shadow: var(--sph-shadow-popover);
5944
+ }
5945
+ .sph-side-panel[data-side="right"][data-peek]:is( :hover, :has(:focus-visible) ) {
5946
+ margin-inline: calc(-1 * var(--sph-side-panel-width, 280px)) 0;
5947
+ }
5948
+ .sph-side-panel[data-peek]:is(:hover, :has(:focus-visible)) .sph-side-panel__inner {
5949
+ opacity: 1;
5950
+ visibility: visible;
5951
+ }
5952
+ @media (prefers-reduced-motion: reduce) {
5953
+ .sph-side-panel, .sph-side-panel__inner {
5954
+ transition: none;
5955
+ }
5956
+ }
5891
5957
  .sph-sidebar {
5958
+ box-sizing: border-box;
5892
5959
  display: flex;
5960
+ flex: 0 0 auto;
5893
5961
  flex-direction: column;
5894
5962
  gap: 6px;
5895
5963
  inline-size: 224px;
5964
+ min-inline-size: 0;
5965
+ overflow: hidden;
5896
5966
  padding: 8px;
5897
5967
  border-inline-end: 1px solid var(--sph-border);
5898
5968
  background: var(--sph-surface);
5899
5969
  font-family: var(--sph-font-sans);
5900
- transition: inline-size var(--sph-motion-slow) var(--sph-ease-emphasis);
5970
+ transition: inline-size var(--sph-motion-slow) var(--sph-ease-emphasis), padding-inline var(--sph-motion-slow) var(--sph-ease-emphasis), margin-inline var(--sph-motion-slow) var(--sph-ease-emphasis), opacity var(--sph-motion-fast) var(--sph-ease-standard), visibility var(--sph-motion-slow) var(--sph-ease-emphasis), background-color var(--sph-motion-fast) var(--sph-ease-standard), border-color var(--sph-motion-fast) var(--sph-ease-standard), box-shadow var(--sph-motion-slow) var(--sph-ease-emphasis), border-inline-width var(--sph-motion-slow) var(--sph-ease-emphasis);
5901
5971
  }
5902
- .sph-sidebar[data-collapsed] {
5972
+ .sph-sidebar[data-rail] {
5903
5973
  inline-size: 56px;
5904
5974
  }
5975
+ .sph-sidebar[data-side="right"] {
5976
+ border-inline-end: 0;
5977
+ border-inline-start: 1px solid var(--sph-border);
5978
+ }
5905
5979
  .sph-sidebar__header {
5906
5980
  padding: 6px 8px 2px;
5907
5981
  }
@@ -5935,7 +6009,7 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5935
6009
  overflow: hidden;
5936
6010
  transition: opacity var(--sph-motion-fast) var(--sph-ease-standard);
5937
6011
  }
5938
- .sph-sidebar[data-collapsed] .sph-sidebar__section-title {
6012
+ .sph-sidebar[data-rail] .sph-sidebar__section-title {
5939
6013
  opacity: 0;
5940
6014
  block-size: 0;
5941
6015
  padding: 0;
@@ -5972,6 +6046,12 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5972
6046
  opacity: 45%;
5973
6047
  cursor: not-allowed;
5974
6048
  }
6049
+ .sph-sidebar[data-side="right"] .sph-sidebar__item:hover:not(:disabled) {
6050
+ transform: translateX(-2px);
6051
+ }
6052
+ .sph-sidebar[data-side="right"] .sph-sidebar__item:active:not(:disabled) {
6053
+ transform: translateX(-2px) scale(0.985);
6054
+ }
5975
6055
  .sph-sidebar__item[data-active] {
5976
6056
  background: var(--sph-accent);
5977
6057
  @supports (color: color-mix(in lab, red, red)) {
@@ -5991,6 +6071,14 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
5991
6071
  .sph-sidebar__item[data-active] .sph-sidebar__icon {
5992
6072
  color: var(--sph-accent-strong);
5993
6073
  }
6074
+ .sph-sidebar[data-side="right"] .sph-sidebar__item[data-active]::before {
6075
+ inset-inline-start: auto;
6076
+ inset-inline-end: -8px;
6077
+ }
6078
+ .sph-sidebar[data-side="right"][data-rail] .sph-sidebar__item[data-active]::before {
6079
+ inset-inline-start: auto;
6080
+ inset-inline-end: -6px;
6081
+ }
5994
6082
  .sph-sidebar__icon {
5995
6083
  display: inline-flex;
5996
6084
  flex: 0 0 auto;
@@ -6004,21 +6092,29 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
6004
6092
  text-overflow: ellipsis;
6005
6093
  transition: opacity var(--sph-motion-fast) var(--sph-ease-standard), flex-basis var(--sph-motion-slow) var(--sph-ease-emphasis);
6006
6094
  }
6007
- .sph-sidebar[data-collapsed] .sph-sidebar__header {
6095
+ .sph-sidebar[data-rail] .sph-sidebar__header {
6008
6096
  display: none;
6009
6097
  }
6010
- .sph-sidebar[data-collapsed] .sph-sidebar__label, .sph-sidebar[data-collapsed] .sph-sidebar__badge {
6098
+ .sph-sidebar[data-rail] .sph-sidebar__label, .sph-sidebar[data-rail] .sph-sidebar__badge {
6011
6099
  opacity: 0;
6012
- flex-basis: 0;
6100
+ flex: 0 0 auto;
6013
6101
  inline-size: 0;
6014
6102
  margin: 0;
6103
+ padding: 0;
6104
+ overflow: hidden;
6105
+ white-space: nowrap;
6015
6106
  pointer-events: none;
6016
6107
  }
6017
- .sph-sidebar[data-collapsed] .sph-sidebar__item {
6108
+ .sph-sidebar[data-rail] .sph-sidebar__item {
6018
6109
  justify-content: center;
6110
+ align-items: center;
6111
+ gap: 0;
6019
6112
  padding-inline: 0;
6020
6113
  }
6021
- .sph-sidebar[data-collapsed] .sph-sidebar__item[data-active]::before {
6114
+ .sph-sidebar[data-rail] .sph-sidebar__icon {
6115
+ margin: 0;
6116
+ }
6117
+ .sph-sidebar[data-rail] .sph-sidebar__item[data-active]::before {
6022
6118
  inset-inline-start: -6px;
6023
6119
  }
6024
6120
  .sph-sidebar__badge {
@@ -6038,10 +6134,10 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
6038
6134
  min-inline-size: 0;
6039
6135
  overflow: hidden;
6040
6136
  }
6041
- .sph-sidebar[data-collapsed] .sph-sidebar__footer-content {
6137
+ .sph-sidebar[data-rail] .sph-sidebar__footer-content {
6042
6138
  display: none;
6043
6139
  }
6044
- .sph-sidebar[data-collapsed] .sph-sidebar__footer {
6140
+ .sph-sidebar[data-rail] .sph-sidebar__footer {
6045
6141
  justify-content: center;
6046
6142
  }
6047
6143
  .sph-sidebar__toggle {
@@ -6066,6 +6162,82 @@ a.sph-breadcrumb__crumb:focus-visible, button.sph-breadcrumb__crumb:focus-visibl
6066
6162
  outline: 2px solid var(--sph-focus);
6067
6163
  outline-offset: 1px;
6068
6164
  }
6165
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) {
6166
+ inline-size: 224px;
6167
+ }
6168
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__header {
6169
+ display: block;
6170
+ }
6171
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__section-title {
6172
+ opacity: 1;
6173
+ block-size: auto;
6174
+ padding: 4px 8px 2px;
6175
+ }
6176
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__label, .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__badge {
6177
+ opacity: 1;
6178
+ inline-size: auto;
6179
+ overflow: visible;
6180
+ pointer-events: auto;
6181
+ }
6182
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__label {
6183
+ flex: 1 1 auto;
6184
+ }
6185
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__badge {
6186
+ flex: 0 0 auto;
6187
+ }
6188
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__item {
6189
+ justify-content: flex-start;
6190
+ gap: 9px;
6191
+ padding-inline: 9px;
6192
+ }
6193
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__footer-content {
6194
+ display: block;
6195
+ }
6196
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__footer {
6197
+ justify-content: flex-start;
6198
+ }
6199
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__item[data-active]::before {
6200
+ inset-inline-start: -8px;
6201
+ }
6202
+ .sph-sidebar[data-side="right"][data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__item[data-active]::before {
6203
+ inset-inline-start: auto;
6204
+ inset-inline-end: -8px;
6205
+ }
6206
+ .sph-sidebar[data-collapsed-mode="hover"][data-collapsed]:is( :hover, :has(:focus-visible) ) .sph-sidebar__badge {
6207
+ margin-inline-start: auto;
6208
+ }
6209
+ .sph-sidebar[data-collapsed-mode="hidden"][data-collapsed] {
6210
+ position: relative;
6211
+ z-index: 2;
6212
+ inline-size: 10px;
6213
+ margin-inline-end: -10px;
6214
+ padding-inline: 0;
6215
+ border-inline-width: 0;
6216
+ background-color: transparent;
6217
+ }
6218
+ .sph-sidebar[data-side="right"][data-collapsed-mode="hidden"][data-collapsed] {
6219
+ margin-inline: -10px 0;
6220
+ }
6221
+ .sph-sidebar[data-collapsed-mode="hidden"][data-collapsed] > * {
6222
+ opacity: 0;
6223
+ visibility: hidden;
6224
+ transition: opacity var(--sph-motion-fast) var(--sph-ease-standard), visibility var(--sph-motion-fast) var(--sph-ease-standard);
6225
+ }
6226
+ .sph-sidebar[data-collapsed-mode="hidden"][data-collapsed]:is( :hover, :has(:focus-visible) ) {
6227
+ inline-size: 56px;
6228
+ margin-inline-end: -56px;
6229
+ padding-inline: 8px;
6230
+ border-inline-width: 1px;
6231
+ background-color: var(--sph-surface);
6232
+ box-shadow: var(--sph-shadow-popover);
6233
+ }
6234
+ .sph-sidebar[data-side="right"][data-collapsed-mode="hidden"][data-collapsed]:is( :hover, :has(:focus-visible) ) {
6235
+ margin-inline: -56px 0;
6236
+ }
6237
+ .sph-sidebar[data-collapsed-mode="hidden"][data-collapsed]:is( :hover, :has(:focus-visible) ) > * {
6238
+ opacity: 1;
6239
+ visibility: visible;
6240
+ }
6069
6241
  @supports (interpolate-size: allow-keywords) {
6070
6242
  .sph-sidebar {
6071
6243
  interpolate-size: allow-keywords;
package/dist/index.d.ts CHANGED
@@ -910,6 +910,24 @@ type ResizableProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
910
910
  };
911
911
  export declare function Resizable({ panes, direction, sizes, defaultSizes, onSizesChange, min, handleLabel, className, ...props }: ResizableProps): import("react").JSX.Element;
912
912
  //#endregion
913
+ //#region src/organisms/SidePanel/index.d.ts
914
+ type SidePanelSide = "left" | "right";
915
+ type SidePanelState = {
916
+ collapsed: boolean;
917
+ setCollapsed: (collapsed: boolean) => void;
918
+ toggle: () => void;
919
+ };
920
+ type SidePanelProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
921
+ children?: Renderable | ((state: SidePanelState) => Renderable);
922
+ side?: SidePanelSide;
923
+ width?: number | string;
924
+ collapsed?: boolean;
925
+ defaultCollapsed?: boolean;
926
+ onCollapsedChange?: (collapsed: boolean) => void;
927
+ peek?: boolean;
928
+ };
929
+ export declare function SidePanel({ children, side, width, collapsed, defaultCollapsed, onCollapsedChange, peek, className, style, ...props }: SidePanelProps): import("react").JSX.Element;
930
+ //#endregion
913
931
  //#region src/organisms/Sidebar/index.d.ts
914
932
  type SidebarItem = {
915
933
  value: string;
@@ -922,22 +940,24 @@ type SidebarSection = {
922
940
  title?: string;
923
941
  items: SidebarItem[];
924
942
  };
943
+ type SidebarSide = "left" | "right";
944
+ type SidebarCollapsedMode = "rail" | "hover" | "hidden";
925
945
  type SidebarProps = Omit<HTMLAttributes<HTMLElement>, "children" | "onSelect"> & {
926
946
  sections: SidebarSection[];
927
- /** Controlled active item. */
928
947
  value?: string;
929
948
  defaultValue?: string;
930
949
  onSelect?: (value: string) => void;
931
950
  header?: Renderable;
932
951
  footer?: Renderable;
933
- /** Show the collapse toggle. Default: false. */
952
+ side?: SidebarSide;
934
953
  collapsible?: boolean;
935
954
  collapsed?: boolean;
936
955
  defaultCollapsed?: boolean;
956
+ collapsedMode?: SidebarCollapsedMode;
937
957
  onCollapsedChange?: (collapsed: boolean) => void;
938
958
  ariaLabel?: string;
939
959
  };
940
- export declare function Sidebar({ sections, value, defaultValue, onSelect, header, footer, collapsible, collapsed, defaultCollapsed, onCollapsedChange, ariaLabel, className, ...props }: SidebarProps): import("react").JSX.Element;
960
+ export declare function Sidebar({ sections, value, defaultValue, onSelect, header, footer, side, collapsible, collapsed, collapsedMode, defaultCollapsed, onCollapsedChange, ariaLabel, className, ...props }: SidebarProps): import("react").JSX.Element;
941
961
  //#endregion
942
962
  //#region src/organisms/StreamingText/index.d.ts
943
963
  type StreamingTextProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
@@ -1198,5 +1218,5 @@ type ChatScrollerProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
1198
1218
  };
1199
1219
  export declare function ChatScroller({ children, itemCount, newCount, threshold, ariaLabel, jumpLabel, contentClassName, onPinnedChange, className, ...props }: ChatScrollerProps): import("react").JSX.Element;
1200
1220
  //#endregion
1201
- export { type AccordionItem, type AccordionProps, type AlertProps, type AnimatedNumberProps, type AttachmentFile, type AttachmentProps, type AvatarGroupItem, type AvatarGroupProps, type AvatarProps, type AvatarStatus, type BadgeProps, type BreadcrumbItem, type BreadcrumbProps, type ButtonProps, type CalendarProps, type CalendarRange, type CardProps, type ChartProps, type ChartSeries, type ChatScrollerProps, type CheckboxProps, type CitationProps, type CitationSource, type CollapsibleProps, type ComboboxOption, type ComboboxProps, type CommandItem, type CommandPaletteProps, type ContextMenuProps, type ControlDensity, type ControlSize, type DeltaProps, type DialogProps, type DrawerProps, type DrawerSide, type DropzoneRejectReason, type DropzoneValidation, type DropzoneValidationResult, type EmptyStateProps, type FieldMessageProps, type FieldProps, type HoldButtonProps, type HoverCardProps, type IconButtonProps, type InputProps, type KbdProps, type MagneticDropzoneProps, type MenuItem, type MenuProps, type MenubarMenu, type MenubarProps, type MetadataEntry, type MetadataListLayout, type MetadataListProps, type MotionSpeed, type NoticeProps, type NumberInputProps, type OTPInputProps, type OTPPattern, type OTPState, type OverflowListProps, type PaginationProps, type PlanCardProps, type PlanCardState, type PlanStep, type PopoverProps, type Presence, type ProgressProps, type QuestionCardProps, type QuestionOption, type RadioGroupProps, type RadioOption, type ReasoningStep, type ReasoningStepsProps, type Renderable, type RenderableElement, type ResizableProps, type RevealProps, type ScrollAreaProps, type SegmentedControlProps, type SegmentedOption, type SelectOption, type SelectProps, type SeparatorProps, type SidebarItem, type SidebarProps, type SidebarSection, type SkeletonProps, type SliderProps, type SpinnerProps, type StatGroupProps, type StatProps, type StatusMarkProps, type StatusMarkState, type StepperProps, type StepperStep, type StreamingTextProps, type SurfaceProps, type TabItem, type TableColumn, type TableProps, type TableSort, type TableSortDirection, type TabsProps, type TaskListItem, type TaskListProps, type TaskState, type TextareaProps, type TimelineItem, type TimelineProps, type TimestampFormat, type TimestampProps, type ToastProps, type ToastViewportProps, type ToggleProps, type ToolCall, type ToolCallsProps, type ToolbarProps, type TooltipGroupProps, type TooltipProps, toast };
1221
+ export { type AccordionItem, type AccordionProps, type AlertProps, type AnimatedNumberProps, type AttachmentFile, type AttachmentProps, type AvatarGroupItem, type AvatarGroupProps, type AvatarProps, type AvatarStatus, type BadgeProps, type BreadcrumbItem, type BreadcrumbProps, type ButtonProps, type CalendarProps, type CalendarRange, type CardProps, type ChartProps, type ChartSeries, type ChatScrollerProps, type CheckboxProps, type CitationProps, type CitationSource, type CollapsibleProps, type ComboboxOption, type ComboboxProps, type CommandItem, type CommandPaletteProps, type ContextMenuProps, type ControlDensity, type ControlSize, type DeltaProps, type DialogProps, type DrawerProps, type DrawerSide, type DropzoneRejectReason, type DropzoneValidation, type DropzoneValidationResult, type EmptyStateProps, type FieldMessageProps, type FieldProps, type HoldButtonProps, type HoverCardProps, type IconButtonProps, type InputProps, type KbdProps, type MagneticDropzoneProps, type MenuItem, type MenuProps, type MenubarMenu, type MenubarProps, type MetadataEntry, type MetadataListLayout, type MetadataListProps, type MotionSpeed, type NoticeProps, type NumberInputProps, type OTPInputProps, type OTPPattern, type OTPState, type OverflowListProps, type PaginationProps, type PlanCardProps, type PlanCardState, type PlanStep, type PopoverProps, type Presence, type ProgressProps, type QuestionCardProps, type QuestionOption, type RadioGroupProps, type RadioOption, type ReasoningStep, type ReasoningStepsProps, type Renderable, type RenderableElement, type ResizableProps, type RevealProps, type ScrollAreaProps, type SegmentedControlProps, type SegmentedOption, type SelectOption, type SelectProps, type SeparatorProps, type SidePanelProps, type SidePanelSide, type SidePanelState, type SidebarCollapsedMode, type SidebarItem, type SidebarProps, type SidebarSection, type SidebarSide, type SkeletonProps, type SliderProps, type SpinnerProps, type StatGroupProps, type StatProps, type StatusMarkProps, type StatusMarkState, type StepperProps, type StepperStep, type StreamingTextProps, type SurfaceProps, type TabItem, type TableColumn, type TableProps, type TableSort, type TableSortDirection, type TabsProps, type TaskListItem, type TaskListProps, type TaskState, type TextareaProps, type TimelineItem, type TimelineProps, type TimestampFormat, type TimestampProps, type ToastProps, type ToastViewportProps, type ToggleProps, type ToolCall, type ToolCallsProps, type ToolbarProps, type TooltipGroupProps, type TooltipProps, toast };
1202
1222
  //# sourceMappingURL=index.d.ts.map