@headwai/chat-bubble 7.5.0 → 8.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.
package/CHANGELOG.md CHANGED
@@ -5,23 +5,28 @@ All notable changes to this project will be documented in this file.
5
5
  ## [7.5.0] - 2025-11-26
6
6
 
7
7
  ### Changed
8
+
8
9
  - Use font-size instead of rem as basis for Disclaimer Info
9
- - Increased size of Chat Bubble Icon in header
10
+ - Increased size of HeadwAI Chat Bubble Icon in header
10
11
  - Refactored styling within components to remove inline styles
11
12
 
12
13
  ## [7.4.0] - 2025-11-26
13
14
 
14
15
  ### Removed
15
- - Removed updating Chat Bubble Title with Conversation Title.
16
+
17
+ - Removed updating HeadwAI Chat Bubble Title with Conversation Title.
16
18
 
17
19
  ## [7.3.2] - 2025-11-24
20
+
18
21
  - Extract changelog entries to populate GitHub release bodies.
19
22
  - Include CHANGELOG.md in the published package files.
20
23
 
21
24
  ## [7.3.1] - 2025-11-21
25
+
22
26
  - Align Submit Button to the Text Input field
23
27
  - Added GitHub Release automation workflow.
24
28
  - Added CHANGELOG.md file.
25
29
 
26
30
  ## [7.3.0] - 2025-11-21
31
+
27
32
  - Initial changelog creation.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 headwAI GmbH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.dev.md CHANGED
@@ -1,4 +1,4 @@
1
- # Headwai Chat Bubble
1
+ # HeadwAI Chat Bubble
2
2
 
3
3
  The chat bubble is based on a Svelte integration for the [deep-chat](https://www.npmjs.com/package/deep-chat) component, providing an easy-to-use AI chat interface for your web applications.
4
4
 
@@ -37,7 +37,7 @@ cp .env.example .env
37
37
  npm run dev
38
38
  ```
39
39
 
40
- 6. Open embedded Headwai Chat Bubble in Browser
40
+ 6. Open embedded HeadwAI Chat Bubble in Browser
41
41
 
42
42
  ```bash
43
43
  http://localhost:5174/
@@ -48,7 +48,7 @@ npm run dev
48
48
 
49
49
  ## Configuration
50
50
 
51
- The Headwai Chat Bubble can be configured using environment variables or by changing the attributes of the instance.
51
+ The HeadwAI Chat Bubble can be configured using environment variables or by changing the attributes of the instance.
52
52
 
53
53
  ### Environment Variables
54
54
 
@@ -60,7 +60,7 @@ Create a `.env` by copying `.env.example` file in your project root with the fol
60
60
  <script>
61
61
  // Runtime configuration override
62
62
  window.HEADWAI_CHAT_BUBBLE_CONFIG = {
63
- apiUrl: 'https://company.localchat.at',
63
+ apiUrl: 'https://company.headwai-one.at',
64
64
  assistantId: 'customer-support-assistant-id',
65
65
  };
66
66
  </script>
@@ -71,7 +71,7 @@ Create a `.env` by copying `.env.example` file in your project root with the fol
71
71
  ```html
72
72
  <div
73
73
  data-chat-bubble
74
- data-chat-bubble-api-url="https://company.localchat.at"
74
+ data-chat-bubble-api-url="https://company.headwai-one.at"
75
75
  data-chat-bubble-user-message-background-color="#ff9500"
76
76
  data-chat-bubble-ai-message-background-color="#00c851"
77
77
  data-chat-bubble-user-message-text-color="#ffffff"
@@ -80,7 +80,7 @@ Create a `.env` by copying `.env.example` file in your project root with the fol
80
80
  ></div>
81
81
  ```
82
82
 
83
- ## Including Chat Bubble in Customer Websites
83
+ ## Including HeadwAI Chat Bubble in Customer Websites
84
84
 
85
85
  For simple integration instructions, see [README.md](README.md) which provides a streamlined guide for customers.
86
86
 
@@ -101,7 +101,7 @@ This project builds a standalone widget that can be integrated into any website.
101
101
 
102
102
  ```bash
103
103
  # Production .env file
104
- VITE_CHAT_BUBBLE_API_URL=https://company.localchat.at
104
+ VITE_CHAT_BUBBLE_API_URL=https://company.headwai-one.at
105
105
  VITE_CHAT_BUBBLE_ASSISTANT_ID=customer-support-assistant-id
106
106
  ```
107
107
 
@@ -184,7 +184,7 @@ Once published to NPM, your package is automatically available on jsDelivr:
184
184
 
185
185
  ### APIs Called
186
186
 
187
- The chat bubble makes requests to the following API endpoints:
187
+ The HeadwAI Chat Bubble makes requests to the following API endpoints:
188
188
 
189
189
  #### 1. Chat Creation API
190
190
 
@@ -848,7 +848,7 @@ Origin: http://localhost:5174
848
848
 
849
849
  ### Configuration Attributes
850
850
 
851
- The chat bubble can be configured using environment variables, data attributes, or runtime configuration. All attributes have fallback defaults.
851
+ The HeadwAI Chat Bubble can be configured using environment variables, data attributes, or runtime configuration. All attributes have fallback defaults.
852
852
 
853
853
  #### Core API Configuration
854
854
 
@@ -887,7 +887,7 @@ The chat bubble can be configured using environment variables, data attributes,
887
887
 
888
888
  | Attribute | Environment Variable | Data Attribute | Purpose | Default |
889
889
  | ------------- | ------------------------------- | ------------------------------- | -------------------------- | --------------------- |
890
- | `chatTitle` | `VITE_CHAT_BUBBLE_CHAT_TITLE` | `data-chat-bubble-chat-title` | Title shown in chat header | `Headwai Chat Bubble` |
890
+ | `chatTitle` | `VITE_CHAT_BUBBLE_CHAT_TITLE` | `data-chat-bubble-chat-title` | Title shown in chat header | `HeadwAI Chat Bubble` |
891
891
  | `faviconPath` | `VITE_CHAT_BUBBLE_FAVICON_PATH` | `data-chat-bubble-favicon-path` | Path to chat icon/logo | `./icons/favicon.svg` |
892
892
 
893
893
  ### API Request Flow and Data Format
package/README.md CHANGED
@@ -1,19 +1,22 @@
1
- # Headwai Chat Bubble
1
+ # HeadwAI Chat Bubble
2
2
 
3
3
  ## Features
4
4
 
5
- - 🚀 Easy integration
6
- - 💬 Connect to any LocalChat Assistant
7
- - 📋 Review conversations in LocalChat
5
+ - 🚀 Easy integration into any Website
6
+ - 💬 Connect to any [HeadwAI ONE](https://www.headwai.org/headwai-one) Assistant or [Open WebUI](https://openwebui.com) Model
7
+ - 📋 Review conversations in [HeadwAI ONE](https://www.headwai.org/headwai-one) or [Open WebUI](https://openwebui.com) instance
8
+ - 👍 Give Feedback on messages
9
+ - 📥 Download Conversations in HeadwAI Chat Bubble
10
+ - ✅ Terms of Use Check
11
+ - 🎨 Fully brandable
8
12
  - 📱 Responsive design
9
13
  - 🎨 Customizable UI components
10
- - 🔄 Real-time messaging with WebSocket support
11
14
  - 🌍 Internationalization (i18n) support - Auto-detects browser language
12
15
  - 🇬🇧🇩🇪 Multi-language support (English, German)
13
16
 
14
17
  ### Easy Website Integration
15
18
 
16
- Add the Headwai Chat Bubble to the respective .html file.
19
+ Add the HeadwAI Chat Bubble to the respective .html file.
17
20
 
18
21
  ```html
19
22
  <!DOCTYPE html>
@@ -24,13 +27,14 @@ Add the Headwai Chat Bubble to the respective .html file.
24
27
  <script>
25
28
  // Runtime configuration override
26
29
  window.HEADWAI_CHAT_BUBBLE_CONFIG = {
27
- apiUrl: 'https://company.localchat.at', // required
30
+ apiUrl: 'https://company.headwai-one.at', // required
31
+ apiKey: 'your-api-key-here', // conditionally required: required for Open WebUI instances, optional for HeadwAI ONE
28
32
  assistantId: 'customer-support-assistant-id', // required
29
33
  maxMessages: 0, // optional - 0 means unlimited
30
34
  placeholderText: 'Ask your question here!', // optional - default: 'Enter your questions here'
31
35
  faviconPath: 'https://cdn.company.at/icons/favicon.svg', // optional - default: '/icons/favicon.svg'
32
36
  initialMessage: 'Hey! My name is Supporty, how can I help you?', // optional - default: 'Hey, how can I help you?'
33
- chatTitle: 'Customer Support', // optional - default: 'Headwai Chat Bubble'
37
+ chatTitle: 'Customer Support', // optional - default: 'HeadwAI Chat Bubble'
34
38
  userMessageBackgroundColor: '#007bff', // optional - default: '#007bff'
35
39
  aiMessageBackgroundColor: '#f1f3f4', // optional - default: '#f1f3f4'
36
40
  userMessageTextColor: '#000000', // optional - default: '#000000'
@@ -49,7 +53,7 @@ Add the Headwai Chat Bubble to the respective .html file.
49
53
  <body>
50
54
  <!-- Your existing content -->
51
55
 
52
- <!-- Chat Bubble Integration - Auto-initializes! -->
56
+ <!-- HeadwAI Chat Bubble Integration - Auto-initializes! -->
53
57
  <div id="chat-bubble-container"></div>
54
58
 
55
59
  <!-- Include from jsDelivr CDN -->
@@ -62,7 +66,7 @@ Add the Headwai Chat Bubble to the respective .html file.
62
66
  </html>
63
67
  ```
64
68
 
65
- Set the configuration of the Headwai Chat Bubble in the `<script>` tag of the `<head>`.
69
+ Set the configuration of the HeadwAI Chat Bubble in the `<script>` tag of the `<head>`.
66
70
  Get the desired version of the JavaScript and CSS in your `<body>`.
67
71
 
68
72
  ```html
@@ -81,17 +85,18 @@ Get the desired version of the JavaScript and CSS in your `<body>`.
81
85
  <script src="https://cdn.jsdelivr.net/npm/@headwai/chat-bubble@1.0.0/dist-widget/chat-bubble.js"></script>
82
86
  ```
83
87
 
84
- Place the Headwai Chat Bubble into the `<body>` tag. It will apear on the right corner of your website.
88
+ Place the HeadwAI Chat Bubble into the `<body>` tag. It will appear on the right corner of your website.
85
89
 
86
- #### Multiple Headwai Chat Bubbles
90
+ #### Multiple HeadwAI Chat Bubbles
87
91
 
88
92
  For multiple instances use data attributes of the `<div>` tag for configuration instead.
89
93
 
90
94
  ```html
91
- <!-- Chat bubble with specific configuration -->
95
+ <!-- HeadwAI Chat Bubble with specific configuration -->
92
96
  <div
93
97
  data-chat-bubble
94
- data-chat-bubble-api-url="https://company.localchat.at"
98
+ data-chat-bubble-api-url="https://company.headwai-one.at"
99
+ data-chat-bubble-api-key="your-api-key-here"
95
100
  data-chat-bubble-assistant-id="customer-support-assistant-id"
96
101
  data-chat-bubble-max-messages="0"
97
102
  data-chat-bubble-placeholder-text="Ask your question here!"
@@ -111,10 +116,11 @@ For multiple instances use data attributes of the `<div>` tag for configuration
111
116
  data-chat-bubble-info-message="For help, contact support@example.com"
112
117
  ></div>
113
118
 
114
- <!-- Another chat bubble with different config -->
119
+ <!-- Another HeadwAI Chat Bubble with different config -->
115
120
  <div
116
121
  data-chat-bubble
117
- data-chat-bubble-api-url="https://company.localchat.at"
122
+ data-chat-bubble-api-url="https://company.headwai-one.at"
123
+ data-chat-bubble-api-key="your-api-key-here"
118
124
  data-chat-bubble-assistant-id="faq-assistant-id"
119
125
  data-chat-bubble-max-messages="10"
120
126
  data-chat-bubble-placeholder-text="Ask about our FAQ..."
@@ -139,35 +145,49 @@ For multiple instances use data attributes of the `<div>` tag for configuration
139
145
 
140
146
  ## Configuration
141
147
 
142
- The Headwai Chat Bubble can be configured using either the global `window.DEEP_CHAT_CONFIG` object or data attributes on individual chat bubble elements. Below are all available configuration options:
148
+ The HeadwAI Chat Bubble can be configured using either the global `window.HEADWAI_CHAT_BUBBLE_CONFIG` object or data attributes on individual HeadwAI Chat Bubble elements. Below are all available configuration options:
143
149
 
144
150
  ### Required Configuration
145
151
 
146
152
  #### `apiUrl`
147
153
 
148
154
  **Type:** `string` | **Required:** ✅
149
- The base URL of your LocalChat API endpoint where the chat bubble will send messages. This is the same URL you access your LocalCaht instance in the Webbrowser.
155
+ The base URL of your HeadwAI ONE or Open WebUI API endpoint where the HeadwAI Chat Bubble will send messages. This is the same URL you access your HeadwAI ONE or Open WebUI instance in the web browser.
150
156
 
151
157
  ```javascript
152
- apiUrl: 'https://company.localchat.at';
158
+ apiUrl: 'https://company.headwai-one.at';
153
159
  ```
154
160
 
161
+ #### `apiKey`
162
+
163
+ **Type:** `string` | **Required:** ⚠️ (Conditional)
164
+ API key for authentication with the API. This is **required** when using the HeadwAI Chat Bubble with a plain [Open WebUI](https://github.com/open-webui/open-webui) instance. When used with a HeadwAI ONE instance an API key is not needed.
165
+
166
+ ```javascript
167
+ apiKey: 'your-api-key-here';
168
+ ```
169
+
170
+ **When to use:**
171
+
172
+ - ✅ **Required** for [Open WebUI](https://openwebui.com) instances
173
+ - ⚠️ **Not Required** for [HeadwAI ONE](https://www.headwai.org/headwai-one) instances.
174
+
155
175
  #### `assistantId`
156
176
 
157
177
  **Type:** `string` | **Required:** ✅
158
- The identifier of the AI assistant to use for generating responses. This should match an assistant configured in your LocalChat instance.
178
+ The identifier of the AI assistant to use for generating responses. This should match an assistant configured in your [HeadwAI ONE](https://www.headwai.org/headwai-one) or a model configured in your [Open WebUI](https://openwebui.com) instance.
159
179
 
160
180
  ```javascript
161
181
  assistantId: 'customer-support-assistant-id';
162
182
  ```
163
183
 
164
- 1. **Navigate to Assistant**: Login to LocalChat with the dedicated Headwai Chat Bubble user (Or any other user that is allowed to see the desired assistant) and click on the `Workspace` menu, then select `Assistants`. Search for the name of the desired assistant (Or create one). Click onto the edit-`Pen`.
184
+ 1. **Navigate to Assistant or Model**: Login to [HeadwAI ONE](https://www.headwai.org/headwai-one) or [Open WebUI](https://openwebui.com) with the dedicated HeadwAI Chat Bubble user (Or any other user that is allowed to see the desired assistant/model) and click on the `Workspace` menu, then select `Assistants` or `Models`. Search for the name of the desired assistant/model (Or create one). Click onto the edit-`Pen`.
165
185
 
166
- <img src="docs/images/model-edit.png" alt="LocalChat User Menu" width="50%" />
186
+ <img src="docs/images/model-edit.png" alt="HeadwAI ONE User Menu" width="50%" />
167
187
 
168
- 1. **Copy Assistant Id**: Now the assistant is displayed with its `name` and right underneath the `assistant-id`. Copy the `assistant-id`.
188
+ 1. **Copy Assistant Id or Model Id**: Now the assistant/model is displayed with its `name` and right underneath the `assistant-id`/`model-id`. Copy the `assistant-id`/`model-id`.
169
189
 
170
- <img src="docs/images/model-id.png" alt="LocalChat User Menu" width="50%" />
190
+ <img src="docs/images/model-id.png" alt="HeadwAI ONE User Menu" width="50%" />
171
191
 
172
192
  ### Optional Configuration
173
193
 
@@ -192,7 +212,7 @@ placeholderText: 'Ask your question here!';
192
212
  #### `faviconPath`
193
213
 
194
214
  **Type:** `string` | **Default:** `'/icons/favicon.svg'`
195
- Path or URL to the icon displayed on the chat bubble toggle button. Can be a relative path or absolute URL.
215
+ Path or URL to the icon displayed on the HeadwAI Chat Bubble toggle button. Can be a relative path or absolute URL.
196
216
 
197
217
  ```javascript
198
218
  faviconPath: 'https://cdn.company.at/icons/favicon.svg';
@@ -209,7 +229,7 @@ initialMessage: 'Hey! My name is Supporty, how can I help you?';
209
229
 
210
230
  #### `chatTitle`
211
231
 
212
- **Type:** `string` | **Default:** `'Headwai Chat Bubble'`
232
+ **Type:** `string` | **Default:** `'HeadwAI Chat Bubble'`
213
233
  The title displayed in the chat window header at the top of the chat interface. After the first AI response, this title will be automatically replaced with a generated title based on the conversation content.
214
234
 
215
235
  ```javascript
@@ -251,7 +271,7 @@ userMessageBackgroundColor: '#007bff';
251
271
  #### `aiMessageBackgroundColor`
252
272
 
253
273
  **Type:** `string` | **Default:** `'#f1f3f4'`
254
- Background color for messages sent by the Headwai Chat Bubble. Accepts any valid CSS color value.
274
+ Background color for messages sent by the HeadwAI Chat Bubble. Accepts any valid CSS color value.
255
275
 
256
276
  ```javascript
257
277
  aiMessageBackgroundColor: '#f1f3f4';
@@ -269,7 +289,7 @@ userMessageTextColor: '#ffffff';
269
289
  #### `aiMessageTextColor`
270
290
 
271
291
  **Type:** `string` | **Default:** `'#000000'`
272
- Text color for Headwai Chat Bubble messages. Accepts any valid CSS color value.
292
+ Text color for HeadwAI Chat Bubble messages. Accepts any valid CSS color value.
273
293
 
274
294
  ```javascript
275
295
  aiMessageTextColor: '#333333';
@@ -280,7 +300,7 @@ aiMessageTextColor: '#333333';
280
300
  **Type:** `string` | **Default:** `'#667eea'`
281
301
  Primary color used throughout the chat interface. This color is applied to:
282
302
 
283
- - The chat bubble icon background
303
+ - The HeadwAI Chat Bubble icon background
284
304
  - The chat header background
285
305
  - The submit button background
286
306
 
@@ -313,7 +333,7 @@ fontFamily: 'system-ui, -apple-system, sans-serif';
313
333
  rel="stylesheet"
314
334
  />
315
335
 
316
- <!-- Your chat bubble configuration -->
336
+ <!-- Your HeadwAI Chat Bubble configuration -->
317
337
  <script>
318
338
  window.HEADWAI_CHAT_BUBBLE_CONFIG = {
319
339
  // ... other config
@@ -383,9 +403,10 @@ infoMessage: 'This chat service is powered by artificial intelligence and may oc
383
403
 
384
404
  ### Data Attribute Format
385
405
 
386
- When using data attributes for multiple chat bubbles, convert camelCase property names to kebab-case with the `data-chat-bubble-` prefix:
406
+ When using data attributes for multiple HeadwAI Chat Bubbles, convert camelCase property names to kebab-case with the `data-chat-bubble-` prefix:
387
407
 
388
408
  - `apiUrl` → `data-chat-bubble-api-url`
409
+ - `apiKey` → `data-chat-bubble-api-key`
389
410
  - `chatTitle` → `data-chat-bubble-chat-title`
390
411
  - `userMessageBackgroundColor` → `data-chat-bubble-user-message-background-color`
391
412
  - `initialMessage` → `data-chat-bubble-initial-message`
@@ -409,3 +430,24 @@ When using data attributes for multiple chat bubbles, convert camelCase property
409
430
  />
410
431
  <script src="https://cdn.jsdelivr.net/npm/@headwai/chat-bubble@1.2.3/dist-widget/chat-bubble.js"></script>
411
432
  ```
433
+
434
+ ## License
435
+
436
+ This project is licensed under the MIT License – see the [LICENSE](LICENSE) file for details.
437
+ Future versions of this project may be released under a different license.
438
+
439
+ ## Third-Party Software
440
+
441
+ See [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) for license information of third-party dependencies.
442
+
443
+ # Contributing
444
+
445
+ Thank you for contributing!
446
+
447
+ By submitting a pull request, you agree to the terms of the
448
+ [Contributor License Agreement (CLA)](CLA.md).
449
+
450
+ Please ensure that:
451
+
452
+ - You have the right to submit the contribution
453
+ - Your contribution is your own work
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 headwAI GmbH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,44 @@
1
+ # Third-Party Licenses
2
+
3
+ This project includes third-party software. The following licenses and notices
4
+ apply to the respective components.
5
+
6
+ ---
7
+
8
+ ## deep-chat (v2.3.0)
9
+
10
+ Copyright (c) Ovidijus Parsiunas
11
+
12
+ Licensed under the MIT License:
13
+
14
+ ```
15
+ MIT License
16
+
17
+ Copyright (c) Ovidijus Parsiunas
18
+
19
+ Permission is hereby granted, free of charge, to any person obtaining a copy
20
+ of this software and associated documentation files (the "Software"), to deal
21
+ in the Software without restriction, including without limitation the rights
22
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23
+ copies of the Software, and to permit persons to whom the Software is
24
+ furnished to do so, subject to the following conditions:
25
+
26
+ The above copyright notice and this permission notice shall be included in all
27
+ copies or substantial portions of the Software.
28
+
29
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
34
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
35
+ SOFTWARE.
36
+ ```
37
+
38
+ ---
39
+
40
+ ## Notes
41
+
42
+ - This file lists third-party components that are directly used by this project.
43
+ - Licenses are reproduced here as required by their respective terms.
44
+ - The inclusion of a license does not imply endorsement by the respective authors.