@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,98 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { FocusController } from '../interfaces/focus-controller.interface.js';
7
+ /**
8
+ * Controller that manages focus state and focus handling for radio groups
9
+ * Implements proper focus management with accessibility compliance
10
+ *
11
+ * Features:
12
+ * - Tracks focused radio option index
13
+ * - Manages focus state transitions
14
+ * - Provides focus/blur methods for programmatic control
15
+ * - Handles roving tabindex for accessibility
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const controller = new RadioFocusController(hostElement);
20
+ * controller.setFocusedOption(1); // Focus second option
21
+ * controller.focus(); // Programmatically focus the group
22
+ * ```
23
+ */
24
+ export declare class RadioFocusController implements FocusController {
25
+ private host;
26
+ private _focusedIndex;
27
+ private _hasFocus;
28
+ private boundFocusInHandler;
29
+ private boundFocusOutHandler;
30
+ /**
31
+ * Creates a new RadioFocusController instance
32
+ * Sets up event handlers for focus management
33
+ *
34
+ * @param host - The host radio element
35
+ */
36
+ constructor(host: any);
37
+ /**
38
+ * Called when the host element is connected to the DOM
39
+ * Sets up focus event listeners for the radio group
40
+ */
41
+ hostConnected(): void;
42
+ /**
43
+ * Called when the host element is disconnected from the DOM
44
+ * Removes focus event listeners to prevent memory leaks
45
+ */
46
+ hostDisconnected(): void;
47
+ /**
48
+ * Gets the index of the currently focused radio option
49
+ *
50
+ * @returns The focused option index, -1 if none focused
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const index = controller.focusedIndex;
55
+ * console.log(`Option ${index} is focused`);
56
+ * ```
57
+ */
58
+ get focusedIndex(): number;
59
+ /**
60
+ * Checks if the radio group currently has focus
61
+ *
62
+ * @returns True if any option in the group has focus, false otherwise
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * if (controller.hasFocus) {
67
+ * console.log('Radio group is focused');
68
+ * }
69
+ * ```
70
+ */
71
+ get hasFocus(): boolean;
72
+ /**
73
+ * Sets the focused option by index
74
+ * Updates internal state and triggers re-render if needed
75
+ *
76
+ * @param index - The index of the option to focus
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * controller.setFocusedOption(2); // Focus third option
81
+ * ```
82
+ */
83
+ setFocusedOption(index: number): void;
84
+ /**
85
+ * Get the currently focused option index (method version for interface compliance)
86
+ * @returns The focused option index or -1 if none focused
87
+ */
88
+ getFocusedIndex(): number;
89
+ clearFocus(): void;
90
+ private handleFocusIn;
91
+ private handleFocusOut;
92
+ focus(): void;
93
+ blur(): void;
94
+ private focusOptionAtIndex;
95
+ updateTabIndices(focusedIndex?: number): void;
96
+ hostUpdated(): void;
97
+ }
98
+ //# sourceMappingURL=focus.controller.d.ts.map
@@ -0,0 +1,216 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Controller that manages focus state and focus handling for radio groups
8
+ * Implements proper focus management with accessibility compliance
9
+ *
10
+ * Features:
11
+ * - Tracks focused radio option index
12
+ * - Manages focus state transitions
13
+ * - Provides focus/blur methods for programmatic control
14
+ * - Handles roving tabindex for accessibility
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const controller = new RadioFocusController(hostElement);
19
+ * controller.setFocusedOption(1); // Focus second option
20
+ * controller.focus(); // Programmatically focus the group
21
+ * ```
22
+ */
23
+ export class RadioFocusController {
24
+ /**
25
+ * Creates a new RadioFocusController instance
26
+ * Sets up event handlers for focus management
27
+ *
28
+ * @param host - The host radio element
29
+ */
30
+ constructor(host) {
31
+ this._focusedIndex = -1;
32
+ this._hasFocus = false;
33
+ this.host = host;
34
+ this.boundFocusInHandler = this.handleFocusIn.bind(this);
35
+ this.boundFocusOutHandler = this.handleFocusOut.bind(this);
36
+ host.addController(this);
37
+ }
38
+ /**
39
+ * Called when the host element is connected to the DOM
40
+ * Sets up focus event listeners for the radio group
41
+ */
42
+ hostConnected() {
43
+ this.host.addEventListener('focusin', this.boundFocusInHandler);
44
+ this.host.addEventListener('focusout', this.boundFocusOutHandler);
45
+ }
46
+ /**
47
+ * Called when the host element is disconnected from the DOM
48
+ * Removes focus event listeners to prevent memory leaks
49
+ */
50
+ hostDisconnected() {
51
+ this.host.removeEventListener('focusin', this.boundFocusInHandler);
52
+ this.host.removeEventListener('focusout', this.boundFocusOutHandler);
53
+ }
54
+ /**
55
+ * Gets the index of the currently focused radio option
56
+ *
57
+ * @returns The focused option index, -1 if none focused
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const index = controller.focusedIndex;
62
+ * console.log(`Option ${index} is focused`);
63
+ * ```
64
+ */
65
+ get focusedIndex() {
66
+ return this._focusedIndex;
67
+ }
68
+ /**
69
+ * Checks if the radio group currently has focus
70
+ *
71
+ * @returns True if any option in the group has focus, false otherwise
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * if (controller.hasFocus) {
76
+ * console.log('Radio group is focused');
77
+ * }
78
+ * ```
79
+ */
80
+ get hasFocus() {
81
+ return this._hasFocus;
82
+ }
83
+ /**
84
+ * Sets the focused option by index
85
+ * Updates internal state and triggers re-render if needed
86
+ *
87
+ * @param index - The index of the option to focus
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * controller.setFocusedOption(2); // Focus third option
92
+ * ```
93
+ */
94
+ setFocusedOption(index) {
95
+ const oldIndex = this._focusedIndex;
96
+ this._focusedIndex = index;
97
+ if (oldIndex !== index) {
98
+ this.host.requestUpdate();
99
+ }
100
+ }
101
+ /**
102
+ * Get the currently focused option index (method version for interface compliance)
103
+ * @returns The focused option index or -1 if none focused
104
+ */
105
+ getFocusedIndex() {
106
+ return this._focusedIndex;
107
+ }
108
+ clearFocus() {
109
+ this._focusedIndex = -1;
110
+ this._hasFocus = false;
111
+ this.host.requestUpdate();
112
+ }
113
+ // Event handlers
114
+ handleFocusIn(event) {
115
+ var _a;
116
+ this._hasFocus = true;
117
+ // Determine which option received focus
118
+ const target = event.target;
119
+ if (target && target.matches('input[type="radio"], nr-button[role="radio"]')) {
120
+ const inputs = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('input[type="radio"], nr-button[role="radio"]');
121
+ if (inputs) {
122
+ const index = Array.from(inputs).indexOf(target);
123
+ if (index !== -1) {
124
+ this.setFocusedOption(index);
125
+ }
126
+ }
127
+ }
128
+ this.host.requestUpdate();
129
+ }
130
+ handleFocusOut(event) {
131
+ const relatedTarget = event.relatedTarget;
132
+ const host = this.host;
133
+ // Check if focus is moving outside the radio group
134
+ if (!relatedTarget || !host.contains(relatedTarget)) {
135
+ this._hasFocus = false;
136
+ this.host.requestUpdate();
137
+ }
138
+ }
139
+ // Programmatic focus methods
140
+ focus() {
141
+ const options = this.host.options;
142
+ const selectedValue = this.host.value;
143
+ // Focus the selected option if one exists
144
+ const selectedIndex = options.findIndex((option) => option.value === selectedValue);
145
+ if (selectedIndex !== -1) {
146
+ this.focusOptionAtIndex(selectedIndex);
147
+ return;
148
+ }
149
+ // Otherwise focus the first non-disabled option
150
+ const firstEnabledIndex = options.findIndex((option) => !option.disabled);
151
+ if (firstEnabledIndex !== -1) {
152
+ this.focusOptionAtIndex(firstEnabledIndex);
153
+ }
154
+ }
155
+ blur() {
156
+ const host = this.host;
157
+ const shadowRoot = host.shadowRoot;
158
+ if (!shadowRoot)
159
+ return;
160
+ // Find and blur any focused radio input or button
161
+ const focusedElement = shadowRoot.querySelector('input[type="radio"]:focus, nr-button[role="radio"]:focus');
162
+ if (focusedElement && typeof focusedElement.blur === 'function') {
163
+ focusedElement.blur();
164
+ }
165
+ }
166
+ focusOptionAtIndex(index) {
167
+ const host = this.host;
168
+ const shadowRoot = host.shadowRoot;
169
+ if (!shadowRoot)
170
+ return;
171
+ // Update tab indices first
172
+ this.updateTabIndices(index);
173
+ // Focus the element at the specified index
174
+ const radioInputs = shadowRoot.querySelectorAll('input[type="radio"]');
175
+ if (radioInputs[index]) {
176
+ radioInputs[index].focus();
177
+ return;
178
+ }
179
+ const buttons = shadowRoot.querySelectorAll('nr-button[role="radio"]');
180
+ if (buttons[index]) {
181
+ buttons[index].focus();
182
+ return;
183
+ }
184
+ }
185
+ // Tab index management for proper keyboard navigation
186
+ updateTabIndices(focusedIndex) {
187
+ const host = this.host;
188
+ const shadowRoot = host.shadowRoot;
189
+ if (!shadowRoot)
190
+ return;
191
+ const options = this.host.options;
192
+ const selectedValue = this.host.value;
193
+ // Determine which option should be tabbable
194
+ let tabbableIndex = focusedIndex;
195
+ if (tabbableIndex === undefined) {
196
+ // If no specific index, use selected option or first enabled option
197
+ const selectedIndex = options.findIndex((option) => option.value === selectedValue);
198
+ tabbableIndex = selectedIndex !== -1 ? selectedIndex : options.findIndex((option) => !option.disabled);
199
+ }
200
+ // Update radio inputs
201
+ const radioInputs = shadowRoot.querySelectorAll('input[type="radio"]');
202
+ radioInputs.forEach((input, index) => {
203
+ input.tabIndex = index === tabbableIndex ? 0 : -1;
204
+ });
205
+ // Update buttons (for button-style radio)
206
+ const buttons = shadowRoot.querySelectorAll('nr-button[role="radio"]');
207
+ buttons.forEach((button, index) => {
208
+ button.tabIndex = index === tabbableIndex ? 0 : -1;
209
+ });
210
+ }
211
+ // Method to be called after rendering to update tab indices
212
+ hostUpdated() {
213
+ this.updateTabIndices();
214
+ }
215
+ }
216
+ //# sourceMappingURL=focus.controller.js.map
@@ -0,0 +1,140 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { RadioButtonOption } from '../radio-group.types.js';
7
+ import { SelectionController, RadioHost } from '../interfaces/index.js';
8
+ /**
9
+ * Controller that manages radio group state and selection logic
10
+ * Implements type-safe selection operations with proper error handling
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const controller = new RadioGroupController(hostElement);
15
+ * controller.selectOption(option); // Type-safe selection
16
+ * ```
17
+ */
18
+ export declare class RadioGroupController implements SelectionController {
19
+ readonly host: RadioHost;
20
+ constructor(host: RadioHost & {
21
+ dispatchEvent: (event: Event) => void;
22
+ });
23
+ /**
24
+ * Called when the host element is connected to the DOM
25
+ * Initializes the default selection if provided
26
+ *
27
+ * @fires change - When default value is set automatically
28
+ */
29
+ hostConnected(): void;
30
+ /**
31
+ * Called when the host element is disconnected from the DOM
32
+ * Performs cleanup operations
33
+ */
34
+ hostDisconnected(): void;
35
+ /**
36
+ * Selects a radio option and dispatches change events
37
+ * Implements proper error handling for disabled options
38
+ *
39
+ * @param option - The radio option to select
40
+ * @throws {Error} When option is disabled or invalid
41
+ * @fires change - When selection changes successfully
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * controller.selectOption({ value: 'option1', label: 'Option 1' });
46
+ * ```
47
+ */
48
+ selectOption(option: RadioButtonOption): void;
49
+ /**
50
+ * Gets the currently selected radio option
51
+ *
52
+ * @returns The selected option object or undefined if none selected
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const selected = controller.getSelectedOption();
57
+ * console.log(selected?.label); // "Option 1"
58
+ * ```
59
+ */
60
+ getSelectedOption(): RadioButtonOption | undefined;
61
+ /**
62
+ * Checks if a specific option is currently selected
63
+ *
64
+ * @param option - The option to check
65
+ * @returns True if the option is selected, false otherwise
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * const isSelected = controller.isOptionSelected(option);
70
+ * ```
71
+ */
72
+ isOptionSelected(option: RadioButtonOption): boolean;
73
+ /**
74
+ * Checks if a specific option is disabled
75
+ * Takes into account both global disabled state and option-specific disabled state
76
+ *
77
+ * @param option - The option to check
78
+ * @returns True if the option is disabled, false otherwise
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * if (!controller.isOptionDisabled(option)) {
83
+ * controller.selectOption(option);
84
+ * }
85
+ * ```
86
+ */
87
+ isOptionDisabled(option: RadioButtonOption): boolean;
88
+ /**
89
+ * Gets form data for native form submission
90
+ * Returns key-value pair suitable for FormData
91
+ *
92
+ * @returns Object with form field name and selected value
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const formData = controller.getFormData();
97
+ * // { "radioGroup": "selectedValue" }
98
+ * ```
99
+ */
100
+ getFormData(): {
101
+ [key: string]: string;
102
+ };
103
+ /**
104
+ * Resets the radio group to its default value
105
+ * Triggers re-render to update the UI
106
+ *
107
+ * @fires change - When reset changes the selected value
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * controller.reset(); // Resets to defaultValue or empty
112
+ * ```
113
+ */
114
+ reset(): void;
115
+ /**
116
+ * Gets the currently selected value as a string
117
+ * Convenience method for accessing the raw value
118
+ *
119
+ * @returns The selected value string, empty string if none selected
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const value = controller.getSelectedValue();
124
+ * console.log(value); // "option1"
125
+ * ```
126
+ */
127
+ getSelectedValue(): string;
128
+ /**
129
+ * Dispatches a change event when selection changes
130
+ * Creates a custom event with detailed information about the change
131
+ *
132
+ * @param option - The newly selected option
133
+ * @param oldValue - The previously selected value
134
+ * @fires change - Custom event with selection details
135
+ *
136
+ * @private
137
+ */
138
+ private dispatchChangeEvent;
139
+ }
140
+ //# sourceMappingURL=group.controller.d.ts.map
@@ -0,0 +1,179 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Controller that manages radio group state and selection logic
8
+ * Implements type-safe selection operations with proper error handling
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const controller = new RadioGroupController(hostElement);
13
+ * controller.selectOption(option); // Type-safe selection
14
+ * ```
15
+ */
16
+ export class RadioGroupController {
17
+ constructor(host) {
18
+ this.host = host;
19
+ host.addController(this);
20
+ }
21
+ /**
22
+ * Called when the host element is connected to the DOM
23
+ * Initializes the default selection if provided
24
+ *
25
+ * @fires change - When default value is set automatically
26
+ */
27
+ hostConnected() {
28
+ // Initialize default selection if provided
29
+ if (this.host.defaultValue && !this.host.value) {
30
+ const defaultOption = this.host.options.find((opt) => opt.value === this.host.defaultValue);
31
+ if (defaultOption && !this.isOptionDisabled(defaultOption)) {
32
+ this.selectOption(defaultOption);
33
+ }
34
+ }
35
+ }
36
+ /**
37
+ * Called when the host element is disconnected from the DOM
38
+ * Performs cleanup operations
39
+ */
40
+ hostDisconnected() {
41
+ // Cleanup if needed
42
+ }
43
+ /**
44
+ * Selects a radio option and dispatches change events
45
+ * Implements proper error handling for disabled options
46
+ *
47
+ * @param option - The radio option to select
48
+ * @throws {Error} When option is disabled or invalid
49
+ * @fires change - When selection changes successfully
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * controller.selectOption({ value: 'option1', label: 'Option 1' });
54
+ * ```
55
+ */
56
+ selectOption(option) {
57
+ if (this.isOptionDisabled(option)) {
58
+ return;
59
+ }
60
+ const oldValue = this.host.value;
61
+ this.host.value = option.value;
62
+ // Dispatch change event
63
+ this.dispatchChangeEvent(option, oldValue);
64
+ this.host.requestUpdate();
65
+ }
66
+ /**
67
+ * Gets the currently selected radio option
68
+ *
69
+ * @returns The selected option object or undefined if none selected
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const selected = controller.getSelectedOption();
74
+ * console.log(selected?.label); // "Option 1"
75
+ * ```
76
+ */
77
+ getSelectedOption() {
78
+ return this.host.options.find((option) => option.value === this.host.value);
79
+ }
80
+ /**
81
+ * Checks if a specific option is currently selected
82
+ *
83
+ * @param option - The option to check
84
+ * @returns True if the option is selected, false otherwise
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const isSelected = controller.isOptionSelected(option);
89
+ * ```
90
+ */
91
+ isOptionSelected(option) {
92
+ return option.value === this.host.value;
93
+ }
94
+ /**
95
+ * Checks if a specific option is disabled
96
+ * Takes into account both global disabled state and option-specific disabled state
97
+ *
98
+ * @param option - The option to check
99
+ * @returns True if the option is disabled, false otherwise
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * if (!controller.isOptionDisabled(option)) {
104
+ * controller.selectOption(option);
105
+ * }
106
+ * ```
107
+ */
108
+ isOptionDisabled(option) {
109
+ return this.host.disabled || Boolean(option.disabled);
110
+ }
111
+ /**
112
+ * Gets form data for native form submission
113
+ * Returns key-value pair suitable for FormData
114
+ *
115
+ * @returns Object with form field name and selected value
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * const formData = controller.getFormData();
120
+ * // { "radioGroup": "selectedValue" }
121
+ * ```
122
+ */
123
+ getFormData() {
124
+ return this.host.name ? { [this.host.name]: this.host.value } : {};
125
+ }
126
+ /**
127
+ * Resets the radio group to its default value
128
+ * Triggers re-render to update the UI
129
+ *
130
+ * @fires change - When reset changes the selected value
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * controller.reset(); // Resets to defaultValue or empty
135
+ * ```
136
+ */
137
+ reset() {
138
+ this.host.value = this.host.defaultValue || '';
139
+ this.host.requestUpdate();
140
+ }
141
+ /**
142
+ * Gets the currently selected value as a string
143
+ * Convenience method for accessing the raw value
144
+ *
145
+ * @returns The selected value string, empty string if none selected
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const value = controller.getSelectedValue();
150
+ * console.log(value); // "option1"
151
+ * ```
152
+ */
153
+ getSelectedValue() {
154
+ return this.host.value;
155
+ }
156
+ /**
157
+ * Dispatches a change event when selection changes
158
+ * Creates a custom event with detailed information about the change
159
+ *
160
+ * @param option - The newly selected option
161
+ * @param oldValue - The previously selected value
162
+ * @fires change - Custom event with selection details
163
+ *
164
+ * @private
165
+ */
166
+ dispatchChangeEvent(option, oldValue) {
167
+ const changeEvent = new CustomEvent('nr-change', {
168
+ detail: {
169
+ value: option.value,
170
+ option: option,
171
+ oldValue: oldValue
172
+ },
173
+ bubbles: true,
174
+ composed: true
175
+ });
176
+ this.host.dispatchEvent(changeEvent);
177
+ }
178
+ }
179
+ //# sourceMappingURL=group.controller.js.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export { RadioGroupController } from './group.controller.js';
7
+ export { RadioKeyboardController } from './keyboard.controller.js';
8
+ export { RadioFocusController } from './focus.controller.js';
9
+ export { RadioValidationController } from './validation.controller.js';
10
+ export { RadioRippleController } from './ripple.controller.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ export { RadioGroupController } from './group.controller.js';
7
+ export { RadioKeyboardController } from './keyboard.controller.js';
8
+ export { RadioFocusController } from './focus.controller.js';
9
+ export { RadioValidationController } from './validation.controller.js';
10
+ export { RadioRippleController } from './ripple.controller.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Nuraly, Laabidi Aymen
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ import { KeyboardController } from '../interfaces/focus-controller.interface.js';
7
+ /**
8
+ * Controller that manages keyboard navigation for radio groups
9
+ * This controller ACTUALLY handles keyboard events instead of being a fake controller
10
+ */
11
+ export declare class RadioKeyboardController implements KeyboardController {
12
+ private groupController;
13
+ private host;
14
+ private boundKeyDownHandler;
15
+ constructor(host: any, groupController: any);
16
+ hostConnected(): void;
17
+ hostDisconnected(): void;
18
+ handleKeyDown(event: KeyboardEvent): void;
19
+ private selectNextOption;
20
+ private selectPreviousOption;
21
+ private selectFirstEnabledOption;
22
+ private selectLastEnabledOption;
23
+ }
24
+ //# sourceMappingURL=keyboard.controller.d.ts.map