@gooddata/sdk-ui-kit 11.11.0-alpha.4 → 11.11.0-alpha.5

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.
Files changed (43) hide show
  1. package/esm/@ui/UiButton/UiButton.d.ts +1 -0
  2. package/esm/@ui/UiButton/UiButton.d.ts.map +1 -1
  3. package/esm/@ui/UiButton/UiButton.js +2 -2
  4. package/esm/@ui/UiButton/UiButton.js.map +1 -1
  5. package/esm/@ui/UiCheckbox/UiCheckbox.js +1 -1
  6. package/esm/@ui/UiCheckbox/UiCheckbox.js.map +1 -1
  7. package/esm/@ui/UiIcon/UiIcon.d.ts +2 -1
  8. package/esm/@ui/UiIcon/UiIcon.d.ts.map +1 -1
  9. package/esm/@ui/UiIcon/UiIcon.js +2 -2
  10. package/esm/@ui/UiIcon/UiIcon.js.map +1 -1
  11. package/esm/@ui/UiIconButton/UiIconButtonRenderer.d.ts +1 -0
  12. package/esm/@ui/UiIconButton/UiIconButtonRenderer.d.ts.map +1 -1
  13. package/esm/@ui/UiIconButton/UiIconButtonRenderer.js +2 -2
  14. package/esm/@ui/UiIconButton/UiIconButtonRenderer.js.map +1 -1
  15. package/esm/@ui/UiPopover/UiPopover.d.ts +6 -1
  16. package/esm/@ui/UiPopover/UiPopover.d.ts.map +1 -1
  17. package/esm/@ui/UiPopover/UiPopover.js +6 -4
  18. package/esm/@ui/UiPopover/UiPopover.js.map +1 -1
  19. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsAllTabs.js +1 -1
  20. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsAllTabs.js.map +1 -1
  21. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsAllTabsButton.d.ts.map +1 -1
  22. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsAllTabsButton.js +2 -2
  23. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsAllTabsButton.js.map +1 -1
  24. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsContainer.d.ts.map +1 -1
  25. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsContainer.js +8 -6
  26. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsContainer.js.map +1 -1
  27. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsTab.d.ts.map +1 -1
  28. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsTab.js +1 -1
  29. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsTab.js.map +1 -1
  30. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsTabActionsButton.d.ts.map +1 -1
  31. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsTabActionsButton.js +3 -4
  32. package/esm/@ui/UiTabs/defaultComponents/DefaultUiTabsTabActionsButton.js.map +1 -1
  33. package/esm/EditableLabel/EditableLabel.d.ts.map +1 -1
  34. package/esm/EditableLabel/EditableLabel.js +2 -2
  35. package/esm/EditableLabel/EditableLabel.js.map +1 -1
  36. package/esm/EditableLabel/typings.d.ts +1 -0
  37. package/esm/EditableLabel/typings.d.ts.map +1 -1
  38. package/esm/sdk-ui-kit.d.ts +11 -2
  39. package/package.json +9 -9
  40. package/src/@ui/UiIcon/UiIcon.scss +6 -0
  41. package/src/@ui/UiTabs/UiTabs.scss +44 -5
  42. package/styles/css/main.css +45 -5
  43. package/styles/css/main.css.map +1 -1
@@ -2820,6 +2820,7 @@ export declare interface IDropdownTagsProps {
2820
2820
  export declare interface IEditableLabelProps {
2821
2821
  children?: ReactNode;
2822
2822
  className?: string;
2823
+ id?: string;
2823
2824
  maxLength?: number;
2824
2825
  maxRows?: number;
2825
2826
  onCancel?: (value: string) => void;
@@ -7255,6 +7256,7 @@ export declare interface UiButtonProps {
7255
7256
  id?: string;
7256
7257
  size?: SizeSmall | SizeMedium | SizeLarge;
7257
7258
  variant?: VariantPrimary | VariantSecondary | VariantTertiary | VariantPopOut | VariantDanger | VariantTooltip | VariantLink;
7259
+ disableIconAnimation?: boolean;
7258
7260
  iconBefore?: IconType;
7259
7261
  iconBeforeSize?: number;
7260
7262
  badgeAfter?: number;
@@ -7437,7 +7439,7 @@ export declare function UiFocusTrap({ root, children, focusCheckFn, }: {
7437
7439
  /**
7438
7440
  * @internal
7439
7441
  */
7440
- export declare function UiIcon({ type, label, color, layout, ariaHidden, size, backgroundSize, backgroundColor, backgroundType, backgroundShape, }: UiIconProps): JSX.Element;
7442
+ export declare function UiIcon({ type, label, color, layout, disableAnimation, ariaHidden, size, backgroundSize, backgroundColor, backgroundType, backgroundShape, }: UiIconProps): JSX.Element;
7441
7443
 
7442
7444
  /**
7443
7445
  * @internal
@@ -7456,6 +7458,7 @@ export declare interface UiIconButtonPublicProps {
7456
7458
  icon: IconType;
7457
7459
  label?: string;
7458
7460
  size?: SizeXSmall | SizeSmall | SizeMedium | SizeLarge | SizeXLarge | SizeXXLarge;
7461
+ disableAnimation?: boolean;
7459
7462
  variant?: VariantPrimary | VariantSecondary | VariantTertiary | VariantPopOut | VariantDanger | VariantTable | VariantBare;
7460
7463
  isDisabled?: boolean;
7461
7464
  isActive?: boolean;
@@ -7478,6 +7481,7 @@ export declare interface UiIconProps {
7478
7481
  label?: string;
7479
7482
  size?: number;
7480
7483
  ariaHidden?: boolean;
7484
+ disableAnimation?: boolean;
7481
7485
  backgroundSize?: number;
7482
7486
  backgroundColor?: ThemeColor;
7483
7487
  backgroundType?: BackgroundType;
@@ -7665,7 +7669,7 @@ export declare interface UiPagedVirtualListSkeletonItemProps {
7665
7669
  /**
7666
7670
  * @internal
7667
7671
  */
7668
- export declare function UiPopover({ accessibilityConfig, anchor, width, title, tabIndex, disabled, content, footer, closeText, closeVisible, initialFocus, returnFocusTo, triggerBy, returnFocusAfterClose, focusCheckFn, onOpen, onClose, }: UiPopoverProps): JSX.Element;
7672
+ export declare function UiPopover({ accessibilityConfig, anchor, width, title, tabIndex, disabled, content, footer, closeText, closeVisible, initialFocus, returnFocusTo, triggerBy, returnFocusAfterClose, focusCheckFn, enableFocusTrap, onOpen, onClose, }: UiPopoverProps): JSX.Element;
7669
7673
 
7670
7674
  /**
7671
7675
  * @internal
@@ -7694,6 +7698,11 @@ export declare interface UiPopoverProps {
7694
7698
  * default is check if active element is exactly focused element.
7695
7699
  */
7696
7700
  focusCheckFn?: (element: HTMLElement) => boolean;
7701
+ /**
7702
+ * Enable focus trap to prevent tabbing out of the popover
7703
+ * When true, uses UiFocusManager's focus trap instead of tabOutHandler
7704
+ */
7705
+ enableFocusTrap?: boolean;
7697
7706
  onOpen?: () => void;
7698
7707
  onClose?: () => void;
7699
7708
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "11.11.0-alpha.4",
3
+ "version": "11.11.0-alpha.5",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -76,11 +76,11 @@
76
76
  "tslib": "2.8.1",
77
77
  "unified": "^11.0.5",
78
78
  "uuid": "^11.1.0",
79
- "@gooddata/sdk-model": "11.11.0-alpha.4",
80
- "@gooddata/sdk-backend-spi": "11.11.0-alpha.4",
81
- "@gooddata/sdk-ui": "11.11.0-alpha.4",
82
- "@gooddata/sdk-ui-theme-provider": "11.11.0-alpha.4",
83
- "@gooddata/util": "11.11.0-alpha.4"
79
+ "@gooddata/sdk-backend-spi": "11.11.0-alpha.5",
80
+ "@gooddata/sdk-model": "11.11.0-alpha.5",
81
+ "@gooddata/sdk-ui": "11.11.0-alpha.5",
82
+ "@gooddata/sdk-ui-theme-provider": "11.11.0-alpha.5",
83
+ "@gooddata/util": "11.11.0-alpha.5"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@gooddata/stylelint-config": "^5.0.0",
@@ -130,9 +130,9 @@
130
130
  "typescript": "5.8.3",
131
131
  "vitest": "3.2.4",
132
132
  "vitest-dom": "0.1.1",
133
- "@gooddata/reference-workspace": "11.11.0-alpha.4",
134
- "@gooddata/sdk-backend-mockingbird": "11.11.0-alpha.4",
135
- "@gooddata/eslint-config": "11.11.0-alpha.4"
133
+ "@gooddata/eslint-config": "11.11.0-alpha.5",
134
+ "@gooddata/reference-workspace": "11.11.0-alpha.5",
135
+ "@gooddata/sdk-backend-mockingbird": "11.11.0-alpha.5"
136
136
  },
137
137
  "peerDependencies": {
138
138
  "react": "^18.0.0 || ^19.0.0",
@@ -36,6 +36,12 @@
36
36
  path {
37
37
  transition: var(--gd-transition-all);
38
38
  }
39
+
40
+ &--disableAnimation {
41
+ path {
42
+ transition: none;
43
+ }
44
+ }
39
45
  }
40
46
 
41
47
  .gd-ui-kit-icon-background {
@@ -44,11 +44,22 @@
44
44
  }
45
45
 
46
46
  &__dropdown-wrapper {
47
+ position: relative;
47
48
  display: flex;
48
49
  align-self: stretch;
49
50
  flex-shrink: 0;
50
- border-left: 1px solid var(--gd-palette-complementary-3);
51
51
  margin-right: calc(-1 * var(--gd-spacing-5px));
52
+
53
+ &::after {
54
+ position: absolute;
55
+ top: 50%;
56
+ left: 0;
57
+ transform: translateY(-50%);
58
+ width: 1px;
59
+ height: 20px;
60
+ content: "";
61
+ background-color: var(--gd-palette-complementary-3);
62
+ }
52
63
  }
53
64
 
54
65
  &__dropdown {
@@ -75,6 +86,7 @@
75
86
 
76
87
  &__dropdown .gd-ui-kit-icon-button {
77
88
  width: 45px;
89
+ margin-right: var(--gd-spacing-5px);
78
90
  }
79
91
 
80
92
  &__tab-wrapper {
@@ -98,6 +110,24 @@
98
110
  }
99
111
  }
100
112
 
113
+ &__tab-scroll-target {
114
+ position: absolute;
115
+ left: calc(-1 * var(--scroll-target-margin));
116
+ right: calc(-1 * var(--scroll-target-margin));
117
+ top: 0;
118
+ bottom: 0;
119
+ content: "";
120
+ pointer-events: none;
121
+ }
122
+
123
+ &__tab-wrapper:first-of-type #{$root}__tab-scroll-target {
124
+ left: 0;
125
+ }
126
+
127
+ &__tab-wrapper:last-of-type #{$root}__tab-scroll-target {
128
+ right: 0;
129
+ }
130
+
101
131
  &__item {
102
132
  appearance: none;
103
133
  background: none;
@@ -154,13 +184,12 @@
154
184
  opacity: 0;
155
185
  transition: opacity 0.2s;
156
186
  position: absolute;
157
- top: 50%;
187
+ top: calc(50% + 1px);
158
188
  right: 0;
159
189
  transform: translateY(-50%);
160
190
 
161
- & .gd-ui-kit-icon-button {
162
- align-items: center;
163
- justify-items: end;
191
+ &:hover svg {
192
+ fill: var(--gd-palette-primary-base);
164
193
  }
165
194
  }
166
195
 
@@ -175,6 +204,10 @@
175
204
  flex-shrink: 0;
176
205
  opacity: 0;
177
206
  transition: opacity 0.2s;
207
+
208
+ &:hover svg {
209
+ fill: var(--gd-palette-primary-base);
210
+ }
178
211
  }
179
212
 
180
213
  &__tab-list {
@@ -226,6 +259,8 @@
226
259
 
227
260
  &--size {
228
261
  &-large {
262
+ --scroll-target-margin: 50px;
263
+
229
264
  #{$root}__tab-wrapper {
230
265
  height: var(--gd-tabs-height-L, 56px);
231
266
  padding: var(--gd-spacing-16px) var(--gd-spacing-20px) var(--gd-spacing-14px)
@@ -238,6 +273,8 @@
238
273
  }
239
274
 
240
275
  &-medium {
276
+ --scroll-target-margin: 30px;
277
+
241
278
  #{$root}__tab-wrapper {
242
279
  height: var(--gd-tabs-height-M, 27px);
243
280
  padding: var(--gd-spacing-3px) var(--gd-spacing-6px) var(--gd-spacing-3px)
@@ -250,6 +287,8 @@
250
287
  }
251
288
 
252
289
  &-small {
290
+ --scroll-target-margin: 10px;
291
+
253
292
  #{$root}__tab-wrapper {
254
293
  height: var(--gd-tabs-height-S, 23px);
255
294
  padding: var(--gd-spacing-3px) var(--gd-spacing-6px) var(--gd-spacing-3px)
@@ -805,6 +805,9 @@
805
805
  .gd-ui-kit-icon path {
806
806
  transition: var(--gd-transition-all);
807
807
  }
808
+ .gd-ui-kit-icon--disableAnimation path {
809
+ transition: none;
810
+ }
808
811
 
809
812
  .gd-ui-kit-icon-background {
810
813
  display: flex;
@@ -1523,12 +1526,22 @@
1523
1526
  display: none;
1524
1527
  }
1525
1528
  .gd-ui-kit-tabs__dropdown-wrapper {
1529
+ position: relative;
1526
1530
  display: flex;
1527
1531
  align-self: stretch;
1528
1532
  flex-shrink: 0;
1529
- border-left: 1px solid var(--gd-palette-complementary-3);
1530
1533
  margin-right: calc(-1 * var(--gd-spacing-5px));
1531
1534
  }
1535
+ .gd-ui-kit-tabs__dropdown-wrapper::after {
1536
+ position: absolute;
1537
+ top: 50%;
1538
+ left: 0;
1539
+ transform: translateY(-50%);
1540
+ width: 1px;
1541
+ height: 20px;
1542
+ content: "";
1543
+ background-color: var(--gd-palette-complementary-3);
1544
+ }
1532
1545
  .gd-ui-kit-tabs__dropdown {
1533
1546
  display: flex;
1534
1547
  border-bottom: 1px solid transparent;
@@ -1548,6 +1561,7 @@
1548
1561
  }
1549
1562
  .gd-ui-kit-tabs__dropdown .gd-ui-kit-icon-button {
1550
1563
  width: 45px;
1564
+ margin-right: var(--gd-spacing-5px);
1551
1565
  }
1552
1566
  .gd-ui-kit-tabs__tab-wrapper {
1553
1567
  position: relative;
@@ -1567,6 +1581,21 @@
1567
1581
  .gd-ui-kit-tabs__tab-wrapper--variant-placeholder.gd-ui-kit-tabs__tab-wrapper--selected {
1568
1582
  border-bottom: 3px solid var(--gd-palette-complementary-3);
1569
1583
  }
1584
+ .gd-ui-kit-tabs__tab-scroll-target {
1585
+ position: absolute;
1586
+ left: calc(-1 * var(--scroll-target-margin));
1587
+ right: calc(-1 * var(--scroll-target-margin));
1588
+ top: 0;
1589
+ bottom: 0;
1590
+ content: "";
1591
+ pointer-events: none;
1592
+ }
1593
+ .gd-ui-kit-tabs__tab-wrapper:first-of-type .gd-ui-kit-tabs__tab-scroll-target {
1594
+ left: 0;
1595
+ }
1596
+ .gd-ui-kit-tabs__tab-wrapper:last-of-type .gd-ui-kit-tabs__tab-scroll-target {
1597
+ right: 0;
1598
+ }
1570
1599
  .gd-ui-kit-tabs__item {
1571
1600
  appearance: none;
1572
1601
  background: none;
@@ -1608,13 +1637,12 @@
1608
1637
  opacity: 0;
1609
1638
  transition: opacity 0.2s;
1610
1639
  position: absolute;
1611
- top: 50%;
1640
+ top: calc(50% + 1px);
1612
1641
  right: 0;
1613
1642
  transform: translateY(-50%);
1614
1643
  }
1615
- .gd-ui-kit-tabs__tabs-actions .gd-ui-kit-icon-button {
1616
- align-items: center;
1617
- justify-items: end;
1644
+ .gd-ui-kit-tabs__tabs-actions:hover svg {
1645
+ fill: var(--gd-palette-primary-base);
1618
1646
  }
1619
1647
  .gd-ui-kit-tabs__tab-list-item-value {
1620
1648
  padding: var(--gd-spacing-10px) var(--gd-spacing-10px);
@@ -1627,6 +1655,9 @@
1627
1655
  opacity: 0;
1628
1656
  transition: opacity 0.2s;
1629
1657
  }
1658
+ .gd-ui-kit-tabs__tab-list-item-actions:hover svg {
1659
+ fill: var(--gd-palette-primary-base);
1660
+ }
1630
1661
  .gd-ui-kit-tabs__tab-list {
1631
1662
  width: 250px;
1632
1663
  max-height: 400px;
@@ -1664,6 +1695,9 @@
1664
1695
  .gd-ui-kit-tabs__container .gd-ui-kit-tabs__label--variant-placeholder.gd-ui-kit-tabs__label--selected {
1665
1696
  color: var(--gd-palette-complementary-6);
1666
1697
  }
1698
+ .gd-ui-kit-tabs--size-large {
1699
+ --scroll-target-margin: 50px;
1700
+ }
1667
1701
  .gd-ui-kit-tabs--size-large .gd-ui-kit-tabs__tab-wrapper {
1668
1702
  height: var(--gd-tabs-height-L, 56px);
1669
1703
  padding: var(--gd-spacing-16px) var(--gd-spacing-20px) var(--gd-spacing-14px) var(--gd-spacing-20px);
@@ -1672,6 +1706,9 @@
1672
1706
  font-size: 14px;
1673
1707
  line-height: normal;
1674
1708
  }
1709
+ .gd-ui-kit-tabs--size-medium {
1710
+ --scroll-target-margin: 30px;
1711
+ }
1675
1712
  .gd-ui-kit-tabs--size-medium .gd-ui-kit-tabs__tab-wrapper {
1676
1713
  height: var(--gd-tabs-height-M, 27px);
1677
1714
  padding: var(--gd-spacing-3px) var(--gd-spacing-6px) var(--gd-spacing-3px) var(--gd-spacing-6px);
@@ -1680,6 +1717,9 @@
1680
1717
  font-size: 14px;
1681
1718
  line-height: 18px;
1682
1719
  }
1720
+ .gd-ui-kit-tabs--size-small {
1721
+ --scroll-target-margin: 10px;
1722
+ }
1683
1723
  .gd-ui-kit-tabs--size-small .gd-ui-kit-tabs__tab-wrapper {
1684
1724
  height: var(--gd-tabs-height-S, 23px);
1685
1725
  padding: var(--gd-spacing-3px) var(--gd-spacing-6px) var(--gd-spacing-3px) var(--gd-spacing-6px);