@nuraly/lumenui 0.2.1 → 0.2.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 (525) hide show
  1. package/dist/nuralyui.bundle.js +2010 -1271
  2. package/dist/nuralyui.bundle.js.gz +0 -0
  3. package/dist/src/components/button/controllers/base.controller.d.ts +15 -0
  4. package/dist/src/components/button/controllers/base.controller.js +13 -0
  5. package/dist/src/components/button/controllers/index.d.ts +10 -0
  6. package/dist/src/components/button/controllers/index.js +10 -0
  7. package/dist/src/components/button/controllers/keyboard.controller.d.ts +32 -0
  8. package/dist/src/components/button/controllers/keyboard.controller.js +78 -0
  9. package/dist/src/components/button/controllers/link.controller.d.ts +30 -0
  10. package/dist/src/components/button/controllers/link.controller.js +75 -0
  11. package/dist/src/components/button/controllers/ripple.controller.d.ts +23 -0
  12. package/dist/src/components/button/controllers/ripple.controller.js +69 -0
  13. package/dist/src/components/button/interfaces/base-controller.interface.d.ts +61 -0
  14. package/dist/src/components/button/interfaces/base-controller.interface.js +7 -0
  15. package/dist/src/components/button/interfaces/index.d.ts +2 -0
  16. package/dist/src/components/button/interfaces/index.js +2 -0
  17. package/dist/src/components/button/test/nr-button_test.d.ts +2 -0
  18. package/dist/src/components/button/test/nr-button_test.js +91 -0
  19. package/dist/src/components/canvas/base-canvas.component.d.ts +2 -1
  20. package/dist/src/components/canvas/base-canvas.component.js +6 -0
  21. package/dist/src/components/canvas/bundle.js +702 -475
  22. package/dist/src/components/canvas/bundle.js.gz +0 -0
  23. package/dist/src/components/canvas/chatbot-panel.style.js +50 -59
  24. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.component.d.ts +115 -0
  25. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.component.js +480 -0
  26. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.style.d.ts +7 -0
  27. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.style.js +323 -0
  28. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger.types.d.ts +162 -0
  29. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger.types.js +88 -0
  30. package/dist/src/components/canvas/chatbot-trigger/index.d.ts +9 -0
  31. package/dist/src/components/canvas/chatbot-trigger/index.js +12 -0
  32. package/dist/src/components/canvas/controllers/base.controller.d.ts +53 -0
  33. package/dist/src/components/canvas/controllers/base.controller.js +80 -0
  34. package/dist/src/components/canvas/controllers/clipboard.controller.d.ts +80 -0
  35. package/dist/src/components/canvas/controllers/clipboard.controller.js +300 -0
  36. package/dist/src/components/canvas/controllers/collaboration.controller.d.ts +54 -0
  37. package/dist/src/components/canvas/controllers/collaboration.controller.js +425 -0
  38. package/dist/src/components/canvas/controllers/config.controller.d.ts +61 -0
  39. package/dist/src/components/canvas/controllers/config.controller.js +118 -0
  40. package/dist/src/components/canvas/controllers/connection.controller.d.ts +69 -0
  41. package/dist/src/components/canvas/controllers/connection.controller.js +183 -0
  42. package/dist/src/components/canvas/controllers/drag.controller.d.ts +56 -0
  43. package/dist/src/components/canvas/controllers/drag.controller.js +195 -0
  44. package/dist/src/components/canvas/controllers/frame.controller.d.ts +94 -0
  45. package/dist/src/components/canvas/controllers/frame.controller.js +456 -0
  46. package/dist/src/components/canvas/controllers/index.d.ts +19 -0
  47. package/dist/src/components/canvas/controllers/index.js +32 -0
  48. package/dist/src/components/canvas/controllers/keyboard.controller.d.ts +44 -0
  49. package/dist/src/components/canvas/controllers/keyboard.controller.js +275 -0
  50. package/dist/src/components/canvas/controllers/marquee.controller.d.ts +71 -0
  51. package/dist/src/components/canvas/controllers/marquee.controller.js +128 -0
  52. package/dist/src/components/canvas/controllers/selection.controller.d.ts +85 -0
  53. package/dist/src/components/canvas/controllers/selection.controller.js +202 -0
  54. package/dist/src/components/canvas/controllers/touch.controller.d.ts +55 -0
  55. package/dist/src/components/canvas/controllers/touch.controller.js +299 -0
  56. package/dist/src/components/canvas/controllers/undo.controller.d.ts +100 -0
  57. package/dist/src/components/canvas/controllers/undo.controller.js +218 -0
  58. package/dist/src/components/canvas/controllers/viewport.controller.d.ts +91 -0
  59. package/dist/src/components/canvas/controllers/viewport.controller.js +287 -0
  60. package/dist/src/components/canvas/data-node/data-node-config.component.d.ts +67 -0
  61. package/dist/src/components/canvas/data-node/data-node-config.component.js +496 -0
  62. package/dist/src/components/canvas/data-node/data-node-fields.component.d.ts +198 -0
  63. package/dist/src/components/canvas/data-node/data-node-fields.component.js +931 -0
  64. package/dist/src/components/canvas/data-node/data-node-fields.style.d.ts +7 -0
  65. package/dist/src/components/canvas/data-node/data-node-fields.style.js +448 -0
  66. package/dist/src/components/canvas/data-node/data-node.types.d.ts +245 -0
  67. package/dist/src/components/canvas/data-node/data-node.types.js +158 -0
  68. package/dist/src/components/canvas/data-node/index.d.ts +9 -0
  69. package/dist/src/components/canvas/data-node/index.js +12 -0
  70. package/dist/src/components/canvas/data-node/schema-select.component.d.ts +36 -0
  71. package/dist/src/components/canvas/data-node/schema-select.component.js +196 -0
  72. package/dist/src/components/canvas/data-node/table-select.component.d.ts +38 -0
  73. package/dist/src/components/canvas/data-node/table-select.component.js +199 -0
  74. package/dist/src/components/canvas/interfaces/canvas-host.interface.d.ts +91 -0
  75. package/dist/src/components/canvas/interfaces/canvas-host.interface.js +7 -0
  76. package/dist/src/components/canvas/interfaces/collaboration.interface.d.ts +58 -0
  77. package/dist/src/components/canvas/interfaces/collaboration.interface.js +10 -0
  78. package/dist/src/components/canvas/interfaces/index.d.ts +8 -0
  79. package/dist/src/components/canvas/interfaces/index.js +7 -0
  80. package/dist/src/components/canvas/templates/chatbot-panel.template.d.ts +28 -0
  81. package/dist/src/components/canvas/templates/chatbot-panel.template.js +49 -0
  82. package/dist/src/components/canvas/templates/config-panel.template.d.ts +22 -0
  83. package/dist/src/components/canvas/templates/config-panel.template.js +22 -0
  84. package/dist/src/components/canvas/templates/context-menu.template.d.ts +30 -0
  85. package/dist/src/components/canvas/templates/context-menu.template.js +80 -0
  86. package/dist/src/components/canvas/templates/edges.template.d.ts +41 -0
  87. package/dist/src/components/canvas/templates/edges.template.js +243 -0
  88. package/dist/src/components/canvas/templates/empty-state.template.d.ts +17 -0
  89. package/dist/src/components/canvas/templates/empty-state.template.js +25 -0
  90. package/dist/src/components/canvas/templates/frame.template.d.ts +24 -0
  91. package/dist/src/components/canvas/templates/frame.template.js +74 -0
  92. package/dist/src/components/canvas/templates/index.d.ts +18 -0
  93. package/dist/src/components/canvas/templates/index.js +30 -0
  94. package/dist/src/components/canvas/templates/palette.template.d.ts +27 -0
  95. package/dist/src/components/canvas/templates/palette.template.js +110 -0
  96. package/dist/src/components/canvas/templates/presence-bar.template.d.ts +18 -0
  97. package/dist/src/components/canvas/templates/presence-bar.template.js +60 -0
  98. package/dist/src/components/canvas/templates/remote-cursors.template.d.ts +19 -0
  99. package/dist/src/components/canvas/templates/remote-cursors.template.js +43 -0
  100. package/dist/src/components/canvas/templates/toolbar.template.d.ts +52 -0
  101. package/dist/src/components/canvas/templates/toolbar.template.js +118 -0
  102. package/dist/src/components/canvas/templates/wb-floating-toolbar.template.d.ts +30 -0
  103. package/dist/src/components/canvas/templates/wb-floating-toolbar.template.js +219 -0
  104. package/dist/src/components/canvas/templates/wb-sidebar.template.d.ts +23 -0
  105. package/dist/src/components/canvas/templates/wb-sidebar.template.js +152 -0
  106. package/dist/src/components/canvas/utils/variable-resolver.d.ts +71 -0
  107. package/dist/src/components/canvas/utils/variable-resolver.js +280 -0
  108. package/dist/src/components/canvas/workflow-canvas.component.js +6 -0
  109. package/dist/src/components/canvas/workflow-canvas.style.js +46 -55
  110. package/dist/src/components/carousel/demo/carousel-demo.d.ts +6 -0
  111. package/dist/src/components/carousel/demo/carousel-demo.js +68 -0
  112. package/dist/src/components/chatbot/audio-compress.d.ts +26 -0
  113. package/dist/src/components/chatbot/audio-compress.js +84 -0
  114. package/dist/src/components/chatbot/bundle.js +388 -144
  115. package/dist/src/components/chatbot/bundle.js.gz +0 -0
  116. package/dist/src/components/chatbot/chatbot-audio.controller.d.ts +35 -0
  117. package/dist/src/components/chatbot/chatbot-audio.controller.js +160 -0
  118. package/dist/src/components/chatbot/chatbot.component.d.ts +12 -0
  119. package/dist/src/components/chatbot/chatbot.component.js +41 -2
  120. package/dist/src/components/chatbot/chatbot.style.js +141 -0
  121. package/dist/src/components/chatbot/chatbot.types.d.ts +8 -0
  122. package/dist/src/components/chatbot/controllers/index.d.ts +8 -0
  123. package/dist/src/components/chatbot/controllers/index.js +8 -0
  124. package/dist/src/components/chatbot/controllers/scroll.controller.d.ts +34 -0
  125. package/dist/src/components/chatbot/controllers/scroll.controller.js +43 -0
  126. package/dist/src/components/chatbot/core/chatbot-core.controller.d.ts +283 -0
  127. package/dist/src/components/chatbot/core/chatbot-core.controller.js +824 -0
  128. package/dist/src/components/chatbot/core/event-bus.d.ts +54 -0
  129. package/dist/src/components/chatbot/core/event-bus.js +102 -0
  130. package/dist/src/components/chatbot/core/index.d.ts +12 -0
  131. package/dist/src/components/chatbot/core/index.js +15 -0
  132. package/dist/src/components/chatbot/core/types.d.ts +403 -0
  133. package/dist/src/components/chatbot/core/types.js +16 -0
  134. package/dist/src/components/chatbot/locales/locale-codes.d.ts +14 -0
  135. package/dist/src/components/chatbot/locales/locale-codes.js +23 -0
  136. package/dist/src/components/chatbot/plugins/analytics-plugin.d.ts +23 -0
  137. package/dist/src/components/chatbot/plugins/analytics-plugin.js +52 -0
  138. package/dist/src/components/chatbot/plugins/artifact-plugin.d.ts +71 -0
  139. package/dist/src/components/chatbot/plugins/artifact-plugin.js +313 -0
  140. package/dist/src/components/chatbot/plugins/chat-plugin.d.ts +44 -0
  141. package/dist/src/components/chatbot/plugins/chat-plugin.js +58 -0
  142. package/dist/src/components/chatbot/plugins/flight-card-plugin.d.ts +116 -0
  143. package/dist/src/components/chatbot/plugins/flight-card-plugin.js +594 -0
  144. package/dist/src/components/chatbot/plugins/flow-diagram-plugin.d.ts +23 -0
  145. package/dist/src/components/chatbot/plugins/flow-diagram-plugin.js +495 -0
  146. package/dist/src/components/chatbot/plugins/index.d.ts +16 -0
  147. package/dist/src/components/chatbot/plugins/index.js +17 -0
  148. package/dist/src/components/chatbot/plugins/json-graph-renderer-plugin.d.ts +43 -0
  149. package/dist/src/components/chatbot/plugins/json-graph-renderer-plugin.js +166 -0
  150. package/dist/src/components/chatbot/plugins/markdown-plugin.d.ts +26 -0
  151. package/dist/src/components/chatbot/plugins/markdown-plugin.js +68 -0
  152. package/dist/src/components/chatbot/plugins/persistence-plugin.d.ts +30 -0
  153. package/dist/src/components/chatbot/plugins/persistence-plugin.js +91 -0
  154. package/dist/src/components/chatbot/plugins/print-job-card-plugin.d.ts +110 -0
  155. package/dist/src/components/chatbot/plugins/print-job-card-plugin.js +505 -0
  156. package/dist/src/components/chatbot/plugins/selection-card-plugin.d.ts +111 -0
  157. package/dist/src/components/chatbot/plugins/selection-card-plugin.js +318 -0
  158. package/dist/src/components/chatbot/providers/custom-api-provider.d.ts +63 -0
  159. package/dist/src/components/chatbot/providers/custom-api-provider.js +240 -0
  160. package/dist/src/components/chatbot/providers/index.d.ts +16 -0
  161. package/dist/src/components/chatbot/providers/index.js +13 -0
  162. package/dist/src/components/chatbot/providers/mock-provider.d.ts +154 -0
  163. package/dist/src/components/chatbot/providers/mock-provider.js +411 -0
  164. package/dist/src/components/chatbot/providers/native-ws-provider.d.ts +184 -0
  165. package/dist/src/components/chatbot/providers/native-ws-provider.js +544 -0
  166. package/dist/src/components/chatbot/providers/openai-provider.d.ts +32 -0
  167. package/dist/src/components/chatbot/providers/openai-provider.js +246 -0
  168. package/dist/src/components/chatbot/providers/socket-provider.d.ts +159 -0
  169. package/dist/src/components/chatbot/providers/socket-provider.js +390 -0
  170. package/dist/src/components/chatbot/providers/workflow-socket-provider.d.ts +116 -0
  171. package/dist/src/components/chatbot/providers/workflow-socket-provider.js +484 -0
  172. package/dist/src/components/chatbot/storage/index.d.ts +7 -0
  173. package/dist/src/components/chatbot/storage/index.js +8 -0
  174. package/dist/src/components/chatbot/storage/storage-implementations.d.ts +43 -0
  175. package/dist/src/components/chatbot/storage/storage-implementations.js +179 -0
  176. package/dist/src/components/chatbot/templates/artifact-panel.template.d.ts +22 -0
  177. package/dist/src/components/chatbot/templates/artifact-panel.template.js +81 -0
  178. package/dist/src/components/chatbot/templates/chatbot-main.template.d.ts +49 -0
  179. package/dist/src/components/chatbot/templates/chatbot-main.template.js +115 -0
  180. package/dist/src/components/chatbot/templates/file-preview-modal.template.d.ts +19 -0
  181. package/dist/src/components/chatbot/templates/file-preview-modal.template.js +74 -0
  182. package/dist/src/components/chatbot/templates/file-upload-area.template.d.ts +19 -0
  183. package/dist/src/components/chatbot/templates/file-upload-area.template.js +29 -0
  184. package/dist/src/components/chatbot/templates/index.d.ts +15 -0
  185. package/dist/src/components/chatbot/templates/index.js +15 -0
  186. package/dist/src/components/chatbot/templates/input-box.template.d.ts +49 -0
  187. package/dist/src/components/chatbot/templates/input-box.template.js +317 -0
  188. package/dist/src/components/chatbot/templates/message.template.d.ts +31 -0
  189. package/dist/src/components/chatbot/templates/message.template.js +214 -0
  190. package/dist/src/components/chatbot/templates/suggestion.template.d.ts +20 -0
  191. package/dist/src/components/chatbot/templates/suggestion.template.js +40 -0
  192. package/dist/src/components/chatbot/templates/thread-sidebar.template.d.ts +24 -0
  193. package/dist/src/components/chatbot/templates/thread-sidebar.template.js +160 -0
  194. package/dist/src/components/chatbot/templates/url-modal.template.d.ts +25 -0
  195. package/dist/src/components/chatbot/templates/url-modal.template.js +100 -0
  196. package/dist/src/components/chatbot/utils/format.d.ts +23 -0
  197. package/dist/src/components/chatbot/utils/format.js +84 -0
  198. package/dist/src/components/chatbot/utils/index.d.ts +7 -0
  199. package/dist/src/components/chatbot/utils/index.js +7 -0
  200. package/dist/src/components/checkbox/mixins/checkbox-event-mixin.d.ts +87 -0
  201. package/dist/src/components/checkbox/mixins/checkbox-event-mixin.js +94 -0
  202. package/dist/src/components/checkbox/mixins/checkbox-focus-mixin.d.ts +55 -0
  203. package/dist/src/components/checkbox/mixins/checkbox-focus-mixin.js +57 -0
  204. package/dist/src/components/checkbox/mixins/index.d.ts +10 -0
  205. package/dist/src/components/checkbox/mixins/index.js +8 -0
  206. package/dist/src/components/checkbox/test/checkbox_test.d.ts +2 -0
  207. package/dist/src/components/checkbox/test/checkbox_test.js +88 -0
  208. package/dist/src/components/collapse/controllers/accordion.controller.d.ts +60 -0
  209. package/dist/src/components/collapse/controllers/accordion.controller.js +132 -0
  210. package/dist/src/components/collapse/controllers/animation.controller.d.ts +40 -0
  211. package/dist/src/components/collapse/controllers/animation.controller.js +125 -0
  212. package/dist/src/components/collapse/controllers/base.controller.d.ts +48 -0
  213. package/dist/src/components/collapse/controllers/base.controller.js +69 -0
  214. package/dist/src/components/collapse/controllers/index.d.ts +12 -0
  215. package/dist/src/components/collapse/controllers/index.js +11 -0
  216. package/dist/src/components/collapse/controllers/keyboard.controller.d.ts +73 -0
  217. package/dist/src/components/collapse/controllers/keyboard.controller.js +186 -0
  218. package/dist/src/components/colorpicker/controllers/base.controller.d.ts +14 -0
  219. package/dist/src/components/colorpicker/controllers/base.controller.js +15 -0
  220. package/dist/src/components/colorpicker/controllers/dropdown.controller.d.ts +60 -0
  221. package/dist/src/components/colorpicker/controllers/dropdown.controller.js +243 -0
  222. package/dist/src/components/colorpicker/controllers/event.controller.d.ts +46 -0
  223. package/dist/src/components/colorpicker/controllers/event.controller.js +130 -0
  224. package/dist/src/components/colorpicker/controllers/index.d.ts +4 -0
  225. package/dist/src/components/colorpicker/controllers/index.js +4 -0
  226. package/dist/src/components/colorpicker/interfaces/index.d.ts +60 -0
  227. package/dist/src/components/colorpicker/interfaces/index.js +2 -0
  228. package/dist/src/components/datepicker/controllers/calendar.controller.d.ts +78 -0
  229. package/dist/src/components/datepicker/controllers/calendar.controller.js +225 -0
  230. package/dist/src/components/datepicker/controllers/index.d.ts +11 -0
  231. package/dist/src/components/datepicker/controllers/index.js +11 -0
  232. package/dist/src/components/datepicker/controllers/keyboard.controller.d.ts +96 -0
  233. package/dist/src/components/datepicker/controllers/keyboard.controller.js +246 -0
  234. package/dist/src/components/datepicker/controllers/month-year-dropdown.controller.d.ts +48 -0
  235. package/dist/src/components/datepicker/controllers/month-year-dropdown.controller.js +92 -0
  236. package/dist/src/components/datepicker/controllers/positioning.controller.d.ts +82 -0
  237. package/dist/src/components/datepicker/controllers/positioning.controller.js +247 -0
  238. package/dist/src/components/datepicker/controllers/selection.controller.d.ts +92 -0
  239. package/dist/src/components/datepicker/controllers/selection.controller.js +267 -0
  240. package/dist/src/components/datepicker/interfaces/base-controller.interface.d.ts +40 -0
  241. package/dist/src/components/datepicker/interfaces/base-controller.interface.js +7 -0
  242. package/dist/src/components/datepicker/interfaces/datepicker-controllers.interface.d.ts +112 -0
  243. package/dist/src/components/datepicker/interfaces/datepicker-controllers.interface.js +7 -0
  244. package/dist/src/components/datepicker/interfaces/index.d.ts +8 -0
  245. package/dist/src/components/datepicker/interfaces/index.js +7 -0
  246. package/dist/src/components/datepicker/templates/days.template.d.ts +4 -0
  247. package/dist/src/components/datepicker/templates/days.template.js +40 -0
  248. package/dist/src/components/datepicker/templates/dropdown.template.d.ts +10 -0
  249. package/dist/src/components/datepicker/templates/dropdown.template.js +50 -0
  250. package/dist/src/components/datepicker/templates/headers.template.d.ts +2 -0
  251. package/dist/src/components/datepicker/templates/headers.template.js +5 -0
  252. package/dist/src/components/datepicker/templates/months.template.d.ts +6 -0
  253. package/dist/src/components/datepicker/templates/months.template.js +10 -0
  254. package/dist/src/components/datepicker/templates/years.template.d.ts +6 -0
  255. package/dist/src/components/datepicker/templates/years.template.js +11 -0
  256. package/dist/src/components/datepicker/test/datepicker_test.d.ts +2 -0
  257. package/dist/src/components/datepicker/test/datepicker_test.js +134 -0
  258. package/dist/src/components/datepicker/utils/day.helper.d.ts +5 -0
  259. package/dist/src/components/datepicker/utils/day.helper.js +53 -0
  260. package/dist/src/components/datepicker/utils/formatter.d.ts +2 -0
  261. package/dist/src/components/datepicker/utils/formatter.js +9 -0
  262. package/dist/src/components/datepicker/utils/index.d.ts +11 -0
  263. package/dist/src/components/datepicker/utils/index.js +11 -0
  264. package/dist/src/components/datepicker/utils/locale.helper.d.ts +144 -0
  265. package/dist/src/components/datepicker/utils/locale.helper.js +151 -0
  266. package/dist/src/components/datepicker/utils/month.helper.d.ts +3 -0
  267. package/dist/src/components/datepicker/utils/month.helper.js +24 -0
  268. package/dist/src/components/datepicker/utils/string.helper.d.ts +2 -0
  269. package/dist/src/components/datepicker/utils/string.helper.js +4 -0
  270. package/dist/src/components/document/demo/document-demo.d.ts +12 -0
  271. package/dist/src/components/document/demo/document-demo.js +40 -0
  272. package/dist/src/components/dropdown/controllers/base.controller.d.ts +18 -0
  273. package/dist/src/components/dropdown/controllers/base.controller.js +22 -0
  274. package/dist/src/components/dropdown/controllers/dropdown.controller.d.ts +50 -0
  275. package/dist/src/components/dropdown/controllers/dropdown.controller.js +408 -0
  276. package/dist/src/components/dropdown/controllers/index.d.ts +3 -0
  277. package/dist/src/components/dropdown/controllers/index.js +3 -0
  278. package/dist/src/components/dropdown/interfaces/controller-interfaces.d.ts +79 -0
  279. package/dist/src/components/dropdown/interfaces/controller-interfaces.js +2 -0
  280. package/dist/src/components/dropdown/interfaces/index.d.ts +2 -0
  281. package/dist/src/components/dropdown/interfaces/index.js +2 -0
  282. package/dist/src/components/dropdown/templates/nr-dropdown-item.d.ts +12 -0
  283. package/dist/src/components/dropdown/templates/nr-dropdown-item.js +55 -0
  284. package/dist/src/components/dropdown/templates/nr-dropdown-item.style.d.ts +2 -0
  285. package/dist/src/components/dropdown/templates/nr-dropdown-item.style.js +34 -0
  286. package/dist/src/components/dropdown/templates/nr-dropdown-menu.d.ts +18 -0
  287. package/dist/src/components/dropdown/templates/nr-dropdown-menu.js +70 -0
  288. package/dist/src/components/dropdown/templates/nr-dropdown-menu.style.d.ts +2 -0
  289. package/dist/src/components/dropdown/templates/nr-dropdown-menu.style.js +49 -0
  290. package/dist/src/components/file-upload/demo/file-upload-demo.d.ts +18 -0
  291. package/dist/src/components/file-upload/demo/file-upload-demo.js +156 -0
  292. package/dist/src/components/form/controllers/submission.controller.d.ts +60 -0
  293. package/dist/src/components/form/controllers/submission.controller.js +220 -0
  294. package/dist/src/components/form/controllers/validation.controller.d.ts +87 -0
  295. package/dist/src/components/form/controllers/validation.controller.js +236 -0
  296. package/dist/src/components/form/interfaces/validation.interface.d.ts +118 -0
  297. package/dist/src/components/form/interfaces/validation.interface.js +7 -0
  298. package/dist/src/components/icon/mixins/clickable-mixin.d.ts +57 -0
  299. package/dist/src/components/icon/mixins/clickable-mixin.js +111 -0
  300. package/dist/src/components/icon/mixins/index.d.ts +7 -0
  301. package/dist/src/components/icon/mixins/index.js +7 -0
  302. package/dist/src/components/iconpicker/controllers/event.controller.d.ts +38 -0
  303. package/dist/src/components/iconpicker/controllers/event.controller.js +68 -0
  304. package/dist/src/components/iconpicker/controllers/index.d.ts +9 -0
  305. package/dist/src/components/iconpicker/controllers/index.js +9 -0
  306. package/dist/src/components/iconpicker/controllers/search.controller.d.ts +34 -0
  307. package/dist/src/components/iconpicker/controllers/search.controller.js +55 -0
  308. package/dist/src/components/iconpicker/controllers/selection.controller.d.ts +27 -0
  309. package/dist/src/components/iconpicker/controllers/selection.controller.js +39 -0
  310. package/dist/src/components/iconpicker/interfaces/icon-picker.interface.d.ts +13 -0
  311. package/dist/src/components/iconpicker/interfaces/icon-picker.interface.js +7 -0
  312. package/dist/src/components/iconpicker/interfaces/index.d.ts +7 -0
  313. package/dist/src/components/iconpicker/interfaces/index.js +7 -0
  314. package/dist/src/components/iconpicker/utils/icon-filter.utils.d.ts +29 -0
  315. package/dist/src/components/iconpicker/utils/icon-filter.utils.js +96 -0
  316. package/dist/src/components/iconpicker/utils/icon-loader.utils.d.ts +39 -0
  317. package/dist/src/components/iconpicker/utils/icon-loader.utils.js +115 -0
  318. package/dist/src/components/iconpicker/utils/index.d.ts +8 -0
  319. package/dist/src/components/iconpicker/utils/index.js +8 -0
  320. package/dist/src/components/iconpicker/utils/lucide-icons.d.ts +10 -0
  321. package/dist/src/components/iconpicker/utils/lucide-icons.js +1624 -0
  322. package/dist/src/components/input/controllers/base.controller.d.ts +35 -0
  323. package/dist/src/components/input/controllers/base.controller.js +13 -0
  324. package/dist/src/components/input/controllers/event.controller.d.ts +111 -0
  325. package/dist/src/components/input/controllers/event.controller.js +355 -0
  326. package/dist/src/components/input/controllers/index.d.ts +14 -0
  327. package/dist/src/components/input/controllers/index.js +10 -0
  328. package/dist/src/components/input/controllers/state.controller.d.ts +153 -0
  329. package/dist/src/components/input/controllers/state.controller.js +245 -0
  330. package/dist/src/components/input/controllers/validation.controller.d.ts +205 -0
  331. package/dist/src/components/input/controllers/validation.controller.js +698 -0
  332. package/dist/src/components/input/mixins/focus-mixin.d.ts +60 -0
  333. package/dist/src/components/input/mixins/focus-mixin.js +65 -0
  334. package/dist/src/components/input/mixins/index.d.ts +12 -0
  335. package/dist/src/components/input/mixins/index.js +9 -0
  336. package/dist/src/components/input/mixins/number-mixin.d.ts +51 -0
  337. package/dist/src/components/input/mixins/number-mixin.js +128 -0
  338. package/dist/src/components/input/mixins/selection-mixin.d.ts +57 -0
  339. package/dist/src/components/input/mixins/selection-mixin.js +80 -0
  340. package/dist/src/components/input/test/nr-input_test.d.ts +2 -0
  341. package/dist/src/components/input/test/nr-input_test.js +159 -0
  342. package/dist/src/components/input/utils/index.d.ts +8 -0
  343. package/dist/src/components/input/utils/index.js +8 -0
  344. package/dist/src/components/input/utils/input-renderers.d.ts +54 -0
  345. package/dist/src/components/input/utils/input-renderers.js +178 -0
  346. package/dist/src/components/input/utils/input-validation.utils.d.ts +26 -0
  347. package/dist/src/components/input/utils/input-validation.utils.js +103 -0
  348. package/dist/src/components/menu/controllers/accessibility.controller.d.ts +86 -0
  349. package/dist/src/components/menu/controllers/accessibility.controller.js +235 -0
  350. package/dist/src/components/menu/controllers/base.controller.d.ts +41 -0
  351. package/dist/src/components/menu/controllers/base.controller.js +61 -0
  352. package/dist/src/components/menu/controllers/index.d.ts +10 -0
  353. package/dist/src/components/menu/controllers/index.js +10 -0
  354. package/dist/src/components/menu/controllers/keyboard.controller.d.ts +84 -0
  355. package/dist/src/components/menu/controllers/keyboard.controller.js +328 -0
  356. package/dist/src/components/menu/controllers/state.controller.d.ts +106 -0
  357. package/dist/src/components/menu/controllers/state.controller.js +249 -0
  358. package/dist/src/components/menu/interfaces/controller.interface.d.ts +51 -0
  359. package/dist/src/components/menu/interfaces/controller.interface.js +7 -0
  360. package/dist/src/components/menu/interfaces/index.d.ts +7 -0
  361. package/dist/src/components/menu/interfaces/index.js +7 -0
  362. package/dist/src/components/modal/controllers/index.d.ts +8 -0
  363. package/dist/src/components/modal/controllers/index.js +8 -0
  364. package/dist/src/components/modal/controllers/modal-drag-controller.d.ts +39 -0
  365. package/dist/src/components/modal/controllers/modal-drag-controller.js +108 -0
  366. package/dist/src/components/modal/controllers/modal-keyboard-controller.d.ts +36 -0
  367. package/dist/src/components/modal/controllers/modal-keyboard-controller.js +128 -0
  368. package/dist/src/components/panel/controllers/index.d.ts +8 -0
  369. package/dist/src/components/panel/controllers/index.js +8 -0
  370. package/dist/src/components/panel/controllers/panel-drag-controller.d.ts +40 -0
  371. package/dist/src/components/panel/controllers/panel-drag-controller.js +118 -0
  372. package/dist/src/components/panel/controllers/panel-resize-controller.d.ts +37 -0
  373. package/dist/src/components/panel/controllers/panel-resize-controller.js +124 -0
  374. package/dist/src/components/presence/bundle.js +528 -0
  375. package/dist/src/components/presence/bundle.js.gz +0 -0
  376. package/dist/src/components/presence/index.d.ts +10 -0
  377. package/dist/src/components/presence/index.js +10 -0
  378. package/dist/src/components/presence/presence-avatars.component.d.ts +40 -0
  379. package/dist/src/components/presence/presence-avatars.component.js +83 -0
  380. package/dist/src/components/presence/presence-avatars.style.d.ts +7 -0
  381. package/dist/src/components/presence/presence-avatars.style.js +105 -0
  382. package/dist/src/components/presence/presence-chat.component.d.ts +53 -0
  383. package/dist/src/components/presence/presence-chat.component.js +228 -0
  384. package/dist/src/components/presence/presence-chat.style.d.ts +7 -0
  385. package/dist/src/components/presence/presence-chat.style.js +248 -0
  386. package/dist/src/components/presence/presence.component.d.ts +71 -0
  387. package/dist/src/components/presence/presence.component.js +263 -0
  388. package/dist/src/components/presence/presence.style.d.ts +7 -0
  389. package/dist/src/components/presence/presence.style.js +12 -0
  390. package/dist/src/components/presence/presence.types.d.ts +31 -0
  391. package/dist/src/components/presence/presence.types.js +7 -0
  392. package/dist/src/components/presence/react.d.ts +24 -0
  393. package/dist/src/components/presence/react.js +41 -0
  394. package/dist/src/components/radio-group/controllers/focus.controller.d.ts +98 -0
  395. package/dist/src/components/radio-group/controllers/focus.controller.js +216 -0
  396. package/dist/src/components/radio-group/controllers/group.controller.d.ts +140 -0
  397. package/dist/src/components/radio-group/controllers/group.controller.js +179 -0
  398. package/dist/src/components/radio-group/controllers/index.d.ts +11 -0
  399. package/dist/src/components/radio-group/controllers/index.js +11 -0
  400. package/dist/src/components/radio-group/controllers/keyboard.controller.d.ts +24 -0
  401. package/dist/src/components/radio-group/controllers/keyboard.controller.js +93 -0
  402. package/dist/src/components/radio-group/controllers/ripple.controller.d.ts +59 -0
  403. package/dist/src/components/radio-group/controllers/ripple.controller.js +208 -0
  404. package/dist/src/components/radio-group/controllers/validation.controller.d.ts +73 -0
  405. package/dist/src/components/radio-group/controllers/validation.controller.js +108 -0
  406. package/dist/src/components/radio-group/interfaces/base-controller.interface.d.ts +75 -0
  407. package/dist/src/components/radio-group/interfaces/base-controller.interface.js +7 -0
  408. package/dist/src/components/radio-group/interfaces/focus-controller.interface.d.ts +40 -0
  409. package/dist/src/components/radio-group/interfaces/focus-controller.interface.js +7 -0
  410. package/dist/src/components/radio-group/interfaces/index.d.ts +11 -0
  411. package/dist/src/components/radio-group/interfaces/index.js +7 -0
  412. package/dist/src/components/radio-group/interfaces/ripple-controller.interface.d.ts +31 -0
  413. package/dist/src/components/radio-group/interfaces/ripple-controller.interface.js +7 -0
  414. package/dist/src/components/radio-group/interfaces/selection-controller.interface.d.ts +45 -0
  415. package/dist/src/components/radio-group/interfaces/selection-controller.interface.js +7 -0
  416. package/dist/src/components/radio-group/interfaces/validation-controller.interface.d.ts +48 -0
  417. package/dist/src/components/radio-group/interfaces/validation-controller.interface.js +7 -0
  418. package/dist/src/components/radio-group/test/radio_test.d.ts +2 -0
  419. package/dist/src/components/radio-group/test/radio_test.js +79 -0
  420. package/dist/src/components/select/controllers/base.controller.d.ts +10 -0
  421. package/dist/src/components/select/controllers/base.controller.js +8 -0
  422. package/dist/src/components/select/controllers/dropdown.controller.d.ts +76 -0
  423. package/dist/src/components/select/controllers/dropdown.controller.js +281 -0
  424. package/dist/src/components/select/controllers/event.controller.d.ts +54 -0
  425. package/dist/src/components/select/controllers/event.controller.js +113 -0
  426. package/dist/src/components/select/controllers/focus.controller.d.ts +79 -0
  427. package/dist/src/components/select/controllers/focus.controller.js +230 -0
  428. package/dist/src/components/select/controllers/index.d.ts +9 -0
  429. package/dist/src/components/select/controllers/index.js +9 -0
  430. package/dist/src/components/select/controllers/keyboard.controller.d.ts +75 -0
  431. package/dist/src/components/select/controllers/keyboard.controller.js +369 -0
  432. package/dist/src/components/select/controllers/search.controller.d.ts +71 -0
  433. package/dist/src/components/select/controllers/search.controller.js +167 -0
  434. package/dist/src/components/select/controllers/selection.controller.d.ts +67 -0
  435. package/dist/src/components/select/controllers/selection.controller.js +217 -0
  436. package/dist/src/components/select/controllers/validation.controller.d.ts +66 -0
  437. package/dist/src/components/select/controllers/validation.controller.js +189 -0
  438. package/dist/src/components/select/interfaces/base-controller.interface.d.ts +147 -0
  439. package/dist/src/components/select/interfaces/base-controller.interface.js +2 -0
  440. package/dist/src/components/select/interfaces/controller-interfaces.d.ts +94 -0
  441. package/dist/src/components/select/interfaces/controller-interfaces.js +11 -0
  442. package/dist/src/components/select/interfaces/index.d.ts +3 -0
  443. package/dist/src/components/select/interfaces/index.js +3 -0
  444. package/dist/src/components/slider-input/utils/debounce.d.ts +2 -0
  445. package/dist/src/components/slider-input/utils/debounce.js +8 -0
  446. package/dist/src/components/slider-input/utils/index.d.ts +2 -0
  447. package/dist/src/components/slider-input/utils/index.js +2 -0
  448. package/dist/src/components/table/controllers/base.controller.d.ts +15 -0
  449. package/dist/src/components/table/controllers/base.controller.js +13 -0
  450. package/dist/src/components/table/controllers/filter.controller.d.ts +48 -0
  451. package/dist/src/components/table/controllers/filter.controller.js +152 -0
  452. package/dist/src/components/table/controllers/index.d.ts +11 -0
  453. package/dist/src/components/table/controllers/index.js +11 -0
  454. package/dist/src/components/table/controllers/pagination.controller.d.ts +36 -0
  455. package/dist/src/components/table/controllers/pagination.controller.js +110 -0
  456. package/dist/src/components/table/controllers/selection.controller.d.ts +40 -0
  457. package/dist/src/components/table/controllers/selection.controller.js +120 -0
  458. package/dist/src/components/table/controllers/sort.controller.d.ts +32 -0
  459. package/dist/src/components/table/controllers/sort.controller.js +102 -0
  460. package/dist/src/components/table/interfaces/index.d.ts +7 -0
  461. package/dist/src/components/table/interfaces/index.js +7 -0
  462. package/dist/src/components/table/interfaces/table-host.interface.d.ts +48 -0
  463. package/dist/src/components/table/interfaces/table-host.interface.js +7 -0
  464. package/dist/src/components/table/templates/actions.template.d.ts +14 -0
  465. package/dist/src/components/table/templates/actions.template.js +15 -0
  466. package/dist/src/components/table/templates/column-filter.template.d.ts +24 -0
  467. package/dist/src/components/table/templates/column-filter.template.js +76 -0
  468. package/dist/src/components/table/templates/content.template.d.ts +37 -0
  469. package/dist/src/components/table/templates/content.template.js +208 -0
  470. package/dist/src/components/table/templates/empty.template.d.ts +8 -0
  471. package/dist/src/components/table/templates/empty.template.js +47 -0
  472. package/dist/src/components/table/templates/filter.template.d.ts +14 -0
  473. package/dist/src/components/table/templates/filter.template.js +28 -0
  474. package/dist/src/components/table/templates/index.d.ts +8 -0
  475. package/dist/src/components/table/templates/index.js +8 -0
  476. package/dist/src/components/table/templates/loading.template.d.ts +21 -0
  477. package/dist/src/components/table/templates/loading.template.js +51 -0
  478. package/dist/src/components/table/templates/pagination.template.d.ts +24 -0
  479. package/dist/src/components/table/templates/pagination.template.js +52 -0
  480. package/dist/src/components/tabs/controllers/base.controller.d.ts +49 -0
  481. package/dist/src/components/tabs/controllers/base.controller.js +26 -0
  482. package/dist/src/components/tabs/controllers/dragdrop.controller.d.ts +84 -0
  483. package/dist/src/components/tabs/controllers/dragdrop.controller.js +202 -0
  484. package/dist/src/components/tabs/controllers/editable.controller.d.ts +100 -0
  485. package/dist/src/components/tabs/controllers/editable.controller.js +242 -0
  486. package/dist/src/components/tabs/controllers/event.controller.d.ts +104 -0
  487. package/dist/src/components/tabs/controllers/event.controller.js +239 -0
  488. package/dist/src/components/tabs/controllers/index.d.ts +12 -0
  489. package/dist/src/components/tabs/controllers/index.js +18 -0
  490. package/dist/src/components/tabs/controllers/keyboard.controller.d.ts +85 -0
  491. package/dist/src/components/tabs/controllers/keyboard.controller.js +233 -0
  492. package/dist/src/components/tabs/controllers/popout.controller.d.ts +96 -0
  493. package/dist/src/components/tabs/controllers/popout.controller.js +441 -0
  494. package/dist/src/components/textarea/controllers/base.controller.d.ts +43 -0
  495. package/dist/src/components/textarea/controllers/base.controller.js +19 -0
  496. package/dist/src/components/textarea/controllers/event.controller.d.ts +169 -0
  497. package/dist/src/components/textarea/controllers/event.controller.js +408 -0
  498. package/dist/src/components/textarea/controllers/index.d.ts +9 -0
  499. package/dist/src/components/textarea/controllers/index.js +9 -0
  500. package/dist/src/components/textarea/controllers/validation.controller.d.ts +133 -0
  501. package/dist/src/components/textarea/controllers/validation.controller.js +315 -0
  502. package/dist/src/components/timepicker/controllers/formatting.controller.d.ts +93 -0
  503. package/dist/src/components/timepicker/controllers/formatting.controller.js +195 -0
  504. package/dist/src/components/timepicker/controllers/index.d.ts +9 -0
  505. package/dist/src/components/timepicker/controllers/index.js +9 -0
  506. package/dist/src/components/timepicker/controllers/selection.controller.d.ts +72 -0
  507. package/dist/src/components/timepicker/controllers/selection.controller.js +175 -0
  508. package/dist/src/components/timepicker/controllers/validation.controller.d.ts +88 -0
  509. package/dist/src/components/timepicker/controllers/validation.controller.js +200 -0
  510. package/dist/src/components/timepicker/interfaces/timepicker.interface.d.ts +103 -0
  511. package/dist/src/components/timepicker/interfaces/timepicker.interface.js +7 -0
  512. package/dist/src/components/timepicker/test/timepicker_test.d.ts +7 -0
  513. package/dist/src/components/timepicker/test/timepicker_test.js +218 -0
  514. package/dist/src/components/timepicker/utils/time.utils.d.ts +87 -0
  515. package/dist/src/components/timepicker/utils/time.utils.js +235 -0
  516. package/dist/src/components/toast/controllers/base.controller.d.ts +20 -0
  517. package/dist/src/components/toast/controllers/base.controller.js +12 -0
  518. package/dist/src/components/toast/controllers/index.d.ts +8 -0
  519. package/dist/src/components/toast/controllers/index.js +7 -0
  520. package/dist/src/components/tooltips/demo/tooltips-demo.d.ts +18 -0
  521. package/dist/src/components/tooltips/demo/tooltips-demo.js +132 -0
  522. package/dist/src/components/tooltips/test/tooltips_test.d.ts +2 -0
  523. package/dist/src/components/tooltips/test/tooltips_test.js +145 -0
  524. package/package.json +27 -1
  525. package/packages/common/dist/VERSIONS.md +1 -1
@@ -0,0 +1,318 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ import { ChatPluginBase } from './chat-plugin.js';
16
+ /**
17
+ * Selection Card Plugin — renders clickable option cards inside bot messages.
18
+ *
19
+ * When the user clicks a card, the option's value is sent as a user message
20
+ * (like quick replies in messaging apps).
21
+ *
22
+ * @example Basic usage
23
+ * ```typescript
24
+ * const selectionPlugin = new SelectionCardPlugin();
25
+ * controller.registerPlugin(selectionPlugin);
26
+ * ```
27
+ *
28
+ * @example JSON format in message
29
+ * ```json
30
+ * {
31
+ * "type": "selection",
32
+ * "title": "What would you like to do?",
33
+ * "options": [
34
+ * { "label": "Check Order", "value": "check_order" },
35
+ * { "label": "Contact Support", "value": "contact_support" }
36
+ * ],
37
+ * "columns": 2
38
+ * }
39
+ * ```
40
+ *
41
+ * @example Markup format in message
42
+ * ```
43
+ * [SELECTION]{ "title": "Pick one", "options": [...] }[/SELECTION]
44
+ * ```
45
+ */
46
+ export class SelectionCardPlugin extends ChatPluginBase {
47
+ constructor() {
48
+ super(...arguments);
49
+ this.id = 'selection-card';
50
+ this.name = 'Selection Card Plugin';
51
+ this.version = '1.0.0';
52
+ this.htmlTags = [
53
+ { name: 'selection', open: '[SELECTION]', close: '[/SELECTION]' }
54
+ ];
55
+ /**
56
+ * CSS class prefix for styling
57
+ */
58
+ this.cssPrefix = 'nr-selection-card';
59
+ }
60
+ /**
61
+ * Render a skeleton placeholder while the selection data is streaming
62
+ */
63
+ renderHtmlBlockPlaceholder(name) {
64
+ if (name.toLowerCase() !== 'selection')
65
+ return '';
66
+ const placeholderId = `selection-skeleton-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
67
+ return `<div data-placeholder-id="${placeholderId}"><nr-skeleton
68
+ active
69
+ style="min-width: 300px; max-width: 500px; height: 80px; margin: 16px 0;"
70
+ ></nr-skeleton></div>`;
71
+ }
72
+ onInit() {
73
+ console.log('[SelectionCardPlugin] Initialized');
74
+ }
75
+ /**
76
+ * Process received messages and convert selection data to cards
77
+ */
78
+ afterReceive(text) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ // Try to parse as JSON first (for structured selection data)
81
+ try {
82
+ const data = JSON.parse(text);
83
+ if (data.type === 'selection' || this.isSelectionData(data)) {
84
+ return this.renderSelectionCard(data);
85
+ }
86
+ }
87
+ catch (_a) {
88
+ // Not JSON, continue with text processing
89
+ }
90
+ // Look for selection data markers in text
91
+ const selectionPattern = /\[SELECTION\]([\s\S]*?)\[\/SELECTION\]/g;
92
+ let transformed = text;
93
+ let match;
94
+ while ((match = selectionPattern.exec(text)) !== null) {
95
+ try {
96
+ const selectionData = JSON.parse(match[1]);
97
+ const card = this.renderSelectionCard(selectionData);
98
+ transformed = transformed.replace(match[0], card);
99
+ }
100
+ catch (e) {
101
+ console.warn('[SelectionCardPlugin] Failed to parse selection data:', e);
102
+ }
103
+ }
104
+ return transformed;
105
+ });
106
+ }
107
+ /**
108
+ * Render a completed [SELECTION]...[/SELECTION] block when tokenized by the Provider/Service
109
+ */
110
+ renderHtmlBlock(name, content) {
111
+ if (name.toLowerCase() !== 'selection')
112
+ return '';
113
+ try {
114
+ const data = JSON.parse(content);
115
+ return this.renderSelectionCard(data);
116
+ }
117
+ catch (e) {
118
+ console.warn('[SelectionCardPlugin] renderHtmlBlock parse error:', e);
119
+ return '';
120
+ }
121
+ }
122
+ /**
123
+ * Check if data object contains selection information
124
+ */
125
+ isSelectionData(data) {
126
+ return (data &&
127
+ typeof data === 'object' &&
128
+ Array.isArray(data.options) &&
129
+ data.options.length > 0 &&
130
+ data.options[0].label &&
131
+ data.options[0].value);
132
+ }
133
+ /**
134
+ * Render selection choice card HTML.
135
+ * Override this method to customize the card appearance.
136
+ */
137
+ renderSelectionCard(data) {
138
+ const { title, options, columns = 1 } = data;
139
+ const styleTag = this.getOncePerConversationStyleTag(this.getStyles());
140
+ const optionsHtml = options.map(option => {
141
+ const disabledAttr = option.disabled ? 'aria-disabled="true"' : '';
142
+ const disabledClass = option.disabled ? `${this.cssPrefix}__option--disabled` : '';
143
+ const tabIndex = option.disabled ? '-1' : '0';
144
+ const dataAttr = option.disabled ? '' : `data-selection-value="${this.escapeHtml(option.value)}"`;
145
+ return `
146
+ <div class="${this.cssPrefix}__option ${disabledClass}"
147
+ ${dataAttr}
148
+ role="button"
149
+ tabindex="${tabIndex}"
150
+ ${disabledAttr}>
151
+ ${option.icon ? `<nr-icon class="${this.cssPrefix}__option-icon" name="${this.escapeHtml(option.icon)}" size="small"></nr-icon>` : ''}
152
+ <div class="${this.cssPrefix}__option-content">
153
+ <span class="${this.cssPrefix}__option-label">${this.escapeHtml(option.label)}</span>
154
+ ${option.description ? `<span class="${this.cssPrefix}__option-description">${this.escapeHtml(option.description)}</span>` : ''}
155
+ </div>
156
+ </div>
157
+ `;
158
+ }).join('');
159
+ return `
160
+ ${styleTag}
161
+ <div class="${this.cssPrefix}" data-nr-selection-card="true">
162
+ ${title ? `<div class="${this.cssPrefix}__title">${this.escapeHtml(title)}</div>` : ''}
163
+ <div class="${this.cssPrefix}__grid ${this.cssPrefix}__grid--cols-${columns}">
164
+ ${optionsHtml}
165
+ </div>
166
+ </div>
167
+ `;
168
+ }
169
+ /**
170
+ * Escape HTML to prevent XSS
171
+ */
172
+ escapeHtml(text) {
173
+ const div = document.createElement('div');
174
+ div.textContent = text;
175
+ return div.innerHTML;
176
+ }
177
+ /**
178
+ * Default styles for the selection card.
179
+ * Override this method to provide custom styles.
180
+ */
181
+ getStyles() {
182
+ return `
183
+ .${this.cssPrefix} {
184
+ margin: 12px 0;
185
+ max-width: 500px;
186
+ font-family: system-ui, -apple-system, sans-serif;
187
+ }
188
+
189
+ .${this.cssPrefix}__title {
190
+ font-size: 14px;
191
+ font-weight: 600;
192
+ color: #1a1a1a;
193
+ margin-bottom: 10px;
194
+ }
195
+
196
+ .${this.cssPrefix}__grid {
197
+ display: grid;
198
+ gap: 8px;
199
+ }
200
+
201
+ .${this.cssPrefix}__grid--cols-1 {
202
+ grid-template-columns: 1fr;
203
+ }
204
+
205
+ .${this.cssPrefix}__grid--cols-2 {
206
+ grid-template-columns: 1fr 1fr;
207
+ }
208
+
209
+ .${this.cssPrefix}__grid--cols-3 {
210
+ grid-template-columns: 1fr 1fr 1fr;
211
+ }
212
+
213
+ .${this.cssPrefix}__option {
214
+ display: flex;
215
+ align-items: center;
216
+ gap: 10px;
217
+ padding: 12px 16px;
218
+ background: #ffffff;
219
+ border: 1px solid #e0e0e0;
220
+ border-radius: 10px;
221
+ cursor: pointer;
222
+ transition: all 0.15s ease;
223
+ user-select: none;
224
+ -webkit-user-select: none;
225
+ }
226
+
227
+ .${this.cssPrefix}__option:hover {
228
+ border-color: #4f8cff;
229
+ background: #f0f6ff;
230
+ box-shadow: 0 1px 4px rgba(79, 140, 255, 0.12);
231
+ }
232
+
233
+ .${this.cssPrefix}__option:focus-visible {
234
+ outline: 2px solid #4f8cff;
235
+ outline-offset: 2px;
236
+ }
237
+
238
+ .${this.cssPrefix}__option:active:not([aria-disabled="true"]) {
239
+ transform: scale(0.98);
240
+ background: #dfeaff;
241
+ }
242
+
243
+ .${this.cssPrefix}__option--disabled {
244
+ opacity: 0.5;
245
+ cursor: not-allowed;
246
+ pointer-events: none;
247
+ }
248
+
249
+ .${this.cssPrefix}__option-icon {
250
+ flex-shrink: 0;
251
+ color: #555;
252
+ }
253
+
254
+ .${this.cssPrefix}__option-content {
255
+ display: flex;
256
+ flex-direction: column;
257
+ gap: 2px;
258
+ min-width: 0;
259
+ }
260
+
261
+ .${this.cssPrefix}__option-label {
262
+ font-size: 14px;
263
+ font-weight: 500;
264
+ color: #1a1a1a;
265
+ line-height: 1.3;
266
+ }
267
+
268
+ .${this.cssPrefix}__option-description {
269
+ font-size: 12px;
270
+ color: #666;
271
+ line-height: 1.3;
272
+ }
273
+
274
+ /* Dark mode support */
275
+ @media (prefers-color-scheme: dark) {
276
+ .${this.cssPrefix}__title {
277
+ color: #ffffff;
278
+ }
279
+
280
+ .${this.cssPrefix}__option {
281
+ background: #2a2a2a;
282
+ border-color: #444;
283
+ }
284
+
285
+ .${this.cssPrefix}__option:hover {
286
+ border-color: #5a9aff;
287
+ background: #1e2d44;
288
+ box-shadow: 0 1px 4px rgba(90, 154, 255, 0.15);
289
+ }
290
+
291
+ .${this.cssPrefix}__option:active:not([aria-disabled="true"]) {
292
+ background: #1a2638;
293
+ }
294
+
295
+ .${this.cssPrefix}__option-icon {
296
+ color: #aaa;
297
+ }
298
+
299
+ .${this.cssPrefix}__option-label {
300
+ color: #ffffff;
301
+ }
302
+
303
+ .${this.cssPrefix}__option-description {
304
+ color: #999;
305
+ }
306
+ }
307
+
308
+ /* Responsive: force single column on mobile */
309
+ @media (max-width: 480px) {
310
+ .${this.cssPrefix}__grid--cols-2,
311
+ .${this.cssPrefix}__grid--cols-3 {
312
+ grid-template-columns: 1fr;
313
+ }
314
+ }
315
+ `;
316
+ }
317
+ }
318
+ //# sourceMappingURL=selection-card-plugin.js.map
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import type { ChatbotProvider, ProviderCapabilities, ProviderConfig, ChatbotContext } from '../core/types.js';
7
+ /**
8
+ * Custom API provider for any REST/HTTP backend
9
+ * Can be extended for custom implementations
10
+ *
11
+ * @example Basic usage
12
+ * ```typescript
13
+ * const provider = new CustomAPIProvider();
14
+ * await provider.connect({
15
+ * apiUrl: 'https://api.example.com/chat',
16
+ * apiKey: 'your-api-key'
17
+ * });
18
+ * ```
19
+ *
20
+ * @example Extending with conversation loading
21
+ * To enable automatic conversation loading on connect, override the
22
+ * `loadConversations` and optionally `loadConversation` methods:
23
+ *
24
+ * ```typescript
25
+ * class MyAPIProvider extends CustomAPIProvider {
26
+ * async loadConversations(): Promise<Array<{id: string, title: string, ...}>> {
27
+ * const response = await fetch('/api/conversations');
28
+ * const data = await response.json();
29
+ * return data.conversations;
30
+ * }
31
+ *
32
+ * async loadConversation(id: string): Promise<{id: string, title: string, messages: ChatbotMessage[]}> {
33
+ * const response = await fetch(`/api/conversations/${id}`);
34
+ * return await response.json();
35
+ * }
36
+ * }
37
+ * ```
38
+ *
39
+ * When the ChatbotCoreController connects a provider with these methods,
40
+ * it will automatically load existing conversations into the thread sidebar.
41
+ */
42
+ export declare class CustomAPIProvider implements ChatbotProvider {
43
+ readonly id = "custom-api";
44
+ readonly name = "Custom API";
45
+ readonly capabilities: ProviderCapabilities;
46
+ protected apiUrl: string;
47
+ protected headers: Record<string, string>;
48
+ protected connected: boolean;
49
+ connect(config: ProviderConfig): Promise<void>;
50
+ disconnect(): Promise<void>;
51
+ isConnected(): boolean;
52
+ sendMessage(text: string, context: ChatbotContext): AsyncIterator<string>;
53
+ protected handleStreamResponse(response: Response): AsyncIterator<string>;
54
+ protected buildPayload(text: string, context: ChatbotContext): any;
55
+ protected extractMessage(data: any): string;
56
+ /**
57
+ * Format error messages with title and description
58
+ * Wrapped in a special marker that can be styled by the chatbot component
59
+ */
60
+ protected formatError(title: string, description: string): string;
61
+ onError(error: Error): void;
62
+ }
63
+ //# sourceMappingURL=custom-api-provider.d.ts.map
@@ -0,0 +1,240 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
+ return new (P || (P = Promise))(function (resolve, reject) {
9
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13
+ });
14
+ };
15
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
16
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
17
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
18
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
19
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
20
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
21
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
22
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
23
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
24
+ function fulfill(value) { resume("next", value); }
25
+ function reject(value) { resume("throw", value); }
26
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
27
+ };
28
+ /**
29
+ * Custom API provider for any REST/HTTP backend
30
+ * Can be extended for custom implementations
31
+ *
32
+ * @example Basic usage
33
+ * ```typescript
34
+ * const provider = new CustomAPIProvider();
35
+ * await provider.connect({
36
+ * apiUrl: 'https://api.example.com/chat',
37
+ * apiKey: 'your-api-key'
38
+ * });
39
+ * ```
40
+ *
41
+ * @example Extending with conversation loading
42
+ * To enable automatic conversation loading on connect, override the
43
+ * `loadConversations` and optionally `loadConversation` methods:
44
+ *
45
+ * ```typescript
46
+ * class MyAPIProvider extends CustomAPIProvider {
47
+ * async loadConversations(): Promise<Array<{id: string, title: string, ...}>> {
48
+ * const response = await fetch('/api/conversations');
49
+ * const data = await response.json();
50
+ * return data.conversations;
51
+ * }
52
+ *
53
+ * async loadConversation(id: string): Promise<{id: string, title: string, messages: ChatbotMessage[]}> {
54
+ * const response = await fetch(`/api/conversations/${id}`);
55
+ * return await response.json();
56
+ * }
57
+ * }
58
+ * ```
59
+ *
60
+ * When the ChatbotCoreController connects a provider with these methods,
61
+ * it will automatically load existing conversations into the thread sidebar.
62
+ */
63
+ export class CustomAPIProvider {
64
+ constructor() {
65
+ this.id = 'custom-api';
66
+ this.name = 'Custom API';
67
+ this.capabilities = {
68
+ streaming: true,
69
+ fileUpload: false,
70
+ modules: false,
71
+ functions: false
72
+ };
73
+ this.apiUrl = '';
74
+ this.headers = {};
75
+ this.connected = false;
76
+ }
77
+ connect(config) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ if (!config.apiUrl) {
80
+ throw new Error('API URL is required');
81
+ }
82
+ this.apiUrl = config.apiUrl;
83
+ // Build headers - config.headers can override defaults
84
+ this.headers = Object.assign({}, config.headers);
85
+ // Set Content-Type default only if not provided
86
+ if (!this.headers['Content-Type']) {
87
+ this.headers['Content-Type'] = 'application/json';
88
+ }
89
+ if (config.apiKey) {
90
+ this.headers['Authorization'] = `Bearer ${config.apiKey}`;
91
+ }
92
+ this.connected = true;
93
+ console.log('[CustomAPIProvider] Connected');
94
+ });
95
+ }
96
+ disconnect() {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ this.connected = false;
99
+ console.log('[CustomAPIProvider] Disconnected');
100
+ });
101
+ }
102
+ isConnected() {
103
+ return this.connected;
104
+ }
105
+ sendMessage(text, context) {
106
+ return __asyncGenerator(this, arguments, function* sendMessage_1() {
107
+ var _a;
108
+ if (!this.connected) {
109
+ yield yield __await(this.formatError('Provider not connected', 'Please check your connection settings.'));
110
+ return yield __await(void 0);
111
+ }
112
+ try {
113
+ const payload = this.buildPayload(text, context);
114
+ // Check if Content-Type is multipart/form-data
115
+ const isMultipart = (_a = this.headers['Content-Type']) === null || _a === void 0 ? void 0 : _a.includes('multipart/form-data');
116
+ let body;
117
+ let headers;
118
+ if (isMultipart && typeof payload === 'object' && !(payload instanceof FormData)) {
119
+ // Convert payload object to FormData
120
+ const formData = new FormData();
121
+ for (const [key, value] of Object.entries(payload)) {
122
+ if (value !== undefined && value !== null) {
123
+ formData.append(key, typeof value === 'object' ? JSON.stringify(value) : String(value));
124
+ }
125
+ }
126
+ body = formData;
127
+ // Don't set Content-Type header - browser will set it with boundary
128
+ headers = Object.assign({}, this.headers);
129
+ delete headers['Content-Type'];
130
+ }
131
+ else if (payload instanceof FormData) {
132
+ // Payload is already FormData
133
+ body = payload;
134
+ headers = Object.assign({}, this.headers);
135
+ delete headers['Content-Type'];
136
+ }
137
+ else {
138
+ // Use JSON
139
+ body = JSON.stringify(payload);
140
+ headers = this.headers;
141
+ }
142
+ const response = yield __await(fetch(this.apiUrl, {
143
+ method: 'POST',
144
+ headers,
145
+ body
146
+ }));
147
+ if (!response.ok) {
148
+ const errorText = yield __await(response.text().catch(() => response.statusText));
149
+ yield yield __await(this.formatError(`${response.status} ${response.statusText}`, errorText || 'The server returned an error. Please try again.'));
150
+ return yield __await(void 0);
151
+ }
152
+ if (!response.body) {
153
+ yield yield __await(this.formatError('Response Error', 'The server response body is empty.'));
154
+ return yield __await(void 0);
155
+ }
156
+ // Check if response is streaming or text/plain
157
+ const contentType = response.headers.get('content-type');
158
+ const isStreamingResponse = (contentType === null || contentType === void 0 ? void 0 : contentType.includes('text/event-stream')) ||
159
+ (contentType === null || contentType === void 0 ? void 0 : contentType.includes('stream')) ||
160
+ (contentType === null || contentType === void 0 ? void 0 : contentType.includes('text/plain'));
161
+ if (isStreamingResponse) {
162
+ // Handle streaming response (including text/plain)
163
+ const streamIterator = this.handleStreamResponse(response);
164
+ let result = yield __await(streamIterator.next());
165
+ while (!result.done) {
166
+ yield yield __await(result.value);
167
+ result = yield __await(streamIterator.next());
168
+ }
169
+ }
170
+ else {
171
+ // Handle non-streaming JSON response
172
+ try {
173
+ const data = yield __await(response.json());
174
+ yield yield __await(this.extractMessage(data));
175
+ }
176
+ catch (jsonError) {
177
+ yield yield __await(this.formatError('Parse Error', 'Failed to parse the server response.'));
178
+ }
179
+ }
180
+ }
181
+ catch (error) {
182
+ const errorMessage = error instanceof Error ? error.message : String(error);
183
+ yield yield __await(this.formatError('Network Error', errorMessage));
184
+ this.onError(error instanceof Error ? error : new Error(String(error)));
185
+ }
186
+ });
187
+ }
188
+ handleStreamResponse(response) {
189
+ return __asyncGenerator(this, arguments, function* handleStreamResponse_1() {
190
+ const reader = response.body.getReader();
191
+ const decoder = new TextDecoder();
192
+ let fullText = ''; // Track cumulative text
193
+ try {
194
+ while (true) {
195
+ const { done, value } = yield __await(reader.read());
196
+ if (done)
197
+ break;
198
+ const chunk = decoder.decode(value, { stream: true });
199
+ fullText += chunk; // Accumulate text
200
+ // Always yield the full cumulative text (required for tag detection)
201
+ yield yield __await(fullText);
202
+ }
203
+ // Yield final text if we haven't already
204
+ if (fullText.length > 0) {
205
+ yield yield __await(fullText);
206
+ }
207
+ }
208
+ catch (error) {
209
+ const errorMessage = error instanceof Error ? error.message : String(error);
210
+ yield yield __await('\n\n' + this.formatError('Streaming Error', errorMessage));
211
+ this.onError(error instanceof Error ? error : new Error(String(error)));
212
+ }
213
+ finally {
214
+ reader.releaseLock();
215
+ }
216
+ });
217
+ }
218
+ buildPayload(text, context) {
219
+ return {
220
+ userMessage: text,
221
+ variables: context.metadata || {},
222
+ stream: true
223
+ };
224
+ }
225
+ extractMessage(data) {
226
+ // Override this method to extract message from your API response
227
+ return data.message || data.text || data.response || JSON.stringify(data);
228
+ }
229
+ /**
230
+ * Format error messages with title and description
231
+ * Wrapped in a special marker that can be styled by the chatbot component
232
+ */
233
+ formatError(title, description) {
234
+ return `[ERROR_START][ERROR_TITLE_START]${title}[ERROR_TITLE_END]${description}[ERROR_END]`;
235
+ }
236
+ onError(error) {
237
+ console.error('[CustomAPIProvider] Error:', error);
238
+ }
239
+ }
240
+ //# sourceMappingURL=custom-api-provider.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export { OpenAIProvider } from './openai-provider.js';
7
+ export { CustomAPIProvider } from './custom-api-provider.js';
8
+ export { MockProvider, MockProviders } from './mock-provider.js';
9
+ export { SocketProvider } from './socket-provider.js';
10
+ export { WorkflowSocketProvider } from './workflow-socket-provider.js';
11
+ export { NativeWebSocketProvider } from './native-ws-provider.js';
12
+ export type { MockProviderConfig } from './mock-provider.js';
13
+ export type { SocketProviderConfig, SocketEventConfig } from './socket-provider.js';
14
+ export type { WorkflowSocketProviderConfig } from './workflow-socket-provider.js';
15
+ export type { NativeWebSocketProviderConfig, NativeWebSocketMessageTypes } from './native-ws-provider.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ // Provider implementations
7
+ export { OpenAIProvider } from './openai-provider.js';
8
+ export { CustomAPIProvider } from './custom-api-provider.js';
9
+ export { MockProvider, MockProviders } from './mock-provider.js';
10
+ export { SocketProvider } from './socket-provider.js';
11
+ export { WorkflowSocketProvider } from './workflow-socket-provider.js';
12
+ export { NativeWebSocketProvider } from './native-ws-provider.js';
13
+ //# sourceMappingURL=index.js.map