@nadicodeai/ui 12.1.102 → 12.1.103

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 (562) hide show
  1. package/dist/components/accordion.d.ts +38 -12
  2. package/dist/components/accordion.d.ts.map +1 -1
  3. package/dist/components/accordion.js +36 -15
  4. package/dist/components/account-menu.js +2 -2
  5. package/dist/components/action-menu.d.ts +20 -19
  6. package/dist/components/action-menu.d.ts.map +1 -1
  7. package/dist/components/action-menu.js +22 -15
  8. package/dist/components/action-status.d.ts +14 -10
  9. package/dist/components/action-status.d.ts.map +1 -1
  10. package/dist/components/action-status.js +14 -10
  11. package/dist/components/activity-calendar.d.ts +3 -1
  12. package/dist/components/activity-calendar.d.ts.map +1 -1
  13. package/dist/components/activity-calendar.js +16 -2
  14. package/dist/components/activity-feed.d.ts +2 -2
  15. package/dist/components/activity-feed.d.ts.map +1 -1
  16. package/dist/components/activity-feed.js +14 -5
  17. package/dist/components/agent-card.d.ts +11 -5
  18. package/dist/components/agent-card.d.ts.map +1 -1
  19. package/dist/components/agent-card.js +13 -7
  20. package/dist/components/agent-list-row.js +1 -1
  21. package/dist/components/agent-orb-appearance.d.ts +7 -1
  22. package/dist/components/agent-orb-appearance.d.ts.map +1 -1
  23. package/dist/components/agent-orb-appearance.js +26 -0
  24. package/dist/components/agent-profile.d.ts +8 -7
  25. package/dist/components/agent-profile.d.ts.map +1 -1
  26. package/dist/components/agent-profile.js +6 -6
  27. package/dist/components/alert-dialog.d.ts +25 -16
  28. package/dist/components/alert-dialog.d.ts.map +1 -1
  29. package/dist/components/alert-dialog.js +30 -18
  30. package/dist/components/alert.d.ts +1 -1
  31. package/dist/components/avatar.d.ts +83 -17
  32. package/dist/components/avatar.d.ts.map +1 -1
  33. package/dist/components/avatar.js +89 -23
  34. package/dist/components/badge.d.ts +59 -8
  35. package/dist/components/badge.d.ts.map +1 -1
  36. package/dist/components/badge.js +57 -14
  37. package/dist/components/breadcrumb.d.ts +18 -7
  38. package/dist/components/breadcrumb.d.ts.map +1 -1
  39. package/dist/components/breadcrumb.js +37 -13
  40. package/dist/components/button-group.d.ts +12 -15
  41. package/dist/components/button-group.d.ts.map +1 -1
  42. package/dist/components/button-group.js +13 -17
  43. package/dist/components/button.d.ts +126 -23
  44. package/dist/components/button.d.ts.map +1 -1
  45. package/dist/components/button.js +164 -39
  46. package/dist/components/calendar.d.ts +26 -15
  47. package/dist/components/calendar.d.ts.map +1 -1
  48. package/dist/components/calendar.js +60 -46
  49. package/dist/components/card-row.d.ts +13 -5
  50. package/dist/components/card-row.d.ts.map +1 -1
  51. package/dist/components/card-row.js +24 -10
  52. package/dist/components/card.d.ts +6 -12
  53. package/dist/components/card.d.ts.map +1 -1
  54. package/dist/components/card.js +11 -16
  55. package/dist/components/carousel.d.ts +3 -3
  56. package/dist/components/carousel.d.ts.map +1 -1
  57. package/dist/components/carousel.js +7 -7
  58. package/dist/components/catalog-drawer.d.ts +7 -7
  59. package/dist/components/catalog-drawer.d.ts.map +1 -1
  60. package/dist/components/catalog-drawer.js +6 -6
  61. package/dist/components/chart-area-stacked.d.ts +1 -1
  62. package/dist/components/chart-area-stacked.d.ts.map +1 -1
  63. package/dist/components/chart-area-stacked.js +4 -4
  64. package/dist/components/chart-axis.d.ts +14 -1
  65. package/dist/components/chart-axis.d.ts.map +1 -1
  66. package/dist/components/chart-axis.js +11 -1
  67. package/dist/components/chart-bar-horizontal.d.ts +2 -2
  68. package/dist/components/chart-bar-horizontal.d.ts.map +1 -1
  69. package/dist/components/chart-bar-horizontal.js +14 -5
  70. package/dist/components/chart-bar-multiple.d.ts +1 -1
  71. package/dist/components/chart-bar-multiple.d.ts.map +1 -1
  72. package/dist/components/chart-bar-multiple.js +3 -3
  73. package/dist/components/chart-bar-stacked.d.ts +1 -1
  74. package/dist/components/chart-bar-stacked.d.ts.map +1 -1
  75. package/dist/components/chart-bar-stacked.js +3 -3
  76. package/dist/components/chart-card.d.ts +17 -6
  77. package/dist/components/chart-card.d.ts.map +1 -1
  78. package/dist/components/chart-card.js +11 -4
  79. package/dist/components/chart-date-range-control.d.ts +18 -9
  80. package/dist/components/chart-date-range-control.d.ts.map +1 -1
  81. package/dist/components/chart-date-range-control.js +43 -47
  82. package/dist/components/chart-sparkline.d.ts +4 -3
  83. package/dist/components/chart-sparkline.d.ts.map +1 -1
  84. package/dist/components/chart-sparkline.js +6 -5
  85. package/dist/components/check-counts.d.ts +44 -0
  86. package/dist/components/check-counts.d.ts.map +1 -0
  87. package/dist/components/check-counts.js +51 -0
  88. package/dist/components/checkbox.d.ts +39 -11
  89. package/dist/components/checkbox.d.ts.map +1 -1
  90. package/dist/components/checkbox.js +38 -11
  91. package/dist/components/choicebox.d.ts +96 -0
  92. package/dist/components/choicebox.d.ts.map +1 -0
  93. package/dist/components/choicebox.js +113 -0
  94. package/dist/components/clearable-input.d.ts +57 -0
  95. package/dist/components/clearable-input.d.ts.map +1 -0
  96. package/dist/components/clearable-input.js +58 -0
  97. package/dist/components/code-block.d.ts +77 -17
  98. package/dist/components/code-block.d.ts.map +1 -1
  99. package/dist/components/code-block.js +85 -15
  100. package/dist/components/collapsible.d.ts +27 -10
  101. package/dist/components/collapsible.d.ts.map +1 -1
  102. package/dist/components/collapsible.js +24 -9
  103. package/dist/components/collection-filters.d.ts +3 -1
  104. package/dist/components/collection-filters.d.ts.map +1 -1
  105. package/dist/components/collection-filters.js +7 -9
  106. package/dist/components/collection-page.d.ts +31 -10
  107. package/dist/components/collection-page.d.ts.map +1 -1
  108. package/dist/components/collection-page.js +14 -13
  109. package/dist/components/collection-search.d.ts +32 -10
  110. package/dist/components/collection-search.d.ts.map +1 -1
  111. package/dist/components/collection-search.js +24 -13
  112. package/dist/components/collection-sort.d.ts.map +1 -1
  113. package/dist/components/collection-sort.js +2 -2
  114. package/dist/components/collection-toolbar.d.ts +5 -2
  115. package/dist/components/collection-toolbar.d.ts.map +1 -1
  116. package/dist/components/collection-toolbar.js +7 -4
  117. package/dist/components/combobox.d.ts +97 -22
  118. package/dist/components/combobox.d.ts.map +1 -1
  119. package/dist/components/combobox.js +80 -28
  120. package/dist/components/command.d.ts +34 -21
  121. package/dist/components/command.d.ts.map +1 -1
  122. package/dist/components/command.js +33 -25
  123. package/dist/components/confirm-dialog.d.ts +23 -6
  124. package/dist/components/confirm-dialog.d.ts.map +1 -1
  125. package/dist/components/confirm-dialog.js +32 -13
  126. package/dist/components/context-menu.d.ts +14 -10
  127. package/dist/components/context-menu.d.ts.map +1 -1
  128. package/dist/components/context-menu.js +17 -12
  129. package/dist/components/copy-button.d.ts +5 -2
  130. package/dist/components/copy-button.d.ts.map +1 -1
  131. package/dist/components/copy-button.js +16 -8
  132. package/dist/components/data-table.d.ts +120 -54
  133. package/dist/components/data-table.d.ts.map +1 -1
  134. package/dist/components/data-table.js +163 -92
  135. package/dist/components/desktop-shell.d.ts +4 -2
  136. package/dist/components/desktop-shell.d.ts.map +1 -1
  137. package/dist/components/desktop-shell.js +3 -3
  138. package/dist/components/dialog.d.ts +63 -24
  139. package/dist/components/dialog.d.ts.map +1 -1
  140. package/dist/components/dialog.js +52 -31
  141. package/dist/components/disclosure-row.d.ts +1 -2
  142. package/dist/components/disclosure-row.d.ts.map +1 -1
  143. package/dist/components/disclosure-row.js +1 -2
  144. package/dist/components/disclosure.d.ts +1 -1
  145. package/dist/components/disclosure.js +1 -1
  146. package/dist/components/drawer.d.ts +33 -12
  147. package/dist/components/drawer.d.ts.map +1 -1
  148. package/dist/components/drawer.js +47 -35
  149. package/dist/components/dropdown-menu.d.ts +59 -14
  150. package/dist/components/dropdown-menu.d.ts.map +1 -1
  151. package/dist/components/dropdown-menu.js +58 -26
  152. package/dist/components/empty-state.d.ts +35 -12
  153. package/dist/components/empty-state.d.ts.map +1 -1
  154. package/dist/components/empty-state.js +35 -17
  155. package/dist/components/entry-scene.d.ts +4 -4
  156. package/dist/components/entry-scene.d.ts.map +1 -1
  157. package/dist/components/entry-scene.js +2 -2
  158. package/dist/components/field.d.ts +44 -14
  159. package/dist/components/field.d.ts.map +1 -1
  160. package/dist/components/field.js +49 -20
  161. package/dist/components/file-diff.d.ts.map +1 -1
  162. package/dist/components/file-diff.js +3 -4
  163. package/dist/components/form-dialog.d.ts +7 -7
  164. package/dist/components/form-dialog.d.ts.map +1 -1
  165. package/dist/components/form-dialog.js +13 -11
  166. package/dist/components/form-drawer.d.ts +10 -7
  167. package/dist/components/form-drawer.d.ts.map +1 -1
  168. package/dist/components/form-drawer.js +11 -10
  169. package/dist/components/gauge.d.ts +64 -0
  170. package/dist/components/gauge.d.ts.map +1 -0
  171. package/dist/components/gauge.js +73 -0
  172. package/dist/components/hover-card.d.ts +72 -14
  173. package/dist/components/hover-card.d.ts.map +1 -1
  174. package/dist/components/hover-card.js +51 -17
  175. package/dist/components/identity-mark.d.ts +8 -1
  176. package/dist/components/identity-mark.d.ts.map +1 -1
  177. package/dist/components/identity-mark.js +31 -5
  178. package/dist/components/input-group.d.ts +44 -21
  179. package/dist/components/input-group.d.ts.map +1 -1
  180. package/dist/components/input-group.js +74 -27
  181. package/dist/components/input.d.ts +64 -12
  182. package/dist/components/input.d.ts.map +1 -1
  183. package/dist/components/input.js +51 -15
  184. package/dist/components/item.d.ts +37 -15
  185. package/dist/components/item.d.ts.map +1 -1
  186. package/dist/components/item.js +41 -22
  187. package/dist/components/kbd.d.ts +49 -13
  188. package/dist/components/kbd.d.ts.map +1 -1
  189. package/dist/components/kbd.js +115 -16
  190. package/dist/components/kpi-card.d.ts +12 -4
  191. package/dist/components/kpi-card.d.ts.map +1 -1
  192. package/dist/components/kpi-card.js +13 -4
  193. package/dist/components/label.d.ts +17 -10
  194. package/dist/components/label.d.ts.map +1 -1
  195. package/dist/components/label.js +18 -11
  196. package/dist/components/library-shelf.d.ts +6 -6
  197. package/dist/components/library-shelf.d.ts.map +1 -1
  198. package/dist/components/library-shelf.js +5 -5
  199. package/dist/components/load-more-button.d.ts +35 -0
  200. package/dist/components/load-more-button.d.ts.map +1 -0
  201. package/dist/components/load-more-button.js +26 -0
  202. package/dist/components/message-notice.d.ts +8 -13
  203. package/dist/components/message-notice.d.ts.map +1 -1
  204. package/dist/components/message-notice.js +25 -22
  205. package/dist/components/middle-truncate.d.ts +33 -0
  206. package/dist/components/middle-truncate.d.ts.map +1 -0
  207. package/dist/components/middle-truncate.js +72 -0
  208. package/dist/components/multi-select.d.ts +94 -0
  209. package/dist/components/multi-select.d.ts.map +1 -0
  210. package/dist/components/multi-select.js +132 -0
  211. package/dist/components/native-select.d.ts +37 -13
  212. package/dist/components/native-select.d.ts.map +1 -1
  213. package/dist/components/native-select.js +27 -11
  214. package/dist/components/notice-banner.d.ts +17 -10
  215. package/dist/components/notice-banner.d.ts.map +1 -1
  216. package/dist/components/notice-banner.js +12 -11
  217. package/dist/components/numbered-steps.d.ts +10 -4
  218. package/dist/components/numbered-steps.d.ts.map +1 -1
  219. package/dist/components/numbered-steps.js +9 -7
  220. package/dist/components/object-page.d.ts +40 -14
  221. package/dist/components/object-page.d.ts.map +1 -1
  222. package/dist/components/object-page.js +12 -10
  223. package/dist/components/object-workspace.d.ts +29 -10
  224. package/dist/components/object-workspace.d.ts.map +1 -1
  225. package/dist/components/object-workspace.js +18 -8
  226. package/dist/components/overview-page.d.ts +2 -2
  227. package/dist/components/overview-page.d.ts.map +1 -1
  228. package/dist/components/overview-page.js +8 -7
  229. package/dist/components/page-actions.d.ts +28 -8
  230. package/dist/components/page-actions.d.ts.map +1 -1
  231. package/dist/components/page-actions.js +22 -25
  232. package/dist/components/page-header.d.ts +11 -4
  233. package/dist/components/page-header.d.ts.map +1 -1
  234. package/dist/components/page-header.js +10 -5
  235. package/dist/components/pending-label.d.ts +6 -5
  236. package/dist/components/pending-label.d.ts.map +1 -1
  237. package/dist/components/pending-label.js +14 -6
  238. package/dist/components/picture-label.d.ts +2 -2
  239. package/dist/components/picture-label.d.ts.map +1 -1
  240. package/dist/components/picture-label.js +3 -3
  241. package/dist/components/portal-sidebar-frame.d.ts +9 -21
  242. package/dist/components/portal-sidebar-frame.d.ts.map +1 -1
  243. package/dist/components/portal-sidebar-frame.js +13 -27
  244. package/dist/components/progress-checklist.d.ts +46 -0
  245. package/dist/components/progress-checklist.d.ts.map +1 -0
  246. package/dist/components/progress-checklist.js +46 -0
  247. package/dist/components/progress.d.ts +48 -8
  248. package/dist/components/progress.d.ts.map +1 -1
  249. package/dist/components/progress.js +92 -16
  250. package/dist/components/prose.d.ts +19 -0
  251. package/dist/components/prose.d.ts.map +1 -0
  252. package/dist/components/prose.js +29 -0
  253. package/dist/components/radio-group.d.ts +51 -12
  254. package/dist/components/radio-group.d.ts.map +1 -1
  255. package/dist/components/radio-group.js +42 -12
  256. package/dist/components/reading-column.js +1 -1
  257. package/dist/components/record-identity.d.ts +6 -5
  258. package/dist/components/record-identity.d.ts.map +1 -1
  259. package/dist/components/record-identity.js +12 -3
  260. package/dist/components/record-list.d.ts +117 -27
  261. package/dist/components/record-list.d.ts.map +1 -1
  262. package/dist/components/record-list.js +185 -55
  263. package/dist/components/record-time.d.ts +20 -7
  264. package/dist/components/record-time.d.ts.map +1 -1
  265. package/dist/components/record-time.js +38 -19
  266. package/dist/components/resizable.d.ts +7 -5
  267. package/dist/components/resizable.d.ts.map +1 -1
  268. package/dist/components/resizable.js +6 -6
  269. package/dist/components/scope-switcher.d.ts +2 -0
  270. package/dist/components/scope-switcher.d.ts.map +1 -1
  271. package/dist/components/scope-switcher.js +2 -2
  272. package/dist/components/scroll-area.d.ts +47 -11
  273. package/dist/components/scroll-area.d.ts.map +1 -1
  274. package/dist/components/scroll-area.js +72 -14
  275. package/dist/components/segmented-control.d.ts +82 -0
  276. package/dist/components/segmented-control.d.ts.map +1 -0
  277. package/dist/components/segmented-control.js +90 -0
  278. package/dist/components/select.d.ts +55 -15
  279. package/dist/components/select.d.ts.map +1 -1
  280. package/dist/components/select.js +62 -19
  281. package/dist/components/separator.d.ts +12 -5
  282. package/dist/components/separator.d.ts.map +1 -1
  283. package/dist/components/separator.js +11 -6
  284. package/dist/components/settings-facts.d.ts +34 -14
  285. package/dist/components/settings-facts.d.ts.map +1 -1
  286. package/dist/components/settings-facts.js +21 -12
  287. package/dist/components/settings-page.d.ts +4 -4
  288. package/dist/components/settings-page.js +5 -5
  289. package/dist/components/settings-section.d.ts +160 -34
  290. package/dist/components/settings-section.d.ts.map +1 -1
  291. package/dist/components/settings-section.js +92 -39
  292. package/dist/components/sheet.d.ts +47 -16
  293. package/dist/components/sheet.d.ts.map +1 -1
  294. package/dist/components/sheet.js +40 -19
  295. package/dist/components/sidebar-sections.d.ts +16 -12
  296. package/dist/components/sidebar-sections.d.ts.map +1 -1
  297. package/dist/components/sidebar-sections.js +30 -15
  298. package/dist/components/sidebar.d.ts +117 -21
  299. package/dist/components/sidebar.d.ts.map +1 -1
  300. package/dist/components/sidebar.js +180 -55
  301. package/dist/components/skeleton.d.ts +54 -8
  302. package/dist/components/skeleton.d.ts.map +1 -1
  303. package/dist/components/skeleton.js +44 -9
  304. package/dist/components/slider.d.ts +53 -11
  305. package/dist/components/slider.d.ts.map +1 -1
  306. package/dist/components/slider.js +71 -17
  307. package/dist/components/snippet.d.ts +57 -0
  308. package/dist/components/snippet.d.ts.map +1 -0
  309. package/dist/components/snippet.js +60 -0
  310. package/dist/components/sonner.d.ts +13 -14
  311. package/dist/components/sonner.d.ts.map +1 -1
  312. package/dist/components/sonner.js +25 -22
  313. package/dist/components/status-badge.d.ts +37 -11
  314. package/dist/components/status-badge.d.ts.map +1 -1
  315. package/dist/components/status-badge.js +63 -15
  316. package/dist/components/status-dot.d.ts +42 -11
  317. package/dist/components/status-dot.d.ts.map +1 -1
  318. package/dist/components/status-dot.js +40 -11
  319. package/dist/components/switch.d.ts +43 -12
  320. package/dist/components/switch.d.ts.map +1 -1
  321. package/dist/components/switch.js +42 -12
  322. package/dist/components/table-card.d.ts +21 -12
  323. package/dist/components/table-card.d.ts.map +1 -1
  324. package/dist/components/table-card.js +17 -9
  325. package/dist/components/table-layouts.d.ts +40 -8
  326. package/dist/components/table-layouts.d.ts.map +1 -1
  327. package/dist/components/table-layouts.js +52 -8
  328. package/dist/components/table-value.d.ts +4 -3
  329. package/dist/components/table-value.d.ts.map +1 -1
  330. package/dist/components/table-value.js +6 -5
  331. package/dist/components/table.d.ts +62 -25
  332. package/dist/components/table.d.ts.map +1 -1
  333. package/dist/components/table.js +62 -26
  334. package/dist/components/tabs.d.ts +86 -17
  335. package/dist/components/tabs.d.ts.map +1 -1
  336. package/dist/components/tabs.js +93 -22
  337. package/dist/components/text-link.d.ts +4 -1
  338. package/dist/components/text-link.d.ts.map +1 -1
  339. package/dist/components/text-link.js +4 -1
  340. package/dist/components/text-with-copy-button.d.ts +30 -0
  341. package/dist/components/text-with-copy-button.d.ts.map +1 -0
  342. package/dist/components/text-with-copy-button.js +32 -0
  343. package/dist/components/textarea.d.ts +40 -10
  344. package/dist/components/textarea.d.ts.map +1 -1
  345. package/dist/components/textarea.js +50 -11
  346. package/dist/components/theme-mode-switcher.d.ts +18 -1
  347. package/dist/components/theme-mode-switcher.d.ts.map +1 -1
  348. package/dist/components/theme-mode-switcher.js +20 -2
  349. package/dist/components/toggle-group.d.ts +28 -8
  350. package/dist/components/toggle-group.d.ts.map +1 -1
  351. package/dist/components/toggle-group.js +12 -6
  352. package/dist/components/toggle.d.ts +6 -3
  353. package/dist/components/toggle.d.ts.map +1 -1
  354. package/dist/components/toggle.js +10 -7
  355. package/dist/components/tooltip.d.ts +43 -12
  356. package/dist/components/tooltip.d.ts.map +1 -1
  357. package/dist/components/tooltip.js +45 -16
  358. package/dist/components/trend-badge.js +1 -1
  359. package/dist/components/update-card.js +1 -1
  360. package/dist/eslint/index.js +82 -0
  361. package/dist/eslint/rules/badge-is-static-label.js +93 -0
  362. package/dist/eslint/rules/button-icon-slot.js +102 -0
  363. package/dist/eslint/rules/button-link-for-navigation.js +146 -0
  364. package/dist/eslint/rules/button-no-aria-label-with-text.js +75 -0
  365. package/dist/eslint/rules/button-type-roles-only-in-buttons.js +83 -0
  366. package/dist/eslint/rules/choice-control-has-a-name.js +98 -0
  367. package/dist/eslint/rules/choice-group-in-fieldset.js +86 -0
  368. package/dist/eslint/rules/command-shortcut-single-owner.js +118 -0
  369. package/dist/eslint/rules/confirm-dialog-words.js +63 -0
  370. package/dist/eslint/rules/data-table-one-unsized-column.js +96 -0
  371. package/dist/eslint/rules/destructive-action-placement.js +69 -0
  372. package/dist/eslint/rules/disabled-choice-says-why.js +71 -0
  373. package/dist/eslint/rules/ellipsis-opens-a-dialog.js +110 -0
  374. package/dist/eslint/rules/input-group-owners.js +155 -0
  375. package/dist/eslint/rules/kbd-children-no-modifier-text.js +128 -0
  376. package/dist/eslint/rules/literal-text.js +41 -0
  377. package/dist/eslint/rules/middle-truncate-placement.js +69 -0
  378. package/dist/eslint/rules/no-bare-button-label.js +55 -0
  379. package/dist/eslint/rules/no-control-in-read-only-surface.js +106 -0
  380. package/dist/eslint/rules/no-hand-built-busy.js +104 -0
  381. package/dist/eslint/rules/no-hand-built-theme-picker.js +144 -0
  382. package/dist/eslint/rules/no-hand-built-tile.js +41 -0
  383. package/dist/eslint/rules/no-hand-formatted-date.js +87 -0
  384. package/dist/eslint/rules/no-hand-stacked-avatars.js +67 -0
  385. package/dist/eslint/rules/no-nested-collapse.js +60 -0
  386. package/dist/eslint/rules/no-search-in-form.js +47 -0
  387. package/dist/eslint/rules/no-shadcn-appearance-override.js +2 -16
  388. package/dist/eslint/rules/no-shell-prompt-in-snippet.js +74 -0
  389. package/dist/eslint/rules/no-stock-error-words.js +56 -0
  390. package/dist/eslint/rules/no-tooltip-around-labelled-field.js +72 -0
  391. package/dist/eslint/rules/no-weight-class-on-strong-in-type-role.js +57 -0
  392. package/dist/eslint/rules/one-submenu-level.js +43 -0
  393. package/dist/eslint/rules/one-toast-per-flow.js +91 -0
  394. package/dist/eslint/rules/option-count.js +167 -0
  395. package/dist/eslint/rules/page-command-link-not-render.js +43 -0
  396. package/dist/eslint/rules/progress-needs-name.js +57 -0
  397. package/dist/eslint/rules/settings-limit-in-footer.js +94 -0
  398. package/dist/eslint/rules/skeleton-in-region.js +80 -0
  399. package/dist/eslint/rules/sortable-heading-uses-sort.js +79 -0
  400. package/dist/eslint/rules/table-cell-inset-owner.js +107 -0
  401. package/dist/eslint/rules/tabs-selection-is-controlled.js +47 -0
  402. package/dist/eslint/rules/tooltip-only-arrow.js +38 -0
  403. package/dist/eslint/rules/tooltip-trigger-accessible-name.js +114 -0
  404. package/dist/eslint/strict-design-system.js +21 -7
  405. package/dist/index.d.ts +13 -13
  406. package/dist/index.d.ts.map +1 -1
  407. package/dist/index.js +12 -13
  408. package/dist/internal/assistant-ui/attachment.d.ts.map +1 -1
  409. package/dist/internal/assistant-ui/attachment.js +2 -2
  410. package/dist/internal/assistant-ui/reasoning.d.ts +1 -1
  411. package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -1
  412. package/dist/internal/assistant-ui/tool-fallback.js +1 -1
  413. package/dist/internal/assistant-ui/tool-group.d.ts +1 -1
  414. package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -1
  415. package/dist/internal/assistant-ui/tooltip-icon-button.d.ts +2 -3
  416. package/dist/internal/assistant-ui/tooltip-icon-button.d.ts.map +1 -1
  417. package/dist/internal/assistant-ui/tooltip-icon-button.js +1 -1
  418. package/dist/internal/catalog-list.js +2 -2
  419. package/dist/internal/collection-note.d.ts +23 -0
  420. package/dist/internal/collection-note.d.ts.map +1 -0
  421. package/dist/internal/collection-note.js +17 -0
  422. package/dist/internal/collection-rail.d.ts +57 -0
  423. package/dist/internal/collection-rail.d.ts.map +1 -0
  424. package/dist/internal/collection-rail.js +33 -0
  425. package/dist/internal/company-logo.d.ts +18 -0
  426. package/dist/internal/company-logo.d.ts.map +1 -0
  427. package/dist/internal/company-logo.js +14 -0
  428. package/dist/internal/control-name.d.ts +12 -0
  429. package/dist/internal/control-name.d.ts.map +1 -0
  430. package/dist/internal/control-name.js +1 -0
  431. package/dist/internal/diff-line.d.ts +9 -0
  432. package/dist/internal/diff-line.d.ts.map +1 -0
  433. package/dist/internal/diff-line.js +8 -0
  434. package/dist/internal/empty.d.ts +8 -4
  435. package/dist/internal/empty.d.ts.map +1 -1
  436. package/dist/internal/empty.js +14 -8
  437. package/dist/internal/field-frame.d.ts +33 -0
  438. package/dist/internal/field-frame.d.ts.map +1 -0
  439. package/dist/internal/field-frame.js +20 -0
  440. package/dist/internal/final-focus.d.ts +8 -0
  441. package/dist/internal/final-focus.d.ts.map +1 -0
  442. package/dist/internal/final-focus.js +10 -0
  443. package/dist/internal/footer-strip.d.ts.map +1 -1
  444. package/dist/internal/footer-strip.js +3 -1
  445. package/dist/internal/form-submit.d.ts +9 -5
  446. package/dist/internal/form-submit.d.ts.map +1 -1
  447. package/dist/internal/form-submit.js +31 -2
  448. package/dist/internal/input-box.d.ts +26 -0
  449. package/dist/internal/input-box.d.ts.map +1 -0
  450. package/dist/internal/input-box.js +59 -0
  451. package/dist/internal/menu-surface.d.ts +10 -3
  452. package/dist/internal/menu-surface.d.ts.map +1 -1
  453. package/dist/internal/menu-surface.js +10 -3
  454. package/dist/internal/notice.d.ts +25 -0
  455. package/dist/internal/notice.d.ts.map +1 -0
  456. package/dist/internal/notice.js +33 -0
  457. package/dist/internal/overlay-stem.d.ts +5 -0
  458. package/dist/internal/overlay-stem.d.ts.map +1 -0
  459. package/dist/internal/overlay-stem.js +7 -0
  460. package/dist/internal/phone-sheet.d.ts +4 -0
  461. package/dist/internal/phone-sheet.d.ts.map +1 -0
  462. package/dist/internal/phone-sheet.js +2 -0
  463. package/dist/internal/present-content.d.ts +3 -0
  464. package/dist/internal/present-content.d.ts.map +1 -0
  465. package/dist/internal/present-content.js +1 -0
  466. package/dist/internal/record-menu-items.d.ts +4 -3
  467. package/dist/internal/record-menu-items.d.ts.map +1 -1
  468. package/dist/internal/record-menu-items.js +21 -6
  469. package/dist/internal/settings-save.d.ts +9 -2
  470. package/dist/internal/settings-save.d.ts.map +1 -1
  471. package/dist/internal/settings-save.js +9 -6
  472. package/dist/internal/table-compact-line.d.ts +38 -0
  473. package/dist/internal/table-compact-line.d.ts.map +1 -0
  474. package/dist/internal/table-compact-line.js +35 -0
  475. package/dist/internal/title-when-cut.d.ts +8 -0
  476. package/dist/internal/title-when-cut.d.ts.map +1 -0
  477. package/dist/internal/title-when-cut.js +22 -0
  478. package/dist/internal/unsaved-guard.d.ts +18 -0
  479. package/dist/internal/unsaved-guard.d.ts.map +1 -0
  480. package/dist/internal/unsaved-guard.js +31 -0
  481. package/dist/lib/merge-tokens.generated.js +2 -2
  482. package/dist/showcase/foundations.d.ts.map +1 -1
  483. package/dist/showcase/foundations.js +10 -2
  484. package/dist/showcase/specimens/actions.d.ts +2 -0
  485. package/dist/showcase/specimens/actions.d.ts.map +1 -1
  486. package/dist/showcase/specimens/actions.js +30 -5
  487. package/dist/showcase/specimens/charts.d.ts.map +1 -1
  488. package/dist/showcase/specimens/charts.js +22 -13
  489. package/dist/showcase/specimens/choices.d.ts +14 -3
  490. package/dist/showcase/specimens/choices.d.ts.map +1 -1
  491. package/dist/showcase/specimens/choices.js +93 -13
  492. package/dist/showcase/specimens/compositions.d.ts.map +1 -1
  493. package/dist/showcase/specimens/compositions.js +136 -23
  494. package/dist/showcase/specimens/data.d.ts +12 -7
  495. package/dist/showcase/specimens/data.d.ts.map +1 -1
  496. package/dist/showcase/specimens/data.js +139 -35
  497. package/dist/showcase/specimens/feedback.d.ts +2 -0
  498. package/dist/showcase/specimens/feedback.d.ts.map +1 -1
  499. package/dist/showcase/specimens/feedback.js +39 -15
  500. package/dist/showcase/specimens/index.d.ts +20 -12
  501. package/dist/showcase/specimens/index.d.ts.map +1 -1
  502. package/dist/showcase/specimens/inputs.d.ts +4 -2
  503. package/dist/showcase/specimens/inputs.d.ts.map +1 -1
  504. package/dist/showcase/specimens/inputs.js +62 -19
  505. package/dist/showcase/specimens/menus.d.ts +0 -1
  506. package/dist/showcase/specimens/menus.d.ts.map +1 -1
  507. package/dist/showcase/specimens/menus.js +47 -17
  508. package/dist/showcase/specimens/navigation.d.ts +6 -4
  509. package/dist/showcase/specimens/navigation.d.ts.map +1 -1
  510. package/dist/showcase/specimens/navigation.js +61 -32
  511. package/dist/showcase/specimens/other.d.ts +1 -3
  512. package/dist/showcase/specimens/other.d.ts.map +1 -1
  513. package/dist/showcase/specimens/other.js +17 -13
  514. package/dist/showcase/specimens/status.d.ts +4 -1
  515. package/dist/showcase/specimens/status.d.ts.map +1 -1
  516. package/dist/showcase/specimens/status.js +64 -11
  517. package/dist/showcase/usage.generated.d.ts +1 -1
  518. package/dist/showcase/usage.generated.d.ts.map +1 -1
  519. package/dist/showcase/usage.generated.js +632 -544
  520. package/dist/standalone/index.js +1 -1
  521. package/dist/styles/components.css +13 -13
  522. package/dist/styles/globals.css +25 -0
  523. package/package.json +2 -3
  524. package/dist/components/approval-row.d.ts +0 -34
  525. package/dist/components/approval-row.d.ts.map +0 -1
  526. package/dist/components/approval-row.js +0 -27
  527. package/dist/components/channel-view.d.ts +0 -112
  528. package/dist/components/channel-view.d.ts.map +0 -1
  529. package/dist/components/channel-view.js +0 -84
  530. package/dist/components/dashboard-shell.d.ts +0 -51
  531. package/dist/components/dashboard-shell.d.ts.map +0 -1
  532. package/dist/components/dashboard-shell.js +0 -89
  533. package/dist/components/direction.d.ts +0 -2
  534. package/dist/components/direction.d.ts.map +0 -1
  535. package/dist/components/direction.js +0 -1
  536. package/dist/components/expandable-block.d.ts +0 -20
  537. package/dist/components/expandable-block.d.ts.map +0 -1
  538. package/dist/components/expandable-block.js +0 -32
  539. package/dist/components/form.d.ts +0 -42
  540. package/dist/components/form.d.ts.map +0 -1
  541. package/dist/components/form.js +0 -91
  542. package/dist/components/label-system.d.ts +0 -17
  543. package/dist/components/label-system.d.ts.map +0 -1
  544. package/dist/components/label-system.js +0 -21
  545. package/dist/components/memory-item.d.ts +0 -21
  546. package/dist/components/memory-item.d.ts.map +0 -1
  547. package/dist/components/memory-item.js +0 -18
  548. package/dist/components/menubar.d.ts +0 -43
  549. package/dist/components/menubar.d.ts.map +0 -1
  550. package/dist/components/menubar.js +0 -69
  551. package/dist/components/navigation-menu.d.ts +0 -26
  552. package/dist/components/navigation-menu.d.ts.map +0 -1
  553. package/dist/components/navigation-menu.js +0 -45
  554. package/dist/components/pagination.d.ts +0 -33
  555. package/dist/components/pagination.d.ts.map +0 -1
  556. package/dist/components/pagination.js +0 -41
  557. package/dist/components/plugin-slot-boundary.d.ts +0 -42
  558. package/dist/components/plugin-slot-boundary.d.ts.map +0 -1
  559. package/dist/components/plugin-slot-boundary.js +0 -41
  560. package/dist/components/status-row.d.ts +0 -32
  561. package/dist/components/status-row.d.ts.map +0 -1
  562. package/dist/components/status-row.js +0 -35
@@ -1,84 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Download, FileText, Hash, Headphones, Users } from "lucide-react";
3
- import { Avatar, AvatarFallback } from "./avatar.js";
4
- import { cn } from "../lib/utils.js";
5
- const MEMBER_COLUMN = "flex w-9 shrink-0 justify-center";
6
- /**
7
- * A work-chat channel, as presentation only: the channel's header, the day it
8
- * opens on, the messages in it, the replies gathered under a message, a file
9
- * left in the conversation, and the card a voice call leaves behind.
10
- *
11
- * It carries no data, no state and no store, so a product mounts it with its own
12
- * members and messages. Every member's picture arrives as a slot: a person is
13
- * the package `Avatar`, a digital colleague is its `AgentOrb`, which is the one
14
- * Agent picture in every product (`DESIGN.md`, "Agent orbs").
15
- *
16
- * @family Other
17
- * @when Showing a channel of Alveare's work chat: its header, its days, messages, replies, files
18
- * and calls.
19
- * @instead An Agent's conversation is the Agents interface (`@nadicodeai/ui/agents`). A list of
20
- * records is a list or table.
21
- * @behaviour A 36 px member column, a 10 px gap to the text, the author and the time on one
22
- * baseline; replies gather in a pill under their message, and cards sit at the resting fill inside
23
- * the line: Alveare's channel geometry.
24
- * @words The product's members and messages; every label (members, replies, reactions) comes from
25
- * its catalogue.
26
- * @access A person's picture is `role="img"` named by their name; the member stack is named by
27
- * `membersLabel`; a reaction is named by its `label`, its glyph hidden.
28
- */
29
- export function ChannelView({ children, className, header, }) {
30
- return (_jsxs("div", { className: cn("grid min-h-0 min-w-0 grid-cols-[minmax(0,1fr)] grid-rows-[auto_minmax(0,1fr)] bg-background", className), children: [header, _jsx("div", { className: "flex min-h-0 min-w-0 flex-col justify-end overflow-hidden px-2 pb-4", children: children })] }));
31
- }
32
- export function ChannelHeader({ actions, className, glyph, memberCount, members, membersLabel, name, }) {
33
- return (_jsx("header", { className: cn("min-w-0 shrink-0 select-none px-3 py-2 sm:px-5", className), children: _jsxs("div", { className: "flex h-9 min-w-0 items-center gap-2.5", children: [_jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-1", children: [_jsx("span", { "aria-hidden": "true", className: "flex shrink-0 items-center text-muted-foreground", children: glyph ?? _jsx(Hash, { className: "size-4" }) }), _jsx("h2", { className: "text-body-md m-0 min-w-0 truncate font-medium text-foreground", children: name })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [members, _jsxs("span", { "aria-label": membersLabel, className: "inline-flex h-8 items-center gap-1.5 rounded-md border border-border px-2.5", role: "img", children: [_jsx(Users, { "aria-hidden": "true", className: "size-4 text-muted-foreground" }), _jsx("span", { className: "text-body-sm font-medium tabular-nums text-foreground", children: memberCount })] }), actions] })] }) }));
34
- }
35
- /** The channel's members overlapped, the last one whole, as a stack of pictures. */
36
- export function ChannelMemberStack({ children, className, overflow, }) {
37
- return (_jsxs("div", { className: cn("hidden shrink-0 items-center *:not-last:-me-2 *:ring-2 *:ring-background sm:flex", className), children: [children, overflow ? (_jsx("span", { className: "text-caption flex size-8 items-center justify-center rounded-full bg-muted font-medium text-muted-foreground", children: overflow })) : null] }));
38
- }
39
- /** A person in a channel: their initials on the muted fill, never a colour from the name. */
40
- export function ChannelPerson({ className, initials, name, }) {
41
- return (_jsx(Avatar, { "aria-label": name, className: cn("size-8", className), role: "img", size: "lg", children: _jsx(AvatarFallback, { children: initials }) }));
42
- }
43
- /** The day a run of messages belongs to: its name on the line that separates it. */
44
- export function ChannelDay({ className, label }) {
45
- return (_jsx("div", { className: cn("relative flex justify-center py-2 before:absolute before:inset-x-0 before:top-1/2 before:h-px before:-translate-y-1/2 before:bg-border before:content-['']", className), children: _jsx("p", { className: "text-caption relative m-0 shrink-0 rounded-full border border-border bg-background px-2.5 py-1 font-medium text-muted-foreground", children: label }) }));
46
- }
47
- export function ChannelMessage({ author, children, className, member, time, }) {
48
- return (_jsxs("article", { className: cn("mx-1 flex items-start gap-2.5 rounded-md px-2 py-1", className), children: [_jsx("div", { className: MEMBER_COLUMN, children: member }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsxs("div", { className: "flex min-w-0 flex-wrap items-baseline gap-x-1.5", children: [_jsx("span", { className: "text-body-md min-w-0 truncate font-medium text-foreground", children: author }), _jsx("span", { "aria-hidden": "true", className: "text-caption text-muted-foreground", children: "\u00B7" }), _jsx("span", { className: "text-caption shrink-0 whitespace-nowrap tabular-nums text-muted-foreground", children: time })] }), _jsx("div", { className: "text-body-md mt-0.5 min-w-0 text-foreground", children: children })] })] }));
49
- }
50
- /** A colleague addressed by name inside a message, the way a person types it. */
51
- export function ChannelMention({ children }) {
52
- return _jsx("span", { className: "rounded-sm bg-primary/15 px-1 font-medium text-primary", children: children });
53
- }
54
- /** The reactions left on a message. */
55
- export function ChannelReactions({ children }) {
56
- return _jsx("div", { className: "mt-1.5 flex flex-wrap items-center gap-1.5", children: children });
57
- }
58
- export function ChannelReaction({ count, glyph, label, mine, }) {
59
- return (_jsxs("span", { "aria-label": label, className: cn("text-caption inline-flex h-7 min-w-12 items-center justify-center gap-1.5 rounded-full border font-medium", mine
60
- ? "border-primary bg-primary/10 text-primary"
61
- : "border-border bg-muted text-foreground"), role: "img", children: [_jsx("span", { "aria-hidden": "true", children: glyph }), _jsx("span", { className: "tabular-nums text-muted-foreground", children: count })] }));
62
- }
63
- /**
64
- * The replies to a message, gathered under it: the pill that says how many there
65
- * are and who wrote them, and the replies themselves, indented to the message's
66
- * own text column.
67
- */
68
- export function ChannelThread({ children, summary }) {
69
- return (_jsxs("div", { className: "grid min-w-0 grid-cols-[minmax(0,1fr)] pl-6 sm:pl-[2.625rem]", children: [_jsx("div", { className: "pl-2", children: summary }), children] }));
70
- }
71
- export function ChannelThreadSummary({ lastActivity, members, replies, }) {
72
- return (_jsx("div", { className: "py-0.5", children: _jsxs("span", { className: "text-caption inline-flex h-[1.875rem] w-fit max-w-full items-center gap-1.5 rounded-full pr-3 font-medium text-muted-foreground", children: [_jsx("span", { className: "flex shrink-0 items-center *:not-last:-me-1 *:ring-2 *:ring-background", children: members }), _jsxs("span", { className: "min-w-0 truncate", children: [_jsx("span", { className: "font-medium", children: replies }), _jsx("span", { "aria-hidden": "true", className: "mx-1 font-normal", children: "\u00B7" }), _jsx("span", { className: "font-normal", children: lastActivity })] })] }) }));
73
- }
74
- /** A file left in the conversation. */
75
- export function ChannelFile({ meta, name }) {
76
- return (_jsxs("div", { className: "mt-2 flex w-fit max-w-full items-center gap-3 rounded-md border border-border bg-muted px-3 py-2 text-left sm:max-w-sm", children: [_jsx("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-md bg-background text-muted-foreground", children: _jsx(FileText, { "aria-hidden": "true", className: "size-4" }) }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "text-body-sm block truncate font-medium text-foreground", children: name }), _jsx("span", { className: "text-caption block text-muted-foreground", children: meta })] }), _jsx(Download, { "aria-hidden": "true", className: "size-4 shrink-0 text-muted-foreground" })] }));
77
- }
78
- /**
79
- * What a voice call leaves in the conversation once it ends: that it happened,
80
- * how many people were in it, and the way back to what was said.
81
- */
82
- export function ChannelCall({ action, participants, title, }) {
83
- return (_jsxs("div", { className: "mt-2 flex w-96 max-w-full items-center gap-3 rounded-md border border-border bg-muted px-3 py-2.5", children: [_jsx("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-md bg-background text-muted-foreground", children: _jsx(Headphones, { "aria-hidden": "true", className: "size-4" }) }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "text-body-sm block font-medium text-foreground", children: title }), _jsx("span", { className: "text-caption block truncate text-muted-foreground", children: participants })] }), action ? _jsx("span", { className: "flex shrink-0 items-center gap-1", children: action }) : null] }));
84
- }
@@ -1,51 +0,0 @@
1
- import * as React from "react";
2
- import { Sidebar, SidebarProvider } from "./sidebar.js";
3
- type DashboardShellSidebarResize = {
4
- autoSaveId?: string;
5
- cookieName?: string;
6
- defaultSize?: number;
7
- minSize?: number;
8
- maxSize?: number;
9
- contentMinSize?: number;
10
- };
11
- type DashboardShellProps = Omit<React.ComponentProps<typeof SidebarProvider>, "children"> & {
12
- sidebar: React.ReactNode;
13
- header?: React.ReactNode;
14
- headerActions?: React.ReactNode;
15
- inspector?: React.ReactNode;
16
- children: React.ReactNode;
17
- sidebarHeader?: React.ReactNode;
18
- sidebarFooter?: React.ReactNode;
19
- sidebarSide?: React.ComponentProps<typeof Sidebar>["side"];
20
- sidebarVariant?: React.ComponentProps<typeof Sidebar>["variant"];
21
- sidebarCollapsible?: React.ComponentProps<typeof Sidebar>["collapsible"];
22
- mobileNavigationLabel?: string;
23
- mobileTitle?: React.ComponentProps<typeof Sidebar>["mobileTitle"];
24
- mobileDescription?: React.ComponentProps<typeof Sidebar>["mobileDescription"];
25
- mobileCloseLabel?: React.ComponentProps<typeof Sidebar>["mobileCloseLabel"];
26
- sidebarRailLabel?: string;
27
- contentLabel?: string;
28
- inspectorLabel?: string;
29
- headerClassName?: string;
30
- contentClassName?: string;
31
- inspectorClassName?: string;
32
- sidebarResize?: DashboardShellSidebarResize;
33
- };
34
- /**
35
- * A web product's frame: the sidebar, the top bar with the page's path, and the content.
36
- *
37
- * @family Navigation
38
- * @when The Portal's frame around every signed-in page: its sidebar, the top bar and the scrolling
39
- * content, with an optional inspector.
40
- * @instead A desktop window is `DesktopAppShell`. A page's own title and actions are `PageHeader`
41
- * inside the content.
42
- * @behaviour The sidebar can be resized and collapsed to its rail; the content scrolls under the
43
- * top bar. On a narrow window the sidebar opens as a sheet.
44
- * @words None of its own: the sidebar and the header carry the product's words.
45
- * @access The content is the page's `main`, labelled by `contentLabel`; the inspector is a labelled
46
- * `aside`; the narrow window's navigation button and the sidebar rail are named.
47
- */
48
- declare function DashboardShell({ sidebar, header, headerActions, inspector, children, sidebarHeader, sidebarFooter, sidebarSide, sidebarVariant, sidebarCollapsible, mobileNavigationLabel, mobileTitle, mobileDescription, mobileCloseLabel, sidebarRailLabel, contentLabel, inspectorLabel, className, headerClassName, contentClassName, inspectorClassName, sidebarResize, ...props }: DashboardShellProps): React.JSX.Element;
49
- export { DashboardShell };
50
- export type { DashboardShellProps, DashboardShellSidebarResize };
51
- //# sourceMappingURL=dashboard-shell.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-shell.d.ts","sourceRoot":"","sources":["../../src/components/dashboard-shell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EACL,OAAO,EAKP,eAAe,EAIhB,MAAM,sBAAsB,CAAC;AAM9B,KAAK,2BAA2B,GAAG;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,EAAE,UAAU,CAAC,GAAG;IAC1F,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;IACzE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;IAClE,iBAAiB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,gBAAgB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C,CAAC;AAiHF;;;;;;;;;;;;;GAaG;AACH,iBAAS,cAAc,CAAC,EACtB,OAAO,EACP,MAAM,EACN,aAAa,EACb,SAAS,EACT,QAAQ,EACR,aAAa,EACb,aAAa,EACb,WAAoB,EACpB,cAA0B,EAC1B,kBAA2B,EAC3B,qBAAyC,EACzC,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAkC,EAClC,cAA4B,EAC5B,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,GAAG,KAAK,EACT,EAAE,mBAAmB,qBAuLrB;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,89 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { useIsMobile } from "../hooks/use-mobile.js";
5
- import { cn } from "../lib/utils.js";
6
- import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "./resizable.js";
7
- import { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarInset, SidebarProvider, SidebarRail, SidebarTrigger, useSidebar, } from "./sidebar.js";
8
- const oneYearInSeconds = 60 * 60 * 24 * 365;
9
- function EmbeddedResizableSidebar({ children, collapsible, includeRail, railLabel, side, variant, }) {
10
- const { state } = useSidebar();
11
- return (_jsxs("div", { className: "group peer relative h-full text-sidebar-foreground", "data-collapsible": state === "collapsed" ? collapsible : "", "data-side": side, "data-slot": "sidebar", "data-state": state, "data-variant": variant, children: [_jsx("div", { "data-side": side, "data-slot": "sidebar-container", className: "flex size-full text-sidebar-foreground", children: _jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "flex size-full flex-col bg-sidebar", children: children }) }), includeRail ? _jsx(SidebarRail, { "aria-label": railLabel }) : null] }));
12
- }
13
- function DashboardResizablePanelGroup({ bodySlot, contentPanelMinSize, handleLayoutChanged, resizableGroupId, sidebarCollapsible, sidebarPanelDefaultSize, sidebarPanelMaxSize, sidebarPanelMinSize, sidebarSlot, }) {
14
- const { state } = useSidebar();
15
- const sidebarPanelRef = React.useRef(null);
16
- React.useEffect(() => {
17
- if (sidebarCollapsible === "none") {
18
- return;
19
- }
20
- if (state === "collapsed") {
21
- sidebarPanelRef.current?.collapse();
22
- return;
23
- }
24
- sidebarPanelRef.current?.expand();
25
- }, [sidebarCollapsible, state]);
26
- return (_jsxs(ResizablePanelGroup, { className: "min-h-svh", id: resizableGroupId, onLayoutChanged: (layout) => handleLayoutChanged(layout, state), orientation: "horizontal", children: [_jsx(ResizablePanel, { collapsedSize: "3rem", collapsible: sidebarCollapsible !== "none", defaultSize: `${sidebarPanelDefaultSize}%`, id: "dashboard-sidebar", maxSize: `${sidebarPanelMaxSize}%`, minSize: `${sidebarPanelMinSize}%`, panelRef: sidebarPanelRef, children: sidebarSlot(sidebarCollapsible, true, true) }), _jsx(ResizableHandle, { withHandle: true }), _jsx(ResizablePanel, { id: "dashboard-content", minSize: `${contentPanelMinSize}%`, children: bodySlot })] }));
27
- }
28
- /**
29
- * A web product's frame: the sidebar, the top bar with the page's path, and the content.
30
- *
31
- * @family Navigation
32
- * @when The Portal's frame around every signed-in page: its sidebar, the top bar and the scrolling
33
- * content, with an optional inspector.
34
- * @instead A desktop window is `DesktopAppShell`. A page's own title and actions are `PageHeader`
35
- * inside the content.
36
- * @behaviour The sidebar can be resized and collapsed to its rail; the content scrolls under the
37
- * top bar. On a narrow window the sidebar opens as a sheet.
38
- * @words None of its own: the sidebar and the header carry the product's words.
39
- * @access The content is the page's `main`, labelled by `contentLabel`; the inspector is a labelled
40
- * `aside`; the narrow window's navigation button and the sidebar rail are named.
41
- */
42
- function DashboardShell({ sidebar, header, headerActions, inspector, children, sidebarHeader, sidebarFooter, sidebarSide = "left", sidebarVariant = "sidebar", sidebarCollapsible = "icon", mobileNavigationLabel = "Open navigation", mobileTitle, mobileDescription, mobileCloseLabel, sidebarRailLabel, contentLabel = "Dashboard content", inspectorLabel = "Inspector", className, headerClassName, contentClassName, inspectorClassName, sidebarResize, ...props }) {
43
- const isMobile = useIsMobile();
44
- const [hasMeasuredViewport, setHasMeasuredViewport] = React.useState(false);
45
- const sidebarWidthCookieTimeoutRef = React.useRef(undefined);
46
- const { autoSaveId: sidebarPanelAutoSaveId, contentMinSize: contentPanelMinSize = 55, cookieName: sidebarPanelCookieName, defaultSize: sidebarPanelDefaultSize = 20, maxSize: sidebarPanelMaxSize = 28, minSize: sidebarPanelMinSize = 14, } = sidebarResize ?? {};
47
- const resizableGroupId = sidebarPanelAutoSaveId ?? "dashboard-shell";
48
- const resolvedSidebarPanelCookieName = sidebarPanelCookieName ??
49
- (sidebarPanelAutoSaveId ? `nadicodeai-dashboard-shell-${sidebarPanelAutoSaveId}` : undefined);
50
- React.useEffect(() => {
51
- setHasMeasuredViewport(true);
52
- return () => {
53
- if (sidebarWidthCookieTimeoutRef.current) {
54
- window.clearTimeout(sidebarWidthCookieTimeoutRef.current);
55
- }
56
- };
57
- }, []);
58
- const persistSidebarSize = React.useCallback((sidebarSize) => {
59
- if (typeof window === "undefined") {
60
- return;
61
- }
62
- if (!resolvedSidebarPanelCookieName) {
63
- return;
64
- }
65
- if (sidebarWidthCookieTimeoutRef.current) {
66
- window.clearTimeout(sidebarWidthCookieTimeoutRef.current);
67
- }
68
- sidebarWidthCookieTimeoutRef.current = window.setTimeout(() => {
69
- window.document.cookie = `${resolvedSidebarPanelCookieName}=${encodeURIComponent(sidebarSize.toFixed(3))}; Path=/; Max-Age=${oneYearInSeconds}; SameSite=Lax`;
70
- sidebarWidthCookieTimeoutRef.current = undefined;
71
- }, 150);
72
- }, [resolvedSidebarPanelCookieName]);
73
- const handleLayoutChanged = React.useCallback((layout, sidebarState) => {
74
- if (sidebarState !== "expanded") {
75
- return;
76
- }
77
- const sidebarSize = layout["dashboard-sidebar"];
78
- if (resolvedSidebarPanelCookieName &&
79
- sidebarSize !== undefined &&
80
- sidebarSize >= sidebarPanelMinSize) {
81
- persistSidebarSize(sidebarSize);
82
- }
83
- }, [persistSidebarSize, resolvedSidebarPanelCookieName, sidebarPanelMinSize]);
84
- const canResizeSidebar = !!sidebarResize && hasMeasuredViewport && !isMobile && sidebarSide === "left";
85
- const sidebarSlot = (collapsible, includeRail, embedded = false) => embedded ? (_jsxs(EmbeddedResizableSidebar, { collapsible: collapsible, includeRail: includeRail, railLabel: sidebarRailLabel, side: sidebarSide, variant: sidebarVariant, children: [sidebarHeader && _jsx(SidebarHeader, { children: sidebarHeader }), _jsx(SidebarContent, { children: sidebar }), sidebarFooter && _jsx(SidebarFooter, { children: sidebarFooter })] })) : (_jsxs(Sidebar, { side: sidebarSide, variant: sidebarVariant, collapsible: collapsible, mobileTitle: mobileTitle, mobileDescription: mobileDescription, mobileCloseLabel: mobileCloseLabel, children: [sidebarHeader && _jsx(SidebarHeader, { children: sidebarHeader }), _jsx(SidebarContent, { children: sidebar }), sidebarFooter && _jsx(SidebarFooter, { children: sidebarFooter }), includeRail ? _jsx(SidebarRail, { "aria-label": sidebarRailLabel }) : null] }));
86
- const bodySlot = (_jsxs(SidebarInset, { className: "size-full min-w-0 overflow-hidden", children: [_jsxs("header", { "data-slot": "dashboard-shell-header", className: cn("flex h-14 shrink-0 items-center justify-between gap-3 border-b bg-background px-3 md:px-4", headerClassName), children: [_jsxs("div", { "data-slot": "dashboard-shell-header-content", className: "flex min-w-0 flex-1 items-center gap-2", children: [_jsx(SidebarTrigger, { "data-slot": "dashboard-shell-mobile-trigger", "aria-label": mobileNavigationLabel, className: "md:hidden" }), _jsx("div", { className: "min-w-0 flex-1", children: header })] }), headerActions && (_jsx("div", { "data-slot": "dashboard-shell-header-actions", className: "flex shrink-0 items-center gap-2", children: headerActions }))] }), _jsxs("div", { "data-slot": "dashboard-shell-body", className: "flex min-h-0 flex-1 flex-col lg:flex-row", children: [_jsx("main", { "data-slot": "dashboard-shell-content", "aria-label": contentLabel, className: cn("min-h-0 min-w-0 flex-1 overflow-auto p-4 md:p-6", contentClassName), children: children }), inspector && (_jsx("aside", { "data-slot": "dashboard-shell-inspector", "aria-label": inspectorLabel, className: cn("min-h-0 border-t bg-background lg:w-80 lg:border-t-0 lg:border-l", inspectorClassName), children: _jsx("div", { "data-slot": "dashboard-shell-inspector-content", className: "max-h-96 overflow-auto p-4 lg:h-full lg:max-h-none", children: inspector }) }))] })] }));
87
- return (_jsx(SidebarProvider, { "data-slot": "dashboard-shell", className: cn("min-h-svh bg-background", className), ...props, children: canResizeSidebar ? (_jsx(DashboardResizablePanelGroup, { bodySlot: bodySlot, contentPanelMinSize: contentPanelMinSize, handleLayoutChanged: handleLayoutChanged, resizableGroupId: resizableGroupId, sidebarCollapsible: sidebarCollapsible, sidebarPanelDefaultSize: sidebarPanelDefaultSize, sidebarPanelMaxSize: sidebarPanelMaxSize, sidebarPanelMinSize: sidebarPanelMinSize, sidebarSlot: sidebarSlot })) : (_jsxs(_Fragment, { children: [sidebarSlot(sidebarCollapsible, true), bodySlot] })) }));
88
- }
89
- export { DashboardShell };
@@ -1,2 +0,0 @@
1
- export { DirectionProvider, useDirection, } from "@base-ui/react/direction-provider";
2
- //# sourceMappingURL=direction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"direction.d.ts","sourceRoot":"","sources":["../../src/components/direction.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,GACb,MAAM,mCAAmC,CAAC"}
@@ -1 +0,0 @@
1
- export { DirectionProvider, useDirection, } from "@base-ui/react/direction-provider";
@@ -1,20 +0,0 @@
1
- import { type ReactNode } from "react";
2
- interface ExpandableBlockProps {
3
- children: ReactNode;
4
- className?: string;
5
- collapseLabel?: string;
6
- expandLabel?: string;
7
- }
8
- /**
9
- * A tall block cut to its first lines, with a control to read the rest.
10
- *
11
- * @family Other
12
- * @when A long output inside a conversation or a run: a tool's result, a pasted log.
13
- * @instead Supporting detail behind a label is `Disclosure`. Exact text to copy is `CodeBlock`.
14
- * @behaviour Shows the control only when the content runs past 120 px; expanding shows it whole.
15
- * @words The expand and collapse labels come from the product's catalogue.
16
- * @access The control is a `button` with `aria-expanded` and the current label as its name.
17
- */
18
- declare function ExpandableBlock({ children, className, collapseLabel, expandLabel, }: ExpandableBlockProps): import("react").JSX.Element;
19
- export { ExpandableBlock };
20
- //# sourceMappingURL=expandable-block.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expandable-block.d.ts","sourceRoot":"","sources":["../../src/components/expandable-block.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1E,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,iBAAS,eAAe,CAAC,EACvB,QAAQ,EACR,SAAS,EACT,aAA0B,EAC1B,WAAsB,GACvB,EAAE,oBAAoB,+BAsCtB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,32 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useLayoutEffect, useRef, useState } from "react";
4
- import { ChevronDownIcon } from "lucide-react";
5
- import { cn } from "../lib/utils.js";
6
- /**
7
- * A tall block cut to its first lines, with a control to read the rest.
8
- *
9
- * @family Other
10
- * @when A long output inside a conversation or a run: a tool's result, a pasted log.
11
- * @instead Supporting detail behind a label is `Disclosure`. Exact text to copy is `CodeBlock`.
12
- * @behaviour Shows the control only when the content runs past 120 px; expanding shows it whole.
13
- * @words The expand and collapse labels come from the product's catalogue.
14
- * @access The control is a `button` with `aria-expanded` and the current label as its name.
15
- */
16
- function ExpandableBlock({ children, className, collapseLabel = "Collapse", expandLabel = "Expand", }) {
17
- const innerRef = useRef(null);
18
- const [expanded, setExpanded] = useState(false);
19
- const [overflowing, setOverflowing] = useState(false);
20
- useLayoutEffect(() => {
21
- const element = innerRef.current;
22
- if (!element)
23
- return;
24
- const measure = () => setOverflowing(element.scrollHeight > 121);
25
- measure();
26
- const observer = new ResizeObserver(measure);
27
- observer.observe(element);
28
- return () => observer.disconnect();
29
- }, []);
30
- return (_jsxs("div", { className: "relative", "data-slot": "expandable-block", children: [_jsx("div", { className: cn("overflow-y-auto", expanded ? "max-h-[40dvh]" : "max-h-30", className), ref: innerRef, children: children }), overflowing ? (_jsx("button", { "aria-expanded": expanded, "aria-label": expanded ? collapseLabel : expandLabel, className: "nc-transition-paint absolute inset-x-0 bottom-0 flex h-7 cursor-pointer items-end justify-center bg-linear-to-t from-background to-transparent pb-1 text-muted-foreground hover:text-foreground", onClick: () => setExpanded((value) => !value), type: "button", children: _jsx(ChevronDownIcon, { "aria-hidden": "true", className: cn("nc-transition-transform size-3.5", expanded && "rotate-180"), "data-icon": "inline" }) })) : null] }));
31
- }
32
- export { ExpandableBlock };
@@ -1,42 +0,0 @@
1
- import * as React from "react";
2
- import { useRender } from "@base-ui/react/use-render";
3
- import { type ControllerProps, type FieldPath, type FieldValues } from "react-hook-form";
4
- import { Label } from "./label.js";
5
- /**
6
- * A react-hook-form form whose fields bind their label, help and message for the reader.
7
- *
8
- * @family Inputs
9
- * @when A client form whose values, validation and submit run through react-hook-form: `FormField`
10
- * binds a control, `FormMessage` shows its error.
11
- * @instead A settings group that saves on its own is `SettingsSection`. A short form in a dialog is
12
- * `FormDialog`; one in a row is `RowEditForm`. A form with no client validation is a plain `form`
13
- * with `Field`.
14
- * @behaviour Validation runs on submit and on leaving a field, then updates while the value is
15
- * corrected. A failed save keeps every value. The submit is `type="submit"`, so Enter in a field
16
- * submits.
17
- * @words Messages come from the product's catalogue or schema: how to fix the value, not what went
18
- * wrong.
19
- * @access `FormControl` gives the control its `id`, `aria-invalid` and `aria-describedby` (help,
20
- * then message); `FormMessage` is read when it appears.
21
- */
22
- declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>({ children, watch, getValues, getErrors, getFieldState, setError, clearErrors, setValue, setValues, trigger, formState, resetField, reset, resetDefaultValues, handleSubmit, unregister, control, register, setFocus, subscribe, }: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
23
- declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => React.JSX.Element;
24
- declare const useFormField: () => {
25
- invalid: boolean;
26
- isDirty: boolean;
27
- isTouched: boolean;
28
- isValidating: boolean;
29
- error?: import("react-hook-form").FieldError | undefined;
30
- id: string;
31
- name: string;
32
- formItemId: string;
33
- formDescriptionId: string;
34
- formMessageId: string;
35
- };
36
- declare function FormItem({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
37
- declare function FormLabel({ className, ...props }: React.ComponentProps<typeof Label>): React.JSX.Element;
38
- declare function FormControl({ render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
39
- declare function FormDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
40
- declare function FormMessage({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element | null;
41
- export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, };
42
- //# sourceMappingURL=form.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/components/form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,IAAI,yaAAe,CAAC;AAW1B,QAAA,MAAM,SAAS,GACb,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,cAEC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,sBAMtC,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;CAuBjB,CAAC;AAQF,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQrE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,qBAY7E;AAED,iBAAS,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAoBzE;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,qBAW1E;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,4BAkBtE;AAED,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,SAAS,GACV,CAAC"}
@@ -1,91 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { mergeProps } from "@base-ui/react/merge-props";
5
- import { useRender } from "@base-ui/react/use-render";
6
- import { Controller, FormProvider, useFormContext, useFormState, } from "react-hook-form";
7
- import { cn } from "../lib/utils.js";
8
- import { Label } from "./label.js";
9
- /**
10
- * A react-hook-form form whose fields bind their label, help and message for the reader.
11
- *
12
- * @family Inputs
13
- * @when A client form whose values, validation and submit run through react-hook-form: `FormField`
14
- * binds a control, `FormMessage` shows its error.
15
- * @instead A settings group that saves on its own is `SettingsSection`. A short form in a dialog is
16
- * `FormDialog`; one in a row is `RowEditForm`. A form with no client validation is a plain `form`
17
- * with `Field`.
18
- * @behaviour Validation runs on submit and on leaving a field, then updates while the value is
19
- * corrected. A failed save keeps every value. The submit is `type="submit"`, so Enter in a field
20
- * submits.
21
- * @words Messages come from the product's catalogue or schema: how to fix the value, not what went
22
- * wrong.
23
- * @access `FormControl` gives the control its `id`, `aria-invalid` and `aria-describedby` (help,
24
- * then message); `FormMessage` is read when it appears.
25
- */
26
- const Form = FormProvider;
27
- const FormFieldContext = React.createContext(null);
28
- const FormField = ({ ...props }) => {
29
- return (_jsx(FormFieldContext.Provider, { value: { name: props.name }, children: _jsx(Controller, { ...props }) }));
30
- };
31
- const useFormField = () => {
32
- const fieldContext = React.useContext(FormFieldContext);
33
- const itemContext = React.useContext(FormItemContext);
34
- if (!fieldContext) {
35
- throw new Error("useFormField should be used within <FormField>");
36
- }
37
- if (!itemContext) {
38
- throw new Error("useFormField should be used within <FormItem>");
39
- }
40
- const { getFieldState } = useFormContext();
41
- const formState = useFormState({ name: fieldContext.name });
42
- const fieldState = getFieldState(fieldContext.name, formState);
43
- const { id } = itemContext;
44
- return {
45
- id,
46
- name: fieldContext.name,
47
- formItemId: `${id}-form-item`,
48
- formDescriptionId: `${id}-form-item-description`,
49
- formMessageId: `${id}-form-item-message`,
50
- ...fieldState,
51
- };
52
- };
53
- const FormItemContext = React.createContext(null);
54
- function FormItem({ className, ...props }) {
55
- const id = React.useId();
56
- return (_jsx(FormItemContext.Provider, { value: { id }, children: _jsx("div", { "data-slot": "form-item", className: cn("grid gap-2", className), ...props }) }));
57
- }
58
- function FormLabel({ className, ...props }) {
59
- const { error, formItemId } = useFormField();
60
- return (_jsx(Label, { "data-slot": "form-label", "data-error": !!error, className: cn("data-[error=true]:text-destructive", className), htmlFor: formItemId, ...props }));
61
- }
62
- function FormControl({ render, ...props }) {
63
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
64
- return useRender({
65
- defaultTagName: "div",
66
- props: mergeProps({
67
- id: formItemId,
68
- "aria-describedby": !error
69
- ? `${formDescriptionId}`
70
- : `${formDescriptionId} ${formMessageId}`,
71
- "aria-invalid": !!error,
72
- }, props),
73
- render,
74
- state: {
75
- slot: "form-control",
76
- },
77
- });
78
- }
79
- function FormDescription({ className, ...props }) {
80
- const { formDescriptionId } = useFormField();
81
- return (_jsx("p", { "data-slot": "form-description", id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props }));
82
- }
83
- function FormMessage({ className, ...props }) {
84
- const { error, formMessageId } = useFormField();
85
- const body = error ? String(error?.message ?? "") : props.children;
86
- if (!body) {
87
- return null;
88
- }
89
- return (_jsx("p", { "data-slot": "form-message", id: formMessageId, className: cn("text-sm text-destructive", className), ...props, children: body }));
90
- }
91
- export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, };
@@ -1,17 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * A small muted label of metadata, and its mono sibling for a command's suffix.
4
- *
5
- * @family Status
6
- * @when A short fixed fact set beside a name in dense chrome: *Built in*, *Read only*.
7
- * `CommandSuffix` holds a count or a key after a command.
8
- * @instead A state is `StatusBadge`; a category is `Tag`; a plan or role is `Badge`. A bound
9
- * shortcut is `Kbd`.
10
- * @behaviour 20 px, 6 px corners, the muted fill, never interactive, never wraps.
11
- * @words One or two words in sentence case.
12
- * @access Read in place as text.
13
- */
14
- declare function MetaLabel({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
15
- declare function CommandSuffix({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
16
- export { CommandSuffix, MetaLabel };
17
- //# sourceMappingURL=label-system.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"label-system.d.ts","sourceRoot":"","sources":["../../src/components/label-system.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;GAWG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAWvE;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAW3E;AAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC"}
@@ -1,21 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * A small muted label of metadata, and its mono sibling for a command's suffix.
5
- *
6
- * @family Status
7
- * @when A short fixed fact set beside a name in dense chrome: *Built in*, *Read only*.
8
- * `CommandSuffix` holds a count or a key after a command.
9
- * @instead A state is `StatusBadge`; a category is `Tag`; a plan or role is `Badge`. A bound
10
- * shortcut is `Kbd`.
11
- * @behaviour 20 px, 6 px corners, the muted fill, never interactive, never wraps.
12
- * @words One or two words in sentence case.
13
- * @access Read in place as text.
14
- */
15
- function MetaLabel({ className, ...props }) {
16
- return (_jsx("span", { "data-slot": "meta-label", className: cn("inline-flex h-5 w-fit shrink-0 items-center justify-center rounded-sm border border-border bg-muted/40 px-2 text-xs font-medium text-muted-foreground whitespace-nowrap", className), ...props }));
17
- }
18
- function CommandSuffix({ className, ...props }) {
19
- return (_jsx("span", { "data-slot": "command-suffix", className: cn("inline-flex h-5 min-w-5 shrink-0 items-center justify-center rounded-sm border border-border bg-muted px-1.5 font-mono text-xs font-medium text-muted-foreground tabular-nums whitespace-nowrap", className), ...props }));
20
- }
21
- export { CommandSuffix, MetaLabel };
@@ -1,21 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * One fact an Agent keeps, under its muted label.
4
- *
5
- * @family Data
6
- * @when A fact from an Agent's memory shown in her conversation or her profile.
7
- * @instead A fact about a record is `ObjectFacts`. A note a person writes is a `Textarea`.
8
- * @behaviour A short label over the fact; `children` replace the plain `fact` when it needs rich
9
- * content.
10
- * @words The label is the product's word for memory from the catalogue; the fact is in the Agent's
11
- * own words.
12
- * @access Read in place as text.
13
- */
14
- declare function MemoryItem({ className, label, fact, children, ...props }: Omit<React.ComponentProps<"div">, "children"> & {
15
- label?: string;
16
- fact?: string;
17
- /** Escape hatch: rich fact content that replaces the serializable `fact`. */
18
- children?: React.ReactNode;
19
- }): React.JSX.Element;
20
- export { MemoryItem };
21
- //# sourceMappingURL=memory-item.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-item.d.ts","sourceRoot":"","sources":["../../src/components/memory-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;GAWG;AACH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,KAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,qBAOA;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,18 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cn } from "../lib/utils.js";
3
- /**
4
- * One fact an Agent keeps, under its muted label.
5
- *
6
- * @family Data
7
- * @when A fact from an Agent's memory shown in her conversation or her profile.
8
- * @instead A fact about a record is `ObjectFacts`. A note a person writes is a `Textarea`.
9
- * @behaviour A short label over the fact; `children` replace the plain `fact` when it needs rich
10
- * content.
11
- * @words The label is the product's word for memory from the catalogue; the fact is in the Agent's
12
- * own words.
13
- * @access Read in place as text.
14
- */
15
- function MemoryItem({ className, label = "Memory", fact, children, ...props }) {
16
- return (_jsxs("div", { "data-slot": "memory-item", className: cn("nc-memory-item", className), ...props, children: [_jsx("span", { className: "nc-memory-item-label", children: label }), _jsx("span", { children: children ?? fact })] }));
17
- }
18
- export { MemoryItem };
@@ -1,43 +0,0 @@
1
- import * as React from "react";
2
- import { Menu as MenuPrimitive } from "@base-ui/react/menu";
3
- import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
4
- import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./dropdown-menu.js";
5
- /**
6
- * A row of menus, as a desktop application's menu bar.
7
- *
8
- * @family Menus
9
- * @when A desktop surface whose commands are many and grouped, as an application's File and Edit
10
- * menus are.
11
- * @instead A record's commands are its `ActionMenu`; a page's are `PageActions`. Finding anything
12
- * is `CommandDialog`.
13
- * @behaviour Each menu has the dropdown's surface and rows. Arrow keys move between menus and
14
- * through items; Escape closes and returns focus to the bar.
15
- * @words Menu names are single nouns; items are verb and noun in sentence case.
16
- * @access `role="menubar"`; each trigger exposes `aria-expanded`; items are `menuitem`s.
17
- */
18
- declare function Menubar({ className, ...props }: MenubarPrimitive.Props): React.JSX.Element;
19
- declare function MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>): React.JSX.Element;
20
- declare function MenubarGroup({ ...props }: React.ComponentProps<typeof DropdownMenuGroup>): React.JSX.Element;
21
- declare function MenubarPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPortal>): React.JSX.Element;
22
- declare function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof DropdownMenuTrigger>): React.JSX.Element;
23
- declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuContent>): React.JSX.Element;
24
- declare function MenubarItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuItem>): React.JSX.Element;
25
- declare function MenubarCheckboxItem({ className, children, checked, inset, ...props }: MenuPrimitive.CheckboxItem.Props & {
26
- inset?: boolean;
27
- }): React.JSX.Element;
28
- declare function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuRadioGroup>): React.JSX.Element;
29
- declare function MenubarRadioItem({ className, children, inset, ...props }: MenuPrimitive.RadioItem.Props & {
30
- inset?: boolean;
31
- }): React.JSX.Element;
32
- declare function MenubarLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuLabel> & {
33
- inset?: boolean;
34
- }): React.JSX.Element;
35
- declare function MenubarSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuSeparator>): React.JSX.Element;
36
- declare function MenubarShortcut({ className, ...props }: React.ComponentProps<typeof DropdownMenuShortcut>): React.JSX.Element;
37
- declare function MenubarSub({ ...props }: React.ComponentProps<typeof DropdownMenuSub>): React.JSX.Element;
38
- declare function MenubarSubTrigger({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuSubTrigger> & {
39
- inset?: boolean;
40
- }): React.JSX.Element;
41
- declare function MenubarSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuSubContent>): React.JSX.Element;
42
- export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
43
- //# sourceMappingURL=menubar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../src/components/menubar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAGpC;;;;;;;;;;;;GAYG;AACH,iBAAS,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,KAAK,qBAW/D;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,qBAE3E;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,qBAEjF;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,qBAEnF;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,qBAWhG;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAe,EACf,WAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,qBAclD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,KAAK,EACL,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,qBAa/C;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,OAAO,EACP,KAAK,EACL,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,YAAY,CAAC,KAAK,GAAG;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBAoBA;AAED,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,sBAAsB,CAAC,qBAE3F;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,GAAG;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBAmBA;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,iBAAiB,CAAC,GAAG;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBAaA;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,qBAQpD;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,qBAWnD;AAED,iBAAS,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,qBAE7E;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,sBAAsB,CAAC,GAAG;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,qBAYA;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,sBAAsB,CAAC,qBAQrD;AAED,OAAO,EACL,OAAO,EACP,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAClB,CAAC"}