biel-search 0.0.1

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 (136) hide show
  1. package/LICENSE +21 -0
  2. package/dist/biel-search/biel-search.css +1 -0
  3. package/dist/biel-search/biel-search.esm.js +2 -0
  4. package/dist/biel-search/biel-search.esm.js.map +1 -0
  5. package/dist/biel-search/index.esm.js +2 -0
  6. package/dist/biel-search/index.esm.js.map +1 -0
  7. package/dist/biel-search/p-1b3c90ca.js +3 -0
  8. package/dist/biel-search/p-1b3c90ca.js.map +1 -0
  9. package/dist/biel-search/p-e1255160.js +2 -0
  10. package/dist/biel-search/p-e1255160.js.map +1 -0
  11. package/dist/biel-search/p-fe900c87.entry.js +3 -0
  12. package/dist/biel-search/p-fe900c87.entry.js.map +1 -0
  13. package/dist/cjs/app-globals-3a1e7e63.js +7 -0
  14. package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
  15. package/dist/cjs/biel-bot_8.cjs.entry.js +63952 -0
  16. package/dist/cjs/biel-bot_8.cjs.entry.js.map +1 -0
  17. package/dist/cjs/biel-search.cjs.js +27 -0
  18. package/dist/cjs/biel-search.cjs.js.map +1 -0
  19. package/dist/cjs/index-05fc01fd.js +1281 -0
  20. package/dist/cjs/index-05fc01fd.js.map +1 -0
  21. package/dist/cjs/index.cjs.js +11 -0
  22. package/dist/cjs/index.cjs.js.map +1 -0
  23. package/dist/cjs/loader.cjs.js +17 -0
  24. package/dist/cjs/loader.cjs.js.map +1 -0
  25. package/dist/collection/collection-manifest.json +19 -0
  26. package/dist/collection/components/biel-bot/biel-bot.css +189 -0
  27. package/dist/collection/components/biel-bot/biel-bot.js +338 -0
  28. package/dist/collection/components/biel-bot/biel-bot.js.map +1 -0
  29. package/dist/collection/components/biel-button/biel-button.css +63 -0
  30. package/dist/collection/components/biel-button/biel-button.js +301 -0
  31. package/dist/collection/components/biel-button/biel-button.js.map +1 -0
  32. package/dist/collection/components/biel-chat/biel-chat.css +75 -0
  33. package/dist/collection/components/biel-chat/biel-chat.js +119 -0
  34. package/dist/collection/components/biel-chat/biel-chat.js.map +1 -0
  35. package/dist/collection/components/biel-header/biel-header.css +49 -0
  36. package/dist/collection/components/biel-header/biel-header.js +165 -0
  37. package/dist/collection/components/biel-header/biel-header.js.map +1 -0
  38. package/dist/collection/components/biel-input/biel-input.css +55 -0
  39. package/dist/collection/components/biel-input/biel-input.js +164 -0
  40. package/dist/collection/components/biel-input/biel-input.js.map +1 -0
  41. package/dist/collection/components/biel-message/biel-message.css +38 -0
  42. package/dist/collection/components/biel-message/biel-message.js +98 -0
  43. package/dist/collection/components/biel-message/biel-message.js.map +1 -0
  44. package/dist/collection/components/biel-table/biel-table.css +37 -0
  45. package/dist/collection/components/biel-table/biel-table.js +43 -0
  46. package/dist/collection/components/biel-table/biel-table.js.map +1 -0
  47. package/dist/collection/components/code-snippet/code-snippet.css +162 -0
  48. package/dist/collection/components/code-snippet/code-snippet.js +101 -0
  49. package/dist/collection/components/code-snippet/code-snippet.js.map +1 -0
  50. package/dist/collection/index.js +11 -0
  51. package/dist/collection/index.js.map +1 -0
  52. package/dist/collection/services/biel-service.js +33 -0
  53. package/dist/collection/services/biel-service.js.map +1 -0
  54. package/dist/collection/services/biel-websocket-service.js +64 -0
  55. package/dist/collection/services/biel-websocket-service.js.map +1 -0
  56. package/dist/collection/utils/utils.js +4 -0
  57. package/dist/collection/utils/utils.js.map +1 -0
  58. package/dist/components/biel-bot.d.ts +11 -0
  59. package/dist/components/biel-bot.js +8 -0
  60. package/dist/components/biel-bot.js.map +1 -0
  61. package/dist/components/biel-button.d.ts +11 -0
  62. package/dist/components/biel-button.js +152 -0
  63. package/dist/components/biel-button.js.map +1 -0
  64. package/dist/components/biel-chat.d.ts +11 -0
  65. package/dist/components/biel-chat.js +8 -0
  66. package/dist/components/biel-chat.js.map +1 -0
  67. package/dist/components/biel-header.d.ts +11 -0
  68. package/dist/components/biel-header.js +8 -0
  69. package/dist/components/biel-header.js.map +1 -0
  70. package/dist/components/biel-input.d.ts +11 -0
  71. package/dist/components/biel-input.js +8 -0
  72. package/dist/components/biel-input.js.map +1 -0
  73. package/dist/components/biel-message.d.ts +11 -0
  74. package/dist/components/biel-message.js +8 -0
  75. package/dist/components/biel-message.js.map +1 -0
  76. package/dist/components/biel-table.d.ts +11 -0
  77. package/dist/components/biel-table.js +8 -0
  78. package/dist/components/biel-table.js.map +1 -0
  79. package/dist/components/code-snippet.d.ts +11 -0
  80. package/dist/components/code-snippet.js +8 -0
  81. package/dist/components/code-snippet.js.map +1 -0
  82. package/dist/components/index.d.ts +33 -0
  83. package/dist/components/index.js +9 -0
  84. package/dist/components/index.js.map +1 -0
  85. package/dist/components/p-09743aa7.js +88 -0
  86. package/dist/components/p-09743aa7.js.map +1 -0
  87. package/dist/components/p-5a2466bd.js +59456 -0
  88. package/dist/components/p-5a2466bd.js.map +1 -0
  89. package/dist/components/p-7b8b1ac3.js +1098 -0
  90. package/dist/components/p-7b8b1ac3.js.map +1 -0
  91. package/dist/components/p-8e08748d.js +4158 -0
  92. package/dist/components/p-8e08748d.js.map +1 -0
  93. package/dist/components/p-b920c67f.js +239 -0
  94. package/dist/components/p-b920c67f.js.map +1 -0
  95. package/dist/components/p-c94c3bd6.js +59 -0
  96. package/dist/components/p-c94c3bd6.js.map +1 -0
  97. package/dist/components/p-f4016e6d.js +37 -0
  98. package/dist/components/p-f4016e6d.js.map +1 -0
  99. package/dist/components/p-fe8bcdeb.js +86 -0
  100. package/dist/components/p-fe8bcdeb.js.map +1 -0
  101. package/dist/esm/app-globals-0f993ce5.js +5 -0
  102. package/dist/esm/app-globals-0f993ce5.js.map +1 -0
  103. package/dist/esm/biel-bot_8.entry.js +63941 -0
  104. package/dist/esm/biel-bot_8.entry.js.map +1 -0
  105. package/dist/esm/biel-search.js +22 -0
  106. package/dist/esm/biel-search.js.map +1 -0
  107. package/dist/esm/index-6ad604ca.js +1252 -0
  108. package/dist/esm/index-6ad604ca.js.map +1 -0
  109. package/dist/esm/index.js +7 -0
  110. package/dist/esm/index.js.map +1 -0
  111. package/dist/esm/loader.js +13 -0
  112. package/dist/esm/loader.js.map +1 -0
  113. package/dist/index.cjs.js +1 -0
  114. package/dist/index.js +1 -0
  115. package/dist/types/components/biel-bot/biel-bot.d.ts +35 -0
  116. package/dist/types/components/biel-button/biel-button.d.ts +23 -0
  117. package/dist/types/components/biel-chat/biel-chat.d.ts +15 -0
  118. package/dist/types/components/biel-header/biel-header.d.ts +15 -0
  119. package/dist/types/components/biel-input/biel-input.d.ts +17 -0
  120. package/dist/types/components/biel-message/biel-message.d.ts +10 -0
  121. package/dist/types/components/biel-table/biel-table.d.ts +4 -0
  122. package/dist/types/components/code-snippet/code-snippet.d.ts +10 -0
  123. package/dist/types/components.d.ts +248 -0
  124. package/dist/types/index.d.ts +11 -0
  125. package/dist/types/services/biel-service.d.ts +11 -0
  126. package/dist/types/services/biel-websocket-service.d.ts +17 -0
  127. package/dist/types/stencil-public-runtime.d.ts +1674 -0
  128. package/dist/types/utils/utils.d.ts +1 -0
  129. package/loader/cdn.js +1 -0
  130. package/loader/index.cjs.js +1 -0
  131. package/loader/index.d.ts +24 -0
  132. package/loader/index.es2017.js +1 -0
  133. package/loader/index.js +2 -0
  134. package/loader/package.json +11 -0
  135. package/package.json +55 -0
  136. package/readme.md +22 -0
@@ -0,0 +1,165 @@
1
+ import { h } from "@stencil/core";
2
+ export class BielHeader {
3
+ constructor() {
4
+ this.headerTitle = undefined;
5
+ this.project = undefined;
6
+ this.hideExpandButton = undefined;
7
+ this.showPoweredBy = true;
8
+ this.fullscreen = undefined;
9
+ this.isFullscreen = undefined;
10
+ }
11
+ componentWillLoad() {
12
+ this.isFullscreen = this.fullscreen;
13
+ }
14
+ handleCloseClick() {
15
+ this.closeClicked.emit();
16
+ }
17
+ handleFullscreenClick() {
18
+ this.isFullscreen = !this.isFullscreen;
19
+ this.fullscreenClicked.emit();
20
+ }
21
+ render() {
22
+ return (h("header", { key: 'fc462fd7a8aa72181e535f4569342a423e481df4', class: "biel-header" }, h("div", { key: 'bf12e4fa2b9f99b647fbcbe6441a53b3cee569e3', class: "biel-header__icons" }, !this.hideExpandButton && (h("button", { key: 'b44aee795fb5efbd169a01d225d5b61a6a8479c6', class: "biel-header__icon", onClick: () => this.handleFullscreenClick() }, this.isFullscreen ? (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather feather-minimize-2" }, h("polyline", { points: "4 14 10 14 10 20" }), h("polyline", { points: "20 10 14 10 14 4" }), h("line", { x1: "14", y1: "10", x2: "21", y2: "3" }), h("line", { x1: "3", y1: "21", x2: "10", y2: "14" }))) : (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather feather-maximize-2" }, h("polyline", { points: "15 3 21 3 21 9" }), h("polyline", { points: "9 21 3 21 3 15" }), h("line", { x1: "21", y1: "3", x2: "14", y2: "10" }), h("line", { x1: "3", y1: "21", x2: "10", y2: "14" }))))), h("button", { key: 'd28e4abcc8f59fb6aa68e3cd9e969dff0657d2c7', class: "biel-header__icon", onClick: () => this.handleCloseClick() }, h("svg", { key: '4be80a2be30cff0a3471cb30e7be8fba533299e2', xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather feather-x" }, h("line", { key: '8a772eb8e271d28ecde92fb28e72493eaad40a72', x1: "18", y1: "6", x2: "6", y2: "18" }), h("line", { key: 'df432a2d7722fe4b9d472bad197a3bf6bf76e529', x1: "6", y1: "6", x2: "18", y2: "18" })))), h("div", { key: '66d17239178ca6f6eb015e0db2b4d46101736e94', class: "biel-header__title-container" }, h("div", { key: '051e8fff6205f423a568e6ea10f800f069494ead', class: "biel-header__title" }, this.headerTitle), h("div", { key: '5a701624cf8c81e3747ecd577d00a3d927013311', class: "biel-header__powered-by" }, this.showPoweredBy && (h("span", { key: '5e52419e22f00f8d787414ec16aa2f0fa44388ab' }, "Powered by ", h("a", { key: '5af1a69e17666c3b8f3cfbba11b92dc9118d2fba', target: "_blank", href: "https://biel.ai" }, "biel.ai")))))));
23
+ }
24
+ static get is() { return "biel-header"; }
25
+ static get encapsulation() { return "shadow"; }
26
+ static get originalStyleUrls() {
27
+ return {
28
+ "$": ["biel-header.css"]
29
+ };
30
+ }
31
+ static get styleUrls() {
32
+ return {
33
+ "$": ["biel-header.css"]
34
+ };
35
+ }
36
+ static get properties() {
37
+ return {
38
+ "headerTitle": {
39
+ "type": "string",
40
+ "mutable": false,
41
+ "complexType": {
42
+ "original": "string",
43
+ "resolved": "string",
44
+ "references": {}
45
+ },
46
+ "required": false,
47
+ "optional": false,
48
+ "docs": {
49
+ "tags": [],
50
+ "text": ""
51
+ },
52
+ "attribute": "header-title",
53
+ "reflect": false
54
+ },
55
+ "project": {
56
+ "type": "string",
57
+ "mutable": false,
58
+ "complexType": {
59
+ "original": "string",
60
+ "resolved": "string",
61
+ "references": {}
62
+ },
63
+ "required": false,
64
+ "optional": false,
65
+ "docs": {
66
+ "tags": [],
67
+ "text": ""
68
+ },
69
+ "attribute": "project",
70
+ "reflect": false
71
+ },
72
+ "hideExpandButton": {
73
+ "type": "boolean",
74
+ "mutable": false,
75
+ "complexType": {
76
+ "original": "boolean",
77
+ "resolved": "boolean",
78
+ "references": {}
79
+ },
80
+ "required": false,
81
+ "optional": false,
82
+ "docs": {
83
+ "tags": [],
84
+ "text": ""
85
+ },
86
+ "attribute": "hide-expand-button",
87
+ "reflect": false
88
+ },
89
+ "showPoweredBy": {
90
+ "type": "boolean",
91
+ "mutable": false,
92
+ "complexType": {
93
+ "original": "boolean",
94
+ "resolved": "boolean",
95
+ "references": {}
96
+ },
97
+ "required": false,
98
+ "optional": false,
99
+ "docs": {
100
+ "tags": [],
101
+ "text": ""
102
+ },
103
+ "attribute": "show-powered-by",
104
+ "reflect": false,
105
+ "defaultValue": "true"
106
+ },
107
+ "fullscreen": {
108
+ "type": "boolean",
109
+ "mutable": false,
110
+ "complexType": {
111
+ "original": "boolean",
112
+ "resolved": "boolean",
113
+ "references": {}
114
+ },
115
+ "required": false,
116
+ "optional": false,
117
+ "docs": {
118
+ "tags": [],
119
+ "text": ""
120
+ },
121
+ "attribute": "fullscreen",
122
+ "reflect": false
123
+ }
124
+ };
125
+ }
126
+ static get states() {
127
+ return {
128
+ "isFullscreen": {}
129
+ };
130
+ }
131
+ static get events() {
132
+ return [{
133
+ "method": "closeClicked",
134
+ "name": "closeClicked",
135
+ "bubbles": true,
136
+ "cancelable": true,
137
+ "composed": true,
138
+ "docs": {
139
+ "tags": [],
140
+ "text": ""
141
+ },
142
+ "complexType": {
143
+ "original": "void",
144
+ "resolved": "void",
145
+ "references": {}
146
+ }
147
+ }, {
148
+ "method": "fullscreenClicked",
149
+ "name": "fullscreenClicked",
150
+ "bubbles": true,
151
+ "cancelable": true,
152
+ "composed": true,
153
+ "docs": {
154
+ "tags": [],
155
+ "text": ""
156
+ },
157
+ "complexType": {
158
+ "original": "void",
159
+ "resolved": "void",
160
+ "references": {}
161
+ }
162
+ }];
163
+ }
164
+ }
165
+ //# sourceMappingURL=biel-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"biel-header.js","sourceRoot":"","sources":["../../../src/components/biel-header/biel-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, h, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'biel-header',\n styleUrl: 'biel-header.css',\n shadow: true\n})\nexport class BielHeader {\n @Prop() headerTitle: string;\n @Prop() project: string;\n @Prop() hideExpandButton: boolean;\n @Prop() showPoweredBy: boolean = true;\n @Prop() fullscreen: boolean;\n\n @State() isFullscreen: boolean;\n\n @Event() closeClicked: EventEmitter<void>;\n @Event() fullscreenClicked: EventEmitter<void>;\n\n componentWillLoad() {\n this.isFullscreen = this.fullscreen;\n }\n\n handleCloseClick() {\n this.closeClicked.emit();\n }\n\n handleFullscreenClick() {\n this.isFullscreen = !this.isFullscreen;\n this.fullscreenClicked.emit();\n }\n\n render() {\n return (\n <header class=\"biel-header\">\n <div class=\"biel-header__icons\">\n {!this.hideExpandButton && (\n <button class=\"biel-header__icon\" onClick={() => this.handleFullscreenClick()}>\n {this.isFullscreen ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-minimize-2\"><polyline points=\"4 14 10 14 10 20\"></polyline><polyline points=\"20 10 14 10 14 4\"></polyline><line x1=\"14\" y1=\"10\" x2=\"21\" y2=\"3\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line></svg>\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-maximize-2\"><polyline points=\"15 3 21 3 21 9\"></polyline><polyline points=\"9 21 3 21 3 15\"></polyline><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line></svg>\n )}\n </button>\n )}\n <button class=\"biel-header__icon\" onClick={() => this.handleCloseClick()}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-x\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg>\n </button>\n </div>\n <div class=\"biel-header__title-container\">\n <div class=\"biel-header__title\">{this.headerTitle}</div>\n <div class=\"biel-header__powered-by\">\n {this.showPoweredBy && (\n <span>Powered by <a target=\"_blank\" href=\"https://biel.ai\">biel.ai</a></span>\n )}\n </div>\n </div>\n </header>\n );\n }\n}"]}
@@ -0,0 +1,55 @@
1
+ .biel-input-container {
2
+ display: flex;
3
+ align-items: center;
4
+ padding: 10px;
5
+ }
6
+
7
+ .biel-input__textarea {
8
+ width: 100%;
9
+ max-height: var(--biel-input-textarea-max-height);
10
+ min-height: var(--biel-input-textarea-min-height);
11
+ height: var(--biel-input-textarea-min-height);
12
+ padding: 10px;
13
+ background-color: var(--biel-bot-content-bg-color);
14
+ color: var(--biel-input-color);
15
+ border: 1px solid var(--biel-input-border-color);
16
+ border-radius: var(--biel-input-border-radius);
17
+ margin-right: 10px;
18
+ font-family: var(--biel-input-font-family);
19
+ font-size: 14px;
20
+ resize: none;
21
+ overflow-y: hidden;
22
+ }
23
+
24
+ .biel-input__textarea::-webkit-scrollbar {
25
+ width: 8px;
26
+ }
27
+
28
+ .biel-input__textarea::-webkit-scrollbar-thumb {
29
+ background-color: var(--biel-chat-scrollbar-color);
30
+ border-radius: 10px;
31
+ border: 3px solid transparent;
32
+ }
33
+
34
+ .biel-input__textarea::-webkit-scrollbar-thumb:hover {
35
+ background-color: var(--biel-chat-scrollbar-hover-color);
36
+ cursor: auto;
37
+ }
38
+
39
+ .biel-input__button {
40
+ padding: 12px 16px;
41
+ background-color: var(--biel-input-button-bg-color);
42
+ color: var(--biel-input-button-color);
43
+ border: 0;
44
+ border-radius: var(--biel-input-border-radius);
45
+ cursor: pointer;
46
+ }
47
+
48
+ .biel-input__button:hover {
49
+ background-color: var(--biel-input-button-hover-bg-color);
50
+ }
51
+
52
+ .biel-input__button:disabled {
53
+ background-color: var(--biel-input-button-hover-bg-color);
54
+ cursor: not-allowed;
55
+ }
@@ -0,0 +1,164 @@
1
+ import { h } from "@stencil/core";
2
+ export class BielInput {
3
+ constructor() {
4
+ this.userInput = '';
5
+ this.placeholderText = 'Type your message';
6
+ this.sendButtonText = 'Send';
7
+ this.isDisabled = false;
8
+ }
9
+ handleInputChange(event) {
10
+ this.userInput = event.target.value;
11
+ this.adjustTextareaHeight();
12
+ }
13
+ handleSendMessage() {
14
+ if (this.userInput.trim()) {
15
+ this.messageSent.emit(this.userInput);
16
+ this.userInput = '';
17
+ this.resetTextareaHeight();
18
+ }
19
+ }
20
+ handleKeyPress(event) {
21
+ if (event.key === 'Enter' && !event.shiftKey && !this.isDisabled) {
22
+ event.preventDefault();
23
+ this.handleSendMessage();
24
+ }
25
+ }
26
+ getCSSVariable(element, variableName) {
27
+ return getComputedStyle(element).getPropertyValue(variableName);
28
+ }
29
+ adjustTextareaHeight() {
30
+ const textarea = this.el.shadowRoot.querySelector('textarea');
31
+ const minHeight = this.getCSSVariable(textarea, 'min-height');
32
+ const maxHeight = parseInt(this.getCSSVariable(textarea, 'max-height'));
33
+ const padding = parseInt(this.getCSSVariable(textarea, 'padding')) * 2;
34
+ const previousHeight = parseInt(this.getCSSVariable(textarea, 'height'));
35
+ textarea.style.height = minHeight;
36
+ const newHeight = Math.min(textarea.scrollHeight - padding, maxHeight);
37
+ textarea.style.height = `${newHeight}px`;
38
+ textarea.style.overflowY = newHeight >= maxHeight ? 'visible' : 'hidden';
39
+ if (newHeight !== previousHeight) {
40
+ this.textareaHeightChanged.emit(newHeight - previousHeight);
41
+ }
42
+ }
43
+ resetTextareaHeight() {
44
+ const textarea = this.el.shadowRoot.querySelector('textarea');
45
+ const minHeight = parseInt(this.getCSSVariable(textarea, 'min-height'));
46
+ const previousHeight = parseInt(this.getCSSVariable(textarea, 'height'));
47
+ textarea.style.height = `${minHeight}px`;
48
+ textarea.style.overflowY = 'hidden';
49
+ this.textareaHeightChanged.emit(minHeight - previousHeight);
50
+ }
51
+ render() {
52
+ return (h("div", { key: 'f4a75743dcd62fbfa9e9b290055c7d6c5fc9349d', class: "biel-input-container" }, h("textarea", { key: '04b66c0ae0c0b3a0d6534578b40875bfd1a23dc2', class: "biel-input__textarea", placeholder: this.placeholderText, value: this.userInput, onInput: (event) => this.handleInputChange(event), onKeyPress: (event) => this.handleKeyPress(event) }), h("button", { key: '67fecb28b09cf05908704a31c1bdc5fbf68f1c90', class: "biel-input__button", onClick: () => this.handleSendMessage(), disabled: this.isDisabled }, this.sendButtonText)));
53
+ }
54
+ static get is() { return "biel-input"; }
55
+ static get encapsulation() { return "shadow"; }
56
+ static get originalStyleUrls() {
57
+ return {
58
+ "$": ["biel-input.css"]
59
+ };
60
+ }
61
+ static get styleUrls() {
62
+ return {
63
+ "$": ["biel-input.css"]
64
+ };
65
+ }
66
+ static get properties() {
67
+ return {
68
+ "placeholderText": {
69
+ "type": "string",
70
+ "mutable": false,
71
+ "complexType": {
72
+ "original": "string",
73
+ "resolved": "string",
74
+ "references": {}
75
+ },
76
+ "required": false,
77
+ "optional": false,
78
+ "docs": {
79
+ "tags": [],
80
+ "text": ""
81
+ },
82
+ "attribute": "placeholder-text",
83
+ "reflect": false,
84
+ "defaultValue": "'Type your message'"
85
+ },
86
+ "sendButtonText": {
87
+ "type": "string",
88
+ "mutable": false,
89
+ "complexType": {
90
+ "original": "string",
91
+ "resolved": "string",
92
+ "references": {}
93
+ },
94
+ "required": false,
95
+ "optional": false,
96
+ "docs": {
97
+ "tags": [],
98
+ "text": ""
99
+ },
100
+ "attribute": "send-button-text",
101
+ "reflect": false,
102
+ "defaultValue": "'Send'"
103
+ },
104
+ "isDisabled": {
105
+ "type": "boolean",
106
+ "mutable": false,
107
+ "complexType": {
108
+ "original": "boolean",
109
+ "resolved": "boolean",
110
+ "references": {}
111
+ },
112
+ "required": false,
113
+ "optional": false,
114
+ "docs": {
115
+ "tags": [],
116
+ "text": ""
117
+ },
118
+ "attribute": "is-disabled",
119
+ "reflect": false,
120
+ "defaultValue": "false"
121
+ }
122
+ };
123
+ }
124
+ static get states() {
125
+ return {
126
+ "userInput": {}
127
+ };
128
+ }
129
+ static get events() {
130
+ return [{
131
+ "method": "messageSent",
132
+ "name": "messageSent",
133
+ "bubbles": true,
134
+ "cancelable": true,
135
+ "composed": true,
136
+ "docs": {
137
+ "tags": [],
138
+ "text": ""
139
+ },
140
+ "complexType": {
141
+ "original": "string",
142
+ "resolved": "string",
143
+ "references": {}
144
+ }
145
+ }, {
146
+ "method": "textareaHeightChanged",
147
+ "name": "textareaHeightChanged",
148
+ "bubbles": true,
149
+ "cancelable": true,
150
+ "composed": true,
151
+ "docs": {
152
+ "tags": [],
153
+ "text": ""
154
+ },
155
+ "complexType": {
156
+ "original": "number",
157
+ "resolved": "number",
158
+ "references": {}
159
+ }
160
+ }];
161
+ }
162
+ static get elementRef() { return "el"; }
163
+ }
164
+ //# sourceMappingURL=biel-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"biel-input.js","sourceRoot":"","sources":["../../../src/components/biel-input/biel-input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, State, Event, EventEmitter, Prop, Element } from '@stencil/core';\n\n@Component({\n tag: 'biel-input',\n styleUrl: 'biel-input.css',\n shadow: true\n})\nexport class BielInput {\n\n @State() userInput: string = '';\n @Event() messageSent: EventEmitter<string>;\n @Event() textareaHeightChanged: EventEmitter<number>;\n\n @Prop() placeholderText: string = 'Type your message';\n @Prop() sendButtonText: string = 'Send';\n @Prop() isDisabled: boolean = false;\n\n @Element() el: HTMLElement;\n\n handleInputChange(event) {\n this.userInput = event.target.value;\n this.adjustTextareaHeight();\n }\n\n handleSendMessage() {\n if (this.userInput.trim()) {\n this.messageSent.emit(this.userInput);\n this.userInput = '';\n this.resetTextareaHeight();\n }\n }\n\n handleKeyPress(event) {\n if (event.key === 'Enter' && !event.shiftKey && !this.isDisabled) {\n event.preventDefault();\n this.handleSendMessage();\n }\n }\n\n getCSSVariable(element: HTMLElement, variableName: string): string {\n return getComputedStyle(element).getPropertyValue(variableName);\n }\n\n adjustTextareaHeight() {\n const textarea = this.el.shadowRoot.querySelector('textarea');\n const minHeight = this.getCSSVariable(textarea, 'min-height');\n const maxHeight = parseInt(this.getCSSVariable(textarea, 'max-height'));\n const padding = parseInt(this.getCSSVariable(textarea, 'padding')) * 2;\n\n const previousHeight = parseInt(this.getCSSVariable(textarea, 'height'));\n textarea.style.height = minHeight;\n const newHeight = Math.min(textarea.scrollHeight - padding, maxHeight);\n textarea.style.height = `${newHeight}px`;\n textarea.style.overflowY = newHeight >= maxHeight ? 'visible' : 'hidden';\n\n if (newHeight !== previousHeight) {\n this.textareaHeightChanged.emit(newHeight - previousHeight);\n }\n }\n\n resetTextareaHeight() {\n const textarea = this.el.shadowRoot.querySelector('textarea');\n const minHeight = parseInt(this.getCSSVariable(textarea, 'min-height'));\n const previousHeight = parseInt(this.getCSSVariable(textarea, 'height'));\n textarea.style.height = `${minHeight}px`;\n textarea.style.overflowY = 'hidden';\n this.textareaHeightChanged.emit(minHeight - previousHeight);\n }\n\n render() {\n return (\n <div class=\"biel-input-container\">\n <textarea\n class=\"biel-input__textarea\"\n placeholder={this.placeholderText}\n value={this.userInput}\n onInput={(event) => this.handleInputChange(event)}\n onKeyPress={(event) => this.handleKeyPress(event)}\n ></textarea>\n <button\n class=\"biel-input__button\"\n onClick={() => this.handleSendMessage()}\n disabled={this.isDisabled}\n >\n {this.sendButtonText}\n </button>\n </div>\n );\n }\n}"]}
@@ -0,0 +1,38 @@
1
+ .biel-message {
2
+ display: flex;
3
+ align-items: flex-start;
4
+ max-width: calc(100% - var(--biel-message-avatar-width));
5
+ width: fit-content;
6
+ padding: var(--biel-message-padding);
7
+ margin: 5px 0;
8
+ border-radius: var(--biel-message-border-radius);
9
+ }
10
+
11
+ .biel-message--user {
12
+ color: var(--biel-message-user-text-color);
13
+ background-color: var(--biel-message-user-background-color);
14
+ }
15
+
16
+ .biel-message--ai {
17
+ color: var(--biel-message-biel-text-color);
18
+ background-color: var(--biel-message-biel-background-color);
19
+ }
20
+
21
+ .biel-message__content * {
22
+ margin: 0;
23
+ }
24
+
25
+ .biel-message__avatar {
26
+ width: var(--biel-message-avatar-width);
27
+ height: var(--biel-message-avatar-height);
28
+ border-radius: 50%;
29
+ margin-right: var(--biel-message-avatar-margin-right);
30
+ }
31
+
32
+ .biel-message__content {
33
+ max-width: calc(100% - var(--biel-message-avatar-width) - var(--biel-message-avatar-margin-right));
34
+ display: flex;
35
+ flex-direction: column;
36
+ word-wrap: break-word;
37
+ overflow-wrap: break-word;
38
+ }
@@ -0,0 +1,98 @@
1
+ import { h } from "@stencil/core";
2
+ import { marked } from "marked";
3
+ import DOMPurify from "dompurify";
4
+ export class BielMessage {
5
+ constructor() {
6
+ this.sender = undefined;
7
+ this.text = undefined;
8
+ this.content = [];
9
+ }
10
+ componentWillLoad() {
11
+ this.processMarkdown(this.text);
12
+ }
13
+ processMarkdown(text) {
14
+ const html = DOMPurify.sanitize(marked(text, { breaks: true }));
15
+ const tempDiv = document.createElement('div');
16
+ tempDiv.innerHTML = html;
17
+ const elements = Array.from(tempDiv.children);
18
+ const processedContent = elements.map((element) => {
19
+ if (element.tagName.toLowerCase() === 'pre' && element.querySelector('code')) {
20
+ return this.processCodeSnippet(element);
21
+ }
22
+ else if (element.tagName.toLowerCase() === 'table') {
23
+ return this.processTable(element);
24
+ }
25
+ else {
26
+ return h("div", { innerHTML: element.outerHTML });
27
+ }
28
+ });
29
+ this.content = processedContent;
30
+ }
31
+ processCodeSnippet(element) {
32
+ const codeElement = element.querySelector('code');
33
+ const code = codeElement.textContent || '';
34
+ return h("code-snippet", { code: code });
35
+ }
36
+ processTable(element) {
37
+ return h("biel-table", { tableData: element.outerHTML });
38
+ }
39
+ render() {
40
+ return (h("div", { key: 'a138a41a0fc16eedcd03a7ccb0bc1ae727c51265', class: `biel-message biel-message--${this.sender}` }, h("div", { key: '6217f8e3d006fdef85e9a195d51d87d56f1b5edc', class: "biel-message__avatar" }, this.sender === 'user' && (h("svg", { key: 'dd1fd63afc8970b7988e3ec74c08c7380d48f06e', xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "feather feather-user" }, h("path", { key: 'ba8a841b1bf00e2ba70827d400c655d789904568', d: "M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" }), h("circle", { key: '1a0731730baeb9f279781cdd57cd4945f479735f', cx: "12", cy: "7", r: "4" }))), this.sender === 'ai' && (h("svg", { key: '1d85e63bc9628efb7c674cb10c3995d0f838e252', xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "-0.5 -0.5 24 24", id: "Ai-Sparkles--Streamline-Plump.svg", height: "20", width: "20" }, h("desc", { key: 'ad3de24e63cfb4e4a51b3f7685427ca03cdb2891' }, "Ai Sparkles Streamline Icon: https://streamlinehq.com"), h("g", { key: '50d8b97c30c439ed484def4d1de0e3cf945a7849', id: "ai-sparkles--artificial-intelligence-ai-sparks-sparkles" }, h("path", { key: '05d549b519b7970993518161e4a38a5e4c3827a9', id: "Union", fill: "currentColor", "fill-rule": "evenodd", d: "M3.9802362500000004 0.9029320833333333c0.4543841666666667 -0.8308098333333334 1.6476241666666667 -0.8308069583333333 2.102017916666667 0l0.7849229166666667 1.4352191666666667c0.19789583333333333 0.36179479166666667 0.49536250000000004 0.6592614583333334 0.8571333333333333 0.8571381250000001l1.4352 0.784946875c0.8308270833333333 0.4543841666666667 0.8308270833333333 1.6476241666666667 0 2.102017916666667l-1.4352 0.7849229166666667c-0.3617708333333334 0.19789583333333333 -0.6592375 0.49536250000000004 -0.8571333333333333 0.8571333333333333l-0.7849229166666667 1.4352c-0.45439375000000004 0.8308270833333333 -1.6476385416666668 0.8308270833333333 -2.102022708333333 0l-0.7849420833333334 -1.4352c-0.19787666666666667 -0.3617708333333334 -0.49534333333333336 -0.6592375 -0.8571381250000001 -0.8571333333333333l-1.4352191666666667 -0.7849229166666667c-0.8308098333333334 -0.45439375000000004 -0.8308069583333333 -1.6476385416666668 0 -2.102022708333333l1.4352191666666667 -0.7849420833333334c0.36179479166666667 -0.19787666666666667 0.6592614583333334 -0.49534333333333336 0.8571381250000001 -0.8571429166666668l0.784946875 -1.435214375ZM12.774727083333334 5.822689583333333c0.48467708333333337 -0.8861708333333334 1.7574875 -0.8861708333333334 2.242164583333333 0l1.6161333333333332 2.9549729166666667c0.5496520833333334 1.0050041666666667 1.3759270833333335 1.8313270833333333 2.3809312499999997 2.380979166666667l2.9549729166666667 1.6160854166666667c0.8861708333333334 0.48467708333333337 0.8861708333333334 1.7574875 0 2.242164583333333l-2.9549729166666667 1.6161333333333332c-1.0050041666666667 0.5496520833333334 -1.8312791666666668 1.3759270833333335 -2.3809312499999997 2.3809312499999997l-1.6161333333333332 2.9549729166666667c-0.48467708333333337 0.8861708333333334 -1.7574875 0.8861708333333334 -2.242164583333333 0l-1.6160854166666667 -2.9549729166666667c-0.5496520833333334 -1.0050041666666667 -1.375975 -1.8312791666666668 -2.380979166666667 -2.3809312499999997l-2.9549729166666667 -1.6161333333333332c-0.8861708333333334 -0.48467708333333337 -0.8861708333333334 -1.7574875 0 -2.242164583333333l2.9549729166666667 -1.6160854166666667c1.0050041666666667 -0.5496520833333334 1.8313270833333333 -1.375975 2.380979166666667 -2.380979166666667l1.6160854166666667 -2.9549729166666667Z", "clip-rule": "evenodd", "stroke-width": "1" }))))), h("div", { key: 'c924e48e19fd2a3e3a614fb3e27631cdbc00d050', class: "biel-message__content" }, this.content.map((el) => el))));
41
+ }
42
+ static get is() { return "biel-message"; }
43
+ static get encapsulation() { return "shadow"; }
44
+ static get originalStyleUrls() {
45
+ return {
46
+ "$": ["biel-message.css"]
47
+ };
48
+ }
49
+ static get styleUrls() {
50
+ return {
51
+ "$": ["biel-message.css"]
52
+ };
53
+ }
54
+ static get properties() {
55
+ return {
56
+ "sender": {
57
+ "type": "string",
58
+ "mutable": false,
59
+ "complexType": {
60
+ "original": "'user' | 'ai'",
61
+ "resolved": "\"ai\" | \"user\"",
62
+ "references": {}
63
+ },
64
+ "required": false,
65
+ "optional": false,
66
+ "docs": {
67
+ "tags": [],
68
+ "text": ""
69
+ },
70
+ "attribute": "sender",
71
+ "reflect": false
72
+ },
73
+ "text": {
74
+ "type": "string",
75
+ "mutable": false,
76
+ "complexType": {
77
+ "original": "string",
78
+ "resolved": "string",
79
+ "references": {}
80
+ },
81
+ "required": false,
82
+ "optional": false,
83
+ "docs": {
84
+ "tags": [],
85
+ "text": ""
86
+ },
87
+ "attribute": "text",
88
+ "reflect": false
89
+ }
90
+ };
91
+ }
92
+ static get states() {
93
+ return {
94
+ "content": {}
95
+ };
96
+ }
97
+ }
98
+ //# sourceMappingURL=biel-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"biel-message.js","sourceRoot":"","sources":["../../../src/components/biel-message/biel-message.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, h } from '@stencil/core';\nimport { marked } from 'marked';\nimport DOMPurify from 'dompurify';\n\n@Component({\n tag: 'biel-message',\n styleUrl: 'biel-message.css',\n shadow: true,\n})\nexport class BielMessage {\n @Prop() sender: 'user' | 'ai';\n @Prop() text: string;\n\n @State() content: any[] = [];\n\n componentWillLoad() {\n this.processMarkdown(this.text);\n }\n\n processMarkdown(text: string) {\n const html = DOMPurify.sanitize(marked(text, { breaks: true }));\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = html;\n\n const elements = Array.from(tempDiv.children);\n const processedContent = elements.map((element) => {\n if (element.tagName.toLowerCase() === 'pre' && element.querySelector('code')) {\n return this.processCodeSnippet(element as HTMLElement);\n } else if (element.tagName.toLowerCase() === 'table') {\n return this.processTable(element as HTMLElement);\n } else {\n return <div innerHTML={element.outerHTML}></div>;\n }\n });\n this.content = processedContent;\n }\n\n processCodeSnippet(element: HTMLElement) {\n const codeElement = element.querySelector('code');\n const code = codeElement.textContent || '';\n return <code-snippet code={code}></code-snippet>;\n }\n\n processTable(element: HTMLElement) {\n return <biel-table tableData={element.outerHTML}></biel-table>;\n }\n\n render() {\n return (\n <div class={`biel-message biel-message--${this.sender}`}>\n <div class=\"biel-message__avatar\">\n {this.sender === 'user' && (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-user\"><path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path><circle cx=\"12\" cy=\"7\" r=\"4\"></circle></svg>\n )}\n {this.sender === 'ai' && (\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"-0.5 -0.5 24 24\" id=\"Ai-Sparkles--Streamline-Plump.svg\" height=\"20\" width=\"20\"><desc>Ai Sparkles Streamline Icon: https://streamlinehq.com</desc><g id=\"ai-sparkles--artificial-intelligence-ai-sparks-sparkles\"><path id=\"Union\" fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M3.9802362500000004 0.9029320833333333c0.4543841666666667 -0.8308098333333334 1.6476241666666667 -0.8308069583333333 2.102017916666667 0l0.7849229166666667 1.4352191666666667c0.19789583333333333 0.36179479166666667 0.49536250000000004 0.6592614583333334 0.8571333333333333 0.8571381250000001l1.4352 0.784946875c0.8308270833333333 0.4543841666666667 0.8308270833333333 1.6476241666666667 0 2.102017916666667l-1.4352 0.7849229166666667c-0.3617708333333334 0.19789583333333333 -0.6592375 0.49536250000000004 -0.8571333333333333 0.8571333333333333l-0.7849229166666667 1.4352c-0.45439375000000004 0.8308270833333333 -1.6476385416666668 0.8308270833333333 -2.102022708333333 0l-0.7849420833333334 -1.4352c-0.19787666666666667 -0.3617708333333334 -0.49534333333333336 -0.6592375 -0.8571381250000001 -0.8571333333333333l-1.4352191666666667 -0.7849229166666667c-0.8308098333333334 -0.45439375000000004 -0.8308069583333333 -1.6476385416666668 0 -2.102022708333333l1.4352191666666667 -0.7849420833333334c0.36179479166666667 -0.19787666666666667 0.6592614583333334 -0.49534333333333336 0.8571381250000001 -0.8571429166666668l0.784946875 -1.435214375ZM12.774727083333334 5.822689583333333c0.48467708333333337 -0.8861708333333334 1.7574875 -0.8861708333333334 2.242164583333333 0l1.6161333333333332 2.9549729166666667c0.5496520833333334 1.0050041666666667 1.3759270833333335 1.8313270833333333 2.3809312499999997 2.380979166666667l2.9549729166666667 1.6160854166666667c0.8861708333333334 0.48467708333333337 0.8861708333333334 1.7574875 0 2.242164583333333l-2.9549729166666667 1.6161333333333332c-1.0050041666666667 0.5496520833333334 -1.8312791666666668 1.3759270833333335 -2.3809312499999997 2.3809312499999997l-1.6161333333333332 2.9549729166666667c-0.48467708333333337 0.8861708333333334 -1.7574875 0.8861708333333334 -2.242164583333333 0l-1.6160854166666667 -2.9549729166666667c-0.5496520833333334 -1.0050041666666667 -1.375975 -1.8312791666666668 -2.380979166666667 -2.3809312499999997l-2.9549729166666667 -1.6161333333333332c-0.8861708333333334 -0.48467708333333337 -0.8861708333333334 -1.7574875 0 -2.242164583333333l2.9549729166666667 -1.6160854166666667c1.0050041666666667 -0.5496520833333334 1.8313270833333333 -1.375975 2.380979166666667 -2.380979166666667l1.6160854166666667 -2.9549729166666667Z\" clip-rule=\"evenodd\" stroke-width=\"1\"></path></g></svg>\n )}\n </div>\n <div class=\"biel-message__content\">\n {this.content.map((el) => el)}\n </div>\n </div>\n );\n }\n}"]}
@@ -0,0 +1,37 @@
1
+ .biel-table-container {
2
+ margin: 20px 0;
3
+ overflow-x: auto;
4
+ background-color: var(--biel-table-bg-color);
5
+ border-radius: 6px;
6
+ }
7
+
8
+ .biel-table-container table {
9
+ width: 100%;
10
+ border-collapse: collapse;
11
+ overflow: hidden;
12
+ color: var(--biel-table-content-text-color);
13
+ }
14
+
15
+ .biel-table-container th,
16
+ .biel-table-container td {
17
+ padding: 8px;
18
+ border: 1px solid #303030;
19
+ }
20
+
21
+ .biel-table-container th {
22
+ background-color: var(--biel-table-th-bg-color);
23
+ }
24
+
25
+ .biel-table-container::-webkit-scrollbar {
26
+ height: 8px;
27
+ }
28
+
29
+ .biel-table-container::-webkit-scrollbar-thumb:horizontal {
30
+ background-color: var(--biel-chat-scrollbar-color);
31
+ border-radius: 10px;
32
+ border: 3px solid transparent;
33
+ }
34
+
35
+ .biel-table-container::-webkit-scrollbar-thumb:hover {
36
+ background-color: var(--biel-chat-scrollbar-hover-color);
37
+ }
@@ -0,0 +1,43 @@
1
+ import { h } from "@stencil/core";
2
+ export class BielTable {
3
+ constructor() {
4
+ this.tableData = undefined;
5
+ }
6
+ render() {
7
+ return (h("div", { key: '15cbaba67350b4cce43f122cbce944a8662792d7', class: "biel-table-container", innerHTML: this.tableData }));
8
+ }
9
+ static get is() { return "biel-table"; }
10
+ static get encapsulation() { return "shadow"; }
11
+ static get originalStyleUrls() {
12
+ return {
13
+ "$": ["biel-table.css"]
14
+ };
15
+ }
16
+ static get styleUrls() {
17
+ return {
18
+ "$": ["biel-table.css"]
19
+ };
20
+ }
21
+ static get properties() {
22
+ return {
23
+ "tableData": {
24
+ "type": "string",
25
+ "mutable": false,
26
+ "complexType": {
27
+ "original": "string",
28
+ "resolved": "string",
29
+ "references": {}
30
+ },
31
+ "required": false,
32
+ "optional": false,
33
+ "docs": {
34
+ "tags": [],
35
+ "text": ""
36
+ },
37
+ "attribute": "table-data",
38
+ "reflect": false
39
+ }
40
+ };
41
+ }
42
+ }
43
+ //# sourceMappingURL=biel-table.js.map