@gitlab/ui 66.36.0 → 66.37.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.
- package/CHANGELOG.md +14 -0
- package/dist/components/base/filtered_search/filtered_search.js +3 -4
- package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +4 -1
- package/dist/components/experimental/duo/chat/mock_data.js +3 -3
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/tokens/css/tokens.css +1 -1
- package/dist/tokens/css/tokens.dark.css +1 -1
- package/dist/tokens/js/tokens.dark.js +1 -1
- package/dist/tokens/js/tokens.js +1 -1
- package/dist/tokens/scss/_tokens.dark.scss +1 -1
- package/dist/tokens/scss/_tokens.scss +1 -1
- package/package.json +1 -1
- package/src/components/base/filtered_search/filtered_search.vue +2 -4
- package/src/components/base/new_dropdowns/dropdown.scss +1 -1
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.spec.js +5 -0
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue +4 -1
- package/src/components/experimental/duo/chat/mock_data.js +3 -3
package/dist/tokens/js/tokens.js
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import isEqual from 'lodash/isEqual';
|
|
3
3
|
import cloneDeep from 'lodash/cloneDeep';
|
|
4
|
-
import
|
|
5
|
-
import Vue from 'vue';
|
|
4
|
+
import { PortalTarget } from 'portal-vue';
|
|
6
5
|
import { GlTooltipDirective } from '../../../directives/tooltip';
|
|
7
6
|
import GlIcon from '../icon/icon.vue';
|
|
8
7
|
import GlSearchBoxByClick from '../search_box_by_click/search_box_by_click.vue';
|
|
@@ -18,8 +17,6 @@ import {
|
|
|
18
17
|
termTokenDefinition,
|
|
19
18
|
} from './filtered_search_utils';
|
|
20
19
|
|
|
21
|
-
Vue.use(PortalVue);
|
|
22
|
-
|
|
23
20
|
let portalUuid = 0;
|
|
24
21
|
|
|
25
22
|
function initialState() {
|
|
@@ -31,6 +28,7 @@ export default {
|
|
|
31
28
|
components: {
|
|
32
29
|
GlSearchBoxByClick,
|
|
33
30
|
GlIcon,
|
|
31
|
+
PortalTarget,
|
|
34
32
|
},
|
|
35
33
|
directives: { GlTooltip: GlTooltipDirective },
|
|
36
34
|
provide() {
|
package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.spec.js
CHANGED
|
@@ -15,6 +15,7 @@ describe('DuoChatMessage', () => {
|
|
|
15
15
|
const findContent = () => wrapper.findComponent({ ref: 'content' });
|
|
16
16
|
const findDocumentSources = () => wrapper.findComponent(DocumentationSources);
|
|
17
17
|
const findUserFeedback = () => wrapper.findComponent(GlDuoUserFeedback);
|
|
18
|
+
const findCopyCodeButton = () => wrapper.find('copy-code');
|
|
18
19
|
const mockMarkdownContent = 'foo **bar**';
|
|
19
20
|
|
|
20
21
|
let renderMarkdown;
|
|
@@ -106,6 +107,10 @@ describe('DuoChatMessage', () => {
|
|
|
106
107
|
findUserFeedback().vm.$emit('feedback', 'foo');
|
|
107
108
|
expect(wrapper.emitted('track-feedback')).toEqual([['foo']]);
|
|
108
109
|
});
|
|
110
|
+
|
|
111
|
+
it('does not strip out the <copy-code/> element from HTML output', () => {
|
|
112
|
+
expect(findCopyCodeButton().exists()).toBe(true);
|
|
113
|
+
});
|
|
109
114
|
});
|
|
110
115
|
|
|
111
116
|
describe('message output', () => {
|
package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue
CHANGED
|
@@ -15,6 +15,9 @@ const concatIndicesUntilEmpty = (arr) => {
|
|
|
15
15
|
|
|
16
16
|
export default {
|
|
17
17
|
name: 'GlDuoChatMessage',
|
|
18
|
+
safeHtmlConfigExtension: {
|
|
19
|
+
ADD_TAGS: ['copy-code'],
|
|
20
|
+
},
|
|
18
21
|
components: {
|
|
19
22
|
DocumentationSources,
|
|
20
23
|
GlDuoUserFeedback,
|
|
@@ -102,7 +105,7 @@ export default {
|
|
|
102
105
|
isAssistantMessage,
|
|
103
106
|
}"
|
|
104
107
|
>
|
|
105
|
-
<div ref="content" v-safe-html="messageContent"></div>
|
|
108
|
+
<div ref="content" v-safe-html:[$options.safeHtmlConfigExtension]="messageContent"></div>
|
|
106
109
|
|
|
107
110
|
<template v-if="isAssistantMessage">
|
|
108
111
|
<documentation-sources v-if="sources" :sources="sources" />
|
|
@@ -23,9 +23,9 @@ const MOCK_SOURCES = [
|
|
|
23
23
|
export const MOCK_RESPONSE_MESSAGE = {
|
|
24
24
|
id: '123',
|
|
25
25
|
content:
|
|
26
|
-
'
|
|
26
|
+
'Here is a simple JavaScript function to sum two numbers:\n\n ```js\n function sum(a, b) {\n return a + b;\n }\n ```\n \n To use it:\n \n ```js\n const result = sum(5, 3); // result = 8\n ```\n \n This function takes two number parameters, a and b. It returns the sum of adding them together.\n',
|
|
27
27
|
contentHtml:
|
|
28
|
-
'
|
|
28
|
+
'<p data-sourcepos="1:1-1:56" dir="auto">Here is a simple JavaScript function to sum two numbers:</p>\n<div class="gl-relative markdown-code-block js-markdown-code">\n<pre data-sourcepos="3:1-7:3" data-canonical-lang="js" class="code highlight js-syntax-highlight language-javascript" lang="javascript" v-pre="true"><code><span id="LC1" class="line" lang="javascript"><span class="kd">function</span> <span class="nf">sum</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span> <span class="p">{</span></span>\n<span id="LC2" class="line" lang="javascript"> <span class="k">return</span> <span class="nx">a</span> <span class="o">+</span> <span class="nx">b</span><span class="p">;</span></span>\n<span id="LC3" class="line" lang="javascript"><span class="p">}</span></span></code></pre>\n<copy-code></copy-code>\n</div>\n<p data-sourcepos="9:1-9:10" dir="auto">To use it:</p>\n<div class="gl-relative markdown-code-block js-markdown-code">\n<pre data-sourcepos="11:1-13:3" data-canonical-lang="js" class="code highlight js-syntax-highlight language-javascript" lang="javascript" v-pre="true"><code><span id="LC1" class="line" lang="javascript"><span class="kd">const</span> <span class="nx">result</span> <span class="o">=</span> <span class="nf">sum</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">);</span> <span class="c1">// result = 8</span></span></code></pre>\n<copy-code></copy-code>\n</div>\n<p data-sourcepos="15:1-15:95" dir="auto">This function takes two number parameters, a and b. It returns the sum of adding them together.</p>',
|
|
29
29
|
role: MESSAGE_MODEL_ROLES.assistant,
|
|
30
30
|
extras: {
|
|
31
31
|
sources: MOCK_SOURCES,
|
|
@@ -99,6 +99,6 @@ export const renderMarkdown = (content) => content;
|
|
|
99
99
|
export const renderGFM = (el) => {
|
|
100
100
|
const codeBlock = el.querySelectorAll('.markdown-code-block');
|
|
101
101
|
codeBlock.forEach((block) => {
|
|
102
|
-
block?.classList.add('gl-
|
|
102
|
+
block?.classList.add('gl-markdown', 'gl-compact-markdown');
|
|
103
103
|
});
|
|
104
104
|
};
|