@nordmanai/nif 0.0.0-stage → 0.2.0

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 (398) hide show
  1. package/README.md +79 -2
  2. package/bin/nif.mjs +196 -0
  3. package/dist/index.d.ts +124 -0
  4. package/dist/index.js +12961 -0
  5. package/dist/styles.css +2 -0
  6. package/dist/tokens.css +72 -0
  7. package/dist/ui/components/nm-ai/nm-ai.d.ts +222 -0
  8. package/dist/ui/components/nm-avatar/nm-avatar.d.ts +12 -0
  9. package/dist/ui/components/nm-bar-overflow/nm-bar-overflow.d.ts +15 -0
  10. package/dist/ui/components/nm-bar-overflow/use-bar-overflow.d.ts +7 -0
  11. package/dist/ui/components/nm-brand-logo/nm-brand-logo.d.ts +10 -0
  12. package/dist/ui/components/nm-breadcrumb/nm-breadcrumb.d.ts +11 -0
  13. package/dist/ui/components/nm-button/nm-button.d.ts +19 -0
  14. package/dist/ui/components/nm-button-group/nm-button-group.d.ts +17 -0
  15. package/dist/ui/components/nm-calendar/nm-calendar.d.ts +3 -0
  16. package/dist/ui/components/nm-card/nm-card.d.ts +34 -0
  17. package/dist/ui/components/nm-chatbox/nm-chatbox-icon.d.ts +7 -0
  18. package/dist/ui/components/nm-chatbox/nm-chatbox.d.ts +19 -0
  19. package/dist/ui/components/nm-checkbox/nm-checkbox.d.ts +2 -0
  20. package/dist/ui/components/nm-chip/nm-chip.d.ts +38 -0
  21. package/dist/ui/components/nm-code-block/nm-code-block.d.ts +55 -0
  22. package/dist/ui/components/nm-collection/nm-collection-bar.d.ts +16 -0
  23. package/dist/ui/components/nm-collection/nm-collection-grid.d.ts +9 -0
  24. package/dist/ui/components/nm-collection/nm-collection-query.d.ts +18 -0
  25. package/dist/ui/components/nm-collection/nm-collection-row-menu.d.ts +7 -0
  26. package/dist/ui/components/nm-collection/nm-collection-table.d.ts +13 -0
  27. package/dist/ui/components/nm-collection/nm-collection-tile-actions.d.ts +7 -0
  28. package/dist/ui/components/nm-collection/nm-collection-title.d.ts +10 -0
  29. package/dist/ui/components/nm-collection/use-collection-scroll-reveal.d.ts +3 -0
  30. package/dist/ui/components/nm-color-picker/nm-color-picker.d.ts +15 -0
  31. package/dist/ui/components/nm-combobox/nm-combobox.d.ts +26 -0
  32. package/dist/ui/components/nm-command/nm-command.d.ts +37 -0
  33. package/dist/ui/components/nm-composer/nm-composer.d.ts +33 -0
  34. package/dist/ui/components/nm-context-menu/nm-context-menu.d.ts +9 -0
  35. package/dist/ui/components/nm-date-picker/nm-date-picker.d.ts +35 -0
  36. package/dist/ui/components/nm-dialog/nm-dialog.d.ts +13 -0
  37. package/dist/ui/components/nm-dropdown/nm-dropdown-item.d.ts +26 -0
  38. package/dist/ui/components/nm-dropdown/nm-dropdown-options.d.ts +12 -0
  39. package/dist/ui/components/nm-dropdown/nm-dropdown-panel.d.ts +16 -0
  40. package/dist/ui/components/nm-dropdown/nm-dropdown-placement.d.ts +55 -0
  41. package/dist/ui/components/nm-dropdown/nm-dropdown.d.ts +31 -0
  42. package/dist/ui/components/nm-dropdown-menu/nm-dropdown-menu.d.ts +30 -0
  43. package/dist/ui/components/nm-field/nm-field.d.ts +52 -0
  44. package/dist/ui/components/nm-form-field/nm-form-field.d.ts +18 -0
  45. package/dist/ui/components/nm-gallery/nm-gallery.d.ts +8 -0
  46. package/dist/ui/components/nm-hover-card/nm-hover-card.d.ts +5 -0
  47. package/dist/ui/components/nm-icon/nm-icon.d.ts +7 -0
  48. package/dist/ui/components/nm-icon/nm-lucide.d.ts +7 -0
  49. package/dist/ui/components/nm-icon-border/nm-icon-border.d.ts +21 -0
  50. package/dist/ui/components/nm-input/nm-input.d.ts +5 -0
  51. package/dist/ui/components/nm-input-group/nm-input-group.d.ts +9 -0
  52. package/dist/ui/components/nm-label/nm-label.d.ts +2 -0
  53. package/dist/ui/components/nm-list-item/nm-list-item.d.ts +23 -0
  54. package/dist/ui/components/nm-menubar/nm-menubar.d.ts +9 -0
  55. package/dist/ui/components/nm-message/nm-message-actions.d.ts +7 -0
  56. package/dist/ui/components/nm-message/nm-message-meta.d.ts +10 -0
  57. package/dist/ui/components/nm-message/nm-text-shimmer.d.ts +4 -0
  58. package/dist/ui/components/nm-message/nm-trace.d.ts +58 -0
  59. package/dist/ui/components/nm-modal/nm-modal.d.ts +35 -0
  60. package/dist/ui/components/nm-native-select/nm-native-select.d.ts +5 -0
  61. package/dist/ui/components/nm-panel/nm-panel.d.ts +14 -0
  62. package/dist/ui/components/nm-panel-bar/nm-panel-bar.d.ts +17 -0
  63. package/dist/ui/components/nm-popover/nm-popover.d.ts +8 -0
  64. package/dist/ui/components/nm-progress/nm-progress.d.ts +3 -0
  65. package/dist/ui/components/nm-prose/nm-prose.d.ts +6 -0
  66. package/dist/ui/components/nm-questionnaire/nm-questionnaire.d.ts +17 -0
  67. package/dist/ui/components/nm-radio-group/nm-radio-group.d.ts +4 -0
  68. package/dist/ui/components/nm-rail-icon/nm-rail-icon.d.ts +6 -0
  69. package/dist/ui/components/nm-resize-handle/nm-resize-handle.d.ts +18 -0
  70. package/dist/ui/components/nm-segmented/nm-segmented.d.ts +20 -0
  71. package/dist/ui/components/nm-select/nm-select.d.ts +22 -0
  72. package/dist/ui/components/nm-separator/nm-separator.d.ts +2 -0
  73. package/dist/ui/components/nm-side-panel/nm-side-panel.d.ts +33 -0
  74. package/dist/ui/components/nm-slider/nm-slider.d.ts +6 -0
  75. package/dist/ui/components/nm-small-icon-button/nm-small-icon-button.d.ts +21 -0
  76. package/dist/ui/components/nm-status-bar/nm-status-bar.d.ts +8 -0
  77. package/dist/ui/components/nm-switch/nm-switch.d.ts +2 -0
  78. package/dist/ui/components/nm-table/nm-table.d.ts +38 -0
  79. package/dist/ui/components/nm-tabs/nm-tabs.d.ts +9 -0
  80. package/dist/ui/components/nm-textarea/nm-textarea.d.ts +2 -0
  81. package/dist/ui/components/nm-toggle/nm-toggle.d.ts +9 -0
  82. package/dist/ui/components/nm-toolbar/nm-toolbar.d.ts +21 -0
  83. package/dist/ui/components/nm-tooltip/nm-tooltip.d.ts +5 -0
  84. package/dist/ui/components/nm-top-bar/nm-top-bar.d.ts +12 -0
  85. package/dist/ui/components/nordman-icon-button/nordman-icon-button.d.ts +29 -0
  86. package/dist/ui/components/nordman-login/nordman-login.d.ts +36 -0
  87. package/dist/ui/components/nordman-login-field/nordman-login-field.d.ts +13 -0
  88. package/dist/ui/components/nordman-login-forgot/nordman-login-forgot.d.ts +9 -0
  89. package/dist/ui/components/nordman-login-google/nordman-login-google.d.ts +6 -0
  90. package/dist/ui/components/nordman-login-hero/nordman-login-hero.d.ts +6 -0
  91. package/dist/ui/components/nordman-login-register/nordman-login-register.d.ts +11 -0
  92. package/dist/ui/components/nordman-login-reset/nordman-login-reset.d.ts +9 -0
  93. package/dist/ui/components/nordman-login-reveal/nordman-login-reveal.d.ts +6 -0
  94. package/dist/ui/components/nordman-login-sign-in/nordman-login-sign-in.d.ts +11 -0
  95. package/dist/ui/components/nordman-toggle/nordman-toggle.d.ts +12 -0
  96. package/dist/ui/config/nm-ai.d.ts +44 -0
  97. package/dist/ui/config/nm-app-panel.d.ts +36 -0
  98. package/dist/ui/config/nm-appearance.d.ts +100 -0
  99. package/dist/ui/config/nm-bar-overflow.d.ts +9 -0
  100. package/dist/ui/config/nm-button.d.ts +31 -0
  101. package/dist/ui/config/nm-chatbox-icons.d.ts +42 -0
  102. package/dist/ui/config/nm-chatbox.d.ts +40 -0
  103. package/dist/ui/config/nm-collection.d.ts +88 -0
  104. package/dist/ui/config/nm-composer.d.ts +42 -0
  105. package/dist/ui/config/nm-dropdown.d.ts +56 -0
  106. package/dist/ui/config/nm-fade.d.ts +6 -0
  107. package/dist/ui/config/nm-field.d.ts +38 -0
  108. package/dist/ui/config/nm-header-icons.d.ts +15 -0
  109. package/dist/ui/config/nm-icon-border.d.ts +3 -0
  110. package/dist/ui/config/nm-icon-button.d.ts +26 -0
  111. package/dist/ui/config/nm-icons.d.ts +371 -0
  112. package/dist/ui/config/nm-list-item.d.ts +14 -0
  113. package/dist/ui/config/nm-message.d.ts +87 -0
  114. package/dist/ui/config/nm-modal.d.ts +67 -0
  115. package/dist/ui/config/nm-panel-bar.d.ts +9 -0
  116. package/dist/ui/config/nm-questionnaire.d.ts +57 -0
  117. package/dist/ui/config/nm-radius.d.ts +49 -0
  118. package/dist/ui/config/nm-rail-icons.d.ts +14 -0
  119. package/dist/ui/config/nm-rail.d.ts +5 -0
  120. package/dist/ui/config/nm-segmented.d.ts +17 -0
  121. package/dist/ui/config/nm-side-panel.d.ts +33 -0
  122. package/dist/ui/config/nm-site-palette.d.ts +30 -0
  123. package/dist/ui/config/nm-small-icon-button.d.ts +12 -0
  124. package/dist/ui/config/nm-tabs.d.ts +8 -0
  125. package/dist/ui/config/nm-top-bar.d.ts +4 -0
  126. package/dist/ui/config/nordman-chrome.d.ts +12 -0
  127. package/dist/ui/config/nordman-login.d.ts +23 -0
  128. package/dist/ui/content/nm-modal.d.ts +1 -0
  129. package/dist/ui/content/nordman-login.d.ts +38 -0
  130. package/dist/ui/kit-logger.d.ts +1 -0
  131. package/dist/ui/lib/appearance/appearanceState.d.ts +28 -0
  132. package/dist/ui/lib/appearance/applyAppearance.d.ts +5 -0
  133. package/dist/ui/lib/appearance/cloudOrbAppearance.d.ts +4 -0
  134. package/dist/ui/lib/appearance/color.d.ts +13 -0
  135. package/dist/ui/lib/appearance/deriveTokens.d.ts +6 -0
  136. package/dist/ui/lib/appearance/index.d.ts +6 -0
  137. package/dist/ui/lib/appearance/markTokens.d.ts +2 -0
  138. package/dist/ui/lib/appearance/readLayoutMetrics.d.ts +4 -0
  139. package/dist/ui/lib/bar-overflow.d.ts +13 -0
  140. package/dist/ui/lib/logger.d.ts +8 -0
  141. package/dist/ui/lib/menu-motion.d.ts +72 -0
  142. package/dist/ui/lib/nm-class.d.ts +2 -0
  143. package/dist/ui/lib/nordman-ui-locale.d.ts +9 -0
  144. package/interface/app-panel/code.svg +5 -0
  145. package/interface/app-panel/console.svg +5 -0
  146. package/interface/app-panel/copy.svg +5 -0
  147. package/interface/app-panel/ellipsis.svg +7 -0
  148. package/interface/app-panel/message.svg +5 -0
  149. package/interface/app-panel/network.svg +10 -0
  150. package/interface/app-panel/play.svg +5 -0
  151. package/interface/app-panel/plus.svg +5 -0
  152. package/interface/chatbox/app.svg +5 -0
  153. package/interface/chatbox/audio-lines.svg +5 -0
  154. package/interface/chatbox/check.svg +5 -0
  155. package/interface/chatbox/globe.svg +5 -0
  156. package/interface/chatbox/integration.svg +5 -0
  157. package/interface/chatbox/mic.svg +5 -0
  158. package/interface/chatbox/paperclip.svg +5 -0
  159. package/interface/chatbox/pointer.svg +5 -0
  160. package/interface/chatbox/send.svg +5 -0
  161. package/interface/chatbox/settings.svg +5 -0
  162. package/interface/chatbox/spreadsheet.svg +5 -0
  163. package/interface/chatbox/x.svg +5 -0
  164. package/interface/collection/audio.svg +5 -0
  165. package/interface/collection/download.svg +5 -0
  166. package/interface/collection/expand.svg +5 -0
  167. package/interface/collection/grid.svg +10 -0
  168. package/interface/collection/image.svg +5 -0
  169. package/interface/collection/spreadsheet.svg +5 -0
  170. package/interface/collection/video.svg +5 -0
  171. package/interface/header/app.svg +5 -0
  172. package/interface/header/bot.svg +5 -0
  173. package/interface/header/chat.svg +10 -0
  174. package/interface/header/folder.svg +5 -0
  175. package/interface/header/layers.svg +10 -0
  176. package/interface/header/panel.svg +5 -0
  177. package/interface/header/play.svg +3 -0
  178. package/interface/header/schedule.svg +8 -0
  179. package/interface/header/search.svg +5 -0
  180. package/interface/header/settings.svg +5 -0
  181. package/interface/header/users.svg +5 -0
  182. package/interface/message/chevron.svg +5 -0
  183. package/interface/message/copy.svg +5 -0
  184. package/interface/message/fork.svg +5 -0
  185. package/interface/message/refresh.svg +5 -0
  186. package/interface/message/volume.svg +5 -0
  187. package/interface/rail/app.svg +5 -0
  188. package/interface/rail/bot.svg +5 -0
  189. package/interface/rail/chats.svg +5 -0
  190. package/interface/rail/folder.svg +5 -0
  191. package/interface/rail/library.svg +5 -0
  192. package/interface/rail/plus-sm.svg +5 -0
  193. package/interface/rail/plus.svg +5 -0
  194. package/interface/rail/search.svg +5 -0
  195. package/interface/rail/settings.svg +8 -0
  196. package/interface/rail/spreadsheet.svg +5 -0
  197. package/package.json +79 -4
  198. package/registry/index.json +1634 -0
  199. package/registry/tokens.css +72 -0
  200. package/registry/ui/components/nm-ai/nm-ai.css +358 -0
  201. package/registry/ui/components/nm-ai/nm-ai.tsx +632 -0
  202. package/registry/ui/components/nm-app-panel/nm-app-panel.css +169 -0
  203. package/registry/ui/components/nm-ask/nm-ask.css +277 -0
  204. package/registry/ui/components/nm-avatar/nm-avatar.css +85 -0
  205. package/registry/ui/components/nm-avatar/nm-avatar.tsx +30 -0
  206. package/registry/ui/components/nm-bar-overflow/nm-bar-overflow.css +43 -0
  207. package/registry/ui/components/nm-bar-overflow/nm-bar-overflow.tsx +61 -0
  208. package/registry/ui/components/nm-bar-overflow/use-bar-overflow.ts +92 -0
  209. package/registry/ui/components/nm-brand-logo/nm-brand-logo.css +20 -0
  210. package/registry/ui/components/nm-brand-logo/nm-brand-logo.tsx +21 -0
  211. package/registry/ui/components/nm-breadcrumb/nm-breadcrumb.css +57 -0
  212. package/registry/ui/components/nm-breadcrumb/nm-breadcrumb.tsx +42 -0
  213. package/registry/ui/components/nm-button/nm-button.css +110 -0
  214. package/registry/ui/components/nm-button/nm-button.tsx +58 -0
  215. package/registry/ui/components/nm-button-group/nm-button-group.css +87 -0
  216. package/registry/ui/components/nm-button-group/nm-button-group.tsx +32 -0
  217. package/registry/ui/components/nm-calendar/nm-calendar.css +178 -0
  218. package/registry/ui/components/nm-calendar/nm-calendar.tsx +43 -0
  219. package/registry/ui/components/nm-card/nm-card.css +130 -0
  220. package/registry/ui/components/nm-card/nm-card.tsx +83 -0
  221. package/registry/ui/components/nm-chatbox/nm-chatbox-icon.tsx +39 -0
  222. package/registry/ui/components/nm-chatbox/nm-chatbox.css +682 -0
  223. package/registry/ui/components/nm-chatbox/nm-chatbox.tsx +101 -0
  224. package/registry/ui/components/nm-checkbox/nm-checkbox.css +61 -0
  225. package/registry/ui/components/nm-checkbox/nm-checkbox.tsx +14 -0
  226. package/registry/ui/components/nm-chip/nm-chip.css +112 -0
  227. package/registry/ui/components/nm-chip/nm-chip.tsx +86 -0
  228. package/registry/ui/components/nm-code-block/nm-code-block.css +240 -0
  229. package/registry/ui/components/nm-code-block/nm-code-block.tsx +196 -0
  230. package/registry/ui/components/nm-collection/nm-collection-bar.tsx +65 -0
  231. package/registry/ui/components/nm-collection/nm-collection-grid.tsx +69 -0
  232. package/registry/ui/components/nm-collection/nm-collection-query.tsx +99 -0
  233. package/registry/ui/components/nm-collection/nm-collection-row-menu.tsx +55 -0
  234. package/registry/ui/components/nm-collection/nm-collection-table.tsx +99 -0
  235. package/registry/ui/components/nm-collection/nm-collection-tile-actions.tsx +50 -0
  236. package/registry/ui/components/nm-collection/nm-collection-title.tsx +25 -0
  237. package/registry/ui/components/nm-collection/nm-collection.css +353 -0
  238. package/registry/ui/components/nm-collection/use-collection-scroll-reveal.ts +38 -0
  239. package/registry/ui/components/nm-color-picker/nm-color-picker.css +67 -0
  240. package/registry/ui/components/nm-color-picker/nm-color-picker.tsx +79 -0
  241. package/registry/ui/components/nm-combobox/nm-combobox.css +72 -0
  242. package/registry/ui/components/nm-combobox/nm-combobox.tsx +80 -0
  243. package/registry/ui/components/nm-command/nm-command.css +190 -0
  244. package/registry/ui/components/nm-command/nm-command.tsx +125 -0
  245. package/registry/ui/components/nm-composer/nm-composer.css +178 -0
  246. package/registry/ui/components/nm-composer/nm-composer.tsx +151 -0
  247. package/registry/ui/components/nm-context-menu/nm-context-menu.tsx +25 -0
  248. package/registry/ui/components/nm-date-picker/nm-date-picker.css +140 -0
  249. package/registry/ui/components/nm-date-picker/nm-date-picker.tsx +153 -0
  250. package/registry/ui/components/nm-dialog/nm-dialog.css +84 -0
  251. package/registry/ui/components/nm-dialog/nm-dialog.tsx +40 -0
  252. package/registry/ui/components/nm-dropdown/nm-dropdown-item.ts +68 -0
  253. package/registry/ui/components/nm-dropdown/nm-dropdown-options.tsx +242 -0
  254. package/registry/ui/components/nm-dropdown/nm-dropdown-panel.tsx +171 -0
  255. package/registry/ui/components/nm-dropdown/nm-dropdown-placement.ts +157 -0
  256. package/registry/ui/components/nm-dropdown/nm-dropdown.css +312 -0
  257. package/registry/ui/components/nm-dropdown/nm-dropdown.tsx +412 -0
  258. package/registry/ui/components/nm-dropdown-menu/nm-dropdown-menu.css +145 -0
  259. package/registry/ui/components/nm-dropdown-menu/nm-dropdown-menu.tsx +118 -0
  260. package/registry/ui/components/nm-field/nm-field.css +356 -0
  261. package/registry/ui/components/nm-field/nm-field.tsx +355 -0
  262. package/registry/ui/components/nm-form-field/nm-form-field.css +103 -0
  263. package/registry/ui/components/nm-form-field/nm-form-field.tsx +71 -0
  264. package/registry/ui/components/nm-gallery/nm-gallery.css +66 -0
  265. package/registry/ui/components/nm-gallery/nm-gallery.tsx +31 -0
  266. package/registry/ui/components/nm-hover-card/nm-hover-card.css +26 -0
  267. package/registry/ui/components/nm-hover-card/nm-hover-card.tsx +28 -0
  268. package/registry/ui/components/nm-icon/nm-icon.css +6 -0
  269. package/registry/ui/components/nm-icon/nm-icon.tsx +69 -0
  270. package/registry/ui/components/nm-icon/nm-lucide.tsx +180 -0
  271. package/registry/ui/components/nm-icon-border/nm-icon-border.tsx +56 -0
  272. package/registry/ui/components/nm-input/nm-input.css +75 -0
  273. package/registry/ui/components/nm-input/nm-input.tsx +7 -0
  274. package/registry/ui/components/nm-input-group/nm-input-group.css +66 -0
  275. package/registry/ui/components/nm-input-group/nm-input-group.tsx +20 -0
  276. package/registry/ui/components/nm-label/nm-label.css +11 -0
  277. package/registry/ui/components/nm-label/nm-label.tsx +6 -0
  278. package/registry/ui/components/nm-list-item/nm-list-item.css +177 -0
  279. package/registry/ui/components/nm-list-item/nm-list-item.tsx +112 -0
  280. package/registry/ui/components/nm-menubar/nm-menubar.css +32 -0
  281. package/registry/ui/components/nm-menubar/nm-menubar.tsx +19 -0
  282. package/registry/ui/components/nm-message/nm-message-actions.tsx +24 -0
  283. package/registry/ui/components/nm-message/nm-message-meta.tsx +49 -0
  284. package/registry/ui/components/nm-message/nm-message.css +686 -0
  285. package/registry/ui/components/nm-message/nm-text-shimmer.tsx +6 -0
  286. package/registry/ui/components/nm-message/nm-trace.tsx +219 -0
  287. package/registry/ui/components/nm-modal/nm-modal.css +763 -0
  288. package/registry/ui/components/nm-modal/nm-modal.tsx +497 -0
  289. package/registry/ui/components/nm-native-select/nm-native-select.css +47 -0
  290. package/registry/ui/components/nm-native-select/nm-native-select.tsx +23 -0
  291. package/registry/ui/components/nm-panel/nm-panel.css +73 -0
  292. package/registry/ui/components/nm-panel/nm-panel.tsx +35 -0
  293. package/registry/ui/components/nm-panel-bar/nm-panel-bar.css +20 -0
  294. package/registry/ui/components/nm-panel-bar/nm-panel-bar.tsx +48 -0
  295. package/registry/ui/components/nm-popover/nm-popover.css +43 -0
  296. package/registry/ui/components/nm-popover/nm-popover.tsx +40 -0
  297. package/registry/ui/components/nm-progress/nm-progress.css +21 -0
  298. package/registry/ui/components/nm-progress/nm-progress.tsx +14 -0
  299. package/registry/ui/components/nm-prose/nm-prose.css +81 -0
  300. package/registry/ui/components/nm-prose/nm-prose.tsx +10 -0
  301. package/registry/ui/components/nm-questionnaire/nm-questionnaire.css +182 -0
  302. package/registry/ui/components/nm-questionnaire/nm-questionnaire.tsx +221 -0
  303. package/registry/ui/components/nm-radio-group/nm-radio-group.css +48 -0
  304. package/registry/ui/components/nm-radio-group/nm-radio-group.tsx +15 -0
  305. package/registry/ui/components/nm-rail-icon/nm-rail-icon.css +6 -0
  306. package/registry/ui/components/nm-rail-icon/nm-rail-icon.tsx +28 -0
  307. package/registry/ui/components/nm-resize-handle/nm-resize-handle.css +45 -0
  308. package/registry/ui/components/nm-resize-handle/nm-resize-handle.tsx +102 -0
  309. package/registry/ui/components/nm-segmented/nm-segmented.css +104 -0
  310. package/registry/ui/components/nm-segmented/nm-segmented.tsx +77 -0
  311. package/registry/ui/components/nm-select/nm-select.css +78 -0
  312. package/registry/ui/components/nm-select/nm-select.tsx +64 -0
  313. package/registry/ui/components/nm-separator/nm-separator.css +14 -0
  314. package/registry/ui/components/nm-separator/nm-separator.tsx +6 -0
  315. package/registry/ui/components/nm-side-panel/nm-side-panel.css +93 -0
  316. package/registry/ui/components/nm-side-panel/nm-side-panel.tsx +86 -0
  317. package/registry/ui/components/nm-slider/nm-slider.css +53 -0
  318. package/registry/ui/components/nm-slider/nm-slider.tsx +40 -0
  319. package/registry/ui/components/nm-small-icon-button/nm-small-icon-button.tsx +66 -0
  320. package/registry/ui/components/nm-status-bar/nm-status-bar.css +50 -0
  321. package/registry/ui/components/nm-status-bar/nm-status-bar.tsx +28 -0
  322. package/registry/ui/components/nm-switch/nm-switch.css +45 -0
  323. package/registry/ui/components/nm-switch/nm-switch.tsx +10 -0
  324. package/registry/ui/components/nm-table/nm-table.css +155 -0
  325. package/registry/ui/components/nm-table/nm-table.tsx +95 -0
  326. package/registry/ui/components/nm-tabs/nm-tabs.css +28 -0
  327. package/registry/ui/components/nm-tabs/nm-tabs.tsx +32 -0
  328. package/registry/ui/components/nm-textarea/nm-textarea.css +41 -0
  329. package/registry/ui/components/nm-textarea/nm-textarea.tsx +6 -0
  330. package/registry/ui/components/nm-toggle/nm-toggle.css +55 -0
  331. package/registry/ui/components/nm-toggle/nm-toggle.tsx +16 -0
  332. package/registry/ui/components/nm-toolbar/nm-toolbar.css +42 -0
  333. package/registry/ui/components/nm-toolbar/nm-toolbar.tsx +54 -0
  334. package/registry/ui/components/nm-tooltip/nm-tooltip.css +37 -0
  335. package/registry/ui/components/nm-tooltip/nm-tooltip.tsx +35 -0
  336. package/registry/ui/components/nm-top-bar/nm-top-bar.css +29 -0
  337. package/registry/ui/components/nm-top-bar/nm-top-bar.tsx +34 -0
  338. package/registry/ui/components/nordman-icon-button/nordman-icon-button.css +119 -0
  339. package/registry/ui/components/nordman-icon-button/nordman-icon-button.tsx +185 -0
  340. package/registry/ui/components/nordman-login/nordman-login.css +195 -0
  341. package/registry/ui/components/nordman-login/nordman-login.tsx +136 -0
  342. package/registry/ui/components/nordman-login-field/nordman-login-field.tsx +55 -0
  343. package/registry/ui/components/nordman-login-forgot/nordman-login-forgot.tsx +56 -0
  344. package/registry/ui/components/nordman-login-google/nordman-login-google.tsx +28 -0
  345. package/registry/ui/components/nordman-login-hero/nordman-login-hero.tsx +38 -0
  346. package/registry/ui/components/nordman-login-register/nordman-login-register.tsx +70 -0
  347. package/registry/ui/components/nordman-login-reset/nordman-login-reset.tsx +71 -0
  348. package/registry/ui/components/nordman-login-reveal/nordman-login-reveal.tsx +41 -0
  349. package/registry/ui/components/nordman-login-sign-in/nordman-login-sign-in.tsx +69 -0
  350. package/registry/ui/components/nordman-toggle/nordman-toggle.css +28 -0
  351. package/registry/ui/components/nordman-toggle/nordman-toggle.tsx +35 -0
  352. package/registry/ui/config/nm-ai.ts +59 -0
  353. package/registry/ui/config/nm-appearance.ts +275 -0
  354. package/registry/ui/config/nm-bar-overflow.ts +10 -0
  355. package/registry/ui/config/nm-button.ts +38 -0
  356. package/registry/ui/config/nm-chatbox-icons.ts +67 -0
  357. package/registry/ui/config/nm-chatbox.ts +42 -0
  358. package/registry/ui/config/nm-collection.ts +101 -0
  359. package/registry/ui/config/nm-composer.ts +39 -0
  360. package/registry/ui/config/nm-dropdown.ts +62 -0
  361. package/registry/ui/config/nm-field.ts +43 -0
  362. package/registry/ui/config/nm-icon-button.ts +35 -0
  363. package/registry/ui/config/nm-icons.ts +417 -0
  364. package/registry/ui/config/nm-list-item.ts +14 -0
  365. package/registry/ui/config/nm-message.ts +106 -0
  366. package/registry/ui/config/nm-modal.ts +76 -0
  367. package/registry/ui/config/nm-panel-bar.ts +11 -0
  368. package/registry/ui/config/nm-questionnaire.ts +53 -0
  369. package/registry/ui/config/nm-radius.ts +56 -0
  370. package/registry/ui/config/nm-rail-icons.ts +27 -0
  371. package/registry/ui/config/nm-segmented.ts +19 -0
  372. package/registry/ui/config/nm-side-panel.ts +16 -0
  373. package/registry/ui/config/nm-site-palette.ts +30 -0
  374. package/registry/ui/config/nm-small-icon-button.ts +17 -0
  375. package/registry/ui/config/nm-tabs.ts +9 -0
  376. package/registry/ui/config/nm-top-bar.ts +4 -0
  377. package/registry/ui/config/nordman-chrome.ts +14 -0
  378. package/registry/ui/config/nordman-login.ts +28 -0
  379. package/registry/ui/content/nm-modal.ts +5 -0
  380. package/registry/ui/content/nordman-login.ts +85 -0
  381. package/registry/ui/kit-logger.ts +1 -0
  382. package/registry/ui/lib/appearance/appearanceState.ts +240 -0
  383. package/registry/ui/lib/appearance/applyAppearance.ts +36 -0
  384. package/registry/ui/lib/appearance/cloudOrbAppearance.ts +36 -0
  385. package/registry/ui/lib/appearance/color.ts +96 -0
  386. package/registry/ui/lib/appearance/deriveTokens.ts +218 -0
  387. package/registry/ui/lib/appearance/index.ts +6 -0
  388. package/registry/ui/lib/appearance/markTokens.ts +49 -0
  389. package/registry/ui/lib/appearance/readLayoutMetrics.ts +28 -0
  390. package/registry/ui/lib/bar-overflow.ts +41 -0
  391. package/registry/ui/lib/logger.ts +53 -0
  392. package/registry/ui/lib/menu-motion.ts +187 -0
  393. package/registry/ui/lib/nm-class.ts +4 -0
  394. package/registry/ui/lib/nordman-ui-locale.ts +43 -0
  395. package/registry/ui/styles/interface-theme.css +196 -0
  396. package/registry/ui/styles/light-appearance.css +72 -0
  397. package/registry/ui/styles/tokens.css +424 -0
  398. package/registry/ui/styles/utilities.css +12 -0
@@ -0,0 +1,101 @@
1
+ /** How often the open library reloads its file list. A generated image can
2
+ * finish after the view has already opened, and the conversation stream is
3
+ * not mounted on this route. */
4
+ export const NM_COLLECTION_FILES_REFRESH_MS = 2000;
5
+
6
+ /** Scrollbar thumb visibility after scroll stops (matches rail, modal, dropdown). */
7
+ export const NM_COLLECTION_SCROLL_IDLE_MS = 750;
8
+
9
+ export const NM_COLLECTION_VIEWS = {
10
+ table: 'table',
11
+ grid: 'grid',
12
+ } as const;
13
+
14
+ export type NmCollectionView = (typeof NM_COLLECTION_VIEWS)[keyof typeof NM_COLLECTION_VIEWS];
15
+
16
+ export const NM_COLLECTION_ICON_SRC = {
17
+ spreadsheet: '/interface/collection/spreadsheet.svg',
18
+ grid: '/interface/collection/grid.svg',
19
+ library: '/interface/rail/library.svg',
20
+ image: '/interface/collection/image.svg',
21
+ video: '/interface/collection/video.svg',
22
+ audio: '/interface/collection/audio.svg',
23
+ search: '/interface/rail/search.svg',
24
+ download: '/interface/collection/download.svg',
25
+ expand: '/interface/collection/expand.svg',
26
+ } as const;
27
+
28
+ export const NM_COLLECTION_CLASSES = {
29
+ root: 'nm-collection',
30
+ bar: 'nm-collection__bar',
31
+ cluster: 'nm-collection__cluster',
32
+ title: 'nm-collection__title',
33
+ filter: 'nm-collection__filter',
34
+ kindFilter: 'nm-collection__kind-filter',
35
+ search: 'nm-collection__search',
36
+ switch: 'nm-collection__switch',
37
+ barEnd: 'nm-collection__bar-end',
38
+ stage: 'nm-collection__stage',
39
+ stageBar: 'nm-collection__stage-bar',
40
+ preview: 'nm-collection__preview',
41
+ body: 'nm-collection__body',
42
+ table: 'nm-collection__table',
43
+ row: 'nm-collection__row',
44
+ name: 'nm-collection__name',
45
+ meta: 'nm-collection__meta',
46
+ grid: 'nm-collection__grid',
47
+ tile: 'nm-collection__tile',
48
+ hit: 'nm-collection__hit',
49
+ actions: 'nm-collection__actions',
50
+ rowHit: 'nm-collection__row-hit',
51
+ facts: 'nm-collection__facts',
52
+ cell: 'nm-collection__cell',
53
+ head: 'nm-collection__head',
54
+ menu: 'nm-collection__menu',
55
+ media: 'nm-collection__media',
56
+ audio: 'nm-collection__audio',
57
+ } as const;
58
+
59
+ export const NM_COLLECTION_ACTIONS = {
60
+ open: 'open',
61
+ download: 'download',
62
+ delete: 'delete',
63
+ } as const;
64
+
65
+ export type NmCollectionItemActions = {
66
+ openLabel: string;
67
+ downloadLabel: string;
68
+ deleteLabel: string;
69
+ menuLabel: string;
70
+ onOpen: (id: string) => void;
71
+ onDownload: (id: string) => void;
72
+ onDelete: (id: string) => void;
73
+ };
74
+
75
+ export const NM_COLLECTION_MEDIA_KINDS = {
76
+ image: 'image',
77
+ video: 'video',
78
+ audio: 'audio',
79
+ } as const;
80
+
81
+ export type NmCollectionMediaKind =
82
+ (typeof NM_COLLECTION_MEDIA_KINDS)[keyof typeof NM_COLLECTION_MEDIA_KINDS];
83
+
84
+ export type NmCollectionMedia = {
85
+ kind: NmCollectionMediaKind;
86
+ src: string;
87
+ };
88
+
89
+ export type NmCollectionColumn = {
90
+ id: string;
91
+ label: string;
92
+ };
93
+
94
+ export type NmCollectionItem = {
95
+ id: string;
96
+ title: string;
97
+ meta?: string;
98
+ cells?: Readonly<Record<string, string>>;
99
+ kind?: NmCollectionMediaKind;
100
+ media?: NmCollectionMedia;
101
+ };
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Composer: the message box. Built from the Nordman AI design:
3
+ * one framed box, the text on top, actions in a row beneath. Add on the left, dictate and voice on the right.
4
+ */
5
+ export const NM_COMPOSER_COPY = {
6
+ placeholder: 'Ask Nordman',
7
+ attach: 'Add',
8
+ mic: 'Dictate',
9
+ voice: 'Voice mode',
10
+ send: 'Send',
11
+ stop: 'Stop',
12
+ remove: (name: string) => `Remove ${name}`,
13
+ queued: 'Queued',
14
+ editQueued: 'Edit queued message',
15
+ removeQueued: 'Remove queued message',
16
+ } as const;
17
+
18
+ export const NM_COMPOSER_CLASSES = {
19
+ root: 'nm-composer',
20
+ stack: 'nm-composer-stack',
21
+ main: 'nm-composer__main',
22
+ queue: 'nm-composer__queue',
23
+ queued: 'nm-composer__queued',
24
+ queuedText: 'nm-composer__queued-text',
25
+ queuedActions: 'nm-composer__queued-actions',
26
+ attachments: 'nm-composer__attachments',
27
+ field: 'nm-composer__field',
28
+ bar: 'nm-composer__bar',
29
+ start: 'nm-composer__start',
30
+ end: 'nm-composer__end',
31
+ button: 'nm-composer__button',
32
+ primary: 'nm-composer__button--primary',
33
+ stopMark: 'nm-composer__stop-mark',
34
+ } as const;
35
+
36
+ export type NmComposerAttachment = { id: string; name: string };
37
+
38
+ /** A message sent while the agent was still answering. It waits in line above the box. */
39
+ export type NmComposerQueued = { id: string; text: string };
@@ -0,0 +1,62 @@
1
+ export const NM_DROPDOWN_CLASSES = {
2
+ root: 'nm-dropdown',
3
+ trigger: 'nm-dropdown__trigger',
4
+ triggerIcon: 'nm-dropdown__trigger--icon',
5
+ triggerChip: 'nm-dropdown__trigger--chip',
6
+ triggerChipIconOnly: 'nm-dropdown__trigger--chip-icon-only',
7
+ triggerFilled: 'nm-dropdown__trigger--filled',
8
+ triggerOutline: 'nm-dropdown__trigger--outline',
9
+ lead: 'nm-dropdown__lead',
10
+ chevron: 'nm-dropdown__chevron',
11
+ panel: 'nm-dropdown__panel',
12
+ panelEnd: 'nm-dropdown__panel--end',
13
+ panelRow: 'nm-dropdown__panel--row',
14
+ panelPortal: 'nm-dropdown__panel--portal',
15
+ item: 'nm-dropdown__item',
16
+ itemBranch: 'nm-dropdown__item--branch',
17
+ itemDanger: 'nm-dropdown__item--danger',
18
+ itemDisabled: 'nm-dropdown__item--disabled',
19
+ itemQuiet: 'nm-dropdown__item--quiet',
20
+ mark: 'nm-dropdown__mark',
21
+ markBusy: 'nm-dropdown__mark--busy',
22
+ markLive: 'nm-dropdown__mark--live',
23
+ branch: 'nm-dropdown__branch',
24
+ subpanel: 'nm-dropdown__subpanel',
25
+ separator: 'nm-dropdown__separator',
26
+ icon: 'nm-dropdown__icon',
27
+ check: 'nm-dropdown__check',
28
+ label: 'nm-dropdown__label',
29
+ copy: 'nm-dropdown__copy',
30
+ detail: 'nm-dropdown__detail',
31
+ trailing: 'nm-dropdown__trailing',
32
+ shortcut: 'nm-dropdown__shortcut',
33
+ revealHover: 'nm-dropdown--hover',
34
+ } as const;
35
+
36
+ export const NM_DROPDOWN_TRIGGER = {
37
+ text: 'text',
38
+ icon: 'icon',
39
+ iconButton: 'icon-button',
40
+ } as const;
41
+
42
+ export const NM_DROPDOWN_TONE = {
43
+ filled: 'filled',
44
+ outline: 'outline',
45
+ } as const;
46
+
47
+ export const NM_DROPDOWN_ALIGN = {
48
+ start: 'start',
49
+ end: 'end',
50
+ /** Match the hosting `.nm-rail__row` pill width and left edge. */
51
+ row: 'row',
52
+ } as const;
53
+
54
+ /** Icon menus stay hidden until the host row or field is hovered or focused. */
55
+ export const NM_DROPDOWN_REVEAL = {
56
+ hover: 'hover',
57
+ } as const;
58
+
59
+ export const NM_DROPDOWN_GAP_PX = 8;
60
+
61
+ /** Matches `--nm-rail-scroll-idle` (`--reveal` × 3). */
62
+ export const NM_DROPDOWN_SCROLL_IDLE_MS = 750;
@@ -0,0 +1,43 @@
1
+ export const NM_FIELD_KINDS = {
2
+ text: 'text',
3
+ search: 'search',
4
+ email: 'email',
5
+ password: 'password',
6
+ select: 'select',
7
+ area: 'area',
8
+ } as const;
9
+
10
+ export const NM_FIELD_LAYOUT = {
11
+ inline: 'inline',
12
+ stack: 'stack',
13
+ } as const;
14
+
15
+ export type NmFieldKind = (typeof NM_FIELD_KINDS)[keyof typeof NM_FIELD_KINDS];
16
+
17
+ export type NmFieldLayout = (typeof NM_FIELD_LAYOUT)[keyof typeof NM_FIELD_LAYOUT];
18
+
19
+ export type NmFieldOption = {
20
+ id: string;
21
+ label: string;
22
+ /** Colours shown after the label, such as a theme's background, foreground and accent. */
23
+ swatches?: readonly string[];
24
+ };
25
+
26
+ export const NM_FIELD_CLASSES = {
27
+ root: 'nm-field',
28
+ icon: 'nm-field__icon',
29
+ control: 'nm-field__control',
30
+ trail: 'nm-field__trail',
31
+ meta: 'nm-field__meta',
32
+ step: 'nm-field__step',
33
+ stack: 'nm-field--stack',
34
+ caption: 'nm-field__caption',
35
+ row: 'nm-field__row',
36
+ box: 'nm-field__box',
37
+ mark: 'nm-field__mark',
38
+ add: 'nm-field__add',
39
+ menu: 'nm-field__menu',
40
+ search: 'nm-field__search',
41
+ searchInput: 'nm-field__search-input',
42
+ option: 'nm-field__option',
43
+ } as const;
@@ -0,0 +1,35 @@
1
+ export const NM_ICON_BUTTON_TONES = {
2
+ line: 'line',
3
+ raised: 'raised',
4
+ quiet: 'quiet',
5
+ solid: 'solid',
6
+ subtle: 'subtle',
7
+ panel: 'panel',
8
+ invert: 'invert',
9
+ } as const;
10
+
11
+ export type NmIconButtonTone = (typeof NM_ICON_BUTTON_TONES)[keyof typeof NM_ICON_BUTTON_TONES];
12
+
13
+ export const NM_ICON_BUTTON_CLASSES = {
14
+ root: 'nm-icon-button',
15
+ icon: 'nm-icon-button__icon',
16
+ active: 'nm-icon-button--active',
17
+ line: 'nm-icon-button',
18
+ raised: 'nm-icon-button--raised',
19
+ quiet: 'nm-icon-button--quiet',
20
+ solid: 'nm-icon-button--solid',
21
+ subtle: 'nm-icon-button--subtle',
22
+ panel: 'nm-icon-button--panel',
23
+ invert: 'nm-icon-button--invert',
24
+ } as const;
25
+
26
+ /** Shared geometry hook for send / stop / during-run primary composer actions. */
27
+ export const NM_CHATBOX_ACTION_CLASS = 'nm-chatbox__send';
28
+
29
+ export function nmIconButtonClassName(tone: NmIconButtonTone = NM_ICON_BUTTON_TONES.quiet): string {
30
+ return `${NM_ICON_BUTTON_CLASSES.root} ${NM_ICON_BUTTON_CLASSES[tone]}`;
31
+ }
32
+
33
+ export function nmChatboxActionButtonClassName(): string {
34
+ return `${NM_ICON_BUTTON_CLASSES.root} ${NM_ICON_BUTTON_CLASSES.invert} ${NM_CHATBOX_ACTION_CLASS}`;
35
+ }
@@ -0,0 +1,417 @@
1
+ export const NM_ICON_IDS = [
2
+ 'plus',
3
+ 'user',
4
+ 'paperclip',
5
+ 'settings',
6
+ 'globe',
7
+ 'spreadsheet',
8
+ 'pointer',
9
+ 'mouse-pointer',
10
+ 'mic',
11
+ 'mic-off',
12
+ 'audio-lines',
13
+ 'send',
14
+ 'chevron',
15
+ 'check',
16
+ 'circle-check',
17
+ 'code',
18
+ 'file-code',
19
+ 'console',
20
+ 'copy',
21
+ 'volume',
22
+ 'fork',
23
+ 'chat',
24
+ 'chat-dashed',
25
+ 'folder',
26
+ 'bot',
27
+ 'app',
28
+ 'layers',
29
+ 'users',
30
+ 'library',
31
+ 'panel',
32
+ 'ellipsis',
33
+ 'camera',
34
+ 'reload',
35
+ 'expand',
36
+ 'arrow-up-right',
37
+ 'minimize',
38
+ 'download',
39
+ 'publish',
40
+ 'share',
41
+ 'pen',
42
+ 'pin',
43
+ 'archive',
44
+ 'trash',
45
+ 'folder-in',
46
+ 'folder-out',
47
+ 'duplicate',
48
+ 'logout',
49
+ 'table-properties',
50
+ 'cable',
51
+ 'menu',
52
+ 'loader',
53
+ 'monitor',
54
+ 'server',
55
+ 'filter',
56
+ 'sliders',
57
+ 'upload',
58
+ 'image',
59
+ 'image-plus',
60
+ 'music',
61
+ 'headphones',
62
+ 'video',
63
+ 'search',
64
+ 'presentation',
65
+ 'terminal',
66
+ 'square-terminal',
67
+ 'x',
68
+ 'save',
69
+ 'lock',
70
+ 'mail',
71
+ 'calendar',
72
+ 'clock',
73
+ 'gauge',
74
+ 'minus',
75
+ 'play',
76
+ 'workflow',
77
+ 'hard-drive',
78
+ 'slack',
79
+ 'github',
80
+ 'building',
81
+ 'file-text',
82
+ 'wrench',
83
+ 'file',
84
+ 'brain',
85
+ 'sun',
86
+ 'moon',
87
+ 'google',
88
+ 'arrow-left',
89
+ 'arrow-right',
90
+ 'panel-left',
91
+ 'rows',
92
+ ] as const;
93
+
94
+ export type NmIconId = (typeof NM_ICON_IDS)[number];
95
+
96
+ export type NmIconSpec = {
97
+ viewBox: string;
98
+ path?: string | readonly string[];
99
+ fill?: string;
100
+ circles?: readonly { cx: number; cy: number; r: number }[];
101
+ };
102
+
103
+ export const NM_ICONS = {
104
+ plus: {
105
+ viewBox: '0 0 24 24',
106
+ path: 'M12 5v14M5 12h14',
107
+ },
108
+ user: {
109
+ viewBox: '0 0 24 24',
110
+ path: 'M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z',
111
+ },
112
+ paperclip: {
113
+ viewBox: '0 0 24 24',
114
+ path: 'M13.234 20.252 21 12.3M16 6l-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486',
115
+ },
116
+ settings: {
117
+ viewBox: '0 0 24 24',
118
+ path: 'M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z',
119
+ },
120
+ globe: {
121
+ viewBox: '0 0 24 24',
122
+ path: 'M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10zM2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z',
123
+ },
124
+ spreadsheet: {
125
+ viewBox: '0 0 24 24',
126
+ path: 'M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7zM14 2v6h6M8 13h2M14 13h2M8 17h2M14 17h2',
127
+ },
128
+ pointer: {
129
+ viewBox: '0 0 24 24',
130
+ path: 'm13 21-3-8-8-3 18-7z',
131
+ },
132
+ 'mouse-pointer': {
133
+ viewBox: '0 0 24 24',
134
+ path: 'M13 5v11l4-2 4 7M5 3l7 18 2-7 7-2z',
135
+ },
136
+ mic: {
137
+ viewBox: '0 0 24 24',
138
+ path: 'M12 19v3M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM19 10v2a7 7 0 0 1-14 0v-2',
139
+ },
140
+ 'mic-off': {
141
+ viewBox: '0 0 24 24',
142
+ path: 'm2 2 20 20M18.89 13.23A7.12 7.12 0 0 0 19 12v-2M5 10v2a7 7 0 0 0 12 5M15 9.34V5a3 3 0 0 0-5.68-1.33M9 9v3a3 3 0 0 0 5.12 2.12M12 19v3',
143
+ },
144
+ 'audio-lines': {
145
+ viewBox: '0 0 24 24',
146
+ path: 'M2 10v3M6 6v11M10 3v18M14 8v7M18 5v13M22 10v3',
147
+ },
148
+ send: {
149
+ viewBox: '0 0 24 24',
150
+ path: 'M12 19V5M5 12l7-7 7 7',
151
+ },
152
+ chevron: {
153
+ viewBox: '0 0 24 24',
154
+ path: 'm6 9 6 6 6-6',
155
+ },
156
+ check: {
157
+ viewBox: '0 0 24 24',
158
+ path: 'M20 6 9 17l-5-5',
159
+ },
160
+ 'circle-check': {
161
+ viewBox: '0 0 24 24',
162
+ path: 'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM9 12l2 2 4-4',
163
+ },
164
+ code: {
165
+ viewBox: '0 0 24 24',
166
+ path: 'm16 18 6-6-6-6M8 6l-6 6 6 6',
167
+ },
168
+ 'file-code': {
169
+ viewBox: '0 0 24 24',
170
+ path: 'M14 2H6v20h12V8zM14 2v6h6M10 13l-2 2 2 2M14 13l2 2-2 2',
171
+ },
172
+ console: {
173
+ viewBox: '0 0 24 24',
174
+ path: 'M14 18h6M8 18 2 12l6-6',
175
+ },
176
+ copy: {
177
+ viewBox: '0 0 24 24',
178
+ path: [
179
+ 'M10 8h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2z',
180
+ 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2',
181
+ ],
182
+ },
183
+ volume: {
184
+ viewBox: '0 0 24 24',
185
+ path: [
186
+ 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',
187
+ 'M16 9a5 5 0 0 1 0 6',
188
+ 'M19.364 18.364a9 9 0 0 0 0-12.728',
189
+ ],
190
+ },
191
+ fork: {
192
+ viewBox: '0 0 24 24',
193
+ path: ['M18 9v1a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V9', 'M12 12v3'],
194
+ circles: [
195
+ { cx: 6, cy: 6, r: 3 },
196
+ { cx: 18, cy: 6, r: 3 },
197
+ { cx: 12, cy: 18, r: 3 },
198
+ ],
199
+ },
200
+ chat: {
201
+ viewBox: '0 0 24 24',
202
+ path: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',
203
+ },
204
+ folder: {
205
+ viewBox: '0 0 24 24',
206
+ path: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',
207
+ },
208
+ bot: {
209
+ viewBox: '0 0 24 24',
210
+ path: 'M12 8V4H8M18 8a2 2 0 0 1 2 2v2H4v-2a2 2 0 0 1 2-2zM4 14v4a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-4M9 18h.01M15 18h.01',
211
+ },
212
+ app: {
213
+ viewBox: '0 0 24 24',
214
+ path: 'M5 5h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2zM2 12h20',
215
+ },
216
+ layers: {
217
+ viewBox: '0 0 24 24',
218
+ path: 'M12 2 2 7l10 5 10-5zM2 17l10 5 10-5M2 12l10 5 10-5',
219
+ },
220
+ users: {
221
+ viewBox: '0 0 24 24',
222
+ path: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M16 3.13a4 4 0 0 1 0 7.75M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8',
223
+ },
224
+ library: {
225
+ viewBox: '0 0 24 24',
226
+ path: 'M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20',
227
+ },
228
+ panel: {
229
+ viewBox: '0 0 24 24',
230
+ path: 'M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4M10 17l5-5-5-5M15 12H3',
231
+ },
232
+ ellipsis: {
233
+ viewBox: '0 0 24 24',
234
+ circles: [
235
+ { cx: 5, cy: 12, r: 1 },
236
+ { cx: 12, cy: 12, r: 1 },
237
+ { cx: 19, cy: 12, r: 1 },
238
+ ],
239
+ },
240
+ camera: {
241
+ viewBox: '0 0 24 24',
242
+ path: [
243
+ 'M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3z',
244
+ 'M12 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z',
245
+ ],
246
+ },
247
+ reload: {
248
+ viewBox: '0 0 24 24',
249
+ path: ['M21 12a9 9 0 1 1-6.219-8.56', 'M21 3v6h-6'],
250
+ },
251
+ expand: {
252
+ viewBox: '0 0 24 24',
253
+ path: ['M15 3h6v6', 'M9 21H3v-6', 'M21 3l-7 7', 'M3 21l7-7'],
254
+ },
255
+ 'arrow-up-right': {
256
+ viewBox: '0 0 24 24',
257
+ path: ['M7 7h10v10', 'M7 17 17 7'],
258
+ },
259
+ minimize: {
260
+ viewBox: '0 0 24 24',
261
+ path: ['M4 14h6v6', 'M20 10h-6V4', 'M14 10l7-7', 'M3 21l7-7'],
262
+ },
263
+ download: {
264
+ viewBox: '0 0 24 24',
265
+ path: ['M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4', 'M7 10l5 5 5-5', 'M12 15V3'],
266
+ },
267
+ publish: {
268
+ viewBox: '0 0 24 24',
269
+ path: ['M12 13v8', 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242', 'M8 17l4-4 4 4'],
270
+ },
271
+ share: {
272
+ viewBox: '0 0 24 24',
273
+ path: ['M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8', 'M16 6l-4-4-4 4', 'M12 2v13'],
274
+ },
275
+ pen: {
276
+ viewBox: '0 0 24 24',
277
+ path: 'M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z',
278
+ },
279
+ pin: {
280
+ viewBox: '0 0 24 24',
281
+ path: [
282
+ 'M12 17v5',
283
+ 'M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16h14v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z',
284
+ ],
285
+ },
286
+ archive: {
287
+ viewBox: '0 0 24 24',
288
+ path: ['M21 8v13H3V8', 'M1 3h22v5H1z', 'M10 12h4'],
289
+ },
290
+ trash: {
291
+ viewBox: '0 0 24 24',
292
+ path: [
293
+ 'M3 6h18',
294
+ 'M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6',
295
+ 'M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2',
296
+ ],
297
+ },
298
+ 'folder-in': {
299
+ viewBox: '0 0 24 24',
300
+ path: [
301
+ 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',
302
+ 'M12 11v6',
303
+ 'M9 14h6',
304
+ ],
305
+ },
306
+ 'folder-out': {
307
+ viewBox: '0 0 24 24',
308
+ path: [
309
+ 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',
310
+ 'M9 14h6',
311
+ ],
312
+ },
313
+ duplicate: {
314
+ viewBox: '0 0 24 24',
315
+ path: [
316
+ 'M16 8H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2z',
317
+ 'M18 4H8',
318
+ 'M11 14h.01',
319
+ 'M11 11v6',
320
+ ],
321
+ },
322
+ logout: {
323
+ viewBox: '0 0 24 24',
324
+ path: ['M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4', 'M16 17l5-5-5-5', 'M21 12H9'],
325
+ },
326
+ 'table-properties': {
327
+ viewBox: '0 0 24 24',
328
+ path: 'M15 3v18M5 3h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zM21 9H3M21 15H3',
329
+ },
330
+ cable: {
331
+ viewBox: '0 0 24 24',
332
+ path: 'M17 21v-2a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1',
333
+ },
334
+ menu: { viewBox: '0 0 24 24', path: 'M4 6h16M4 12h16M4 18h16' },
335
+ loader: { viewBox: '0 0 24 24', path: 'M21 12a9 9 0 1 1-6.219-8.56' },
336
+ monitor: {
337
+ viewBox: '0 0 24 24',
338
+ path: 'M12 17v4M8 21h8M4 3h16a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z',
339
+ },
340
+ server: {
341
+ viewBox: '0 0 24 24',
342
+ path: 'M4 4h16v6H4zM4 14h16v6H4zM7 7h.01M7 17h.01',
343
+ },
344
+ filter: { viewBox: '0 0 24 24', path: 'M3 6h18M7 12h10M10 18h4' },
345
+ sliders: { viewBox: '0 0 24 24', path: 'M20 7h-9M14 17H4M4 7h2M17 17h3' },
346
+ upload: {
347
+ viewBox: '0 0 24 24',
348
+ path: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M17 8l-5-5-5 5M12 3v12',
349
+ },
350
+ image: { viewBox: '0 0 24 24', path: 'M3 5h18v14H3zM3 16l5-5 4 4 3-3 6 6' },
351
+ 'image-plus': {
352
+ viewBox: '0 0 24 24',
353
+ path: 'M3 5h18v14H3zM3 16l5-5 4 4 3-3 6 6M19 8h-6M16 5v6',
354
+ },
355
+ music: { viewBox: '0 0 24 24', path: 'M9 18V5l12-2v13M9 18a3 3 0 1 1-6 0 3 3 0 0 1 6 0z' },
356
+ headphones: {
357
+ viewBox: '0 0 24 24',
358
+ path: 'M3 14v-1a9 9 0 0 1 18 0v1M3 14a2 2 0 0 1 2-2h2v6H5a2 2 0 0 1-2-2zM21 14a2 2 0 0 0-2-2h-2v6h2a2 2 0 0 0 2-2z',
359
+ },
360
+ video: { viewBox: '0 0 24 24', path: 'M4 6h12v12H4zM16 10l4-2v8l-4-2' },
361
+ search: { viewBox: '0 0 24 24', path: 'M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM21 21l-4.3-4.3' },
362
+ presentation: { viewBox: '0 0 24 24', path: 'M2 3h20M4 3v12h16V3M12 15v6M8 21h8' },
363
+ terminal: { viewBox: '0 0 24 24', path: 'M4 17l6-5-6-5M12 19h8' },
364
+ 'square-terminal': {
365
+ viewBox: '0 0 24 24',
366
+ path: ['M3 3h18v18H3z', 'M7 11l2-2-2-2', 'M11 13h4'],
367
+ },
368
+ x: { viewBox: '0 0 24 24', path: 'M18 6 6 18M6 6l12 12' },
369
+ save: {
370
+ viewBox: '0 0 24 24',
371
+ path: 'M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2zM17 21v-8H7v8M7 3v5h8',
372
+ },
373
+ lock: {
374
+ viewBox: '0 0 24 24',
375
+ path: 'M8 11V7a4 4 0 0 1 8 0v4M5 11h14v10H5z',
376
+ },
377
+ mail: { viewBox: '0 0 24 24', path: 'M4 6h16v12H4zM4 7l8 6 8-6' },
378
+ calendar: { viewBox: '0 0 24 24', path: 'M5 5h14v16H5zM5 10h14M8 3v4M16 3v4' },
379
+ minus: { viewBox: '0 0 24 24', path: 'M5 12h14' },
380
+ gauge: { viewBox: '0 0 24 24', path: ['M12 14l4-4', 'M3.34 19a10 10 0 1 1 17.32 0'] },
381
+ clock: { viewBox: '0 0 24 24', path: ['M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z', 'M12 7v5l3 2'] },
382
+ play: { viewBox: '0 0 24 24', path: 'M6 4l14 8-14 8z' },
383
+ workflow: {
384
+ viewBox: '0 0 24 24',
385
+ path: 'M7 5h4v4H7zM13 15h4v4h-4zM7 15h4v4H7zM11 7h2a4 4 0 0 1 4 4v2',
386
+ },
387
+ 'hard-drive': { viewBox: '0 0 24 24', path: 'M4 14h16v6H4zM6 6h12l2 8H4zM8 17h.01M12 17h.01' },
388
+ slack: {
389
+ viewBox: '0 0 24 24',
390
+ path: 'M8 4v6H4M8 14v6M16 4v6M16 14v6h4M4 8h6M14 8h6M4 16h6M14 16h2',
391
+ },
392
+ github: {
393
+ viewBox: '0 0 24 24',
394
+ path: 'M12 3a9 9 0 0 0-3 17.5c.5.1.6-.2.6-.5v-1.7c-2.5.5-3-1.2-3-1.2-.4-1-1-1.3-1-1.3-.8-.6.1-.6.1-.6.9.1 1.4.9 1.4.9.8 1.4 2.1 1 2.6.8.1-.6.3-1 .6-1.2-2-.2-4.1-1-4.1-4.4 0-1 .4-1.8 1-2.4-.1-.2-.4-1.2.1-2.5 0 0 .8-.3 2.7 1a9 9 0 0 1 5 0c1.9-1.3 2.7-1 2.7-1 .5 1.3.2 2.3.1 2.5.6.6 1 1.4 1 2.4 0 3.4-2.1 4.2-4.1 4.4.3.3.6.8.6 1.6v2.4c0 .3.1.6.6.5A9 9 0 0 0 12 3z',
395
+ },
396
+ building: { viewBox: '0 0 24 24', path: 'M4 22V4h10v18M14 10h6v12M8 8h2M8 12h2M8 16h2' },
397
+ 'file-text': {
398
+ viewBox: '0 0 24 24',
399
+ path: 'M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8zM14 3v5h5M8 13h8M8 17h6',
400
+ },
401
+ wrench: {
402
+ viewBox: '0 0 24 24',
403
+ path: 'M14.7 6.3a4 4 0 0 0-5.6 5.6L3 18l3 3 6.1-6.1a4 4 0 0 0 5.6-5.6L15 12l-3-3z',
404
+ },
405
+ file: {
406
+ viewBox: '0 0 24 24',
407
+ path: 'M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8zM14 3v5h5',
408
+ },
409
+ brain: {
410
+ viewBox: '0 0 24 24',
411
+ path: 'M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z',
412
+ },
413
+ google: {
414
+ viewBox: '0 0 20 21',
415
+ fill: 'M19.7499 10.2456C19.7499 9.51343 19.684 8.81284 19.5615 8.13916H10.085V11.9988L15.5427 12C15.3213 13.2842 14.6089 14.3789 13.5174 15.1087V17.6128H16.7661C18.6631 15.869 19.7499 13.2912 19.7499 10.2456ZM13.5185 15.1088C12.6142 15.7146 11.4496 16.069 10.0873 16.069C7.45553 16.069 5.22298 14.3076 4.42345 11.9333H1.07227V14.5158C2.73255 17.7883 6.14497 20.0339 10.0873 20.0339C12.812 20.0339 15.1011 19.1439 16.7673 17.6117L13.5185 15.1088ZM4.10832 10.0175C4.10832 9.35087 4.22018 8.70643 4.42389 8.10058V5.51813H1.07271C0.386221 6.87134 0 8.39883 0 10.0175C0 11.6362 0.387398 13.1637 1.07271 14.5169L4.42389 11.9345C4.22018 11.3286 4.10832 10.6842 4.10832 10.0175ZM10.0873 3.96491C11.5745 3.96491 12.9062 4.47368 13.9577 5.46783L16.8367 2.61052C15.0881 0.992982 12.8085 0 10.0873 0C6.14614 0 2.73255 2.24561 1.07227 5.51812L4.42345 8.10058C5.22298 5.72631 7.45553 3.96491 10.0873 3.96491Z',
416
+ },
417
+ } as const satisfies Partial<Record<NmIconId, NmIconSpec>>;