@miso.ai/client-sdk-ui 1.13.2-beta.1 → 1.14.0-beta.2

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 (214) hide show
  1. package/dist/cjs/asset/svgs.js +15 -4
  2. package/dist/cjs/combo/ask/index.js +2 -2
  3. package/dist/cjs/constants.js +118 -98
  4. package/dist/cjs/defaults/ask/controls.js +1 -1
  5. package/dist/cjs/defaults/hybrid-search/answer-box.js +4 -4
  6. package/dist/cjs/defaults.js +169 -0
  7. package/dist/cjs/element/container/index.js +14 -0
  8. package/dist/cjs/element/container/miso-ask.js +3 -3
  9. package/dist/cjs/element/container/miso-conversation.js +21 -0
  10. package/dist/cjs/element/container/miso-explore.js +1 -1
  11. package/dist/cjs/element/container/miso-history.js +21 -0
  12. package/dist/cjs/element/container/miso-hybrid-search.js +1 -1
  13. package/dist/cjs/element/container/miso-recommendation.js +1 -1
  14. package/dist/cjs/element/container/miso-search.js +1 -1
  15. package/dist/cjs/element/context/miso-follow-ups.js +1 -1
  16. package/dist/cjs/element/role/index.js +42 -0
  17. package/dist/cjs/element/role/miso-messages.js +20 -0
  18. package/dist/cjs/element/role/miso-new-thread.js +20 -0
  19. package/dist/cjs/element/role/miso-rename.js +20 -0
  20. package/dist/cjs/element/role/miso-subscription.js +20 -0
  21. package/dist/cjs/element/role/miso-threads.js +20 -0
  22. package/dist/cjs/element/role/miso-title.js +20 -0
  23. package/dist/cjs/layout/affiliation/affiliation.js +1 -1
  24. package/dist/cjs/layout/banner/banner.js +2 -1
  25. package/dist/cjs/layout/button/button.js +130 -0
  26. package/dist/cjs/layout/button/checkbox.js +115 -0
  27. package/dist/cjs/layout/button/more-button.js +3 -3
  28. package/dist/cjs/layout/container/container.js +1 -1
  29. package/dist/cjs/layout/error/error.js +2 -1
  30. package/dist/cjs/layout/index.js +28 -0
  31. package/dist/cjs/layout/input/facets.js +4 -3
  32. package/dist/cjs/layout/input/option-list.js +3 -2
  33. package/dist/cjs/layout/input/search-box.js +42 -9
  34. package/dist/cjs/layout/input/select.js +2 -1
  35. package/dist/cjs/layout/list/cards.js +2 -1
  36. package/dist/cjs/layout/list/carousel.js +2 -1
  37. package/dist/cjs/layout/list/collection.js +5 -0
  38. package/dist/cjs/layout/list/gallery.js +2 -1
  39. package/dist/cjs/layout/list/horizontal.js +2 -1
  40. package/dist/cjs/layout/list/list.js +2 -1
  41. package/dist/cjs/layout/list/messages.js +346 -0
  42. package/dist/cjs/layout/list/threads.js +257 -0
  43. package/dist/cjs/layout/mixin/trackable.js +4 -5
  44. package/dist/cjs/layout/mixin/triggerable.js +2 -2
  45. package/dist/cjs/layout/radio/feedback.js +4 -3
  46. package/dist/cjs/layout/templates.js +70 -0
  47. package/dist/cjs/layout/text/text.js +2 -1
  48. package/dist/cjs/layout/text/typewriter/index.js +4 -2
  49. package/dist/cjs/plugin.js +43 -104
  50. package/dist/cjs/util/confirm.js +33 -0
  51. package/dist/cjs/util/modal.js +48 -0
  52. package/dist/cjs/util/prompt.js +47 -0
  53. package/dist/cjs/version.js +1 -1
  54. package/package.json +5 -4
  55. package/src/CLAUDE.md +48 -105
  56. package/src/asset/svgs.js +14 -3
  57. package/src/combo/ask/index.js +2 -2
  58. package/src/constants.js +37 -147
  59. package/src/defaults/ask/controls.js +1 -1
  60. package/src/defaults/hybrid-search/answer-box.js +2 -2
  61. package/src/defaults.js +107 -0
  62. package/src/element/container/index.js +2 -0
  63. package/src/element/container/miso-ask.js +3 -3
  64. package/src/element/container/miso-conversation.js +19 -0
  65. package/src/element/container/miso-explore.js +1 -1
  66. package/src/element/container/miso-history.js +19 -0
  67. package/src/element/container/miso-hybrid-search.js +1 -1
  68. package/src/element/container/miso-recommendation.js +1 -1
  69. package/src/element/container/miso-search.js +1 -1
  70. package/src/element/context/miso-follow-ups.js +1 -1
  71. package/src/element/role/index.js +6 -0
  72. package/src/element/role/miso-messages.js +16 -0
  73. package/src/element/role/miso-new-thread.js +16 -0
  74. package/src/element/role/miso-rename.js +16 -0
  75. package/src/element/role/miso-subscription.js +16 -0
  76. package/src/element/role/miso-threads.js +16 -0
  77. package/src/element/role/miso-title.js +16 -0
  78. package/src/layout/affiliation/affiliation.js +2 -2
  79. package/src/layout/banner/banner.js +2 -1
  80. package/src/layout/button/button.js +116 -0
  81. package/src/layout/button/checkbox.js +91 -0
  82. package/src/layout/button/more-button.js +3 -3
  83. package/src/layout/container/container.js +2 -2
  84. package/src/layout/error/error.js +2 -1
  85. package/src/layout/index.js +4 -0
  86. package/src/layout/input/facets.js +3 -2
  87. package/src/layout/input/option-list.js +3 -2
  88. package/src/layout/input/search-box.js +41 -6
  89. package/src/layout/input/select.js +2 -1
  90. package/src/layout/list/cards.js +2 -1
  91. package/src/layout/list/carousel.js +2 -1
  92. package/src/layout/list/collection.js +6 -1
  93. package/src/layout/list/gallery.js +2 -1
  94. package/src/layout/list/horizontal.js +2 -1
  95. package/src/layout/list/list.js +2 -1
  96. package/src/layout/list/messages.js +318 -0
  97. package/src/layout/list/threads.js +206 -0
  98. package/src/layout/mixin/trackable.js +2 -3
  99. package/src/layout/mixin/triggerable.js +1 -1
  100. package/src/layout/radio/feedback.js +3 -2
  101. package/src/layout/templates.js +62 -0
  102. package/src/layout/text/text.js +2 -1
  103. package/src/layout/text/typewriter/index.js +5 -3
  104. package/src/plugin.js +31 -117
  105. package/src/util/confirm.js +28 -0
  106. package/src/util/modal.js +49 -0
  107. package/src/util/prompt.js +42 -0
  108. package/src/version.js +1 -1
  109. package/dist/cjs/actor/data.js +0 -132
  110. package/dist/cjs/actor/feedback.js +0 -29
  111. package/dist/cjs/actor/fields.js +0 -57
  112. package/dist/cjs/actor/filters.js +0 -161
  113. package/dist/cjs/actor/hub.js +0 -57
  114. package/dist/cjs/actor/index.js +0 -73
  115. package/dist/cjs/actor/interactions.js +0 -36
  116. package/dist/cjs/actor/sessions.js +0 -25
  117. package/dist/cjs/actor/tracker-states.js +0 -61
  118. package/dist/cjs/actor/tracker.js +0 -109
  119. package/dist/cjs/actor/trackers.js +0 -52
  120. package/dist/cjs/actor/utils.js +0 -15
  121. package/dist/cjs/actor/view.js +0 -294
  122. package/dist/cjs/actor/views.js +0 -209
  123. package/dist/cjs/source.js +0 -27
  124. package/dist/cjs/util/proxy.js +0 -88
  125. package/dist/cjs/util/trackers.js +0 -88
  126. package/dist/cjs/workflow/affiliations.js +0 -140
  127. package/dist/cjs/workflow/answer-based.js +0 -337
  128. package/dist/cjs/workflow/ask.js +0 -319
  129. package/dist/cjs/workflow/asks.js +0 -150
  130. package/dist/cjs/workflow/autocompletable.js +0 -63
  131. package/dist/cjs/workflow/autocomplete.js +0 -120
  132. package/dist/cjs/workflow/base.js +0 -418
  133. package/dist/cjs/workflow/context.js +0 -19
  134. package/dist/cjs/workflow/explore.js +0 -210
  135. package/dist/cjs/workflow/explores.js +0 -21
  136. package/dist/cjs/workflow/hybrid-search-answer.js +0 -88
  137. package/dist/cjs/workflow/hybrid-search-views.js +0 -109
  138. package/dist/cjs/workflow/hybrid-search.js +0 -213
  139. package/dist/cjs/workflow/index.js +0 -41
  140. package/dist/cjs/workflow/options/api.js +0 -41
  141. package/dist/cjs/workflow/options/auto-query.js +0 -97
  142. package/dist/cjs/workflow/options/configurable.js +0 -45
  143. package/dist/cjs/workflow/options/data-processor.js +0 -20
  144. package/dist/cjs/workflow/options/filters.js +0 -15
  145. package/dist/cjs/workflow/options/index.js +0 -126
  146. package/dist/cjs/workflow/options/interactions.js +0 -41
  147. package/dist/cjs/workflow/options/layouts.js +0 -79
  148. package/dist/cjs/workflow/options/options.js +0 -156
  149. package/dist/cjs/workflow/options/pagination.js +0 -25
  150. package/dist/cjs/workflow/options/roles.js +0 -15
  151. package/dist/cjs/workflow/options/templates.js +0 -30
  152. package/dist/cjs/workflow/options/trackers.js +0 -83
  153. package/dist/cjs/workflow/options/utils.js +0 -33
  154. package/dist/cjs/workflow/processors.js +0 -607
  155. package/dist/cjs/workflow/recommendation.js +0 -57
  156. package/dist/cjs/workflow/recommendations.js +0 -18
  157. package/dist/cjs/workflow/search-based.js +0 -337
  158. package/dist/cjs/workflow/search.js +0 -64
  159. package/dist/cjs/workflow/unit.js +0 -57
  160. package/dist/cjs/workflow/units.js +0 -42
  161. package/dist/cjs/workflow/use-link.js +0 -49
  162. package/src/actor/data.js +0 -106
  163. package/src/actor/feedback.js +0 -28
  164. package/src/actor/fields.js +0 -51
  165. package/src/actor/filters.js +0 -149
  166. package/src/actor/hub.js +0 -47
  167. package/src/actor/index.js +0 -10
  168. package/src/actor/interactions.js +0 -32
  169. package/src/actor/sessions.js +0 -21
  170. package/src/actor/tracker-states.js +0 -57
  171. package/src/actor/tracker.js +0 -104
  172. package/src/actor/trackers.js +0 -45
  173. package/src/actor/utils.js +0 -7
  174. package/src/actor/view.js +0 -272
  175. package/src/actor/views.js +0 -224
  176. package/src/source.js +0 -17
  177. package/src/util/proxy.js +0 -81
  178. package/src/util/trackers.js +0 -84
  179. package/src/workflow/affiliations.js +0 -121
  180. package/src/workflow/answer-based.js +0 -312
  181. package/src/workflow/ask.js +0 -284
  182. package/src/workflow/asks.js +0 -143
  183. package/src/workflow/autocompletable.js +0 -67
  184. package/src/workflow/autocomplete.js +0 -114
  185. package/src/workflow/base.js +0 -396
  186. package/src/workflow/context.js +0 -16
  187. package/src/workflow/explore.js +0 -194
  188. package/src/workflow/explores.js +0 -18
  189. package/src/workflow/hybrid-search-answer.js +0 -73
  190. package/src/workflow/hybrid-search-views.js +0 -116
  191. package/src/workflow/hybrid-search.js +0 -230
  192. package/src/workflow/index.js +0 -5
  193. package/src/workflow/options/api.js +0 -31
  194. package/src/workflow/options/auto-query.js +0 -70
  195. package/src/workflow/options/configurable.js +0 -48
  196. package/src/workflow/options/data-processor.js +0 -15
  197. package/src/workflow/options/filters.js +0 -10
  198. package/src/workflow/options/index.js +0 -11
  199. package/src/workflow/options/interactions.js +0 -36
  200. package/src/workflow/options/layouts.js +0 -73
  201. package/src/workflow/options/options.js +0 -175
  202. package/src/workflow/options/pagination.js +0 -18
  203. package/src/workflow/options/roles.js +0 -12
  204. package/src/workflow/options/templates.js +0 -27
  205. package/src/workflow/options/trackers.js +0 -80
  206. package/src/workflow/options/utils.js +0 -26
  207. package/src/workflow/processors.js +0 -490
  208. package/src/workflow/recommendation.js +0 -63
  209. package/src/workflow/recommendations.js +0 -14
  210. package/src/workflow/search-based.js +0 -329
  211. package/src/workflow/search.js +0 -73
  212. package/src/workflow/unit.js +0 -51
  213. package/src/workflow/units.js +0 -43
  214. package/src/workflow/use-link.js +0 -41
@@ -57,12 +57,24 @@ Object.defineProperty(exports, "MisoKeywordsElement", {
57
57
  return _misoKeywords.default;
58
58
  }
59
59
  });
60
+ Object.defineProperty(exports, "MisoMessagesElement", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _misoMessages.default;
64
+ }
65
+ });
60
66
  Object.defineProperty(exports, "MisoMoreElement", {
61
67
  enumerable: true,
62
68
  get: function () {
63
69
  return _misoMore.default;
64
70
  }
65
71
  });
72
+ Object.defineProperty(exports, "MisoNewThreadElement", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _misoNewThread.default;
76
+ }
77
+ });
66
78
  Object.defineProperty(exports, "MisoProductsElement", {
67
79
  enumerable: true,
68
80
  get: function () {
@@ -105,6 +117,12 @@ Object.defineProperty(exports, "MisoRelatedResourcesElement", {
105
117
  return _misoRelatedResources.default;
106
118
  }
107
119
  });
120
+ Object.defineProperty(exports, "MisoRenameElement", {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _misoRename.default;
124
+ }
125
+ });
108
126
  Object.defineProperty(exports, "MisoResultsElement", {
109
127
  enumerable: true,
110
128
  get: function () {
@@ -123,6 +141,24 @@ Object.defineProperty(exports, "MisoSourcesElement", {
123
141
  return _misoSources.default;
124
142
  }
125
143
  });
144
+ Object.defineProperty(exports, "MisoSubscriptionElement", {
145
+ enumerable: true,
146
+ get: function () {
147
+ return _misoSubscription.default;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "MisoThreadsElement", {
151
+ enumerable: true,
152
+ get: function () {
153
+ return _misoThreads.default;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, "MisoTitleElement", {
157
+ enumerable: true,
158
+ get: function () {
159
+ return _misoTitle.default;
160
+ }
161
+ });
126
162
  Object.defineProperty(exports, "MisoTotalElement", {
127
163
  enumerable: true,
128
164
  get: function () {
@@ -149,5 +185,11 @@ var _misoTotal = _interopRequireDefault(require("./miso-total.js"));
149
185
  var _misoFacets = _interopRequireDefault(require("./miso-facets.js"));
150
186
  var _misoMore = _interopRequireDefault(require("./miso-more.js"));
151
187
  var _misoSort = _interopRequireDefault(require("./miso-sort.js"));
188
+ var _misoThreads = _interopRequireDefault(require("./miso-threads.js"));
189
+ var _misoNewThread = _interopRequireDefault(require("./miso-new-thread.js"));
190
+ var _misoTitle = _interopRequireDefault(require("./miso-title.js"));
191
+ var _misoRename = _interopRequireDefault(require("./miso-rename.js"));
192
+ var _misoSubscription = _interopRequireDefault(require("./miso-subscription.js"));
193
+ var _misoMessages = _interopRequireDefault(require("./miso-messages.js"));
152
194
  var _misoError = _interopRequireDefault(require("./miso-error.js"));
153
195
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _misoComponent = _interopRequireDefault(require("./miso-component.js"));
8
+ var _constants = require("../../constants.js");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class MisoMessagesElement extends _misoComponent.default {
11
+ constructor() {
12
+ super({
13
+ role: _constants.ROLE.MESSAGES
14
+ });
15
+ }
16
+ static get tagName() {
17
+ return 'miso-messages';
18
+ }
19
+ }
20
+ exports.default = MisoMessagesElement;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _misoComponent = _interopRequireDefault(require("./miso-component.js"));
8
+ var _constants = require("../../constants.js");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class MisoNewThreadElement extends _misoComponent.default {
11
+ constructor() {
12
+ super({
13
+ role: _constants.ROLE.NEW_THREAD
14
+ });
15
+ }
16
+ static get tagName() {
17
+ return 'miso-new-thread';
18
+ }
19
+ }
20
+ exports.default = MisoNewThreadElement;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _misoComponent = _interopRequireDefault(require("./miso-component.js"));
8
+ var _constants = require("../../constants.js");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class MisoRenameElement extends _misoComponent.default {
11
+ constructor() {
12
+ super({
13
+ role: _constants.ROLE.RENAME
14
+ });
15
+ }
16
+ static get tagName() {
17
+ return 'miso-rename';
18
+ }
19
+ }
20
+ exports.default = MisoRenameElement;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _misoComponent = _interopRequireDefault(require("./miso-component.js"));
8
+ var _constants = require("../../constants.js");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class MisoSubscriptionElement extends _misoComponent.default {
11
+ constructor() {
12
+ super({
13
+ role: _constants.ROLE.SUBSCRIPTION
14
+ });
15
+ }
16
+ static get tagName() {
17
+ return 'miso-subscription';
18
+ }
19
+ }
20
+ exports.default = MisoSubscriptionElement;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _misoComponent = _interopRequireDefault(require("./miso-component.js"));
8
+ var _constants = require("../../constants.js");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class MisoThreadsElement extends _misoComponent.default {
11
+ constructor() {
12
+ super({
13
+ role: _constants.ROLE.THREADS
14
+ });
15
+ }
16
+ static get tagName() {
17
+ return 'miso-threads';
18
+ }
19
+ }
20
+ exports.default = MisoThreadsElement;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _misoComponent = _interopRequireDefault(require("./miso-component.js"));
8
+ var _constants = require("../../constants.js");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class MisoTitleElement extends _misoComponent.default {
11
+ constructor() {
12
+ super({
13
+ role: _constants.ROLE.TITLE
14
+ });
15
+ }
16
+ static get tagName() {
17
+ return 'miso-title';
18
+ }
19
+ }
20
+ exports.default = MisoTitleElement;
@@ -13,7 +13,7 @@ var _dom = require("../../util/dom.js");
13
13
  const _excluded = ["className", "templates", "autoplay"];
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
16
- const TYPE = 'affiliation';
16
+ const TYPE = _constants.LAYOUT_TYPE.AFFILIATION;
17
17
  const DEFAULT_CLASSNAME = 'miso-affiliation';
18
18
  function root(layout, state) {
19
19
  const {
@@ -4,12 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _constants = require("../../constants.js");
7
8
  var _template = _interopRequireDefault(require("../template.js"));
8
9
  var _svgs = require("../svgs.js");
9
10
  const _excluded = ["className", "templates"];
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
12
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
12
- const TYPE = 'banner';
13
+ const TYPE = _constants.LAYOUT_TYPE.BANNER;
13
14
  const DEFAULT_CLASSNAME = 'miso-banner';
14
15
  function root(layout) {
15
16
  const {
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _commons = require("@miso.ai/commons");
8
+ var _constants = require("../../constants.js");
9
+ var _template = _interopRequireDefault(require("../template.js"));
10
+ var _svgs = require("../../asset/svgs.js");
11
+ var _prompt = _interopRequireDefault(require("../../util/prompt.js"));
12
+ const _excluded = ["className", "templates"];
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
15
+ const TYPE = _constants.LAYOUT_TYPE.BUTTON;
16
+ const DEFAULT_CLASSNAME = 'miso-button';
17
+ function root(layout, state) {
18
+ const {
19
+ className,
20
+ role,
21
+ templates
22
+ } = layout;
23
+ const roleAttr = role ? ` data-role="${role}"` : '';
24
+ return `<button type="button" class="${className}"${roleAttr}>${templates.icon(layout, state)}${templates.text(layout, state)}</button>`;
25
+ }
26
+ function icon(layout) {
27
+ const {
28
+ icon
29
+ } = layout.options;
30
+ return icon ? (0, _svgs.getIcon)(icon) : '';
31
+ }
32
+ function text(layout) {
33
+ const {
34
+ className,
35
+ options: {
36
+ text
37
+ }
38
+ } = layout;
39
+ return text ? `<span class="${className}__text">${(0, _commons.escapeHtml)(text)}</span>` : '';
40
+ }
41
+ const DEFAULT_TEMPLATES = Object.freeze({
42
+ root,
43
+ icon,
44
+ text
45
+ });
46
+
47
+ /**
48
+ * A generic button: an icon and a label, both configurable (`icon` is an icon
49
+ * name, `text` the label; either can be omitted), emitting a `submit` view
50
+ * event when clicked — for the workflow to act on, per role.
51
+ *
52
+ * It carries no data of its own, so it renders in any state; use it for
53
+ * actions that stand apart from the data they act on, such as the new chat
54
+ * button (role `new_thread`) of the chat history interface.
55
+ *
56
+ * With a `prompt` option, the click asks for a text through the shared
57
+ * prompt dialog first, pre-filled with the control's current value — the
58
+ * role's mapped data value, as of the latest render — and the submit event
59
+ * carries the confirmed text as `value`; a cancelled, cleared, or unchanged
60
+ * dialog submits nothing. Use it for actions that take a text input, such
61
+ * as the rename button (role `rename`) of the conversation header, whose
62
+ * role maps to `'thread.title'`.
63
+ */
64
+ class ButtonLayout extends _template.default {
65
+ static get type() {
66
+ return TYPE;
67
+ }
68
+ static get defaultTemplates() {
69
+ return DEFAULT_TEMPLATES;
70
+ }
71
+ static get defaultClassName() {
72
+ return DEFAULT_CLASSNAME;
73
+ }
74
+ constructor(_ref = {}) {
75
+ let {
76
+ className = DEFAULT_CLASSNAME,
77
+ templates
78
+ } = _ref,
79
+ options = _objectWithoutPropertiesLoose(_ref, _excluded);
80
+ super(Object.assign({
81
+ className,
82
+ templates: Object.assign({}, DEFAULT_TEMPLATES, templates)
83
+ }, options));
84
+ }
85
+ initialize(view) {
86
+ this._unsubscribes = [...this._unsubscribes, view.proxyElement.on('click', event => this._handleClick(event))];
87
+ }
88
+ _handleClick(event) {
89
+ // only left click
90
+ if (event.button !== 0) {
91
+ return;
92
+ }
93
+ const button = event.target.closest(`button.${this.className}`);
94
+ if (!button || button.disabled) {
95
+ return;
96
+ }
97
+ this.options.prompt ? this._submitViaPrompt(event) : this._submit(event);
98
+ }
99
+ _submit(event, payload) {
100
+ const {
101
+ session
102
+ } = this._view._state || {};
103
+ this._view._emit('submit', Object.assign({
104
+ session,
105
+ domEvent: event
106
+ }, payload));
107
+ }
108
+ async _submitViaPrompt(event) {
109
+ const current = this._currentValue();
110
+ const value = await (0, _prompt.default)(Object.assign({
111
+ value: typeof current === 'string' ? current : ''
112
+ }, this.options.prompt));
113
+ if (!value || value === current) {
114
+ return; // cancelled, cleared, or unchanged
115
+ }
116
+ this._submit(event, {
117
+ value
118
+ });
119
+ }
120
+
121
+ /**
122
+ * The current value of the control: the role's mapped data value, as of
123
+ * the latest render.
124
+ */
125
+ _currentValue() {
126
+ const state = this._element && this._rendered.get(this._element);
127
+ return state && state.value;
128
+ }
129
+ }
130
+ exports.default = ButtonLayout;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _commons = require("@miso.ai/commons");
8
+ var _constants = require("../../constants.js");
9
+ var _button = _interopRequireDefault(require("./button.js"));
10
+ var _svgs = require("../../asset/svgs.js");
11
+ const _excluded = ["className", "templates"];
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
14
+ const TYPE = _constants.LAYOUT_TYPE.CHECKBOX;
15
+ const DEFAULT_CLASSNAME = 'miso-checkbox';
16
+ function root(layout, state) {
17
+ const {
18
+ className,
19
+ role,
20
+ templates
21
+ } = layout;
22
+ const checked = isChecked(state);
23
+ const roleAttr = role ? ` data-role="${role}"` : '';
24
+ const checkedAttr = checked ? ' data-checked' : '';
25
+ return `<button type="button" class="${className}" role="switch" aria-checked="${checked}"${roleAttr}${checkedAttr}>${templates.icon(layout, state)}${templates.text(layout, state)}</button>`;
26
+ }
27
+ function icon(layout, state) {
28
+ const {
29
+ icon,
30
+ checkedIcon = icon
31
+ } = layout.options;
32
+ const name = isChecked(state) ? checkedIcon : icon;
33
+ return name ? (0, _svgs.getIcon)(name) : '';
34
+ }
35
+ function text(layout, state) {
36
+ const {
37
+ className,
38
+ options: {
39
+ text,
40
+ checkedText = text
41
+ }
42
+ } = layout;
43
+ const value = isChecked(state) ? checkedText : text;
44
+ return value ? `<span class="${className}__text">${(0, _commons.escapeHtml)(value)}</span>` : '';
45
+ }
46
+
47
+ // the checked state is the mapped data value, so it renders from data alone
48
+ function isChecked({
49
+ value
50
+ } = {}) {
51
+ return value === true;
52
+ }
53
+ const DEFAULT_TEMPLATES = Object.freeze({
54
+ root,
55
+ icon,
56
+ text
57
+ });
58
+
59
+ /**
60
+ * A checkbox that looks like a button: an icon and a label, each with an
61
+ * optional checked variant (`icon`/`text` and `checkedIcon`/`checkedText`,
62
+ * the latter falling back to the former). It is a switch — semantically a
63
+ * checkbox (`role="switch"`, `aria-checked`), visually a button — for
64
+ * on/off state a user toggles, such as the answer-updates subscription of
65
+ * the conversation panel (role `subscription`).
66
+ *
67
+ * The checked state comes from the data (the mapped value is the boolean —
68
+ * e.g. role `subscription` maps to `'thread.subscribed'`), so a click emits
69
+ * a `change` view event carrying the requested state (`{ checked }`) and
70
+ * nothing else: the workflow acts on it and the new state arrives back down
71
+ * the data path, like any other rendering.
72
+ */
73
+ class CheckboxLayout extends _button.default {
74
+ static get type() {
75
+ return TYPE;
76
+ }
77
+ static get defaultTemplates() {
78
+ return DEFAULT_TEMPLATES;
79
+ }
80
+ static get defaultClassName() {
81
+ return DEFAULT_CLASSNAME;
82
+ }
83
+ constructor(_ref = {}) {
84
+ let {
85
+ className = DEFAULT_CLASSNAME,
86
+ templates
87
+ } = _ref,
88
+ options = _objectWithoutPropertiesLoose(_ref, _excluded);
89
+ super(Object.assign({
90
+ className,
91
+ templates: Object.assign({}, DEFAULT_TEMPLATES, templates)
92
+ }, options));
93
+ }
94
+ _handleClick(event) {
95
+ // only left click
96
+ if (event.button !== 0) {
97
+ return;
98
+ }
99
+ const button = event.target.closest(`button.${this.className}`);
100
+ if (!button || button.disabled) {
101
+ return;
102
+ }
103
+ // what the user toggles is the control's current value
104
+ const checked = this._currentValue() === true;
105
+ const {
106
+ session
107
+ } = this._view._state || {};
108
+ this._view._emit('change', {
109
+ session,
110
+ checked: !checked,
111
+ domEvent: event
112
+ });
113
+ }
114
+ }
115
+ exports.default = CheckboxLayout;
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _constants = require("../../constants.js");
8
- var _index = require("../../actor/index.js");
8
+ var _clientSdkWorkflow = require("@miso.ai/client-sdk-workflow");
9
9
  var _template = _interopRequireDefault(require("../template.js"));
10
10
  var _templates = require("../templates.js");
11
11
  const _excluded = ["className", "templates"];
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
14
- const TYPE = 'more-button';
14
+ const TYPE = _constants.LAYOUT_TYPE.MORE_BUTTON;
15
15
  const DEFAULT_CLASSNAME = 'miso-more-button';
16
16
  function root(layout, state) {
17
17
  const {
@@ -67,7 +67,7 @@ class MoreButtonLayout extends _template.default {
67
67
  if (!button || button.disabled) {
68
68
  return;
69
69
  }
70
- this._view.hub.trigger(_index.fields.more());
70
+ this._view.hub.trigger(_clientSdkWorkflow.fields.more());
71
71
  }
72
72
  }
73
73
  exports.default = MoreButtonLayout;
@@ -12,7 +12,7 @@ var _dom = require("../../util/dom.js");
12
12
  const _excluded = ["logo"];
13
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
14
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
15
- const TYPE = 'container';
15
+ const TYPE = _constants.LAYOUT_TYPE.CONTAINER;
16
16
  class ContainerLayout extends _raf.default {
17
17
  static get type() {
18
18
  return TYPE;
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _constants = require("../../constants.js");
7
8
  var _template = _interopRequireDefault(require("../template.js"));
8
9
  const _excluded = ["className", "templates"];
9
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
11
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
11
- const TYPE = 'error';
12
+ const TYPE = _constants.LAYOUT_TYPE.ERROR;
12
13
  const DEFAULT_CLASSNAME = 'miso-error';
13
14
  function root(layout, state) {
14
15
  const {
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "BannerLayout", {
15
15
  return _banner.default;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "ButtonLayout", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _button.default;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "CardsLayout", {
19
25
  enumerable: true,
20
26
  get: function () {
@@ -27,6 +33,12 @@ Object.defineProperty(exports, "CarouselLayout", {
27
33
  return _carousel.default;
28
34
  }
29
35
  });
36
+ Object.defineProperty(exports, "CheckboxLayout", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _checkbox.default;
40
+ }
41
+ });
30
42
  Object.defineProperty(exports, "CollectionLayout", {
31
43
  enumerable: true,
32
44
  get: function () {
@@ -75,6 +87,12 @@ Object.defineProperty(exports, "ListLayout", {
75
87
  return _list.default;
76
88
  }
77
89
  });
90
+ Object.defineProperty(exports, "MessagesLayout", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _messages.default;
94
+ }
95
+ });
78
96
  Object.defineProperty(exports, "MoreButtonLayout", {
79
97
  enumerable: true,
80
98
  get: function () {
@@ -111,6 +129,12 @@ Object.defineProperty(exports, "TextLayout", {
111
129
  return _text.default;
112
130
  }
113
131
  });
132
+ Object.defineProperty(exports, "ThreadsLayout", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _threads.default;
136
+ }
137
+ });
114
138
  Object.defineProperty(exports, "TypewriterLayout", {
115
139
  enumerable: true,
116
140
  get: function () {
@@ -123,6 +147,8 @@ var _error = _interopRequireDefault(require("./error/error.js"));
123
147
  var _banner = _interopRequireDefault(require("./banner/banner.js"));
124
148
  var _collection = _interopRequireDefault(require("./list/collection.js"));
125
149
  var _list = _interopRequireDefault(require("./list/list.js"));
150
+ var _threads = _interopRequireDefault(require("./list/threads.js"));
151
+ var _messages = _interopRequireDefault(require("./list/messages.js"));
126
152
  var _horizontal = _interopRequireDefault(require("./list/horizontal.js"));
127
153
  var _cards = _interopRequireDefault(require("./list/cards.js"));
128
154
  var _carousel = _interopRequireDefault(require("./list/carousel.js"));
@@ -136,4 +162,6 @@ var _affiliation = _interopRequireDefault(require("./affiliation/affiliation.js"
136
162
  var _facets = _interopRequireDefault(require("./input/facets.js"));
137
163
  var _select = _interopRequireDefault(require("./input/select.js"));
138
164
  var _moreButton = _interopRequireDefault(require("./button/more-button.js"));
165
+ var _button = _interopRequireDefault(require("./button/button.js"));
166
+ var _checkbox = _interopRequireDefault(require("./button/checkbox.js"));
139
167
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -4,14 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _constants = require("../../constants.js");
7
8
  var _commons = require("@miso.ai/commons");
8
- var _index = require("../../actor/index.js");
9
+ var _clientSdkWorkflow = require("@miso.ai/client-sdk-workflow");
9
10
  var _template = _interopRequireDefault(require("../template.js"));
10
11
  var _bindings = _interopRequireDefault(require("../../util/bindings.js"));
11
12
  const _excluded = ["className", "templates"];
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
14
- const TYPE = 'facets';
15
+ const TYPE = _constants.LAYOUT_TYPE.FACETS;
15
16
  const DEFAULT_CLASSNAME = 'miso-facets';
16
17
  const DEDAULT_FACET_CLASSNAME = 'miso-facet';
17
18
  const CUSTOM_ATTRIBUTES_PREFIX = 'custom_attributes.';
@@ -158,7 +159,7 @@ class FacetsLayout extends _template.default {
158
159
  this._clearBindings();
159
160
  }
160
161
  _syncSelections() {
161
- const selectedValues = getSelectedValues(this._view.hub.states[_index.fields.filters()].facets);
162
+ const selectedValues = getSelectedValues(this._view.hub.states[_clientSdkWorkflow.fields.filters()].facets);
162
163
  for (const {
163
164
  value: {
164
165
  field,
@@ -4,15 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _constants = require("../../constants.js");
7
8
  var _commons = require("@miso.ai/commons");
8
- var _index = require("../../actor/index.js");
9
+ var _clientSdkWorkflow = require("@miso.ai/client-sdk-workflow");
9
10
  var _template = _interopRequireDefault(require("../template.js"));
10
11
  var _trackable = require("../mixin/trackable.js");
11
12
  var _dom = require("../../util/dom.js");
12
13
  const _excluded = ["className", "templates"];
13
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
15
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
15
- const TYPE = 'option-list';
16
+ const TYPE = _constants.LAYOUT_TYPE.OPTION_LIST;
16
17
  const DEFAULT_CLASSNAME = 'miso-option-list';
17
18
  function root(layout, state) {
18
19
  const {