@nadicodeai/ui 12.1.165 → 12.1.166

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 (363) hide show
  1. package/AGENTS.md +8 -9
  2. package/README.md +2 -17
  3. package/dist/components/accordion.d.ts.map +1 -1
  4. package/dist/components/accordion.js +2 -1
  5. package/dist/components/account-menu.d.ts.map +1 -1
  6. package/dist/components/account-menu.js +5 -3
  7. package/dist/components/activity-calendar.d.ts.map +1 -1
  8. package/dist/components/activity-calendar.js +3 -2
  9. package/dist/components/agent-card.js +1 -1
  10. package/dist/components/agent-orb.d.ts.map +1 -1
  11. package/dist/components/agent-orb.js +1 -0
  12. package/dist/components/agent-profile.d.ts.map +1 -1
  13. package/dist/components/agent-profile.js +7 -4
  14. package/dist/components/alert-dialog.d.ts +1 -1
  15. package/dist/components/alert-dialog.d.ts.map +1 -1
  16. package/dist/components/alert-dialog.js +3 -3
  17. package/dist/components/app-mark.js +1 -1
  18. package/dist/components/avatar.js +8 -8
  19. package/dist/components/badge.d.ts +11 -16
  20. package/dist/components/badge.d.ts.map +1 -1
  21. package/dist/components/badge.js +7 -43
  22. package/dist/components/breadcrumb.d.ts.map +1 -1
  23. package/dist/components/breadcrumb.js +3 -2
  24. package/dist/components/button.d.ts +5 -21
  25. package/dist/components/button.d.ts.map +1 -1
  26. package/dist/components/button.js +6 -76
  27. package/dist/components/calendar.d.ts +1 -1
  28. package/dist/components/calendar.d.ts.map +1 -1
  29. package/dist/components/calendar.js +3 -3
  30. package/dist/components/card-row.js +1 -1
  31. package/dist/components/card.d.ts +4 -1
  32. package/dist/components/card.d.ts.map +1 -1
  33. package/dist/components/card.js +3 -2
  34. package/dist/components/catalog-drawer.d.ts.map +1 -1
  35. package/dist/components/catalog-drawer.js +3 -2
  36. package/dist/components/chart-axis.d.ts.map +1 -1
  37. package/dist/components/chart-axis.js +0 -2
  38. package/dist/components/chart-bar-horizontal.d.ts.map +1 -1
  39. package/dist/components/chart-bar-horizontal.js +16 -14
  40. package/dist/components/chart-card.d.ts.map +1 -1
  41. package/dist/components/chart-card.js +0 -1
  42. package/dist/components/chart.d.ts.map +1 -1
  43. package/dist/components/chart.js +18 -32
  44. package/dist/components/checkbox.d.ts +3 -2
  45. package/dist/components/checkbox.d.ts.map +1 -1
  46. package/dist/components/checkbox.js +4 -3
  47. package/dist/components/choicebox.d.ts +5 -5
  48. package/dist/components/choicebox.d.ts.map +1 -1
  49. package/dist/components/choicebox.js +6 -5
  50. package/dist/components/clearable-input.d.ts.map +1 -1
  51. package/dist/components/clearable-input.js +2 -2
  52. package/dist/components/code-block.d.ts.map +1 -1
  53. package/dist/components/code-block.js +4 -2
  54. package/dist/components/collapsible.js +1 -1
  55. package/dist/components/collection-filters.d.ts.map +1 -1
  56. package/dist/components/collection-filters.js +1 -0
  57. package/dist/components/collection-page.js +1 -1
  58. package/dist/components/collection-sort.d.ts.map +1 -1
  59. package/dist/components/collection-sort.js +1 -4
  60. package/dist/components/collection-toolbar.js +1 -1
  61. package/dist/components/combobox.js +4 -4
  62. package/dist/components/command.d.ts.map +1 -1
  63. package/dist/components/command.js +1 -1
  64. package/dist/components/confirm-dialog.js +2 -2
  65. package/dist/components/context-menu.d.ts +1 -1
  66. package/dist/components/context-menu.d.ts.map +1 -1
  67. package/dist/components/copy-button.js +1 -1
  68. package/dist/components/data-table.d.ts +11 -3
  69. package/dist/components/data-table.d.ts.map +1 -1
  70. package/dist/components/data-table.js +12 -4
  71. package/dist/components/dialog.d.ts +1 -1
  72. package/dist/components/dialog.d.ts.map +1 -1
  73. package/dist/components/dialog.js +2 -2
  74. package/dist/components/drawer.d.ts +4 -4
  75. package/dist/components/drawer.d.ts.map +1 -1
  76. package/dist/components/drawer.js +14 -15
  77. package/dist/components/dropdown-menu.d.ts +1 -1
  78. package/dist/components/dropdown-menu.d.ts.map +1 -1
  79. package/dist/components/dropdown-menu.js +9 -5
  80. package/dist/components/empty-art.js +1 -1
  81. package/dist/components/empty-state.js +2 -2
  82. package/dist/components/entry-scene.d.ts.map +1 -1
  83. package/dist/components/entry-scene.js +2 -3
  84. package/dist/components/field.js +3 -3
  85. package/dist/components/file-diff.d.ts.map +1 -1
  86. package/dist/components/file-diff.js +5 -2
  87. package/dist/components/footer.d.ts +1 -1
  88. package/dist/components/footer.d.ts.map +1 -1
  89. package/dist/components/footer.js +3 -3
  90. package/dist/components/form-dialog.d.ts.map +1 -1
  91. package/dist/components/form-dialog.js +2 -1
  92. package/dist/components/form-drawer.d.ts +7 -9
  93. package/dist/components/form-drawer.d.ts.map +1 -1
  94. package/dist/components/form-drawer.js +5 -5
  95. package/dist/components/form.d.ts +26 -0
  96. package/dist/components/form.d.ts.map +1 -0
  97. package/dist/components/form.js +29 -0
  98. package/dist/components/gauge.js +2 -2
  99. package/dist/components/heatmap/calendar-heatmap.d.ts.map +1 -1
  100. package/dist/components/heatmap/calendar-heatmap.js +15 -13
  101. package/dist/components/hive-scene.d.ts.map +1 -1
  102. package/dist/components/hive-scene.js +3 -1
  103. package/dist/components/hover-card.d.ts +1 -1
  104. package/dist/components/hover-card.d.ts.map +1 -1
  105. package/dist/components/hover-card.js +1 -1
  106. package/dist/components/input-group.d.ts +5 -6
  107. package/dist/components/input-group.d.ts.map +1 -1
  108. package/dist/components/input-group.js +8 -11
  109. package/dist/components/input-otp.d.ts.map +1 -1
  110. package/dist/components/input-otp.js +2 -2
  111. package/dist/components/item.d.ts +1 -1
  112. package/dist/components/item.js +2 -2
  113. package/dist/components/kbd.d.ts +6 -9
  114. package/dist/components/kbd.d.ts.map +1 -1
  115. package/dist/components/kbd.js +7 -3
  116. package/dist/components/message-notice.js +1 -1
  117. package/dist/components/middle-truncate.d.ts.map +1 -1
  118. package/dist/components/middle-truncate.js +1 -0
  119. package/dist/components/model-identity.d.ts +4 -4
  120. package/dist/components/model-identity.d.ts.map +1 -1
  121. package/dist/components/model-identity.js +2 -2
  122. package/dist/components/model-mark.d.ts.map +1 -1
  123. package/dist/components/model-mark.js +4 -2
  124. package/dist/components/multi-select.js +2 -2
  125. package/dist/components/native-select.d.ts.map +1 -1
  126. package/dist/components/native-select.js +2 -6
  127. package/dist/components/notice-banner.js +1 -1
  128. package/dist/components/object-page.js +2 -2
  129. package/dist/components/object-workspace.d.ts.map +1 -1
  130. package/dist/components/object-workspace.js +1 -3
  131. package/dist/components/overview-page.d.ts +1 -1
  132. package/dist/components/overview-page.d.ts.map +1 -1
  133. package/dist/components/overview-page.js +2 -1
  134. package/dist/components/page-actions.d.ts.map +1 -1
  135. package/dist/components/page-actions.js +9 -4
  136. package/dist/components/pairing-code.js +1 -1
  137. package/dist/components/pending-label.d.ts.map +1 -1
  138. package/dist/components/pending-label.js +0 -1
  139. package/dist/components/popover.d.ts +1 -1
  140. package/dist/components/popover.d.ts.map +1 -1
  141. package/dist/components/portal-sidebar-frame.d.ts.map +1 -1
  142. package/dist/components/portal-sidebar-frame.js +1 -1
  143. package/dist/components/product-message.d.ts.map +1 -1
  144. package/dist/components/product-message.js +1 -0
  145. package/dist/components/progress-checklist.d.ts.map +1 -1
  146. package/dist/components/progress-checklist.js +2 -2
  147. package/dist/components/progress.d.ts.map +1 -1
  148. package/dist/components/progress.js +5 -4
  149. package/dist/components/radio-group.js +2 -2
  150. package/dist/components/reading-column.js +1 -1
  151. package/dist/components/record-identity.d.ts.map +1 -1
  152. package/dist/components/record-identity.js +2 -5
  153. package/dist/components/record-list.d.ts.map +1 -1
  154. package/dist/components/record-list.js +4 -3
  155. package/dist/components/record-sheet.js +1 -1
  156. package/dist/components/record-time.d.ts.map +1 -1
  157. package/dist/components/record-time.js +2 -1
  158. package/dist/components/resizable.d.ts.map +1 -1
  159. package/dist/components/resizable.js +1 -1
  160. package/dist/components/row-edit-form.d.ts +2 -1
  161. package/dist/components/row-edit-form.d.ts.map +1 -1
  162. package/dist/components/row-edit-form.js +2 -1
  163. package/dist/components/run-timeline.js +1 -1
  164. package/dist/components/scope-switcher.js +1 -1
  165. package/dist/components/segmented-control.js +1 -1
  166. package/dist/components/select.js +1 -1
  167. package/dist/components/settings-facts.js +1 -1
  168. package/dist/components/settings-section.js +1 -1
  169. package/dist/components/sheet.d.ts +1 -1
  170. package/dist/components/sheet.d.ts.map +1 -1
  171. package/dist/components/sheet.js +1 -1
  172. package/dist/components/sidebar.d.ts +2 -2
  173. package/dist/components/sidebar.d.ts.map +1 -1
  174. package/dist/components/sidebar.js +16 -18
  175. package/dist/components/site-menu.d.ts +28 -0
  176. package/dist/components/site-menu.d.ts.map +1 -0
  177. package/dist/components/site-menu.js +23 -0
  178. package/dist/components/slider.d.ts.map +1 -1
  179. package/dist/components/slider.js +2 -1
  180. package/dist/components/snippet.d.ts +2 -0
  181. package/dist/components/snippet.d.ts.map +1 -1
  182. package/dist/components/snippet.js +13 -6
  183. package/dist/components/sonner.d.ts.map +1 -1
  184. package/dist/components/sonner.js +3 -4
  185. package/dist/components/status-badge.d.ts +1 -1
  186. package/dist/components/status-badge.d.ts.map +1 -1
  187. package/dist/components/switch.js +1 -1
  188. package/dist/components/table-card.js +1 -1
  189. package/dist/components/table.js +4 -4
  190. package/dist/components/tabs-nav.d.ts +52 -0
  191. package/dist/components/tabs-nav.d.ts.map +1 -0
  192. package/dist/components/tabs-nav.js +95 -0
  193. package/dist/components/tabs.d.ts +2 -56
  194. package/dist/components/tabs.d.ts.map +1 -1
  195. package/dist/components/tabs.js +2 -91
  196. package/dist/components/text-link.d.ts +1 -2
  197. package/dist/components/text-link.d.ts.map +1 -1
  198. package/dist/components/text-link.js +1 -2
  199. package/dist/components/textarea.d.ts +5 -2
  200. package/dist/components/textarea.d.ts.map +1 -1
  201. package/dist/components/textarea.js +12 -4
  202. package/dist/components/toast.d.ts +2 -0
  203. package/dist/components/toast.d.ts.map +1 -1
  204. package/dist/components/toast.js +4 -0
  205. package/dist/components/toggle-group.d.ts +3 -1
  206. package/dist/components/toggle-group.d.ts.map +1 -1
  207. package/dist/components/toggle-group.js +3 -6
  208. package/dist/components/toggle.js +1 -1
  209. package/dist/components/tooltip.d.ts +12 -12
  210. package/dist/components/tooltip.d.ts.map +1 -1
  211. package/dist/components/tooltip.js +9 -9
  212. package/dist/components/trend-badge.js +2 -2
  213. package/dist/components/update-card.js +1 -1
  214. package/dist/components/usage-meter.d.ts +1 -1
  215. package/dist/components/usage-meter.d.ts.map +1 -1
  216. package/dist/components/usage-meter.js +9 -7
  217. package/dist/components/waiting-line.js +1 -1
  218. package/dist/index.d.ts +3 -7
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +3 -7
  221. package/dist/internal/agent-orb-motion.d.ts +4 -1
  222. package/dist/internal/agent-orb-motion.d.ts.map +1 -1
  223. package/dist/internal/agent-orb-motion.js +9 -7
  224. package/dist/internal/agent-orb.d.ts +4 -1
  225. package/dist/internal/agent-orb.d.ts.map +1 -1
  226. package/dist/internal/agent-orb.js +7 -1
  227. package/dist/internal/assistant-ui/attachment.d.ts.map +1 -1
  228. package/dist/internal/assistant-ui/attachment.js +15 -15
  229. package/dist/internal/assistant-ui/follow-up-suggestions.js +1 -1
  230. package/dist/internal/assistant-ui/markdown-text.js +26 -25
  231. package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -1
  232. package/dist/internal/assistant-ui/reasoning.js +13 -16
  233. package/dist/internal/assistant-ui/thread.d.ts.map +1 -1
  234. package/dist/internal/assistant-ui/thread.js +22 -16
  235. package/dist/internal/assistant-ui/tool-fallback.d.ts.map +1 -1
  236. package/dist/internal/assistant-ui/tool-fallback.js +29 -21
  237. package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -1
  238. package/dist/internal/assistant-ui/tool-group.js +6 -7
  239. package/dist/internal/assistant-ui/tooltip-icon-button.js +1 -1
  240. package/dist/internal/badge-frame.d.ts +15 -0
  241. package/dist/internal/badge-frame.d.ts.map +1 -0
  242. package/dist/internal/badge-frame.js +44 -0
  243. package/dist/internal/button-classes.d.ts +20 -0
  244. package/dist/internal/button-classes.d.ts.map +1 -0
  245. package/dist/internal/button-classes.js +74 -0
  246. package/dist/internal/catalog-list.d.ts.map +1 -1
  247. package/dist/internal/catalog-list.js +8 -4
  248. package/dist/internal/collection-rail.js +3 -3
  249. package/dist/internal/form-drawer-frame.d.ts +10 -0
  250. package/dist/internal/form-drawer-frame.d.ts.map +1 -0
  251. package/dist/internal/form-drawer-frame.js +9 -0
  252. package/dist/internal/form-submit.d.ts +2 -1
  253. package/dist/internal/form-submit.d.ts.map +1 -1
  254. package/dist/internal/settings-save.d.ts.map +1 -1
  255. package/dist/internal/settings-save.js +4 -2
  256. package/dist/internal/status-mark.d.ts.map +1 -1
  257. package/dist/internal/status-mark.js +4 -1
  258. package/dist/internal/tab-row.d.ts +10 -0
  259. package/dist/internal/tab-row.d.ts.map +1 -0
  260. package/dist/internal/tab-row.js +2 -0
  261. package/dist/internal/table-compact-line.d.ts +1 -1
  262. package/dist/internal/table-compact-line.d.ts.map +1 -1
  263. package/dist/internal/table-compact-line.js +1 -1
  264. package/dist/internal/tooltip-content-frame.d.ts +14 -0
  265. package/dist/internal/tooltip-content-frame.d.ts.map +1 -0
  266. package/dist/internal/tooltip-content-frame.js +11 -0
  267. package/dist/lib/css-variables.d.ts +8 -0
  268. package/dist/lib/css-variables.d.ts.map +1 -0
  269. package/dist/lib/css-variables.js +4 -0
  270. package/dist/lib/merge-tokens.generated.js +1 -1
  271. package/dist/lib/use-copy-to-clipboard.d.ts.map +1 -1
  272. package/dist/lib/use-copy-to-clipboard.js +1 -2
  273. package/dist/showcase/samples.js +1 -1
  274. package/dist/showcase/specimens/choices.d.ts.map +1 -1
  275. package/dist/showcase/specimens/choices.js +3 -2
  276. package/dist/showcase/specimens/compositions.d.ts.map +1 -1
  277. package/dist/showcase/specimens/compositions.js +7 -5
  278. package/dist/showcase/specimens/data.d.ts.map +1 -1
  279. package/dist/showcase/specimens/data.js +1 -1
  280. package/dist/showcase/specimens/feedback.d.ts.map +1 -1
  281. package/dist/showcase/specimens/feedback.js +1 -2
  282. package/dist/showcase/specimens/index.d.ts +2 -0
  283. package/dist/showcase/specimens/index.d.ts.map +1 -1
  284. package/dist/showcase/specimens/inputs.d.ts +1 -0
  285. package/dist/showcase/specimens/inputs.d.ts.map +1 -1
  286. package/dist/showcase/specimens/inputs.js +5 -2
  287. package/dist/showcase/specimens/menus.d.ts +1 -0
  288. package/dist/showcase/specimens/menus.d.ts.map +1 -1
  289. package/dist/showcase/specimens/menus.js +7 -2
  290. package/dist/showcase/specimens/navigation.d.ts.map +1 -1
  291. package/dist/showcase/specimens/navigation.js +6 -5
  292. package/dist/showcase/specimens/status.d.ts.map +1 -1
  293. package/dist/showcase/specimens/status.js +4 -4
  294. package/dist/showcase/usage.generated.d.ts +1 -1
  295. package/dist/showcase/usage.generated.d.ts.map +1 -1
  296. package/dist/showcase/usage.generated.js +38 -16
  297. package/dist/standalone/index.js +1 -1
  298. package/dist/standalone/orb-page.js +10 -8
  299. package/dist/styles/components.css +1 -1
  300. package/package.json +32 -33
  301. package/dist/eslint/index.js +0 -224
  302. package/dist/eslint/rules/badge-is-static-label.js +0 -93
  303. package/dist/eslint/rules/button-icon-slot.js +0 -102
  304. package/dist/eslint/rules/button-link-for-navigation.js +0 -146
  305. package/dist/eslint/rules/button-no-aria-label-with-text.js +0 -75
  306. package/dist/eslint/rules/button-type-roles-only-in-buttons.js +0 -83
  307. package/dist/eslint/rules/choice-control-has-a-name.js +0 -98
  308. package/dist/eslint/rules/choice-group-in-fieldset.js +0 -86
  309. package/dist/eslint/rules/command-shortcut-single-owner.js +0 -118
  310. package/dist/eslint/rules/confirm-dialog-words.js +0 -63
  311. package/dist/eslint/rules/data-table-one-unsized-column.js +0 -96
  312. package/dist/eslint/rules/destructive-action-placement.js +0 -69
  313. package/dist/eslint/rules/disabled-choice-says-why.js +0 -71
  314. package/dist/eslint/rules/disabled-control-appearance.js +0 -75
  315. package/dist/eslint/rules/ellipsis-opens-a-dialog.js +0 -110
  316. package/dist/eslint/rules/empty-state-owner.js +0 -145
  317. package/dist/eslint/rules/input-group-owners.js +0 -155
  318. package/dist/eslint/rules/jsx-class-utility.js +0 -200
  319. package/dist/eslint/rules/kbd-children-no-modifier-text.js +0 -128
  320. package/dist/eslint/rules/literal-text.js +0 -41
  321. package/dist/eslint/rules/menu-owner.js +0 -75
  322. package/dist/eslint/rules/middle-truncate-placement.js +0 -69
  323. package/dist/eslint/rules/no-app-feature-component.js +0 -100
  324. package/dist/eslint/rules/no-bare-button-label.js +0 -55
  325. package/dist/eslint/rules/no-choice-control-wrapper.js +0 -97
  326. package/dist/eslint/rules/no-comment.js +0 -77
  327. package/dist/eslint/rules/no-control-in-read-only-surface.js +0 -106
  328. package/dist/eslint/rules/no-decorative-icon.js +0 -164
  329. package/dist/eslint/rules/no-deprecated-zod-api.js +0 -215
  330. package/dist/eslint/rules/no-global-patch.js +0 -115
  331. package/dist/eslint/rules/no-hand-built-busy.js +0 -104
  332. package/dist/eslint/rules/no-hand-built-theme-picker.js +0 -144
  333. package/dist/eslint/rules/no-hand-built-tile.js +0 -41
  334. package/dist/eslint/rules/no-hand-formatted-date.js +0 -87
  335. package/dist/eslint/rules/no-hand-stacked-avatars.js +0 -67
  336. package/dist/eslint/rules/no-nested-collapse.js +0 -60
  337. package/dist/eslint/rules/no-package-component-redefinition.js +0 -175
  338. package/dist/eslint/rules/no-search-in-form.js +0 -47
  339. package/dist/eslint/rules/no-shadcn-appearance-override.js +0 -305
  340. package/dist/eslint/rules/no-shell-prompt-in-snippet.js +0 -74
  341. package/dist/eslint/rules/no-stock-error-words.js +0 -56
  342. package/dist/eslint/rules/no-subject-derived-expectation.js +0 -183
  343. package/dist/eslint/rules/no-tooltip-around-labelled-field.js +0 -72
  344. package/dist/eslint/rules/no-weight-class-on-strong-in-type-role.js +0 -57
  345. package/dist/eslint/rules/no-write-in-subscription.js +0 -140
  346. package/dist/eslint/rules/one-submenu-level.js +0 -43
  347. package/dist/eslint/rules/one-toast-per-flow.js +0 -91
  348. package/dist/eslint/rules/option-count.js +0 -167
  349. package/dist/eslint/rules/page-command-link-not-render.js +0 -43
  350. package/dist/eslint/rules/page-composition.js +0 -232
  351. package/dist/eslint/rules/progress-needs-name.js +0 -57
  352. package/dist/eslint/rules/rendered-import.js +0 -121
  353. package/dist/eslint/rules/server-action-discipline.js +0 -233
  354. package/dist/eslint/rules/settings-limit-in-footer.js +0 -94
  355. package/dist/eslint/rules/skeleton-in-region.js +0 -80
  356. package/dist/eslint/rules/sortable-heading-uses-sort.js +0 -79
  357. package/dist/eslint/rules/table-cell-inset-owner.js +0 -107
  358. package/dist/eslint/rules/tabs-selection-is-controlled.js +0 -47
  359. package/dist/eslint/rules/test-files-from-one-definition.js +0 -67
  360. package/dist/eslint/rules/tooltip-only-arrow.js +0 -38
  361. package/dist/eslint/rules/tooltip-trigger-accessible-name.js +0 -114
  362. package/dist/eslint/rules/workspace-declares-imports.js +0 -163
  363. package/dist/eslint/strict-design-system.js +0 -250
@@ -54,9 +54,9 @@ export type ChoiceboxGroupProps = ChoiceboxGroupBase & ({
54
54
  * title and description, blue words, and a blue corner mark; a selected tile that is unavailable
55
55
  * stays grey, never a faded blue. An unselected tile stays neutral and takes a grey fill on hover.
56
56
  * The corner always draws the dot or the check, empty until the tile is selected. The whole tinted
57
- * row (title, specs, description, reason and corner mark) is the label that selects; `children` of a
57
+ * row (title, specs, description, reason and corner mark) is the label that selects; `selectedFacts` of a
58
58
  * tile appear below that row while it is selected, outside the label, so a click there does not
59
- * select, and they are for reading, never a link or a button. A tile, or the whole group, is unavailable only with a `disabledReason`, written under
59
+ * select, and they are text for reading, never a link or a button. A tile, or the whole group, is unavailable only with a `disabledReason`, written under
60
60
  * the tile's description or the legend, and only its title greys. A tile may carry `specs`, grey chips under its title, and one
61
61
  * `badge` beside it for the option to prefer (*Recommended*); both are grey `secondary` badges,
62
62
  * because blue marks only the selected tile.
@@ -92,9 +92,9 @@ export type ChoiceboxGroupItemProps = {
92
92
  /** Makes the tile unavailable and writes why under its description. */
93
93
  disabledReason?: string;
94
94
  className?: string;
95
- /** Read-only content shown while the tile is selected. */
96
- children?: React.ReactNode;
95
+ /** Read-only lines shown under the tile while it is selected. */
96
+ selectedFacts?: readonly string[];
97
97
  };
98
- declare function ChoiceboxGroupItem({ value, title, description, specs, badge, disabledReason, className, children, }: ChoiceboxGroupItemProps): React.JSX.Element;
98
+ declare function ChoiceboxGroupItem({ value, title, description, specs, badge, disabledReason, className, selectedFacts, }: ChoiceboxGroupItemProps): React.JSX.Element;
99
99
  export { ChoiceboxGroup, ChoiceboxGroupItem };
100
100
  //# sourceMappingURL=choicebox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"choicebox.d.ts","sourceRoot":"","sources":["../../src/components/choicebox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,KAAK,kBAAkB,GAAG;IACxB,6FAA6F;IAC7F,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAClD,CACI;IACE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C,CACJ,CAAC;AAQJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,iBAAS,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBAwDjD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,iBAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,WAAW,EACX,KAAK,EACL,KAAK,EACL,cAAc,EACd,SAAS,EACT,QAAQ,GACT,EAAE,uBAAuB,qBA0FzB;AAED,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"choicebox.d.ts","sourceRoot":"","sources":["../../src/components/choicebox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,KAAK,kBAAkB,GAAG;IACxB,6FAA6F;IAC7F,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAClD,CACI;IACE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C,CACJ,CAAC;AAQJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,iBAAS,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBA6DjD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,iBAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,WAAW,EACX,KAAK,EACL,KAAK,EACL,cAAc,EACd,SAAS,EACT,aAAa,GACd,EAAE,uBAAuB,qBA4FzB;AAED,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
@@ -46,9 +46,9 @@ function asList(value) {
46
46
  * title and description, blue words, and a blue corner mark; a selected tile that is unavailable
47
47
  * stays grey, never a faded blue. An unselected tile stays neutral and takes a grey fill on hover.
48
48
  * The corner always draws the dot or the check, empty until the tile is selected. The whole tinted
49
- * row (title, specs, description, reason and corner mark) is the label that selects; `children` of a
49
+ * row (title, specs, description, reason and corner mark) is the label that selects; `selectedFacts` of a
50
50
  * tile appear below that row while it is selected, outside the label, so a click there does not
51
- * select, and they are for reading, never a link or a button. A tile, or the whole group, is unavailable only with a `disabledReason`, written under
51
+ * select, and they are text for reading, never a link or a button. A tile, or the whole group, is unavailable only with a `disabledReason`, written under
52
52
  * the tile's description or the legend, and only its title greys. A tile may carry `specs`, grey chips under its title, and one
53
53
  * `badge` beside it for the option to prefer (*Recommended*); both are grey `secondary` badges,
54
54
  * because blue marks only the selected tile.
@@ -80,7 +80,8 @@ function ChoiceboxGroup(props) {
80
80
  const [internal, setInternal] = React.useState(asList(props.defaultValue) ?? []);
81
81
  const selected = asList(props.value) ?? internal;
82
82
  const list = cn("grid gap-3", orientation === "horizontal" && "sm:auto-cols-fr sm:grid-flow-col");
83
- return (_jsx(ChoiceboxSelectionContext.Provider, { value: { type: props.type, name, selected, groupReasonId }, children: _jsxs(FieldSet, { className: className, "data-slot": "choicebox-group", children: [_jsx(FieldLegend, { className: showLabel ? "mb-2" : "sr-only", id: legendId, variant: "label", children: label }), disabledReason ? (_jsx(FieldDescription, { id: reasonId, children: disabledReason })) : null, props.type === "radio" ? (_jsx(RadioGroup, { "aria-labelledby": legendId, className: list, disabled: groupReasonId !== undefined, name: name, onValueChange: (next) => {
83
+ const selection = React.useMemo(() => ({ type: props.type, name, selected, groupReasonId }), [props.type, name, selected, groupReasonId]);
84
+ return (_jsx(ChoiceboxSelectionContext.Provider, { value: selection, children: _jsxs(FieldSet, { className: className, "data-slot": "choicebox-group", children: [_jsx(FieldLegend, { className: showLabel ? "mb-2" : "sr-only", id: legendId, variant: "label", children: label }), disabledReason ? (_jsx(FieldDescription, { id: reasonId, children: disabledReason })) : null, props.type === "radio" ? (_jsx(RadioGroup, { "aria-labelledby": legendId, className: list, disabled: groupReasonId !== undefined, name: name, onValueChange: (next) => {
84
85
  setInternal([next]);
85
86
  props.onValueChange?.(next);
86
87
  }, required: props.required, value: selected[0] ?? null, children: props.children })) : (_jsx(CheckboxGroupPrimitive, { className: list, disabled: groupReasonId !== undefined, onValueChange: (next) => {
@@ -88,7 +89,7 @@ function ChoiceboxGroup(props) {
88
89
  props.onValueChange?.(next);
89
90
  }, value: selected, children: props.children }))] }) }));
90
91
  }
91
- function ChoiceboxGroupItem({ value, title, description, specs, badge, disabledReason, className, children, }) {
92
+ function ChoiceboxGroupItem({ value, title, description, specs, badge, disabledReason, className, selectedFacts, }) {
92
93
  const group = React.useContext(ChoiceboxSelectionContext);
93
94
  const titleId = React.useId();
94
95
  const descriptionId = React.useId();
@@ -112,6 +113,6 @@ function ChoiceboxGroupItem({ value, title, description, specs, badge, disabledR
112
113
  disabled: Boolean(disabledReason) || group.groupReasonId !== undefined,
113
114
  value,
114
115
  };
115
- return (_jsxs("div", { className: cn("group/choicebox flex flex-col overflow-hidden rounded-sm border bg-background nc-transition-paint not-has-data-disabled:hover:bg-accent has-focus-visible:nc-focus-outline has-focus-visible:outline-ring has-data-checked:not-has-data-disabled:border-info", className), "data-slot": "choicebox-item", children: [_jsxs("label", { className: "flex cursor-pointer items-center justify-between gap-6 p-3 nc-transition-paint has-data-checked:not-has-data-disabled:bg-info-soft has-data-disabled:cursor-not-allowed", children: [_jsxs("span", { className: "flex min-w-0 flex-col gap-1", children: [_jsxs("span", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm font-medium group-has-data-checked/choicebox:not-group-has-data-disabled/choicebox:text-info-soft-foreground group-has-data-disabled/choicebox:text-muted-foreground", id: titleId, children: title }), badge ? (_jsx(Badge, { id: badgeId, size: "sm", variant: "secondary", children: badge })) : null] }), specs?.length ? (_jsx("span", { className: "flex flex-wrap gap-1", id: specsId, children: specs.map((spec) => (_jsx(Badge, { size: "sm", variant: "secondary", children: spec }, spec))) })) : null, _jsx("span", { className: "text-sm text-muted-foreground group-has-data-checked/choicebox:not-group-has-data-disabled/choicebox:text-info-soft-foreground", id: descriptionId, children: description }), disabledReason ? (_jsx("span", { className: "text-sm text-muted-foreground", id: reasonId, children: disabledReason })) : null] }), group.type === "radio" ? (_jsx(RadioGroupItem, { ...control, className: "outline-none data-checked:not-data-disabled:border-info-soft-foreground data-checked:not-data-disabled:text-info-soft-foreground" })) : (_jsx(Checkbox, { ...control, className: "outline-none data-checked:not-data-disabled:border-info-soft-foreground data-checked:not-data-disabled:bg-info-soft-foreground data-checked:not-data-disabled:text-info-soft", name: group.name }))] }), children && group.selected.includes(value) ? (_jsx("div", { className: "p-2", "data-slot": "choicebox-content", children: children })) : null] }));
116
+ return (_jsxs("div", { className: cn("group/choicebox flex flex-col overflow-hidden rounded-sm border bg-background nc-transition-paint not-has-data-disabled:hover:bg-accent has-focus-visible:nc-focus-outline has-focus-visible:outline-ring has-data-checked:not-has-data-disabled:border-info", className), "data-slot": "choicebox-item", children: [_jsxs("label", { className: "flex cursor-pointer items-center justify-between gap-6 p-3 nc-transition-paint has-data-checked:not-has-data-disabled:bg-info-soft has-data-disabled:cursor-not-allowed", children: [_jsxs("span", { className: "flex min-w-0 flex-col gap-1", children: [_jsxs("span", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm font-medium group-has-data-checked/choicebox:not-group-has-data-disabled/choicebox:text-info-soft-foreground group-has-data-disabled/choicebox:text-muted-foreground", id: titleId, children: title }), badge ? (_jsx(Badge, { id: badgeId, size: "sm", variant: "secondary", children: badge })) : null] }), specs?.length ? (_jsx("span", { className: "flex flex-wrap gap-1", id: specsId, children: specs.map((spec) => (_jsx(Badge, { size: "sm", variant: "secondary", children: spec }, spec))) })) : null, _jsx("span", { className: "text-sm text-muted-foreground group-has-data-checked/choicebox:not-group-has-data-disabled/choicebox:text-info-soft-foreground", id: descriptionId, children: description }), disabledReason ? (_jsx("span", { className: "text-sm text-muted-foreground", id: reasonId, children: disabledReason })) : null] }), group.type === "radio" ? (_jsx(RadioGroupItem, { ...control, className: "outline-none data-checked:not-data-disabled:border-info-soft-foreground data-checked:not-data-disabled:text-info-soft-foreground" })) : (_jsx(Checkbox, { ...control, className: "outline-none data-checked:not-data-disabled:border-info-soft-foreground data-checked:not-data-disabled:bg-info-soft-foreground data-checked:not-data-disabled:text-info-soft", name: group.name }))] }), selectedFacts?.length && group.selected.includes(value) ? (_jsx("div", { className: "p-2", "data-slot": "choicebox-content", children: selectedFacts.map((fact) => (_jsx(FieldDescription, { children: fact }, fact))) })) : null] }));
116
117
  }
117
118
  export { ChoiceboxGroup, ChoiceboxGroupItem };
@@ -1 +1 @@
1
- {"version":3,"file":"clearable-input.d.ts","sourceRoot":"","sources":["../../src/components/clearable-input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGtD,sGAAsG;AACtG,MAAM,MAAM,sBAAsB,GAAG,QAAQ,SAAS,MAAM,IAAI,GAC5D,IAAI,SAAS,OAAO,GAClB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAClB,KAAK,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAC7B,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAClE,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,gHAAgH;IAChH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAK,EACL,aAAa,EACb,OAAO,EACP,UAAU,EACV,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,OAAe,EACf,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,mBAAmB,qBA2ErB;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"clearable-input.d.ts","sourceRoot":"","sources":["../../src/components/clearable-input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGtD,sGAAsG;AACtG,MAAM,MAAM,sBAAsB,GAAG,QAAQ,SAAS,MAAM,IAAI,GAC5D,IAAI,SAAS,OAAO,GAClB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAClB,KAAK,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAC7B,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAClE,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,gHAAgH;IAChH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAK,EACL,aAAa,EACb,OAAO,EACP,UAAU,EACV,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,OAAe,EACf,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,mBAAmB,qBA0ErB;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -41,7 +41,7 @@ import { WaitingLine } from "./waiting-line.js";
41
41
  function ClearableInput({ className, value, onValueChange, onClear, clearLabel, size, prefix, shortcut, loading = false, label, error, disabled, onKeyDown, ...props }) {
42
42
  const input = React.useRef(null);
43
43
  const clearable = value !== "" && !disabled;
44
- const shortcutHint = shortcut ? (_jsxs(InputGroupAddon, { align: "inline-end", "aria-hidden": "true", className: "gap-1 pr-2.5 pl-3 pointer-coarse:hidden", children: [shortcut.meta ? _jsx(Kbd, { size: "sm", meta: true }) : null, shortcut.shift ? _jsx(Kbd, { size: "sm", shift: true }) : null, shortcut.alt ? _jsx(Kbd, { size: "sm", alt: true }) : null, shortcut.ctrl ? _jsx(Kbd, { size: "sm", ctrl: true }) : null, shortcut.children ? _jsx(Kbd, { size: "sm", children: shortcut.children }) : null] })) : null;
44
+ const shortcutHint = shortcut ? (_jsxs(InputGroupAddon, { align: "inline-end", "aria-hidden": "true", className: "gap-1 pr-2.5 pl-3 pointer-coarse:hidden", children: [shortcut.meta ? _jsx(Kbd, { size: "sm", meta: true }) : null, shortcut.shift ? _jsx(Kbd, { size: "sm", shift: true }) : null, shortcut.alt ? _jsx(Kbd, { size: "sm", alt: true }) : null, shortcut.ctrl ? _jsx(Kbd, { size: "sm", ctrl: true }) : null, shortcut.keyName ? _jsx(Kbd, { size: "sm", keyName: shortcut.keyName }) : null] })) : null;
45
45
  function clear() {
46
46
  input.current?.focus();
47
47
  onValueChange("");
@@ -54,6 +54,6 @@ function ClearableInput({ className, value, onValueChange, onClear, clearLabel,
54
54
  event.preventDefault();
55
55
  event.stopPropagation();
56
56
  clear();
57
- }, value: value, ...props, ...aria }), clearable ? (_jsx(InputGroupAddon, { align: "inline-end", className: "has-[>button]:pl-3", children: _jsxs(InputGroupButton, { "aria-keyshortcuts": "Escape", "aria-label": clearLabel, onClick: clear, size: "icon", children: [_jsx(Kbd, { "aria-hidden": "true", className: "pointer-coarse:hidden group-hover/button:text-foreground", size: "sm", children: "Esc" }), _jsx(XIcon, { "aria-hidden": "true", className: "hidden pointer-coarse:block" })] }) })) : (shortcutHint), _jsx(WaitingLine, { className: "absolute inset-x-1.5 bottom-px w-auto", decorative: true, waiting: loading })] })) }));
57
+ }, value: value, ...props, ...aria }), clearable ? (_jsx(InputGroupAddon, { align: "inline-end", className: "has-[>button]:pl-3", children: _jsxs(InputGroupButton, { "aria-keyshortcuts": "Escape", "aria-label": clearLabel, onClick: clear, size: "icon", children: [_jsx(Kbd, { "aria-hidden": "true", className: "pointer-coarse:hidden group-hover/button:text-foreground", size: "sm", keyName: "Esc" }), _jsx(XIcon, { "aria-hidden": "true", className: "hidden pointer-coarse:block" })] }) })) : (shortcutHint), _jsx(WaitingLine, { className: "absolute inset-x-1.5 bottom-px w-auto", decorative: true, waiting: loading })] })) }));
58
58
  }
59
59
  export { ClearableInput };
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../src/components/code-block.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAc5E,KAAK,WAAW,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAGvD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,eAAe,GAChB;IAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAC3D;IAAE,IAAI,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAEhE,oGAAoG;AACpG,KAAK,WAAW,GACZ;IACE,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC;CACzD,GACD;IACE,uBAAuB,CAAC,EAAE,SAAS,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEN,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC,GAAG,WAAW,GACb,eAAe,GACf,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,aAAa,GAAG,iBAAiB,CAAC,CAAC;AAyDzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,iBAAS,SAAS,CAAC,EACjB,iBAAiB,EACjB,SAAS,EACT,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,EACR,eAAuB,EACvB,uBAAuB,EACvB,KAAK,EACL,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,IAAI,GACL,EAAE,cAAc,+BAgGhB;AAED,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../src/components/code-block.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAc5E,KAAK,WAAW,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAGvD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,eAAe,GAChB;IAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAC3D;IAAE,IAAI,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAEhE,oGAAoG;AACpG,KAAK,WAAW,GACZ;IACE,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACxD,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAClD,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC;CACzD,GACD;IACE,uBAAuB,CAAC,EAAE,SAAS,CAAC;IACpC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEN,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC,GAAG,WAAW,GACb,eAAe,GACf,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,aAAa,GAAG,iBAAiB,CAAC,CAAC;AAyDzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,iBAAS,SAAS,CAAC,EACjB,iBAAiB,EACjB,SAAS,EACT,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,EACR,eAAuB,EACvB,uBAAuB,EACvB,KAAK,EACL,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,IAAI,GACL,EAAE,cAAc,+BAiGhB;AAED,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,CAAC"}
@@ -19,7 +19,7 @@ function LanguageSwitcher({ label, onChange, options, value }) {
19
19
  return (_jsxs(Select, { value: value, onValueChange: (next) => {
20
20
  if (next !== null)
21
21
  onChange(next);
22
- }, children: [_jsx(SelectTrigger, { "aria-label": label, size: "sm", className: "w-auto bg-transparent pr-2 pl-2 text-label-sm text-muted-foreground shadow-none hover:bg-accent focus-visible:shadow-[0_0_0_2px_var(--ring)] data-popup-open:bg-accent [&_svg]:size-4", children: _jsx(SelectValue, { children: options.find((option) => option.value === value)?.label }) }), _jsx(SelectContent, { children: _jsx(SelectGroup, { children: options.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) }) })] }));
22
+ }, children: [_jsx(SelectTrigger, { "aria-label": label, size: "sm", className: "w-auto bg-transparent px-2 text-label-sm text-muted-foreground shadow-none hover:bg-accent focus-visible:shadow-[0_0_0_2px_var(--ring)] data-popup-open:bg-accent [&_svg]:size-4", children: _jsx(SelectValue, { children: options.find((option) => option.value === value)?.label }) }), _jsx(SelectContent, { children: _jsx(SelectGroup, { children: options.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) }) })] }));
23
23
  }
24
24
  function LanguageTabs({ label, onChange, options, value }) {
25
25
  return (_jsx(Tabs, { value: value, onValueChange: (next) => onChange(String(next)), className: "min-w-0", children: _jsx(TabsList, { "aria-label": label, children: options.map((option) => (_jsx(TabsTrigger, { value: option.value, children: option.label }, option.value))) }) }));
@@ -79,7 +79,9 @@ function CodeBlock({ addedLinesNumbers, className, code, copiedLabel, copyFailed
79
79
  const gutterWidth = `calc(${Math.max(String(lines.length).length, 2)}ch + 1rem)`;
80
80
  const hasHeader = filename !== undefined || switcher !== undefined || tabs !== undefined;
81
81
  const copyButton = (_jsx(CopyButton, { value: code, copyLabel: copyLabel, copiedLabel: copiedLabel, copyFailedLabel: copyFailedLabel, size: "icon-sm" }));
82
- return (_jsxs("div", { "data-slot": "code-block", "data-nc-ui": "", className: cn("flex min-w-0 flex-col gap-3", className), children: [tabs ? _jsx(LanguageTabs, { ...tabs }) : null, _jsxs("div", { className: "group/code-block relative min-w-0 overflow-hidden rounded-md border border-border bg-background", children: [hasHeader ? (_jsxs("div", { className: "flex h-10 items-center gap-1 border-b border-border bg-muted pr-0.75 pl-4 text-label-sm text-muted-foreground", children: [_jsx("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: filename === undefined ? null : (_jsxs(_Fragment, { children: [_jsx(FileTypeIcon, { path: filename }), _jsx(MiddleTruncate, { value: filename })] })) }), switcher ? _jsx(LanguageSwitcher, { ...switcher }) : null, copyButton] })) : (_jsx("div", { className: cn("absolute top-3.75 right-3.75 z-10 rounded-sm bg-muted ring-1 ring-border", SHOWN_ON_HOVER), children: copyButton })), _jsx("pre", { "aria-label": label, className: "max-h-96 overflow-auto py-4 font-label-mono-md text-label-mono-md", role: "region", tabIndex: 0, children: _jsx("code", { className: "block min-w-max", children: lines.map((text, index) => {
82
+ return (_jsxs("div", { "data-slot": "code-block", "data-nc-ui": "", className: cn("flex min-w-0 flex-col gap-3", className), children: [tabs ? _jsx(LanguageTabs, { ...tabs }) : null, _jsxs("div", { className: "group/code-block relative min-w-0 overflow-hidden rounded-md border border-border bg-background", children: [hasHeader ? (_jsxs("div", { className: "flex h-10 items-center gap-1 border-b border-border bg-muted pr-0.75 pl-4 text-label-sm text-muted-foreground", children: [_jsx("div", { className: "flex min-w-0 flex-1 items-center gap-2", children: filename === undefined ? null : (_jsxs(_Fragment, { children: [_jsx(FileTypeIcon, { path: filename }), _jsx(MiddleTruncate, { value: filename })] })) }), switcher ? _jsx(LanguageSwitcher, { ...switcher }) : null, copyButton] })) : (_jsx("div", { className: cn("absolute top-3.75 right-3.75 z-10 rounded-sm bg-muted ring-1 ring-border", SHOWN_ON_HOVER), children: copyButton })), _jsx("pre", { "aria-label": label, className: "max-h-96 overflow-auto py-4 font-label-mono-md text-label-mono-md", role: "region",
83
+ // oxlint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- a labelled region that scrolls: keyboard users scroll it only once it takes focus (axe's scrollable-region-focusable)
84
+ tabIndex: 0, children: _jsx("code", { className: "block min-w-max", children: lines.map((text, index) => {
83
85
  const line = index + 1;
84
86
  const state = removed.has(line)
85
87
  ? "removed"
@@ -34,6 +34,6 @@ function CollapsibleTrigger({ ...props }) {
34
34
  return _jsx(CollapsiblePrimitive.Trigger, { "data-slot": "collapsible-trigger", ...props });
35
35
  }
36
36
  function CollapsibleContent({ className, ...props }) {
37
- return (_jsx(CollapsiblePrimitive.Panel, { "data-slot": "collapsible-content", className: cn("h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-[var(--nc-duration-open)] ease-[var(--nc-ease-out-strong)] data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none", className), ...props }));
37
+ return (_jsx(CollapsiblePrimitive.Panel, { "data-slot": "collapsible-content", className: cn("h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-(--nc-duration-open) ease-(--nc-ease-out-strong) data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none", className), ...props }));
38
38
  }
39
39
  export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -1 +1 @@
1
- {"version":3,"file":"collection-filters.d.ts","sourceRoot":"","sources":["../../src/components/collection-filters.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+FAA+F;IAC/F,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA6HF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpC,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,sBAAsB,4BAmFzE"}
1
+ {"version":3,"file":"collection-filters.d.ts","sourceRoot":"","sources":["../../src/components/collection-filters.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,+FAA+F;IAC/F,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA8HF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpC,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,sBAAsB,4BAmFzE"}
@@ -14,6 +14,7 @@ function FilterPicker({ facets, copy, initialField, returnFocus, children, }) {
14
14
  React.useEffect(() => {
15
15
  if (open)
16
16
  input.current?.focus();
17
+ // oxlint-disable-next-line react/exhaustive-effect-dependencies -- `field` re-runs it so the search input takes focus again when the open picker moves between the fields and one field's values
17
18
  }, [field, open]);
18
19
  const facet = facets.find((item) => item.label === field);
19
20
  const changeField = (next) => {
@@ -30,6 +30,6 @@ export function CollectionPage(props) {
30
30
  const { title, description, actions, tabs, attention, search, filters, sort, toolbarSurface, noMatch, pending, rail, ...list } = props;
31
31
  const hasRecords = list.records !== undefined && list.records.length > 0;
32
32
  const narrowed = Boolean(search?.value) || (filters?.facets.some((facet) => facet.value) ?? false);
33
- const page = (_jsxs("div", { className: "grid min-w-0 gap-4", "data-slot": "collection-page", children: [title ? _jsx(PageHeader, { description: description, title: title }) : null, actions ? _jsx(PageActions, { ...actions }) : null, tabs, attention, (search || filters || sort) && (hasRecords || narrowed) ? (_jsx(CollectionToolbar, { actions: filters || sort ? (_jsxs(_Fragment, { children: [filters ? _jsx(CollectionFilters, { ...filters }) : null, sort ? _jsx(CollectionSort, { ...sort }) : null] })) : undefined, "aria-busy": pending || undefined, label: list.label, search: search ? _jsx(CollectionSearch, { ...search }) : undefined, status: _jsx(WaitingLine, { className: "w-24", decorative: true, waiting: pending === true }), surface: toolbarSurface ?? "plain" })) : null, rail ? (_jsxs("div", { className: "grid min-w-0 gap-6 xl:grid-cols-[18.75rem_minmax(0,1fr)] xl:items-start", "data-slot": "collection-columns", children: [_jsx("div", { className: "min-w-0 xl:col-start-2 xl:row-start-1", children: _jsx(RecordList, { ...list, layout: "line", noMatch: narrowed ? noMatch : undefined }) }), _jsx(CollectionRailColumn, { className: "xl:col-start-1 xl:row-start-1", rail: rail })] })) : (_jsx(RecordList, { ...list, noMatch: narrowed ? noMatch : undefined }))] }));
33
+ const page = (_jsxs("div", { className: "grid min-w-0 gap-4", "data-slot": "collection-page", children: [title ? _jsx(PageHeader, { description: description, title: title }) : null, actions ? _jsx(PageActions, { ...actions }) : null, tabs, attention, (search || filters || sort) && (hasRecords || narrowed) ? (_jsx(CollectionToolbar, { actions: filters || sort ? (_jsxs(_Fragment, { children: [filters ? _jsx(CollectionFilters, { ...filters }) : null, sort ? _jsx(CollectionSort, { ...sort }) : null] })) : undefined, "aria-busy": pending ? true : undefined, label: list.label, search: search ? _jsx(CollectionSearch, { ...search }) : undefined, status: _jsx(WaitingLine, { className: "w-24", decorative: true, waiting: pending === true }), surface: toolbarSurface ?? "plain" })) : null, rail ? (_jsxs("div", { className: "grid min-w-0 gap-6 xl:grid-cols-[18.75rem_minmax(0,1fr)] xl:items-start", "data-slot": "collection-columns", children: [_jsx("div", { className: "min-w-0 xl:col-start-2 xl:row-start-1", children: _jsx(RecordList, { ...list, layout: "line", noMatch: narrowed ? noMatch : undefined }) }), _jsx(CollectionRailColumn, { className: "xl:col-start-1 xl:row-start-1", rail: rail })] })) : (_jsx(RecordList, { ...list, noMatch: narrowed ? noMatch : undefined }))] }));
34
34
  return title ? _jsx(PageActionsHostProvider, { children: page }) : page;
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collection-sort.d.ts","sourceRoot":"","sources":["../../src/components/collection-sort.tsx"],"names":[],"mappings":"AAeA,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,mBAAmB,sCAgC3F"}
1
+ {"version":3,"file":"collection-sort.d.ts","sourceRoot":"","sources":["../../src/components/collection-sort.tsx"],"names":[],"mappings":"AAeA,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,mBAAmB,sCA8B3F"}
@@ -22,10 +22,7 @@ export function CollectionSort({ label, value, options, onValueChange }) {
22
22
  const current = options.find((option) => option.value === value) ?? options[0];
23
23
  if (!current)
24
24
  return null;
25
- return (_jsxs(DropdownMenu, { children: [_jsxs(DropdownMenuTrigger, { "data-slot": "collection-sort", render: _jsx(Button, { variant: "outline", prefix: _jsx(ArrowUpDown, { "aria-hidden": "true" }) }), children: [_jsxs("span", { className: "sr-only", children: [label, ":"] }), " ", current.label] }), _jsx(DropdownMenuContent, { align: "end", children: _jsxs(DropdownMenuGroup, { children: [_jsx(DropdownMenuLabel, { children: label }), _jsx(DropdownMenuRadioGroup, { value: current.value,
26
- // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Base UI types a radio group's value any; the guard below reads it
27
- onValueChange: (next) => {
28
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Base UI's radio group types the chosen value as unknown; this is where it is read.
25
+ return (_jsxs(DropdownMenu, { children: [_jsxs(DropdownMenuTrigger, { "data-slot": "collection-sort", render: _jsx(Button, { variant: "outline", prefix: _jsx(ArrowUpDown, { "aria-hidden": "true" }) }), children: [_jsxs("span", { className: "sr-only", children: [label, ":"] }), " ", current.label] }), _jsx(DropdownMenuContent, { align: "end", children: _jsxs(DropdownMenuGroup, { children: [_jsx(DropdownMenuLabel, { children: label }), _jsx(DropdownMenuRadioGroup, { value: current.value, onValueChange: (next) => {
29
26
  if (typeof next === "string" && next !== current.value)
30
27
  onValueChange(next);
31
28
  }, children: options.map((option) => (_jsx(DropdownMenuRadioItem, { value: option.value, children: option.label }, option.value))) })] }) })] }));
@@ -30,5 +30,5 @@ export function CollectionToolbar({ label, controls, search, actions, status, su
30
30
  // A search alone is the plain row: a search box never stands in a box of its
31
31
  // own (DESIGN.md "Menus and commands").
32
32
  const drawn = surface === "glass" && (controls || actions) ? "glass" : "plain";
33
- return (_jsxs("div", { "data-slot": "collection-toolbar", ...props, role: "toolbar", "aria-label": label, "data-surface": drawn, className: `flex min-w-0 flex-wrap items-center gap-2 ${drawn === "glass" ? ON_PAGE : PLAIN} ${IN_CARD}`, children: [controls ? (_jsx("div", { "data-slot": "collection-toolbar-controls", className: "flex min-w-0 max-w-full flex-wrap items-center gap-2 max-sm:relative max-sm:order-2 max-sm:-m-0.5 max-sm:flex-1 max-sm:basis-0 max-sm:flex-nowrap max-sm:overflow-x-auto max-sm:p-0.5 max-sm:[scrollbar-width:none] max-sm:*:max-w-none max-sm:*:shrink-0", children: controls })) : null, search ? (_jsx("div", { "data-slot": "collection-toolbar-search", className: "min-w-0 basis-full max-sm:order-1 sm:flex-1 sm:basis-64", children: search })) : null, actions ? (_jsx("div", { "data-slot": "collection-toolbar-actions", className: "ml-auto flex min-w-0 flex-wrap items-center gap-2 max-sm:relative max-sm:order-3 max-sm:-m-0.5 max-sm:flex-nowrap max-sm:overflow-x-auto max-sm:p-0.5 max-sm:[scrollbar-width:none] max-sm:*:max-w-none max-sm:*:shrink-0", children: actions })) : null, status ? _jsx("div", { className: "absolute right-0 bottom-0", children: status }) : null] }));
33
+ return (_jsxs("div", { "data-slot": "collection-toolbar", ...props, role: "toolbar", "aria-label": label, "data-surface": drawn, className: `flex min-w-0 flex-wrap items-center gap-2 ${drawn === "glass" ? ON_PAGE : PLAIN} ${IN_CARD}`, children: [controls ? (_jsx("div", { "data-slot": "collection-toolbar-controls", className: "flex min-w-0 max-w-full flex-wrap items-center gap-2 max-sm:relative max-sm:order-2 max-sm:-m-0.5 max-sm:flex-1 max-sm:basis-0 max-sm:flex-nowrap max-sm:overflow-x-auto max-sm:p-0.5 max-sm:scrollbar-none max-sm:*:max-w-none max-sm:*:shrink-0", children: controls })) : null, search ? (_jsx("div", { "data-slot": "collection-toolbar-search", className: "min-w-0 basis-full max-sm:order-1 sm:flex-1 sm:basis-64", children: search })) : null, actions ? (_jsx("div", { "data-slot": "collection-toolbar-actions", className: "ml-auto flex min-w-0 flex-wrap items-center gap-2 max-sm:relative max-sm:order-3 max-sm:-m-0.5 max-sm:flex-nowrap max-sm:overflow-x-auto max-sm:p-0.5 max-sm:scrollbar-none max-sm:*:max-w-none max-sm:*:shrink-0", children: actions })) : null, status ? _jsx("div", { className: "absolute right-0 bottom-0", children: status }) : null] }));
34
34
  }
@@ -100,11 +100,11 @@ function ComboboxContent({ className, side = "bottom", sideOffset = 8, align = "
100
100
  }
101
101
  function ComboboxList({ className, long = false, ...props }) {
102
102
  return (_jsx(ComboboxPrimitive.List, { "data-slot": "combobox-list", className: cn("no-scrollbar scroll-py-1 overflow-y-auto overscroll-contain p-1.5 data-empty:p-0", long
103
- ? "max-h-[min(--spacing(115.5),calc(var(--available-height)---spacing(9)))]"
104
- : "max-h-[min(--spacing(52.5),calc(var(--available-height)---spacing(9)))]", className), ...props }));
103
+ ? "max-h-[min(--spacing(115.5),calc(var(--available-height)-(--spacing(9))))]"
104
+ : "max-h-[min(--spacing(52.5),calc(var(--available-height)-(--spacing(9))))]", className), ...props }));
105
105
  }
106
106
  function ComboboxItem({ className, children, ...props }) {
107
- return (_jsxs(ComboboxPrimitive.Item, { "data-slot": "combobox-item", className: cn("relative flex min-h-touch-target w-full cursor-default items-center gap-3 rounded-sm px-2 py-2 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:text-muted-foreground [@media(hover:hover)_and_(pointer:fine)]:min-h-0 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [React.Children.map(children, (child) => React.isValidElement(child) ? (child) : (_jsx("span", { className: "min-w-0 truncate text-left", children: child }))), _jsx(ComboboxPrimitive.ItemIndicator, { render: _jsx("span", { className: "pointer-events-none ml-auto flex shrink-0 items-center" }), children: _jsx(CheckIcon, { className: "pointer-events-none size-3.5" }) })] }));
107
+ return (_jsxs(ComboboxPrimitive.Item, { "data-slot": "combobox-item", className: cn("relative flex min-h-touch-target w-full cursor-default items-center gap-3 rounded-sm p-2 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:text-muted-foreground [@media(hover:hover)_and_(pointer:fine)]:min-h-0 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [React.Children.map(children, (child) => React.isValidElement(child) ? (child) : (_jsx("span", { className: "min-w-0 truncate text-left", children: child }))), _jsx(ComboboxPrimitive.ItemIndicator, { render: _jsx("span", { className: "pointer-events-none ml-auto flex shrink-0 items-center" }), children: _jsx(CheckIcon, { className: "pointer-events-none size-3.5" }) })] }));
108
108
  }
109
109
  function ComboboxGroup({ className, ...props }) {
110
110
  return (_jsx(ComboboxPrimitive.Group, { "data-slot": "combobox-group", className: cn(className), ...props }));
@@ -119,7 +119,7 @@ function ComboboxEmpty({ className, ...props }) {
119
119
  return (_jsx(ComboboxPrimitive.Empty, { "data-slot": "combobox-empty", className: cn("hidden min-h-12 w-full items-center justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex", className), ...props }));
120
120
  }
121
121
  function ComboboxLoading({ className, ...props }) {
122
- return (_jsx(ComboboxPrimitive.Status, { "data-slot": "combobox-loading", className: cn("px-2 py-2 text-center text-sm text-muted-foreground empty:p-0", className), ...props }));
122
+ return (_jsx(ComboboxPrimitive.Status, { "data-slot": "combobox-loading", className: cn("p-2 text-center text-sm text-muted-foreground empty:p-0", className), ...props }));
123
123
  }
124
124
  function ComboboxSeparator({ className, ...props }) {
125
125
  return (_jsx(ComboboxPrimitive.Separator, { "data-slot": "combobox-separator", className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/components/command.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/components/command.tsx"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ function CommandDialog({ title, description, children, className, closeLabel, re
31
31
  function CommandInput({ className, ...props }) {
32
32
  const closeLabel = React.useContext(CommandDialogCloseLabel);
33
33
  if (closeLabel !== null) {
34
- return (_jsxs("div", { "data-slot": "command-input-wrapper", "data-nc-ui": "", className: "flex items-center gap-3 border-b border-border px-4 py-3", children: [_jsx(CommandPrimitive.Input, { "data-slot": "command-input", "data-nc-ui": "", className: cn("h-7 min-w-0 flex-1 bg-transparent text-body-lg outline-hidden placeholder:text-placeholder disabled:cursor-not-allowed disabled:opacity-50", className), ...props }), _jsx(DialogClose, { "aria-label": closeLabel, className: "shrink-0 rounded-xs-plus", children: _jsx(Kbd, { className: "bg-transparent", size: "sm", children: "Esc" }) })] }));
34
+ return (_jsxs("div", { "data-slot": "command-input-wrapper", "data-nc-ui": "", className: "flex items-center gap-3 border-b border-border px-4 py-3", children: [_jsx(CommandPrimitive.Input, { "data-slot": "command-input", "data-nc-ui": "", className: cn("h-7 min-w-0 flex-1 bg-transparent text-body-lg outline-hidden placeholder:text-placeholder disabled:cursor-not-allowed disabled:opacity-50", className), ...props }), _jsx(DialogClose, { "aria-label": closeLabel, className: "shrink-0 rounded-xs-plus", children: _jsx(Kbd, { className: "bg-transparent", size: "sm", keyName: "Esc" }) })] }));
35
35
  }
36
36
  return (_jsx("div", { "data-slot": "command-input-wrapper", "data-nc-ui": "", className: "p-2 pb-0", children: _jsxs(InputGroup, { className: "h-control-height! rounded-sm! border-input [--nc-field:var(--background)] shadow-none! *:data-[slot=input-group-addon]:pl-2!", children: [_jsx(CommandPrimitive.Input, { "data-slot": "command-input", "data-nc-ui": "", className: cn("size-full min-w-0 bg-transparent px-2 text-sm outline-hidden placeholder:text-placeholder disabled:cursor-not-allowed disabled:opacity-50", className), ...props }), _jsx(InputGroupAddon, { children: _jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }) })] }) }));
37
37
  }
@@ -32,11 +32,11 @@ function ConfirmDialogPanel({ cancel, phraseField, onConfirm, onCancel, confirmL
32
32
  const phraseLabelId = useId();
33
33
  const errorBody = error ? bodyBeyondTitle(error) : null;
34
34
  const confirmable = verify === undefined || typed === verify.phrase;
35
- const hasBody = Boolean(irreversible || verify || error);
35
+ const hasBody = Boolean(irreversible) || verify !== undefined || Boolean(error);
36
36
  return (_jsxs(_Fragment, { children: [hasBody ? (_jsxs(AlertDialogBody, { children: [irreversible ? (_jsxs("p", { className: "flex items-start gap-3 rounded-sm border border-destructive/15 bg-destructive-soft px-nadicode-sm py-1.5 text-body-sm text-destructive-soft-foreground", "data-slot": "confirm-dialog-irreversible", role: "note", children: [_jsx(OctagonAlertIcon, { "aria-hidden": "true", className: "h-5 w-3.5 shrink-0" }), irreversible] })) : null, verify ? (_jsxs(Field, { children: [_jsx(FieldLabel, { className: "text-label leading-5 text-foreground", htmlFor: phraseId, id: phraseLabelId, children: _jsx(VerifyPrompt, { phrase: verify.phrase, prompt: verify.prompt }) }), _jsx(Input, { "aria-labelledby": phraseLabelId, autoCapitalize: "none", autoComplete: "off", id: phraseId, onChange: (event) => setTyped(event.target.value), onKeyDown: (event) => {
37
37
  if (event.key === "Enter" && confirmable && !loading)
38
38
  onConfirm();
39
- }, readOnly: loading, ref: phraseField, spellCheck: false, value: typed })] })) : null, error ? (_jsxs(FieldError, { className: "text-body-sm break-words", "data-message-code": error.code, children: [_jsx("span", { className: "block", children: error.title }), errorBody ? (_jsxs(_Fragment, { children: [" ", _jsx("span", { className: "block", children: errorBody })] })) : null] })) : null, error?.actions.length ? (_jsx("div", { className: "flex flex-wrap items-center gap-2", "data-message-actions": true, children: error.actions.map((action) => (_jsx(PageCommandButton, { command: action, variant: "outline" }, action.label))) })) : null] })) : null, _jsxs(AlertDialogFooter, { children: [_jsx(Button, { disabled: loading, onClick: onCancel, ref: cancel, variant: "outline", children: cancelLabel }), _jsx(Button, { disabled: !confirmable, loading: loading, loadingLabel: confirmPendingLabel ?? confirmLabel, onClick: onConfirm, variant: destructive ? "destructive" : "default", children: confirmLabel })] })] }));
39
+ }, readOnly: loading, ref: phraseField, spellCheck: false, value: typed })] })) : null, error ? (_jsxs(FieldError, { className: "text-body-sm wrap-break-word", "data-message-code": error.code, children: [_jsx("span", { className: "block", children: error.title }), errorBody ? (_jsxs(_Fragment, { children: [" ", _jsx("span", { className: "block", children: errorBody })] })) : null] })) : null, error?.actions.length ? (_jsx("div", { className: "flex flex-wrap items-center gap-2", "data-message-actions": true, children: error.actions.map((action) => (_jsx(PageCommandButton, { command: action, variant: "outline" }, action.label))) })) : null] })) : null, _jsxs(AlertDialogFooter, { children: [_jsx(Button, { disabled: loading, onClick: onCancel, ref: cancel, variant: "outline", children: cancelLabel }), _jsx(Button, { disabled: !confirmable, loading: loading, loadingLabel: confirmPendingLabel ?? confirmLabel, onClick: onConfirm, variant: destructive ? "destructive" : "default", children: confirmLabel })] })] }));
40
40
  }
41
41
  function VerifyPrompt({ phrase, prompt }) {
42
42
  const at = prompt.indexOf(phrase);
@@ -11,7 +11,7 @@ import { DropdownMenuCheckboxItem, DropdownMenuGroup, DropdownMenuItem, Dropdown
11
11
  * @words "Items follow the same rules as `Menu`: Title Case `Verb + Noun` (`Open in New Tab`, `Copy URL`, `Delete Deployment`). Bare verbs are wrong." (https://vercel.com/geist/context-menu) "End with `…` only when activating opens a follow-up dialog (`Rename…`, `Move to Folder…`)." (https://vercel.com/geist/context-menu) "Group destructive items at the bottom with a divider and keep the destructive label `Verb + Noun`. `Delete` alone never ships." (https://vercel.com/geist/context-menu) Ours: sentence case, "Copy address", not Title Case. Identical to the visible menu's, in the same order; a command reached two ways reads the same both ways.
12
12
  * @access "Trigger the keyboard menu key (`Shift+F10` on Windows/Linux, the menu key, or platform equivalent) to open the same menu without right-click." (https://vercel.com/geist/context-menu) "Up/Down arrows move focus, Enter/Space activates, Escape closes and returns focus to the row." (https://vercel.com/geist/context-menu) "Don’t bury destructive items behind nested submenus. One level deep keeps keyboard navigation predictable." (https://vercel.com/geist/context-menu) Ours: the trigger must itself be focusable or hold something that is. The content requires an `aria-label` naming the menu, because nothing visible labels a menu opened at the pointer.
13
13
  */
14
- declare function ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props): React.JSX.Element;
14
+ declare function ContextMenu({ ...props }: Omit<ContextMenuPrimitive.Root.Props, "defaultOpen">): React.JSX.Element;
15
15
  declare function ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props): React.JSX.Element;
16
16
  declare function ContextMenuTrigger({ className, ...props }: ContextMenuPrimitive.Trigger.Props): React.JSX.Element;
17
17
  type ContextMenuPopupProps = ContextMenuPrimitive.Popup.Props & Pick<ContextMenuPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset"> & {
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../src/components/context-menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../src/components/context-menu.tsx"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export function CopyButton(props) {
20
20
  return _jsx(CopyValueButton, { ...props }, props.value);
21
21
  }
22
22
  function markClass(shown) {
23
- return cn("col-start-1 row-start-1 transition-opacity duration-[var(--nc-duration-confirm)]", !shown && "opacity-0");
23
+ return cn("col-start-1 row-start-1 transition-opacity duration-(--nc-duration-confirm)", !shown && "opacity-0");
24
24
  }
25
25
  function CopyValueButton({ value, copyLabel, copiedLabel, copyFailedLabel, size = "icon", copied: copiedProp, onCopy, }) {
26
26
  const [failed, setFailed] = useState(false);
@@ -48,9 +48,17 @@ type DataTableFeatures = {
48
48
  compact?: "line" | "text" | "dropped" | "name";
49
49
  };
50
50
  };
51
- /** A column definition typed for this table's feature set. Every column has a heading, because a table is read across its columns. */
52
- export type DataTableColumnDef<TData extends RowData, TValue extends CellData = CellData> = ColumnDef<DataTableFeatures, TData, TValue> & {
53
- header: NonNullable<ColumnDef<DataTableFeatures, TData, TValue>["header"]>;
51
+ type WithoutHeader<Definition> = Definition extends unknown ? Omit<Definition, "header"> : never;
52
+ /**
53
+ * A column definition typed for this table's feature set. Every column has a heading, because a
54
+ * table is read across its columns: its words, or `{ hidden }` for a column of actions, which
55
+ * only a screen reader reads. A heading is never a control, since the order has one owner, the
56
+ * app's `sorting`.
57
+ */
58
+ export type DataTableColumnDef<TData extends RowData, TValue extends CellData = CellData> = WithoutHeader<ColumnDef<DataTableFeatures, TData, TValue>> & {
59
+ header: string | {
60
+ hidden: string;
61
+ };
54
62
  };
55
63
  /** A column of this table, as handed to the column-visibility menu. */
56
64
  export type DataTableColumn<TData extends RowData, TValue extends CellData = CellData> = Column<DataTableFeatures, TData, TValue>;
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/components/data-table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/components/data-table.tsx"],"names":[],"mappings":"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"}
@@ -40,6 +40,15 @@ const dataTableFeatures = tableFeatures({
40
40
  },
41
41
  columnMeta: metaHelper(),
42
42
  });
43
+ function tableColumn(column) {
44
+ const { header, ...rest } = column;
45
+ // SAFETY: rest is the column without its header, and the header put back is one ColumnDef accepts; TypeScript cannot rejoin a distributed Omit.
46
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- the spread of a distributed Omit plus the header is the ColumnDef it came from
47
+ return {
48
+ ...rest,
49
+ header: typeof header === "string" ? header : () => _jsx("span", { className: "sr-only", children: header.hidden }),
50
+ };
51
+ }
43
52
  function isEmptyValue(value) {
44
53
  return value === null || value === undefined;
45
54
  }
@@ -91,7 +100,6 @@ function definitionId(column) {
91
100
  }
92
101
  export function columnMenuLabel(column) {
93
102
  const header = column.columnDef.header;
94
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- TanStack types a column header as a string or a render function; only typeof tells them apart.
95
103
  return typeof header === "string" ? header : column.id;
96
104
  }
97
105
  function sortOrder(sorted) {
@@ -160,7 +168,7 @@ function useShownLayout() {
160
168
  function LayoutProbeLeadingRecords({ layout, probeRef, children, }) {
161
169
  return (_jsxs(_Fragment, { children: [layout ? (_jsx("tbody", { ref: probeRef, "aria-hidden": "true", "data-slot": "table-layout-probe", className: tableCompactLayouts[layout].details }, layout)) : null, children] }));
162
170
  }
163
- const defaultRowLink = (props) => _jsx("a", { ...props });
171
+ const defaultRowLink = ({ children, ...props }) => (_jsx("a", { ...props, children: children }));
164
172
  function PagerButton({ enabled, label, link, onClick, }) {
165
173
  if (link && enabled) {
166
174
  return (_jsx(ButtonLink, { render: link, variant: "outline", children: label }));
@@ -217,13 +225,14 @@ function RecordsTable({ kind, columns, data, getRowId, filterColumnId, filterPla
217
225
  const identityColumnId = primaryColumnId ?? definitionId(columns[0]);
218
226
  // TanStack gives a column without a size its default one; only the caller's definition says whether it has one.
219
227
  const sizeOf = new Map(columns.map((column) => [definitionId(column), column.size]));
228
+ const tableColumns = React.useMemo(() => columns.map(tableColumn), [columns]);
220
229
  // An external pager means `data` is already one bounded server page:
221
230
  // `manualPagination` makes the paginated row model a passthrough so every
222
231
  // row of the current page renders.
223
232
  const tableOptions = {
224
233
  features: dataTableFeatures,
225
234
  data,
226
- columns,
235
+ columns: tableColumns,
227
236
  manualPagination: Boolean(pagination) || pagination === false || !pageLabels,
228
237
  onSortingChange: setSorting,
229
238
  onColumnFiltersChange: setColumnFilters,
@@ -256,7 +265,6 @@ function RecordsTable({ kind, columns, data, getRowId, filterColumnId, filterPla
256
265
  const waitingForPage = pagination ? pagination.isPending === true : false;
257
266
  const filterColumn = filterColumnId ? table.getColumn(filterColumnId) : undefined;
258
267
  const rawFilterValue = filterColumn?.getFilterValue();
259
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- TanStack types a column filter value as unknown; this is where it is read.
260
268
  const filterValue = typeof rawFilterValue === "string" ? rawFilterValue : "";
261
269
  const canHideColumns = Boolean(columnsLabel) && table.getAllColumns().some((column) => column.getCanHide());
262
270
  const columnsControl = canHideColumns ? (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { render: _jsx(Button, { variant: "outline", suffix: _jsx(ChevronDown, { "aria-hidden": "true" }), children: columnsLabel }) }), _jsx(DropdownMenuContent, { align: "end", children: _jsx(DropdownMenuGroup, { children: table
@@ -37,7 +37,7 @@ import { type PhoneLayout } from "../internal/phone-sheet.js";
37
37
  * Ours: `role="dialog"` named by its title. The corner Close is named by `closeLabel`. Focus starts
38
38
  * on the first field or `initialFocus`.
39
39
  */
40
- declare function Dialog({ ...props }: DialogPrimitive.Root.Props): React.JSX.Element;
40
+ declare function Dialog({ ...props }: Omit<DialogPrimitive.Root.Props, "defaultOpen">): React.JSX.Element;
41
41
  declare function DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props): React.JSX.Element;
42
42
  declare function DialogPortal({ ...props }: DialogPrimitive.Portal.Props): React.JSX.Element;
43
43
  declare function DialogClose({ ...props }: DialogPrimitive.Close.Props): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/components/dialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/components/dialog.tsx"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ function DialogContent({ className, children, showCloseButton = true, closeLabel
64
64
  // the scroll and leaves nothing here to scroll. It must not clip this popup with
65
65
  // `overflow-hidden`: that hides Base UI's trailing focus guard, and Tab then walks out of
66
66
  // the dialog into the page behind it.
67
- "fixed top-1/2 left-1/2 z-50 flex max-h-[min(50rem,80svh)] w-full max-w-[calc(100%-var(--spacing-nadicode-card-padding))] -translate-x-1/2 -translate-y-1/2 flex-col gap-(--dialog-gap) overflow-y-auto rounded-lg border-0 bg-popover p-(--dialog-padding) [--dialog-gap:var(--dialog-padding)] [--dialog-padding:var(--spacing-nadicode-card-padding)] text-sm text-popover-foreground nc-elevation-modal outline-none sm:max-w-135", phoneLayout === "sheet" && phoneSheetLayout, motion === "instant" ? instantModalOverlayMotion : modalOverlayMotion, className), ...props, children: [children, showCloseButton && closeLabel !== undefined && (_jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", "data-corner-close": "", render: _jsx(Button, { "aria-label": closeLabel, variant: "ghost", className: "absolute top-nadicode-md right-nadicode-md", size: "icon-sm" }), children: _jsx(XIcon, {}) }))] })] }));
67
+ "fixed top-1/2 left-1/2 z-50 flex max-h-[min(50rem,80svh)] w-full max-w-[calc(100%-var(--spacing-nadicode-card-padding))] -translate-1/2 flex-col gap-(--dialog-gap) overflow-y-auto rounded-lg border-0 bg-popover p-(--dialog-padding) [--dialog-gap:var(--dialog-padding)] [--dialog-padding:var(--spacing-nadicode-card-padding)] text-sm text-popover-foreground nc-elevation-modal outline-none sm:max-w-135", phoneLayout === "sheet" && phoneSheetLayout, motion === "instant" ? instantModalOverlayMotion : modalOverlayMotion, className), ...props, children: [children, showCloseButton && closeLabel !== undefined && (_jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", "data-corner-close": "", render: _jsx(Button, { "aria-label": closeLabel, variant: "ghost", className: "absolute top-nadicode-md right-nadicode-md", size: "icon-sm" }), children: _jsx(XIcon, {}) }))] })] }));
68
68
  }
69
69
  function DialogHeader({ className, ...props }) {
70
70
  return (_jsx("div", { "data-slot": "dialog-header", "data-nc-ui": "", className: cn("flex shrink-0 flex-col gap-2 group-data-[sticky=true]/dialog-content:-mx-(--dialog-padding) group-data-[sticky=true]/dialog-content:-mt-(--dialog-padding) group-data-[sticky=true]/dialog-content:rounded-t-lg group-data-[sticky=true]/dialog-content:border-b group-data-[sticky=true]/dialog-content:border-border group-data-[sticky=true]/dialog-content:bg-recessed group-data-[sticky=true]/dialog-content:p-(--dialog-padding) group-has-[>[data-corner-close]]/dialog-content:pe-8 group-data-[sticky=true]/dialog-content:group-has-[>[data-corner-close]]/dialog-content:pe-12", className), ...props }));
@@ -80,7 +80,7 @@ function DialogBody({ className, ...props }) {
80
80
  return (_jsx("div", { "data-slot": "dialog-body", className: cn("-mx-(--dialog-padding) flex min-h-0 flex-1 flex-col gap-nadicode-sm overflow-y-auto px-(--dialog-padding) group-data-[sticky=false]/dialog-content:shrink-0 group-data-[sticky=false]/dialog-content:overflow-y-visible group-data-[sticky=true]/dialog-content:-my-(--dialog-gap) group-data-[sticky=true]/dialog-content:py-(--dialog-padding)", className), ...props }));
81
81
  }
82
82
  function DialogFooter({ className, showCloseButton, closeLabel, children, ...props }) {
83
- return (_jsxs("div", { "data-slot": "dialog-footer", "data-nc-ui": "", className: cn("-mx-(--dialog-padding) -mb-(--dialog-padding) flex shrink-0 flex-row justify-between gap-nadicode-md rounded-b-lg border-t border-border bg-recessed p-nadicode-sm group-data-[phone-layout=sheet]/dialog-content:max-sm:rounded-b-none group-data-[sticky=false]/dialog-content:sticky group-data-[sticky=false]/dialog-content:-bottom-(--dialog-padding) group-data-[sticky=false]/dialog-content:z-10 *:only:w-full [&_[data-slot=button]]:h-nadicode-control-height-sm [&_[data-slot=button]]:min-h-nadicode-control-height-sm [&_[data-slot=button]]:px-button-padding-inline-sm", className), ...props, children: [showCloseButton ? (_jsx(DialogPrimitive.Close, { render: _jsx(Button, { variant: "outline" }), children: closeLabel })) : null, children] }));
83
+ return (_jsxs("div", { "data-slot": "dialog-footer", "data-nc-ui": "", className: cn("-mx-(--dialog-padding) -mb-(--dialog-padding) flex shrink-0 flex-row justify-between gap-nadicode-md rounded-b-lg border-t border-border bg-recessed p-nadicode-sm group-data-[phone-layout=sheet]/dialog-content:max-sm:rounded-b-none group-data-[sticky=false]/dialog-content:sticky group-data-[sticky=false]/dialog-content:-bottom-(--dialog-padding) group-data-[sticky=false]/dialog-content:z-10 *:only:w-full **:data-[slot=button]:h-nadicode-control-height-sm **:data-[slot=button]:min-h-nadicode-control-height-sm **:data-[slot=button]:px-button-padding-inline-sm", className), ...props, children: [showCloseButton ? (_jsx(DialogPrimitive.Close, { render: _jsx(Button, { variant: "outline" }), children: closeLabel })) : null, children] }));
84
84
  }
85
85
  function DialogTitle({ className, ...props }) {
86
86
  return (_jsx(DialogPrimitive.Title, { "data-slot": "dialog-title", "data-nc-ui": "", className: cn("text-heading-sm group-data-[sticky=true]/dialog-content:leading-6", className), ...props }));
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { Drawer as DrawerPrimitive } from "@base-ui/react/drawer";
3
3
  import { type UnsavedGuard } from "../internal/unsaved-guard.js";
4
- type DrawerProps = Omit<DrawerPrimitive.Root.Props, "swipeDirection"> & {
4
+ type DrawerProps = Omit<DrawerPrimitive.Root.Props, "swipeDirection" | "defaultOpen"> & {
5
5
  showSwipeHandle?: boolean;
6
6
  /** The panel's height in px, only when the default clips the primary action. */
7
7
  height?: number;
@@ -48,13 +48,13 @@ declare function DrawerContent({ className, children, ...props }: DrawerPrimitiv
48
48
  * so each draws the one hairline that separates it from the body; a caller
49
49
  * adds no edge of its own.
50
50
  */
51
- declare function DrawerHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
51
+ declare function DrawerHeader(props: Omit<React.ComponentProps<"div">, "className">): React.JSX.Element;
52
52
  /**
53
53
  * The part of a drawer that scrolls, between its header and footer, which stay
54
54
  * in place so the actions remain reachable.
55
55
  */
56
- declare function DrawerBody({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
57
- declare function DrawerFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
56
+ declare function DrawerBody(props: Omit<React.ComponentProps<"div">, "className">): React.JSX.Element;
57
+ declare function DrawerFooter(props: Omit<React.ComponentProps<"div">, "className">): React.JSX.Element;
58
58
  declare function DrawerTitle({ className, ...props }: DrawerPrimitive.Title.Props): React.JSX.Element;
59
59
  declare function DrawerDescription({ className, ...props }: DrawerPrimitive.Description.Props): React.JSX.Element;
60
60
  export { Drawer, DrawerPortal, DrawerOverlay, DrawerSwipeHandle, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerBody, DrawerFooter, DrawerTitle, DrawerDescription, };
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/components/drawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAsBvF,KAAK,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wJAAwJ;IACxJ,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,iBAAS,MAAM,CAAC,EACd,KAAY,EACZ,eAAuB,EACvB,UAAU,EACV,MAAM,EACN,OAAO,EACP,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,WAAW,qBAqBb;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,qBAE/D;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAE7D;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,qBAW7E;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAY9E;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAoDpF;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWzE;AAED;;;GAGG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWzE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAQxE;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,qBAQpF;AAED,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,CAAC"}
1
+ {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/components/drawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAuBvF,KAAK,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CAAC,GAAG;IACtF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wJAAwJ;IACxJ,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,iBAAS,MAAM,CAAC,EACd,KAAY,EACZ,eAAuB,EACvB,UAAU,EACV,MAAM,EACN,OAAO,EACP,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,WAAW,qBAqBb;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,qBAE/D;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAE7D;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,qBAW7E;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAY9E;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAmDpF;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,qBAQ1E;AAED;;;GAGG;AACH,iBAAS,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,qBAQxE;AAED,iBAAS,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,qBAQ1E;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAQxE;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,qBAQpF;AAED,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,CAAC"}