@nordmanai/nif 0.2.1 → 0.2.3

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 (365) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +7 -0
  3. package/dist/index.js +31332 -11730
  4. package/dist/styles.css +1 -1
  5. package/dist/ui/components/nm-ai/nm-ai.d.ts +4 -0
  6. package/dist/ui/components/nm-alert/nm-alert.d.ts +13 -0
  7. package/dist/ui/components/nm-button/nm-button.d.ts +7 -3
  8. package/dist/ui/components/nm-checkbox/nm-checkbox.d.ts +1 -1
  9. package/dist/ui/components/nm-chip/nm-chip.d.ts +5 -2
  10. package/dist/ui/components/nm-collapsible/nm-collapsible.d.ts +6 -0
  11. package/dist/ui/components/nm-combobox/nm-combobox.d.ts +1 -1
  12. package/dist/ui/components/nm-command/nm-command.d.ts +8 -1
  13. package/dist/ui/components/nm-composer/nm-composer.d.ts +47 -4
  14. package/dist/ui/components/nm-context-menu/nm-context-menu.d.ts +1 -1
  15. package/dist/ui/components/nm-dialog/nm-dialog.d.ts +1 -1
  16. package/dist/ui/components/nm-dropdown/nm-dropdown.d.ts +1 -1
  17. package/dist/ui/components/nm-dropdown-menu/nm-dropdown-menu.d.ts +11 -2
  18. package/dist/ui/components/nm-hover-card/nm-hover-card.d.ts +1 -1
  19. package/dist/ui/components/nm-icon/animated/activity.d.ts +72 -0
  20. package/dist/ui/components/nm-icon/animated/archive.d.ts +31 -0
  21. package/dist/ui/components/nm-icon/animated/arrow-down.d.ts +128 -0
  22. package/dist/ui/components/nm-icon/animated/arrow-left.d.ts +128 -0
  23. package/dist/ui/components/nm-icon/animated/arrow-right.d.ts +128 -0
  24. package/dist/ui/components/nm-icon/animated/arrow-up-down.d.ts +119 -0
  25. package/dist/ui/components/nm-icon/animated/arrow-up.d.ts +128 -0
  26. package/dist/ui/components/nm-icon/animated/audio-lines.d.ts +99 -0
  27. package/dist/ui/components/nm-icon/animated/bookmark-plus.d.ts +35 -0
  28. package/dist/ui/components/nm-icon/animated/bookmark.d.ts +52 -0
  29. package/dist/ui/components/nm-icon/animated/bot.d.ts +90 -0
  30. package/dist/ui/components/nm-icon/animated/calendar-days.d.ts +87 -0
  31. package/dist/ui/components/nm-icon/animated/calendar.d.ts +36 -0
  32. package/dist/ui/components/nm-icon/animated/camera.d.ts +50 -0
  33. package/dist/ui/components/nm-icon/animated/chart-column-increasing.d.ts +37 -0
  34. package/dist/ui/components/nm-icon/animated/chart-column.d.ts +86 -0
  35. package/dist/ui/components/nm-icon/animated/chart-line.d.ts +51 -0
  36. package/dist/ui/components/nm-icon/animated/check-check.d.ts +50 -0
  37. package/dist/ui/components/nm-icon/animated/check.d.ts +25 -0
  38. package/dist/ui/components/nm-icon/animated/chevron-down.d.ts +39 -0
  39. package/dist/ui/components/nm-icon/animated/chevron-left.d.ts +39 -0
  40. package/dist/ui/components/nm-icon/animated/chevron-right.d.ts +39 -0
  41. package/dist/ui/components/nm-icon/animated/chevron-up.d.ts +39 -0
  42. package/dist/ui/components/nm-icon/animated/circle-alert.d.ts +23 -0
  43. package/dist/ui/components/nm-icon/animated/circle-check-big.d.ts +26 -0
  44. package/dist/ui/components/nm-icon/animated/circle-check.d.ts +26 -0
  45. package/dist/ui/components/nm-icon/animated/circle-plus.d.ts +44 -0
  46. package/dist/ui/components/nm-icon/animated/circle-question-mark.d.ts +22 -0
  47. package/dist/ui/components/nm-icon/animated/circle-x.d.ts +44 -0
  48. package/dist/ui/components/nm-icon/animated/clock-3.d.ts +44 -0
  49. package/dist/ui/components/nm-icon/animated/clock-4.d.ts +44 -0
  50. package/dist/ui/components/nm-icon/animated/clock.d.ts +44 -0
  51. package/dist/ui/components/nm-icon/animated/cloud-sun.d.ts +9 -0
  52. package/dist/ui/components/nm-icon/animated/cloud-upload.d.ts +45 -0
  53. package/dist/ui/components/nm-icon/animated/copy.d.ts +135 -0
  54. package/dist/ui/components/nm-icon/animated/download.d.ts +45 -0
  55. package/dist/ui/components/nm-icon/animated/ellipsis.d.ts +141 -0
  56. package/dist/ui/components/nm-icon/animated/external-link.d.ts +49 -0
  57. package/dist/ui/components/nm-icon/animated/eye-off.d.ts +23 -0
  58. package/dist/ui/components/nm-icon/animated/eye.d.ts +39 -0
  59. package/dist/ui/components/nm-icon/animated/fast-forward.d.ts +34 -0
  60. package/dist/ui/components/nm-icon/animated/file-clock.d.ts +48 -0
  61. package/dist/ui/components/nm-icon/animated/file-text.d.ts +56 -0
  62. package/dist/ui/components/nm-icon/animated/file.d.ts +67 -0
  63. package/dist/ui/components/nm-icon/animated/folder.d.ts +92 -0
  64. package/dist/ui/components/nm-icon/animated/gauge.d.ts +47 -0
  65. package/dist/ui/components/nm-icon/animated/globe.d.ts +21 -0
  66. package/dist/ui/components/nm-icon/animated/graduation-cap.d.ts +41 -0
  67. package/dist/ui/components/nm-icon/animated/headphones.d.ts +50 -0
  68. package/dist/ui/components/nm-icon/animated/image.d.ts +40 -0
  69. package/dist/ui/components/nm-icon/animated/index.d.ts +2 -0
  70. package/dist/ui/components/nm-icon/animated/info.d.ts +37 -0
  71. package/dist/ui/components/nm-icon/animated/key-round.d.ts +37 -0
  72. package/dist/ui/components/nm-icon/animated/layers.d.ts +61 -0
  73. package/dist/ui/components/nm-icon/animated/layout-dashboard.d.ts +131 -0
  74. package/dist/ui/components/nm-icon/animated/library-big.d.ts +29 -0
  75. package/dist/ui/components/nm-icon/animated/lightbulb.d.ts +51 -0
  76. package/dist/ui/components/nm-icon/animated/link.d.ts +193 -0
  77. package/dist/ui/components/nm-icon/animated/list-filter.d.ts +13 -0
  78. package/dist/ui/components/nm-icon/animated/list.d.ts +111 -0
  79. package/dist/ui/components/nm-icon/animated/loader-circle.d.ts +24 -0
  80. package/dist/ui/components/nm-icon/animated/lock.d.ts +94 -0
  81. package/dist/ui/components/nm-icon/animated/log-out.d.ts +45 -0
  82. package/dist/ui/components/nm-icon/animated/mail.d.ts +100 -0
  83. package/dist/ui/components/nm-icon/animated/map-pin.d.ts +67 -0
  84. package/dist/ui/components/nm-icon/animated/menu.d.ts +57 -0
  85. package/dist/ui/components/nm-icon/animated/message-circle-dashed.d.ts +34 -0
  86. package/dist/ui/components/nm-icon/animated/message-circle.d.ts +23 -0
  87. package/dist/ui/components/nm-icon/animated/message-square-plus.d.ts +49 -0
  88. package/dist/ui/components/nm-icon/animated/message-square-text.d.ts +104 -0
  89. package/dist/ui/components/nm-icon/animated/message-square.d.ts +23 -0
  90. package/dist/ui/components/nm-icon/animated/mic-off.d.ts +23 -0
  91. package/dist/ui/components/nm-icon/animated/mic.d.ts +37 -0
  92. package/dist/ui/components/nm-icon/animated/minimize.d.ts +139 -0
  93. package/dist/ui/components/nm-icon/animated/minus.d.ts +54 -0
  94. package/dist/ui/components/nm-icon/animated/moon.d.ts +62 -0
  95. package/dist/ui/components/nm-icon/animated/music.d.ts +22 -0
  96. package/dist/ui/components/nm-icon/animated/notebook-pen.d.ts +41 -0
  97. package/dist/ui/components/nm-icon/animated/panel-left.d.ts +29 -0
  98. package/dist/ui/components/nm-icon/animated/panel-right.d.ts +29 -0
  99. package/dist/ui/components/nm-icon/animated/paperclip.d.ts +49 -0
  100. package/dist/ui/components/nm-icon/animated/pause.d.ts +59 -0
  101. package/dist/ui/components/nm-icon/animated/pencil.d.ts +25 -0
  102. package/dist/ui/components/nm-icon/animated/pin-off.d.ts +44 -0
  103. package/dist/ui/components/nm-icon/animated/pin.d.ts +85 -0
  104. package/dist/ui/components/nm-icon/animated/plane-takeoff.d.ts +25 -0
  105. package/dist/ui/components/nm-icon/animated/play.d.ts +43 -0
  106. package/dist/ui/components/nm-icon/animated/plug-zap.d.ts +49 -0
  107. package/dist/ui/components/nm-icon/animated/plus.d.ts +95 -0
  108. package/dist/ui/components/nm-icon/animated/radio.d.ts +24 -0
  109. package/dist/ui/components/nm-icon/animated/refresh-cw.d.ts +55 -0
  110. package/dist/ui/components/nm-icon/animated/rocket.d.ts +48 -0
  111. package/dist/ui/components/nm-icon/animated/rotate-ccw.d.ts +51 -0
  112. package/dist/ui/components/nm-icon/animated/rotate-cw.d.ts +71 -0
  113. package/dist/ui/components/nm-icon/animated/save.d.ts +21 -0
  114. package/dist/ui/components/nm-icon/animated/search.d.ts +42 -0
  115. package/dist/ui/components/nm-icon/animated/send.d.ts +39 -0
  116. package/dist/ui/components/nm-icon/animated/settings.d.ts +39 -0
  117. package/dist/ui/components/nm-icon/animated/share-2.d.ts +122 -0
  118. package/dist/ui/components/nm-icon/animated/share.d.ts +40 -0
  119. package/dist/ui/components/nm-icon/animated/shield-check.d.ts +36 -0
  120. package/dist/ui/components/nm-icon/animated/shopping-bag.d.ts +35 -0
  121. package/dist/ui/components/nm-icon/animated/sliders-horizontal.d.ts +239 -0
  122. package/dist/ui/components/nm-icon/animated/sparkles.d.ts +205 -0
  123. package/dist/ui/components/nm-icon/animated/star.d.ts +48 -0
  124. package/dist/ui/components/nm-icon/animated/sun.d.ts +9 -0
  125. package/dist/ui/components/nm-icon/animated/terminal.d.ts +22 -0
  126. package/dist/ui/components/nm-icon/animated/trash-2.d.ts +61 -0
  127. package/dist/ui/components/nm-icon/animated/trash.d.ts +37 -0
  128. package/dist/ui/components/nm-icon/animated/trending-up.d.ts +40 -0
  129. package/dist/ui/components/nm-icon/animated/triangle-alert.d.ts +37 -0
  130. package/dist/ui/components/nm-icon/animated/trophy.d.ts +23 -0
  131. package/dist/ui/components/nm-icon/animated/type.d.ts +57 -0
  132. package/dist/ui/components/nm-icon/animated/upload.d.ts +49 -0
  133. package/dist/ui/components/nm-icon/animated/user-round.d.ts +33 -0
  134. package/dist/ui/components/nm-icon/animated/user.d.ts +33 -0
  135. package/dist/ui/components/nm-icon/animated/users-round.d.ts +93 -0
  136. package/dist/ui/components/nm-icon/animated/users.d.ts +93 -0
  137. package/dist/ui/components/nm-icon/animated/volume-2.d.ts +10 -0
  138. package/dist/ui/components/nm-icon/animated/wand-sparkles.d.ts +71 -0
  139. package/dist/ui/components/nm-icon/animated/x.d.ts +95 -0
  140. package/dist/ui/components/nm-icon/animated/zap.d.ts +65 -0
  141. package/dist/ui/components/nm-icon/animated/zoom-in.d.ts +35 -0
  142. package/dist/ui/components/nm-icon/animated/zoom-out.d.ts +53 -0
  143. package/dist/ui/components/nm-icon/nm-icon.d.ts +6 -3
  144. package/dist/ui/components/nm-icon/nm-lucide-extended.d.ts +3 -0
  145. package/dist/ui/components/nm-icon/nm-lucide.d.ts +7 -3
  146. package/dist/ui/components/nm-kbd/nm-kbd.d.ts +5 -0
  147. package/dist/ui/components/nm-menubar/nm-menubar.d.ts +2 -2
  148. package/dist/ui/components/nm-panel/nm-panel.d.ts +5 -1
  149. package/dist/ui/components/nm-popover/nm-popover.d.ts +2 -2
  150. package/dist/ui/components/nm-progress/nm-progress.d.ts +1 -1
  151. package/dist/ui/components/nm-radio-group/nm-radio-group.d.ts +2 -2
  152. package/dist/ui/components/nm-select/nm-select.d.ts +1 -1
  153. package/dist/ui/components/nm-skeleton/nm-skeleton.d.ts +3 -0
  154. package/dist/ui/components/nm-slider/nm-slider.d.ts +1 -1
  155. package/dist/ui/components/nm-small-icon-button/nm-small-icon-button.d.ts +3 -3
  156. package/dist/ui/components/nm-spinner/nm-spinner.d.ts +3 -0
  157. package/dist/ui/components/nm-switch/nm-switch.d.ts +1 -1
  158. package/dist/ui/components/nm-tabs/nm-tabs.d.ts +6 -0
  159. package/dist/ui/components/nm-toggle/nm-toggle.d.ts +1 -1
  160. package/dist/ui/components/nm-toolbar/nm-toolbar.d.ts +6 -2
  161. package/dist/ui/components/nm-tooltip/nm-tooltip.d.ts +1 -1
  162. package/dist/ui/components/nm-voice-orb/nm-voice-orb.d.ts +18 -0
  163. package/dist/ui/components/nm-voice-orb/use-nm-voice-orb-theme.d.ts +2 -0
  164. package/dist/ui/config/nm-app-panel.d.ts +2 -0
  165. package/dist/ui/config/nm-button.d.ts +6 -0
  166. package/dist/ui/config/nm-composer.d.ts +11 -0
  167. package/dist/ui/config/nm-icon-button.d.ts +0 -2
  168. package/dist/ui/config/nm-icons-extended.d.ts +1 -0
  169. package/dist/ui/config/nm-icons.d.ts +4 -1
  170. package/dist/ui/config/nm-voice-orb.d.ts +22 -0
  171. package/dist/ui/lib/nm-motion.d.ts +29 -0
  172. package/package.json +12 -8
  173. package/registry/index.json +5113 -72
  174. package/registry/ui/components/nm-ai/nm-ai.tsx +7 -4
  175. package/registry/ui/components/nm-alert/nm-alert.css +85 -0
  176. package/registry/ui/components/nm-alert/nm-alert.tsx +35 -0
  177. package/registry/ui/components/nm-button/nm-button.css +24 -0
  178. package/registry/ui/components/nm-button/nm-button.tsx +41 -20
  179. package/registry/ui/components/nm-checkbox/nm-checkbox.tsx +1 -1
  180. package/registry/ui/components/nm-chip/nm-chip.css +25 -0
  181. package/registry/ui/components/nm-chip/nm-chip.tsx +9 -3
  182. package/registry/ui/components/nm-collapsible/nm-collapsible.css +3 -0
  183. package/registry/ui/components/nm-collapsible/nm-collapsible.tsx +16 -0
  184. package/registry/ui/components/nm-combobox/nm-combobox.tsx +1 -1
  185. package/registry/ui/components/nm-command/nm-command.css +48 -0
  186. package/registry/ui/components/nm-command/nm-command.tsx +19 -5
  187. package/registry/ui/components/nm-composer/nm-composer.css +87 -3
  188. package/registry/ui/components/nm-composer/nm-composer.tsx +321 -33
  189. package/registry/ui/components/nm-context-menu/nm-context-menu.tsx +1 -1
  190. package/registry/ui/components/nm-dialog/nm-dialog.css +5 -6
  191. package/registry/ui/components/nm-dialog/nm-dialog.tsx +1 -1
  192. package/registry/ui/components/nm-dropdown/nm-dropdown.css +5 -0
  193. package/registry/ui/components/nm-dropdown/nm-dropdown.tsx +29 -250
  194. package/registry/ui/components/nm-dropdown-menu/nm-dropdown-menu.css +8 -0
  195. package/registry/ui/components/nm-dropdown-menu/nm-dropdown-menu.tsx +85 -6
  196. package/registry/ui/components/nm-hover-card/nm-hover-card.tsx +1 -1
  197. package/registry/ui/components/nm-icon/animated/activity.tsx +109 -0
  198. package/registry/ui/components/nm-icon/animated/archive.tsx +85 -0
  199. package/registry/ui/components/nm-icon/animated/arrow-down.tsx +149 -0
  200. package/registry/ui/components/nm-icon/animated/arrow-left.tsx +149 -0
  201. package/registry/ui/components/nm-icon/animated/arrow-right.tsx +149 -0
  202. package/registry/ui/components/nm-icon/animated/arrow-up-down.tsx +168 -0
  203. package/registry/ui/components/nm-icon/animated/arrow-up.tsx +149 -0
  204. package/registry/ui/components/nm-icon/animated/audio-lines.tsx +190 -0
  205. package/registry/ui/components/nm-icon/animated/bookmark-plus.tsx +65 -0
  206. package/registry/ui/components/nm-icon/animated/bookmark.tsx +77 -0
  207. package/registry/ui/components/nm-icon/animated/bot.tsx +167 -0
  208. package/registry/ui/components/nm-icon/animated/calendar-days.tsx +128 -0
  209. package/registry/ui/components/nm-icon/animated/calendar.tsx +83 -0
  210. package/registry/ui/components/nm-icon/animated/camera.tsx +85 -0
  211. package/registry/ui/components/nm-icon/animated/chart-column-increasing.tsx +150 -0
  212. package/registry/ui/components/nm-icon/animated/chart-column.tsx +179 -0
  213. package/registry/ui/components/nm-icon/animated/chart-line.tsx +88 -0
  214. package/registry/ui/components/nm-icon/animated/check-check.tsx +105 -0
  215. package/registry/ui/components/nm-icon/animated/check.tsx +70 -0
  216. package/registry/ui/components/nm-icon/animated/chevron-down.tsx +73 -0
  217. package/registry/ui/components/nm-icon/animated/chevron-left.tsx +73 -0
  218. package/registry/ui/components/nm-icon/animated/chevron-right.tsx +73 -0
  219. package/registry/ui/components/nm-icon/animated/chevron-up.tsx +73 -0
  220. package/registry/ui/components/nm-icon/animated/circle-alert.tsx +84 -0
  221. package/registry/ui/components/nm-icon/animated/circle-check-big.tsx +75 -0
  222. package/registry/ui/components/nm-icon/animated/circle-check.tsx +77 -0
  223. package/registry/ui/components/nm-icon/animated/circle-plus.tsx +93 -0
  224. package/registry/ui/components/nm-icon/animated/circle-question-mark.tsx +62 -0
  225. package/registry/ui/components/nm-icon/animated/circle-x.tsx +93 -0
  226. package/registry/ui/components/nm-icon/animated/clock-3.tsx +95 -0
  227. package/registry/ui/components/nm-icon/animated/clock-4.tsx +95 -0
  228. package/registry/ui/components/nm-icon/animated/clock.tsx +95 -0
  229. package/registry/ui/components/nm-icon/animated/cloud-sun.tsx +130 -0
  230. package/registry/ui/components/nm-icon/animated/cloud-upload.tsx +93 -0
  231. package/registry/ui/components/nm-icon/animated/copy.tsx +153 -0
  232. package/registry/ui/components/nm-icon/animated/download.tsx +93 -0
  233. package/registry/ui/components/nm-icon/animated/ellipsis.tsx +189 -0
  234. package/registry/ui/components/nm-icon/animated/external-link.tsx +97 -0
  235. package/registry/ui/components/nm-icon/animated/eye-off.tsx +63 -0
  236. package/registry/ui/components/nm-icon/animated/eye.tsx +82 -0
  237. package/registry/ui/components/nm-icon/animated/fast-forward.tsx +72 -0
  238. package/registry/ui/components/nm-icon/animated/file-clock.tsx +105 -0
  239. package/registry/ui/components/nm-icon/animated/file-text.tsx +102 -0
  240. package/registry/ui/components/nm-icon/animated/file.tsx +124 -0
  241. package/registry/ui/components/nm-icon/animated/folder.tsx +132 -0
  242. package/registry/ui/components/nm-icon/animated/gauge.tsx +84 -0
  243. package/registry/ui/components/nm-icon/animated/globe.tsx +61 -0
  244. package/registry/ui/components/nm-icon/animated/graduation-cap.tsx +92 -0
  245. package/registry/ui/components/nm-icon/animated/headphones.tsx +85 -0
  246. package/registry/ui/components/nm-icon/animated/image.tsx +88 -0
  247. package/registry/ui/components/nm-icon/animated/index.ts +251 -0
  248. package/registry/ui/components/nm-icon/animated/info.tsx +75 -0
  249. package/registry/ui/components/nm-icon/animated/key-round.tsx +67 -0
  250. package/registry/ui/components/nm-icon/animated/layers.tsx +116 -0
  251. package/registry/ui/components/nm-icon/animated/layout-dashboard.tsx +176 -0
  252. package/registry/ui/components/nm-icon/animated/library-big.tsx +89 -0
  253. package/registry/ui/components/nm-icon/animated/lightbulb.tsx +106 -0
  254. package/registry/ui/components/nm-icon/animated/link.tsx +210 -0
  255. package/registry/ui/components/nm-icon/animated/list-filter.tsx +78 -0
  256. package/registry/ui/components/nm-icon/animated/list.tsx +184 -0
  257. package/registry/ui/components/nm-icon/animated/loader-circle.tsx +68 -0
  258. package/registry/ui/components/nm-icon/animated/lock.tsx +152 -0
  259. package/registry/ui/components/nm-icon/animated/log-out.tsx +93 -0
  260. package/registry/ui/components/nm-icon/animated/mail.tsx +131 -0
  261. package/registry/ui/components/nm-icon/animated/map-pin.tsx +111 -0
  262. package/registry/ui/components/nm-icon/animated/menu.tsx +121 -0
  263. package/registry/ui/components/nm-icon/animated/message-circle-dashed.tsx +140 -0
  264. package/registry/ui/components/nm-icon/animated/message-circle.tsx +66 -0
  265. package/registry/ui/components/nm-icon/animated/message-square-plus.tsx +106 -0
  266. package/registry/ui/components/nm-icon/animated/message-square-text.tsx +153 -0
  267. package/registry/ui/components/nm-icon/animated/message-square.tsx +66 -0
  268. package/registry/ui/components/nm-icon/animated/mic-off.tsx +65 -0
  269. package/registry/ui/components/nm-icon/animated/mic.tsx +77 -0
  270. package/registry/ui/components/nm-icon/animated/minimize.tsx +164 -0
  271. package/registry/ui/components/nm-icon/animated/minus.tsx +84 -0
  272. package/registry/ui/components/nm-icon/animated/moon.tsx +98 -0
  273. package/registry/ui/components/nm-icon/animated/music.tsx +62 -0
  274. package/registry/ui/components/nm-icon/animated/notebook-pen.tsx +114 -0
  275. package/registry/ui/components/nm-icon/animated/panel-left.tsx +77 -0
  276. package/registry/ui/components/nm-icon/animated/panel-right.tsx +77 -0
  277. package/registry/ui/components/nm-icon/animated/paperclip.tsx +83 -0
  278. package/registry/ui/components/nm-icon/animated/pause.tsx +116 -0
  279. package/registry/ui/components/nm-icon/animated/pencil.tsx +70 -0
  280. package/registry/ui/components/nm-icon/animated/pin-off.tsx +102 -0
  281. package/registry/ui/components/nm-icon/animated/pin.tsx +124 -0
  282. package/registry/ui/components/nm-icon/animated/plane-takeoff.tsx +62 -0
  283. package/registry/ui/components/nm-icon/animated/play.tsx +74 -0
  284. package/registry/ui/components/nm-icon/animated/plug-zap.tsx +117 -0
  285. package/registry/ui/components/nm-icon/animated/plus.tsx +122 -0
  286. package/registry/ui/components/nm-icon/animated/radio.tsx +137 -0
  287. package/registry/ui/components/nm-icon/animated/refresh-cw.tsx +103 -0
  288. package/registry/ui/components/nm-icon/animated/rocket.tsx +93 -0
  289. package/registry/ui/components/nm-icon/animated/rotate-ccw.tsx +87 -0
  290. package/registry/ui/components/nm-icon/animated/rotate-cw.tsx +98 -0
  291. package/registry/ui/components/nm-icon/animated/save.tsx +58 -0
  292. package/registry/ui/components/nm-icon/animated/search.tsx +90 -0
  293. package/registry/ui/components/nm-icon/animated/send.tsx +87 -0
  294. package/registry/ui/components/nm-icon/animated/settings.tsx +92 -0
  295. package/registry/ui/components/nm-icon/animated/share-2.tsx +148 -0
  296. package/registry/ui/components/nm-icon/animated/share.tsx +76 -0
  297. package/registry/ui/components/nm-icon/animated/shield-check.tsx +70 -0
  298. package/registry/ui/components/nm-icon/animated/shopping-bag.tsx +71 -0
  299. package/registry/ui/components/nm-icon/animated/sliders-horizontal.tsx +243 -0
  300. package/registry/ui/components/nm-icon/animated/sparkles.tsx +227 -0
  301. package/registry/ui/components/nm-icon/animated/star.tsx +86 -0
  302. package/registry/ui/components/nm-icon/animated/sun.tsx +148 -0
  303. package/registry/ui/components/nm-icon/animated/terminal.tsx +71 -0
  304. package/registry/ui/components/nm-icon/animated/trash-2.tsx +136 -0
  305. package/registry/ui/components/nm-icon/animated/trash.tsx +94 -0
  306. package/registry/ui/components/nm-icon/animated/trending-up.tsx +75 -0
  307. package/registry/ui/components/nm-icon/animated/triangle-alert.tsx +75 -0
  308. package/registry/ui/components/nm-icon/animated/trophy.tsx +62 -0
  309. package/registry/ui/components/nm-icon/animated/type.tsx +106 -0
  310. package/registry/ui/components/nm-icon/animated/upload.tsx +94 -0
  311. package/registry/ui/components/nm-icon/animated/user-round.tsx +84 -0
  312. package/registry/ui/components/nm-icon/animated/user.tsx +84 -0
  313. package/registry/ui/components/nm-icon/animated/users-round.tsx +156 -0
  314. package/registry/ui/components/nm-icon/animated/users.tsx +156 -0
  315. package/registry/ui/components/nm-icon/animated/volume-2.tsx +119 -0
  316. package/registry/ui/components/nm-icon/animated/wand-sparkles.tsx +111 -0
  317. package/registry/ui/components/nm-icon/animated/x.tsx +122 -0
  318. package/registry/ui/components/nm-icon/animated/zap.tsx +86 -0
  319. package/registry/ui/components/nm-icon/animated/zoom-in.tsx +66 -0
  320. package/registry/ui/components/nm-icon/animated/zoom-out.tsx +85 -0
  321. package/registry/ui/components/nm-icon/nm-icon.css +0 -1
  322. package/registry/ui/components/nm-icon/nm-icon.tsx +20 -5
  323. package/registry/ui/components/nm-icon/nm-lucide-extended.tsx +284 -0
  324. package/registry/ui/components/nm-icon/nm-lucide.tsx +55 -5
  325. package/registry/ui/components/nm-icon-border/nm-icon-border.tsx +1 -1
  326. package/registry/ui/components/nm-input/nm-input.css +1 -0
  327. package/registry/ui/components/nm-kbd/nm-kbd.css +23 -0
  328. package/registry/ui/components/nm-kbd/nm-kbd.tsx +12 -0
  329. package/registry/ui/components/nm-menubar/nm-menubar.tsx +2 -2
  330. package/registry/ui/components/nm-panel/nm-panel.css +7 -0
  331. package/registry/ui/components/nm-panel/nm-panel.tsx +19 -2
  332. package/registry/ui/components/nm-popover/nm-popover.tsx +4 -3
  333. package/registry/ui/components/nm-progress/nm-progress.tsx +1 -1
  334. package/registry/ui/components/nm-radio-group/nm-radio-group.tsx +2 -2
  335. package/registry/ui/components/nm-segmented/nm-segmented.tsx +1 -1
  336. package/registry/ui/components/nm-select/nm-select.tsx +1 -1
  337. package/registry/ui/components/nm-skeleton/nm-skeleton.css +17 -0
  338. package/registry/ui/components/nm-skeleton/nm-skeleton.tsx +7 -0
  339. package/registry/ui/components/nm-slider/nm-slider.tsx +1 -1
  340. package/registry/ui/components/nm-small-icon-button/nm-small-icon-button.tsx +3 -3
  341. package/registry/ui/components/nm-spinner/nm-spinner.css +22 -0
  342. package/registry/ui/components/nm-spinner/nm-spinner.tsx +7 -0
  343. package/registry/ui/components/nm-switch/nm-switch.css +20 -3
  344. package/registry/ui/components/nm-switch/nm-switch.tsx +1 -1
  345. package/registry/ui/components/nm-tabs/nm-tabs.css +4 -0
  346. package/registry/ui/components/nm-tabs/nm-tabs.tsx +19 -0
  347. package/registry/ui/components/nm-textarea/nm-textarea.css +1 -0
  348. package/registry/ui/components/nm-toggle/nm-toggle.tsx +1 -1
  349. package/registry/ui/components/nm-toolbar/nm-toolbar.css +0 -6
  350. package/registry/ui/components/nm-toolbar/nm-toolbar.tsx +16 -7
  351. package/registry/ui/components/nm-tooltip/nm-tooltip.css +17 -0
  352. package/registry/ui/components/nm-tooltip/nm-tooltip.tsx +1 -1
  353. package/registry/ui/components/nm-voice-orb/nm-voice-orb.css +17 -0
  354. package/registry/ui/components/nm-voice-orb/nm-voice-orb.tsx +112 -0
  355. package/registry/ui/components/nm-voice-orb/use-nm-voice-orb-theme.ts +34 -0
  356. package/registry/ui/components/nordman-icon-button/nordman-icon-button.css +6 -9
  357. package/registry/ui/components/nordman-icon-button/nordman-icon-button.tsx +7 -3
  358. package/registry/ui/config/nm-button.ts +6 -0
  359. package/registry/ui/config/nm-composer.ts +12 -0
  360. package/registry/ui/config/nm-icon-button.ts +0 -2
  361. package/registry/ui/config/nm-icons-extended.ts +141 -0
  362. package/registry/ui/config/nm-icons.ts +6 -2
  363. package/registry/ui/config/nm-voice-orb.ts +50 -0
  364. package/registry/ui/lib/nm-motion.ts +30 -0
  365. package/registry/ui/styles/tokens.css +7 -0
@@ -0,0 +1,53 @@
1
+ import * as React from 'react';
2
+ import { type IconProps } from '@animate-ui/react/icons';
3
+ type ZoomOutProps = IconProps<keyof typeof animations>;
4
+ declare const animations: {
5
+ readonly default: {
6
+ lens: {
7
+ initial: {
8
+ scale: number;
9
+ transformOrigin: string;
10
+ };
11
+ animate: {
12
+ scale: number[];
13
+ transformOrigin: string;
14
+ transition: {
15
+ duration: number;
16
+ ease: "easeInOut";
17
+ };
18
+ };
19
+ };
20
+ sign: {
21
+ initial: {
22
+ scaleX: number;
23
+ };
24
+ animate: {
25
+ scaleX: number[];
26
+ transition: {
27
+ duration: number;
28
+ ease: "easeInOut";
29
+ };
30
+ };
31
+ };
32
+ };
33
+ readonly shrink: {
34
+ lens: {
35
+ initial: {
36
+ scale: number;
37
+ transformOrigin: string;
38
+ };
39
+ animate: {
40
+ scale: number[];
41
+ transformOrigin: string;
42
+ transition: {
43
+ duration: number;
44
+ times: number[];
45
+ ease: "easeInOut";
46
+ };
47
+ };
48
+ };
49
+ sign: {};
50
+ };
51
+ };
52
+ declare function ZoomOut(props: ZoomOutProps): React.JSX.Element;
53
+ export { animations, ZoomOut as ZoomOutAnimated };
@@ -1,7 +1,10 @@
1
- import type { ReactNode } from 'react';
1
+ import type { CSSProperties, ReactNode, SVGAttributes } from 'react';
2
2
  import { type NmIconId } from '../../config/nm-icons.ts';
3
- export type NmIconProps = {
3
+ export type NmIconProps = Omit<SVGAttributes<SVGElement>, 'id' | 'className' | 'style' | 'viewBox' | 'fill' | 'stroke'> & {
4
4
  id: NmIconId;
5
5
  className?: string;
6
+ /** A size in px or any CSS length, for the rare icon that is not the themed icon size. */
7
+ size?: number | string;
8
+ style?: CSSProperties;
6
9
  };
7
- export declare function NmIcon(props: NmIconProps): ReactNode;
10
+ export declare function NmIcon(allProps: NmIconProps): ReactNode;
@@ -0,0 +1,3 @@
1
+ import { type LucideIcon } from 'lucide-react';
2
+ import type { NM_EXTENDED_ICON_IDS } from '../../config/nm-icons-extended.ts';
3
+ export declare const NM_LUCIDE_EXTENDED: Record<(typeof NM_EXTENDED_ICON_IDS)[number], LucideIcon>;
@@ -1,7 +1,11 @@
1
- import type { ReactNode } from 'react';
1
+ import type { CSSProperties, ReactNode, SVGAttributes } from 'react';
2
2
  export declare const NM_LUCIDE_FILLED_IDS: Set<string>;
3
+ /** True when the icon plays an animation on hover: a lucide icon Animate UI has an animation for. */
4
+ export declare function isNmIconAnimated(id: string): boolean;
3
5
  export declare function hasNmLucide(id: string): boolean;
4
- export declare function NmLucide({ id, className }: {
6
+ export declare function NmLucide({ id, className, size, style, ...rest }: {
5
7
  id: string;
6
8
  className?: string;
7
- }): ReactNode;
9
+ size?: number | string;
10
+ style?: CSSProperties;
11
+ } & Omit<SVGAttributes<SVGElement>, 'id' | 'className' | 'style'>): ReactNode;
@@ -0,0 +1,5 @@
1
+ import type { ComponentProps } from 'react';
2
+ /** A key or a shortcut, drawn as a key cap. Use it in tooltips, menus and docs. The shadcn Kbd composition. */
3
+ export declare function NmKbd({ className, ...props }: ComponentProps<'kbd'>): import("react").JSX.Element;
4
+ /** Several keys of one shortcut, side by side. */
5
+ export declare function NmKbdGroup({ className, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
@@ -1,5 +1,5 @@
1
- import { Menubar as MenubarPrimitive } from '@base-ui/react/menubar';
2
- import { Menu as MenuPrimitive } from '@base-ui/react/menu';
1
+ import { Menubar as MenubarPrimitive } from '../../lib/nm-motion.ts';
2
+ import { Menu as MenuPrimitive } from '../../lib/nm-motion.ts';
3
3
  /**
4
4
  * Base UI Menubar, in the shadcn composition. A row of menus that open on click and then on hover.
5
5
  * Each menu is an NmDropdownMenu, so its content and items are the dropdown parts.
@@ -1,9 +1,13 @@
1
1
  import type { ComponentProps } from 'react';
2
2
  export declare const NM_PANEL_VARIANTS: readonly ['default', 'inset', 'plain'];
3
3
  export type NmPanelVariant = (typeof NM_PANEL_VARIANTS)[number];
4
+ /** `full` fills the room it is given. `column` is a centred share of it, held between a minimum and a maximum width. */
5
+ export declare const NM_PANEL_MEASURES: readonly ['full', 'column'];
6
+ export type NmPanelMeasure = (typeof NM_PANEL_MEASURES)[number];
4
7
  /** A region of the app, such as an inspector or a side panel: a header, content that scrolls, and a footer. */
5
- export declare function NmPanel({ className, variant, ...props }: ComponentProps<'section'> & {
8
+ export declare function NmPanel({ className, variant, measure, ...props }: ComponentProps<'section'> & {
6
9
  variant?: NmPanelVariant;
10
+ measure?: NmPanelMeasure;
7
11
  }): import("react").JSX.Element;
8
12
  export declare function NmPanelHeader({ className, ...props }: ComponentProps<'header'>): import("react").JSX.Element;
9
13
  export declare function NmPanelTitle({ className, ...props }: ComponentProps<'h2'>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  import type { ComponentProps } from 'react';
2
- import { Popover as PopoverPrimitive } from '@base-ui/react/popover';
2
+ import { Popover as PopoverPrimitive } from '../../lib/nm-motion.ts';
3
3
  export declare function NmPopover(props: PopoverPrimitive.Root.Props): import("react").JSX.Element;
4
4
  export declare function NmPopoverTrigger(props: PopoverPrimitive.Trigger.Props): import("react").JSX.Element;
5
- export declare function NmPopoverContent({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): import("react").JSX.Element;
5
+ export declare function NmPopoverContent({ className, align, alignOffset, side, sideOffset, anchor, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset' | 'anchor'>): import("react").JSX.Element;
6
6
  export declare function NmPopoverHeader({ className, ...props }: ComponentProps<'div'>): import("react").JSX.Element;
7
7
  export declare function NmPopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props): import("react").JSX.Element;
8
8
  export declare function NmPopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props): import("react").JSX.Element;
@@ -1,3 +1,3 @@
1
- import { Progress as ProgressPrimitive } from '@base-ui/react/progress';
1
+ import { Progress as ProgressPrimitive } from '../../lib/nm-motion.ts';
2
2
  /** Base UI Progress, in the shadcn composition, styled by NIF tokens. */
3
3
  export declare function NmProgress({ className, children, value, ...props }: ProgressPrimitive.Root.Props): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { Radio as RadioPrimitive } from '@base-ui/react/radio';
2
- import { RadioGroup as RadioGroupPrimitive } from '@base-ui/react/radio-group';
1
+ import { Radio as RadioPrimitive } from '../../lib/nm-motion.ts';
2
+ import { RadioGroup as RadioGroupPrimitive } from '../../lib/nm-motion.ts';
3
3
  export declare function NmRadioGroup({ className, ...props }: RadioGroupPrimitive.Props): import("react").JSX.Element;
4
4
  export declare function NmRadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props): import("react").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import { Select as SelectPrimitive } from '@base-ui/react/select';
2
+ import { Select as SelectPrimitive } from '../../lib/nm-motion.ts';
3
3
  /**
4
4
  * Base UI Select, in the shadcn composition, styled by NIF tokens. The choice of one value from a list that
5
5
  * opens under the field. The list is the same surface as the dropdown menu.
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ /** A pulsing placeholder in the shape of the content that is loading. Size it with a class. */
3
+ export declare function NmSkeleton({ className, ...props }: ComponentProps<'div'>): ReactNode;
@@ -1,4 +1,4 @@
1
- import { Slider as SliderPrimitive } from '@base-ui/react/slider';
1
+ import { Slider as SliderPrimitive } from '../../lib/nm-motion.ts';
2
2
  /** `label` and `output` add a caption above the track, set like the caption of a Field. */
3
3
  export declare function NmSlider({ className, defaultValue, value, min, max, label, output, ...props }: SliderPrimitive.Root.Props & {
4
4
  label?: string;
@@ -1,4 +1,4 @@
1
- import { type ButtonHTMLAttributes, type ReactNode } from 'react';
1
+ import { type ButtonHTMLAttributes, type MouseEvent, type ReactNode } from 'react';
2
2
  import type { NmIconId } from '../../config/nm-icons.ts';
3
3
  import { type NmSmallIconButtonTone } from '../../config/nm-small-icon-button.ts';
4
4
  export type NmSmallIconButtonProps = {
@@ -8,7 +8,7 @@ export type NmSmallIconButtonProps = {
8
8
  active?: boolean;
9
9
  iconContent?: ReactNode;
10
10
  testId?: string;
11
- onClick?: () => void;
11
+ onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
12
12
  } & Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'aria-label' | 'children'>;
13
13
  export declare const NmSmallIconButton: import("react").ForwardRefExoticComponent<{
14
14
  label: string;
@@ -17,5 +17,5 @@ export declare const NmSmallIconButton: import("react").ForwardRefExoticComponen
17
17
  active?: boolean;
18
18
  iconContent?: ReactNode;
19
19
  testId?: string;
20
- onClick?: () => void;
20
+ onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
21
21
  } & Omit<ButtonHTMLAttributes<HTMLButtonElement>, "aria-label" | "children" | "onClick"> & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ /** A ring that turns while something loads. It is the themed icon size; a class or style sets another. */
3
+ export declare function NmSpinner({ className, ...props }: ComponentProps<'span'>): ReactNode;
@@ -1,2 +1,2 @@
1
- import { Switch as SwitchPrimitive } from '@base-ui/react/switch';
1
+ import { Switch as SwitchPrimitive } from '../../lib/nm-motion.ts';
2
2
  export declare function NmSwitch({ className, ...props }: SwitchPrimitive.Root.Props): import("react").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
+ import { Tabs as TabsPrimitive } from '../../lib/nm-motion.ts';
2
3
  import { type NmTabItem } from '../../config/nm-tabs.ts';
3
4
  export type NmTabsProps = {
4
5
  label: string;
@@ -7,3 +8,8 @@ export type NmTabsProps = {
7
8
  onChange: (id: string) => void;
8
9
  };
9
10
  export declare function NmTabs(props: NmTabsProps): ReactNode;
11
+ /** The parts of a tab set, for a view that lays out its own list and panels. */
12
+ export declare function NmTabsRoot(props: TabsPrimitive.Root.Props): ReactNode;
13
+ export declare function NmTabsList({ className, ...props }: TabsPrimitive.List.Props): ReactNode;
14
+ export declare function NmTabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props): ReactNode;
15
+ export declare function NmTabsContent({ className, ...props }: TabsPrimitive.Panel.Props): ReactNode;
@@ -1,4 +1,4 @@
1
- import { Toggle as TogglePrimitive } from '@base-ui/react/toggle';
1
+ import { Toggle as TogglePrimitive } from '../../lib/nm-motion.ts';
2
2
  export declare const NM_TOGGLE_VARIANTS: readonly ['default', 'outline'];
3
3
  export declare const NM_TOGGLE_SIZES: readonly ['sm', 'default', 'lg'];
4
4
  export type NmToggleVariant = (typeof NM_TOGGLE_VARIANTS)[number];
@@ -1,6 +1,7 @@
1
1
  import type { ComponentProps, ReactNode } from 'react';
2
2
  import { Toolbar as ToolbarPrimitive } from '@base-ui/react/toolbar';
3
3
  import type { NmIconId } from '../../config/nm-icons.ts';
4
+ import { type NmButtonTone } from '../../config/nm-button.ts';
4
5
  import { type NmIconButtonTone } from '../../config/nm-icon-button.ts';
5
6
  /** Base UI Toolbar, in the shadcn composition, styled by NIF tokens. One tab stop, arrow keys move between controls. */
6
7
  export declare function NmToolbar({ className, ...props }: ToolbarPrimitive.Root.Props): import("react").JSX.Element;
@@ -9,11 +10,14 @@ export declare function NmToolbarGroup({ className, ...props }: ToolbarPrimitive
9
10
  export declare function NmToolbarSeparator({ className, ...props }: ToolbarPrimitive.Separator.Props): import("react").JSX.Element;
10
11
  /** Takes the free space, pushing what follows to the end. */
11
12
  export declare function NmToolbarSpacer({ className, ...props }: ComponentProps<'span'>): import("react").JSX.Element;
12
- /** An icon button, or a button with text. `label` is its accessible name. */
13
+ /**
14
+ * An icon button. Give it children and it is a NIF button with text instead, in the tone of your choice.
15
+ * `label` is its accessible name.
16
+ */
13
17
  export declare function NmToolbarButton({ icon, label, tone, pressed, className, children, ...props }: Omit<ToolbarPrimitive.Button.Props, 'children'> & {
14
18
  icon?: NmIconId;
15
19
  label: string;
16
- tone?: NmIconButtonTone;
20
+ tone?: NmIconButtonTone | NmButtonTone;
17
21
  pressed?: boolean;
18
22
  children?: ReactNode;
19
23
  }): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';
1
+ import { Tooltip as TooltipPrimitive } from '../../lib/nm-motion.ts';
2
2
  export declare function NmTooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): import("react").JSX.Element;
3
3
  export declare function NmTooltip(props: TooltipPrimitive.Root.Props): import("react").JSX.Element;
4
4
  export declare function NmTooltipTrigger(props: TooltipPrimitive.Trigger.Props): import("react").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type OrbAdapter, type OrbSignal, type OrbTheme } from 'orb-ui';
3
+ import { type NmVoiceOrbAgentState } from '../../config/nm-voice-orb.ts';
4
+ export type NmVoiceOrbProps = {
5
+ adapter?: OrbAdapter;
6
+ signal?: OrbSignal;
7
+ agentState?: NmVoiceOrbAgentState;
8
+ theme?: OrbTheme;
9
+ size?: number;
10
+ inputVolume?: number;
11
+ outputVolume?: number;
12
+ getInputVolume?: () => number;
13
+ getOutputVolume?: () => number;
14
+ label?: string;
15
+ testId?: string;
16
+ onClick?: () => void;
17
+ };
18
+ export declare function NmVoiceOrb(props: NmVoiceOrbProps): ReactNode;
@@ -0,0 +1,2 @@
1
+ import { type OrbTheme } from 'orb-ui';
2
+ export declare function useNmVoiceOrbTheme(): OrbTheme;
@@ -2,6 +2,8 @@ export declare const NM_APP_PANEL_TABS: {
2
2
  readonly code: 'code';
3
3
  readonly preview: 'preview';
4
4
  readonly environment: 'environment';
5
+ /** The agent's machine: the live desktop of the app's sandbox. */
6
+ readonly machine: 'machine';
5
7
  };
6
8
  export type NmAppPanelTab = (typeof NM_APP_PANEL_TABS)[keyof typeof NM_APP_PANEL_TABS];
7
9
  export declare const NM_APP_PANEL_ICON_SRC: {
@@ -4,6 +4,10 @@ export declare const NM_BUTTON_TONES: {
4
4
  readonly muted: 'muted';
5
5
  readonly panel: 'panel';
6
6
  readonly danger: 'danger';
7
+ /** No fill until hovered. For actions that sit inside other content. */
8
+ readonly ghost: 'ghost';
9
+ /** Text with an underline on hover. */
10
+ readonly link: 'link';
7
11
  };
8
12
  export type NmButtonTone = (typeof NM_BUTTON_TONES)[keyof typeof NM_BUTTON_TONES];
9
13
  export declare const NM_BUTTON_SIZES: {
@@ -20,6 +24,8 @@ export declare const NM_BUTTON_CLASSES: {
20
24
  readonly muted: 'nm-button--muted';
21
25
  readonly panel: 'nm-button--panel';
22
26
  readonly danger: 'nm-button--danger';
27
+ readonly ghost: 'nm-button--ghost';
28
+ readonly link: 'nm-button--link';
23
29
  readonly default: 'nm-button--default';
24
30
  readonly compact: 'nm-button--compact';
25
31
  readonly chip: 'nm-button--chip';
@@ -7,6 +7,11 @@ export declare const NM_COMPOSER_COPY: {
7
7
  readonly attach: 'Add';
8
8
  readonly mic: 'Dictate';
9
9
  readonly voice: 'Voice mode';
10
+ readonly voiceEnd: 'End voice mode';
11
+ readonly mute: 'Mute microphone';
12
+ readonly unmute: 'Unmute microphone';
13
+ readonly cancel: 'Cancel';
14
+ readonly done: 'Done';
10
15
  readonly send: 'Send';
11
16
  readonly stop: 'Stop';
12
17
  readonly remove: (name: string) => string;
@@ -14,6 +19,8 @@ export declare const NM_COMPOSER_COPY: {
14
19
  readonly editQueued: 'Edit queued message';
15
20
  readonly removeQueued: 'Remove queued message';
16
21
  };
22
+ /** Wraps an inline chip's label inside the field text. */
23
+ export declare const NM_COMPOSER_INLINE_MARK = "\u2060";
17
24
  export declare const NM_COMPOSER_CLASSES: {
18
25
  readonly root: 'nm-composer';
19
26
  readonly stack: 'nm-composer-stack';
@@ -24,6 +31,10 @@ export declare const NM_COMPOSER_CLASSES: {
24
31
  readonly queuedActions: 'nm-composer__queued-actions';
25
32
  readonly attachments: 'nm-composer__attachments';
26
33
  readonly field: 'nm-composer__field';
34
+ readonly listening: 'nm-composer__listening';
35
+ readonly fieldWrap: 'nm-composer__field-wrap';
36
+ readonly inline: 'nm-composer__inline';
37
+ readonly inlineChip: 'nm-composer__inline-chip';
27
38
  readonly bar: 'nm-composer__bar';
28
39
  readonly start: 'nm-composer__start';
29
40
  readonly end: 'nm-composer__end';
@@ -3,7 +3,6 @@ export declare const NM_ICON_BUTTON_TONES: {
3
3
  readonly raised: 'raised';
4
4
  readonly quiet: 'quiet';
5
5
  readonly solid: 'solid';
6
- readonly subtle: 'subtle';
7
6
  readonly panel: 'panel';
8
7
  readonly invert: 'invert';
9
8
  };
@@ -16,7 +15,6 @@ export declare const NM_ICON_BUTTON_CLASSES: {
16
15
  readonly raised: 'nm-icon-button--raised';
17
16
  readonly quiet: 'nm-icon-button--quiet';
18
17
  readonly solid: 'nm-icon-button--solid';
19
- readonly subtle: 'nm-icon-button--subtle';
20
18
  readonly panel: 'nm-icon-button--panel';
21
19
  readonly invert: 'nm-icon-button--invert';
22
20
  };
@@ -0,0 +1 @@
1
+ export declare const NM_EXTENDED_ICON_IDS: readonly ['activity', 'app-window', 'archive-restore', 'arrow-down', 'arrow-left-right', 'arrow-right-left', 'arrow-up-down', 'arrow-up-left', 'ban', 'beaker', 'bitcoin', 'bone', 'book-copy', 'bookmark', 'bookmark-plus', 'calendar-days', 'chart-column', 'chart-column-increasing', 'chart-line', 'check-check', 'chevron-left', 'chevron-right', 'chevron-up', 'chevrons-up-down', 'circle', 'circle-alert', 'circle-check-big', 'circle-dashed', 'circle-dot', 'circle-plus', 'circle-question-mark', 'circle-x', 'clock-3', 'clock-4', 'cloud-sun', 'code-xml', 'copy-check', 'corner-down-right', 'database', 'dices', 'earth', 'external-link', 'eye', 'eye-off', 'fast-forward', 'feather', 'file-clock', 'file-code', 'file-image', 'file-json', 'file-pen-line', 'file-plus-2', 'file-question-mark', 'file-search', 'file-spreadsheet', 'file-type-2', 'file-up', 'file-x-2', 'files', 'film', 'folder-kanban', 'funnel-x', 'git-branch-plus', 'git-commit-horizontal', 'git-fork', 'graduation-cap', 'grip-vertical', 'history', 'image-off', 'image-up', 'info', 'key-round', 'keyboard', 'laptop', 'layers', 'layout-dashboard', 'library', 'life-buoy', 'lightbulb', 'link', 'link-2-off', 'list', 'list-tree', 'map-pin', 'message-circle-question-mark', 'message-square', 'message-square-plus', 'message-square-text', 'messages-square', 'minimize-2', 'mouse-pointer-click', 'newspaper', 'notebook-pen', 'octagon-pause', 'paperclip', 'pen-line', 'pen-tool', 'pin-off', 'plane-takeoff', 'plug-zap', 'qr-code', 'radio', 'refresh-cw', 'rocket', 'rotate-cw', 'scale', 'scan-search', 'scroll-text', 'send', 'share-2', 'shield', 'shield-check', 'shield-ellipsis', 'shopping-bag', 'sliders-horizontal', 'sparkles', 'square-pen', 'square-slash', 'square-terminal', 'star', 'table-2', 'text-quote', 'trash', 'trending-up', 'triangle-alert', 'trophy', 'type', 'user', 'user-check', 'users', 'utensils-crossed', 'variable', 'video', 'wand-sparkles', 'zap', 'zap-off', 'zoom-in', 'zoom-out'];
@@ -1,5 +1,8 @@
1
1
  export declare const NM_ICON_IDS: readonly ['plus', 'user', 'paperclip', 'settings', 'globe', 'spreadsheet', 'pointer', 'mouse-pointer', 'mic', 'mic-off', 'audio-lines', 'send', 'chevron', 'check', 'circle-check', 'code', 'file-code', 'console', 'copy', 'volume', 'fork', 'chat', 'chat-dashed', 'folder', 'bot', 'app', 'layers', 'users', 'library', 'panel', 'ellipsis', 'camera', 'reload', 'expand', 'arrow-up-right', 'minimize', 'download', 'publish', 'share', 'pen', 'pin', 'archive', 'trash', 'folder-in', 'folder-out', 'duplicate', 'logout', 'table-properties', 'cable', 'menu', 'loader', 'monitor', 'server', 'filter', 'sliders', 'upload', 'image', 'image-plus', 'music', 'headphones', 'video', 'search', 'presentation', 'terminal', 'square-terminal', 'x', 'save', 'lock', 'mail', 'calendar', 'clock', 'gauge', 'minus', 'play', 'workflow', 'hard-drive', 'slack', 'github', 'building', 'file-text', 'wrench', 'file', 'brain', 'sun', 'moon', 'google', 'arrow-left', 'arrow-right', 'panel-left', 'rows'];
2
- export type NmIconId = (typeof NM_ICON_IDS)[number];
2
+ import type { NM_EXTENDED_ICON_IDS } from './nm-icons-extended.ts';
3
+ export type NmCoreIconId = (typeof NM_ICON_IDS)[number];
4
+ /** The core ids above plus the generated lucide ids in nm-icons-extended.ts. */
5
+ export type NmIconId = NmCoreIconId | (typeof NM_EXTENDED_ICON_IDS)[number];
3
6
  export type NmIconSpec = {
4
7
  viewBox: string;
5
8
  path?: string | readonly string[];
@@ -0,0 +1,22 @@
1
+ import { type OrbState } from 'orb-ui';
2
+ export type NmVoiceOrbAgentState = null | 'idle' | 'connecting' | 'listening' | 'thinking' | 'talking' | 'speaking' | 'error';
3
+ export declare const NM_VOICE_ORB_SIZE = 34;
4
+ export declare const NM_VOICE_ORB_CLASSES: {
5
+ readonly root: 'nm-voice-orb';
6
+ };
7
+ export declare const NM_ORB_UI_THEME: {
8
+ readonly name: "cloud";
9
+ readonly preset: "expressive";
10
+ readonly geometry: {
11
+ readonly diameterRatio: 1;
12
+ readonly listeningMinScale: 0.88;
13
+ readonly speakingMaxScale: 1;
14
+ readonly idleDotScale: 0.88;
15
+ };
16
+ readonly motion: {
17
+ readonly entranceHoldMs: 0;
18
+ readonly entranceGrowMs: 160;
19
+ readonly entranceSettleMs: 240;
20
+ };
21
+ };
22
+ export declare function toOrbUiState(agentState: NmVoiceOrbAgentState | undefined): OrbState;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The one place NIF reaches for Animate UI. Each part is Animate UI's version of a Base UI primitive: the same API,
3
+ * with Motion built in. NIF components import their primitives from here and never from Animate UI directly, so the
4
+ * motion layer can be swapped by changing this file alone.
5
+ *
6
+ * Animate UI is "MIT + Commons Clause". It may be used in a product, but its components may not be sold or
7
+ * redistributed in their original form. NIF therefore depends on the package and never copies or bundles its code.
8
+ */
9
+ export { Checkbox } from '@animate-ui/react/primitives/base-ui/checkbox';
10
+ export { Collapsible } from '@animate-ui/react/primitives/base-ui/collapsible';
11
+ export { Combobox } from '@animate-ui/react/primitives/base-ui/combobox';
12
+ export { ContextMenu } from '@animate-ui/react/primitives/base-ui/context-menu';
13
+ export { Dialog } from '@animate-ui/react/primitives/base-ui/dialog';
14
+ export { Menu } from '@animate-ui/react/primitives/base-ui/menu';
15
+ export { Menubar } from '@animate-ui/react/primitives/base-ui/menubar';
16
+ export { Popover } from '@animate-ui/react/primitives/base-ui/popover';
17
+ export { PreviewCard } from '@animate-ui/react/primitives/base-ui/preview-card';
18
+ export { Progress } from '@animate-ui/react/primitives/base-ui/progress';
19
+ export { Radio } from '@animate-ui/react/primitives/base-ui/radio';
20
+ export { RadioGroup } from '@animate-ui/react/primitives/base-ui/radio-group';
21
+ export { Select } from '@animate-ui/react/primitives/base-ui/select';
22
+ export { Slider } from '@animate-ui/react/primitives/base-ui/slider';
23
+ export { Switch } from '@base-ui/react/switch';
24
+ export { Tabs } from '@animate-ui/react/primitives/base-ui/tabs';
25
+ export { Toggle } from '@animate-ui/react/primitives/base-ui/toggle';
26
+ export { Tooltip } from '@animate-ui/react/primitives/base-ui/tooltip';
27
+ export { Button } from '@animate-ui/react/primitives/buttons/button';
28
+ /** The animated icon engine. Icons follow the hover of the control around them, or animate on their own. */
29
+ export { AnimateIcon, IconWrapper, getVariants, useAnimateIconContext, type IconProps } from '@animate-ui/react/icons';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nordmanai/nif",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Nordman Interface Framework: the one UI and UX system for every Nordman product. Base UI, in the shadcn composition, styled by NIF tokens.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -37,8 +37,10 @@
37
37
  "framer-motion": ">=12.0.0",
38
38
  "lucide-react": ">=0.525.0 <1",
39
39
  "orb-ui": "^0.10.0",
40
- "react": "^18.3.0 || ^19.0.0",
41
- "react-dom": "^18.3.0 || ^19.0.0"
40
+ "react": "^19.0.0",
41
+ "react-dom": "^19.0.0",
42
+ "@animate-ui/react": "^2.4.2",
43
+ "motion": ">=14.0.0"
42
44
  },
43
45
  "publishConfig": {
44
46
  "access": "public"
@@ -52,16 +54,18 @@
52
54
  ],
53
55
  "devDependencies": {
54
56
  "@base-ui/react": "^1.9.0",
55
- "@types/react": "^18.3.31",
56
- "@types/react-dom": "^18.3.7",
57
+ "@types/react": "^19.2.0",
58
+ "@types/react-dom": "^19.2.0",
57
59
  "@vitejs/plugin-react": "^6.2.1",
58
60
  "framer-motion": "^14.9.1",
59
61
  "lucide-react": "^0.525.0",
60
62
  "orb-ui": "^0.10.0",
61
- "react": "^18.3.1",
62
- "react-dom": "^18.3.1",
63
+ "react": "^19.2.0",
64
+ "react-dom": "^19.2.0",
63
65
  "typescript": "^7.0.2",
64
- "vite": "^8.3.6"
66
+ "vite": "^8.3.6",
67
+ "@animate-ui/react": "^2.4.2",
68
+ "motion": "^14.9.1"
65
69
  },
66
70
  "peerDependenciesMeta": {
67
71
  "orb-ui": {