@nadicodeai/ui 12.1.95 → 12.1.97

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 (596) hide show
  1. package/AGENTS.md +5 -1
  2. package/dist/components/accordion.d.ts +13 -0
  3. package/dist/components/accordion.d.ts.map +1 -1
  4. package/dist/components/accordion.js +13 -0
  5. package/dist/components/account-menu.d.ts +62 -18
  6. package/dist/components/account-menu.d.ts.map +1 -1
  7. package/dist/components/account-menu.js +32 -8
  8. package/dist/components/action-menu.d.ts +61 -5
  9. package/dist/components/action-menu.d.ts.map +1 -1
  10. package/dist/components/action-menu.js +31 -2
  11. package/dist/components/action-status.d.ts +13 -3
  12. package/dist/components/action-status.d.ts.map +1 -1
  13. package/dist/components/action-status.js +13 -3
  14. package/dist/components/activity-calendar.d.ts +14 -0
  15. package/dist/components/activity-calendar.d.ts.map +1 -1
  16. package/dist/components/activity-calendar.js +14 -0
  17. package/dist/components/activity-feed.d.ts +62 -0
  18. package/dist/components/activity-feed.d.ts.map +1 -0
  19. package/dist/components/activity-feed.js +54 -0
  20. package/dist/components/agent-card.d.ts +15 -0
  21. package/dist/components/agent-card.d.ts.map +1 -1
  22. package/dist/components/agent-card.js +15 -0
  23. package/dist/components/agent-list-row.d.ts +11 -7
  24. package/dist/components/agent-list-row.d.ts.map +1 -1
  25. package/dist/components/agent-list-row.js +10 -8
  26. package/dist/components/agent-orb-appearance.d.ts +5 -4
  27. package/dist/components/agent-orb-appearance.d.ts.map +1 -1
  28. package/dist/components/agent-orb.d.ts +16 -0
  29. package/dist/components/agent-orb.d.ts.map +1 -1
  30. package/dist/components/agent-orb.js +17 -0
  31. package/dist/components/agent-profile.d.ts +39 -10
  32. package/dist/components/agent-profile.d.ts.map +1 -1
  33. package/dist/components/agent-profile.js +40 -10
  34. package/dist/components/alert-dialog.d.ts +14 -0
  35. package/dist/components/alert-dialog.d.ts.map +1 -1
  36. package/dist/components/alert-dialog.js +14 -0
  37. package/dist/components/alert.d.ts +14 -0
  38. package/dist/components/alert.d.ts.map +1 -1
  39. package/dist/components/alert.js +14 -0
  40. package/dist/components/app-mark.d.ts +14 -4
  41. package/dist/components/app-mark.d.ts.map +1 -1
  42. package/dist/components/app-mark.js +16 -4
  43. package/dist/components/approval-row.d.ts +15 -2
  44. package/dist/components/approval-row.d.ts.map +1 -1
  45. package/dist/components/approval-row.js +15 -2
  46. package/dist/components/aspect-ratio.d.ts +10 -0
  47. package/dist/components/aspect-ratio.d.ts.map +1 -1
  48. package/dist/components/aspect-ratio.js +13 -1
  49. package/dist/components/avatar.d.ts +15 -0
  50. package/dist/components/avatar.d.ts.map +1 -1
  51. package/dist/components/avatar.js +15 -0
  52. package/dist/components/badge.d.ts +11 -1
  53. package/dist/components/badge.d.ts.map +1 -1
  54. package/dist/components/badge.js +10 -5
  55. package/dist/components/brand-field.d.ts +10 -0
  56. package/dist/components/brand-field.d.ts.map +1 -1
  57. package/dist/components/brand-field.js +10 -0
  58. package/dist/components/brand.d.ts +14 -0
  59. package/dist/components/brand.d.ts.map +1 -1
  60. package/dist/components/brand.js +18 -4
  61. package/dist/components/breadcrumb.d.ts +20 -2
  62. package/dist/components/breadcrumb.d.ts.map +1 -1
  63. package/dist/components/breadcrumb.js +13 -3
  64. package/dist/components/button-group.d.ts +21 -0
  65. package/dist/components/button-group.d.ts.map +1 -1
  66. package/dist/components/button-group.js +21 -0
  67. package/dist/components/button.d.ts +20 -0
  68. package/dist/components/button.d.ts.map +1 -1
  69. package/dist/components/button.js +20 -0
  70. package/dist/components/calendar.d.ts +15 -0
  71. package/dist/components/calendar.d.ts.map +1 -1
  72. package/dist/components/calendar.js +15 -0
  73. package/dist/components/card-row.d.ts +15 -5
  74. package/dist/components/card-row.d.ts.map +1 -1
  75. package/dist/components/card-row.js +15 -5
  76. package/dist/components/card.d.ts +16 -0
  77. package/dist/components/card.d.ts.map +1 -1
  78. package/dist/components/card.js +16 -0
  79. package/dist/components/carousel.d.ts +12 -0
  80. package/dist/components/carousel.d.ts.map +1 -1
  81. package/dist/components/carousel.js +12 -0
  82. package/dist/components/catalog-drawer.d.ts +29 -0
  83. package/dist/components/catalog-drawer.d.ts.map +1 -0
  84. package/dist/components/catalog-drawer.js +31 -0
  85. package/dist/components/catalog-entry.d.ts +49 -26
  86. package/dist/components/catalog-entry.d.ts.map +1 -1
  87. package/dist/components/catalog-entry.js +5 -27
  88. package/dist/components/channel-view.d.ts +23 -0
  89. package/dist/components/channel-view.d.ts.map +1 -1
  90. package/dist/components/channel-view.js +13 -4
  91. package/dist/components/chart-area-stacked.d.ts +11 -1
  92. package/dist/components/chart-area-stacked.d.ts.map +1 -1
  93. package/dist/components/chart-area-stacked.js +12 -2
  94. package/dist/components/chart-axis.d.ts.map +1 -1
  95. package/dist/components/chart-axis.js +2 -0
  96. package/dist/components/chart-bar-horizontal.d.ts +11 -1
  97. package/dist/components/chart-bar-horizontal.d.ts.map +1 -1
  98. package/dist/components/chart-bar-horizontal.js +15 -2
  99. package/dist/components/chart-bar-multiple.d.ts +9 -4
  100. package/dist/components/chart-bar-multiple.d.ts.map +1 -1
  101. package/dist/components/chart-bar-multiple.js +10 -5
  102. package/dist/components/chart-bar-stacked.d.ts +11 -1
  103. package/dist/components/chart-bar-stacked.d.ts.map +1 -1
  104. package/dist/components/chart-bar-stacked.js +12 -2
  105. package/dist/components/chart-card.d.ts +38 -24
  106. package/dist/components/chart-card.d.ts.map +1 -1
  107. package/dist/components/chart-card.js +21 -8
  108. package/dist/components/chart-date-range-control.d.ts +15 -10
  109. package/dist/components/chart-date-range-control.d.ts.map +1 -1
  110. package/dist/components/chart-date-range-control.js +16 -12
  111. package/dist/components/chart-date-range.d.ts +2 -1
  112. package/dist/components/chart-date-range.d.ts.map +1 -1
  113. package/dist/components/chart-date-range.js +5 -2
  114. package/dist/components/chart-entity-colors.d.ts +7 -0
  115. package/dist/components/chart-entity-colors.d.ts.map +1 -1
  116. package/dist/components/chart-entity-colors.js +7 -0
  117. package/dist/components/chart-sparkline.d.ts +10 -0
  118. package/dist/components/chart-sparkline.d.ts.map +1 -1
  119. package/dist/components/chart-sparkline.js +8 -7
  120. package/dist/components/chart.d.ts +10 -0
  121. package/dist/components/chart.d.ts.map +1 -1
  122. package/dist/components/chart.js +27 -4
  123. package/dist/components/checkbox.d.ts +15 -0
  124. package/dist/components/checkbox.d.ts.map +1 -1
  125. package/dist/components/checkbox.js +15 -0
  126. package/dist/components/code-block.d.ts +15 -0
  127. package/dist/components/code-block.d.ts.map +1 -1
  128. package/dist/components/code-block.js +15 -0
  129. package/dist/components/collapsible.d.ts +12 -0
  130. package/dist/components/collapsible.d.ts.map +1 -1
  131. package/dist/components/collapsible.js +12 -0
  132. package/dist/components/collection-filters.d.ts +15 -2
  133. package/dist/components/collection-filters.d.ts.map +1 -1
  134. package/dist/components/collection-filters.js +13 -1
  135. package/dist/components/collection-page.d.ts +29 -115
  136. package/dist/components/collection-page.d.ts.map +1 -1
  137. package/dist/components/collection-page.js +24 -139
  138. package/dist/components/collection-search.d.ts +14 -0
  139. package/dist/components/collection-search.d.ts.map +1 -1
  140. package/dist/components/collection-search.js +14 -0
  141. package/dist/components/collection-sort.d.ts +13 -3
  142. package/dist/components/collection-sort.d.ts.map +1 -1
  143. package/dist/components/collection-sort.js +17 -4
  144. package/dist/components/collection-toolbar.d.ts +13 -0
  145. package/dist/components/collection-toolbar.d.ts.map +1 -1
  146. package/dist/components/collection-toolbar.js +13 -0
  147. package/dist/components/combobox.d.ts +17 -0
  148. package/dist/components/combobox.d.ts.map +1 -1
  149. package/dist/components/combobox.js +17 -0
  150. package/dist/components/command.d.ts +16 -0
  151. package/dist/components/command.d.ts.map +1 -1
  152. package/dist/components/command.js +16 -0
  153. package/dist/components/company-card/renderer.js +2 -2
  154. package/dist/components/company-card.d.ts +16 -4
  155. package/dist/components/company-card.d.ts.map +1 -1
  156. package/dist/components/company-card.js +22 -10
  157. package/dist/components/confirm-dialog.d.ts +24 -14
  158. package/dist/components/confirm-dialog.d.ts.map +1 -1
  159. package/dist/components/confirm-dialog.js +16 -10
  160. package/dist/components/context-menu.d.ts +10 -0
  161. package/dist/components/context-menu.d.ts.map +1 -1
  162. package/dist/components/context-menu.js +10 -0
  163. package/dist/components/copy-button.d.ts +10 -0
  164. package/dist/components/copy-button.d.ts.map +1 -1
  165. package/dist/components/copy-button.js +10 -0
  166. package/dist/components/dashboard-shell.d.ts +14 -0
  167. package/dist/components/dashboard-shell.d.ts.map +1 -1
  168. package/dist/components/dashboard-shell.js +15 -1
  169. package/dist/components/data-table.d.ts +23 -1
  170. package/dist/components/data-table.d.ts.map +1 -1
  171. package/dist/components/data-table.js +63 -31
  172. package/dist/components/desktop-shell.d.ts +15 -0
  173. package/dist/components/desktop-shell.d.ts.map +1 -1
  174. package/dist/components/desktop-shell.js +15 -0
  175. package/dist/components/dialog.d.ts +16 -0
  176. package/dist/components/dialog.d.ts.map +1 -1
  177. package/dist/components/dialog.js +16 -0
  178. package/dist/components/diff-count.d.ts +11 -0
  179. package/dist/components/diff-count.d.ts.map +1 -1
  180. package/dist/components/diff-count.js +11 -0
  181. package/dist/components/disclosure-row.d.ts +12 -0
  182. package/dist/components/disclosure-row.d.ts.map +1 -1
  183. package/dist/components/disclosure-row.js +12 -0
  184. package/dist/components/disclosure.d.ts +15 -5
  185. package/dist/components/disclosure.d.ts.map +1 -1
  186. package/dist/components/disclosure.js +15 -5
  187. package/dist/components/drawer.d.ts +13 -0
  188. package/dist/components/drawer.d.ts.map +1 -1
  189. package/dist/components/drawer.js +13 -0
  190. package/dist/components/dropdown-menu.d.ts +17 -5
  191. package/dist/components/dropdown-menu.d.ts.map +1 -1
  192. package/dist/components/dropdown-menu.js +20 -7
  193. package/dist/components/empty-art.d.ts +1 -1
  194. package/dist/components/empty-art.d.ts.map +1 -1
  195. package/dist/components/empty-art.js +8 -0
  196. package/dist/components/empty-state.d.ts +24 -10
  197. package/dist/components/empty-state.d.ts.map +1 -1
  198. package/dist/components/empty-state.js +23 -1
  199. package/dist/components/entry-scene.d.ts +33 -20
  200. package/dist/components/entry-scene.d.ts.map +1 -1
  201. package/dist/components/entry-scene.js +40 -9
  202. package/dist/components/expandable-block.d.ts +10 -0
  203. package/dist/components/expandable-block.d.ts.map +1 -1
  204. package/dist/components/expandable-block.js +10 -0
  205. package/dist/components/field.d.ts +17 -0
  206. package/dist/components/field.d.ts.map +1 -1
  207. package/dist/components/field.js +17 -0
  208. package/dist/components/file-diff.d.ts +12 -0
  209. package/dist/components/file-diff.d.ts.map +1 -1
  210. package/dist/components/file-diff.js +12 -0
  211. package/dist/components/file-type-icon.d.ts +12 -0
  212. package/dist/components/file-type-icon.d.ts.map +1 -1
  213. package/dist/components/file-type-icon.js +46 -31
  214. package/dist/components/footer.d.ts +14 -0
  215. package/dist/components/footer.d.ts.map +1 -1
  216. package/dist/components/footer.js +14 -0
  217. package/dist/components/form-dialog.d.ts +10 -0
  218. package/dist/components/form-dialog.d.ts.map +1 -1
  219. package/dist/components/form-dialog.js +10 -0
  220. package/dist/components/form-drawer.d.ts +24 -11
  221. package/dist/components/form-drawer.d.ts.map +1 -1
  222. package/dist/components/form-drawer.js +13 -3
  223. package/dist/components/form.d.ts +17 -0
  224. package/dist/components/form.d.ts.map +1 -1
  225. package/dist/components/form.js +25 -5
  226. package/dist/components/glass-control.d.ts +13 -0
  227. package/dist/components/glass-control.d.ts.map +1 -1
  228. package/dist/components/glass-control.js +13 -0
  229. package/dist/components/heatmap/calendar-heatmap.d.ts.map +1 -1
  230. package/dist/components/heatmap/calendar-heatmap.js +6 -4
  231. package/dist/components/hive-scene.d.ts +14 -0
  232. package/dist/components/hive-scene.d.ts.map +1 -1
  233. package/dist/components/hive-scene.js +14 -0
  234. package/dist/components/house-icons.d.ts +15 -0
  235. package/dist/components/house-icons.d.ts.map +1 -1
  236. package/dist/components/house-icons.js +19 -1
  237. package/dist/components/hover-card.d.ts +15 -0
  238. package/dist/components/hover-card.d.ts.map +1 -1
  239. package/dist/components/hover-card.js +15 -0
  240. package/dist/components/identity-mark.d.ts +55 -0
  241. package/dist/components/identity-mark.d.ts.map +1 -0
  242. package/dist/components/identity-mark.js +66 -0
  243. package/dist/components/input-group.d.ts +16 -0
  244. package/dist/components/input-group.d.ts.map +1 -1
  245. package/dist/components/input-group.js +17 -0
  246. package/dist/components/input-otp.d.ts +15 -0
  247. package/dist/components/input-otp.d.ts.map +1 -1
  248. package/dist/components/input-otp.js +15 -0
  249. package/dist/components/input.d.ts +15 -0
  250. package/dist/components/input.d.ts.map +1 -1
  251. package/dist/components/input.js +15 -0
  252. package/dist/components/item.d.ts +16 -0
  253. package/dist/components/item.d.ts.map +1 -1
  254. package/dist/components/item.js +16 -0
  255. package/dist/components/kbd.d.ts +14 -0
  256. package/dist/components/kbd.d.ts.map +1 -1
  257. package/dist/components/kbd.js +14 -0
  258. package/dist/components/kpi-card.d.ts +21 -13
  259. package/dist/components/kpi-card.d.ts.map +1 -1
  260. package/dist/components/kpi-card.js +14 -3
  261. package/dist/components/label-system.d.ts +12 -0
  262. package/dist/components/label-system.d.ts.map +1 -1
  263. package/dist/components/label-system.js +12 -0
  264. package/dist/components/label.d.ts +15 -0
  265. package/dist/components/label.d.ts.map +1 -1
  266. package/dist/components/label.js +15 -0
  267. package/dist/components/library-shelf.d.ts +35 -0
  268. package/dist/components/library-shelf.d.ts.map +1 -0
  269. package/dist/components/library-shelf.js +40 -0
  270. package/dist/components/memory-item.d.ts +12 -0
  271. package/dist/components/memory-item.d.ts.map +1 -1
  272. package/dist/components/memory-item.js +12 -0
  273. package/dist/components/menu-choice-row.d.ts +13 -5
  274. package/dist/components/menu-choice-row.d.ts.map +1 -1
  275. package/dist/components/menu-choice-row.js +12 -6
  276. package/dist/components/menubar.d.ts +13 -0
  277. package/dist/components/menubar.d.ts.map +1 -1
  278. package/dist/components/menubar.js +13 -0
  279. package/dist/components/message-notice.d.ts +16 -0
  280. package/dist/components/message-notice.d.ts.map +1 -1
  281. package/dist/components/message-notice.js +18 -2
  282. package/dist/components/model-identity.d.ts +16 -3
  283. package/dist/components/model-identity.d.ts.map +1 -1
  284. package/dist/components/model-identity.js +16 -3
  285. package/dist/components/model-mark.d.ts +15 -2
  286. package/dist/components/model-mark.d.ts.map +1 -1
  287. package/dist/components/model-mark.js +36 -23
  288. package/dist/components/nadia-presence.d.ts +10 -4
  289. package/dist/components/nadia-presence.d.ts.map +1 -1
  290. package/dist/components/nadia-presence.js +10 -4
  291. package/dist/components/native-select.d.ts +16 -0
  292. package/dist/components/native-select.d.ts.map +1 -1
  293. package/dist/components/native-select.js +21 -0
  294. package/dist/components/navigation-menu.d.ts +14 -0
  295. package/dist/components/navigation-menu.d.ts.map +1 -1
  296. package/dist/components/navigation-menu.js +14 -0
  297. package/dist/components/notice-banner.d.ts +10 -3
  298. package/dist/components/notice-banner.d.ts.map +1 -1
  299. package/dist/components/notice-banner.js +9 -3
  300. package/dist/components/numbered-steps.d.ts +33 -0
  301. package/dist/components/numbered-steps.d.ts.map +1 -0
  302. package/dist/components/numbered-steps.js +23 -0
  303. package/dist/components/object-page.d.ts +37 -0
  304. package/dist/components/object-page.d.ts.map +1 -0
  305. package/dist/components/object-page.js +19 -0
  306. package/dist/components/object-workspace.d.ts +26 -36
  307. package/dist/components/object-workspace.d.ts.map +1 -1
  308. package/dist/components/object-workspace.js +27 -24
  309. package/dist/components/overview-page.d.ts +24 -0
  310. package/dist/components/overview-page.d.ts.map +1 -0
  311. package/dist/components/overview-page.js +26 -0
  312. package/dist/components/page-actions.d.ts +28 -23
  313. package/dist/components/page-actions.d.ts.map +1 -1
  314. package/dist/components/page-actions.js +20 -14
  315. package/dist/components/page-header.d.ts +11 -5
  316. package/dist/components/page-header.d.ts.map +1 -1
  317. package/dist/components/page-header.js +11 -5
  318. package/dist/components/pagination.d.ts +15 -0
  319. package/dist/components/pagination.d.ts.map +1 -1
  320. package/dist/components/pagination.js +15 -0
  321. package/dist/components/pairing-code.d.ts +15 -4
  322. package/dist/components/pairing-code.d.ts.map +1 -1
  323. package/dist/components/pairing-code.js +15 -4
  324. package/dist/components/pending-label.d.ts +12 -4
  325. package/dist/components/pending-label.d.ts.map +1 -1
  326. package/dist/components/pending-label.js +12 -4
  327. package/dist/components/picture-label.d.ts +15 -7
  328. package/dist/components/picture-label.d.ts.map +1 -1
  329. package/dist/components/picture-label.js +15 -7
  330. package/dist/components/platform-mark.d.ts +12 -3
  331. package/dist/components/platform-mark.d.ts.map +1 -1
  332. package/dist/components/platform-mark.js +12 -3
  333. package/dist/components/plugin-slot-boundary.d.ts +15 -0
  334. package/dist/components/plugin-slot-boundary.d.ts.map +1 -1
  335. package/dist/components/plugin-slot-boundary.js +18 -1
  336. package/dist/components/popover.d.ts +15 -0
  337. package/dist/components/popover.d.ts.map +1 -1
  338. package/dist/components/popover.js +15 -0
  339. package/dist/components/portal-sidebar-frame.d.ts +26 -12
  340. package/dist/components/portal-sidebar-frame.d.ts.map +1 -1
  341. package/dist/components/portal-sidebar-frame.js +26 -0
  342. package/dist/components/product-message.d.ts.map +1 -1
  343. package/dist/components/product-message.js +1 -0
  344. package/dist/components/progress.d.ts +10 -8
  345. package/dist/components/progress.d.ts.map +1 -1
  346. package/dist/components/progress.js +17 -16
  347. package/dist/components/qr-code.d.ts +9 -3
  348. package/dist/components/qr-code.d.ts.map +1 -1
  349. package/dist/components/qr-code.js +9 -3
  350. package/dist/components/radio-group.d.ts +15 -0
  351. package/dist/components/radio-group.d.ts.map +1 -1
  352. package/dist/components/radio-group.js +15 -0
  353. package/dist/components/reading-column.d.ts +11 -0
  354. package/dist/components/reading-column.d.ts.map +1 -1
  355. package/dist/components/reading-column.js +11 -0
  356. package/dist/components/record-identity.d.ts +12 -7
  357. package/dist/components/record-identity.d.ts.map +1 -1
  358. package/dist/components/record-identity.js +12 -7
  359. package/dist/components/record-list.d.ts +119 -0
  360. package/dist/components/record-list.d.ts.map +1 -0
  361. package/dist/components/record-list.js +161 -0
  362. package/dist/components/record-sheet.d.ts +36 -0
  363. package/dist/components/record-sheet.d.ts.map +1 -0
  364. package/dist/components/record-sheet.js +19 -0
  365. package/dist/components/record-time.d.ts +27 -11
  366. package/dist/components/record-time.d.ts.map +1 -1
  367. package/dist/components/record-time.js +35 -14
  368. package/dist/components/resizable.d.ts +10 -0
  369. package/dist/components/resizable.d.ts.map +1 -1
  370. package/dist/components/resizable.js +10 -0
  371. package/dist/components/row-edit-form.d.ts +8 -5
  372. package/dist/components/row-edit-form.d.ts.map +1 -1
  373. package/dist/components/row-edit-form.js +8 -5
  374. package/dist/components/run-timeline.d.ts +24 -11
  375. package/dist/components/run-timeline.d.ts.map +1 -1
  376. package/dist/components/run-timeline.js +13 -6
  377. package/dist/components/scope-switcher.d.ts +11 -0
  378. package/dist/components/scope-switcher.d.ts.map +1 -1
  379. package/dist/components/scope-switcher.js +20 -9
  380. package/dist/components/scroll-area.d.ts +12 -0
  381. package/dist/components/scroll-area.d.ts.map +1 -1
  382. package/dist/components/scroll-area.js +12 -0
  383. package/dist/components/select.d.ts +16 -0
  384. package/dist/components/select.d.ts.map +1 -1
  385. package/dist/components/select.js +16 -0
  386. package/dist/components/separator.d.ts +11 -0
  387. package/dist/components/separator.d.ts.map +1 -1
  388. package/dist/components/separator.js +11 -0
  389. package/dist/components/settings-facts.d.ts +18 -1
  390. package/dist/components/settings-facts.d.ts.map +1 -1
  391. package/dist/components/settings-facts.js +20 -1
  392. package/dist/components/settings-page.d.ts +20 -0
  393. package/dist/components/settings-page.d.ts.map +1 -0
  394. package/dist/components/settings-page.js +16 -0
  395. package/dist/components/settings-section.d.ts +38 -8
  396. package/dist/components/settings-section.d.ts.map +1 -1
  397. package/dist/components/settings-section.js +33 -7
  398. package/dist/components/sheet.d.ts +16 -0
  399. package/dist/components/sheet.d.ts.map +1 -1
  400. package/dist/components/sheet.js +16 -0
  401. package/dist/components/sidebar-sections.d.ts +40 -0
  402. package/dist/components/sidebar-sections.d.ts.map +1 -0
  403. package/dist/components/sidebar-sections.js +35 -0
  404. package/dist/components/sidebar.d.ts +14 -1
  405. package/dist/components/sidebar.d.ts.map +1 -1
  406. package/dist/components/sidebar.js +24 -5
  407. package/dist/components/skeleton.d.ts +10 -0
  408. package/dist/components/skeleton.d.ts.map +1 -1
  409. package/dist/components/skeleton.js +11 -1
  410. package/dist/components/slider.d.ts +14 -0
  411. package/dist/components/slider.d.ts.map +1 -1
  412. package/dist/components/slider.js +14 -0
  413. package/dist/components/sonner.d.ts +18 -0
  414. package/dist/components/sonner.d.ts.map +1 -1
  415. package/dist/components/sonner.js +23 -2
  416. package/dist/components/status-badge.d.ts +13 -2
  417. package/dist/components/status-badge.d.ts.map +1 -1
  418. package/dist/components/status-badge.js +21 -9
  419. package/dist/components/status-dot.d.ts +12 -0
  420. package/dist/components/status-dot.d.ts.map +1 -1
  421. package/dist/components/status-dot.js +12 -0
  422. package/dist/components/status-row.d.ts +14 -0
  423. package/dist/components/status-row.d.ts.map +1 -1
  424. package/dist/components/status-row.js +14 -0
  425. package/dist/components/switch.d.ts +15 -0
  426. package/dist/components/switch.d.ts.map +1 -1
  427. package/dist/components/switch.js +15 -0
  428. package/dist/components/table-card.d.ts +16 -3
  429. package/dist/components/table-card.d.ts.map +1 -1
  430. package/dist/components/table-card.js +16 -3
  431. package/dist/components/table-value.d.ts +24 -2
  432. package/dist/components/table-value.d.ts.map +1 -1
  433. package/dist/components/table-value.js +25 -3
  434. package/dist/components/table.d.ts +16 -0
  435. package/dist/components/table.d.ts.map +1 -1
  436. package/dist/components/table.js +17 -1
  437. package/dist/components/tabs.d.ts +27 -0
  438. package/dist/components/tabs.d.ts.map +1 -1
  439. package/dist/components/tabs.js +27 -0
  440. package/dist/components/tag.d.ts +12 -2
  441. package/dist/components/tag.d.ts.map +1 -1
  442. package/dist/components/tag.js +12 -2
  443. package/dist/components/text-link.d.ts +17 -0
  444. package/dist/components/text-link.d.ts.map +1 -1
  445. package/dist/components/text-link.js +17 -0
  446. package/dist/components/textarea.d.ts +14 -0
  447. package/dist/components/textarea.d.ts.map +1 -1
  448. package/dist/components/textarea.js +14 -0
  449. package/dist/components/theme-mode-switcher.d.ts +21 -0
  450. package/dist/components/theme-mode-switcher.d.ts.map +1 -1
  451. package/dist/components/theme-mode-switcher.js +23 -1
  452. package/dist/components/toggle-group.d.ts +13 -0
  453. package/dist/components/toggle-group.d.ts.map +1 -1
  454. package/dist/components/toggle-group.js +16 -1
  455. package/dist/components/toggle.d.ts +14 -0
  456. package/dist/components/toggle.d.ts.map +1 -1
  457. package/dist/components/toggle.js +14 -0
  458. package/dist/components/tool-icon.d.ts +14 -4
  459. package/dist/components/tool-icon.d.ts.map +1 -1
  460. package/dist/components/tool-icon.js +28 -19
  461. package/dist/components/tooltip.d.ts +15 -0
  462. package/dist/components/tooltip.d.ts.map +1 -1
  463. package/dist/components/tooltip.js +15 -0
  464. package/dist/components/trend-badge.d.ts +16 -1
  465. package/dist/components/trend-badge.d.ts.map +1 -1
  466. package/dist/components/trend-badge.js +16 -7
  467. package/dist/components/update-card.d.ts +36 -0
  468. package/dist/components/update-card.d.ts.map +1 -0
  469. package/dist/components/update-card.js +28 -0
  470. package/dist/components/usage-meter.d.ts +15 -0
  471. package/dist/components/usage-meter.d.ts.map +1 -1
  472. package/dist/components/usage-meter.js +20 -1
  473. package/dist/components/waiting-line.d.ts +13 -10
  474. package/dist/components/waiting-line.d.ts.map +1 -1
  475. package/dist/components/waiting-line.js +13 -10
  476. package/dist/eslint/index.js +9 -0
  477. package/dist/eslint/rules/empty-state-owner.js +145 -0
  478. package/dist/eslint/rules/jsx-class-utility.js +5 -0
  479. package/dist/eslint/rules/menu-owner.js +75 -0
  480. package/dist/eslint/rules/no-choice-control-wrapper.js +2 -0
  481. package/dist/eslint/rules/no-decorative-icon.js +164 -0
  482. package/dist/eslint/rules/no-deprecated-zod-api.js +1 -0
  483. package/dist/eslint/rules/no-shadcn-appearance-override.js +1 -0
  484. package/dist/eslint/rules/no-subject-derived-expectation.js +1 -1
  485. package/dist/eslint/rules/no-write-in-subscription.js +1 -0
  486. package/dist/eslint/rules/page-composition.js +232 -0
  487. package/dist/eslint/rules/rendered-import.js +121 -0
  488. package/dist/eslint/strict-design-system.js +1 -1
  489. package/dist/hooks/use-hydrated.d.ts +2 -0
  490. package/dist/hooks/use-hydrated.d.ts.map +1 -0
  491. package/dist/hooks/use-hydrated.js +7 -0
  492. package/dist/index.d.ts +15 -10
  493. package/dist/index.d.ts.map +1 -1
  494. package/dist/index.js +15 -10
  495. package/dist/internal/agent-orb.d.ts.map +1 -1
  496. package/dist/internal/agent-orb.js +2 -1
  497. package/dist/internal/assistant-ui/attachment.d.ts.map +1 -1
  498. package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -1
  499. package/dist/internal/assistant-ui/reasoning.js +3 -1
  500. package/dist/internal/assistant-ui/thread.js +3 -1
  501. package/dist/internal/assistant-ui/tool-fallback.d.ts.map +1 -1
  502. package/dist/internal/assistant-ui/tool-fallback.js +13 -13
  503. package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -1
  504. package/dist/internal/assistant-ui/tool-group.js +3 -1
  505. package/dist/internal/catalog-list.d.ts +14 -0
  506. package/dist/internal/catalog-list.d.ts.map +1 -0
  507. package/dist/internal/catalog-list.js +53 -0
  508. package/dist/internal/empty.d.ts +6 -9
  509. package/dist/internal/empty.d.ts.map +1 -1
  510. package/dist/internal/empty.js +24 -22
  511. package/dist/internal/footer-strip.d.ts +0 -4
  512. package/dist/internal/footer-strip.d.ts.map +1 -1
  513. package/dist/internal/footer-strip.js +0 -4
  514. package/dist/internal/record-menu-items.d.ts +19 -0
  515. package/dist/internal/record-menu-items.d.ts.map +1 -0
  516. package/dist/internal/record-menu-items.js +20 -0
  517. package/dist/internal/settings-save.d.ts +43 -0
  518. package/dist/internal/settings-save.d.ts.map +1 -0
  519. package/dist/internal/settings-save.js +147 -0
  520. package/dist/lib/theme-mode.d.ts +1 -1
  521. package/dist/lib/theme-mode.js +2 -2
  522. package/dist/lib/use-copy-to-clipboard.d.ts.map +1 -1
  523. package/dist/lib/use-copy-to-clipboard.js +1 -0
  524. package/dist/showcase/assets.d.ts +8 -0
  525. package/dist/showcase/assets.d.ts.map +1 -0
  526. package/dist/showcase/assets.js +13 -0
  527. package/dist/showcase/foundations.d.ts +2 -0
  528. package/dist/showcase/foundations.d.ts.map +1 -0
  529. package/dist/showcase/foundations.js +61 -0
  530. package/dist/showcase/samples.d.ts +21 -0
  531. package/dist/showcase/samples.d.ts.map +1 -0
  532. package/dist/showcase/samples.js +48 -0
  533. package/dist/showcase/showcase.d.ts +10 -0
  534. package/dist/showcase/showcase.d.ts.map +1 -0
  535. package/dist/showcase/showcase.js +44 -0
  536. package/dist/showcase/specimens/actions.d.ts +7 -0
  537. package/dist/showcase/specimens/actions.d.ts.map +1 -0
  538. package/dist/showcase/specimens/actions.js +15 -0
  539. package/dist/showcase/specimens/charts.d.ts +17 -0
  540. package/dist/showcase/specimens/charts.d.ts.map +1 -0
  541. package/dist/showcase/specimens/charts.js +104 -0
  542. package/dist/showcase/specimens/choices.d.ts +21 -0
  543. package/dist/showcase/specimens/choices.d.ts.map +1 -0
  544. package/dist/showcase/specimens/choices.js +68 -0
  545. package/dist/showcase/specimens/compositions.d.ts +39 -0
  546. package/dist/showcase/specimens/compositions.d.ts.map +1 -0
  547. package/dist/showcase/specimens/compositions.js +270 -0
  548. package/dist/showcase/specimens/data.d.ts +31 -0
  549. package/dist/showcase/specimens/data.d.ts.map +1 -0
  550. package/dist/showcase/specimens/data.js +111 -0
  551. package/dist/showcase/specimens/feedback.d.ts +23 -0
  552. package/dist/showcase/specimens/feedback.d.ts.map +1 -0
  553. package/dist/showcase/specimens/feedback.js +64 -0
  554. package/dist/showcase/specimens/index.d.ts +164 -0
  555. package/dist/showcase/specimens/index.d.ts.map +1 -0
  556. package/dist/showcase/specimens/index.js +24 -0
  557. package/dist/showcase/specimens/inputs.d.ts +22 -0
  558. package/dist/showcase/specimens/inputs.d.ts.map +1 -0
  559. package/dist/showcase/specimens/inputs.js +60 -0
  560. package/dist/showcase/specimens/menus.d.ts +20 -0
  561. package/dist/showcase/specimens/menus.d.ts.map +1 -0
  562. package/dist/showcase/specimens/menus.js +65 -0
  563. package/dist/showcase/specimens/navigation.d.ts +22 -0
  564. package/dist/showcase/specimens/navigation.d.ts.map +1 -0
  565. package/dist/showcase/specimens/navigation.js +103 -0
  566. package/dist/showcase/specimens/other.d.ts +26 -0
  567. package/dist/showcase/specimens/other.d.ts.map +1 -0
  568. package/dist/showcase/specimens/other.js +73 -0
  569. package/dist/showcase/specimens/specimen.d.ts +5 -0
  570. package/dist/showcase/specimens/specimen.d.ts.map +1 -0
  571. package/dist/showcase/specimens/specimen.js +1 -0
  572. package/dist/showcase/specimens/status.d.ts +22 -0
  573. package/dist/showcase/specimens/status.d.ts.map +1 -0
  574. package/dist/showcase/specimens/status.js +44 -0
  575. package/dist/showcase/usage.generated.d.ts +16 -0
  576. package/dist/showcase/usage.generated.d.ts.map +1 -0
  577. package/dist/showcase/usage.generated.js +1788 -0
  578. package/dist/standalone/index.js +2 -2
  579. package/dist/standalone/orb-page.js +1 -0
  580. package/dist/styles/components.css +21 -0
  581. package/package.json +8 -3
  582. package/dist/components/automation-section.d.ts +0 -78
  583. package/dist/components/automation-section.d.ts.map +0 -1
  584. package/dist/components/automation-section.js +0 -75
  585. package/dist/components/catalog-tile.d.ts +0 -19
  586. package/dist/components/catalog-tile.d.ts.map +0 -1
  587. package/dist/components/catalog-tile.js +0 -13
  588. package/dist/components/feedback-state.d.ts +0 -14
  589. package/dist/components/feedback-state.d.ts.map +0 -1
  590. package/dist/components/feedback-state.js +0 -65
  591. package/dist/components/installer-shell.d.ts +0 -25
  592. package/dist/components/installer-shell.d.ts.map +0 -1
  593. package/dist/components/installer-shell.js +0 -32
  594. package/dist/components/settings-form.d.ts +0 -9
  595. package/dist/components/settings-form.d.ts.map +0 -1
  596. package/dist/components/settings-form.js +0 -85
@@ -1,57 +1,47 @@
1
- import type { ComponentProps, ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
+ import { type PageCommand } from "./page-actions.js";
2
3
  export type ObjectFact = {
3
4
  label: string;
4
5
  value: ReactNode;
5
- icon?: ReactNode;
6
6
  /**
7
7
  * A value long enough to be a paragraph rather than a figure, such as a note
8
8
  * or a pasted reference. It takes the full measure with its label above it.
9
9
  */
10
10
  block?: boolean;
11
11
  };
12
- export type ObjectIdentityFact = {
13
- label: string;
14
- value: ReactNode;
15
- };
16
12
  /**
17
- * An object's page opens with this header on the page ground, never in a card:
18
- * its picture, its name, one line saying what it is, a row of key facts, and at
19
- * the trailing edge the page's one primary action and its three dots. The
20
- * sections below it are the cards. On a page it opens, the header is the page's
21
- * title and its name is the h1; elsewhere the name is text at heading size.
13
+ * A section of an object's page: a card that owns one decision about the object.
14
+ *
15
+ * @family Compositions
16
+ * @when A part of an ObjectPage a person reads or changes on its own: a customer's Company details, an Agent's Instructions, a Library entry's source.
17
+ * @instead Values a person edits and saves together are a SettingsSection; a list of the object's records is a RecordList with its heading; a passing condition is a MessageNotice.
18
+ * @behaviour A resting card: its title and an optional line, at the trailing edge `meta` (muted) then `action` as an outline button, then its body. No icon in the header.
19
+ * @words The title names what the section holds ("Company", "Instructions"); the action is a verb on it ("Edit"); `meta` is a short count or time ("2 of 5 Agents").
20
+ * @access The title is a heading one level under the page (h2), deeper only under another heading through `headingLevel`.
22
21
  */
23
- export declare function ObjectIdentity({ visual, title, description, facts, action, menu, headingProps, }: {
24
- /** The object's picture: an Agent's orb, an app's mark, a Library entry's tile. */
25
- visual?: ReactNode;
26
- title: ReactNode;
27
- description?: ReactNode;
28
- facts?: readonly ObjectIdentityFact[];
29
- /** The page's single primary action. */
30
- action?: ReactNode;
31
- /** The three dots holding every other action on the object. */
32
- menu?: ReactNode;
33
- /**
34
- * Given on a page this header opens, where the name is the page's title: the
35
- * name is then its h1, with these attributes. Without it the name is text.
36
- */
37
- headingProps?: Omit<ComponentProps<"h1">, "children">;
38
- }): import("react").JSX.Element;
39
- export declare function ObjectOverview({ primary, supporting, }: {
40
- primary: ReactNode;
41
- supporting: ReactNode;
42
- }): import("react").JSX.Element;
43
- export declare function ObjectSection({ title, description, action, icon, children, headingLevel, }: {
22
+ export declare function ObjectSection({ title, description, action, meta, children, headingLevel, }: {
44
23
  title: string;
45
24
  description?: ReactNode;
46
- action?: ReactNode;
47
- icon?: ReactNode;
25
+ /** The section's one command, an outline button in its header. */
26
+ action?: PageCommand;
27
+ /** A muted note at the header's trailing edge, before the action: "2 of 5 Agents". */
28
+ meta?: ReactNode;
48
29
  children: ReactNode;
49
30
  /** A card titles a section of its page; nest it deeper only under another heading. */
50
31
  headingLevel?: 2 | 3 | 4;
51
32
  }): import("react").JSX.Element;
52
- export declare function ObjectFacts({ facts, density, layout, }: {
33
+ /**
34
+ * An object's facts as labelled values in a grid, inside one of its sections.
35
+ *
36
+ * @family Data
37
+ * @when Read-only values that describe an object, inside an ObjectSection: a company's legal name, VAT number and address.
38
+ * @instead Facts under the object's name belong to ObjectPage's `facts`; values a person changes are SettingsFields in a SettingsSection; figures compared across records are a DataTable.
39
+ * @behaviour Two columns from `sm`, one below; `compact` tightens the gaps for a dense card; a `block` fact takes the full width and keeps its line breaks.
40
+ * @words A label is a noun ("Billing email"); a value is the fact itself, with no unit the label already says.
41
+ * @access A description list: each label is its value's term and names it.
42
+ */
43
+ export declare function ObjectFacts({ facts, density, }: {
53
44
  facts: readonly ObjectFact[];
54
45
  density?: "compact" | "default";
55
- layout?: "grid" | "rows";
56
46
  }): import("react").JSX.Element;
57
47
  //# sourceMappingURL=object-workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-workspace.d.ts","sourceRoot":"","sources":["../../src/components/object-workspace.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvD,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,WAAW,EACX,KAAK,EACL,MAAM,EACN,IAAI,EACJ,YAAY,GACb,EAAE;IACD,mFAAmF;IACnF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtC,wCAAwC;IACxC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;CACvD,+BA0CA;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,GACX,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;CACvB,+BAUA;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,YAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,sFAAsF;IACtF,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC1B,+BAkBA;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAmB,EACnB,MAAe,GAChB,EAAE;IACD,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B,+BA2CA"}
1
+ {"version":3,"file":"object-workspace.d.ts","sourceRoot":"","sources":["../../src/components/object-workspace.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAI9C,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,gBAAgB,CAAC;AAErE,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,YAAgB,GACjB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,kEAAkE;IAClE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sFAAsF;IACtF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,sFAAsF;IACtF,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC1B,+BAsBA;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAmB,GACpB,EAAE;IACD,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC,+BAiCA"}
@@ -1,31 +1,34 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
2
3
  import { cn } from "../lib/utils.js";
3
4
  import { Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle } from "./card.js";
5
+ import { PageCommandButton } from "./page-actions.js";
4
6
  /**
5
- * An object's page opens with this header on the page ground, never in a card:
6
- * its picture, its name, one line saying what it is, a row of key facts, and at
7
- * the trailing edge the page's one primary action and its three dots. The
8
- * sections below it are the cards. On a page it opens, the header is the page's
9
- * title and its name is the h1; elsewhere the name is text at heading size.
7
+ * A section of an object's page: a card that owns one decision about the object.
8
+ *
9
+ * @family Compositions
10
+ * @when A part of an ObjectPage a person reads or changes on its own: a customer's Company details, an Agent's Instructions, a Library entry's source.
11
+ * @instead Values a person edits and saves together are a SettingsSection; a list of the object's records is a RecordList with its heading; a passing condition is a MessageNotice.
12
+ * @behaviour A resting card: its title and an optional line, at the trailing edge `meta` (muted) then `action` as an outline button, then its body. No icon in the header.
13
+ * @words The title names what the section holds ("Company", "Instructions"); the action is a verb on it ("Edit"); `meta` is a short count or time ("2 of 5 Agents").
14
+ * @access The title is a heading one level under the page (h2), deeper only under another heading through `headingLevel`.
10
15
  */
11
- export function ObjectIdentity({ visual, title, description, facts, action, menu, headingProps, }) {
12
- const nameClass = "text-heading-md break-words text-foreground";
13
- return (_jsxs("header", { className: "grid min-w-0 gap-5", "data-slot": "object-identity", children: [_jsxs("div", { className: "flex min-w-0 flex-wrap items-center justify-between gap-x-6 gap-y-4", children: [_jsxs("div", { className: "flex min-w-0 flex-1 basis-72 items-center gap-4", children: [visual ? _jsx("div", { className: "shrink-0", children: visual }) : null, _jsxs("div", { className: "grid min-w-0 gap-1", children: [headingProps ? (_jsx("h1", { ...headingProps, className: cn(nameClass, "outline-none", headingProps.className), children: title })) : (_jsx("p", { className: nameClass, children: title })), description ? (_jsx("div", { className: "min-w-0 text-body-md text-muted-foreground", children: description })) : null] })] }), action || menu ? (_jsxs("div", { className: "flex shrink-0 items-center gap-2", "data-slot": "object-identity-actions", children: [action, menu] })) : null] }), facts && facts.length > 0 ? (_jsx("dl", { className: "flex min-w-0 flex-wrap gap-x-10 gap-y-4", "data-slot": "object-identity-facts", children: facts.map((fact) => (_jsxs("div", { className: "grid min-w-0 gap-1", children: [_jsx("dt", { className: "text-xs text-muted-foreground", children: fact.label }), _jsx("dd", { className: "flex min-h-6 min-w-0 items-center text-sm", children: fact.value })] }, fact.label))) })) : null] }));
16
+ export function ObjectSection({ title, description, action, meta, children, headingLevel = 2, }) {
17
+ return (_jsxs(Card, { "data-slot": "object-section", children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { role: "heading", "aria-level": headingLevel, children: title }), description ? _jsx(CardDescription, { children: description }) : null, action || meta ? (_jsxs(CardAction, { className: "flex items-center gap-3", children: [meta ? (_jsx("span", { className: "text-label-sm text-muted-foreground", "data-slot": "object-section-meta", children: meta })) : null, action ? _jsx(PageCommandButton, { command: action, variant: "outline" }) : null] })) : null] }), _jsx(CardContent, { children: children })] }));
14
18
  }
15
- export function ObjectOverview({ primary, supporting, }) {
16
- return (_jsxs("div", { "data-slot": "object-overview", className: "grid min-w-0 items-start gap-6 xl:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)]", children: [_jsx("div", { className: "grid min-w-0 gap-6", children: primary }), _jsx("div", { className: "grid min-w-0 gap-6", children: supporting })] }));
17
- }
18
- export function ObjectSection({ title, description, action, icon, children, headingLevel = 2, }) {
19
- return (_jsxs(Card, { "data-slot": "object-section", children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { role: "heading", "aria-level": headingLevel, className: "flex items-center gap-2", children: [icon ? (_jsx("span", { "aria-hidden": "true", className: "text-muted-foreground [&_svg]:size-4", children: icon })) : null, title] }), description ? _jsx(CardDescription, { children: description }) : null, action ? _jsx(CardAction, { children: action }) : null] }), _jsx(CardContent, { children: children })] }));
20
- }
21
- export function ObjectFacts({ facts, density = "default", layout = "grid", }) {
22
- return (_jsx("dl", { "data-density": density, "data-slot": "object-facts", className: layout === "rows"
23
- ? "grid min-w-0 divide-y divide-border"
24
- : density === "compact"
25
- ? "grid min-w-0 grid-cols-2 gap-x-6 gap-y-2"
26
- : "grid min-w-0 gap-x-6 gap-y-5 sm:grid-cols-2", children: facts.map((fact) => (_jsxs("div", { className: cn(layout === "rows"
27
- ? cn("grid min-w-0 gap-2 py-3", !fact.block && "sm:grid-cols-[minmax(0,12rem)_minmax(0,1fr)]")
28
- : density === "compact"
29
- ? "grid min-w-0 gap-0.5"
30
- : "grid min-w-0 gap-1.5", fact.block && "col-span-full"), children: [_jsxs("dt", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [fact.icon ? (_jsx("span", { "aria-hidden": "true", className: "[&_svg]:size-3.5", children: fact.icon })) : null, fact.label] }), _jsx("dd", { className: cn("text-sm break-words", fact.block && "whitespace-pre-wrap"), children: fact.value })] }, fact.label))) }));
19
+ /**
20
+ * An object's facts as labelled values in a grid, inside one of its sections.
21
+ *
22
+ * @family Data
23
+ * @when Read-only values that describe an object, inside an ObjectSection: a company's legal name, VAT number and address.
24
+ * @instead Facts under the object's name belong to ObjectPage's `facts`; values a person changes are SettingsFields in a SettingsSection; figures compared across records are a DataTable.
25
+ * @behaviour Two columns from `sm`, one below; `compact` tightens the gaps for a dense card; a `block` fact takes the full width and keeps its line breaks.
26
+ * @words A label is a noun ("Billing email"); a value is the fact itself, with no unit the label already says.
27
+ * @access A description list: each label is its value's term and names it.
28
+ */
29
+ export function ObjectFacts({ facts, density = "default", }) {
30
+ const termId = useId();
31
+ return (_jsx("dl", { "data-density": density, "data-slot": "object-facts", className: density === "compact"
32
+ ? "grid min-w-0 grid-cols-2 gap-x-6 gap-y-2"
33
+ : "grid min-w-0 gap-x-6 gap-y-5 sm:grid-cols-2", children: facts.map((fact, index) => (_jsxs("div", { className: cn(density === "compact" ? "grid min-w-0 gap-0.5" : "grid min-w-0 gap-1.5", fact.block && "col-span-full"), children: [_jsx("dt", { className: "text-xs text-muted-foreground", id: `${termId}-${index}`, children: fact.label }), _jsx("dd", { "aria-labelledby": `${termId}-${index}`, className: cn("text-sm break-words", fact.block && "whitespace-pre-wrap"), children: fact.value })] }, fact.label))) }));
31
34
  }
@@ -0,0 +1,24 @@
1
+ import type { ReactElement, ReactNode } from "react";
2
+ import { type KpiCardProps } from "./kpi-card.js";
3
+ export type OverviewPageProps = {
4
+ /** On the title row, through PageActions. */
5
+ period?: ReactElement;
6
+ /** The figures, one row of equal cards, one column below md. */
7
+ figures?: readonly Omit<KpiCardProps, "presentation">[];
8
+ /** The chart cards, each with its one header, in reading order. */
9
+ charts?: ReactNode;
10
+ /** The exceptions that need a person, each opening its owner: a RecordList with its heading. */
11
+ exceptions?: ReactNode;
12
+ };
13
+ /**
14
+ * The page that answers "what needs attention?": is anything wrong, and where.
15
+ *
16
+ * @family Compositions
17
+ * @when The landing page of an area a person checks: the Portal's Dashboard, Analytics, Statements, System health, an Agent's Usage.
18
+ * @instead A list of records a person finds one of is a `CollectionPage`; one record is an `ObjectPage`. Never a stack of previews of every section: each exception links to its owner instead.
19
+ * @behaviour The reading period on the title row, then the figures in one row of equal `KpiCard`s (four columns from md, fewer when fewer, one column below), then the chart cards, then the exceptions, 16 px apart. It has no states of its own: each card and the exceptions' `RecordList` draw theirs.
20
+ * @words The product words every figure, chart and exception. A figure's label names its measure ("Active Agents", "Spend"), the chart's title names its reading ("Usage"), and the exceptions' heading says what they are ("Needs attention").
21
+ * @access Each chart card is a named section at the page's heading level, and the exceptions carry their own heading; figures are text, never colour alone.
22
+ */
23
+ export declare function OverviewPage({ period, figures, charts, exceptions }: OverviewPageProps): import("react").JSX.Element;
24
+ //# sourceMappingURL=overview-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview-page.d.ts","sourceRoot":"","sources":["../../src/components/overview-page.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGnE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6CAA6C;IAC7C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,gEAAgE;IAChE,OAAO,CAAC,EAAE,SAAS,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,CAAC;IACxD,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,gGAAgG;IAChG,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC;AAUF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAY,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,iBAAiB,+BAe3F"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { CardRow } from "./card-row.js";
4
+ import { KpiCard } from "./kpi-card.js";
5
+ import { PageActions } from "./page-actions.js";
6
+ const MAX_FIGURE_COLUMNS = 4;
7
+ function figureColumns(count) {
8
+ if (count >= MAX_FIGURE_COLUMNS)
9
+ return MAX_FIGURE_COLUMNS;
10
+ if (count === 3 || count === 2)
11
+ return count;
12
+ return "auto";
13
+ }
14
+ /**
15
+ * The page that answers "what needs attention?": is anything wrong, and where.
16
+ *
17
+ * @family Compositions
18
+ * @when The landing page of an area a person checks: the Portal's Dashboard, Analytics, Statements, System health, an Agent's Usage.
19
+ * @instead A list of records a person finds one of is a `CollectionPage`; one record is an `ObjectPage`. Never a stack of previews of every section: each exception links to its owner instead.
20
+ * @behaviour The reading period on the title row, then the figures in one row of equal `KpiCard`s (four columns from md, fewer when fewer, one column below), then the chart cards, then the exceptions, 16 px apart. It has no states of its own: each card and the exceptions' `RecordList` draw theirs.
21
+ * @words The product words every figure, chart and exception. A figure's label names its measure ("Active Agents", "Spend"), the chart's title names its reading ("Usage"), and the exceptions' heading says what they are ("Needs attention").
22
+ * @access Each chart card is a named section at the page's heading level, and the exceptions carry their own heading; figures are text, never colour alone.
23
+ */
24
+ export function OverviewPage({ period, figures = [], charts, exceptions }) {
25
+ return (_jsxs("div", { "data-slot": "overview-page", className: "grid min-w-0 gap-4", children: [_jsx(PageActions, { ...(period ? { period } : {}) }), figures.length > 0 ? (_jsx(CardRow, { columns: figureColumns(figures.length), from: "md", children: figures.map((figure) => (_jsx(KpiCard, { ...figure }, figure.label))) })) : null, charts, exceptions] }));
26
+ }
@@ -1,4 +1,5 @@
1
1
  import { type MouseEvent, type ReactElement, type ReactNode } from "react";
2
+ import { type MenuCommand, type RecordMenu } from "./action-menu.js";
2
3
  export type PageCommandAction = {
3
4
  onClick: (event: MouseEvent<HTMLElement>) => void;
4
5
  render?: never;
@@ -11,41 +12,37 @@ export type PageCommandAction = {
11
12
  render: ReactElement;
12
13
  onClick?: never;
13
14
  };
14
- /** A command drawn as a button on the title's row. Its variant is its slot's. */
15
+ /** A command drawn as a button: on the title row, in an empty state, in a row. Its icon leads the label. */
15
16
  export type PageCommand = PageCommandAction & {
16
17
  label: string;
17
- icon?: ReactElement;
18
- /** Opens outside the product, marked with the arrow at its end. */
19
- external?: boolean;
20
- disabled?: boolean;
21
- };
22
- export type PageMenuCommand = PageCommandAction & {
23
- label: string;
24
- icon?: ReactElement;
25
- disabled?: boolean;
26
- destructive?: boolean;
18
+ icon?: ReactElement | undefined;
19
+ /** Read instead of the label when the label alone does not name the target: "Sign in to Notion". */
20
+ accessibleName?: string | undefined;
21
+ /** Opens outside the product: the arrow after the label. */
22
+ external?: boolean | undefined;
23
+ disabled?: boolean | undefined;
24
+ /** Running: the button keeps its place, size and icon and says `pendingLabel`, with aria-busy. */
25
+ pending?: boolean | undefined;
26
+ pendingLabel?: string | undefined;
27
27
  };
28
28
  /** The page's three dots, which open only for two commands or more. */
29
- export type PageMenu = {
30
- label: string;
31
- commands: readonly [PageMenuCommand, PageMenuCommand, ...PageMenuCommand[]];
29
+ export type PageMenu = Omit<RecordMenu, "commands"> & {
30
+ commands: readonly [MenuCommand, MenuCommand, ...MenuCommand[]];
32
31
  };
33
- /**
34
- * A page's actions (DESIGN.md "Page compositions"): at most one
35
- * secondary button, the primary action, then the overflow menu at the end.
36
- */
37
32
  export type PageActionsProps = {
38
- primary?: PageCommand | undefined;
33
+ /** An overview's reading period, first on the title row: a period `Select` or `DateRangeControl`. */
34
+ period?: ReactElement | undefined;
39
35
  secondary?: PageCommand | undefined;
40
- menu?: PageMenu | ReactElement | undefined;
36
+ primary?: PageCommand | undefined;
37
+ menu?: PageMenu | undefined;
41
38
  };
42
- /** One command as a button in a given slot's variant. */
39
+ type CommandVariant = "default" | "outline" | "ghost" | "link";
43
40
  export declare function PageCommandButton({ command, variant, }: {
44
41
  command: PageCommand;
45
- variant: "default" | "outline" | "ghost";
42
+ variant: CommandVariant;
46
43
  }): import("react").JSX.Element;
47
44
  /** The row of a page's actions where it stands, for a page whose header is its own card. */
48
- export declare function PageActionsRow({ primary, secondary, menu }: PageActionsProps): import("react").JSX.Element | null;
45
+ export declare function PageActionsRow({ period, primary, secondary, menu }: PageActionsProps): import("react").JSX.Element | null;
49
46
  /**
50
47
  * Holds the place on the title's row where the open page puts its actions. The
51
48
  * product's chrome draws the row (`PageHeader`) and the page below draws its
@@ -60,6 +57,14 @@ export declare function PageActionsSlot(): import("react").JSX.Element;
60
57
  * A page's actions, drawn on its title's row. Only the page shown last owns
61
58
  * the row: a page kept hidden for a quick return gives the row back. Outside a
62
59
  * `PageActionsHostProvider`, they render where they stand.
60
+ *
61
+ * @family Actions
62
+ * @when The actions of a collection, an object or an overview page, on the title's row at its trailing edge. A Configuration page has none: each section saves from its footer.
63
+ * @instead A row's actions are the row's one button and its `ActionMenu`. A collection toolbar holds search and filters, never a page action.
64
+ * @behaviour Takes `period`, `secondary`, `primary` and `menu` and draws their order and variants itself: the period, outline, default, then the three dots last. The menu needs two commands or more; a single extra command is the secondary. A destination outside the product ends in the arrow. A running command keeps its place and icon, says its pending word and holds.
65
+ * @words The primary is the page's main job as verb and noun: "Invite member", "New Agent". The pending word is its -ing form: "Inviting member". The menu names the page's record at its top and keeps the destructive command last, after a divider.
66
+ * @access DOM order is visual order. A command whose label does not name its target carries `accessibleName`. A running command is `aria-busy` and keeps focus. The three dots carry "More for {record}"; the menu returns focus to them when it closes.
63
67
  */
64
68
  export declare function PageActions(props: PageActionsProps): import("react").JSX.Element | null;
69
+ export {};
65
70
  //# sourceMappingURL=page-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-actions.d.ts","sourceRoot":"","sources":["../../src/components/page-actions.tsx"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAOf,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE;AACvE;;;GAGG;GACD;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9C,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC;CAC7E,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAC;CAC5C,CAAC;AAwBF,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAC1C,+BAoBA;AAsBD,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,gBAAgB,sCAiB5E;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAa5E;AAED,yFAAyF;AACzF,wBAAgB,eAAe,gCAS9B;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,sCAuBlD"}
1
+ {"version":3,"file":"page-actions.d.ts","sourceRoot":"","sources":["../../src/components/page-actions.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAI9E,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE;AACvE;;;GAGG;GACD;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9C,4GAA4G;AAC5G,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,oGAAoG;IACpG,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,kGAAkG;IAClG,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG;IACpD,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qGAAqG;IACrG,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,KAAK,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AA8B/D,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,cAAc,CAAC;CACzB,+BAqCA;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,gBAAgB,sCAUpF;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAa5E;AAED,yFAAyF;AACzF,wBAAgB,eAAe,gCAS9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,sCAuBlD"}
@@ -2,38 +2,37 @@
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useRender } from "@base-ui/react/use-render";
4
4
  import { ArrowUpRight } from "lucide-react";
5
- import { createContext, isValidElement, useCallback, useContext, useEffect, useId, useState, } from "react";
5
+ import { createContext, useCallback, useContext, useEffect, useId, useState, } from "react";
6
6
  import { createPortal } from "react-dom";
7
7
  import { ActionMenu } from "./action-menu.js";
8
8
  import { Button, buttonVariants } from "./button.js";
9
- import { DropdownMenuItem, DropdownMenuSeparator } from "./dropdown-menu.js";
10
- function CommandElement({ children, disabled, element, variant, }) {
9
+ import { PendingLabel } from "./pending-label.js";
10
+ function CommandElement({ accessibleName, busy, children, disabled, element, variant, }) {
11
11
  return useRender({
12
12
  render: element,
13
13
  props: {
14
+ "aria-busy": busy || undefined,
14
15
  "aria-disabled": disabled || undefined,
16
+ "aria-label": accessibleName,
15
17
  children,
16
18
  className: buttonVariants({ variant }),
17
19
  "data-slot": "button",
18
20
  },
19
21
  });
20
22
  }
21
- /** One command as a button in a given slot's variant. */
22
23
  export function PageCommandButton({ command, variant, }) {
23
- const content = (_jsxs(_Fragment, { children: [command.icon ? _jsx("span", { "data-icon": "inline-start", children: command.icon }) : null, command.label, command.external ? _jsx(ArrowUpRight, { "aria-hidden": "true", "data-icon": "inline-end" }) : null] }));
24
+ const pending = command.pending === true;
25
+ const content = (_jsxs(_Fragment, { children: [command.icon ? _jsx("span", { "data-icon": "inline-start", children: command.icon }) : null, _jsx(PendingLabel, { pending: pending, pendingLabel: command.pendingLabel ?? command.label, children: command.label }), command.external ? _jsx(ArrowUpRight, { "aria-hidden": "true", "data-icon": "inline-end" }) : null] }));
24
26
  if (command.render) {
25
- return (_jsx(CommandElement, { disabled: command.disabled, element: command.render, variant: variant, children: content }));
27
+ return (_jsx(CommandElement, { accessibleName: command.accessibleName, busy: pending, disabled: pending || command.disabled === true, element: command.render, variant: variant, children: content }));
26
28
  }
27
- return (_jsx(Button, { disabled: command.disabled, onClick: command.onClick, type: "button", variant: variant, children: content }));
28
- }
29
- function MenuCommand({ command }) {
30
- return (_jsxs(_Fragment, { children: [command.destructive ? _jsx(DropdownMenuSeparator, {}) : null, _jsxs(DropdownMenuItem, { disabled: command.disabled, variant: command.destructive ? "destructive" : "default", ...(command.render ? { render: command.render } : { onClick: command.onClick }), children: [command.label, command.icon ? (_jsx("span", { "aria-hidden": "true", className: "ml-auto flex items-center", children: command.icon })) : null] })] }));
29
+ return (_jsx(Button, { "aria-busy": pending || undefined, "aria-label": command.accessibleName, disabled: pending || command.disabled, focusableWhenDisabled: pending, onClick: command.onClick, type: "button", variant: variant, children: content }));
31
30
  }
32
31
  /** The row of a page's actions where it stands, for a page whose header is its own card. */
33
- export function PageActionsRow({ primary, secondary, menu }) {
34
- if (!primary && !secondary && !menu)
32
+ export function PageActionsRow({ period, primary, secondary, menu }) {
33
+ if (!period && !primary && !secondary && !menu)
35
34
  return null;
36
- return (_jsxs("div", { "data-slot": "page-actions", className: "flex shrink-0 flex-wrap items-center gap-2", children: [secondary ? _jsx(PageCommandButton, { command: secondary, variant: "outline" }) : null, primary ? _jsx(PageCommandButton, { command: primary, variant: "default" }) : null, isValidElement(menu) ? (menu) : menu ? (_jsx(ActionMenu, { label: menu.label, children: menu.commands.map((command) => (_jsx(MenuCommand, { command: command }, command.label))) })) : null] }));
35
+ return (_jsxs("div", { "data-slot": "page-actions", className: "flex shrink-0 flex-wrap items-center gap-2", children: [period, secondary ? _jsx(PageCommandButton, { command: secondary, variant: "outline" }) : null, primary ? _jsx(PageCommandButton, { command: primary, variant: "default" }) : null, menu ? _jsx(ActionMenu, { ...menu }) : null] }));
37
36
  }
38
37
  const PageActionsHostContext = createContext(null);
39
38
  /**
@@ -57,13 +56,20 @@ export function PageActionsSlot() {
57
56
  * A page's actions, drawn on its title's row. Only the page shown last owns
58
57
  * the row: a page kept hidden for a quick return gives the row back. Outside a
59
58
  * `PageActionsHostProvider`, they render where they stand.
59
+ *
60
+ * @family Actions
61
+ * @when The actions of a collection, an object or an overview page, on the title's row at its trailing edge. A Configuration page has none: each section saves from its footer.
62
+ * @instead A row's actions are the row's one button and its `ActionMenu`. A collection toolbar holds search and filters, never a page action.
63
+ * @behaviour Takes `period`, `secondary`, `primary` and `menu` and draws their order and variants itself: the period, outline, default, then the three dots last. The menu needs two commands or more; a single extra command is the secondary. A destination outside the product ends in the arrow. A running command keeps its place and icon, says its pending word and holds.
64
+ * @words The primary is the page's main job as verb and noun: "Invite member", "New Agent". The pending word is its -ing form: "Inviting member". The menu names the page's record at its top and keeps the destructive command last, after a divider.
65
+ * @access DOM order is visual order. A command whose label does not name its target carries `accessibleName`. A running command is `aria-busy` and keeps focus. The three dots carry "More for {record}"; the menu returns focus to them when it closes.
60
66
  */
61
67
  export function PageActions(props) {
62
68
  const host = useContext(PageActionsHostContext);
63
69
  const id = useId();
64
70
  const claim = host?.claim;
65
71
  const release = host?.release;
66
- const hasActions = Boolean(props.primary || props.secondary || props.menu);
72
+ const hasActions = Boolean(props.period || props.primary || props.secondary || props.menu);
67
73
  useEffect(() => {
68
74
  if (!hasActions)
69
75
  return;
@@ -1,10 +1,16 @@
1
1
  import * as React from "react";
2
2
  /**
3
- * The top of a product page (DESIGN.md "Page compositions"): its title at
4
- * heading size on the left, the page's actions on the title's row at the right,
5
- * which the page draws with `PageActions`. Nothing explains the page under its
6
- * title. The path above it is the top bar's; the toolbar below it holds only
7
- * filters, search and sort.
3
+ * The top of a product page: its title, and the page's actions on the title's row.
4
+ *
5
+ * @family Compositions
6
+ * @when The top of every collection and working page: the title at heading size, `PageActions` at
7
+ * the trailing edge of its row.
8
+ * @instead An object's own header is `ObjectPage`'s. The path above it is the top bar's
9
+ * `Breadcrumb`; filters, search and sort sit in the toolbar below.
10
+ * @behaviour Nothing explains the page under its title. The actions arrive through the
11
+ * `PageActions` slot, so the page draws its commands once.
12
+ * @words The title is the page's name as the sidebar writes it: *Customers*, *Agents*.
13
+ * @access The title is the page's `h1`; DOM order is visual order.
8
14
  */
9
15
  declare function PageHeader({ title, headingProps, className, ...props }: Omit<React.ComponentProps<"header">, "title" | "children"> & {
10
16
  title: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../src/components/page-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;GAMG;AACH,iBAAS,UAAU,CAAC,EAClB,KAAK,EACL,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;IAC9D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;CAC7D,qBAiBA;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../src/components/page-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;;;;;;;GAYG;AACH,iBAAS,UAAU,CAAC,EAClB,KAAK,EACL,YAAY,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;IAC9D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;CAC7D,qBAiBA;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -2,11 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cn } from "../lib/utils.js";
3
3
  import { PageActionsSlot } from "./page-actions.js";
4
4
  /**
5
- * The top of a product page (DESIGN.md "Page compositions"): its title at
6
- * heading size on the left, the page's actions on the title's row at the right,
7
- * which the page draws with `PageActions`. Nothing explains the page under its
8
- * title. The path above it is the top bar's; the toolbar below it holds only
9
- * filters, search and sort.
5
+ * The top of a product page: its title, and the page's actions on the title's row.
6
+ *
7
+ * @family Compositions
8
+ * @when The top of every collection and working page: the title at heading size, `PageActions` at
9
+ * the trailing edge of its row.
10
+ * @instead An object's own header is `ObjectPage`'s. The path above it is the top bar's
11
+ * `Breadcrumb`; filters, search and sort sit in the toolbar below.
12
+ * @behaviour Nothing explains the page under its title. The actions arrive through the
13
+ * `PageActions` slot, so the page draws its commands once.
14
+ * @words The title is the page's name as the sidebar writes it: *Customers*, *Agents*.
15
+ * @access The title is the page's `h1`; DOM order is visual order.
10
16
  */
11
17
  function PageHeader({ title, headingProps, className, ...props }) {
12
18
  return (_jsx("header", { "data-slot": "page-header", className: cn("min-w-0", className), ...props, children: _jsxs("div", { className: "flex min-h-9 min-w-0 flex-wrap items-center justify-between gap-x-6 gap-y-3", children: [_jsx("h1", { ...headingProps, className: cn("min-w-0 flex-1 basis-48 truncate text-heading-md text-foreground outline-none", headingProps?.className), children: title }), _jsx(PageActionsSlot, {})] }) }));
@@ -1,5 +1,20 @@
1
1
  import * as React from "react";
2
2
  import { Button } from "./button.js";
3
+ /**
4
+ * Numbered sibling pages with Previous and Next.
5
+ *
6
+ * @family Navigation
7
+ * @when `Pagination` for numbered sibling pages. A table of server pages takes `DataTable`'s own
8
+ * Previous and Next under its card; the card's footer strip holds the count or the paging.
9
+ * @instead Appending rows in place is a `Button` with `PendingLabel` (*Load more*). A fixed
10
+ * comparison passes `pagination={false}` and stays whole.
11
+ * @behaviour Boundaries are disabled. While the next page loads both buttons disable and the rows
12
+ * stay. The order and the page live in the URL. The labels hide under `sm`, leaving the chevrons.
13
+ * @words *Previous*, *Next*. The footer is a count with its noun or *Page 1 of 6*, never a help
14
+ * sentence.
15
+ * @access A labelled `nav`; the current page has `aria-current="page"`; the arrows read *Go to
16
+ * previous page*; a pending button is `aria-busy`.
17
+ */
3
18
  declare function Pagination({ className, ...props }: React.ComponentProps<"nav">): React.JSX.Element;
4
19
  declare function PaginationContent({ className, ...props }: React.ComponentProps<"ul">): React.JSX.Element;
5
20
  declare function PaginationItem({ ...props }: React.ComponentProps<"li">): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBASvE;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQ7E;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAE/D;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GACnD,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE5B,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAa,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,qBAiB5F;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,IAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYjE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAa,EACb,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYjE;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAehF;AAED,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,CAAC"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/components/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBASvE;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAQ7E;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,qBAE/D;AAED,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,CAAC,GACnD,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE5B,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAa,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,qBAiB5F;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,IAAiB,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYjE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAa,EACb,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYjE;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAehF;AAED,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,CAAC"}
@@ -2,6 +2,21 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { cn } from "../lib/utils.js";
3
3
  import { Button } from "./button.js";
4
4
  import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
5
+ /**
6
+ * Numbered sibling pages with Previous and Next.
7
+ *
8
+ * @family Navigation
9
+ * @when `Pagination` for numbered sibling pages. A table of server pages takes `DataTable`'s own
10
+ * Previous and Next under its card; the card's footer strip holds the count or the paging.
11
+ * @instead Appending rows in place is a `Button` with `PendingLabel` (*Load more*). A fixed
12
+ * comparison passes `pagination={false}` and stays whole.
13
+ * @behaviour Boundaries are disabled. While the next page loads both buttons disable and the rows
14
+ * stay. The order and the page live in the URL. The labels hide under `sm`, leaving the chevrons.
15
+ * @words *Previous*, *Next*. The footer is a count with its noun or *Page 1 of 6*, never a help
16
+ * sentence.
17
+ * @access A labelled `nav`; the current page has `aria-current="page"`; the arrows read *Go to
18
+ * previous page*; a pending button is `aria-busy`.
19
+ */
5
20
  function Pagination({ className, ...props }) {
6
21
  return (_jsx("nav", { "aria-label": "pagination", "data-slot": "pagination", className: cn("mx-auto flex w-full justify-center", className), ...props }));
7
22
  }
@@ -6,10 +6,21 @@ export type PairingCodeProps = Omit<React.ComponentProps<"div">, "children" | "r
6
6
  label: string;
7
7
  };
8
8
  /**
9
- * The short code two screens show at once so a person can tell they are
10
- * talking to each other, such as the four digits Nadia and Alveare Server both
11
- * show while a Nadia asks to join. Each digit stands in its own cell, large
12
- * enough to compare from across a desk. The caller places it.
9
+ * The short code two screens show at once so a person can tell they are talking
10
+ * to each other, such as the four digits Nadia and Alveare Server both show
11
+ * while a Nadia asks to join.
12
+ *
13
+ * Each digit stands in its own cell, large enough to compare from across a
14
+ * desk. The caller places it.
15
+ *
16
+ * @family Data
17
+ * @when Pairing two devices or apps a person can see side by side: the four digits Nadia and
18
+ * Alveare Server both show while a Nadia asks to join.
19
+ * @instead A code a person types is `InputOTP`. A link another device scans is `QrCode`.
20
+ * @behaviour Each digit in its own cell, large enough to compare from across a desk. A leading zero
21
+ * is a digit.
22
+ * @words The label says what the code is: *Pairing code*.
23
+ * @access `role="img"` named by the label and the digits read one by one.
13
24
  */
14
25
  declare function PairingCode({ code, label, className, ...props }: PairingCodeProps): React.JSX.Element;
15
26
  export { PairingCode };
@@ -1 +1 @@
1
- {"version":3,"file":"pairing-code.d.ts","sourceRoot":"","sources":["../../src/components/pairing-code.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IACtF,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;GAKG;AACH,iBAAS,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,qBAsB1E;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"pairing-code.d.ts","sourceRoot":"","sources":["../../src/components/pairing-code.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG;IACtF,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,qBAsB1E;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,10 +1,21 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { cn } from "../lib/utils.js";
3
3
  /**
4
- * The short code two screens show at once so a person can tell they are
5
- * talking to each other, such as the four digits Nadia and Alveare Server both
6
- * show while a Nadia asks to join. Each digit stands in its own cell, large
7
- * enough to compare from across a desk. The caller places it.
4
+ * The short code two screens show at once so a person can tell they are talking
5
+ * to each other, such as the four digits Nadia and Alveare Server both show
6
+ * while a Nadia asks to join.
7
+ *
8
+ * Each digit stands in its own cell, large enough to compare from across a
9
+ * desk. The caller places it.
10
+ *
11
+ * @family Data
12
+ * @when Pairing two devices or apps a person can see side by side: the four digits Nadia and
13
+ * Alveare Server both show while a Nadia asks to join.
14
+ * @instead A code a person types is `InputOTP`. A link another device scans is `QrCode`.
15
+ * @behaviour Each digit in its own cell, large enough to compare from across a desk. A leading zero
16
+ * is a digit.
17
+ * @words The label says what the code is: *Pairing code*.
18
+ * @access `role="img"` named by the label and the digits read one by one.
8
19
  */
9
20
  function PairingCode({ code, label, className, ...props }) {
10
21
  const digits = [...code];
@@ -1,11 +1,19 @@
1
1
  import type * as React from "react";
2
2
  /**
3
3
  * A control's own label while the system works on what it was asked to do.
4
- * The word changes and nothing moves; the control keeps its place, its icon
5
- * and its size. The caller owns `disabled` and `aria-busy` on the control
6
- * itself, because only the caller knows which element the wait belongs to.
7
4
  *
8
- * Work that runs past a second adds one `WaitingLine` beside the control.
5
+ * @family Feedback
6
+ * @when Every control that starts work the system does: from the press until the result, whatever
7
+ * the wait. Under about a second it is the only sign. Every save in a footer goes through it.
8
+ * @instead Past a second add one `WaitingLine` beside the control. An Agent's work is never this:
9
+ * it is her orb and a sentence. A queued or paused request is a status.
10
+ * @behaviour Swaps the word, nothing else: same place, size and icon. The caller sets `disabled`
11
+ * (50% opacity) and `aria-busy` and blocks a second submit, because only the caller knows which
12
+ * element the wait belongs to. Failure returns the rest label.
13
+ * @words The rest label's verb in its -ing form with the same noun: *Remove mailbox* to *Removing
14
+ * mailbox*. No ellipsis, no *Please wait*.
15
+ * @access `aria-busy` on the control; its name changes to the pending word and is read once. Focus
16
+ * stays on it.
9
17
  */
10
18
  declare function PendingLabel({ children, className, pending, pendingLabel, ...props }: React.ComponentProps<"span"> & {
11
19
  pending: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"pending-label.d.ts","sourceRoot":"","sources":["../../src/components/pending-label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC;;;;;;;GAOG;AACH,iBAAS,YAAY,CAAC,EACpB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,qBAWA;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"pending-label.d.ts","sourceRoot":"","sources":["../../src/components/pending-label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,YAAY,CAAC,EACpB,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,qBAWA;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}