@nuraly/lumenui 0.2.1 → 0.3.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 (549) hide show
  1. package/dist/cdn.js +1 -0
  2. package/dist/nuralyui.bundle.js +3434 -2085
  3. package/dist/nuralyui.bundle.js.gz +0 -0
  4. package/dist/src/components/button/controllers/base.controller.d.ts +15 -0
  5. package/dist/src/components/button/controllers/base.controller.js +13 -0
  6. package/dist/src/components/button/controllers/index.d.ts +10 -0
  7. package/dist/src/components/button/controllers/index.js +10 -0
  8. package/dist/src/components/button/controllers/keyboard.controller.d.ts +32 -0
  9. package/dist/src/components/button/controllers/keyboard.controller.js +78 -0
  10. package/dist/src/components/button/controllers/link.controller.d.ts +30 -0
  11. package/dist/src/components/button/controllers/link.controller.js +75 -0
  12. package/dist/src/components/button/controllers/ripple.controller.d.ts +23 -0
  13. package/dist/src/components/button/controllers/ripple.controller.js +69 -0
  14. package/dist/src/components/button/interfaces/base-controller.interface.d.ts +61 -0
  15. package/dist/src/components/button/interfaces/base-controller.interface.js +7 -0
  16. package/dist/src/components/button/interfaces/index.d.ts +2 -0
  17. package/dist/src/components/button/interfaces/index.js +2 -0
  18. package/dist/src/components/button/test/nr-button_test.d.ts +2 -0
  19. package/dist/src/components/button/test/nr-button_test.js +91 -0
  20. package/dist/src/components/canvas/base-canvas.component.d.ts +2 -1
  21. package/dist/src/components/canvas/base-canvas.component.js +6 -0
  22. package/dist/src/components/canvas/bundle.js +1083 -491
  23. package/dist/src/components/canvas/bundle.js.gz +0 -0
  24. package/dist/src/components/canvas/canvas.constants.d.ts +1 -1
  25. package/dist/src/components/canvas/canvas.constants.js +1 -1
  26. package/dist/src/components/canvas/chatbot-panel.style.js +50 -59
  27. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.component.d.ts +115 -0
  28. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.component.js +480 -0
  29. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.style.d.ts +7 -0
  30. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger-fields.style.js +323 -0
  31. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger.types.d.ts +162 -0
  32. package/dist/src/components/canvas/chatbot-trigger/chatbot-trigger.types.js +88 -0
  33. package/dist/src/components/canvas/chatbot-trigger/index.d.ts +9 -0
  34. package/dist/src/components/canvas/chatbot-trigger/index.js +12 -0
  35. package/dist/src/components/canvas/controllers/base.controller.d.ts +53 -0
  36. package/dist/src/components/canvas/controllers/base.controller.js +80 -0
  37. package/dist/src/components/canvas/controllers/clipboard.controller.d.ts +80 -0
  38. package/dist/src/components/canvas/controllers/clipboard.controller.js +300 -0
  39. package/dist/src/components/canvas/controllers/collaboration.controller.d.ts +54 -0
  40. package/dist/src/components/canvas/controllers/collaboration.controller.js +425 -0
  41. package/dist/src/components/canvas/controllers/config.controller.d.ts +61 -0
  42. package/dist/src/components/canvas/controllers/config.controller.js +118 -0
  43. package/dist/src/components/canvas/controllers/connection.controller.d.ts +69 -0
  44. package/dist/src/components/canvas/controllers/connection.controller.js +183 -0
  45. package/dist/src/components/canvas/controllers/drag.controller.d.ts +56 -0
  46. package/dist/src/components/canvas/controllers/drag.controller.js +195 -0
  47. package/dist/src/components/canvas/controllers/frame.controller.d.ts +94 -0
  48. package/dist/src/components/canvas/controllers/frame.controller.js +456 -0
  49. package/dist/src/components/canvas/controllers/index.d.ts +19 -0
  50. package/dist/src/components/canvas/controllers/index.js +32 -0
  51. package/dist/src/components/canvas/controllers/keyboard.controller.d.ts +44 -0
  52. package/dist/src/components/canvas/controllers/keyboard.controller.js +275 -0
  53. package/dist/src/components/canvas/controllers/marquee.controller.d.ts +71 -0
  54. package/dist/src/components/canvas/controllers/marquee.controller.js +128 -0
  55. package/dist/src/components/canvas/controllers/selection.controller.d.ts +85 -0
  56. package/dist/src/components/canvas/controllers/selection.controller.js +202 -0
  57. package/dist/src/components/canvas/controllers/touch.controller.d.ts +55 -0
  58. package/dist/src/components/canvas/controllers/touch.controller.js +299 -0
  59. package/dist/src/components/canvas/controllers/undo.controller.d.ts +100 -0
  60. package/dist/src/components/canvas/controllers/undo.controller.js +218 -0
  61. package/dist/src/components/canvas/controllers/viewport.controller.d.ts +91 -0
  62. package/dist/src/components/canvas/controllers/viewport.controller.js +287 -0
  63. package/dist/src/components/canvas/data-node/data-node-config.component.d.ts +67 -0
  64. package/dist/src/components/canvas/data-node/data-node-config.component.js +496 -0
  65. package/dist/src/components/canvas/data-node/data-node-fields.component.d.ts +198 -0
  66. package/dist/src/components/canvas/data-node/data-node-fields.component.js +931 -0
  67. package/dist/src/components/canvas/data-node/data-node-fields.style.d.ts +7 -0
  68. package/dist/src/components/canvas/data-node/data-node-fields.style.js +448 -0
  69. package/dist/src/components/canvas/data-node/data-node.types.d.ts +245 -0
  70. package/dist/src/components/canvas/data-node/data-node.types.js +158 -0
  71. package/dist/src/components/canvas/data-node/index.d.ts +9 -0
  72. package/dist/src/components/canvas/data-node/index.js +12 -0
  73. package/dist/src/components/canvas/data-node/schema-select.component.d.ts +36 -0
  74. package/dist/src/components/canvas/data-node/schema-select.component.js +196 -0
  75. package/dist/src/components/canvas/data-node/table-select.component.d.ts +38 -0
  76. package/dist/src/components/canvas/data-node/table-select.component.js +199 -0
  77. package/dist/src/components/canvas/interfaces/canvas-host.interface.d.ts +91 -0
  78. package/dist/src/components/canvas/interfaces/canvas-host.interface.js +7 -0
  79. package/dist/src/components/canvas/interfaces/collaboration.interface.d.ts +58 -0
  80. package/dist/src/components/canvas/interfaces/collaboration.interface.js +10 -0
  81. package/dist/src/components/canvas/interfaces/index.d.ts +8 -0
  82. package/dist/src/components/canvas/interfaces/index.js +7 -0
  83. package/dist/src/components/canvas/templates/chatbot-panel.template.d.ts +28 -0
  84. package/dist/src/components/canvas/templates/chatbot-panel.template.js +49 -0
  85. package/dist/src/components/canvas/templates/config-panel.template.d.ts +22 -0
  86. package/dist/src/components/canvas/templates/config-panel.template.js +22 -0
  87. package/dist/src/components/canvas/templates/context-menu.template.d.ts +30 -0
  88. package/dist/src/components/canvas/templates/context-menu.template.js +80 -0
  89. package/dist/src/components/canvas/templates/edges.template.d.ts +41 -0
  90. package/dist/src/components/canvas/templates/edges.template.js +243 -0
  91. package/dist/src/components/canvas/templates/empty-state.template.d.ts +17 -0
  92. package/dist/src/components/canvas/templates/empty-state.template.js +25 -0
  93. package/dist/src/components/canvas/templates/frame.template.d.ts +24 -0
  94. package/dist/src/components/canvas/templates/frame.template.js +74 -0
  95. package/dist/src/components/canvas/templates/index.d.ts +18 -0
  96. package/dist/src/components/canvas/templates/index.js +30 -0
  97. package/dist/src/components/canvas/templates/palette.template.d.ts +27 -0
  98. package/dist/src/components/canvas/templates/palette.template.js +110 -0
  99. package/dist/src/components/canvas/templates/presence-bar.template.d.ts +18 -0
  100. package/dist/src/components/canvas/templates/presence-bar.template.js +60 -0
  101. package/dist/src/components/canvas/templates/remote-cursors.template.d.ts +19 -0
  102. package/dist/src/components/canvas/templates/remote-cursors.template.js +43 -0
  103. package/dist/src/components/canvas/templates/toolbar.template.d.ts +52 -0
  104. package/dist/src/components/canvas/templates/toolbar.template.js +118 -0
  105. package/dist/src/components/canvas/templates/wb-floating-toolbar.template.d.ts +30 -0
  106. package/dist/src/components/canvas/templates/wb-floating-toolbar.template.js +219 -0
  107. package/dist/src/components/canvas/templates/wb-sidebar.template.d.ts +23 -0
  108. package/dist/src/components/canvas/templates/wb-sidebar.template.js +152 -0
  109. package/dist/src/components/canvas/utils/variable-resolver.d.ts +71 -0
  110. package/dist/src/components/canvas/utils/variable-resolver.js +280 -0
  111. package/dist/src/components/canvas/workflow-canvas.component.d.ts +7 -0
  112. package/dist/src/components/canvas/workflow-canvas.component.js +52 -2
  113. package/dist/src/components/canvas/workflow-canvas.style.js +46 -55
  114. package/dist/src/components/canvas/workflow-canvas.types.d.ts +8 -1
  115. package/dist/src/components/canvas/workflow-canvas.types.js +157 -0
  116. package/dist/src/components/carousel/demo/carousel-demo.d.ts +6 -0
  117. package/dist/src/components/carousel/demo/carousel-demo.js +68 -0
  118. package/dist/src/components/chat-panel/bundle.js +216 -0
  119. package/dist/src/components/chat-panel/bundle.js.gz +0 -0
  120. package/dist/src/components/chat-panel/chat-panel.component.d.ts +85 -0
  121. package/dist/src/components/chat-panel/chat-panel.component.js +510 -0
  122. package/dist/src/components/chat-panel/chat-panel.style.d.ts +2 -0
  123. package/dist/src/components/chat-panel/chat-panel.style.js +127 -0
  124. package/dist/src/components/chat-panel/chat-panel.types.d.ts +54 -0
  125. package/dist/src/components/chat-panel/chat-panel.types.js +2 -0
  126. package/dist/src/components/chat-panel/index.d.ts +3 -0
  127. package/dist/src/components/chat-panel/index.js +2 -0
  128. package/dist/src/components/chatbot/audio-compress.d.ts +26 -0
  129. package/dist/src/components/chatbot/audio-compress.js +84 -0
  130. package/dist/src/components/chatbot/bundle.js +388 -144
  131. package/dist/src/components/chatbot/bundle.js.gz +0 -0
  132. package/dist/src/components/chatbot/chatbot-audio.controller.d.ts +35 -0
  133. package/dist/src/components/chatbot/chatbot-audio.controller.js +160 -0
  134. package/dist/src/components/chatbot/chatbot.component.d.ts +12 -0
  135. package/dist/src/components/chatbot/chatbot.component.js +41 -2
  136. package/dist/src/components/chatbot/chatbot.style.js +141 -0
  137. package/dist/src/components/chatbot/chatbot.types.d.ts +8 -0
  138. package/dist/src/components/chatbot/controllers/index.d.ts +8 -0
  139. package/dist/src/components/chatbot/controllers/index.js +8 -0
  140. package/dist/src/components/chatbot/controllers/scroll.controller.d.ts +34 -0
  141. package/dist/src/components/chatbot/controllers/scroll.controller.js +43 -0
  142. package/dist/src/components/chatbot/core/chatbot-core.controller.d.ts +283 -0
  143. package/dist/src/components/chatbot/core/chatbot-core.controller.js +824 -0
  144. package/dist/src/components/chatbot/core/event-bus.d.ts +54 -0
  145. package/dist/src/components/chatbot/core/event-bus.js +102 -0
  146. package/dist/src/components/chatbot/core/index.d.ts +12 -0
  147. package/dist/src/components/chatbot/core/index.js +15 -0
  148. package/dist/src/components/chatbot/core/types.d.ts +403 -0
  149. package/dist/src/components/chatbot/core/types.js +16 -0
  150. package/dist/src/components/chatbot/locales/locale-codes.d.ts +14 -0
  151. package/dist/src/components/chatbot/locales/locale-codes.js +23 -0
  152. package/dist/src/components/chatbot/plugins/analytics-plugin.d.ts +23 -0
  153. package/dist/src/components/chatbot/plugins/analytics-plugin.js +52 -0
  154. package/dist/src/components/chatbot/plugins/artifact-plugin.d.ts +71 -0
  155. package/dist/src/components/chatbot/plugins/artifact-plugin.js +313 -0
  156. package/dist/src/components/chatbot/plugins/chat-plugin.d.ts +44 -0
  157. package/dist/src/components/chatbot/plugins/chat-plugin.js +58 -0
  158. package/dist/src/components/chatbot/plugins/flight-card-plugin.d.ts +116 -0
  159. package/dist/src/components/chatbot/plugins/flight-card-plugin.js +594 -0
  160. package/dist/src/components/chatbot/plugins/flow-diagram-plugin.d.ts +23 -0
  161. package/dist/src/components/chatbot/plugins/flow-diagram-plugin.js +495 -0
  162. package/dist/src/components/chatbot/plugins/index.d.ts +16 -0
  163. package/dist/src/components/chatbot/plugins/index.js +17 -0
  164. package/dist/src/components/chatbot/plugins/json-graph-renderer-plugin.d.ts +43 -0
  165. package/dist/src/components/chatbot/plugins/json-graph-renderer-plugin.js +166 -0
  166. package/dist/src/components/chatbot/plugins/markdown-plugin.d.ts +26 -0
  167. package/dist/src/components/chatbot/plugins/markdown-plugin.js +68 -0
  168. package/dist/src/components/chatbot/plugins/persistence-plugin.d.ts +30 -0
  169. package/dist/src/components/chatbot/plugins/persistence-plugin.js +91 -0
  170. package/dist/src/components/chatbot/plugins/print-job-card-plugin.d.ts +110 -0
  171. package/dist/src/components/chatbot/plugins/print-job-card-plugin.js +505 -0
  172. package/dist/src/components/chatbot/plugins/selection-card-plugin.d.ts +111 -0
  173. package/dist/src/components/chatbot/plugins/selection-card-plugin.js +318 -0
  174. package/dist/src/components/chatbot/providers/custom-api-provider.d.ts +63 -0
  175. package/dist/src/components/chatbot/providers/custom-api-provider.js +240 -0
  176. package/dist/src/components/chatbot/providers/index.d.ts +16 -0
  177. package/dist/src/components/chatbot/providers/index.js +13 -0
  178. package/dist/src/components/chatbot/providers/mock-provider.d.ts +154 -0
  179. package/dist/src/components/chatbot/providers/mock-provider.js +411 -0
  180. package/dist/src/components/chatbot/providers/native-ws-provider.d.ts +184 -0
  181. package/dist/src/components/chatbot/providers/native-ws-provider.js +544 -0
  182. package/dist/src/components/chatbot/providers/openai-provider.d.ts +32 -0
  183. package/dist/src/components/chatbot/providers/openai-provider.js +246 -0
  184. package/dist/src/components/chatbot/providers/socket-provider.d.ts +159 -0
  185. package/dist/src/components/chatbot/providers/socket-provider.js +390 -0
  186. package/dist/src/components/chatbot/providers/workflow-socket-provider.d.ts +116 -0
  187. package/dist/src/components/chatbot/providers/workflow-socket-provider.js +484 -0
  188. package/dist/src/components/chatbot/storage/index.d.ts +7 -0
  189. package/dist/src/components/chatbot/storage/index.js +8 -0
  190. package/dist/src/components/chatbot/storage/storage-implementations.d.ts +43 -0
  191. package/dist/src/components/chatbot/storage/storage-implementations.js +179 -0
  192. package/dist/src/components/chatbot/templates/artifact-panel.template.d.ts +22 -0
  193. package/dist/src/components/chatbot/templates/artifact-panel.template.js +81 -0
  194. package/dist/src/components/chatbot/templates/chatbot-main.template.d.ts +49 -0
  195. package/dist/src/components/chatbot/templates/chatbot-main.template.js +115 -0
  196. package/dist/src/components/chatbot/templates/file-preview-modal.template.d.ts +19 -0
  197. package/dist/src/components/chatbot/templates/file-preview-modal.template.js +74 -0
  198. package/dist/src/components/chatbot/templates/file-upload-area.template.d.ts +19 -0
  199. package/dist/src/components/chatbot/templates/file-upload-area.template.js +29 -0
  200. package/dist/src/components/chatbot/templates/index.d.ts +15 -0
  201. package/dist/src/components/chatbot/templates/index.js +15 -0
  202. package/dist/src/components/chatbot/templates/input-box.template.d.ts +49 -0
  203. package/dist/src/components/chatbot/templates/input-box.template.js +317 -0
  204. package/dist/src/components/chatbot/templates/message.template.d.ts +31 -0
  205. package/dist/src/components/chatbot/templates/message.template.js +214 -0
  206. package/dist/src/components/chatbot/templates/suggestion.template.d.ts +20 -0
  207. package/dist/src/components/chatbot/templates/suggestion.template.js +40 -0
  208. package/dist/src/components/chatbot/templates/thread-sidebar.template.d.ts +24 -0
  209. package/dist/src/components/chatbot/templates/thread-sidebar.template.js +160 -0
  210. package/dist/src/components/chatbot/templates/url-modal.template.d.ts +25 -0
  211. package/dist/src/components/chatbot/templates/url-modal.template.js +100 -0
  212. package/dist/src/components/chatbot/utils/format.d.ts +23 -0
  213. package/dist/src/components/chatbot/utils/format.js +84 -0
  214. package/dist/src/components/chatbot/utils/index.d.ts +7 -0
  215. package/dist/src/components/chatbot/utils/index.js +7 -0
  216. package/dist/src/components/checkbox/mixins/checkbox-event-mixin.d.ts +87 -0
  217. package/dist/src/components/checkbox/mixins/checkbox-event-mixin.js +94 -0
  218. package/dist/src/components/checkbox/mixins/checkbox-focus-mixin.d.ts +55 -0
  219. package/dist/src/components/checkbox/mixins/checkbox-focus-mixin.js +57 -0
  220. package/dist/src/components/checkbox/mixins/index.d.ts +10 -0
  221. package/dist/src/components/checkbox/mixins/index.js +8 -0
  222. package/dist/src/components/checkbox/test/checkbox_test.d.ts +2 -0
  223. package/dist/src/components/checkbox/test/checkbox_test.js +88 -0
  224. package/dist/src/components/collapse/controllers/accordion.controller.d.ts +60 -0
  225. package/dist/src/components/collapse/controllers/accordion.controller.js +132 -0
  226. package/dist/src/components/collapse/controllers/animation.controller.d.ts +40 -0
  227. package/dist/src/components/collapse/controllers/animation.controller.js +125 -0
  228. package/dist/src/components/collapse/controllers/base.controller.d.ts +48 -0
  229. package/dist/src/components/collapse/controllers/base.controller.js +69 -0
  230. package/dist/src/components/collapse/controllers/index.d.ts +12 -0
  231. package/dist/src/components/collapse/controllers/index.js +11 -0
  232. package/dist/src/components/collapse/controllers/keyboard.controller.d.ts +73 -0
  233. package/dist/src/components/collapse/controllers/keyboard.controller.js +186 -0
  234. package/dist/src/components/colorpicker/controllers/base.controller.d.ts +14 -0
  235. package/dist/src/components/colorpicker/controllers/base.controller.js +15 -0
  236. package/dist/src/components/colorpicker/controllers/dropdown.controller.d.ts +60 -0
  237. package/dist/src/components/colorpicker/controllers/dropdown.controller.js +243 -0
  238. package/dist/src/components/colorpicker/controllers/event.controller.d.ts +46 -0
  239. package/dist/src/components/colorpicker/controllers/event.controller.js +130 -0
  240. package/dist/src/components/colorpicker/controllers/index.d.ts +4 -0
  241. package/dist/src/components/colorpicker/controllers/index.js +4 -0
  242. package/dist/src/components/colorpicker/interfaces/index.d.ts +60 -0
  243. package/dist/src/components/colorpicker/interfaces/index.js +2 -0
  244. package/dist/src/components/datepicker/controllers/calendar.controller.d.ts +78 -0
  245. package/dist/src/components/datepicker/controllers/calendar.controller.js +225 -0
  246. package/dist/src/components/datepicker/controllers/index.d.ts +11 -0
  247. package/dist/src/components/datepicker/controllers/index.js +11 -0
  248. package/dist/src/components/datepicker/controllers/keyboard.controller.d.ts +96 -0
  249. package/dist/src/components/datepicker/controllers/keyboard.controller.js +246 -0
  250. package/dist/src/components/datepicker/controllers/month-year-dropdown.controller.d.ts +48 -0
  251. package/dist/src/components/datepicker/controllers/month-year-dropdown.controller.js +92 -0
  252. package/dist/src/components/datepicker/controllers/positioning.controller.d.ts +82 -0
  253. package/dist/src/components/datepicker/controllers/positioning.controller.js +247 -0
  254. package/dist/src/components/datepicker/controllers/selection.controller.d.ts +92 -0
  255. package/dist/src/components/datepicker/controllers/selection.controller.js +267 -0
  256. package/dist/src/components/datepicker/interfaces/base-controller.interface.d.ts +40 -0
  257. package/dist/src/components/datepicker/interfaces/base-controller.interface.js +7 -0
  258. package/dist/src/components/datepicker/interfaces/datepicker-controllers.interface.d.ts +112 -0
  259. package/dist/src/components/datepicker/interfaces/datepicker-controllers.interface.js +7 -0
  260. package/dist/src/components/datepicker/interfaces/index.d.ts +8 -0
  261. package/dist/src/components/datepicker/interfaces/index.js +7 -0
  262. package/dist/src/components/datepicker/templates/days.template.d.ts +4 -0
  263. package/dist/src/components/datepicker/templates/days.template.js +40 -0
  264. package/dist/src/components/datepicker/templates/dropdown.template.d.ts +10 -0
  265. package/dist/src/components/datepicker/templates/dropdown.template.js +50 -0
  266. package/dist/src/components/datepicker/templates/headers.template.d.ts +2 -0
  267. package/dist/src/components/datepicker/templates/headers.template.js +5 -0
  268. package/dist/src/components/datepicker/templates/months.template.d.ts +6 -0
  269. package/dist/src/components/datepicker/templates/months.template.js +10 -0
  270. package/dist/src/components/datepicker/templates/years.template.d.ts +6 -0
  271. package/dist/src/components/datepicker/templates/years.template.js +11 -0
  272. package/dist/src/components/datepicker/test/datepicker_test.d.ts +2 -0
  273. package/dist/src/components/datepicker/test/datepicker_test.js +134 -0
  274. package/dist/src/components/datepicker/utils/day.helper.d.ts +5 -0
  275. package/dist/src/components/datepicker/utils/day.helper.js +53 -0
  276. package/dist/src/components/datepicker/utils/formatter.d.ts +2 -0
  277. package/dist/src/components/datepicker/utils/formatter.js +9 -0
  278. package/dist/src/components/datepicker/utils/index.d.ts +11 -0
  279. package/dist/src/components/datepicker/utils/index.js +11 -0
  280. package/dist/src/components/datepicker/utils/locale.helper.d.ts +144 -0
  281. package/dist/src/components/datepicker/utils/locale.helper.js +151 -0
  282. package/dist/src/components/datepicker/utils/month.helper.d.ts +3 -0
  283. package/dist/src/components/datepicker/utils/month.helper.js +24 -0
  284. package/dist/src/components/datepicker/utils/string.helper.d.ts +2 -0
  285. package/dist/src/components/datepicker/utils/string.helper.js +4 -0
  286. package/dist/src/components/document/demo/document-demo.d.ts +12 -0
  287. package/dist/src/components/document/demo/document-demo.js +40 -0
  288. package/dist/src/components/dropdown/controllers/base.controller.d.ts +18 -0
  289. package/dist/src/components/dropdown/controllers/base.controller.js +22 -0
  290. package/dist/src/components/dropdown/controllers/dropdown.controller.d.ts +50 -0
  291. package/dist/src/components/dropdown/controllers/dropdown.controller.js +408 -0
  292. package/dist/src/components/dropdown/controllers/index.d.ts +3 -0
  293. package/dist/src/components/dropdown/controllers/index.js +3 -0
  294. package/dist/src/components/dropdown/interfaces/controller-interfaces.d.ts +79 -0
  295. package/dist/src/components/dropdown/interfaces/controller-interfaces.js +2 -0
  296. package/dist/src/components/dropdown/interfaces/index.d.ts +2 -0
  297. package/dist/src/components/dropdown/interfaces/index.js +2 -0
  298. package/dist/src/components/dropdown/templates/nr-dropdown-item.d.ts +12 -0
  299. package/dist/src/components/dropdown/templates/nr-dropdown-item.js +55 -0
  300. package/dist/src/components/dropdown/templates/nr-dropdown-item.style.d.ts +2 -0
  301. package/dist/src/components/dropdown/templates/nr-dropdown-item.style.js +34 -0
  302. package/dist/src/components/dropdown/templates/nr-dropdown-menu.d.ts +18 -0
  303. package/dist/src/components/dropdown/templates/nr-dropdown-menu.js +70 -0
  304. package/dist/src/components/dropdown/templates/nr-dropdown-menu.style.d.ts +2 -0
  305. package/dist/src/components/dropdown/templates/nr-dropdown-menu.style.js +49 -0
  306. package/dist/src/components/file-upload/demo/file-upload-demo.d.ts +18 -0
  307. package/dist/src/components/file-upload/demo/file-upload-demo.js +156 -0
  308. package/dist/src/components/form/controllers/submission.controller.d.ts +60 -0
  309. package/dist/src/components/form/controllers/submission.controller.js +220 -0
  310. package/dist/src/components/form/controllers/validation.controller.d.ts +87 -0
  311. package/dist/src/components/form/controllers/validation.controller.js +236 -0
  312. package/dist/src/components/form/interfaces/validation.interface.d.ts +118 -0
  313. package/dist/src/components/form/interfaces/validation.interface.js +7 -0
  314. package/dist/src/components/icon/mixins/clickable-mixin.d.ts +57 -0
  315. package/dist/src/components/icon/mixins/clickable-mixin.js +111 -0
  316. package/dist/src/components/icon/mixins/index.d.ts +7 -0
  317. package/dist/src/components/icon/mixins/index.js +7 -0
  318. package/dist/src/components/iconpicker/controllers/event.controller.d.ts +38 -0
  319. package/dist/src/components/iconpicker/controllers/event.controller.js +68 -0
  320. package/dist/src/components/iconpicker/controllers/index.d.ts +9 -0
  321. package/dist/src/components/iconpicker/controllers/index.js +9 -0
  322. package/dist/src/components/iconpicker/controllers/search.controller.d.ts +34 -0
  323. package/dist/src/components/iconpicker/controllers/search.controller.js +55 -0
  324. package/dist/src/components/iconpicker/controllers/selection.controller.d.ts +27 -0
  325. package/dist/src/components/iconpicker/controllers/selection.controller.js +39 -0
  326. package/dist/src/components/iconpicker/interfaces/icon-picker.interface.d.ts +13 -0
  327. package/dist/src/components/iconpicker/interfaces/icon-picker.interface.js +7 -0
  328. package/dist/src/components/iconpicker/interfaces/index.d.ts +7 -0
  329. package/dist/src/components/iconpicker/interfaces/index.js +7 -0
  330. package/dist/src/components/iconpicker/utils/icon-filter.utils.d.ts +29 -0
  331. package/dist/src/components/iconpicker/utils/icon-filter.utils.js +96 -0
  332. package/dist/src/components/iconpicker/utils/icon-loader.utils.d.ts +39 -0
  333. package/dist/src/components/iconpicker/utils/icon-loader.utils.js +115 -0
  334. package/dist/src/components/iconpicker/utils/index.d.ts +8 -0
  335. package/dist/src/components/iconpicker/utils/index.js +8 -0
  336. package/dist/src/components/iconpicker/utils/lucide-icons.d.ts +10 -0
  337. package/dist/src/components/iconpicker/utils/lucide-icons.js +1624 -0
  338. package/dist/src/components/input/controllers/base.controller.d.ts +35 -0
  339. package/dist/src/components/input/controllers/base.controller.js +13 -0
  340. package/dist/src/components/input/controllers/event.controller.d.ts +111 -0
  341. package/dist/src/components/input/controllers/event.controller.js +355 -0
  342. package/dist/src/components/input/controllers/index.d.ts +14 -0
  343. package/dist/src/components/input/controllers/index.js +10 -0
  344. package/dist/src/components/input/controllers/state.controller.d.ts +153 -0
  345. package/dist/src/components/input/controllers/state.controller.js +245 -0
  346. package/dist/src/components/input/controllers/validation.controller.d.ts +205 -0
  347. package/dist/src/components/input/controllers/validation.controller.js +698 -0
  348. package/dist/src/components/input/mixins/focus-mixin.d.ts +60 -0
  349. package/dist/src/components/input/mixins/focus-mixin.js +65 -0
  350. package/dist/src/components/input/mixins/index.d.ts +12 -0
  351. package/dist/src/components/input/mixins/index.js +9 -0
  352. package/dist/src/components/input/mixins/number-mixin.d.ts +51 -0
  353. package/dist/src/components/input/mixins/number-mixin.js +128 -0
  354. package/dist/src/components/input/mixins/selection-mixin.d.ts +57 -0
  355. package/dist/src/components/input/mixins/selection-mixin.js +80 -0
  356. package/dist/src/components/input/test/nr-input_test.d.ts +2 -0
  357. package/dist/src/components/input/test/nr-input_test.js +159 -0
  358. package/dist/src/components/input/utils/index.d.ts +8 -0
  359. package/dist/src/components/input/utils/index.js +8 -0
  360. package/dist/src/components/input/utils/input-renderers.d.ts +54 -0
  361. package/dist/src/components/input/utils/input-renderers.js +178 -0
  362. package/dist/src/components/input/utils/input-validation.utils.d.ts +26 -0
  363. package/dist/src/components/input/utils/input-validation.utils.js +103 -0
  364. package/dist/src/components/menu/controllers/accessibility.controller.d.ts +86 -0
  365. package/dist/src/components/menu/controllers/accessibility.controller.js +235 -0
  366. package/dist/src/components/menu/controllers/base.controller.d.ts +41 -0
  367. package/dist/src/components/menu/controllers/base.controller.js +61 -0
  368. package/dist/src/components/menu/controllers/index.d.ts +10 -0
  369. package/dist/src/components/menu/controllers/index.js +10 -0
  370. package/dist/src/components/menu/controllers/keyboard.controller.d.ts +84 -0
  371. package/dist/src/components/menu/controllers/keyboard.controller.js +328 -0
  372. package/dist/src/components/menu/controllers/state.controller.d.ts +106 -0
  373. package/dist/src/components/menu/controllers/state.controller.js +249 -0
  374. package/dist/src/components/menu/interfaces/controller.interface.d.ts +51 -0
  375. package/dist/src/components/menu/interfaces/controller.interface.js +7 -0
  376. package/dist/src/components/menu/interfaces/index.d.ts +7 -0
  377. package/dist/src/components/menu/interfaces/index.js +7 -0
  378. package/dist/src/components/modal/controllers/index.d.ts +8 -0
  379. package/dist/src/components/modal/controllers/index.js +8 -0
  380. package/dist/src/components/modal/controllers/modal-drag-controller.d.ts +39 -0
  381. package/dist/src/components/modal/controllers/modal-drag-controller.js +108 -0
  382. package/dist/src/components/modal/controllers/modal-keyboard-controller.d.ts +36 -0
  383. package/dist/src/components/modal/controllers/modal-keyboard-controller.js +128 -0
  384. package/dist/src/components/panel/controllers/index.d.ts +8 -0
  385. package/dist/src/components/panel/controllers/index.js +8 -0
  386. package/dist/src/components/panel/controllers/panel-drag-controller.d.ts +40 -0
  387. package/dist/src/components/panel/controllers/panel-drag-controller.js +118 -0
  388. package/dist/src/components/panel/controllers/panel-resize-controller.d.ts +37 -0
  389. package/dist/src/components/panel/controllers/panel-resize-controller.js +124 -0
  390. package/dist/src/components/presence/bundle.js +555 -0
  391. package/dist/src/components/presence/bundle.js.gz +0 -0
  392. package/dist/src/components/presence/index.d.ts +10 -0
  393. package/dist/src/components/presence/index.js +10 -0
  394. package/dist/src/components/presence/presence-avatars.component.d.ts +40 -0
  395. package/dist/src/components/presence/presence-avatars.component.js +83 -0
  396. package/dist/src/components/presence/presence-avatars.style.d.ts +7 -0
  397. package/dist/src/components/presence/presence-avatars.style.js +105 -0
  398. package/dist/src/components/presence/presence-chat.component.d.ts +55 -0
  399. package/dist/src/components/presence/presence-chat.component.js +238 -0
  400. package/dist/src/components/presence/presence-chat.style.d.ts +7 -0
  401. package/dist/src/components/presence/presence-chat.style.js +248 -0
  402. package/dist/src/components/presence/presence.component.d.ts +95 -0
  403. package/dist/src/components/presence/presence.component.js +510 -0
  404. package/dist/src/components/presence/presence.style.d.ts +7 -0
  405. package/dist/src/components/presence/presence.style.js +12 -0
  406. package/dist/src/components/presence/presence.types.d.ts +33 -0
  407. package/dist/src/components/presence/presence.types.js +7 -0
  408. package/dist/src/components/presence/react.d.ts +24 -0
  409. package/dist/src/components/presence/react.js +41 -0
  410. package/dist/src/components/radio-group/controllers/focus.controller.d.ts +98 -0
  411. package/dist/src/components/radio-group/controllers/focus.controller.js +216 -0
  412. package/dist/src/components/radio-group/controllers/group.controller.d.ts +140 -0
  413. package/dist/src/components/radio-group/controllers/group.controller.js +179 -0
  414. package/dist/src/components/radio-group/controllers/index.d.ts +11 -0
  415. package/dist/src/components/radio-group/controllers/index.js +11 -0
  416. package/dist/src/components/radio-group/controllers/keyboard.controller.d.ts +24 -0
  417. package/dist/src/components/radio-group/controllers/keyboard.controller.js +93 -0
  418. package/dist/src/components/radio-group/controllers/ripple.controller.d.ts +59 -0
  419. package/dist/src/components/radio-group/controllers/ripple.controller.js +208 -0
  420. package/dist/src/components/radio-group/controllers/validation.controller.d.ts +73 -0
  421. package/dist/src/components/radio-group/controllers/validation.controller.js +108 -0
  422. package/dist/src/components/radio-group/interfaces/base-controller.interface.d.ts +75 -0
  423. package/dist/src/components/radio-group/interfaces/base-controller.interface.js +7 -0
  424. package/dist/src/components/radio-group/interfaces/focus-controller.interface.d.ts +40 -0
  425. package/dist/src/components/radio-group/interfaces/focus-controller.interface.js +7 -0
  426. package/dist/src/components/radio-group/interfaces/index.d.ts +11 -0
  427. package/dist/src/components/radio-group/interfaces/index.js +7 -0
  428. package/dist/src/components/radio-group/interfaces/ripple-controller.interface.d.ts +31 -0
  429. package/dist/src/components/radio-group/interfaces/ripple-controller.interface.js +7 -0
  430. package/dist/src/components/radio-group/interfaces/selection-controller.interface.d.ts +45 -0
  431. package/dist/src/components/radio-group/interfaces/selection-controller.interface.js +7 -0
  432. package/dist/src/components/radio-group/interfaces/validation-controller.interface.d.ts +48 -0
  433. package/dist/src/components/radio-group/interfaces/validation-controller.interface.js +7 -0
  434. package/dist/src/components/radio-group/test/radio_test.d.ts +2 -0
  435. package/dist/src/components/radio-group/test/radio_test.js +79 -0
  436. package/dist/src/components/select/controllers/base.controller.d.ts +10 -0
  437. package/dist/src/components/select/controllers/base.controller.js +8 -0
  438. package/dist/src/components/select/controllers/dropdown.controller.d.ts +76 -0
  439. package/dist/src/components/select/controllers/dropdown.controller.js +281 -0
  440. package/dist/src/components/select/controllers/event.controller.d.ts +54 -0
  441. package/dist/src/components/select/controllers/event.controller.js +113 -0
  442. package/dist/src/components/select/controllers/focus.controller.d.ts +79 -0
  443. package/dist/src/components/select/controllers/focus.controller.js +230 -0
  444. package/dist/src/components/select/controllers/index.d.ts +9 -0
  445. package/dist/src/components/select/controllers/index.js +9 -0
  446. package/dist/src/components/select/controllers/keyboard.controller.d.ts +75 -0
  447. package/dist/src/components/select/controllers/keyboard.controller.js +369 -0
  448. package/dist/src/components/select/controllers/search.controller.d.ts +71 -0
  449. package/dist/src/components/select/controllers/search.controller.js +167 -0
  450. package/dist/src/components/select/controllers/selection.controller.d.ts +67 -0
  451. package/dist/src/components/select/controllers/selection.controller.js +217 -0
  452. package/dist/src/components/select/controllers/validation.controller.d.ts +66 -0
  453. package/dist/src/components/select/controllers/validation.controller.js +189 -0
  454. package/dist/src/components/select/interfaces/base-controller.interface.d.ts +147 -0
  455. package/dist/src/components/select/interfaces/base-controller.interface.js +2 -0
  456. package/dist/src/components/select/interfaces/controller-interfaces.d.ts +94 -0
  457. package/dist/src/components/select/interfaces/controller-interfaces.js +11 -0
  458. package/dist/src/components/select/interfaces/index.d.ts +3 -0
  459. package/dist/src/components/select/interfaces/index.js +3 -0
  460. package/dist/src/components/slider-input/utils/debounce.d.ts +2 -0
  461. package/dist/src/components/slider-input/utils/debounce.js +8 -0
  462. package/dist/src/components/slider-input/utils/index.d.ts +2 -0
  463. package/dist/src/components/slider-input/utils/index.js +2 -0
  464. package/dist/src/components/table/controllers/base.controller.d.ts +15 -0
  465. package/dist/src/components/table/controllers/base.controller.js +13 -0
  466. package/dist/src/components/table/controllers/filter.controller.d.ts +48 -0
  467. package/dist/src/components/table/controllers/filter.controller.js +152 -0
  468. package/dist/src/components/table/controllers/index.d.ts +11 -0
  469. package/dist/src/components/table/controllers/index.js +11 -0
  470. package/dist/src/components/table/controllers/pagination.controller.d.ts +36 -0
  471. package/dist/src/components/table/controllers/pagination.controller.js +110 -0
  472. package/dist/src/components/table/controllers/selection.controller.d.ts +40 -0
  473. package/dist/src/components/table/controllers/selection.controller.js +120 -0
  474. package/dist/src/components/table/controllers/sort.controller.d.ts +32 -0
  475. package/dist/src/components/table/controllers/sort.controller.js +102 -0
  476. package/dist/src/components/table/interfaces/index.d.ts +7 -0
  477. package/dist/src/components/table/interfaces/index.js +7 -0
  478. package/dist/src/components/table/interfaces/table-host.interface.d.ts +48 -0
  479. package/dist/src/components/table/interfaces/table-host.interface.js +7 -0
  480. package/dist/src/components/table/templates/actions.template.d.ts +14 -0
  481. package/dist/src/components/table/templates/actions.template.js +15 -0
  482. package/dist/src/components/table/templates/column-filter.template.d.ts +24 -0
  483. package/dist/src/components/table/templates/column-filter.template.js +76 -0
  484. package/dist/src/components/table/templates/content.template.d.ts +37 -0
  485. package/dist/src/components/table/templates/content.template.js +208 -0
  486. package/dist/src/components/table/templates/empty.template.d.ts +8 -0
  487. package/dist/src/components/table/templates/empty.template.js +47 -0
  488. package/dist/src/components/table/templates/filter.template.d.ts +14 -0
  489. package/dist/src/components/table/templates/filter.template.js +28 -0
  490. package/dist/src/components/table/templates/index.d.ts +8 -0
  491. package/dist/src/components/table/templates/index.js +8 -0
  492. package/dist/src/components/table/templates/loading.template.d.ts +21 -0
  493. package/dist/src/components/table/templates/loading.template.js +51 -0
  494. package/dist/src/components/table/templates/pagination.template.d.ts +24 -0
  495. package/dist/src/components/table/templates/pagination.template.js +52 -0
  496. package/dist/src/components/tabs/controllers/base.controller.d.ts +49 -0
  497. package/dist/src/components/tabs/controllers/base.controller.js +26 -0
  498. package/dist/src/components/tabs/controllers/dragdrop.controller.d.ts +84 -0
  499. package/dist/src/components/tabs/controllers/dragdrop.controller.js +202 -0
  500. package/dist/src/components/tabs/controllers/editable.controller.d.ts +100 -0
  501. package/dist/src/components/tabs/controllers/editable.controller.js +242 -0
  502. package/dist/src/components/tabs/controllers/event.controller.d.ts +104 -0
  503. package/dist/src/components/tabs/controllers/event.controller.js +239 -0
  504. package/dist/src/components/tabs/controllers/index.d.ts +12 -0
  505. package/dist/src/components/tabs/controllers/index.js +18 -0
  506. package/dist/src/components/tabs/controllers/keyboard.controller.d.ts +85 -0
  507. package/dist/src/components/tabs/controllers/keyboard.controller.js +233 -0
  508. package/dist/src/components/tabs/controllers/popout.controller.d.ts +96 -0
  509. package/dist/src/components/tabs/controllers/popout.controller.js +441 -0
  510. package/dist/src/components/textarea/controllers/base.controller.d.ts +43 -0
  511. package/dist/src/components/textarea/controllers/base.controller.js +19 -0
  512. package/dist/src/components/textarea/controllers/event.controller.d.ts +169 -0
  513. package/dist/src/components/textarea/controllers/event.controller.js +408 -0
  514. package/dist/src/components/textarea/controllers/index.d.ts +9 -0
  515. package/dist/src/components/textarea/controllers/index.js +9 -0
  516. package/dist/src/components/textarea/controllers/validation.controller.d.ts +133 -0
  517. package/dist/src/components/textarea/controllers/validation.controller.js +315 -0
  518. package/dist/src/components/timepicker/controllers/formatting.controller.d.ts +93 -0
  519. package/dist/src/components/timepicker/controllers/formatting.controller.js +195 -0
  520. package/dist/src/components/timepicker/controllers/index.d.ts +9 -0
  521. package/dist/src/components/timepicker/controllers/index.js +9 -0
  522. package/dist/src/components/timepicker/controllers/selection.controller.d.ts +72 -0
  523. package/dist/src/components/timepicker/controllers/selection.controller.js +175 -0
  524. package/dist/src/components/timepicker/controllers/validation.controller.d.ts +88 -0
  525. package/dist/src/components/timepicker/controllers/validation.controller.js +200 -0
  526. package/dist/src/components/timepicker/interfaces/timepicker.interface.d.ts +103 -0
  527. package/dist/src/components/timepicker/interfaces/timepicker.interface.js +7 -0
  528. package/dist/src/components/timepicker/test/timepicker_test.d.ts +7 -0
  529. package/dist/src/components/timepicker/test/timepicker_test.js +218 -0
  530. package/dist/src/components/timepicker/utils/time.utils.d.ts +87 -0
  531. package/dist/src/components/timepicker/utils/time.utils.js +235 -0
  532. package/dist/src/components/toast/bundle.js +11 -9
  533. package/dist/src/components/toast/bundle.js.gz +0 -0
  534. package/dist/src/components/toast/controllers/base.controller.d.ts +20 -0
  535. package/dist/src/components/toast/controllers/base.controller.js +12 -0
  536. package/dist/src/components/toast/controllers/index.d.ts +8 -0
  537. package/dist/src/components/toast/controllers/index.js +7 -0
  538. package/dist/src/components/toast/toast.component.d.ts +8 -0
  539. package/dist/src/components/toast/toast.component.js +17 -7
  540. package/dist/src/components/tooltips/demo/tooltips-demo.d.ts +18 -0
  541. package/dist/src/components/tooltips/demo/tooltips-demo.js +132 -0
  542. package/dist/src/components/tooltips/test/tooltips_test.d.ts +2 -0
  543. package/dist/src/components/tooltips/test/tooltips_test.js +145 -0
  544. package/dist/src/components/video/bundle.js +13 -12
  545. package/dist/src/components/video/bundle.js.gz +0 -0
  546. package/dist/src/components/video/video.component.d.ts +15 -1
  547. package/dist/src/components/video/video.component.js +131 -3
  548. package/package.json +31 -10
  549. package/packages/common/dist/VERSIONS.md +1 -1
@@ -0,0 +1,555 @@
1
+ import{css as t,html as e,nothing as i,LitElement as s}from"lit";import{property as n,customElement as r,state as o}from"lit/decorators.js";
2
+ /**
3
+ * @license
4
+ * Copyright 2023 Nuraly, Laabidi Aymen
5
+ * SPDX-License-Identifier: MIT
6
+ */const a=t=>class extends t{constructor(){super(...arguments),this.handleSystemThemeChange=()=>{this.closest("[data-theme]")||document.documentElement.hasAttribute("data-theme")||this.requestUpdate()}}connectedCallback(){super.connectedCallback(),this.setupThemeObserver(),this.setupDesignSystemObserver(),this.setupSystemThemeListener()}disconnectedCallback(){var t,e,i;super.disconnectedCallback(),null===(t=this.themeObserver)||void 0===t||t.disconnect(),null===(e=this.designSystemObserver)||void 0===e||e.disconnect(),null===(i=this.mediaQuery)||void 0===i||i.removeEventListener("change",this.handleSystemThemeChange)}get currentTheme(){var t,e;const i=(null===(t=this.closest("[data-theme]"))||void 0===t?void 0:t.getAttribute("data-theme"))||document.documentElement.getAttribute("data-theme");return i||((null===(e=window.matchMedia)||void 0===e?void 0:e.call(window,"(prefers-color-scheme: dark)").matches)?"dark":"light")}get currentDesignSystem(){var t;const e=(null===(t=this.closest("[design-system]"))||void 0===t?void 0:t.getAttribute("design-system"))||document.documentElement.getAttribute("design-system");return"carbon"===e?e:"default"}setupThemeObserver(){this.themeObserver=new MutationObserver(()=>{this.requestUpdate()}),this.themeObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]})}setupDesignSystemObserver(){this.designSystemObserver=new MutationObserver(()=>{this.requestUpdate()}),this.designSystemObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["design-system"]})}setupSystemThemeListener(){window.matchMedia&&(this.mediaQuery=window.matchMedia("(prefers-color-scheme: dark)"),this.mediaQuery.addEventListener("change",this.handleSystemThemeChange))}},c=()=>{var t;return void 0!==globalThis.litElementVersions||"undefined"!=typeof process&&"development"===(null===(t=process.env)||void 0===t?void 0:t.NODE_ENV)||"undefined"!=typeof window&&("localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname)},h=t=>class extends t{constructor(){super(...arguments),this.requiredComponents=[]}validateDependencies(){if(c())for(const t of this.requiredComponents)if(!this.isComponentAvailable(t))throw new Error(`Required component "${t}" is not registered. Please import and register the component before using ${this.tagName.toLowerCase()}. Example: import '@nuralyui/${t}';`)}validateDependenciesWithHandler(t){if(!c())return!0;let e=!0;for(const i of this.requiredComponents)if(!this.isComponentAvailable(i)){e=!1;const s=new Error(`Required component "${i}" is not registered. Please import and register the component before using ${this.tagName.toLowerCase()}.`);t?t(i,s):console.error(s.message)}return e}isComponentAvailable(t){return!!customElements.get(t)}getMissingDependencies(){return this.requiredComponents.filter(t=>!this.isComponentAvailable(t))}areDependenciesAvailable(){return this.requiredComponents.every(t=>this.isComponentAvailable(t))}addRequiredComponent(t){this.requiredComponents.includes(t)||this.requiredComponents.push(t)}removeRequiredComponent(t){const e=this.requiredComponents.indexOf(t);e>-1&&this.requiredComponents.splice(e,1)}},d=t=>class extends t{dispatchCustomEvent(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0,composed:!0}))}dispatchEventWithMetadata(t,e){var i;const s=Object.assign(Object.assign({},e),{timestamp:Date.now(),componentName:(null===(i=this.tagName)||void 0===i?void 0:i.toLowerCase())||"unknown"});this.dispatchCustomEvent(t,s)}dispatchInputEvent(t,e){const i=Object.assign({target:e.target||this,value:e.value,originalEvent:e.originalEvent},e);this.dispatchCustomEvent(t,i)}dispatchFocusEvent(t,e){const i=Object.assign({target:e.target||this,value:e.value,focused:e.focused,cursorPosition:e.cursorPosition,selectedText:e.selectedText},e);this.dispatchCustomEvent(t,i)}dispatchValidationEvent(t,e){var i;const s=Object.assign({target:e.target||this,value:e.value,isValid:null!==(i=e.isValid)&&void 0!==i&&i,error:e.error},e);this.dispatchCustomEvent(t,s)}dispatchActionEvent(t,e){const i=Object.assign({target:e.target||this,action:e.action,previousValue:e.previousValue,newValue:e.newValue},e);this.dispatchCustomEvent(t,i)}isReadonlyKeyAllowed(t){if(t.ctrlKey||t.metaKey){return["KeyA","KeyC"].includes(t.code)}return["Tab","Escape","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(t.key)}isActivationKey(t){return"Enter"===t.key||" "===t.key}},l=new Set,p=new Map;
7
+ /**
8
+ * @license
9
+ * Copyright 2023 Nuraly, Laabidi Aymen
10
+ * SPDX-License-Identifier: MIT
11
+ */
12
+ /**
13
+ * @license
14
+ * Copyright 2023 Nuraly, Laabidi Aymen
15
+ * SPDX-License-Identifier: MIT
16
+ */
17
+ const u=t=>{class e extends t{constructor(){super(...arguments),this.t=null}createRenderRoot(){return this.constructor.useShadowDom?super.createRenderRoot():this}connectedCallback(){const t=this.constructor.useShadowDom;if(!t&&null===this.t)for(this.t=[];this.firstChild;)this.t.push(this.removeChild(this.firstChild));if(super.connectedCallback(),!t){const t=this.constructor,e=this.tagName.toLowerCase(),i=t.styles;if(i){const t=f(i);t&&function(t,e,i){var s;if(!p.has(t)){const i=new CSSStyleSheet;i.replaceSync(e),p.set(t,i)}const n=p.get(t),r=`doc:${t}`;if(l.has(r)||(document.adoptedStyleSheets=[...document.adoptedStyleSheets,n],l.add(r)),i){let e=i;for(;e;){const i=e.getRootNode();if(!(i instanceof ShadowRoot))break;{const r=`shadow:${((null===(s=i.host)||void 0===s?void 0:s.tagName)||"").toLowerCase()}:${t}`;l.has(r)||(i.adoptedStyleSheets=[...i.adoptedStyleSheets,n],l.add(r)),e=i.host}}}}(e,t,this)}}}get lightChildren(){return this.t?this.t.filter(t=>!(t instanceof Element&&t.hasAttribute("slot"))):[]}lightChildrenNamed(t){return this.t?this.t.filter(e=>e instanceof Element&&e.getAttribute("slot")===t):[]}}return e.useShadowDom=!1,e},v=t=>h(a(d(u(t))));function f(t){return Array.isArray(t)?t.map(t=>f(t)).filter(Boolean).join("\n"):t&&"string"==typeof t.cssText?t.cssText:"string"==typeof t?t:""}
18
+ /**
19
+ * @license
20
+ * Copyright 2024 Nuraly, Laabidi Aymen
21
+ * SPDX-License-Identifier: MIT
22
+ */const m=t`
23
+ :host {
24
+ display: contents;
25
+ }
26
+ `
27
+ /**
28
+ * @license
29
+ * Copyright 2024 Nuraly, Laabidi Aymen
30
+ * SPDX-License-Identifier: MIT
31
+ */,g=t`
32
+ :host { display: flex; align-items: center; }
33
+
34
+ .presence {
35
+ display: flex;
36
+ align-items: center;
37
+ padding: 0 2px;
38
+ }
39
+
40
+ .pa {
41
+ position: relative;
42
+ margin-left: -7px;
43
+ }
44
+
45
+ .pa:first-child {
46
+ margin-left: 0;
47
+ }
48
+
49
+ .pa-avatar {
50
+ width: 26px;
51
+ height: 26px;
52
+ border-radius: 50%;
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ font-size: 10px;
57
+ font-weight: 700;
58
+ color: #fff;
59
+ border: 2px solid var(--nr-presence-bg, #fff);
60
+ cursor: pointer;
61
+ overflow: hidden;
62
+ flex-shrink: 0;
63
+ transition: transform 120ms;
64
+ }
65
+
66
+ .pa-avatar img {
67
+ width: 100%;
68
+ height: 100%;
69
+ object-fit: cover;
70
+ border-radius: 50%;
71
+ }
72
+
73
+ .pa:hover .pa-avatar {
74
+ transform: scale(1.12);
75
+ z-index: 2;
76
+ }
77
+
78
+ .pa-dot {
79
+ position: absolute;
80
+ bottom: 0px;
81
+ right: 0px;
82
+ width: 8px;
83
+ height: 8px;
84
+ border-radius: 50%;
85
+ background: #22c55e;
86
+ border: 2px solid var(--nr-presence-bg, #fff);
87
+ }
88
+
89
+ .pa-tip {
90
+ position: absolute;
91
+ top: calc(100% + 7px);
92
+ left: 50%;
93
+ transform: translateX(-50%);
94
+ background: #1a1a2e;
95
+ color: #fff;
96
+ font-size: 11px;
97
+ font-weight: 500;
98
+ padding: 3px 8px;
99
+ border-radius: 6px;
100
+ white-space: nowrap;
101
+ pointer-events: none;
102
+ opacity: 0;
103
+ transition: opacity 120ms;
104
+ z-index: 100;
105
+ }
106
+
107
+ .pa-tip::before {
108
+ content: '';
109
+ position: absolute;
110
+ bottom: 100%;
111
+ left: 50%;
112
+ transform: translateX(-50%);
113
+ border: 4px solid transparent;
114
+ border-bottom-color: #1a1a2e;
115
+ }
116
+
117
+ .pa:hover .pa-tip {
118
+ opacity: 1;
119
+ }
120
+
121
+ .pa-extra .pa-avatar {
122
+ background: var(--nr-presence-extra-bg, #e0e0e8);
123
+ color: var(--nr-presence-extra-color, #5c5c7c);
124
+ font-size: 9px;
125
+ font-weight: 700;
126
+ cursor: default;
127
+ }
128
+ `
129
+ /**
130
+ * @license
131
+ * Copyright 2024 Nuraly, Laabidi Aymen
132
+ * SPDX-License-Identifier: MIT
133
+ */;var b=function(t,e,i,s){for(var n,r=arguments.length,o=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s,a=t.length-1;a>=0;a--)(n=t[a])&&(o=(r<3?n(o):r>3?n(e,i,o):n(e,i))||o);return r>3&&o&&Object.defineProperty(e,i,o),o};let x=class extends(v(s)){constructor(){super(...arguments),this.users=[],this.max=5}_handleClick(t){this.dispatchEvent(new CustomEvent("user-click",{detail:{user:t},bubbles:!0,composed:!0}))}render(){const t=this.users.slice(0,this.max),s=Math.max(0,this.users.length-this.max);return e`
134
+ <div class="presence">
135
+ ${t.map(t=>e`
136
+ <div class="pa" @click=${()=>this._handleClick(t)}>
137
+ <div class="pa-avatar" style="background:${t.color}">
138
+ ${t.avatarUrl?e`<img src="${t.avatarUrl}" alt="${t.displayName}">`:t.initials||(t.displayName||"?")[0].toUpperCase()}
139
+ </div>
140
+ <span class="pa-dot"></span>
141
+ <span class="pa-tip">${t.displayName}</span>
142
+ </div>
143
+ `)}
144
+ ${s>0?e`
145
+ <div class="pa pa-extra">
146
+ <div class="pa-avatar" title="${s} more">+${s}</div>
147
+ </div>
148
+ `:i}
149
+ </div>
150
+ `}};x.styles=g,x.useShadowDom=!0,b([n({type:Array})],x.prototype,"users",void 0),b([n({type:Number})],x.prototype,"max",void 0),x=b([r("nr-presence-avatars")],x);
151
+ /**
152
+ * @license
153
+ * Copyright 2024 Nuraly, Laabidi Aymen
154
+ * SPDX-License-Identifier: MIT
155
+ */
156
+ const y=t`
157
+ :host {
158
+ position: fixed;
159
+ display: block;
160
+ width: 300px;
161
+ }
162
+
163
+ .chat-panel {
164
+ width: 300px;
165
+ height: 420px;
166
+ background: #fff;
167
+ border: 1px solid var(--nr-presence-border, #e0e0e8);
168
+ border-radius: 14px;
169
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.14);
170
+ display: flex;
171
+ flex-direction: column;
172
+ overflow: hidden;
173
+ animation: chatIn 0.18s ease;
174
+ }
175
+
176
+ @keyframes chatIn {
177
+ from { opacity: 0; transform: translateY(-8px) scale(0.97); }
178
+ to { opacity: 1; transform: none; }
179
+ }
180
+
181
+ .chat-panel.minimized {
182
+ height: auto;
183
+ width: 200px;
184
+ }
185
+
186
+ .chat-panel.minimized .chat-messages,
187
+ .chat-panel.minimized .chat-input-row {
188
+ display: none;
189
+ }
190
+
191
+ .chat-panel.minimized .chat-header {
192
+ border-bottom: none;
193
+ border-radius: 14px;
194
+ cursor: pointer;
195
+ }
196
+
197
+ .chat-header {
198
+ display: flex;
199
+ align-items: center;
200
+ gap: 8px;
201
+ padding: 10px 12px;
202
+ border-bottom: 1px solid var(--nr-presence-border, #e0e0e8);
203
+ flex-shrink: 0;
204
+ cursor: grab;
205
+ user-select: none;
206
+ }
207
+
208
+ .chat-header:active {
209
+ cursor: grabbing;
210
+ }
211
+
212
+ .chat-header-avatar {
213
+ width: 30px;
214
+ height: 30px;
215
+ border-radius: 50%;
216
+ display: flex;
217
+ align-items: center;
218
+ justify-content: center;
219
+ font-size: 11px;
220
+ font-weight: 700;
221
+ color: #fff;
222
+ flex-shrink: 0;
223
+ overflow: hidden;
224
+ }
225
+
226
+ .chat-header-avatar img {
227
+ width: 100%;
228
+ height: 100%;
229
+ object-fit: cover;
230
+ border-radius: 50%;
231
+ }
232
+
233
+ .chat-header-info {
234
+ flex: 1;
235
+ min-width: 0;
236
+ }
237
+
238
+ .chat-header-name {
239
+ font-size: 13px;
240
+ font-weight: 600;
241
+ color: var(--nr-presence-text, #0f0f3c);
242
+ }
243
+
244
+ .chat-header-status {
245
+ font-size: 11px;
246
+ color: #22c55e;
247
+ display: flex;
248
+ align-items: center;
249
+ gap: 4px;
250
+ }
251
+
252
+ .chat-header-status::before {
253
+ content: '';
254
+ width: 6px;
255
+ height: 6px;
256
+ border-radius: 50%;
257
+ background: #22c55e;
258
+ display: inline-block;
259
+ }
260
+
261
+ .chat-btn {
262
+ width: 24px;
263
+ height: 24px;
264
+ border-radius: 50%;
265
+ border: none;
266
+ background: var(--nr-presence-input-bg, #f5f5f8);
267
+ cursor: pointer;
268
+ display: flex;
269
+ align-items: center;
270
+ justify-content: center;
271
+ color: #8c8ca8;
272
+ transition: background 150ms;
273
+ flex-shrink: 0;
274
+ }
275
+
276
+ .chat-btn:hover {
277
+ background: var(--nr-presence-border, #e0e0e8);
278
+ color: var(--nr-presence-text, #0f0f3c);
279
+ }
280
+
281
+ .chat-messages {
282
+ flex: 1;
283
+ overflow-y: auto;
284
+ padding: 12px;
285
+ display: flex;
286
+ flex-direction: column;
287
+ gap: 8px;
288
+ }
289
+
290
+ .chat-msg {
291
+ display: flex;
292
+ flex-direction: column;
293
+ gap: 2px;
294
+ max-width: 80%;
295
+ }
296
+
297
+ .chat-msg.me {
298
+ align-self: flex-end;
299
+ align-items: flex-end;
300
+ }
301
+
302
+ .chat-msg.other {
303
+ align-self: flex-start;
304
+ align-items: flex-start;
305
+ }
306
+
307
+ .chat-bubble {
308
+ padding: 7px 11px;
309
+ border-radius: 12px;
310
+ font-size: 12px;
311
+ line-height: 1.4;
312
+ word-break: break-word;
313
+ }
314
+
315
+ .chat-msg.me .chat-bubble {
316
+ background: var(--nr-presence-accent, #7c3aed);
317
+ color: #fff;
318
+ border-bottom-right-radius: 3px;
319
+ }
320
+
321
+ .chat-msg.other .chat-bubble {
322
+ background: var(--nr-presence-input-bg, #f5f5f8);
323
+ color: var(--nr-presence-text, #0f0f3c);
324
+ border-bottom-left-radius: 3px;
325
+ }
326
+
327
+ .chat-time {
328
+ font-size: 10px;
329
+ color: var(--nr-presence-text-secondary, #8c8ca8);
330
+ padding: 0 2px;
331
+ }
332
+
333
+ .chat-empty {
334
+ flex: 1;
335
+ display: flex;
336
+ align-items: center;
337
+ justify-content: center;
338
+ flex-direction: column;
339
+ gap: 6px;
340
+ color: var(--nr-presence-text-secondary, #8c8ca8);
341
+ font-size: 12px;
342
+ }
343
+
344
+ .chat-empty svg {
345
+ opacity: 0.35;
346
+ }
347
+
348
+ .chat-input-row {
349
+ display: flex;
350
+ align-items: center;
351
+ gap: 6px;
352
+ padding: 8px 10px;
353
+ border-top: 1px solid var(--nr-presence-border, #e0e0e8);
354
+ flex-shrink: 0;
355
+ }
356
+
357
+ .chat-input {
358
+ flex: 1;
359
+ border: 1px solid var(--nr-presence-border, #e0e0e8);
360
+ border-radius: 20px;
361
+ padding: 6px 12px;
362
+ font-size: 12px;
363
+ outline: none;
364
+ background: var(--nr-presence-input-bg, #f5f5f8);
365
+ color: var(--nr-presence-text, #0f0f3c);
366
+ transition: border-color 150ms;
367
+ }
368
+
369
+ .chat-input:focus {
370
+ border-color: var(--nr-presence-accent, #7c3aed);
371
+ }
372
+
373
+ .chat-send {
374
+ width: 30px;
375
+ height: 30px;
376
+ border-radius: 50%;
377
+ border: none;
378
+ background: var(--nr-presence-accent, #7c3aed);
379
+ color: #fff;
380
+ cursor: pointer;
381
+ display: flex;
382
+ align-items: center;
383
+ justify-content: center;
384
+ flex-shrink: 0;
385
+ transition: background 150ms;
386
+ }
387
+
388
+ .chat-send:hover {
389
+ background: #6d28d9;
390
+ }
391
+
392
+ .chat-send:disabled {
393
+ background: var(--nr-presence-border, #e0e0e8);
394
+ cursor: default;
395
+ }
396
+ `
397
+ /**
398
+ * @license
399
+ * Copyright 2024 Nuraly, Laabidi Aymen
400
+ * SPDX-License-Identifier: MIT
401
+ */;var w=function(t,e,i,s){for(var n,r=arguments.length,o=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s,a=t.length-1;a>=0;a--)(n=t[a])&&(o=(r<3?n(o):r>3?n(e,i,o):n(e,i))||o);return r>3&&o&&Object.defineProperty(e,i,o),o};let k=class extends(v(s)){constructor(){super(...arguments),this.user={displayName:"",color:"#7c3aed"},this.x=300,this.y=200,this.z=100,this.minimized=!1,this.minimizedIndex=0,this.messages=[],this.loading=!1,this._draft=""}_emit(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0,composed:!0}))}_onHeaderMousedown(t){if(this.minimized)return;const e=this.getBoundingClientRect();this._emit("drag-start",{offsetX:t.clientX-e.left,offsetY:t.clientY-e.top}),t.preventDefault()}_onHeaderClick(){this.minimized&&this._emit("restore")}_onSend(){const t=this._draft.trim();t&&(this._emit("send",{text:t}),this._draft="")}_onInputKeydown(t){"Enter"===t.key&&this._onSend(),"Escape"===t.key&&this._emit("close")}updated(){this.style.position="fixed",this.style.display="block",this.style.width="300px",this.minimized?(this.style.right=12+212*this.minimizedIndex+"px",this.style.bottom="0",this.style.top="auto",this.style.left="auto"):(this.style.left=`${this.x}px`,this.style.top=`${this.y}px`,this.style.right="auto",this.style.bottom="auto"),this.style.zIndex=String(this.z)}render(){return e`
402
+ <div
403
+ class="chat-panel${this.minimized?" minimized":""}"
404
+ @mousedown=${()=>this._emit("focus")}
405
+ >
406
+ <div
407
+ class="chat-header"
408
+ @mousedown=${this._onHeaderMousedown}
409
+ @click=${this._onHeaderClick}
410
+ >
411
+ <div class="chat-header-avatar" style="background:${this.user.color}">
412
+ ${this.user.avatarUrl?e`<img src="${this.user.avatarUrl}" alt="${this.user.displayName}">`:this.user.initials||(this.user.displayName||"?")[0].toUpperCase()}
413
+ </div>
414
+ <div class="chat-header-info">
415
+ <div class="chat-header-name">${this.user.displayName}</div>
416
+ ${this.minimized?i:e`<div class="chat-header-status">Online</div>`}
417
+ </div>
418
+
419
+ ${this.minimized?e`
420
+ <button
421
+ class="chat-btn"
422
+ title="Float"
423
+ @mousedown=${t=>t.stopPropagation()}
424
+ @click=${t=>{t.stopPropagation(),this._emit("float")}}
425
+ >
426
+ <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
427
+ <polyline points="15 3 21 3 21 9"/>
428
+ <polyline points="9 21 3 21 3 15"/>
429
+ <line x1="21" y1="3" x2="14" y2="10"/>
430
+ <line x1="3" y1="21" x2="10" y2="14"/>
431
+ </svg>
432
+ </button>
433
+ `:e`
434
+ <button
435
+ class="chat-btn"
436
+ title="Minimize"
437
+ @mousedown=${t=>t.stopPropagation()}
438
+ @click=${t=>{t.stopPropagation(),this._emit("minimize")}}
439
+ >
440
+ <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
441
+ <line x1="5" y1="12" x2="19" y2="12"/>
442
+ </svg>
443
+ </button>
444
+ `}
445
+
446
+ <button
447
+ class="chat-btn"
448
+ title="Close"
449
+ @mousedown=${t=>t.stopPropagation()}
450
+ @click=${t=>{t.stopPropagation(),this._emit("close")}}
451
+ >
452
+ <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
453
+ <path d="M18 6 6 18M6 6l12 12"/>
454
+ </svg>
455
+ </button>
456
+ </div>
457
+
458
+ <div class="chat-messages">
459
+ ${this.loading?e`
460
+ <div class="chat-empty">
461
+ <span>Loading...</span>
462
+ </div>
463
+ `:0===this.messages.length?e`
464
+ <div class="chat-empty">
465
+ <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
466
+ <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
467
+ </svg>
468
+ <span>No messages yet</span>
469
+ <span style="font-size:11px">Say hi to ${this.user.displayName}!</span>
470
+ </div>
471
+ `:this.messages.map(t=>e`
472
+ <div class="chat-msg ${t.me?"me":"other"}">
473
+ <div class="chat-bubble">${t.text}</div>
474
+ <span class="chat-time">${new Date(t.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}</span>
475
+ </div>
476
+ `)}
477
+ </div>
478
+
479
+ <div class="chat-input-row">
480
+ <input
481
+ part="input-container"
482
+ class="chat-input"
483
+ placeholder="Type a message..."
484
+ .value=${this._draft}
485
+ ?disabled=${this.loading}
486
+ @input=${t=>{this._draft=t.target.value}}
487
+ @keydown=${this._onInputKeydown}
488
+ >
489
+ <button
490
+ class="chat-send"
491
+ ?disabled=${!this._draft.trim()||this.loading}
492
+ @click=${this._onSend}
493
+ >
494
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
495
+ <path d="m22 2-7 20-4-9-9-4Z"/>
496
+ <path d="M22 2 11 13"/>
497
+ </svg>
498
+ </button>
499
+ </div>
500
+ </div>
501
+ `}};k.styles=y,k.useShadowDom=!0,w([n({type:Object})],k.prototype,"user",void 0),w([n({type:Number})],k.prototype,"x",void 0),w([n({type:Number})],k.prototype,"y",void 0),w([n({type:Number})],k.prototype,"z",void 0),w([n({type:Boolean})],k.prototype,"minimized",void 0),w([n({type:Number})],k.prototype,"minimizedIndex",void 0),w([n({type:Array})],k.prototype,"messages",void 0),w([n({type:Boolean})],k.prototype,"loading",void 0),w([o()],k.prototype,"_draft",void 0),k=w([r("nr-presence-chat")],k);
502
+ /**
503
+ * @license
504
+ * Copyright 2024 Nuraly, Laabidi Aymen
505
+ * SPDX-License-Identifier: MIT
506
+ */
507
+ var $=function(t,e,i,s){for(var n,r=arguments.length,o=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s,a=t.length-1;a>=0;a--)(n=t[a])&&(o=(r<3?n(o):r>3?n(e,i,o):n(e,i))||o);return r>3&&o&&Object.defineProperty(e,i,o),o},z=function(t,e,i,s){return new(i||(i=Promise))(function(n,r){function o(t){try{c(s.next(t))}catch(t){r(t)}}function a(t){try{c(s.throw(t))}catch(t){r(t)}}function c(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(o,a)}c((s=s.apply(t,e||[])).next())})};const S="__group__";let C=class extends(v(s)){constructor(){super(...arguments),this.namespace="",this.socketPath="/__nk_socketio/",this.resourceId="",this.resourceType="",this.resourceName="",this.userId="",this.currentUser=null,this.extraUsers=[],this.globalSocket=null,this._viewers=[],this._hasUnreadGroup=!1,this._socket=null,this._connecting=!1,this._chats=new Map,this._chatZ=100,this._drag=null,this._boundDragMove=t=>this._onDragMove(t),this._boundDragEnd=()=>this._onDragEnd(),this._boundEscape=t=>this._onEscape(t),this._boundOnMessage=t=>this._onSocketMessage(t),this._groupConversationId=null}connectedCallback(){super.connectedCallback(),document.addEventListener("keydown",this._boundEscape),this._connect(),this._attachGlobalSocket()}disconnectedCallback(){var t;super.disconnectedCallback(),document.removeEventListener("keydown",this._boundEscape),document.removeEventListener("mousemove",this._boundDragMove),document.removeEventListener("mouseup",this._boundDragEnd),null===(t=this._socket)||void 0===t||t.disconnect(),this._socket=null,this._detachGlobalSocket()}updated(t){t.has("globalSocket")&&(this._detachGlobalSocket(t.get("globalSocket")),this._attachGlobalSocket()),!this._socket&&(t.has("userId")||t.has("resourceId")||t.has("namespace"))&&this.userId&&this.resourceId&&this.namespace&&this._connect()}_attachGlobalSocket(){this.globalSocket&&this.globalSocket.on("nk:data",this._boundOnMessage)}_detachGlobalSocket(t){const e=t||this.globalSocket;e&&e.off("nk:data",this._boundOnMessage)}_onSocketMessage(t){if("message:new"!==t.event)return;const e=t.data;if((null==e?void 0:e.conversationId)&&e.senderId!==this.userId){for(const[,t]of this._chats)if(t.conversationId===e.conversationId)return t.messages=[...t.messages,{id:String(e.id),senderId:e.senderId,text:e.content,timestamp:new Date(e.createdAt).getTime(),me:!1}],void this.requestUpdate();this._groupConversationId&&e.conversationId===this._groupConversationId&&(this._hasUnreadGroup=!0)}}_connect(){return z(this,void 0,void 0,function*(){if(!this._socket&&!this._connecting&&this.userId&&this.resourceId&&this.namespace){this._connecting=!0;try{const{io:t}=yield import("socket.io-client");this._socket=t(this.namespace,{path:this.socketPath,query:{i:JSON.stringify({userId:this.userId,resourceId:this.resourceId})}}),this._socket.on("nk:data",t=>{var e;const i=t.event;"presence:viewers"!==i&&"presence:joined"!==i&&"presence:left"!==i||(this._viewers=(null===(e=t.data)||void 0===e?void 0:e.viewers)||[],this.dispatchEvent(new CustomEvent("presence-changed",{detail:{viewers:this._viewers},bubbles:!0,composed:!0})))})}catch(t){console.error("[nr-presence] Connection failed:",t)}finally{this._connecting=!1}}})}_openGroupChat(){return z(this,void 0,void 0,function*(){var t;if(this._chats.has(S)){const t=this._chats.get(S);return t.minimized=!1,t.z=++this._chatZ,this._hasUnreadGroup=!1,void this.requestUpdate()}const e=window.innerWidth-324;this._chats.set(S,{user:{displayName:this.resourceName||`${this.resourceType} chat`,color:"#7c3aed",initials:"#"},conversationId:null,loading:!0,x:e,y:56,savedX:e,savedY:56,z:++this._chatZ,minimized:!1,messages:[],draftText:""}),this._hasUnreadGroup=!1,this.requestUpdate();try{const e=yield fetch("/api/conversations/resource",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({resourceType:this.resourceType,resourceId:this.resourceId,resourceName:this.resourceName})}),i=yield e.json(),s=this._chats.get(S);if(!s||!i.conversationId)return s&&(s.loading=!1),void this.requestUpdate();s.conversationId=i.conversationId,this._groupConversationId=i.conversationId,(null===(t=this.globalSocket)||void 0===t?void 0:t.connected)&&this.globalSocket.emit("nk:conversation:join",{conversationId:i.conversationId}),yield this._loadMessages(s)}catch(t){console.error("[nr-presence] Failed to open group chat:",t);const e=this._chats.get(S);e&&(e.loading=!1)}this.requestUpdate()})}_openDm(t){return z(this,void 0,void 0,function*(){var e;const i=t.userId||t.displayName;if(i===this.userId)return void this._openGroupChat();if(this._chats.has(i))return this._chats.get(i).z=++this._chatZ,void this.requestUpdate();const s=[...this._chats.keys()].filter(t=>t!==S).length,n=window.innerWidth-324-24*(s+1),r=56+24*(s+1);if(this._chats.set(i,{user:t,conversationId:null,loading:!0,x:n,y:r,savedX:n,savedY:r,z:++this._chatZ,minimized:!1,messages:[],draftText:""}),this.requestUpdate(),t.userId){try{const s=yield fetch("/api/conversations/dm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetUserId:t.userId})}),n=yield s.json(),r=this._chats.get(i);if(!r||!n.conversationId)return r&&(r.loading=!1),void this.requestUpdate();r.conversationId=n.conversationId,(null===(e=this.globalSocket)||void 0===e?void 0:e.connected)&&this.globalSocket.emit("nk:conversation:join",{conversationId:n.conversationId}),yield this._loadMessages(r)}catch(t){console.error("[nr-presence] Failed to open DM:",t);const e=this._chats.get(i);e&&(e.loading=!1)}this.requestUpdate()}})}_loadMessages(t){return z(this,void 0,void 0,function*(){var e;if(t.conversationId){try{const i=yield fetch(`/api/conversations/${t.conversationId}/messages`),s=yield i.json();(null===(e=s.messages)||void 0===e?void 0:e.length)&&(t.messages=s.messages.map(t=>({id:String(t.id),senderId:t.sender_id,text:t.content,timestamp:new Date(t.created_at).getTime(),me:t.sender_id===this.userId})))}catch(t){console.error("[nr-presence] Failed to load messages:",t)}t.loading=!1}})}_sendMessage(t,e){var i;const s=this._chats.get(t);(null==s?void 0:s.conversationId)&&(s.messages=[...s.messages,{id:crypto.randomUUID(),senderId:this.userId,text:e,timestamp:Date.now(),me:!0}],this.requestUpdate(),(null===(i=this.globalSocket)||void 0===i?void 0:i.connected)&&this.globalSocket.emit("nk:message:send",{conversationId:s.conversationId,content:e,type:"text"}))}_closeChat(t){this._chats.delete(t),this.requestUpdate()}_onEscape(t){if("Escape"!==t.key||0===this._chats.size)return;let e="",i=-1;for(const[t,s]of this._chats)s.z>i&&(i=s.z,e=t);if(!e)return;const s=this._chats.get(e);s.minimized?this._closeChat(e):(s.savedX=s.x,s.savedY=s.y,s.minimized=!0,this.requestUpdate())}_onDragStart(t,e,i){const s=this._chats.get(t);s&&(s.z=++this._chatZ,this._drag={userId:t,ox:e,oy:i},document.addEventListener("mousemove",this._boundDragMove),document.addEventListener("mouseup",this._boundDragEnd))}_onDragMove(t){if(!this._drag)return;const e=this._chats.get(this._drag.userId);e&&(e.x=Math.max(0,Math.min(window.innerWidth-300,t.clientX-this._drag.ox)),e.y=Math.max(0,Math.min(window.innerHeight-60,t.clientY-this._drag.oy)),this.requestUpdate())}_onDragEnd(){this._drag=null,document.removeEventListener("mousemove",this._boundDragMove),document.removeEventListener("mouseup",this._boundDragEnd)}render(){const t=this.currentUser,s=[...t?[t]:[],...this._viewers.filter(e=>!t||e.userId!==t.userId),...this.extraUsers],n=[...this._chats.entries()].filter(([,t])=>t.minimized);return e`
508
+ <nr-presence-avatars
509
+ .users=${s}
510
+ @user-click=${t=>this._openDm(t.detail.user)}
511
+ ></nr-presence-avatars>
512
+
513
+ ${this.resourceType?e`
514
+ <button class="group-chat-btn" title="Team chat" @click=${()=>this._openGroupChat()}>
515
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5">
516
+ <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
517
+ </svg>
518
+ ${this._hasUnreadGroup?e`<span class="unread-dot"></span>`:i}
519
+ </button>
520
+ `:i}
521
+
522
+ ${[...this._chats.entries()].map(([t,i])=>{const s=n.findIndex(([e])=>e===t);return e`
523
+ <nr-presence-chat
524
+ .user=${i.user}
525
+ .x=${i.x}
526
+ .y=${i.y}
527
+ .z=${i.z}
528
+ .minimized=${i.minimized}
529
+ .minimizedIndex=${s>=0?s:0}
530
+ .messages=${i.messages}
531
+ .loading=${i.loading}
532
+ @focus=${()=>{i.z=++this._chatZ,this.requestUpdate()}}
533
+ @drag-start=${e=>this._onDragStart(t,e.detail.offsetX,e.detail.offsetY)}
534
+ @minimize=${()=>{i.savedX=i.x,i.savedY=i.y,i.minimized=!0,this.requestUpdate()}}
535
+ @restore=${()=>{i.x=Math.max(0,window.innerWidth-(12+212*s)-300),i.y=Math.max(0,window.innerHeight-420-56),i.minimized=!1,i.z=++this._chatZ,this.requestUpdate()}}
536
+ @float=${()=>{i.minimized=!1,i.x=i.savedX,i.y=i.savedY,i.z=++this._chatZ,this.requestUpdate()}}
537
+ @close=${()=>this._closeChat(t)}
538
+ @send=${e=>this._sendMessage(t,e.detail.text)}
539
+ ></nr-presence-chat>
540
+ `})}
541
+ `}};C.styles=[m,t`
542
+ .group-chat-btn {
543
+ display: flex; align-items: center; justify-content: center;
544
+ width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--bg, #fff);
545
+ background: var(--accent, #7c3aed); color: #fff; cursor: pointer;
546
+ margin-left: 4px; transition: transform 120ms, background 120ms;
547
+ position: relative;
548
+ }
549
+ .group-chat-btn:hover { transform: scale(1.1); background: var(--accent-hover, #6d28d9); }
550
+ .group-chat-btn svg { width: 14px; height: 14px; }
551
+ .unread-dot {
552
+ position: absolute; top: -2px; right: -2px; width: 8px; height: 8px;
553
+ border-radius: 50%; background: #ef4444; border: 2px solid var(--bg, #fff);
554
+ }
555
+ `],C.useShadowDom=!0,$([n({type:String})],C.prototype,"namespace",void 0),$([n({type:String,attribute:"socket-path"})],C.prototype,"socketPath",void 0),$([n({type:String,attribute:"resource-id"})],C.prototype,"resourceId",void 0),$([n({type:String,attribute:"resource-type"})],C.prototype,"resourceType",void 0),$([n({type:String,attribute:"resource-name"})],C.prototype,"resourceName",void 0),$([n({type:String,attribute:"user-id"})],C.prototype,"userId",void 0),$([n({type:Object})],C.prototype,"currentUser",void 0),$([n({type:Array})],C.prototype,"extraUsers",void 0),$([n({type:Object})],C.prototype,"globalSocket",void 0),$([o()],C.prototype,"_viewers",void 0),$([o()],C.prototype,"_hasUnreadGroup",void 0),C=$([r("nr-presence")],C);export{x as NrPresenceAvatarsElement,k as NrPresenceChatElement,C as NrPresenceElement};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2024 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export * from './presence.component.js';
7
+ export * from './presence-avatars.component.js';
8
+ export * from './presence-chat.component.js';
9
+ export * from './presence.types.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2024 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export * from './presence.component.js';
7
+ export * from './presence-avatars.component.js';
8
+ export * from './presence-chat.component.js';
9
+ export * from './presence.types.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2024 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { LitElement } from 'lit';
7
+ import type { PresenceUser } from './presence.types.js';
8
+ declare const NrPresenceAvatarsElement_base: (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin.js").LightDomContent) & typeof LitElement;
9
+ /**
10
+ * Renders an overlapping avatar bubble strip for presence indicators.
11
+ * Pure UI — no socket, no state.
12
+ *
13
+ * @example
14
+ * ```html
15
+ * <nr-presence-avatars
16
+ * .users=${viewers}
17
+ * max="5"
18
+ * @user-click=${e => this._openChat(e.detail.user)}
19
+ * ></nr-presence-avatars>
20
+ * ```
21
+ *
22
+ * @fires user-click - Fired when an avatar is clicked. Detail: `{ user: PresenceUser }`
23
+ */
24
+ export declare class NrPresenceAvatarsElement extends NrPresenceAvatarsElement_base {
25
+ static styles: import("lit").CSSResult;
26
+ static useShadowDom: boolean;
27
+ /** List of users to display */
28
+ users: PresenceUser[];
29
+ /** Max visible avatars before +N overflow badge */
30
+ max: number;
31
+ private _handleClick;
32
+ render(): import("lit-html").TemplateResult<1>;
33
+ }
34
+ declare global {
35
+ interface HTMLElementTagNameMap {
36
+ 'nr-presence-avatars': NrPresenceAvatarsElement;
37
+ }
38
+ }
39
+ export {};
40
+ //# sourceMappingURL=presence-avatars.component.d.ts.map