@rogieking/figui3 10.0.5 → 10.0.7

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.7]
6
+
7
+ ### Added
8
+
9
+ - Added a single-tab playground example.
10
+
11
+ ### Changed
12
+
13
+ - Unified `fig-select-option` and `fig-menu-item` row styles.
14
+ - Replaced select-option pseudo-element checkmarks with slotted small `fig-icon` checkmarks.
15
+
16
+ ### Fixed
17
+
18
+ - Prevented selected tabs from emitting redundant `input` and `change` events when clicked again.
19
+
20
+ ## [10.0.6]
21
+
22
+ ### Added
23
+
24
+ - Added `overflow="buttons|fade"` to `fig-tabs`, with paging buttons by default and buttonless horizontal fades as an option.
25
+
26
+ ### Fixed
27
+
28
+ - Removed overflow-button layout gaps from tab strips.
29
+
5
30
  ## [10.0.5]
6
31
 
7
32
  ### Changed
package/README.md CHANGED
@@ -814,16 +814,23 @@ Use `--fig-toolbelt-gap`, `--fig-toolbelt-group-gap`, `--fig-toolbelt-group-sepa
814
814
  | `value` | string | — | Selected tab value |
815
815
  | `name` | string | — | Tabs group identifier |
816
816
  | `disabled` | boolean | `false` | Disable all tabs |
817
+ | `overflow` | string | `"buttons"` | `"buttons"` adds paging controls; `"fade"` uses horizontal edge fades without buttons |
817
818
 
818
819
  **Events:** `input`, `change` with selected tab value.
819
820
 
820
821
  Tabs use `role="tablist"` / `role="tab"` and roving focus. Use `content="#panel-id"` on each `<fig-tab>` to associate generated tab panels. Focus-visible tabs use the shared focus outline tokens.
822
+ Overflow buttons are enabled by default. Set `overflow="fade"` for buttonless scrolling with `fig-overflow-fade fig-overflow-fade-horizontal` applied to the tabs container.
821
823
 
822
824
  ```html
823
825
  <fig-tabs value="tab1">
824
826
  <fig-tab value="tab1">General</fig-tab>
825
827
  <fig-tab value="tab2">Advanced</fig-tab>
826
828
  </fig-tabs>
829
+
830
+ <fig-tabs value="tab1" overflow="fade">
831
+ <fig-tab value="tab1">General</fig-tab>
832
+ <fig-tab value="tab2">Advanced</fig-tab>
833
+ </fig-tabs>
827
834
  ```
828
835
 
829
836
  ---
package/components.css CHANGED
@@ -1357,7 +1357,7 @@ fig-tabs,
1357
1357
  display: flex;
1358
1358
  flex-direction: row;
1359
1359
  flex-wrap: nowrap;
1360
- gap: var(--spacer-1);
1360
+ gap: 0;
1361
1361
  min-width: 0;
1362
1362
  overflow: auto hidden;
1363
1363
  padding: var(--spacer-1) 0;
@@ -1371,6 +1371,17 @@ fig-tabs,
1371
1371
 
1372
1372
  > fig-tab {
1373
1373
  flex-shrink: 0;
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
+
1382
+ & + fig-tab {
1383
+ margin-left: var(--spacer-1);
1384
+ }
1374
1385
  }
1375
1386
 
1376
1387
  > .fig-overflow {
@@ -1381,12 +1392,12 @@ fig-tabs,
1381
1392
  top: 0;
1382
1393
  z-index: 3;
1383
1394
  width: var(--spacer-4);
1384
- margin-left: calc(var(--spacer-2-5) * -1);
1385
- margin-right: calc(var(--spacer-2-5) * -1);
1395
+ margin-inline: 0;
1386
1396
  }
1387
1397
 
1388
1398
  > .fig-overflow-start {
1389
1399
  left: 0;
1400
+ margin-right: calc(var(--spacer-4) * -1);
1390
1401
  order: -1;
1391
1402
  right: auto;
1392
1403
  box-shadow: 1px 0 0 0 var(--figma-color-bordertranslucent);
@@ -1402,6 +1413,7 @@ fig-tabs,
1402
1413
 
1403
1414
  > .fig-overflow-end {
1404
1415
  left: auto;
1416
+ margin-left: calc(var(--spacer-4) * -1);
1405
1417
  order: 1;
1406
1418
  right: 0;
1407
1419
  box-shadow: -1px 0 0 0 var(--figma-color-bordertranslucent);
@@ -6795,7 +6807,7 @@ fig-menu::part(listbox) {
6795
6807
  height: max-content;
6796
6808
  }
6797
6809
 
6798
- fig-menu-item {
6810
+ :is(fig-menu-item, fig-select-option) {
6799
6811
  --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-4,1rem) var(--spacer-1,0.25rem) var(--spacer-3,0.75rem);
6800
6812
  box-sizing: border-box;
6801
6813
  display: flex;
@@ -6813,6 +6825,10 @@ fig-menu-item {
6813
6825
  position: relative;
6814
6826
  isolation: isolate;
6815
6827
 
6828
+ &:has(fig-icon[slot="prepend"]){
6829
+ --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-4,1rem) var(--spacer-1,0.25rem) var(--spacer-2,0.5rem);
6830
+ }
6831
+
6816
6832
  h3{
6817
6833
  margin: 0 0 var(--spacer-1) 0;
6818
6834
  }
@@ -6865,18 +6881,13 @@ fig-menu-item {
6865
6881
  &:has(> [slot="append"]) {
6866
6882
  --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-3,0.75rem) var(--spacer-1,0.25rem) var(--spacer-3,0.75rem);
6867
6883
  }
6868
- &:has(> [slot="prepend"]) {
6884
+ &:has(> [slot="prepend"]:not([data-fig-select-checkmark])) {
6869
6885
  --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-3,0.75rem) var(--spacer-1,0.25rem) var(--spacer-2,0.5rem);
6870
6886
  }
6871
- &:has(> [slot="prepend"]):has(> [slot="append"]) {
6887
+ &:has(> [slot="prepend"]:not([data-fig-select-checkmark])):has(> [slot="append"]) {
6872
6888
  --fig-menu-item-padding: var(--spacer-1,0.25rem) var(--spacer-3,0.75rem) var(--spacer-1,0.25rem) var(--spacer-2,0.5rem);
6873
6889
  }
6874
6890
 
6875
- &:not(:has(> :not([slot="prepend"], [slot="append"]))) > [slot="prepend"] {
6876
- display: inline-flex;
6877
- vertical-align: middle;
6878
- }
6879
-
6880
6891
  &[subtle]:not([subtle="false"]) {
6881
6892
  &:hover,
6882
6893
  &:focus-visible {