@rogieking/figui3 10.0.6 → 10.0.8

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 CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [10.0.8]
6
+
7
+ ### Added
8
+
9
+ - Added single-edge top, bottom, left, and right modifiers to the overflow-fade utility.
10
+
11
+ ### Changed
12
+
13
+ - Added edge controls to the vertical and horizontal overflow-fade playground examples.
14
+
15
+ ## [10.0.7]
16
+
17
+ ### Added
18
+
19
+ - Added a single-tab playground example.
20
+
21
+ ### Changed
22
+
23
+ - Unified `fig-select-option` and `fig-menu-item` row styles.
24
+ - Replaced select-option pseudo-element checkmarks with slotted small `fig-icon` checkmarks.
25
+
26
+ ### Fixed
27
+
28
+ - Prevented selected tabs from emitting redundant `input` and `change` events when clicked again.
29
+
5
30
  ## [10.0.6]
6
31
 
7
32
  ### Added
package/README.md CHANGED
@@ -1167,7 +1167,10 @@ For `point-point`, both handles support direct drag (with a dynamic directional
1167
1167
  A progressively enhanced scroll utility that fades its edges when more content
1168
1168
  is available in that direction. Apply the class to a height-constrained
1169
1169
  container for vertical scrolling. Add `.fig-overflow-fade-horizontal` for
1170
- horizontal scrolling.
1170
+ horizontal scrolling. Add `.fig-overflow-fade-top` or
1171
+ `.fig-overflow-fade-bottom` to limit a vertical fade to one edge. Use
1172
+ `.fig-overflow-fade-left` or `.fig-overflow-fade-right` for a single horizontal
1173
+ edge; these modifiers imply horizontal scrolling.
1171
1174
 
1172
1175
  | Custom property | Default | Description |
1173
1176
  |---|---|---|---|
@@ -1194,6 +1197,16 @@ timelines. Unsupported browsers retain ordinary scrolling without a fade.
1194
1197
  </div>
1195
1198
  ```
1196
1199
 
1200
+ ```html
1201
+ <div class="fig-overflow-fade fig-overflow-fade-bottom">
1202
+ <!-- Long content that fades only at the bottom -->
1203
+ </div>
1204
+
1205
+ <div class="fig-overflow-fade fig-overflow-fade-right">
1206
+ <!-- Wide content that fades only at the right -->
1207
+ </div>
1208
+ ```
1209
+
1197
1210
  ---
1198
1211
 
1199
1212
  #### Stack
package/components.css CHANGED
@@ -1372,6 +1372,13 @@ fig-tabs,
1372
1372
  > fig-tab {
1373
1373
  flex-shrink: 0;
1374
1374
 
1375
+ /* Single tab */
1376
+ &:first-of-type:last-of-type{
1377
+ background-color: transparent;
1378
+ padding-inline: 0;
1379
+ margin-inline: 0;
1380
+ }
1381
+
1375
1382
  & + fig-tab {
1376
1383
  margin-left: var(--spacer-1);
1377
1384
  }
@@ -5398,7 +5405,11 @@ fig-skeleton {
5398
5405
  overflow-y: auto;
5399
5406
  }
5400
5407
 
5401
- .fig-overflow-fade.fig-overflow-fade-horizontal {
5408
+ .fig-overflow-fade:is(
5409
+ .fig-overflow-fade-horizontal,
5410
+ .fig-overflow-fade-left,
5411
+ .fig-overflow-fade-right
5412
+ ) {
5402
5413
  --fig-overflow-fade-clear-left: 0px;
5403
5414
 
5404
5415
  overflow-x: auto;
@@ -5727,7 +5738,13 @@ fig-toolbelt {
5727
5738
  }
5728
5739
 
5729
5740
  @supports (animation-timeline: scroll(self block)) {
5730
- .fig-overflow-fade:not(.fig-overflow-fade-horizontal),
5741
+ .fig-overflow-fade:not(
5742
+ :is(
5743
+ .fig-overflow-fade-horizontal,
5744
+ .fig-overflow-fade-left,
5745
+ .fig-overflow-fade-right
5746
+ )
5747
+ ),
5731
5748
  fig-toolbelt[layout="vertical"]::part(viewport) {
5732
5749
  mask-image: linear-gradient(
5733
5750
  to bottom,
@@ -5859,10 +5876,41 @@ fig-toolbelt {
5859
5876
  calc(100% - var(--fig-overflow-fade-size)) 100%;
5860
5877
  }
5861
5878
 
5879
+ .fig-overflow-fade.fig-overflow-fade-top:not(
5880
+ .fig-overflow-fade-bottom
5881
+ ):not(
5882
+ :is(
5883
+ .fig-overflow-fade-horizontal,
5884
+ .fig-overflow-fade-left,
5885
+ .fig-overflow-fade-right
5886
+ )
5887
+ ) {
5888
+ animation: fig-overflow-fade-in-top 1ms linear both;
5889
+ animation-timeline: scroll(self block);
5890
+ animation-range: 0 var(--fig-overflow-fade-size);
5891
+ }
5892
+
5893
+ .fig-overflow-fade.fig-overflow-fade-bottom:not(
5894
+ .fig-overflow-fade-top
5895
+ ):not(
5896
+ :is(
5897
+ .fig-overflow-fade-horizontal,
5898
+ .fig-overflow-fade-left,
5899
+ .fig-overflow-fade-right
5900
+ )
5901
+ ) {
5902
+ animation: fig-overflow-fade-out-bottom 1ms linear both;
5903
+ animation-timeline: scroll(self block);
5904
+ animation-range: calc(100% - var(--fig-overflow-fade-size)) 100%;
5905
+ }
5862
5906
  }
5863
5907
 
5864
5908
  @supports (animation-timeline: scroll(self inline)) {
5865
- .fig-overflow-fade.fig-overflow-fade-horizontal,
5909
+ .fig-overflow-fade:is(
5910
+ .fig-overflow-fade-horizontal,
5911
+ .fig-overflow-fade-left,
5912
+ .fig-overflow-fade-right
5913
+ ),
5866
5914
  fig-toolbelt:not([layout="vertical"])::part(viewport) {
5867
5915
  mask-image: linear-gradient(
5868
5916
  to right,
@@ -5993,6 +6041,18 @@ fig-toolbelt {
5993
6041
  0 var(--fig-overflow-fade-size),
5994
6042
  calc(100% - var(--fig-overflow-fade-size)) 100%;
5995
6043
  }
6044
+
6045
+ .fig-overflow-fade.fig-overflow-fade-left:not(.fig-overflow-fade-right) {
6046
+ animation: fig-overflow-fade-in-left 1ms linear both;
6047
+ animation-timeline: scroll(self inline);
6048
+ animation-range: 0 var(--fig-overflow-fade-size);
6049
+ }
6050
+
6051
+ .fig-overflow-fade.fig-overflow-fade-right:not(.fig-overflow-fade-left) {
6052
+ animation: fig-overflow-fade-out-right 1ms linear both;
6053
+ animation-timeline: scroll(self inline);
6054
+ animation-range: calc(100% - var(--fig-overflow-fade-size)) 100%;
6055
+ }
5996
6056
  }
5997
6057
 
5998
6058
  @keyframes fig-overflow-fade-in-top {
@@ -6800,7 +6860,7 @@ fig-menu::part(listbox) {
6800
6860
  height: max-content;
6801
6861
  }
6802
6862
 
6803
- fig-menu-item {
6863
+ :is(fig-menu-item, fig-select-option) {
6804
6864
  --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-4,1rem) var(--spacer-1,0.25rem) var(--spacer-3,0.75rem);
6805
6865
  box-sizing: border-box;
6806
6866
  display: flex;
@@ -6818,6 +6878,10 @@ fig-menu-item {
6818
6878
  position: relative;
6819
6879
  isolation: isolate;
6820
6880
 
6881
+ &:has(fig-icon[slot="prepend"]){
6882
+ --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-4,1rem) var(--spacer-1,0.25rem) var(--spacer-2,0.5rem);
6883
+ }
6884
+
6821
6885
  h3{
6822
6886
  margin: 0 0 var(--spacer-1) 0;
6823
6887
  }
@@ -6870,18 +6934,13 @@ fig-menu-item {
6870
6934
  &:has(> [slot="append"]) {
6871
6935
  --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-3,0.75rem) var(--spacer-1,0.25rem) var(--spacer-3,0.75rem);
6872
6936
  }
6873
- &:has(> [slot="prepend"]) {
6937
+ &:has(> [slot="prepend"]:not([data-fig-select-checkmark])) {
6874
6938
  --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-3,0.75rem) var(--spacer-1,0.25rem) var(--spacer-2,0.5rem);
6875
6939
  }
6876
- &:has(> [slot="prepend"]):has(> [slot="append"]) {
6940
+ &:has(> [slot="prepend"]:not([data-fig-select-checkmark])):has(> [slot="append"]) {
6877
6941
  --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-3,0.75rem) var(--spacer-1,0.25rem) var(--spacer-2,0.5rem);
6878
6942
  }
6879
6943
 
6880
- &:not(:has(> :not([slot="prepend"], [slot="append"]))) > [slot="prepend"] {
6881
- display: inline-flex;
6882
- vertical-align: middle;
6883
- }
6884
-
6885
6944
  &[subtle]:not([subtle="false"]) {
6886
6945
  &:hover,
6887
6946
  &:focus-visible {