@gravity-ui/aikit 1.7.0 → 1.8.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.
Files changed (79) hide show
  1. package/README.md +0 -2
  2. package/dist/components/atoms/Alert/Alert.css +28 -0
  3. package/dist/components/atoms/ChatDate/ChatDate.css +9 -0
  4. package/dist/components/atoms/ContextIndicator/ContextIndicator.css +66 -0
  5. package/dist/components/atoms/DiffStat/DiffStat.css +23 -0
  6. package/dist/components/atoms/Disclaimer/Disclaimer.css +7 -0
  7. package/dist/components/atoms/IntersectionContainer/IntersectionContainer.css +3 -0
  8. package/dist/components/atoms/Loader/Loader.css +48 -0
  9. package/dist/components/atoms/MarkdownRenderer/MarkdownRenderer.css +5 -0
  10. package/dist/components/atoms/MessageBalloon/MessageBalloon.css +7 -0
  11. package/dist/components/atoms/Shimmer/Shimmer.css +18 -0
  12. package/dist/components/atoms/SubmitButton/SubmitButton.css +20 -0
  13. package/dist/components/atoms/ToolIndicator/ToolIndicator.css +9 -0
  14. package/dist/components/molecules/BaseMessage/BaseMessage.css +26 -0
  15. package/dist/components/molecules/ButtonGroup/ButtonGroup.css +13 -0
  16. package/dist/components/molecules/PromptInputBody/PromptInputBody.css +15 -0
  17. package/dist/components/molecules/PromptInputFooter/PromptInputFooter.css +18 -0
  18. package/dist/components/molecules/PromptInputHeader/PromptInputHeader.css +21 -0
  19. package/dist/components/molecules/PromptInputPanel/PromptInputPanel.css +7 -0
  20. package/dist/components/molecules/Suggestions/Suggestions.css +71 -0
  21. package/dist/components/molecules/Tabs/Tabs.css +35 -0
  22. package/dist/components/molecules/ToolFooter/ToolFooter.css +10 -0
  23. package/dist/components/molecules/ToolHeader/ToolHeader.css +18 -0
  24. package/dist/components/molecules/ToolStatus/ToolStatus.css +1 -0
  25. package/dist/components/organisms/AssistantMessage/AssistantMessage.css +6 -0
  26. package/dist/components/organisms/Header/Header.css +40 -0
  27. package/dist/components/organisms/MessageList/MessageList.css +26 -0
  28. package/dist/components/organisms/PromptInput/PromptInput.css +50 -0
  29. package/dist/components/organisms/ThinkingMessage/ThinkingMessage.css +20 -0
  30. package/dist/components/organisms/ToolMessage/ToolMessage.css +13 -0
  31. package/dist/components/organisms/UserMessage/UserMessage.css +10 -0
  32. package/dist/components/pages/ChatContainer/ChatContainer.css +49 -0
  33. package/dist/components/templates/ChatContent/ChatContent.css +23 -0
  34. package/dist/components/templates/EmptyContainer/EmptyContainer.css +64 -0
  35. package/dist/components/templates/History/History.css +81 -0
  36. package/dist/demo/ContentWrapper/ContentWrapper.css +6 -0
  37. package/dist/demo/DocsDecorator/DocsDecorator.css +87 -0
  38. package/dist/demo/Showcase/Showcase.css +34 -0
  39. package/dist/demo/ShowcaseItem/ShowcaseItem.css +7 -0
  40. package/dist/demo/SwapArea/SwapArea.css +11 -0
  41. package/dist/styles/variables.css +1 -0
  42. package/package.json +5 -5
  43. package/dist/components/atoms/Alert/Alert.scss +0 -39
  44. package/dist/components/atoms/ChatDate/ChatDate.scss +0 -15
  45. package/dist/components/atoms/ContextIndicator/ContextIndicator.scss +0 -93
  46. package/dist/components/atoms/DiffStat/DiffStat.scss +0 -36
  47. package/dist/components/atoms/Disclaimer/Disclaimer.scss +0 -13
  48. package/dist/components/atoms/IntersectionContainer/IntersectionContainer.scss +0 -7
  49. package/dist/components/atoms/Loader/Loader.scss +0 -72
  50. package/dist/components/atoms/MarkdownRenderer/MarkdownRenderer.scss +0 -10
  51. package/dist/components/atoms/MessageBalloon/MessageBalloon.scss +0 -11
  52. package/dist/components/atoms/Shimmer/Shimmer.scss +0 -32
  53. package/dist/components/atoms/SubmitButton/SubmitButton.scss +0 -29
  54. package/dist/components/atoms/ToolIndicator/ToolIndicator.scss +0 -15
  55. package/dist/components/molecules/BaseMessage/BaseMessage.scss +0 -41
  56. package/dist/components/molecules/ButtonGroup/ButtonGroup.scss +0 -19
  57. package/dist/components/molecules/PromptInputBody/PromptInputBody.scss +0 -22
  58. package/dist/components/molecules/PromptInputFooter/PromptInputFooter.scss +0 -25
  59. package/dist/components/molecules/PromptInputHeader/PromptInputHeader.scss +0 -27
  60. package/dist/components/molecules/PromptInputPanel/PromptInputPanel.scss +0 -11
  61. package/dist/components/molecules/Suggestions/Suggestions.scss +0 -90
  62. package/dist/components/molecules/Tabs/Tabs.scss +0 -46
  63. package/dist/components/molecules/ToolFooter/ToolFooter.scss +0 -15
  64. package/dist/components/molecules/ToolHeader/ToolHeader.scss +0 -24
  65. package/dist/components/molecules/ToolStatus/ToolStatus.scss +0 -6
  66. package/dist/components/organisms/AssistantMessage/AssistantMessage.scss +0 -10
  67. package/dist/components/organisms/Header/Header.scss +0 -51
  68. package/dist/components/organisms/MessageList/MessageList.scss +0 -35
  69. package/dist/components/organisms/PromptInput/PromptInput.scss +0 -77
  70. package/dist/components/organisms/ThinkingMessage/ThinkingMessage.scss +0 -27
  71. package/dist/components/organisms/ToolMessage/ToolMessage.scss +0 -19
  72. package/dist/components/organisms/UserMessage/UserMessage.scss +0 -14
  73. package/dist/components/pages/ChatContainer/ChatContainer.scss +0 -60
  74. package/dist/components/templates/ChatContent/ChatContent.scss +0 -30
  75. package/dist/components/templates/EmptyContainer/EmptyContainer.scss +0 -86
  76. package/dist/components/templates/History/History.scss +0 -103
  77. package/dist/styles/_functions.scss +0 -5
  78. package/dist/styles/variables.scss +0 -1
  79. /package/dist/styles/{styles.scss → styles.css} +0 -0
@@ -1,72 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}loader';
4
-
5
- $pulse-duration: 800ms;
6
- $pulse-delay: $pulse-duration * 0.25;
7
- $animation: pulse ease $pulse-duration infinite;
8
-
9
- @keyframes pulse {
10
- 100% {
11
- opacity: 0;
12
- }
13
- 50% {
14
- opacity: 70%;
15
- }
16
- 0% {
17
- opacity: 40%;
18
- }
19
- }
20
-
21
- #{$block} {
22
- display: inline-flex;
23
- align-items: center;
24
- gap: var(--g-spacing-1);
25
-
26
- &__left,
27
- &__center,
28
- &__right {
29
- background: var(--g-color-text-secondary);
30
- border-radius: 50%;
31
- animation: $animation;
32
- }
33
-
34
- &_size_xs {
35
- #{$block}__left,
36
- #{$block}__center,
37
- #{$block}__right {
38
- width: 3px;
39
- height: 3px;
40
- }
41
- }
42
-
43
- &_size_s {
44
- #{$block}__left,
45
- #{$block}__center,
46
- #{$block}__right {
47
- width: 5px;
48
- height: 5px;
49
- }
50
- }
51
-
52
- &_size_m {
53
- #{$block}__left,
54
- #{$block}__center,
55
- #{$block}__right {
56
- width: 8px;
57
- height: 8px;
58
- }
59
- }
60
-
61
- &__left {
62
- animation-delay: $pulse-delay;
63
- }
64
-
65
- &__center {
66
- animation-delay: 2 * $pulse-delay;
67
- }
68
-
69
- &__right {
70
- animation-delay: 3 * $pulse-delay;
71
- }
72
- }
@@ -1,10 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- @import '@diplodoc/transform/dist/css/yfm.css';
4
-
5
- $block: '.#{variables.$ns}markdown-renderer';
6
-
7
- #{$block} {
8
- max-width: 100%;
9
- color: var(--g-color-text-primary);
10
- }
@@ -1,11 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}message-balloon';
4
-
5
- #{$block} {
6
- display: inline-block;
7
- background-color: var(--g-color-base-info-light);
8
- padding: var(--g-spacing-2) var(--g-spacing-3);
9
- border-radius: var(--g-spacing-3) 0 var(--g-spacing-3) var(--g-spacing-3);
10
- max-width: 100%;
11
- }
@@ -1,32 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}shimmer';
4
-
5
- #{$block} {
6
- &__container {
7
- position: relative;
8
- display: inline-block;
9
-
10
- color: var(--g-aikit-text-primary, inherit);
11
- mask-image: linear-gradient(
12
- 90deg,
13
- var(--g-aikit-shimmer-color-from) 0%,
14
- var(--g-aikit-shimmer-color-from) 40%,
15
- var(--g-aikit-shimmer-color-to) 50%,
16
- var(--g-aikit-shimmer-color-from) 60%,
17
- var(--g-aikit-shimmer-color-from) 100%
18
- );
19
- mask-size: var(--g-aikit-shimmer-gradient-size) 100%;
20
- mask-clip: text;
21
- animation: shimmer var(--g-aikit-shimmer-duration) infinite linear;
22
- }
23
- }
24
-
25
- @keyframes shimmer {
26
- 0% {
27
- mask-position: 200% 50%;
28
- }
29
- 100% {
30
- mask-position: 0% 50%;
31
- }
32
- }
@@ -1,29 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}submit-button';
4
-
5
- #{$block} {
6
- display: flex;
7
- justify-content: center;
8
- align-items: center;
9
-
10
- &_size_s#{&}_loading {
11
- padding: 4px;
12
- }
13
-
14
- &_size_m#{&}_loading {
15
- padding: 6px;
16
- }
17
-
18
- &_size_l#{&}_loading {
19
- padding: 10px;
20
- }
21
-
22
- &__loader {
23
- display: flex;
24
- }
25
-
26
- &__spinner {
27
- --g-color-line-brand: var(--g-color-text-brand-contrast);
28
- }
29
- }
@@ -1,15 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}tool-indicator';
4
-
5
- #{$block} {
6
- &__success {
7
- color: var(--g-color-text-positive);
8
- }
9
- &__error {
10
- color: var(--g-color-text-danger);
11
- }
12
- &__info {
13
- color: var(--g-color-text-secondary);
14
- }
15
- }
@@ -1,41 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}base-message';
4
-
5
- #{$block} {
6
- display: flex;
7
- flex-direction: column;
8
- gap: var(--g-spacing-1);
9
-
10
- &_variant_user {
11
- align-items: flex-end;
12
- max-width: 90%;
13
- }
14
-
15
- &_variant_system,
16
- &_variant_assistant {
17
- align-items: flex-start;
18
- }
19
-
20
- &_btn-hover {
21
- #{$block}__actions {
22
- visibility: hidden;
23
- }
24
-
25
- &:hover {
26
- #{$block}__actions {
27
- visibility: visible;
28
- }
29
- }
30
- }
31
-
32
- &__actions {
33
- display: flex;
34
- align-items: center;
35
- gap: var(--g-spacing-3);
36
-
37
- &_reverse {
38
- flex-direction: row-reverse;
39
- }
40
- }
41
- }
@@ -1,19 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}button-group';
4
-
5
- #{$block} {
6
- display: flex;
7
- flex-wrap: wrap;
8
- gap: var(--g-spacing-1);
9
-
10
- &_or_vertical {
11
- flex-direction: column;
12
- justify-content: center;
13
- }
14
-
15
- &_or_horizontal {
16
- flex-direction: row;
17
- align-items: center;
18
- }
19
- }
@@ -1,22 +0,0 @@
1
- @use '../../../styles/variables.scss';
2
-
3
- $block: '.#{variables.$ns}prompt-input-body';
4
-
5
- #{$block} {
6
- display: flex;
7
- flex-direction: column;
8
- flex: 1;
9
- align-self: stretch;
10
-
11
- &__textarea {
12
- width: 100%;
13
- }
14
-
15
- &__textarea-control {
16
- resize: none;
17
- }
18
-
19
- .g-text-area_disabled {
20
- --_--background-color: none;
21
- }
22
- }
@@ -1,25 +0,0 @@
1
- @use '../../../styles/variables.scss';
2
-
3
- $block: '.#{variables.$ns}prompt-input-footer';
4
-
5
- #{$block} {
6
- display: flex;
7
- align-items: flex-end;
8
- justify-content: space-between;
9
- align-self: stretch;
10
- gap: var(--g-spacing-1);
11
-
12
- &__action-button {
13
- color: var(--g-color-text-secondary);
14
-
15
- &:hover {
16
- color: var(--g-color-text-primary);
17
- }
18
- }
19
-
20
- &__content {
21
- display: flex;
22
- align-items: center;
23
- flex: 1;
24
- }
25
- }
@@ -1,27 +0,0 @@
1
- @use '../../../styles/variables.scss';
2
-
3
- $block: '.#{variables.$ns}prompt-input-header';
4
-
5
- #{$block} {
6
- display: flex;
7
- align-items: center;
8
- justify-content: space-between;
9
- gap: var(--g-spacing-2);
10
- align-self: stretch;
11
-
12
- &__context-items {
13
- display: flex;
14
- align-items: center;
15
- gap: var(--g-spacing-1);
16
- flex-wrap: wrap;
17
- flex: 1;
18
- min-width: 0;
19
- }
20
-
21
- &__context-indicator {
22
- display: flex;
23
- align-items: center;
24
- flex-shrink: 0;
25
- margin-left: auto;
26
- }
27
- }
@@ -1,11 +0,0 @@
1
- @use '../../../styles/variables.scss';
2
-
3
- $block: '.#{variables.$ns}prompt-input-panel';
4
-
5
- #{$block} {
6
- display: flex;
7
- padding: var(--g-spacing-2);
8
- flex-direction: row;
9
- align-items: center;
10
- gap: var(--g-spacing-2);
11
- }
@@ -1,90 +0,0 @@
1
- @use '../../../styles/variables';
2
- @use '../../../styles/functions' as *;
3
-
4
- $block: '.#{variables.$ns}suggestions';
5
-
6
- #{$block} {
7
- &__container {
8
- display: flex;
9
- flex-direction: column;
10
- gap: var(--g-spacing-2);
11
- }
12
-
13
- &__title {
14
- padding-bottom: 0;
15
- }
16
-
17
- display: flex;
18
- align-items: flex-start;
19
- align-content: flex-start;
20
- gap: var(--g-spacing-2) var(--g-spacing-2);
21
- align-self: stretch;
22
- flex-wrap: wrap;
23
-
24
- &_layout_grid {
25
- flex-direction: row;
26
- }
27
-
28
- &_layout_list {
29
- flex-direction: column;
30
- }
31
-
32
- &_layout_list &__button {
33
- width: 100%;
34
- }
35
-
36
- &__button {
37
- padding: spacing(2) spacing(4);
38
- height: 100%;
39
- box-shadow: none;
40
-
41
- .g-button__text {
42
- width: 100%;
43
- }
44
- }
45
-
46
- &__button-content {
47
- display: flex;
48
- flex-direction: row;
49
- align-items: center;
50
- justify-content: space-between;
51
- flex: 1;
52
- gap: spacing(1);
53
- min-width: 0;
54
-
55
- &_text-align_left {
56
- justify-content: flex-start;
57
- }
58
-
59
- &_text-align_center {
60
- justify-content: center;
61
- }
62
-
63
- &_text-align_right {
64
- justify-content: flex-end;
65
- }
66
- }
67
-
68
- &__button-text {
69
- overflow: hidden;
70
- text-overflow: ellipsis;
71
- white-space: nowrap;
72
- min-width: 0;
73
- }
74
-
75
- &__button-text-wrap {
76
- word-break: break-word;
77
- white-space: normal;
78
- min-width: 0;
79
- text-align: left;
80
- }
81
-
82
- &__button-icon {
83
- width: 16px;
84
- height: 16px;
85
- color: var(--g-color-text-hint);
86
- flex-shrink: 0;
87
- display: flex;
88
- align-items: center;
89
- }
90
- }
@@ -1,46 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}tabs';
4
-
5
- #{$block} {
6
- display: flex;
7
- width: 100%;
8
- flex-direction: row;
9
- align-items: flex-start;
10
- gap: var(--g-spacing-2);
11
- overflow: scroll hidden;
12
- white-space: nowrap;
13
- padding: var(--g-spacing-1) 0;
14
-
15
- scrollbar-width: thin;
16
- transition: scrollbar-color 0.3s ease-in-out;
17
- scrollbar-color: transparent transparent;
18
-
19
- &:hover {
20
- scrollbar-color: var(--g-color-base-generic-medium) transparent;
21
- }
22
-
23
- &::-webkit-scrollbar {
24
- height: 6px;
25
- }
26
-
27
- &::-webkit-scrollbar-track {
28
- background: transparent;
29
- }
30
-
31
- &::-webkit-scrollbar-thumb {
32
- background-color: transparent;
33
- border-radius: 3px;
34
- transition: background-color 0.3s ease-in-out;
35
- }
36
-
37
- &:hover::-webkit-scrollbar-thumb {
38
- background-color: var(--g-color-base-generic-medium);
39
- }
40
-
41
- &__tab {
42
- flex-shrink: 0;
43
- cursor: default;
44
- overflow: hidden;
45
- }
46
- }
@@ -1,15 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}tool-footer';
4
-
5
- #{$block} {
6
- display: flex;
7
- justify-content: space-between;
8
- align-items: center;
9
-
10
- &__left {
11
- display: flex;
12
- align-items: center;
13
- gap: var(--g-spacing-2);
14
- }
15
- }
@@ -1,24 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}tool-header';
4
-
5
- #{$block} {
6
- display: flex;
7
- justify-content: space-between;
8
- align-items: center;
9
- height: 24px;
10
- gap: var(--g-spacing-2);
11
-
12
- &__left {
13
- display: flex;
14
- flex-direction: row;
15
- align-items: center;
16
- gap: var(--g-spacing-2);
17
- }
18
-
19
- &__right {
20
- display: flex;
21
- align-items: center;
22
- gap: var(--g-spacing-3);
23
- }
24
- }
@@ -1,6 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}tool-status';
4
-
5
- #{$block} {
6
- }
@@ -1,10 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}assistant-message';
4
-
5
- #{$block}__content {
6
- display: flex;
7
- flex-direction: column;
8
- gap: var(--g-spacing-3);
9
- width: 100%;
10
- }
@@ -1,51 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}header';
4
-
5
- #{$block} {
6
- display: flex;
7
- align-items: center;
8
- justify-content: space-between;
9
- gap: var(--g-spacing-2);
10
- width: 100%;
11
- box-sizing: border-box;
12
- background: var(--g-aikit-header-background);
13
-
14
- &__icon {
15
- display: flex;
16
- align-items: center;
17
- flex-shrink: 0;
18
- }
19
-
20
- &__title-container {
21
- display: flex;
22
- gap: var(--g-spacing-1);
23
- flex: 1;
24
- align-items: baseline;
25
-
26
- &_position_left {
27
- justify-content: flex-start;
28
- }
29
-
30
- &_position_center {
31
- justify-content: center;
32
- }
33
- }
34
-
35
- &__title {
36
- text-overflow: ellipsis;
37
- white-space: nowrap;
38
- overflow: hidden;
39
- flex-shrink: 0;
40
- }
41
-
42
- &__preview {
43
- display: flex;
44
- align-items: center;
45
- flex-shrink: 0;
46
- }
47
-
48
- &__action-button {
49
- flex-shrink: 0;
50
- }
51
- }
@@ -1,35 +0,0 @@
1
- @use '../../../styles/variables';
2
-
3
- $block: '.#{variables.$ns}message-list';
4
-
5
- #{$block} {
6
- overflow-y: auto;
7
- display: flex;
8
- flex-direction: column;
9
- min-height: 0;
10
- flex: 1;
11
- align-self: stretch;
12
-
13
- &__messages {
14
- display: flex;
15
- flex-direction: column;
16
- gap: var(--g-spacing-4);
17
- }
18
-
19
- &__retry-button {
20
- display: flex;
21
- align-items: center;
22
- gap: var(--g-spacing-1);
23
- }
24
-
25
- &__loader,
26
- &__error-alert {
27
- margin-top: var(--g-spacing-4);
28
- }
29
-
30
- &__load-trigger {
31
- display: flex;
32
- justify-content: center;
33
- padding: var(--g-spacing-2);
34
- }
35
- }
@@ -1,77 +0,0 @@
1
- @use '../../../styles/variables.scss';
2
-
3
- $block: '.#{variables.$ns}prompt-input';
4
-
5
- #{$block} {
6
- border-radius: var(--g-border-radius-xl);
7
- border: 1px solid var(--g-color-line-generic);
8
- background: var(--g-color-base-float);
9
- overflow: hidden;
10
-
11
- &_view_simple {
12
- display: flex;
13
- flex-direction: column;
14
- padding: var(--g-spacing-1) var(--g-spacing-1) var(--g-spacing-1) var(--g-spacing-3);
15
- }
16
-
17
- &_view_full {
18
- display: flex;
19
- padding: var(--g-spacing-2);
20
- flex-direction: column;
21
- align-items: flex-start;
22
- gap: var(--g-spacing-2);
23
- }
24
-
25
- &_view_full &__textarea {
26
- padding-top: 0;
27
- }
28
-
29
- &__content {
30
- display: flex;
31
- align-items: flex-end;
32
- gap: var(--g-spacing-2);
33
- width: 100%;
34
- }
35
-
36
- &__panel-wrapper {
37
- background: var(--g-color-base-simple-hover-solid);
38
-
39
- border-radius: var(--g-border-radius-xl);
40
- }
41
-
42
- &__panel {
43
- overflow: hidden;
44
- transition:
45
- max-height 0.3s ease-in-out,
46
- opacity 0.3s ease-in-out,
47
- margin 0.3s ease-in-out;
48
- will-change: max-height, opacity, margin;
49
-
50
- // Closed state
51
- max-height: 0;
52
- opacity: 0;
53
- margin: 0;
54
-
55
- // Open state
56
- &_open {
57
- max-height: var(
58
- --g-aikit-prompt-input-panel-max-height
59
- ); // Large enough value for most content
60
- opacity: 1;
61
- }
62
-
63
- // Animation works thanks to useDelayedUnmount hook:
64
- // - When isOpen=true, element is immediately added to DOM and animation plays
65
- // - When isOpen=false, _open class is removed, animation plays,
66
- // then element is removed from DOM after transition completes (300ms)
67
- }
68
-
69
- &__suggestions-wrapper {
70
- align-self: stretch;
71
- flex: 1;
72
- }
73
-
74
- &__suggestions {
75
- padding-bottom: var(--g-spacing-2);
76
- }
77
- }