@gooddata/sdk-ui-kit 11.39.0-alpha.2 → 11.39.0-alpha.4

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 (54) hide show
  1. package/esm/@ui/@types/icon.d.ts +1 -1
  2. package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.d.ts +39 -0
  3. package/esm/@ui/UiAddGranteeDialog/UiAddGranteeDialog.js +30 -0
  4. package/esm/@ui/UiAvatar/UiAvatar.d.ts +40 -0
  5. package/esm/@ui/UiAvatar/UiAvatar.js +19 -0
  6. package/esm/@ui/UiButton/UiButton.d.ts +7 -0
  7. package/esm/@ui/UiButton/UiButton.js +2 -2
  8. package/esm/@ui/UiConfirmDialog/UiConfirmDialog.d.ts +38 -0
  9. package/esm/@ui/UiConfirmDialog/UiConfirmDialog.js +28 -0
  10. package/esm/@ui/UiDialogShell/UiDialogFooter.d.ts +21 -0
  11. package/esm/@ui/UiDialogShell/UiDialogFooter.js +12 -0
  12. package/esm/@ui/UiDialogShell/UiDialogHeader.d.ts +26 -0
  13. package/esm/@ui/UiDialogShell/UiDialogHeader.js +19 -0
  14. package/esm/@ui/UiDialogShell/UiDialogShell.d.ts +58 -0
  15. package/esm/@ui/UiDialogShell/UiDialogShell.js +36 -0
  16. package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.d.ts +32 -0
  17. package/esm/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.js +22 -0
  18. package/esm/@ui/UiGranteeAvatar/UiGranteeAvatar.d.ts +30 -0
  19. package/esm/@ui/UiGranteeAvatar/UiGranteeAvatar.js +25 -0
  20. package/esm/@ui/UiGranteeRow/UiGranteeRow.d.ts +26 -0
  21. package/esm/@ui/UiGranteeRow/UiGranteeRow.js +19 -0
  22. package/esm/@ui/UiIcon/icons.js +5 -0
  23. package/esm/@ui/UiMenu/hooks.js +2 -4
  24. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.d.ts +57 -0
  25. package/esm/@ui/UiObjectShareDialog/UiObjectShareDialog.js +28 -0
  26. package/esm/@ui/UiRadio/UiRadio.d.ts +40 -0
  27. package/esm/@ui/UiRadio/UiRadio.js +23 -0
  28. package/esm/@ui/UiRadioRow/UiRadioRow.d.ts +33 -0
  29. package/esm/@ui/UiRadioRow/UiRadioRow.js +19 -0
  30. package/esm/@ui/UiSectionHeading/UiSectionHeading.d.ts +18 -0
  31. package/esm/@ui/UiSectionHeading/UiSectionHeading.js +14 -0
  32. package/esm/@ui/UiTextInput/UiTextInput.d.ts +55 -0
  33. package/esm/@ui/UiTextInput/UiTextInput.js +24 -0
  34. package/esm/index.d.ts +14 -0
  35. package/esm/index.js +14 -0
  36. package/esm/locales.d.ts +69 -0
  37. package/esm/locales.js +32 -1
  38. package/esm/sdk-ui-kit.d.ts +528 -1
  39. package/package.json +11 -11
  40. package/src/@ui/UiAddGranteeDialog/UiAddGranteeDialog.scss +22 -0
  41. package/src/@ui/UiAvatar/UiAvatar.scss +22 -0
  42. package/src/@ui/UiConfirmDialog/UiConfirmDialog.scss +13 -0
  43. package/src/@ui/UiDialogShell/UiDialogShell.scss +56 -0
  44. package/src/@ui/UiGeneralAccessRadio/UiGeneralAccessRadio.scss +8 -0
  45. package/src/@ui/UiGranteeRow/UiGranteeRow.scss +36 -0
  46. package/src/@ui/UiObjectShareDialog/UiObjectShareDialog.scss +12 -0
  47. package/src/@ui/UiRadio/UiRadio.scss +63 -0
  48. package/src/@ui/UiRadioRow/UiRadioRow.scss +44 -0
  49. package/src/@ui/UiSectionHeading/UiSectionHeading.scss +28 -0
  50. package/src/@ui/UiTextInput/UiTextInput.scss +68 -0
  51. package/src/@ui/index.scss +20 -0
  52. package/src/FilterGroupItem/FilterGroupItem.scss +13 -24
  53. package/styles/css/main.css +370 -18
  54. package/styles/css/main.css.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-kit",
3
- "version": "11.39.0-alpha.2",
3
+ "version": "11.39.0-alpha.4",
4
4
  "description": "GoodData SDK - UI Building Components",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -75,11 +75,11 @@
75
75
  "tslib": "2.8.1",
76
76
  "unified": "^11.0.5",
77
77
  "uuid": "11.1.0",
78
- "@gooddata/sdk-backend-spi": "11.39.0-alpha.2",
79
- "@gooddata/sdk-model": "11.39.0-alpha.2",
80
- "@gooddata/sdk-ui": "11.39.0-alpha.2",
81
- "@gooddata/sdk-ui-theme-provider": "11.39.0-alpha.2",
82
- "@gooddata/util": "11.39.0-alpha.2"
78
+ "@gooddata/sdk-backend-spi": "11.39.0-alpha.4",
79
+ "@gooddata/sdk-model": "11.39.0-alpha.4",
80
+ "@gooddata/sdk-ui-theme-provider": "11.39.0-alpha.4",
81
+ "@gooddata/util": "11.39.0-alpha.4",
82
+ "@gooddata/sdk-ui": "11.39.0-alpha.4"
83
83
  },
84
84
  "devDependencies": {
85
85
  "@microsoft/api-documenter": "^7.17.0",
@@ -128,11 +128,11 @@
128
128
  "typescript": "5.9.3",
129
129
  "vitest": "4.1.0",
130
130
  "vitest-dom": "0.1.1",
131
- "@gooddata/eslint-config": "11.39.0-alpha.2",
132
- "@gooddata/reference-workspace": "11.39.0-alpha.2",
133
- "@gooddata/oxlint-config": "11.39.0-alpha.2",
134
- "@gooddata/sdk-backend-mockingbird": "11.39.0-alpha.2",
135
- "@gooddata/stylelint-config": "11.39.0-alpha.2"
131
+ "@gooddata/eslint-config": "11.39.0-alpha.4",
132
+ "@gooddata/oxlint-config": "11.39.0-alpha.4",
133
+ "@gooddata/sdk-backend-mockingbird": "11.39.0-alpha.4",
134
+ "@gooddata/stylelint-config": "11.39.0-alpha.4",
135
+ "@gooddata/reference-workspace": "11.39.0-alpha.4"
136
136
  },
137
137
  "peerDependencies": {
138
138
  "react": "^18.0.0 || ^19.0.0",
@@ -0,0 +1,22 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-add-grantee-dialog {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: var(--gd-spacing-10px);
7
+ padding-bottom: var(--gd-spacing-5px);
8
+
9
+ &__preview {
10
+ display: flex;
11
+ align-items: center;
12
+ min-height: 50px;
13
+ }
14
+
15
+ &__empty-state {
16
+ flex: 1 1 auto;
17
+ text-align: center;
18
+ font-size: 14px;
19
+ line-height: 20px;
20
+ color: var(--gd-palette-complementary-6);
21
+ }
22
+ }
@@ -0,0 +1,22 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ @use "../themeColorsMap" as themeColorsMap;
4
+
5
+ .gd-ui-kit-avatar {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ flex-shrink: 0;
10
+ border-radius: 50%;
11
+ width: var(--gd-avatar-size);
12
+ height: var(--gd-avatar-size);
13
+ background-color: var(--gd-avatar-background-color);
14
+
15
+ &--background {
16
+ @each $key, $value in themeColorsMap.$theme-colors-map {
17
+ &-#{$key} {
18
+ --gd-avatar-background-color: var(--gd-palette-#{$value});
19
+ }
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,13 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-confirm-dialog {
4
+ display: flex;
5
+ flex-direction: column;
6
+
7
+ &__body {
8
+ font-size: 14px;
9
+ line-height: 20px;
10
+ color: var(--gd-palette-complementary-7);
11
+ margin-bottom: var(--gd-spacing-20px);
12
+ }
13
+ }
@@ -0,0 +1,56 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-dialog-shell {
4
+ display: flex;
5
+ flex-direction: column;
6
+ padding: var(--gd-spacing-20px);
7
+ background-color: var(--gd-palette-complementary-0);
8
+ border-radius: var(--gd-modal-borderRadius);
9
+ box-shadow: 0 2px 8px var(--gd-shadow-color);
10
+ }
11
+
12
+ .gd-ui-kit-dialog-header {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: var(--gd-spacing-15px);
16
+ margin-bottom: var(--gd-spacing-20px);
17
+
18
+ &__leading {
19
+ display: inline-flex;
20
+ align-items: center;
21
+ flex-shrink: 0;
22
+ }
23
+
24
+ &__title {
25
+ flex: 1 1 auto;
26
+ min-width: 0;
27
+ margin: 0;
28
+ font-weight: 700;
29
+ color: var(--gd-palette-complementary-8);
30
+ overflow: hidden;
31
+ text-overflow: ellipsis;
32
+ white-space: nowrap;
33
+
34
+ &--size-default {
35
+ font-size: 18px;
36
+ line-height: 26px;
37
+ }
38
+
39
+ &--size-large {
40
+ font-size: 20px;
41
+ line-height: 26px;
42
+ }
43
+ }
44
+ }
45
+
46
+ .gd-ui-kit-dialog-footer {
47
+ display: flex;
48
+ justify-content: flex-end;
49
+ gap: var(--gd-spacing-10px);
50
+
51
+ &--divider {
52
+ margin-top: var(--gd-spacing-15px);
53
+ padding-top: var(--gd-spacing-15px);
54
+ border-top: 1px solid var(--gd-palette-complementary-3);
55
+ }
56
+ }
@@ -0,0 +1,8 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-general-access-radio {
4
+ display: flex;
5
+ flex-direction: column;
6
+ width: 100%;
7
+ box-sizing: border-box;
8
+ }
@@ -0,0 +1,36 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-grantee-row {
4
+ display: flex;
5
+ align-items: center;
6
+ gap: var(--gd-spacing-10px);
7
+ width: 100%;
8
+ min-height: 50px;
9
+ padding: var(--gd-spacing-5px) 0;
10
+ box-sizing: border-box;
11
+
12
+ &__text {
13
+ flex: 1 1 auto;
14
+ min-width: 0;
15
+ display: flex;
16
+ flex-direction: column;
17
+ line-height: 20px;
18
+ }
19
+
20
+ &__name {
21
+ font-size: 14px;
22
+ font-weight: 700;
23
+ color: var(--gd-palette-complementary-8);
24
+ overflow: hidden;
25
+ text-overflow: ellipsis;
26
+ white-space: nowrap;
27
+ }
28
+
29
+ &__email {
30
+ font-size: 14px;
31
+ color: var(--gd-palette-complementary-6);
32
+ overflow: hidden;
33
+ text-overflow: ellipsis;
34
+ white-space: nowrap;
35
+ }
36
+ }
@@ -0,0 +1,12 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-object-share-dialog {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: var(--gd-spacing-10px);
7
+
8
+ &__grantees {
9
+ display: flex;
10
+ flex-direction: column;
11
+ }
12
+ }
@@ -0,0 +1,63 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-radio {
4
+ display: inline-flex;
5
+ align-items: center;
6
+ gap: var(--gd-spacing-5px);
7
+
8
+ &__control {
9
+ position: relative;
10
+ display: inline-flex;
11
+ flex-shrink: 0;
12
+ width: 14px;
13
+ height: 14px;
14
+ }
15
+
16
+ &__input {
17
+ position: absolute;
18
+ inset: 0;
19
+ width: 100%;
20
+ height: 100%;
21
+ margin: 0;
22
+ opacity: 0;
23
+ cursor: pointer;
24
+
25
+ &:disabled {
26
+ cursor: not-allowed;
27
+ }
28
+ }
29
+
30
+ &__circle {
31
+ width: 14px;
32
+ height: 14px;
33
+ border-radius: 50%;
34
+ border: 1px solid var(--gd-palette-complementary-5);
35
+ background-color: var(--gd-palette-complementary-0);
36
+ box-sizing: border-box;
37
+ pointer-events: none;
38
+ transition:
39
+ border-width 60ms ease-out,
40
+ border-color 60ms ease-out;
41
+
42
+ &--checked {
43
+ border-color: var(--gd-palette-primary-base);
44
+ border-width: 4px;
45
+ }
46
+
47
+ &--disabled {
48
+ border-color: var(--gd-palette-complementary-4);
49
+ background-color: var(--gd-palette-complementary-2);
50
+ }
51
+ }
52
+
53
+ &__input:focus-visible + &__circle {
54
+ box-shadow: 0 0 0 2px var(--gd-palette-primary-focus);
55
+ }
56
+
57
+ &__label {
58
+ font-size: 14px;
59
+ line-height: 20px;
60
+ color: var(--gd-palette-complementary-8);
61
+ cursor: pointer;
62
+ }
63
+ }
@@ -0,0 +1,44 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-radio-row {
4
+ display: flex;
5
+ align-items: center;
6
+ gap: var(--gd-spacing-10px);
7
+ width: 100%;
8
+ min-height: 50px;
9
+ padding: var(--gd-spacing-5px) 0;
10
+ box-sizing: border-box;
11
+
12
+ &__text {
13
+ flex: 1 1 auto;
14
+ min-width: 0;
15
+ display: flex;
16
+ flex-direction: column;
17
+ line-height: 20px;
18
+ }
19
+
20
+ &__title {
21
+ font-size: 14px;
22
+ font-weight: 700;
23
+ color: var(--gd-palette-complementary-8);
24
+ cursor: pointer;
25
+ }
26
+
27
+ &--disabled &__title {
28
+ cursor: not-allowed;
29
+ }
30
+
31
+ &__description {
32
+ font-size: 14px;
33
+ color: var(--gd-palette-complementary-6);
34
+ overflow: hidden;
35
+ text-overflow: ellipsis;
36
+ white-space: nowrap;
37
+ }
38
+
39
+ &__trailing {
40
+ flex-shrink: 0;
41
+ display: inline-flex;
42
+ align-items: center;
43
+ }
44
+ }
@@ -0,0 +1,28 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-section-heading {
4
+ display: flex;
5
+ align-items: center;
6
+ gap: var(--gd-spacing-15px);
7
+
8
+ &__label {
9
+ font-size: 11px;
10
+ line-height: 23px;
11
+ font-weight: 700;
12
+ text-transform: uppercase;
13
+ color: var(--gd-palette-complementary-6);
14
+ flex-shrink: 0;
15
+ }
16
+
17
+ &__rule {
18
+ flex: 1 1 auto;
19
+ height: 1px;
20
+ background-color: var(--gd-palette-complementary-3);
21
+ }
22
+
23
+ &__action {
24
+ flex-shrink: 0;
25
+ display: inline-flex;
26
+ align-items: center;
27
+ }
28
+ }
@@ -0,0 +1,68 @@
1
+ // (C) 2026 GoodData Corporation
2
+
3
+ .gd-ui-kit-text-input {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: var(--gd-spacing-5px);
7
+
8
+ &__label {
9
+ font-size: 14px;
10
+ line-height: 21px;
11
+ color: var(--gd-palette-complementary-7);
12
+ }
13
+
14
+ &__field {
15
+ display: flex;
16
+ align-items: center;
17
+ height: 32px;
18
+ padding: 0 var(--gd-spacing-7px);
19
+ border: 1px solid var(--gd-palette-complementary-4);
20
+ border-radius: 3px;
21
+ background-color: var(--gd-palette-complementary-0);
22
+ box-shadow: inset 0 1px 2px var(--gd-shadow-color);
23
+
24
+ &:focus-within {
25
+ border-color: var(--gd-palette-primary-base);
26
+ }
27
+
28
+ &--disabled {
29
+ background-color: var(--gd-palette-complementary-2);
30
+ cursor: not-allowed;
31
+ }
32
+ }
33
+
34
+ &__icon-before {
35
+ display: inline-flex;
36
+ align-items: center;
37
+ flex-shrink: 0;
38
+ margin-right: var(--gd-spacing-5px);
39
+ }
40
+
41
+ &__icon-after {
42
+ display: inline-flex;
43
+ align-items: center;
44
+ flex-shrink: 0;
45
+ margin-left: var(--gd-spacing-5px);
46
+ }
47
+
48
+ &__input {
49
+ flex: 1 1 auto;
50
+ min-width: 0;
51
+ height: 100%;
52
+ padding: 0;
53
+ border: none;
54
+ background: transparent;
55
+ font-family: inherit;
56
+ font-size: 14px;
57
+ color: var(--gd-palette-complementary-8);
58
+ outline: none;
59
+
60
+ &::placeholder {
61
+ color: var(--gd-palette-complementary-5);
62
+ }
63
+
64
+ &:disabled {
65
+ cursor: not-allowed;
66
+ }
67
+ }
68
+ }
@@ -30,3 +30,23 @@
30
30
  @use "./UiBreadcrumb/UiBreadcrumb.scss";
31
31
  @use "./UiInlineTextGenerator/UiInlineTextGenerator.scss";
32
32
  @use "./UiErrorPage/UiErrorPage.scss";
33
+ @use "./UiSectionHeading/UiSectionHeading.scss";
34
+ @use "./UiDialogShell/UiDialogShell.scss";
35
+ @use "./UiConfirmDialog/UiConfirmDialog.scss";
36
+ @use "./UiTextInput/UiTextInput.scss";
37
+ @use "./UiRadio/UiRadio.scss";
38
+ @use "./UiRadioRow/UiRadioRow.scss";
39
+ @use "./UiAvatar/UiAvatar.scss";
40
+ @use "./UiGranteeRow/UiGranteeRow.scss";
41
+ @use "./UiObjectShareDialog/UiObjectShareDialog.scss";
42
+ @use "./UiAddGranteeDialog/UiAddGranteeDialog.scss";
43
+ @use "./UiGeneralAccessRadio/UiGeneralAccessRadio.scss";
44
+
45
+ // `--gd-font-family` is a `:root` variable only; there is no global `body` font
46
+ // declaration. Apply it once to every kit root so standalone components don't
47
+ // fall back to the browser default (e.g. Times New Roman), rather than each
48
+ // component redeclaring it.
49
+ [class^="gd-ui-kit-"],
50
+ [class*=" gd-ui-kit-"] {
51
+ font-family: var(--gd-font-family);
52
+ }
@@ -20,7 +20,6 @@
20
20
  }
21
21
 
22
22
  .gd-filter-group-item-chevron {
23
- transition: transform 0.8s ease;
24
23
  padding-right: 4px;
25
24
  color: variables.$gd-color-state-blank;
26
25
  }
@@ -28,11 +27,10 @@
28
27
  &:not(.error, .gd-is-disabled):hover,
29
28
  &.gd-is-active {
30
29
  background-color: variables.$is-focused-background;
30
+ }
31
31
 
32
- &::before {
33
- transform: translateX(0) scaleX(1);
34
- opacity: 1;
35
- }
32
+ &.gd-is-active:not(.gd-is-disabled):hover {
33
+ background-color: variables.$gd-palette-primary-dimmed;
36
34
  }
37
35
 
38
36
  &::before {
@@ -43,30 +41,16 @@
43
41
  width: 4px;
44
42
  height: 100%;
45
43
  background-color: variables.$gd-palette-primary-base;
46
- transform: translateX(-2px) scaleX(0);
47
44
  opacity: 0;
48
- transition:
49
- transform 0.2s ease,
50
- opacity 0.2s ease;
51
45
  }
52
46
 
53
- &:not(.error, .gd-is-disabled):hover .gd-filter-group-item-chevron,
54
- &.gd-is-active .gd-filter-group-item-chevron {
55
- transform: translateX(4px);
47
+ &.gd-is-active::before {
48
+ opacity: 1;
56
49
  }
57
50
 
58
- &.gd-is-active:not(.error, .gd-is-disabled):hover {
59
- background-color: variables.$gd-palette-primary-dimmed;
60
-
61
- &::before {
62
- transform: translateX(-2px) scaleX(0);
63
- opacity: 0;
64
- }
65
-
66
- .gd-filter-group-item-chevron {
67
- transform: translateX(0);
68
- animation: none;
69
- }
51
+ &:not(.error, .gd-is-active, .gd-is-disabled):hover::before {
52
+ background-color: var(--gd-palette-complementary-5-t40, rgba(176, 190, 202, 0.6));
53
+ opacity: 1;
70
54
  }
71
55
 
72
56
  &.error:not(.gd-is-active) {
@@ -75,6 +59,11 @@
75
59
  .gd-filter-group-item-icon {
76
60
  color: variables.$gd-palette-error-base;
77
61
  }
62
+
63
+ &:not(.gd-is-disabled):hover::before {
64
+ background-color: var(--gd-palette-error-base-t85, rgba(229, 77, 66, 0.15));
65
+ opacity: 1;
66
+ }
78
67
  }
79
68
 
80
69
  &.error.gd-is-active .gd-filter-group-item-icon {