@seamly/web-ui 20.7.0 → 20.8.0-alpha.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 (222) hide show
  1. package/CHANGELOG.md +212 -16
  2. package/build/dist/lib/hooks.js +1 -1
  3. package/build/dist/lib/hooks.min.js +1 -1
  4. package/build/dist/lib/index.debug.js +939 -784
  5. package/build/dist/lib/index.debug.min.js +1 -1
  6. package/build/dist/lib/index.debug.min.js.LICENSE.txt +186 -130
  7. package/build/dist/lib/index.js +24806 -19703
  8. package/build/dist/lib/index.min.js +1 -1
  9. package/build/dist/lib/index.min.js.LICENSE.txt +38 -4
  10. package/build/dist/lib/standalone.js +32726 -26838
  11. package/build/dist/lib/standalone.min.js +1 -1
  12. package/build/dist/lib/standalone.min.js.LICENSE.txt +39 -0
  13. package/build/dist/lib/storage.js +2 -2
  14. package/build/dist/lib/storage.min.js +1 -1
  15. package/build/dist/lib/style-guide.js +8649 -7863
  16. package/build/dist/lib/style-guide.min.js +2 -1
  17. package/build/dist/lib/style-guide.min.js.LICENSE.txt +38 -0
  18. package/build/dist/lib/utils.js +1 -2
  19. package/build/dist/lib/utils.min.js +1 -1
  20. package/package.json +19 -9
  21. package/src/icons/avatar_agent-32.svg +7 -0
  22. package/src/icons/avatar_bot-32.svg +6 -1
  23. package/src/javascripts/api/index.js +1 -1
  24. package/src/javascripts/{config.js → config.ts} +3 -1
  25. package/src/javascripts/config.types.ts +95 -0
  26. package/src/javascripts/domains/app/actions.ts +83 -0
  27. package/src/javascripts/domains/app/app.types.ts +3 -0
  28. package/src/javascripts/domains/app/hooks.js +3 -5
  29. package/src/javascripts/domains/app/selectors.ts +6 -0
  30. package/src/javascripts/domains/app/slice.ts +30 -0
  31. package/src/javascripts/domains/config/actions.ts +45 -0
  32. package/src/javascripts/domains/config/hooks.ts +19 -0
  33. package/src/javascripts/domains/config/selectors.ts +24 -0
  34. package/src/javascripts/domains/config/slice.ts +111 -0
  35. package/src/javascripts/domains/errors/index.js +13 -9
  36. package/src/javascripts/domains/forms/context.ts +14 -0
  37. package/src/javascripts/domains/forms/forms.types.ts +24 -0
  38. package/src/javascripts/domains/forms/{hooks.js → hooks.ts} +23 -26
  39. package/src/javascripts/domains/forms/{provider.js → provider.tsx} +20 -14
  40. package/src/javascripts/domains/forms/{selectors.js → selectors.ts} +7 -8
  41. package/src/javascripts/domains/forms/slice.ts +84 -0
  42. package/src/javascripts/domains/forms/utils.ts +15 -0
  43. package/src/javascripts/domains/i18n/actions.ts +24 -0
  44. package/src/javascripts/domains/i18n/{hooks.js → hooks.ts} +2 -2
  45. package/src/javascripts/domains/i18n/i18n.types.ts +6 -0
  46. package/src/javascripts/domains/i18n/selectors.ts +16 -0
  47. package/src/javascripts/domains/i18n/{reducer.js → slice.ts} +43 -37
  48. package/src/javascripts/domains/interrupt/{hooks.js → hooks.ts} +2 -2
  49. package/src/javascripts/domains/interrupt/{middleware.js → middleware.ts} +11 -8
  50. package/src/javascripts/domains/interrupt/selectors.ts +6 -0
  51. package/src/javascripts/domains/interrupt/slice.ts +40 -0
  52. package/src/javascripts/domains/options/middleware.js +9 -6
  53. package/src/javascripts/domains/redux/redux.types.ts +11 -0
  54. package/src/javascripts/domains/store/index.ts +53 -0
  55. package/src/javascripts/domains/store/slice.ts +639 -0
  56. package/src/javascripts/domains/store/store.types.ts +135 -0
  57. package/src/javascripts/domains/translations/components/chat-status.js +2 -2
  58. package/src/javascripts/domains/translations/components/options-button.js +1 -1
  59. package/src/javascripts/domains/translations/components/options-dialog/form.js +5 -5
  60. package/src/javascripts/domains/translations/components/options-dialog/index.js +2 -2
  61. package/src/javascripts/domains/translations/{hooks.js → hooks.ts} +28 -23
  62. package/src/javascripts/domains/translations/middleware.js +29 -27
  63. package/src/javascripts/domains/translations/selectors.js +4 -9
  64. package/src/javascripts/domains/translations/slice.ts +67 -0
  65. package/src/javascripts/domains/translations/translations.types.ts +12 -0
  66. package/src/javascripts/domains/visibility/{actions.js → actions.ts} +25 -19
  67. package/src/javascripts/domains/visibility/{hooks.js → hooks.ts} +13 -10
  68. package/src/javascripts/domains/visibility/{selectors.js → selectors.ts} +3 -6
  69. package/src/javascripts/domains/visibility/slice.ts +38 -0
  70. package/src/javascripts/domains/visibility/utils.js +0 -9
  71. package/src/javascripts/domains/visibility/visibility.types.ts +6 -0
  72. package/src/javascripts/index.ts +92 -0
  73. package/src/javascripts/lib/engine/index.js +15 -11
  74. package/src/javascripts/lib/external-api/initialize-api.js +1 -1
  75. package/src/javascripts/lib/id.js +5 -8
  76. package/src/javascripts/lib/mutex.js +3 -1
  77. package/src/javascripts/lib/store/providers/cookie-storage.js +1 -1
  78. package/src/javascripts/lib/store/providers/session-storage.js +1 -1
  79. package/src/javascripts/package/hooks.js +2 -2
  80. package/src/javascripts/package/utils.js +0 -1
  81. package/src/javascripts/schema.ts +1455 -0
  82. package/src/javascripts/style-guide/components/app.js +4 -4
  83. package/src/javascripts/style-guide/components/static-core.js +87 -65
  84. package/src/javascripts/style-guide/components/view.js +4 -4
  85. package/src/javascripts/style-guide/state-helpers/index.js +5 -5
  86. package/src/javascripts/style-guide/states.js +6 -4
  87. package/src/javascripts/style-guide.ts +5 -0
  88. package/src/javascripts/ui/components/app-options/index.js +2 -4
  89. package/src/javascripts/ui/components/conversation/component-filter.js +1 -1
  90. package/src/javascripts/ui/components/conversation/conversation.js +5 -5
  91. package/src/javascripts/ui/components/conversation/event/card-message.js +1 -1
  92. package/src/javascripts/ui/components/conversation/event/carousel-component/components/controls.js +1 -1
  93. package/src/javascripts/ui/components/conversation/event/carousel-message/components/slide.js +1 -1
  94. package/src/javascripts/ui/components/conversation/event/carousel-message/index.js +1 -1
  95. package/src/javascripts/ui/components/conversation/event/choice-prompt.js +2 -2
  96. package/src/javascripts/ui/components/conversation/event/conversation-suggestions.js +11 -14
  97. package/src/javascripts/ui/components/conversation/event/cta.js +1 -1
  98. package/src/javascripts/ui/components/conversation/event/divider/variants/default.js +1 -1
  99. package/src/javascripts/ui/components/conversation/event/divider/variants/new-translation.js +5 -2
  100. package/src/javascripts/ui/components/conversation/event/event-participant.js +2 -2
  101. package/src/javascripts/ui/components/conversation/event/hooks/use-formatted-date.js +2 -2
  102. package/src/javascripts/ui/components/conversation/event/image-lightbox.js +1 -1
  103. package/src/javascripts/ui/components/conversation/event/image.js +5 -7
  104. package/src/javascripts/ui/components/conversation/event/participant.js +1 -1
  105. package/src/javascripts/ui/components/conversation/event/splash.js +3 -3
  106. package/src/javascripts/ui/components/conversation/event/text.js +1 -1
  107. package/src/javascripts/ui/components/conversation/event/translation.js +2 -2
  108. package/src/javascripts/ui/components/conversation/event/upload.js +2 -2
  109. package/src/javascripts/ui/components/conversation/event/video.js +1 -1
  110. package/src/javascripts/ui/components/conversation/message-container.js +4 -4
  111. package/src/javascripts/ui/components/core/seamly-api-context.js +1 -1
  112. package/src/javascripts/ui/components/core/seamly-core.js +15 -14
  113. package/src/javascripts/ui/components/core/seamly-event-subscriber.js +96 -91
  114. package/src/javascripts/ui/components/core/seamly-file-upload.js +20 -24
  115. package/src/javascripts/ui/components/core/seamly-initializer.js +1 -1
  116. package/src/javascripts/ui/components/core/seamly-instance-functions-loader.js +5 -4
  117. package/src/javascripts/ui/components/core/seamly-new-notifications.js +2 -2
  118. package/src/javascripts/ui/components/core/seamly-read-state.js +10 -17
  119. package/src/javascripts/ui/components/entry/deprecated-toggle-button.js +3 -3
  120. package/src/javascripts/ui/components/entry/entry-container.js +4 -6
  121. package/src/javascripts/ui/components/entry/text-entry/hooks.js +3 -3
  122. package/src/javascripts/ui/components/entry/text-entry/index.js +3 -2
  123. package/src/javascripts/ui/components/entry/text-entry/text-entry-form.js +6 -10
  124. package/src/javascripts/ui/components/entry/upload/file-upload-form.js +2 -2
  125. package/src/javascripts/ui/components/entry/upload/index.js +10 -9
  126. package/src/javascripts/ui/components/entry/upload-toggle.js +2 -2
  127. package/src/javascripts/ui/components/faq/faq.js +6 -6
  128. package/src/javascripts/ui/components/form-controls/file-input.js +1 -1
  129. package/src/javascripts/ui/components/form-controls/form.js +1 -1
  130. package/src/javascripts/ui/components/form-controls/input.js +1 -1
  131. package/src/javascripts/ui/components/form-controls/select.js +1 -1
  132. package/src/javascripts/ui/components/layout/agent-info.js +4 -4
  133. package/src/javascripts/ui/components/layout/chat-frame.js +3 -3
  134. package/src/javascripts/ui/components/layout/chat.js +11 -12
  135. package/src/javascripts/ui/components/layout/deprecated-app-frame.js +10 -9
  136. package/src/javascripts/ui/components/layout/header.js +1 -1
  137. package/src/javascripts/ui/components/layout/interrupt.js +23 -24
  138. package/src/javascripts/ui/components/layout/pre-chat-messages.js +11 -11
  139. package/src/javascripts/ui/components/layout/privacy-disclaimer.js +2 -2
  140. package/src/javascripts/ui/components/options/options-button.js +12 -10
  141. package/src/javascripts/ui/components/options/transcript/index.js +2 -2
  142. package/src/javascripts/ui/components/options/transcript/transcript-form.js +1 -1
  143. package/src/javascripts/ui/components/suggestions/index.js +9 -8
  144. package/src/javascripts/ui/components/view/deprecated-view.js +19 -16
  145. package/src/javascripts/ui/components/view/index.js +12 -12
  146. package/src/javascripts/ui/components/view/inline-view.js +2 -2
  147. package/src/javascripts/ui/components/view/window-view/collapse-button.js +3 -3
  148. package/src/javascripts/ui/components/view/window-view/index.js +13 -13
  149. package/src/javascripts/ui/components/view/window-view/window-open-button.js +13 -13
  150. package/src/javascripts/ui/components/warnings/idle-detach-warning.js +1 -1
  151. package/src/javascripts/ui/components/warnings/resume-conversation-prompt.js +1 -1
  152. package/src/javascripts/ui/components/widgets/lightbox.js +2 -2
  153. package/src/javascripts/ui/components/widgets/upload-progress.js +1 -1
  154. package/src/javascripts/ui/hooks/component-helper-hooks.js +1 -1
  155. package/src/javascripts/ui/hooks/file-upload-hooks.js +4 -6
  156. package/src/javascripts/ui/hooks/focus-helper-hooks.js +14 -12
  157. package/src/javascripts/ui/hooks/live-region-hooks.js +2 -0
  158. package/src/javascripts/ui/hooks/seamly-api-hooks.js +8 -3
  159. package/src/javascripts/ui/hooks/seamly-entry-hooks.js +28 -25
  160. package/src/javascripts/ui/hooks/seamly-hooks.js +25 -25
  161. package/src/javascripts/ui/hooks/seamly-option-hooks.js +17 -19
  162. package/src/javascripts/ui/hooks/seamly-state-hooks.js +14 -13
  163. package/src/javascripts/ui/hooks/use-seamly-chat.js +15 -25
  164. package/src/javascripts/ui/hooks/use-seamly-commands.js +46 -46
  165. package/src/javascripts/ui/hooks/use-seamly-idle-detach-countdown.js +22 -24
  166. package/src/javascripts/ui/hooks/use-seamly-resume-conversation-prompt.js +8 -9
  167. package/src/javascripts/ui/hooks/use-single-file-upload.js +4 -6
  168. package/src/javascripts/ui/hooks/utility-hooks.js +4 -4
  169. package/src/javascripts/ui/utils/form-utils.js +0 -145
  170. package/src/javascripts/ui/utils/general-utils.js +3 -4
  171. package/src/javascripts/ui/utils/seamly-utils.ts +73 -0
  172. package/webpack/config.common.js +16 -0
  173. package/webpack/config.dev.js +1 -0
  174. package/webpack/config.package.js +26 -5
  175. package/webpack/defaults.js +7 -2
  176. package/webpack/parts/babel-loader-browser-plugins.js +1 -0
  177. package/webpack/parts/dev-server.js +4 -3
  178. package/src/javascripts/domains/app/actions.js +0 -112
  179. package/src/javascripts/domains/app/index.js +0 -7
  180. package/src/javascripts/domains/app/reducer.js +0 -16
  181. package/src/javascripts/domains/app/selectors.js +0 -8
  182. package/src/javascripts/domains/app/utils.js +0 -4
  183. package/src/javascripts/domains/config/actions.js +0 -7
  184. package/src/javascripts/domains/config/hooks.js +0 -23
  185. package/src/javascripts/domains/config/index.js +0 -7
  186. package/src/javascripts/domains/config/reducer.js +0 -79
  187. package/src/javascripts/domains/config/selectors.js +0 -23
  188. package/src/javascripts/domains/config/utils.js +0 -4
  189. package/src/javascripts/domains/forms/actions.js +0 -21
  190. package/src/javascripts/domains/forms/context.js +0 -6
  191. package/src/javascripts/domains/forms/index.js +0 -8
  192. package/src/javascripts/domains/forms/reducer.js +0 -84
  193. package/src/javascripts/domains/forms/utils.js +0 -20
  194. package/src/javascripts/domains/i18n/actions.js +0 -20
  195. package/src/javascripts/domains/i18n/index.js +0 -7
  196. package/src/javascripts/domains/i18n/selectors.js +0 -15
  197. package/src/javascripts/domains/i18n/utils.js +0 -4
  198. package/src/javascripts/domains/interrupt/actions.js +0 -4
  199. package/src/javascripts/domains/interrupt/index.js +0 -9
  200. package/src/javascripts/domains/interrupt/reducer.js +0 -22
  201. package/src/javascripts/domains/interrupt/selectors.js +0 -6
  202. package/src/javascripts/domains/interrupt/utils.js +0 -4
  203. package/src/javascripts/domains/options/index.js +0 -1
  204. package/src/javascripts/domains/redux/context.js +0 -6
  205. package/src/javascripts/domains/redux/create-redux-store.js +0 -21
  206. package/src/javascripts/domains/redux/hooks.js +0 -80
  207. package/src/javascripts/domains/redux/index.js +0 -19
  208. package/src/javascripts/domains/redux/provider.js +0 -5
  209. package/src/javascripts/domains/redux/utils.js +0 -12
  210. package/src/javascripts/domains/store/index.js +0 -46
  211. package/src/javascripts/domains/store/state-reducer.js +0 -56
  212. package/src/javascripts/domains/translations/actions.js +0 -11
  213. package/src/javascripts/domains/translations/index.js +0 -10
  214. package/src/javascripts/domains/translations/reducer.js +0 -69
  215. package/src/javascripts/domains/translations/utils.js +0 -4
  216. package/src/javascripts/domains/visibility/index.js +0 -8
  217. package/src/javascripts/domains/visibility/reducer.js +0 -24
  218. package/src/javascripts/index.js +0 -153
  219. package/src/javascripts/lib/redux-helpers/index.js +0 -99
  220. package/src/javascripts/style-guide.js +0 -5
  221. package/src/javascripts/ui/hooks/use-seamly-dispatch.js +0 -3
  222. package/src/javascripts/ui/utils/seamly-utils.js +0 -832
package/CHANGELOG.md CHANGED
@@ -2,46 +2,82 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ### Changes
6
+
7
+ - The `preact` peerDependency has been upgraded to version `10.10.6`. This should also be used in client implementations.
8
+
9
+ ### Breaking changes
10
+
11
+ - Added TypeScript support. Clients that do not use TypeScript will not be affected.
12
+ - Redux has been replaced with `redux-toolkit` (RTK). This may have an impact on client implementations. Because `slices` in RTK automatically create `action` functions, it affects how `dispatch` should be called. So instead of;
13
+ ```
14
+ dispatch({
15
+ type: "SET_VALUE",
16
+ value: "the value"
17
+ })
18
+
19
+ dispatch({
20
+ type: "SET_NAME",
21
+ firstName: "first name",
22
+ lastName: "last name,
23
+ })
24
+ ```
25
+
26
+ It uses a more normalized approach;
27
+
28
+ ```
29
+ dispatch(setValue("the value"))
30
+ dispatch(setName({ firstName: "first name", lastName: "last name"}))
31
+ ```
32
+
5
33
  ## 20.7.0 (14 September 2022)
6
34
 
7
35
  ### Bugfixes
36
+
8
37
  - Fix an issue where destructuring the `type` of an `entry` would result in an error when the `payload` was `undefined`.
9
38
 
10
39
  ### Breaking changes
40
+
11
41
  - The sendInfo() Seamly command has been removed.
12
42
 
13
43
  ### Changes
44
+
14
45
  - Added `.suggestions--aside` class to the suggestions in the inline interface to allow for easier styling.
15
46
 
16
47
  ## 20.6.0 (12 August 2022)
17
48
 
18
49
  ### Bugfixes
50
+
19
51
  - Fix an issue where the interface would not be translated when translation had started before the user had sent a message.
20
52
  - Fix an issue where optimistically rendered user messages would re-render after being mutated with the response from the server.
21
53
 
22
54
  ## 20.5.0 (29 July 2022)
23
55
 
24
56
  ### Changes
57
+
25
58
  - When syncing, give incoming events in the history precedence over events in the local state to allow the server to push changes to events.
26
59
  - Added links to user messages and the full conversation demo's in the styleguide.
27
60
  - The `connect()` and `start()` methods are decoupled to avoid unnecessary chat sessions. The `start()` method will only be called if the `visibility` state is 'open' or if using the inline view if it's 'open' or 'minimized'.
28
61
  - Markdown and Mustache rendering have been removed as this is now done server-side. Any implementation that uses `useTextRendering` should be rewritten to directly work on the rendered message body.
29
62
 
30
63
  ### Bugfixes
64
+
31
65
  - Fix an issue where reconnecting to the api would not happen when a page is loaded from back/forward cache.
32
66
  - Fix an issue where the order of appearance was incorrect when there where multiple start events and the suggestions block was used.
33
67
  - Fix an issue where `showDisclaimer` would be overwritten by the config in the styleguide.
34
68
  - Fix an issue where the FAQ would not immediately disappear after submitting an entry.
35
69
  - Fix an issue where the input entry was not showing the correct character limit after an entry with `limit` was received.
36
70
  - Fix an issue where the inline interface would not reopen after returning from hibernation or after clearing the session storage. This changes the way `visibilityCallback` is called.
37
- If the `visibility` state is not present in the storage after returning to a chat session, it will be set once the conversation data is fetched. This results in an extra execution of the `visibilityCallback`.
71
+ If the `visibility` state is not present in the storage after returning to a chat session, it will be set once the conversation data is fetched. This results in an extra execution of the `visibilityCallback`.
38
72
 
39
73
  ## 20.4.0 (13 July 2022)
40
74
 
41
75
  ### Changes
76
+
42
77
  - Added minimized inline interface with limited characters to styleguide.
43
78
 
44
79
  ### Bugfixes
80
+
45
81
  - Fix an issue where the translation locale would be `undefined` after reopening a session from hibernation.
46
82
  - Fix an issue where virtual keyboards would close after submitting a message in the chat.
47
83
  - Fix an issue where message count would accidentally show up briefly when collapsing the chat.
@@ -49,11 +85,13 @@ If the `visibility` state is not present in the storage after returning to a cha
49
85
  ## 20.3.1 (11 July 2022)
50
86
 
51
87
  ### Bugfixes
88
+
52
89
  - Fix compatibility with existing custom view implementation by allowing passing of `children` to the `<View />` component.
53
90
 
54
91
  ## 20.3.0 (22 June 2022)
55
92
 
56
93
  ### Changes
94
+
57
95
  - The `preact` peerDependency has been upgraded to version `10.7.3`. This should also be used in client implementations.
58
96
  - Only load the inline chat interface when scrolled into view. This behaviour can be disabled by setting `connectWhenInView` in `config.js` to `false`.
59
97
  - Allow initial topic to be set through configuration or by calling the `setTopic` window API call before initialization.
@@ -65,6 +103,7 @@ If the `visibility` state is not present in the storage after returning to a cha
65
103
  ```
66
104
 
67
105
  ### Bugfixes
106
+
68
107
  - Fix scrolling to the bottom of a chat window after an image has fully loaded.
69
108
  - Fix support for sending in both an `apiKey` and an `externalId` as query parameter on the demo pages.
70
109
  - Fix ensuring conversation suggestions remain hidden in the window variant after user interaction.
@@ -74,9 +113,11 @@ If the `visibility` state is not present in the storage after returning to a cha
74
113
  ## 20.2.0 (10 May 2022)
75
114
 
76
115
  ### Changes
116
+
77
117
  - Allow setting the automatic translation of the conversation upon initialization.
78
118
 
79
119
  ### Bugfixes
120
+
80
121
  - Fix inline interface to be open by default if the user has responded.
81
122
  - Fix agent name as subtitle of the header in the `DeprecatedView`.
82
123
  - Fix missing variables for the client name and client version.
@@ -86,6 +127,7 @@ If the `visibility` state is not present in the storage after returning to a cha
86
127
  ## 20.1.0 (26 April 2022)
87
128
 
88
129
  ### Changes
130
+
89
131
  - The upload component has been rearranged to remove the redundant div container.
90
132
  - Expose `SeamlyStaticCore` component from styleguide in package.
91
133
  - All components that need disabled states now use aria-disabled for consistency across the board.
@@ -94,17 +136,19 @@ If the `visibility` state is not present in the storage after returning to a cha
94
136
  - Expose layoutMode to the server.
95
137
 
96
138
  ### Bugfixes
139
+
97
140
  - Fix scrolling to top of inline interface in style guide.
98
141
 
99
142
  ## 20.0.0 (4 April 2022)
100
143
 
101
144
  ### The new interface
145
+
102
146
  Version 20.0.0 contains a major upgrade of the look and feel. The most noticeable improvements are:
103
147
 
104
- * The inline interface now starts in a collapsed state so it uses less screen real-estate on load and allows for a more call-to-action based interaction.
105
- * The chat button for the window variant shows pre-chat messages which makes it possible to have different call-to-action triggers based on the users need/location.
106
- * All UI variants have more screen real-estate for chat as the fixed header has been redesigned.
107
- * FAQ/suggestion handling is now part of the chat-flow in the window and app variants making it a more natural interaction.
148
+ - The inline interface now starts in a collapsed state so it uses less screen real-estate on load and allows for a more call-to-action based interaction.
149
+ - The chat button for the window variant shows pre-chat messages which makes it possible to have different call-to-action triggers based on the users need/location.
150
+ - All UI variants have more screen real-estate for chat as the fixed header has been redesigned.
151
+ - FAQ/suggestion handling is now part of the chat-flow in the window and app variants making it a more natural interaction.
108
152
 
109
153
  ::: box--important
110
154
  **Important**
@@ -112,6 +156,7 @@ The old UI has been deprecated and will be removed in a future version. New impl
112
156
  :::
113
157
 
114
158
  ### Changes
159
+
115
160
  - Add `.cvco-form` class to form component.
116
161
  - Add `.cvco-form--submitted`, `.cvco-form--valid`, `.cvco-form--invalid` modifier classes to form component.
117
162
  - Add `onError` handler to form component.
@@ -126,20 +171,22 @@ The old UI has been deprecated and will be removed in a future version. New impl
126
171
  - Add `context.channelName` to the Seamly initialization configuration options.
127
172
 
128
173
  ### Breaking changes
174
+
129
175
  - Remove `modal` window variant
130
176
  - Non-structural implementation specific styling is now in a separate stylesheet (`src/stylesheets/styles-default-implementation.scss` or pre-built: `styles-default-implementation.css`). If you depend on styling for hover/scrollbars on these you need to load this stylesheet as well.
131
177
  - The `inline` and `window` UI has been completely revamped. The old UI can still be used by using the deprecated views. If you wish to retain the old UI when updating you need to:
178
+
132
179
  - Add `<DeprecatedView />` as `<CustomView />` to the client.
133
180
 
134
- ```
135
- import { DeprecatedView } from '@seamly/web-ui'
181
+ ```
182
+ import { DeprecatedView } from '@seamly/web-ui'
136
183
 
137
- const config = {
138
- customComponents: {
139
- view: DeprecatedView,
140
- }
184
+ const config = {
185
+ customComponents: {
186
+ view: DeprecatedView,
141
187
  }
142
- ```
188
+ }
189
+ ```
143
190
 
144
191
  - Add deprecated stylesheet and remove the default stylesheet:
145
192
 
@@ -155,9 +202,10 @@ The old UI has been deprecated and will be removed in a future version. New impl
155
202
  isDeprecated: true,
156
203
  })
157
204
  ```
205
+
158
206
  - To mark the conversation's connection as ready we used to watch for a message of type `join_conversation_succeeded`, but this has been changed to type `attach_channel_succeeded`. If you depend on messages of type `join_conversation_succeeded` you should switch over to the new type.
159
207
  - Replace `defaults.startChatIcon`, `defaults.agentName`, `defaults.agentIcon` in config, with server-side equivalents.
160
- - Replace `defaults.userName` with a translation label, allowing per language labels.
208
+ - Replace `defaults.userName` with a translation label, allowing per language labels.
161
209
 
162
210
  ## 19.1.6 (14 September 2022)
163
211
 
@@ -168,11 +216,13 @@ The old UI has been deprecated and will be removed in a future version. New impl
168
216
  ## 19.1.5 (17 August 2022)
169
217
 
170
218
  ### Bugfixes
219
+
171
220
  - Fix an issue where the interface would not be translated when translation had started before the user had sent a message.
172
221
 
173
222
  ## 19.1.4 (16 February 2022)
174
223
 
175
224
  ### Bug fixes
225
+
176
226
  - Fix deep merging of `defaults` key in config when supplied by both implementation and in `init`.
177
227
  - Fix carousel sliding in Safari
178
228
  - Fix the aria-label of a slide to use the correct index
@@ -182,25 +232,32 @@ The old UI has been deprecated and will be removed in a future version. New impl
182
232
  ## 19.1.3 (16 February 2022)
183
233
 
184
234
  ### Changes
235
+
185
236
  - Extended and improved data of `errorCallback`.
186
237
 
187
238
  ## 19.1.2 (26 January 2022)
188
239
 
189
240
  ### Bug fixes
241
+
190
242
  - Fix open/close state in styleguide for window layoutMode.
191
243
 
192
244
  ## 19.1.0 (11 January 2022)
245
+
193
246
  ### Changes
247
+
194
248
  - Added an option to monitor errors by passing `errorCallback` to the config.
195
249
 
196
250
  ### Bug fixes
251
+
197
252
  - Do not display user input as Markdown or Mustache to prevent potential XSS attacks.
198
253
  - Add translation dividers to styleguide
199
254
  - Add all error types to styleguide
200
255
  - Show time-indicators in styleguide
201
256
 
202
257
  ## 19.0.0 (19 December 2021)
258
+
203
259
  ### Breaking Changes
260
+
204
261
  - Translation files will be loaded from the back-end and can be managed there. Translations will no longer be provided in this package.
205
262
  - `setLocale` window API call has been removed. The locale can only be set at initialisation of a conversation.
206
263
  - `setTranslation` now also triggers a translation of the UI
@@ -208,6 +265,7 @@ The old UI has been deprecated and will be removed in a future version. New impl
208
265
  - The default locale for a conversation is provided by the server, but can be overridden through `config.context.locale` during `init`.
209
266
 
210
267
  ### Changes
268
+
211
269
  - Provide representative demo images for card and image messages to be used in styleguides.
212
270
  - Increase inline window size. This also changes some of the Sass variables.
213
271
  - Determination of `userResponded` has been moved to the server. This also means the key `userResponded` in the Storage is no longer available. If you need to know the state on startup you can use the appstate parameter on the `ui.start` or `ui.beforeStart` events.
@@ -217,14 +275,19 @@ The old UI has been deprecated and will be removed in a future version. New impl
217
275
  - The locale for translations of the UI can now be changed to a different locale dynamically
218
276
 
219
277
  ## 18.3.1 (22 November 2021)
278
+
220
279
  ### Changes
280
+
221
281
  - Add class for styling to the `activity-monitor` div.
222
282
 
223
283
  ## 18.3.0 (20 October 2021)
284
+
224
285
  ### Changes
286
+
225
287
  - Improve entering send_transcript e-mail on mobile and desktop. Especially in combination with autocomplete on mobile.
226
288
 
227
289
  ### Bug fixes
290
+
228
291
  - Time indicators are properly shown before user messages.
229
292
  - Links in messages by users in the default UI are now legible.
230
293
  - Fix options dialog `max-height` issue to make implementations easier.
@@ -233,21 +296,28 @@ The old UI has been deprecated and will be removed in a future version. New impl
233
296
  - Make card description element a `div` instead of `p` to prevent invalid HTML nesting.
234
297
 
235
298
  ## 18.2.0 (17 September 2021)
299
+
236
300
  ### Changes
301
+
237
302
  - Add default `secondary` category to be used with choice prompts
238
303
  - ChoicePrompt `<li>`'s now have an additional class based on the choice category to aid styling of choices in client implementations
239
304
  - Process card descriptions as markdown
240
305
  - Don't process cta descriptions as Mustache templates as we won't ever have any variables
241
306
 
242
307
  ### Bug fixes
308
+
243
309
  - Remove redundant img alt attribute in cards
244
310
 
245
311
  ## 18.1.1 (9 September 2021)
312
+
246
313
  ### Bug fixes
314
+
247
315
  - Fix translation menu automatically closing on focus-out by removing the close-on-focus-out from the Translations-Dialog.
248
316
 
249
317
  ## 18.1.0 (8 September 2021)
318
+
250
319
  ### Changes
320
+
251
321
  - Add Carousel message type
252
322
  - Add Card message type, the following three card types can be rendered:
253
323
  - `ask` which contains a cta that sends a question into the conversation.
@@ -255,10 +325,13 @@ The old UI has been deprecated and will be removed in a future version. New impl
255
325
  - `topic` which contains a cta that sets the topic of the conversation.
256
326
 
257
327
  ### Bug fixes
328
+
258
329
  - Make uploads show correctly as not-deleted if they are still available.
259
330
 
260
331
  ## 18.0.0 (30 August 2021)
332
+
261
333
  ### Changes
334
+
262
335
  - Added `Automatic Translation` feature to support live machine translations.
263
336
  - Added `setTranslation` added to the window API (only works if the feature is enabled in the account).
264
337
  - Added `@seamly/web-ui/index.debug` as a drop-in replacement for `@seamly/web-ui` to enable debug tools in client implementations
@@ -267,9 +340,11 @@ The old UI has been deprecated and will be removed in a future version. New impl
267
340
  - Exported `useTranslations`, `useTranslatedEventData` and `useTranslationsContainer` for usage in client implementations
268
341
 
269
342
  ### Breaking changes
343
+
270
344
  - `useChoicePrompt` now requires the full event as a parameter instead of `event.payload`
271
345
  - Drop support for IE11
272
346
  - `useTranslation` is renamed to `useI18n` and exports a name function (`t`).
347
+
273
348
  ```
274
349
  // v17.x
275
350
  import useTranslation from '@seamly/web-ui`
@@ -281,7 +356,9 @@ import useI18n from '@seamly/web-ui'
281
356
 
282
357
  const { t } = useI18n()
283
358
  ```
359
+
284
360
  - Translation files now use a flattened structure and should be updated.
361
+
285
362
  ```
286
363
  // config.js v17.x
287
364
  import nlInformal from '@seamly/web-ui/translations/nl-informal'
@@ -313,31 +390,41 @@ const translations = {
313
390
  ```
314
391
 
315
392
  ### Bug fixes
316
- * Fix timing issue between clearing entry and changing entry type based on incoming messages.
317
- * Fix issue in i18n where default object for overrides was provided, but tested against undefined instead of keys.length
393
+
394
+ - Fix timing issue between clearing entry and changing entry type based on incoming messages.
395
+ - Fix issue in i18n where default object for overrides was provided, but tested against undefined instead of keys.length
318
396
 
319
397
  ## 17.2.0 (3 august 2021)
398
+
320
399
  ### Changes
400
+
321
401
  - Added app state information to `ui.beforeStart`, `ui.start` and `ui.visiblity` window.api events. App state contains `hasResponded`, `hasConversation`, `visiblity` and `unreadMessagecount`.
322
402
  - Always show time indicator at beginning of conversation when enabled.
323
403
  - Always show username/agent name when it is preceded by a time indicator.
324
404
 
325
405
  ## 17.1.1 (13 july 2021)
406
+
326
407
  ### Bug fixes
408
+
327
409
  - Expose `useSeamlyConfig` & `useSeamlyVisibility` hooks for customer implementations.
328
410
 
329
411
  ## 17.1.0 (29 june 2021)
412
+
330
413
  ### Changes
414
+
331
415
  - Replace default `api.*.seamly.ai` domains with `api.*.seamly-app.com`.
332
416
  - Minor dependency updates
333
417
 
334
418
  ### Bug fixes
419
+
335
420
  - Replace all `/` used for division in SCSS files with fractions. The `/` for division is being deprecated by Sass, as it is technically a seperator in CSS. In future, it will be either `calc()`, `math.div()` or we can use a fraction.
336
421
  - Info messages no longer disable choice prompts
337
422
  - Server-side triggered idle-timer elapse no longer doubly triggers detach-service action
338
423
 
339
424
  ## 17.0.0 (7 june 2021)
425
+
340
426
  ### Breaking changes
427
+
341
428
  - The `system.service_changed` event has been renamed to `system.systemChanged`.
342
429
  - For file uploads the following translation keys have been affected and should be changed if overrides or nonstandard translations are used:
343
430
  - `srMessageIconText` has been removed.
@@ -345,6 +432,7 @@ const translations = {
345
432
  - Keys `srFileUploadedText` and `srFileDownloadText` have been added.
346
433
 
347
434
  ### Changes
435
+
348
436
  - File download messages without a `url` value are now supported and rendered correctly.
349
437
  - Authenticate all conversation requests
350
438
  - Now hides all chat content from being shown in the Google Search result snippet by applying the `data-nosnippet` attribute.
@@ -354,20 +442,27 @@ const translations = {
354
442
  - Add pre-built `@seamly/web-ui/styles.css` to the package exports.
355
443
 
356
444
  ### Bug fixes
445
+
357
446
  - Remove `cvco-false` class from the options toggle button.
358
447
  - The style guide will no longer display duplicate Preact key console errors.
359
448
  - Load scss imports from `node_modules` without deprecated `~`.
360
449
 
361
450
  ## 16.0.7 (18 may 2021)
451
+
362
452
  ### Bug fixes
453
+
363
454
  - Add missing styling for time indicators.
364
455
 
365
456
  ## 16.0.6 (12 may 2021)
457
+
366
458
  ### Bug fixes
459
+
367
460
  - Add optional chaining to prevent error in time indicator display when locale doesn't match.
368
461
 
369
462
  ## 16.0.5 (11 may 2021)
463
+
370
464
  ### Bug fixes
465
+
371
466
  - Export the following exports from the package as required by client implementations to enable upgrade to v16:
372
467
  - `useSeamlyCommands`
373
468
  - `useSeamlyIdleDetachCountdown`
@@ -384,24 +479,34 @@ const translations = {
384
479
  - `Interrupt`
385
480
 
386
481
  ## 16.0.4 (10 may 2021)
482
+
387
483
  ### Bug fixes
484
+
388
485
  - Export `useSeamlyEvents` as `useEvents` for the package
389
486
 
390
487
  ## 16.0.3 (10 may 2021)
488
+
391
489
  ### Bug fixes
490
+
392
491
  - Fix FAQ overflow on mobile screens with low height (especially an issue when the keyboard is open on Android)
393
492
  - Fix image modal not expanding to full height in the inline layoutmode
394
493
 
395
494
  ## 16.0.2 (4 may 2021)
495
+
396
496
  ### Bug fixes
497
+
397
498
  - Also export `useSeamlyChat` hook from the package.
398
499
 
399
500
  ## 16.0.1 (22 april 2021)
501
+
400
502
  ### Bug fixes
503
+
401
504
  - Properly export all package files so you can use exports like `@seamly/web-ui/storage`
402
505
 
403
506
  ## 16.0.0 (20 april 2021)
507
+
404
508
  ### Changes
509
+
405
510
  - Remove loading of `@include-media` in `index.scss` as this is now loaded through the `Web UI`.
406
511
  - `FAQ` is now part of `Web UI` and can be deactivated with the `showFaq` setting in the configuration.
407
512
  - An `action.click_cta` is now broadcast via the external api when the to action is clicked in a CTA message.
@@ -414,6 +519,7 @@ const translations = {
414
519
  - All HTML buttons are now explicitly typed and safe for use inside wrapping forms (mainly classic ASP.NET applications).
415
520
 
416
521
  ### Breaking changes
522
+
417
523
  - Regardless of whether `FAQ` is activated in `Web UI` or not, the main application is now wrapped in class `cvco-app-wrapper` which reguires styling adjustment in all implementations.
418
524
  - All implementations already containing `FAQ` should migrate to the internal implementation. This is mostly the removal of the flex styling on certain breakpoints, and making sure `position: absolute` is possible on the `faqs`.
419
525
  - All direct references to `@seamly/web-ui/src/javascript/*` must be updated to reflect the new exports at `@seamly/web-ui`
@@ -421,18 +527,24 @@ const translations = {
421
527
  - `preact` is now a peerDependency and must be included from the implementation
422
528
 
423
529
  ### Bug fixes
530
+
424
531
  - Don't render the skip link when minimized. This fixes the issue where you could focus the skip-link when only the button was visible.
425
532
 
426
533
  ## 15.0.1 (11 March 2021)
534
+
427
535
  ### Changes
536
+
428
537
  - `@babel/plugin-transform-react-jsx` now supports automatic transpilation of JSX without the need to import `preact`, `preact.h` or `preact.Fragment`.
429
538
 
430
539
  ### Breaking changes
540
+
431
541
  - Implementations must upgrade to Preact 10.5.12
432
542
  - Implementation must update the **Babel** configuration for `@babel/plugin-transform-react-jsx` to `{ runtime: 'automatic', importSource: 'preact' }` in order to support automatic transpilation.
433
543
 
434
544
  ## 15.0.0 (11 March 2021)
545
+
435
546
  ### Changes
547
+
436
548
  - Options, options dialogues, the upload button, as well as the Seamly modal version can now be animated with the same standard transition classes.
437
549
  - Add configurable z-index for implementations via config.
438
550
  - Add `overscroll-behaviour: contain` to windowed chat so scrolling a windowed chat will not automatically scroll the whole page when the user has reached the bottom of the chat.
@@ -440,24 +552,33 @@ const translations = {
440
552
  - Remove cog icon when just one specific option is shown in the bottom bar. Also add classes so the entry can be styled.
441
553
 
442
554
  ### Breaking changes
555
+
443
556
  - Implementations with options need to update the hide/show of the options menu, and the upload button to use the new transition classes.
444
557
 
445
558
  ### Bug fixes
559
+
446
560
  - Fix double rendering of upload bubbles on socket reconnect.
447
561
 
448
562
  ## 14.0.2 (12 February 2021)
563
+
449
564
  ### Changes
565
+
450
566
  - Send transcript button now has it's own translation and explicitly says `Send`.
451
567
 
452
568
  ### Bug fixes
569
+
453
570
  - Fix typo in `de-informal` translations.
454
571
 
455
572
  ## 14.0.1 (10 February 2021)
573
+
456
574
  ### Bugfixes
575
+
457
576
  - Transcript email validation now also allows capital letters.
458
577
 
459
578
  ## 14.0.0 (27 January 2021)
579
+
460
580
  ### Changes
581
+
461
582
  - Build all translations as UJS modules and expose them in the NPM package in `@seamly/web-ui/dist/translations/*`.
462
583
  - Use `description` field for rich text in CTA messages.
463
584
  - Add `fileUpload.errors.virusFound` translation to indicate an uploaded file contains an unsafe file.
@@ -469,6 +590,7 @@ const translations = {
469
590
  - The current agent name is passed to the resume conversation prompt translation.
470
591
 
471
592
  ### Breaking changes
593
+
472
594
  - Update the `marked` depdendency to 0.8.2, this fixes multiple security issue. Unfortunately this means implementations need to process `marked` by babel as it exports ES6
473
595
  - Upgrade webpack to v5. Implementations now have to upgrade to webpack 5 too. Things that need changing:
474
596
  - Update `webpack.config.js` to work with Webpack 5
@@ -486,11 +608,14 @@ const translations = {
486
608
  - The file upload button will now only show when uploads are available. This may affect the display of the entry container in implementations. Styling needs to be adapted.
487
609
 
488
610
  ## 13.0.0 (9 December 2020)
611
+
489
612
  ### Changes
613
+
490
614
  - The entry component can now be set via the `entry` property on messages. Currently this is available for `upload` entry types but this can be extended via the same mechanism for all entry types where required.
491
615
  - Validations loaded on entry components can also now be adjusted via server message inside the `entry` property as per the previous point.
492
616
 
493
617
  ### Breaking changes
618
+
494
619
  - The import path for `EntryContainer` has changed to `@seamly/web-ui/src/javascripts/ui/components/entry/entry_container`. This should be adjusted in all custom views.
495
620
  - The structure of the entry block has been changed. All custom views should update the JSX declaration:
496
621
 
@@ -505,40 +630,51 @@ const translations = {
505
630
 
506
631
  <EntryContainer />
507
632
  ```
633
+
508
634
  - As the entry block has been closed in JSX, custom implementations of the `Entry` component should now use the standard `customComponents` interface in the configuration as described in the documentation.
509
635
  - Any custom implementations of `Entry` will need to be recoded to follow the new structure in `Seamly Web UI`.
510
636
  - All implementations using the src from the `@seamly/web-ui` package should transpile the `phoenix` package to ES5 if IE11 support is required. If you use webpack, you should make sure `node_modules/phoenix` is not excluded from transpilation in webpack.config.js.
511
637
 
512
638
  ### Bugfixes
639
+
513
640
  - An edge case existed in the forms system where form element components could re-initialize if the upper application state changed thereby losing preloaded forms data. This has been fixed.
514
641
  - Fixed NL translation typo in the screen reader text of a configuration error.
515
642
  - The package now uses the source Phoenix file as the dist file contains JavaScript that violates the `unsafe-eval` CSP policy.
516
643
  - Send Content-Type header on POST requests to get config and to create a new conversation.
517
644
 
518
645
  ## 12.4.0 (27 November 2020)
646
+
519
647
  ### Changes
648
+
520
649
  - Send timezone information to server if it can be determined (only works in modern browsers)
521
650
  - Export new ViewWithFaq to use in implementations that use the bundled javascript.
522
651
  - Add support for file uploads without a deleteAt.
523
652
 
524
653
  ## 12.3.0 (19 November 2020)
654
+
525
655
  ### Changes
656
+
526
657
  - Add support for file upload messages from agents.
527
658
  - Add support for securely downloading uploaded files.
528
659
  - Clearly mark expired file upload links as such.
529
660
 
530
661
  ## 12.2.0 (17 November 2020)
662
+
531
663
  ### Changes
664
+
532
665
  - Add new `api.externalId` configuration option to persist conversations when messaging is enabled.
533
666
  - Add new `ResumeConversationPrompt` to ask users to continue or restart a conversation after returning to if after a while (when using messaging).
534
667
 
535
668
  ### Bug fixes
669
+
536
670
  - Always remove loader when initial events arrive from the server.
537
671
  - To avoid multiple instances sending events via the same event bus instance a unique event bus is now used for each chat instance.
538
672
  - Don't break on missing activeServiceSettings from a history call.
539
673
 
540
674
  ## 12.1.0 (9 November 2020)
675
+
541
676
  ### Changes
677
+
542
678
  - The character limit is visible 50 characters before the limit will be reached instead of the previous 25 characters.
543
679
  - History synchronisation with the server is now only performed when it results in new history.
544
680
  - The `Privacy Disclaimer` is now shown at the top of the chat window and scrolls away.
@@ -546,6 +682,7 @@ const translations = {
546
682
  - Add `appStorageProvider` with support for iOS, Android and React Native. This makes integration with those platform work out of the box (if implemented correctly on the app side).
547
683
 
548
684
  ### Bug fixes
685
+
549
686
  - In the Spanish language file, the `srStopCobrowsingText` language key has been repaired.
550
687
  - All event sorting is now based on the `occurredAt` timestamp on events. This ensures proper merging of history and current event streams in all cases.
551
688
  - Client side message again have the ID set properly from the server ACKs.
@@ -553,10 +690,13 @@ const translations = {
553
690
  - Add missing documentation for storage providers.
554
691
 
555
692
  ### Breaking changes
693
+
556
694
  - Hook `useSeamlyDisclaimerDelayedClose` no longer exists. Implementations with a custom `Entry` component should remove this.
557
695
 
558
696
  ## 12.0.0 (25 September 2020)
697
+
559
698
  ### Breaking changes
699
+
560
700
  - Hook `useSeamlyContainerClassNames` has been renamed to `useSeamlyMessageContainerClassNames`.
561
701
  - Chat bubbles are no longer full width. Most client implementations do not use this full width, so needed escaping every time. For clients who do have full width bubbles this needs checking.
562
702
  - The `api.defaults` configuration option has been moved to `context` on the main configuration level. Within this configuration object any usages of `meta` or `settingsProfile` should be removed if still present in implementations as these are dead options.
@@ -570,6 +710,7 @@ const translations = {
570
710
  - Split `useText` component hooks in to `useTextRendering` and `useEventLinkClickHandler`. Any custom text message components should now use these hooks instead of the `useText` hook.
571
711
 
572
712
  ### Changes
713
+
573
714
  - Add two `on` events to the window API for the idle detach warning: `'idleTimer.selectContinue` is sent when the user clicks on the `Continue coversation` button and `idleTimer.selectEnd` is sent when the user clicks on the `End conversation` button.
574
715
  - Do not show disabled option checkboxes.
575
716
  - Improve icon accessibility.
@@ -580,41 +721,53 @@ const translations = {
580
721
  - Add Call to Action (CTA) message type.
581
722
 
582
723
  ### Bug fixes
724
+
583
725
  - The participant displayed information is now cleared after an interrupt restart.
584
726
  - Fix duplicate rendering of accessiblity text in image messages.
585
727
  - Fix modification of the `body` data of messages when rendering them as rich text.
586
728
  - Fix issue with socket reconnects that would result in messages appearing at the start of the chat
587
729
 
588
730
  ## 11.1.0 (30 July 2020)
731
+
589
732
  ### Bug fixes
733
+
590
734
  - Fix history fetching when file uploads are disabled
591
735
 
592
736
  ### Changes
737
+
593
738
  - Clear waiting actions when destroying an instance
594
739
 
595
740
  ## 11.0.0 (29 July 2020)
741
+
596
742
  ### Bug fixes
743
+
597
744
  - Focus outline will now always show, also in browsers with `:focus-visible` activated.
598
745
  - Focus input when user clicked the restart button in the error interrupt.
599
746
  - Hide cobrowsing bar, options and options toggle button when the UI is minimized
600
747
 
601
748
  ### Breaking changes
602
- - Implementations with custom `Entry`, `ChatFrame` or `EntryContainer` components should re-align the implementations of these components to that inside Seamly UI in order to support `File uploads` and function with the adjusted `Multi Forms Data Engine` inside Seamly UI.
749
+
750
+ - Implementations with custom `Entry`, `ChatFrame` or `EntryContainer` components should re-align the implementations of these components to that inside Seamly UI in order to support `File uploads` and function with the adjusted `Multi Forms Data Engine` inside Seamly UI.
603
751
  - Classname for the icon in the lightbox/modal has been changed. From `cvco-model__icon` to `cvco-icon` to be consistent with all other icons.
604
752
  - All icons are now outlined, so any implementations that use `stroke` in the css (for instance to change color or width) should be fixed to use `fill` instead. Implementations that target specific parts of any `svg` will need tweaking, because all icons are now compound shapes (as few different paths as possible).
605
753
 
606
754
  ### Changes
755
+
607
756
  - The `Forms Data Engine` inside Seamly UI now supports multiple forms as well as the persistence of forms data.
608
757
  - The `Forms Engine` now supports validation.
609
758
  - `File uploads` are now supported in Seamly UI if the account configuration and service supports it.
610
759
  - An `aria-live` window API event has been added for testing the main `ARIA Live region` in Seamly UI. Any texts added to this live region will be broadcast via this event.
611
760
 
612
761
  ## 10.0.1 (7 July 2020)
762
+
613
763
  ### Bug fixes
764
+
614
765
  - Export `useEntry` again (as `useInput` used to be exported).
615
766
 
616
767
  ## 10.0.0 (3 July 2020)
768
+
617
769
  ### Changes
770
+
618
771
  - When the idle detach warning countdown starts the `idleTimer.start` window API event gets called and when the timer stops, the `idleTimer.stop` event.
619
772
  - Add `sendCustomAction` action to the window API.
620
773
  - Add generic Form engine for easier form handling and future extensibility for validation.
@@ -622,31 +775,41 @@ const translations = {
622
775
  - Introduce option for screensharing. This will also activate the screensharing warning when enabled.
623
776
 
624
777
  ### Breaking changes
778
+
625
779
  - The idle detach warning now displays the countdown as minutes and seconds. This will need styling changes in the implementation on upgrade.
626
780
  - `Input` component has been replaced with a more generic `Entry` component. This is a drop-in replacement.
627
781
  - Rename package to `@seamly/web-ui`. Updage your package.json files accordingly. Versioning will continue.
628
782
 
629
783
  ## 9.3.0 (23 June 2020)
784
+
630
785
  ### Changes
786
+
631
787
  - FAQ click also sets `userResponded` to true
632
788
 
633
789
  ## 9.2.0 (16 June 2020)
790
+
634
791
  ### Changes
792
+
635
793
  - Add the `appContainerClassName` configuration option to set custom class names on the container element.
636
794
  - Add new ui.inputFocus event callback that is triggered whenever the input field gets focus.
637
795
  - Emit faq question with `faqclick` custom action on click to aid implementations who need the faq question.
638
796
  - The external API now support fetching the current visibility state with the `getVisibility` action.
639
797
 
640
798
  ## 9.1.0 (5 June 2020)
799
+
641
800
  ### Changes
801
+
642
802
  - Removed custom focus styles on disclaimer close, modal enlarge, modal close, input etc. These get in the way when doing custom styling for clients. Remove any CSS that escapes this now removed styling.
643
803
  - Expired chats no longer show an interrupt screen but automatically restarts. The `sessionExpired` error key can be removed from all custom language files.
644
804
 
645
805
  ### Breaking changes
806
+
646
807
  - Chat now starts at the bottom of the window container. This severely improves visibility of initial chat messages in smaller views. This adds an extra container div. Test if scrolling/window visibility is still ok after updating.
647
808
 
648
809
  ## 9.0.0 (19 May 2020)
810
+
649
811
  ### Changes
812
+
650
813
  - Depending on server configuration, send user typed text to the Seamly server periodically.
651
814
  - Prefetch api configuration prior to chat start.
652
815
  - Prefetch initial chat state prior to chat start.
@@ -659,25 +822,33 @@ const translations = {
659
822
  - Sanitize user input from any executable HTML.
660
823
 
661
824
  ### Breaking changes
825
+
662
826
  - Migrate the UI to version 2 of the Seamly API.
663
827
  - The exported Seamly function no longer returns an API
664
828
  - You need to explicitly `init` an instance to start it
665
829
  - The adjacent sibling combinator (`+`) has been removed in favour of the `cvco-conversation__item--new-participant` class on messages. Many implementations have either classes that override this default styling, or are using the adjacent sibling combinator themselves. This will need checking and potentially fixes on update.
666
830
 
667
831
  ## 8.1.0 (24 April 2020)
832
+
668
833
  ### Changes
834
+
669
835
  - FAQ events will now be persisted over application reloads and only be cleared when intended by the Seamly server.
670
836
 
671
837
  ## 8.0.1 (6 April 2020)
838
+
672
839
  ### Bug fixes
840
+
673
841
  - Repair text input labelling.
674
842
 
675
843
  ## 8.0.0 (6 April 2020)
844
+
676
845
  ### Changes
846
+
677
847
  - The default FAQ component has been adjusted to handle more implementation requirements. Refer to `faq.md` for the latest API.
678
848
  - An Idle Detach Warning will be shown if the user is connected to a live agent, inactive for a set amount of time and the server configuration allows for this.
679
849
 
680
850
  ### Breaking changes
851
+
681
852
  - The form element component used inside the view should now be wrapped inside a new `<EntryContainer>` component. All custom implementation should upgrade the custom view with this component:
682
853
 
683
854
  ```jsx harmony
@@ -692,19 +863,25 @@ const translations = {
692
863
  - Any usages of the hook `useInputFocusing` should be refactored to `useSkiplinkTargetFocusing`.
693
864
 
694
865
  ## 7.1.0 (26 March 2020)
866
+
695
867
  ### Bug fixes
868
+
696
869
  - FAQ's selections will now show in history as the original event ID is now passed to the FAQ click action.
697
870
  - Image and video elements will now also show the event participant, when appropriate.
698
871
 
699
872
  ### Changes
873
+
700
874
  - The current active participant will show as event participant on the chat loader bubble, when appropriate.
701
875
 
702
876
  ## 7.0.0 (12 March 2020)
877
+
703
878
  ### Bug fixes
879
+
704
880
  - Avoid empty introductions from overwriting existing avatar intros.
705
881
  - Update avatar in button/header to show initial state / active agent avatar.
706
882
 
707
883
  ### Changes
884
+
708
885
  - Display `info` messages in the chat windo when they are sent via the websocket.
709
886
  - Upgrade Preact to v10.3.3. It is recommended to upgrade custom implementations to this version of Preact as well.
710
887
  - The configuration object has been expanded with a new `defaults` object:
@@ -723,6 +900,7 @@ userName: 'You',
723
900
  - A default agent icon can be set using the `agentIcon` setting found in the new `defaults` object in the configuration object.
724
901
 
725
902
  ### Breaking Changes
903
+
726
904
  - Any custom implementations using `component overrides` should migrate to the `ComponentProvider` component instead. Passing custom components to the `Conversation` component is no longer supported and will be ignored.
727
905
  - The container classes are no longer exposed as `containerClassNames` by the internal component hooks. Any view components relying on this should import the new `useSeamlyContainerClassNames` hook to resolve the same classes.
728
906
  - The `choose again` divider will no longer render in history if used with a version of the server API that does not support info messages.
@@ -733,59 +911,77 @@ userName: 'You',
733
911
  - Any implementations relying on a `user defaultName` of `You` coming from the Seamly client itself, needs to implement this with the `userName` setting.
734
912
 
735
913
  ## 6.2.0 (3 March 2020)
914
+
736
915
  ### Changes
916
+
737
917
  - Upgrade Preact to v10.3.2. It is recommended to upgrade custom implementations to this version of Preact as well.
738
918
 
739
919
  ### Bug fixes
920
+
740
921
  - Avoid empty introductions from overwriting existing avatar intros.
741
922
  - Fixed race condition that sometimes caused a double connect of the chat client.
742
923
 
743
924
  ## 6.1.0 (17 February 2020)
925
+
744
926
  ### Changes
927
+
745
928
  - Allow links to open in new tabs via server configuration.
746
929
 
747
930
  ### Other
931
+
748
932
  - Fix image opening in lightbox after previous server change.
749
933
 
750
934
  ## 6.0.0 (17 February 2020)
935
+
751
936
  ### Bug fixes
937
+
752
938
  - Choice Prompts with prompts other than type="text" now displays properly.
753
939
 
754
940
  ### Changes
941
+
755
942
  - Custom `Text`, `Video` and `Image` components now implement a `descriptorId` prop as `id` to decorate description containers.
756
943
 
757
944
  ### Breaking Changes
945
+
758
946
  - Custom ChoicePrompt components should now allow for custom prompt component injection via the `children` prop.
759
947
  - Custom Text components should no longer use a `textBodyId` prop to decorate the text container via `id` but instead implement a `descriptorId` prop.
760
948
 
761
949
  ## 5.1.1 (12 February 2020)
762
950
 
763
951
  ### Bug fixes
952
+
764
953
  - Fix misalignment of balloon agent icon.
765
954
 
766
955
  ## 5.1.0 (7 February 2020)
767
956
 
768
957
  ### Changes
958
+
769
959
  - Expose new action events for `action.pick_choice`, `action.navigate` and `action.custom`.
770
960
 
771
961
  ## 5.0.2 (31 January 2020)
772
962
 
773
963
  ### Bug fixes
964
+
774
965
  - Properly build and release Dutch I18N text for Choose Again.
775
966
 
776
967
  ## 5.0.1 (31 January 2020)
777
968
 
778
969
  ### Changes
970
+
779
971
  - Adjust default Dutch I18N text for Choose Again.
780
972
 
781
973
  ## 5.0.0 (29 January 2020)
974
+
782
975
  ### New features
976
+
783
977
  - Enable choose again of choice prompt values.
784
978
 
785
979
  ### Bug fixes
980
+
786
981
  - Repair semantics of the Choice Prompt list.
787
982
 
788
983
  ### Breaking Changes
984
+
789
985
  - When services are setup to allow `Choose Again` of `Choice Prompts`, a choose again button will now be shown in the chat interface. New topic dividers will also be shown after choosing again. Styling should be adjusted to allow for this in implementations.
790
986
  - `Choice Prompts` will be rendered as a `<ul>` instead of `<div>`. Styling should be adjusted in implementations.
791
987
  - To align divider views the class postfix `divider__icon` in the `Participant` component has been adjusted to `divider__graphic`. Styling should be adjusted in implementations.