neba 1.13.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/README.md +22 -30
  2. package/dist/a2ui/catalog.json +1466 -0
  3. package/dist/a2ui/components.d.ts +21 -0
  4. package/dist/a2ui/components.js +1 -0
  5. package/dist/a2ui/index.d.ts +62 -0
  6. package/dist/a2ui/index.js +1 -0
  7. package/dist/a2ui/schema.d.ts +47 -0
  8. package/dist/a2ui/schema.js +1 -0
  9. package/dist/components/accordion/Accordion.d.ts +5 -1
  10. package/dist/components/accordion/Accordion.js +1 -1
  11. package/dist/components/agent-steps/AgentSteps.d.ts +80 -0
  12. package/dist/components/agent-steps/AgentSteps.js +1 -0
  13. package/dist/components/agent-steps/index.d.ts +2 -0
  14. package/dist/components/agent-steps/index.js +1 -0
  15. package/dist/components/alert/Alert.js +1 -1
  16. package/dist/components/anchor/Anchor.d.ts +3 -2
  17. package/dist/components/anchor/Anchor.js +1 -1
  18. package/dist/components/animate-appear/AnimateAppear.js +1 -1
  19. package/dist/components/animate-blink/AnimateBlink.d.ts +3 -0
  20. package/dist/components/animate-blink/AnimateBlink.js +1 -1
  21. package/dist/components/animate-counter/AnimateCounter.d.ts +3 -1
  22. package/dist/components/animate-counter/AnimateCounter.js +1 -1
  23. package/dist/components/animate-fade/AnimateFade.js +1 -1
  24. package/dist/components/animate-float/AnimateFloat.js +1 -1
  25. package/dist/components/animate-grow/AnimateGrow.js +1 -1
  26. package/dist/components/animate-headline/AnimateHeadline.d.ts +9 -2
  27. package/dist/components/animate-headline/AnimateHeadline.js +1 -1
  28. package/dist/components/animate-lighting/AnimateLighting.d.ts +1 -1
  29. package/dist/components/animate-lighting/AnimateLighting.js +1 -1
  30. package/dist/components/animate-marquee/AnimateMarquee.d.ts +15 -6
  31. package/dist/components/animate-marquee/AnimateMarquee.js +1 -1
  32. package/dist/components/animate-reveal/AnimateReveal.js +1 -1
  33. package/dist/components/animate-rotate/AnimateRotate.js +1 -1
  34. package/dist/components/animate-scramble/AnimateScramble.d.ts +5 -3
  35. package/dist/components/animate-scramble/AnimateScramble.js +1 -1
  36. package/dist/components/animate-shake/AnimateShake.js +1 -1
  37. package/dist/components/animate-slide/AnimateSlide.js +1 -1
  38. package/dist/components/animate-split/AnimateSplit.d.ts +3 -1
  39. package/dist/components/animate-split/AnimateSplit.js +1 -1
  40. package/dist/components/animate-typing/AnimateTyping.d.ts +12 -4
  41. package/dist/components/animate-typing/AnimateTyping.js +1 -1
  42. package/dist/components/animate-zoom/AnimateZoom.js +1 -1
  43. package/dist/components/app-logo/AppLogo.js +1 -1
  44. package/dist/components/approval/Approval.d.ts +115 -0
  45. package/dist/components/approval/Approval.js +1 -0
  46. package/dist/components/approval/index.d.ts +2 -0
  47. package/dist/components/approval/index.js +1 -0
  48. package/dist/components/area-chart/AreaChart.d.ts +16 -5
  49. package/dist/components/area-chart/AreaChart.js +1 -1
  50. package/dist/components/aspect-ratio/AspectRatio.d.ts +6 -4
  51. package/dist/components/aspect-ratio/AspectRatio.js +1 -1
  52. package/dist/components/avatar/Avatar.js +1 -1
  53. package/dist/components/badge/Badge.js +1 -1
  54. package/dist/components/bar-chart/BarChart.d.ts +1 -1
  55. package/dist/components/bar-chart/BarChart.js +1 -1
  56. package/dist/components/blockquote/Blockquote.js +1 -1
  57. package/dist/components/bottom-navigation/BottomNavigation.d.ts +2 -1
  58. package/dist/components/bottom-navigation/BottomNavigation.js +1 -1
  59. package/dist/components/box/Box.d.ts +5 -0
  60. package/dist/components/box/Box.js +1 -1
  61. package/dist/components/breadcrumb/Breadcrumb.d.ts +10 -0
  62. package/dist/components/breadcrumb/Breadcrumb.js +1 -1
  63. package/dist/components/button/Button.d.ts +11 -0
  64. package/dist/components/button/Button.js +1 -1
  65. package/dist/components/button-group/ButtonGroup.js +1 -1
  66. package/dist/components/calendar/Calendar.js +1 -1
  67. package/dist/components/card/Card.js +1 -1
  68. package/dist/components/carousel/Carousel.d.ts +4 -0
  69. package/dist/components/carousel/Carousel.js +1 -1
  70. package/dist/components/chat-bubble/ChatBubble.js +1 -1
  71. package/dist/components/checkbox/Checkbox.js +1 -1
  72. package/dist/components/chip/Chip.d.ts +3 -1
  73. package/dist/components/chip/Chip.js +1 -1
  74. package/dist/components/code-block/CodeBlock.d.ts +6 -3
  75. package/dist/components/code-block/CodeBlock.js +1 -1
  76. package/dist/components/collapsible/Collapsible.d.ts +11 -1
  77. package/dist/components/collapsible/Collapsible.js +1 -1
  78. package/dist/components/color-picker/ColorPicker.js +1 -1
  79. package/dist/components/combobox/Combobox.d.ts +11 -1
  80. package/dist/components/combobox/Combobox.js +1 -1
  81. package/dist/components/command-palette/CommandPalette.js +1 -1
  82. package/dist/components/confirm/Confirm.js +1 -1
  83. package/dist/components/container/Container.js +1 -1
  84. package/dist/components/context-window/ContextWindow.d.ts +103 -0
  85. package/dist/components/context-window/ContextWindow.js +1 -0
  86. package/dist/components/context-window/index.d.ts +2 -0
  87. package/dist/components/context-window/index.js +1 -0
  88. package/dist/components/data-list/DataList.js +1 -1
  89. package/dist/components/data-table/DataTable.d.ts +12 -1
  90. package/dist/components/data-table/DataTable.js +1 -1
  91. package/dist/components/date-picker/DatePicker.js +1 -1
  92. package/dist/components/date-range-picker/DateRangePicker.js +1 -1
  93. package/dist/components/date-time-picker/DateTimePicker.js +1 -1
  94. package/dist/components/dialog/Dialog.d.ts +12 -0
  95. package/dist/components/dialog/Dialog.js +1 -1
  96. package/dist/components/divider/Divider.js +1 -1
  97. package/dist/components/drawer/Drawer.d.ts +7 -0
  98. package/dist/components/drawer/Drawer.js +1 -1
  99. package/dist/components/empty/Empty.js +1 -1
  100. package/dist/components/fieldset/Fieldset.js +1 -1
  101. package/dist/components/file-picker/FilePicker.d.ts +12 -4
  102. package/dist/components/file-picker/FilePicker.js +1 -1
  103. package/dist/components/flex/Flex.d.ts +8 -2
  104. package/dist/components/flex/Flex.js +1 -1
  105. package/dist/components/floating-action-button/FloatingActionButton.d.ts +16 -1
  106. package/dist/components/floating-action-button/FloatingActionButton.js +1 -1
  107. package/dist/components/floating-bottom-navigation/FloatingBottomNavigation.js +1 -1
  108. package/dist/components/footer/Footer.d.ts +8 -0
  109. package/dist/components/footer/Footer.js +1 -1
  110. package/dist/components/form/Form.d.ts +4 -2
  111. package/dist/components/form/Form.js +1 -1
  112. package/dist/components/gallery/Gallery.d.ts +56 -3
  113. package/dist/components/gallery/Gallery.js +1 -1
  114. package/dist/components/gallery/GalleryViewer.js +1 -1
  115. package/dist/components/gauge-chart/GaugeChart.d.ts +1 -1
  116. package/dist/components/gauge-chart/GaugeChart.js +1 -1
  117. package/dist/components/grid/Grid.js +1 -1
  118. package/dist/components/grid-container/GridContainer.js +1 -1
  119. package/dist/components/header/Header.js +1 -1
  120. package/dist/components/heatmap-chart/HeatmapChart.d.ts +20 -1
  121. package/dist/components/heatmap-chart/HeatmapChart.js +1 -1
  122. package/dist/components/highlight/Highlight.js +1 -1
  123. package/dist/components/how-to-steps/HowToSteps.d.ts +26 -1
  124. package/dist/components/how-to-steps/HowToSteps.js +1 -1
  125. package/dist/components/icon/Icon.js +1 -1
  126. package/dist/components/icon-button/IconButton.d.ts +0 -20
  127. package/dist/components/icon-button/IconButton.js +1 -1
  128. package/dist/components/image/Image.d.ts +137 -11
  129. package/dist/components/image/Image.js +1 -1
  130. package/dist/components/image/index.d.ts +1 -1
  131. package/dist/components/inline-citation/InlineCitation.d.ts +53 -0
  132. package/dist/components/inline-citation/InlineCitation.js +1 -0
  133. package/dist/components/inline-citation/index.d.ts +2 -0
  134. package/dist/components/inline-citation/index.js +1 -0
  135. package/dist/components/line-chart/LineChart.d.ts +16 -5
  136. package/dist/components/line-chart/LineChart.js +1 -1
  137. package/dist/components/list/List.js +1 -1
  138. package/dist/components/menu/Menu.d.ts +25 -11
  139. package/dist/components/menu/Menu.js +1 -1
  140. package/dist/components/menubar/Menubar.js +1 -1
  141. package/dist/components/meter/Meter.d.ts +6 -0
  142. package/dist/components/meter/Meter.js +1 -1
  143. package/dist/components/mockup/Mockup.js +1 -1
  144. package/dist/components/navigation-menu/NavigationMenu.d.ts +10 -1
  145. package/dist/components/navigation-menu/NavigationMenu.js +1 -1
  146. package/dist/components/number-field/NumberField.d.ts +20 -6
  147. package/dist/components/number-field/NumberField.js +1 -1
  148. package/dist/components/otp-field/OtpField.d.ts +7 -0
  149. package/dist/components/otp-field/OtpField.js +1 -1
  150. package/dist/components/overlay/Overlay.d.ts +1 -1
  151. package/dist/components/overlay/Overlay.js +1 -1
  152. package/dist/components/page-layout/PageLayout.d.ts +11 -0
  153. package/dist/components/page-layout/PageLayout.js +1 -1
  154. package/dist/components/pagination/Pagination.js +1 -1
  155. package/dist/components/panes/Panes.d.ts +11 -0
  156. package/dist/components/panes/Panes.js +1 -1
  157. package/dist/components/pie-chart/PieChart.d.ts +34 -3
  158. package/dist/components/pie-chart/PieChart.js +1 -1
  159. package/dist/components/pill/Pill.d.ts +8 -0
  160. package/dist/components/pill/Pill.js +1 -1
  161. package/dist/components/popconfirm/Popconfirm.d.ts +10 -3
  162. package/dist/components/popconfirm/Popconfirm.js +1 -1
  163. package/dist/components/popover/Popover.d.ts +8 -1
  164. package/dist/components/popover/Popover.js +1 -1
  165. package/dist/components/portal/Portal.js +1 -1
  166. package/dist/components/progress-box/ProgressBox.js +1 -1
  167. package/dist/components/progress-circular/ProgressCircular.js +1 -1
  168. package/dist/components/progress-linear/ProgressLinear.js +1 -1
  169. package/dist/components/prompt-input/PromptInput.d.ts +104 -0
  170. package/dist/components/prompt-input/PromptInput.js +1 -0
  171. package/dist/components/prompt-input/index.d.ts +2 -0
  172. package/dist/components/prompt-input/index.js +1 -0
  173. package/dist/components/provider/NebaProvider.d.ts +3 -3
  174. package/dist/components/provider/NebaProvider.js +1 -1
  175. package/dist/components/radio-group/RadioGroup.js +1 -1
  176. package/dist/components/rating/Rating.d.ts +4 -1
  177. package/dist/components/rating/Rating.js +1 -1
  178. package/dist/components/reasoning/Reasoning.d.ts +78 -0
  179. package/dist/components/reasoning/Reasoning.js +1 -0
  180. package/dist/components/reasoning/index.d.ts +2 -0
  181. package/dist/components/reasoning/index.js +1 -0
  182. package/dist/components/scatter-chart/ScatterChart.js +1 -1
  183. package/dist/components/scroll-area/ScrollArea.js +1 -1
  184. package/dist/components/scroll-zone/ScrollZone.d.ts +10 -0
  185. package/dist/components/scroll-zone/ScrollZone.js +1 -1
  186. package/dist/components/segmented-button/SegmentedButton.js +1 -1
  187. package/dist/components/select/Select.js +1 -1
  188. package/dist/components/shortcut/Shortcut.js +1 -1
  189. package/dist/components/show/Show.d.ts +6 -5
  190. package/dist/components/show/Show.js +1 -1
  191. package/dist/components/sidebar/Sidebar.d.ts +7 -5
  192. package/dist/components/sidebar/Sidebar.js +1 -1
  193. package/dist/components/sidebar/SidebarTrigger.js +1 -1
  194. package/dist/components/skeleton/Skeleton.d.ts +1 -1
  195. package/dist/components/skeleton/Skeleton.js +1 -1
  196. package/dist/components/slider/Slider.d.ts +13 -1
  197. package/dist/components/slider/Slider.js +1 -1
  198. package/dist/components/sources/Sources.d.ts +78 -0
  199. package/dist/components/sources/Sources.js +1 -0
  200. package/dist/components/sources/index.d.ts +2 -0
  201. package/dist/components/sources/index.js +1 -0
  202. package/dist/components/sparkline/Sparkline.d.ts +14 -1
  203. package/dist/components/sparkline/Sparkline.js +1 -1
  204. package/dist/components/spoiler/Spoiler.js +1 -1
  205. package/dist/components/stack/Stack.d.ts +2 -2
  206. package/dist/components/stack/Stack.js +1 -1
  207. package/dist/components/statistic/Statistic.js +1 -1
  208. package/dist/components/streaming-text/StreamingText.d.ts +75 -0
  209. package/dist/components/streaming-text/StreamingText.js +1 -0
  210. package/dist/components/streaming-text/index.d.ts +2 -0
  211. package/dist/components/streaming-text/index.js +1 -0
  212. package/dist/components/switch/Switch.js +1 -1
  213. package/dist/components/table/Table.d.ts +8 -2
  214. package/dist/components/table/Table.js +1 -1
  215. package/dist/components/tabs/Tabs.d.ts +17 -1
  216. package/dist/components/tabs/Tabs.js +1 -1
  217. package/dist/components/text-field/TextField.js +1 -1
  218. package/dist/components/text-link/TextLink.js +1 -1
  219. package/dist/components/time-picker/TimePicker.js +1 -1
  220. package/dist/components/timeline/Timeline.d.ts +8 -0
  221. package/dist/components/timeline/Timeline.js +1 -1
  222. package/dist/components/timeline-chart/TimelineChart.js +1 -1
  223. package/dist/components/toast/Toast.d.ts +9 -3
  224. package/dist/components/toast/Toast.js +1 -1
  225. package/dist/components/toggle/Toggle.js +1 -1
  226. package/dist/components/toggle-group/ToggleGroup.js +1 -1
  227. package/dist/components/tool-call/ToolCall.d.ts +104 -0
  228. package/dist/components/tool-call/ToolCall.js +1 -0
  229. package/dist/components/tool-call/index.d.ts +2 -0
  230. package/dist/components/tool-call/index.js +1 -0
  231. package/dist/components/toolbar/Toolbar.d.ts +8 -0
  232. package/dist/components/toolbar/Toolbar.js +1 -1
  233. package/dist/components/tooltip/Tooltip.js +1 -1
  234. package/dist/components/tour/Tour.d.ts +2 -0
  235. package/dist/components/tour/Tour.js +1 -1
  236. package/dist/components/transfer/Transfer.js +1 -1
  237. package/dist/components/tree-select/TreeSelect.js +1 -1
  238. package/dist/components/tree-view/TreeView.d.ts +6 -0
  239. package/dist/components/tree-view/TreeView.js +1 -1
  240. package/dist/components/typography/Typography.js +1 -1
  241. package/dist/components/visually-hidden/VisuallyHidden.d.ts +9 -7
  242. package/dist/components/visually-hidden/VisuallyHidden.js +1 -1
  243. package/dist/components/window-pane/WindowPane.d.ts +2 -2
  244. package/dist/components/window-pane/WindowPane.js +1 -1
  245. package/dist/hooks/useElementSize.d.ts +3 -1
  246. package/dist/hooks/useElementSize.js +1 -1
  247. package/dist/hooks/useOnScreen.d.ts +3 -0
  248. package/dist/hooks/useOnScreen.js +1 -1
  249. package/dist/index.d.ts +9 -0
  250. package/dist/index.js +1 -1
  251. package/dist/internal/animate.d.ts +63 -16
  252. package/dist/internal/animate.js +1 -1
  253. package/dist/internal/calendar.d.ts +6 -1
  254. package/dist/internal/calendar.js +1 -1
  255. package/dist/internal/chart-brush.d.ts +53 -0
  256. package/dist/internal/chart-brush.js +1 -0
  257. package/dist/internal/chart-frame.d.ts +186 -30
  258. package/dist/internal/chart-frame.js +1 -1
  259. package/dist/internal/chart-line.js +1 -1
  260. package/dist/internal/chart.d.ts +133 -6
  261. package/dist/internal/chart.js +1 -1
  262. package/dist/internal/children.d.ts +15 -0
  263. package/dist/internal/children.js +1 -0
  264. package/dist/internal/color.d.ts +4 -0
  265. package/dist/internal/color.js +1 -1
  266. package/dist/internal/csv.d.ts +12 -1
  267. package/dist/internal/csv.js +1 -1
  268. package/dist/internal/data-table.d.ts +28 -10
  269. package/dist/internal/data-table.js +1 -1
  270. package/dist/internal/date.d.ts +12 -5
  271. package/dist/internal/date.js +1 -1
  272. package/dist/internal/defaults.d.ts +6 -1
  273. package/dist/internal/defaults.js +1 -1
  274. package/dist/internal/drag.d.ts +13 -1
  275. package/dist/internal/drag.js +1 -1
  276. package/dist/internal/drop.d.ts +61 -0
  277. package/dist/internal/drop.js +1 -0
  278. package/dist/internal/fieldset.d.ts +13 -0
  279. package/dist/internal/fieldset.js +1 -0
  280. package/dist/internal/glow.d.ts +102 -0
  281. package/dist/internal/glow.js +1 -0
  282. package/dist/internal/highlight.js +1 -1
  283. package/dist/internal/i18n.d.ts +232 -11
  284. package/dist/internal/i18n.js +1 -1
  285. package/dist/internal/icons.d.ts +13 -2
  286. package/dist/internal/icons.js +1 -1
  287. package/dist/internal/inert.d.ts +13 -0
  288. package/dist/internal/inert.js +1 -0
  289. package/dist/internal/initials.d.ts +8 -3
  290. package/dist/internal/initials.js +1 -1
  291. package/dist/internal/keys.d.ts +13 -0
  292. package/dist/internal/keys.js +1 -1
  293. package/dist/internal/link.d.ts +13 -15
  294. package/dist/internal/link.js +1 -1
  295. package/dist/internal/media.d.ts +9 -17
  296. package/dist/internal/media.js +1 -1
  297. package/dist/internal/menu.d.ts +6 -1
  298. package/dist/internal/mockup.d.ts +5 -4
  299. package/dist/internal/mockup.js +1 -1
  300. package/dist/internal/observe.d.ts +12 -0
  301. package/dist/internal/observe.js +1 -1
  302. package/dist/internal/page-layout.d.ts +10 -8
  303. package/dist/internal/page-layout.js +1 -1
  304. package/dist/internal/picker.d.ts +1 -1
  305. package/dist/internal/picker.js +1 -1
  306. package/dist/internal/progress.d.ts +11 -5
  307. package/dist/internal/progress.js +1 -1
  308. package/dist/internal/responsive.d.ts +0 -8
  309. package/dist/internal/responsive.js +1 -1
  310. package/dist/internal/run.d.ts +71 -0
  311. package/dist/internal/run.js +1 -0
  312. package/dist/internal/screen.d.ts +12 -0
  313. package/dist/internal/screen.js +1 -0
  314. package/dist/internal/styles.d.ts +185 -14
  315. package/dist/internal/styles.js +1 -1
  316. package/dist/internal/text.d.ts +3 -3
  317. package/dist/internal/text.js +1 -1
  318. package/dist/internal/window.js +1 -1
  319. package/dist/locales/ar.js +1 -1
  320. package/dist/locales/de.js +1 -1
  321. package/dist/locales/es.js +1 -1
  322. package/dist/locales/fr.js +1 -1
  323. package/dist/locales/hi.js +1 -1
  324. package/dist/locales/id.js +1 -1
  325. package/dist/locales/it.js +1 -1
  326. package/dist/locales/ja.js +1 -1
  327. package/dist/locales/ko.js +1 -1
  328. package/dist/locales/nl.js +1 -1
  329. package/dist/locales/pl.js +1 -1
  330. package/dist/locales/pt.js +1 -1
  331. package/dist/locales/ru.js +1 -1
  332. package/dist/locales/th.js +1 -1
  333. package/dist/locales/tr.js +1 -1
  334. package/dist/locales/vi.js +1 -1
  335. package/dist/locales/zh-hans.js +1 -1
  336. package/dist/locales/zh-hant.js +1 -1
  337. package/dist/styles.css +1 -1
  338. package/dist/tailwind.css +516 -53
  339. package/dist/types.d.ts +167 -7
  340. package/dist/types.js +0 -8
  341. package/package.json +43 -9
@@ -0,0 +1,61 @@
1
+ /**
2
+ * What a drop actually handed over, and the state of the box it landed on.
3
+ *
4
+ * Two components take dropped files — a
5
+ * [FilePicker](../components/inputs/file-picker), and a
6
+ * [PromptInput](../components/agent/prompt-input) whose shell is a drop target
7
+ * — and both have to get the same two things right. Neither is hard; both are
8
+ * the kind of thing that is written correctly once and approximately the second
9
+ * time.
10
+ */
11
+ import * as React from 'react';
12
+ /**
13
+ * Whether what was dropped is a file at all.
14
+ *
15
+ * A folder dragged onto a page arrives in `dataTransfer.files` as a `File` with
16
+ * no type and a size of zero, and there is no flag on it that says so. The only
17
+ * thing that does is `webkitGetAsEntry`, which is on the *item* rather than on
18
+ * the file — so the two lists are walked in step, and a browser too old to have
19
+ * it is left trusting what it was given.
20
+ *
21
+ * Silently accepting a folder is worse than refusing it: it goes into the list
22
+ * looking like a file, and the upload that follows sends nothing.
23
+ */
24
+ export declare function droppedFiles(transfer: DataTransfer): File[];
25
+ /** What a drop zone hands back: whether a drag is over it, and the listeners. */
26
+ export interface DropZone {
27
+ /** A drag is over the zone right now. Always `false` while it is off. */
28
+ over: boolean;
29
+ /**
30
+ * Spread onto the element that *is* the zone — the whole area a drop is a
31
+ * gesture over, rather than the control inside it.
32
+ */
33
+ handlers: {
34
+ onDragEnter?: React.DragEventHandler;
35
+ onDragOver?: React.DragEventHandler;
36
+ onDragLeave?: React.DragEventHandler;
37
+ onDrop?: React.DragEventHandler;
38
+ };
39
+ }
40
+ /**
41
+ * An area that takes dropped files.
42
+ *
43
+ * `accept` is called with the files, folders already filtered out. Pass
44
+ * `undefined` and the zone is off: no listeners at all, and `over` never turns
45
+ * true — which is what a disabled or read-only control wants, and what a
46
+ * component with nothing to do with files wants.
47
+ *
48
+ * Two details are the whole reason this is shared rather than written twice.
49
+ *
50
+ * **The depth count.** `dragenter` and `dragleave` fire for every child the
51
+ * pointer crosses, so a boolean flickers the entire time a file is over a box
52
+ * with anything in it — which is every box worth dropping on.
53
+ *
54
+ * **The drag that never comes back.** Escape cancels a drag, and a drop outside
55
+ * the window ends it somewhere the zone will never hear about; neither fires a
56
+ * `dragleave` here, so the counter stays up and the box keeps its lit edge
57
+ * until some later drag happens to balance it. `dragend` fires on the source
58
+ * and `drop` on whatever accepted it, so both are listened for at the document,
59
+ * with capture.
60
+ */
61
+ export declare function useDropZone(accept: ((files: File[]) => void) | undefined): DropZone;
@@ -0,0 +1 @@
1
+ "use client";import*as e from"react";export function droppedFiles(e){const r=[...e.items],t=[...e.files];return r.length!==t.length?t:t.filter((e,t)=>{const n=r[t]?.webkitGetAsEntry?.();return!n||n.isFile})}export function useDropZone(r){const t=e.useRef(0),[n,o]=e.useState(!1),u=void 0!==r;return e.useEffect(()=>{if(!u)return;const e=()=>{t.current=0,o(!1)};return document.addEventListener("dragend",e,!0),document.addEventListener("drop",e,!0),()=>{document.removeEventListener("dragend",e,!0),document.removeEventListener("drop",e,!0)}},[u]),u?{over:n,handlers:{onDragEnter:e=>{e.preventDefault(),t.current+=1,o(!0)},onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect="copy"},onDragLeave:()=>{t.current=Math.max(0,t.current-1),0===t.current&&o(!1)},onDrop:e=>{e.preventDefault(),t.current=0,o(!1),r(droppedFiles(e.dataTransfer))}}}:{over:!1,handlers:{}}}
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Whether a Fieldset around a field is disabled.
4
+ *
5
+ * Base UI's own Fieldset already stops every field inside it answering, and
6
+ * says nothing a Neba component can read: its context is not part of the
7
+ * package's public exports. So a field went on drawing itself available inside
8
+ * a disabled group, because each one decides how it looks from its own
9
+ * `disabled` prop. This is the half Base UI does not carry.
10
+ */
11
+ export declare const FieldsetDisabledContext: React.Context<boolean>;
12
+ /** A field's own `disabled`, or the Fieldset's around it. */
13
+ export declare function useFieldsetDisabled(disabled: boolean | undefined): boolean;
@@ -0,0 +1 @@
1
+ "use client";import*as e from"react";export const FieldsetDisabledContext=/*@__PURE__*/e.createContext(!1);export function useFieldsetDisabled(t){return e.useContext(FieldsetDisabledContext)||!0===t}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * The pointer's place on a surface that is lit by it.
3
+ *
4
+ * `.neba-glow` in `styles.css` draws two layers off `--n-mx`/`--n-my` — a
5
+ * spotlight that follows the pointer and an afterglow that lands on a press —
6
+ * and neither of them can find the pointer on its own: CSS has no way to ask
7
+ * where it is. This is the two lines that tell it, and they are here because
8
+ * the number of components that want them is no longer two.
9
+ *
10
+ * **The rect, rather than `offsetX`.** `offsetX` is measured from the *target*,
11
+ * which is the innermost element under the pointer — so it is only the surface's
12
+ * own offset while every descendant is `pointer-events: none`. That holds for a
13
+ * Button's icons and stops holding the moment a caller wraps the label in a
14
+ * `<span>`, and it never held for a field, whose `<input>` is exactly the thing
15
+ * the pointer is over. One `getBoundingClientRect` per frame on the one element
16
+ * a pointer can be over is the price of being right about all of them.
17
+ *
18
+ * Nothing else costs anything. `pointermove` is already coalesced to one per
19
+ * frame; the two properties are written straight to the element rather than
20
+ * held in state, so React never re-renders; and what changes is where a
21
+ * gradient is centred, which is a repaint of one box and not a layout. Only the
22
+ * hovered element paints at all, `@media (hover: hover)` keeps it off a touch
23
+ * screen entirely, and a reduced-motion preference drops both layers.
24
+ *
25
+ * The one thing to watch is **whose subtree it is**. A custom property written
26
+ * on an element invalidates the style of everything under it, so the slots go
27
+ * on the surface that paints the light and never on a container holding rows of
28
+ * other things: a Menu lights its own rows, one at a time, and not the popup
29
+ * around them.
30
+ */
31
+ import type * as React from 'react';
32
+ /** Carries the two layers. Useless without the slots below and the handler. */
33
+ export declare const glowClasses = "neba-glow";
34
+ /**
35
+ * The spotlight without the press flash, for a surface that is **entered**
36
+ * rather than pressed and held.
37
+ *
38
+ * `--n-flash` is left unset and the afterglow falls back to `transparent`,
39
+ * which is the whole distinction. A press is answered by a flash that lands on
40
+ * the frame of the click and drains for the best part of a second: clicking
41
+ * into a field is not that, and neither is choosing a menu row, which is gone
42
+ * before the flash is a third of the way out.
43
+ *
44
+ * It reads `--n-soft` rather than a family, so it follows whatever the
45
+ * component's own slots resolved to — including a field turning `danger` the
46
+ * moment it is invalid.
47
+ */
48
+ export declare const spotlightSlot: React.CSSProperties;
49
+ /**
50
+ * Half of that, for a surface the reader is about to **write on**.
51
+ *
52
+ * A control is a thing the pointer acts on, and the bloom under the cursor is
53
+ * the surface answering. A field is a thing the pointer is only passing over on
54
+ * its way to putting a caret down: what the reader looks at next is their own
55
+ * text, a few pixels tall, and a wash at the full strength sits behind it and
56
+ * competes with it. The light still has to say the shell is live, which is all
57
+ * half of it is asked to do.
58
+ *
59
+ * Half of `--n-soft` rather than a paler token of its own, so a field that
60
+ * turns `danger` the moment it is invalid takes the danger light at the same
61
+ * strength it took the resting one.
62
+ */
63
+ export declare const fieldSpotlightSlot: React.CSSProperties;
64
+ /**
65
+ * The two handlers a **field's** shell takes, which is the pair that puts the
66
+ * spotlight out while the reader is typing and brings it back when the pointer
67
+ * moves.
68
+ *
69
+ * The bloom is drawn where the pointer is, and a pointer resting on a field is
70
+ * where the hand left it — over the text, most of the time, because that is
71
+ * where the reader clicked to get the caret. So the one moment the light is
72
+ * least wanted is the one moment it cannot get out of the way on its own.
73
+ *
74
+ * Any key and not only the ones that produce text: a reader walking the caret
75
+ * with the arrows or selecting with Shift is reading the field just as closely,
76
+ * and a rule that has to decide which keys count is a rule that will get one of
77
+ * them wrong.
78
+ *
79
+ * Both handlers go on the element carrying `.neba-glow` — the shell, which is
80
+ * where the key from the control inside it bubbles to. The mark is taken off
81
+ * here rather than inside `trackPointer` for the reason
82
+ * `internal/defaults.ts` is one `useContext`: `trackPointer` is on every lit
83
+ * control in the library, and a line only a field can ever need does not
84
+ * belong in the bundle of a page whose only control is a Button.
85
+ *
86
+ * `lit` off gives back nothing at all: a disabled or read-only shell has no
87
+ * light to put out.
88
+ */
89
+ export declare function fieldLight<E extends HTMLElement>(lit: boolean): {
90
+ onPointerMove?: React.PointerEventHandler<E>;
91
+ onKeyDown?: React.KeyboardEventHandler<E>;
92
+ };
93
+ /**
94
+ * Writes the pointer's place onto the element, in front of whatever handler the
95
+ * caller passed.
96
+ *
97
+ * `lit` is what stops a disabled, read-only or otherwise unlit surface paying
98
+ * for a light nobody is painting: without the class there are no layers to
99
+ * feed, and writing the slots anyway would invalidate that element's style on
100
+ * every pointer event for nothing.
101
+ */
102
+ export declare function trackPointer<E extends HTMLElement>(handler: React.PointerEventHandler<E> | undefined, lit: boolean): React.PointerEventHandler<E> | undefined;
@@ -0,0 +1 @@
1
+ export const glowClasses="neba-glow";export const spotlightSlot={"--n-glow":"var(--n-soft)"};export const fieldSpotlightSlot={"--n-glow":"color-mix(in srgb, var(--n-soft) 50%, transparent)"};const t="data-typing";export function fieldLight(e){return e?{onPointerMove:trackPointer(e=>e.currentTarget.removeAttribute(t),!0),onKeyDown:e=>e.currentTarget.setAttribute(t,"")}:{}}export function trackPointer(t,e){return e?e=>{const n=e.currentTarget,o=n.getBoundingClientRect();n.style.setProperty("--n-mx",e.clientX-o.left+"px"),n.style.setProperty("--n-my",e.clientY-o.top+"px"),t?.(e)}:t}
@@ -1 +1 @@
1
- const i={bash:()=>import("highlight.js/lib/languages/bash"),c:()=>import("highlight.js/lib/languages/c"),cpp:()=>import("highlight.js/lib/languages/cpp"),csharp:()=>import("highlight.js/lib/languages/csharp"),css:()=>import("highlight.js/lib/languages/css"),diff:()=>import("highlight.js/lib/languages/diff"),dockerfile:()=>import("highlight.js/lib/languages/dockerfile"),go:()=>import("highlight.js/lib/languages/go"),graphql:()=>import("highlight.js/lib/languages/graphql"),ini:()=>import("highlight.js/lib/languages/ini"),java:()=>import("highlight.js/lib/languages/java"),javascript:()=>import("highlight.js/lib/languages/javascript"),json:()=>import("highlight.js/lib/languages/json"),kotlin:()=>import("highlight.js/lib/languages/kotlin"),less:()=>import("highlight.js/lib/languages/less"),lua:()=>import("highlight.js/lib/languages/lua"),makefile:()=>import("highlight.js/lib/languages/makefile"),markdown:()=>import("highlight.js/lib/languages/markdown"),objectivec:()=>import("highlight.js/lib/languages/objectivec"),perl:()=>import("highlight.js/lib/languages/perl"),php:()=>import("highlight.js/lib/languages/php"),plaintext:()=>import("highlight.js/lib/languages/plaintext"),powershell:()=>import("highlight.js/lib/languages/powershell"),python:()=>import("highlight.js/lib/languages/python"),r:()=>import("highlight.js/lib/languages/r"),ruby:()=>import("highlight.js/lib/languages/ruby"),rust:()=>import("highlight.js/lib/languages/rust"),scss:()=>import("highlight.js/lib/languages/scss"),shell:()=>import("highlight.js/lib/languages/shell"),sql:()=>import("highlight.js/lib/languages/sql"),swift:()=>import("highlight.js/lib/languages/swift"),typescript:()=>import("highlight.js/lib/languages/typescript"),xml:()=>import("highlight.js/lib/languages/xml"),yaml:()=>import("highlight.js/lib/languages/yaml")},t={"c++":"cpp",cc:"cpp",cjs:"javascript",console:"bash",cs:"csharp",cts:"typescript",docker:"dockerfile",gql:"graphql",golang:"go",h:"cpp",hpp:"cpp",htm:"xml",html:"xml",js:"javascript",jsx:"javascript",kt:"kotlin",kts:"kotlin",md:"markdown",mdx:"markdown",mjs:"javascript",mm:"objectivec",mts:"typescript",mysql:"sql",node:"javascript",none:"plaintext",objc:"objectivec",plain:"plaintext",posh:"powershell",ps1:"powershell",psql:"sql",py:"python",rb:"ruby",rs:"rust",sh:"bash",svelte:"xml",svg:"xml",text:"plaintext",toml:"ini",ts:"typescript",tsx:"typescript",txt:"plaintext",vue:"xml",yml:"yaml",zsh:"bash"},l=new Map;export function registerLanguage(i,t){const g=i.toLowerCase();l.set(g,t),s.delete(g)}let g=null;const s=new Map;export function canonicalLanguage(i){if(!i)return null;const l=i.trim().toLowerCase();return l?t[l]??l:null}export async function highlight(t,a){let e=s.get(a);e||(e=async function(t){const s=l.get(t),a=s?void 0:i[t];if(!s&&!a)return null;g??=import("highlight.js/lib/core").then(i=>i.default);const e=await g;return s?e.registerLanguage(t,s):e.getLanguage(t)||e.registerLanguage(t,(await a()).default),t}(a).catch(i=>{throw s.delete(a),i}),s.set(a,e));const h=await e;if(!h||!g)return null;return tokenize((await g).highlight(t,{language:h,ignoreIllegals:!0}).value)}const a={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'"};export function tokenize(i){const t=[[]],l=[],g=/<span class="([^"]*)">|<\/span>/g;let s=0;const e=i=>{if(!i)return;const g=l[l.length-1];i.replace(/&(?:amp|lt|gt|quot|#x27);/g,i=>a[i]).split("\n").forEach((i,l)=>{l>0&&t.push([]),i&&t[t.length-1].push(g?{text:i,token:g}:{text:i})})};for(const t of i.matchAll(g))e(i.slice(s,t.index)),s=t.index+t[0].length,void 0===t[1]?l.pop():l.push(t[1]);return e(i.slice(s)),t}export function plainLines(i){return i.split("\n").map(i=>i?[{text:i}]:[])}
1
+ const t={bash:()=>import("highlight.js/lib/languages/bash"),c:()=>import("highlight.js/lib/languages/c"),cpp:()=>import("highlight.js/lib/languages/cpp"),csharp:()=>import("highlight.js/lib/languages/csharp"),css:()=>import("highlight.js/lib/languages/css"),diff:()=>import("highlight.js/lib/languages/diff"),dockerfile:()=>import("highlight.js/lib/languages/dockerfile"),go:()=>import("highlight.js/lib/languages/go"),graphql:()=>import("highlight.js/lib/languages/graphql"),ini:()=>import("highlight.js/lib/languages/ini"),java:()=>import("highlight.js/lib/languages/java"),javascript:()=>import("highlight.js/lib/languages/javascript"),json:()=>import("highlight.js/lib/languages/json"),kotlin:()=>import("highlight.js/lib/languages/kotlin"),less:()=>import("highlight.js/lib/languages/less"),lua:()=>import("highlight.js/lib/languages/lua"),makefile:()=>import("highlight.js/lib/languages/makefile"),markdown:()=>import("highlight.js/lib/languages/markdown"),objectivec:()=>import("highlight.js/lib/languages/objectivec"),perl:()=>import("highlight.js/lib/languages/perl"),php:()=>import("highlight.js/lib/languages/php"),plaintext:()=>import("highlight.js/lib/languages/plaintext"),powershell:()=>import("highlight.js/lib/languages/powershell"),python:()=>import("highlight.js/lib/languages/python"),r:()=>import("highlight.js/lib/languages/r"),ruby:()=>import("highlight.js/lib/languages/ruby"),rust:()=>import("highlight.js/lib/languages/rust"),scss:()=>import("highlight.js/lib/languages/scss"),shell:()=>import("highlight.js/lib/languages/shell"),sql:()=>import("highlight.js/lib/languages/sql"),swift:()=>import("highlight.js/lib/languages/swift"),typescript:()=>import("highlight.js/lib/languages/typescript"),xml:()=>import("highlight.js/lib/languages/xml"),yaml:()=>import("highlight.js/lib/languages/yaml")},i={"c++":"cpp",cc:"cpp",cjs:"javascript",console:"bash",cs:"csharp",cts:"typescript",docker:"dockerfile",gql:"graphql",golang:"go",h:"cpp",hpp:"cpp",htm:"xml",html:"xml",js:"javascript",jsx:"javascript",kt:"kotlin",kts:"kotlin",md:"markdown",mdx:"markdown",mjs:"javascript",mm:"objectivec",mts:"typescript",mysql:"sql",node:"javascript",none:"plaintext",objc:"objectivec",plain:"plaintext",posh:"powershell",ps1:"powershell",psql:"sql",py:"python",rb:"ruby",rs:"rust",sh:"bash",svelte:"xml",svg:"xml",text:"plaintext",toml:"ini",ts:"typescript",tsx:"typescript",txt:"plaintext",vue:"xml",yml:"yaml",zsh:"bash"},l={dockerfile:["bash"],javascript:["xml"],markdown:["xml"],shell:["bash"],typescript:["xml"],xml:["javascript","css"]},s=new Map;export function registerLanguage(t,i){const l=t.toLowerCase();s.set(l,i),a.delete(l)}let g=null;const a=new Map;export function canonicalLanguage(t){if(!t)return null;const l=t.trim().toLowerCase();return l?s.has(l)?l:i[l]??l:null}export async function highlight(i,e){if(!s.has(e)&&!Object.hasOwn(t,e))return null;let h=a.get(e);h||(h=async function(i){const a=s.get(i),e=a||!Object.hasOwn(t,i)?void 0:t[i];if(!a&&!e)return null;g??=import("highlight.js/lib/core").then(t=>t.default).catch(t=>{throw g=null,t});const h=await g;a?h.registerLanguage(i,a):h.getLanguage(i)||h.registerLanguage(i,(await e()).default);const n=Object.hasOwn(l,i)?l[i]:[];return await Promise.all(n.map(async i=>{if(h.getLanguage(i))return;const l=s.get(i);h.registerLanguage(i,l??(await t[i]()).default)})),i}(e).catch(t=>{throw a.delete(e),t}),a.set(e,h));const n=await h;if(!n||!g)return null;return tokenize((await g).highlight(i,{language:n,ignoreIllegals:!0}).value)}const e={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'"};export function tokenize(t){const i=[[]],l=[],s=/<span class="([^"]*)">|<\/span>/g;let g=0;const a=t=>{if(!t)return;const s=l[l.length-1];t.replace(/&(?:amp|lt|gt|quot|#x27);/g,t=>e[t]).split("\n").forEach((t,l)=>{l>0&&i.push([]),t&&i[i.length-1].push(s?{text:t,token:s}:{text:t})})};for(const i of t.matchAll(s))a(t.slice(g,i.index)),g=i.index+i[0].length,void 0===i[1]?l.pop():l.push(i[1]);return a(t.slice(g)),i}export function plainLines(t){return t.split("\n").map(t=>t?[{text:t}]:[])}
@@ -33,16 +33,6 @@
33
33
  * string itself, so an unsupported language is never a dead end: `locale` gets
34
34
  * you a translation for free, and the prop gets you one for anything else.
35
35
  */
36
- /**
37
- * `{index}`, `{total}` and `{title}` filled into a message.
38
- *
39
- * It lives beside the tables rather than in whichever component needed it first
40
- * because the placeholders are part of the message format: a language that
41
- * orders "3 of 8" the other way round writes `{total}단계 중 {index}단계`, and a
42
- * second copy of this function would eventually disagree about what a
43
- * placeholder looks like.
44
- */
45
- export declare function fill(template: string, values: Record<string, string>): string;
46
36
  /**
47
37
  * One namespace's strings, in every language that has them.
48
38
  *
@@ -181,6 +171,11 @@ export interface TableMessages {
181
171
  empty: string;
182
172
  /** The button that writes what is on screen out as a file. */
183
173
  exportCsv: string;
174
+ /**
175
+ * The heading over the rows `groupBy` put in no group. Its own word rather
176
+ * than `empty`'s, which said there was nothing there over rows that were.
177
+ */
178
+ noGroup: string;
184
179
  }
185
180
  /** The `table` namespace, as Table and DataTable read it. */
186
181
  export declare const tableMessages: MessageTable<TableMessages>;
@@ -372,6 +367,11 @@ export interface ImageMessages {
372
367
  * caller gave no `alt` to say what it was.
373
368
  */
374
369
  unavailable: string;
370
+ /**
371
+ * Names the button that opens a preview, and titles the preview, when the
372
+ * picture has an empty `alt` to take a name from.
373
+ */
374
+ preview: string;
375
375
  }
376
376
  export declare const imageMessages: MessageTable<ImageMessages>;
377
377
  /**
@@ -386,6 +386,23 @@ export declare const imageMessages: MessageTable<ImageMessages>;
386
386
  export interface ChartMessages {
387
387
  /** Names the drawing when the caller did not. */
388
388
  label: string;
389
+ /** The column of a scatter's table that holds each point's size. */
390
+ size: string;
391
+ /** The column of a timeline's table that holds each span's own label. */
392
+ title: string;
393
+ /** The column of a timeline's table where each span starts. */
394
+ start: string;
395
+ /** And where it ends. */
396
+ end: string;
397
+ /**
398
+ * What the plot is described by: how many values it draws and between which
399
+ * two they fall. `{count}`, `{min}` and `{max}` are replaced with the numbers,
400
+ * already formatted. It is one sentence on purpose, because a description is
401
+ * read on every focus and the hidden table beside the plot holds the rest.
402
+ */
403
+ summary: string;
404
+ /** The button that writes the chart's data out as a file. */
405
+ exportCsv: string;
389
406
  }
390
407
  /** The `chart` namespace, as every chart reads it. */
391
408
  export declare const chartMessages: MessageTable<ChartMessages>;
@@ -413,6 +430,19 @@ export interface ScrollMessages {
413
430
  }
414
431
  /** The `scroll` namespace, as ScrollZone read it. */
415
432
  export declare const scrollMessages: MessageTable<ScrollMessages>;
433
+ /** Panes. */
434
+ export interface PanesMessages {
435
+ /**
436
+ * Names a handle between two panes.
437
+ *
438
+ * A `separator` that takes the focus is announced by its name and its value,
439
+ * and with no name all a reader heard was "separator, 50" — a number with
440
+ * nothing to say what it was the share of or what the keys would do.
441
+ */
442
+ handle: string;
443
+ }
444
+ /** The `panes` namespace, as Panes read it. */
445
+ export declare const panesMessages: MessageTable<PanesMessages>;
416
446
  /** Breadcrumb. */
417
447
  export interface BreadcrumbMessages {
418
448
  /** Names the `<nav>` landmark. */
@@ -465,12 +495,61 @@ export interface ComboboxMessages {
465
495
  empty: string;
466
496
  /** The × on one chosen entry. `{label}` is replaced with its own label. */
467
497
  remove: string;
498
+ /** The row that adds what was typed. `{label}` is replaced with the text. */
499
+ add: string;
500
+ /** The chevron that opens the list, when there is no label to name it by. */
501
+ open: string;
468
502
  }
469
503
  /** The `combobox` namespace, as Combobox read it. */
470
504
  export declare const comboboxMessages: MessageTable<ComboboxMessages>;
505
+ /** ToastProvider. */
506
+ export interface ToastMessages {
507
+ /**
508
+ * Names the region the stack lives in. It is a landmark a screen reader can
509
+ * jump to, and F6 moves the focus into it, so it is announced on its own.
510
+ */
511
+ label: string;
512
+ }
513
+ /** The `toast` namespace, as ToastProvider reads it. */
514
+ export declare const toastMessages: MessageTable<ToastMessages>;
515
+ /** Timeline. */
516
+ export interface TimelineMessages {
517
+ /**
518
+ * What a step's bullet says by its shape alone, said in words to a reader who
519
+ * cannot see it. The current step needs none: `aria-current` says it.
520
+ */
521
+ complete: string;
522
+ upcoming: string;
523
+ }
524
+ /** The `timeline` namespace, as Timeline reads it. */
525
+ export declare const timelineMessages: MessageTable<TimelineMessages>;
526
+ /** FilePicker. */
527
+ export interface FileMessages {
528
+ /** The line inside the box, when the caller wrote none. */
529
+ title: string;
530
+ /** Names the button that takes one file back out of the list. */
531
+ remove: string;
532
+ }
533
+ /** The `file` namespace, as FilePicker reads it. */
534
+ export declare const fileMessages: MessageTable<FileMessages>;
535
+ /** OtpField. */
536
+ export interface OtpMessages {
537
+ /**
538
+ * Names every slot after the first, which takes the field's label. Six boxes
539
+ * all called "Verification code" say nothing about which one has the caret.
540
+ */
541
+ slot: string;
542
+ }
543
+ /** The `otp` namespace, as OtpField reads it. */
544
+ export declare const otpMessages: MessageTable<OtpMessages>;
471
545
  /** Overlay. */
472
546
  export interface OverlayMessages {
473
- /** Names the sheet that covers whatever it was wrapped around. */
547
+ /**
548
+ * Names the sheet that covers whatever it was wrapped around. It says what
549
+ * the common case is doing rather than what the component is called: an
550
+ * overlay holding only a spinner was announced as "Overlay, dialog", which
551
+ * tells a reader nothing about why the page went out of reach.
552
+ */
474
553
  label: string;
475
554
  }
476
555
  /** The `overlay` namespace, as Overlay read it. */
@@ -490,6 +569,8 @@ export interface WindowMessages {
490
569
  restore: string;
491
570
  /** Names the corner a pointer drags to resize. */
492
571
  resize: string;
572
+ /** Says how a keyboard resizes from that corner, which its name does not. */
573
+ resizeHint: string;
493
574
  }
494
575
  /** The `window` namespace, as WindowPane read it. */
495
576
  export declare const windowMessages: MessageTable<WindowMessages>;
@@ -574,6 +655,122 @@ export interface StepsMessages {
574
655
  }
575
656
  /** The `steps` namespace, as HowToSteps reads it. */
576
657
  export declare const stepsMessages: MessageTable<StepsMessages>;
658
+ /** ToolCall and AgentSteps. */
659
+ export interface RunMessages {
660
+ /** Not started. */
661
+ pending: string;
662
+ /** Going on now. */
663
+ running: string;
664
+ /** Ended, and did what it was asked. */
665
+ success: string;
666
+ /** Ended, and did not. */
667
+ error: string;
668
+ }
669
+ /**
670
+ * The `run` namespace, as ToolCall and AgentSteps read it.
671
+ *
672
+ * Its own rather than four keys on `tool`, because what it names is the
673
+ * `NebaRunStatus` vocabulary and not one component's chrome: an AgentSteps
674
+ * draws a marker per step and never says the words "Arguments" or "Result", so
675
+ * a step list that reached those through one table would carry them.
676
+ *
677
+ * Every one of the four is read out and none of them is drawn. The shape says
678
+ * which state a row is in — a hollow ring, a turning ring, a tick, a cross —
679
+ * and these are the same sentence for a reader who has no shape to look at.
680
+ */
681
+ export declare const runMessages: MessageTable<RunMessages>;
682
+ /** ToolCall. */
683
+ export interface ToolMessages {
684
+ /** The heading over what the tool was called with. */
685
+ arguments: string;
686
+ /** And over what it answered. */
687
+ result: string;
688
+ }
689
+ /** The `tool` namespace, as ToolCall reads it. */
690
+ export declare const toolMessages: MessageTable<ToolMessages>;
691
+ /** Approval. */
692
+ export interface ApprovalMessages {
693
+ /** The heading over a request that was not given one. */
694
+ request: string;
695
+ /** What the record line is called once the request has been answered. */
696
+ answered: string;
697
+ /** The three risk levels, as the chip beside the heading draws them. */
698
+ low: string;
699
+ medium: string;
700
+ high: string;
701
+ }
702
+ /**
703
+ * The `approval` namespace, as Approval reads it.
704
+ *
705
+ * The three risk words are written out in full — "Low risk" rather than "Low" —
706
+ * because the chip is the only thing on the card that says what the level is
707
+ * *of*, and a lone adjective beside a heading reads as a description of the
708
+ * heading.
709
+ */
710
+ export declare const approvalMessages: MessageTable<ApprovalMessages>;
711
+ /** Reasoning. */
712
+ export interface ReasoningMessages {
713
+ /** While the stream is still arriving. */
714
+ thinking: string;
715
+ /** Once it has stopped, when the time it took is known. `{duration}` is the length. */
716
+ thought: string;
717
+ /** And when it is not. */
718
+ done: string;
719
+ }
720
+ /**
721
+ * The `reasoning` namespace, as Reasoning reads it.
722
+ *
723
+ * `thought` is a whole sentence with a placeholder in it rather than a word and
724
+ * a number set beside each other, for `tableMessages.range`'s reason: where the
725
+ * length goes in the sentence is exactly what differs between languages.
726
+ */
727
+ export declare const reasoningMessages: MessageTable<ReasoningMessages>;
728
+ /** ContextWindow. */
729
+ export interface ContextMessages {
730
+ /** What the gauge is called when it was not given a name. */
731
+ label: string;
732
+ /** The four things a context window is spent on. */
733
+ input: string;
734
+ output: string;
735
+ reasoning: string;
736
+ cached: string;
737
+ /** Over the money. */
738
+ cost: string;
739
+ /** How much of the window has gone. `{used}` and `{max}` are the two counts. */
740
+ usage: string;
741
+ }
742
+ /**
743
+ * The `context` namespace, as ContextWindow reads it.
744
+ *
745
+ * Nothing here is a number: the counts and the money are `Intl`'s, which speaks
746
+ * more languages than this file ever will, and `usage` is a whole sentence with
747
+ * two placeholders in it because where the two numbers sit is exactly what
748
+ * differs between languages.
749
+ */
750
+ export declare const contextMessages: MessageTable<ContextMessages>;
751
+ /** Sources and InlineCitation. */
752
+ export interface SourcesMessages {
753
+ /** The heading over the list, when it was not given one. */
754
+ title: string;
755
+ /**
756
+ * What a numbered citation in the body is called. `{index}` is its number,
757
+ * which is the only thing the mark itself says.
758
+ */
759
+ citation: string;
760
+ }
761
+ /** The `sources` namespace, as Sources and InlineCitation read it. */
762
+ export declare const sourcesMessages: MessageTable<SourcesMessages>;
763
+ /** PromptInput. */
764
+ export interface PromptMessages {
765
+ /** The button that sends what was typed. */
766
+ send: string;
767
+ /** And what that same button says while an answer is being written. */
768
+ stop: string;
769
+ /** Over the field while files are being dragged onto it. */
770
+ drop: string;
771
+ }
772
+ /** The `prompt` namespace, as PromptInput reads it. */
773
+ export declare const promptMessages: MessageTable<PromptMessages>;
577
774
  /**
578
775
  * One namespace's strings for a locale, merged over English.
579
776
  *
@@ -639,6 +836,8 @@ export interface NebaLocale {
639
836
  chart?: Partial<ChartMessages>;
640
837
  /** Scroll. */
641
838
  scroll?: Partial<ScrollMessages>;
839
+ /** Panes. */
840
+ panes?: Partial<PanesMessages>;
642
841
  /** Breadcrumb. */
643
842
  breadcrumb?: Partial<BreadcrumbMessages>;
644
843
  /** Anchor. */
@@ -649,6 +848,8 @@ export interface NebaLocale {
649
848
  command?: Partial<CommandMessages>;
650
849
  /** Combobox. */
651
850
  combobox?: Partial<ComboboxMessages>;
851
+ /** Toast. */
852
+ toast?: Partial<ToastMessages>;
652
853
  /** Overlay. */
653
854
  overlay?: Partial<OverlayMessages>;
654
855
  /** Window. */
@@ -661,6 +862,26 @@ export interface NebaLocale {
661
862
  steps?: Partial<StepsMessages>;
662
863
  /** Confirm. */
663
864
  confirm?: Partial<ConfirmMessages>;
865
+ /** OtpField. */
866
+ otp?: Partial<OtpMessages>;
867
+ /** FilePicker. */
868
+ file?: Partial<FileMessages>;
869
+ /** Timeline. */
870
+ timeline?: Partial<TimelineMessages>;
871
+ /** ToolCall and AgentSteps. */
872
+ run?: Partial<RunMessages>;
873
+ /** ToolCall. */
874
+ tool?: Partial<ToolMessages>;
875
+ /** Approval. */
876
+ approval?: Partial<ApprovalMessages>;
877
+ /** Reasoning. */
878
+ reasoning?: Partial<ReasoningMessages>;
879
+ /** ContextWindow. */
880
+ context?: Partial<ContextMessages>;
881
+ /** Sources and InlineCitation. */
882
+ sources?: Partial<SourcesMessages>;
883
+ /** PromptInput. */
884
+ prompt?: Partial<PromptMessages>;
664
885
  }
665
886
  /**
666
887
  * Teaches the library a language.
@@ -1 +1 @@
1
- import*as e from"react";import{memoise as s}from"./cache.js";export function fill(e,s){return e.replace(/\{(\w+)\}/g,(e,o)=>s[o]??e)}export const actionMessages={"":{close:"Close",dismiss:"Dismiss",clear:"Clear",remove:"Remove"}};export const confirmMessages={"":{confirm:"Confirm",cancel:"Cancel"}};export const linkMessages={"":{newTab:"(opens in a new tab)"}};export const spoilerMessages={"":{reveal:"Reveal",hide:"Hide",notice:"This may contain spoilers"}};export const chatMessages={"":{sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",typing:"Typing…"}};export const emptyMessages={"":{title:"Nothing here"}};export const tableMessages={"":{search:"Search",selectAll:"Select all rows",selectRow:"Select row",rowsPerPage:"Rows per page",range:"{start}–{end} of {total}",selected:"{count} selected",empty:"No data",exportCsv:"Export CSV"}};export const colorMessages={"":{area:"Saturation and brightness",hue:"Hue",alpha:"Opacity",value:"Colour value",swatches:"Preset colours",clear:"Clear",empty:"Choose a colour"}};export const ratingMessages={"":{label:"Rating",value:"{value} out of {max}",empty:"No rating"}};export const numberMessages={"":{increase:"Increase",decrease:"Decrease"}};export const paginationMessages={"":{label:"Pagination",page:"Page {page}",status:"Page {page} of {total}",previous:"Previous page",next:"Next page",first:"First page",last:"Last page"}};export const carouselMessages={"":{label:"Carousel",slide:"Slide {index} of {total}",previous:"Previous slide",next:"Next slide",pause:"Pause slide show",play:"Play slide show"}};export const pickerMessages={"":{previousMonth:"Previous month",nextMonth:"Next month",previousYear:"Previous year",nextYear:"Next year",previousYears:"Previous years",nextYears:"Next years",chooseMonth:"Choose a month",chooseYear:"Choose a year",today:"Today",thisMonth:"This month",thisYear:"This year",now:"Now",clear:"Clear",done:"Done",hour:"Hour",minute:"Minute",second:"Second",meridiem:"AM/PM",start:"Start",end:"End"}};export const galleryMessages={"":{label:"Gallery",item:"Image {index} of {total}",previous:"Previous image",next:"Next image"}};export const imageMessages={"":{unavailable:"Image unavailable"}};export const chartMessages={"":{label:"Chart"}};export const scrollMessages={"":{label:"Scrollable content",previous:"Scroll back",next:"Scroll forward"}};export const breadcrumbMessages={"":{label:"Breadcrumb",expand:"Show hidden steps"}};export const commandMessages={"":{label:"Command palette",search:"Type a command or search…",empty:"No commands found"}};export const transferMessages={"":{source:"Available",target:"Selected",toTarget:"Move to selected",toSource:"Move to available",search:"Search",selectAll:"Select all",empty:"Nothing here"}};export const anchorMessages={"":{label:"On this page"}};export const comboboxMessages={"":{empty:"No matches",remove:"Remove {label}"}};export const overlayMessages={"":{label:"Overlay"}};export const windowMessages={"":{minimize:"Minimize",maximize:"Maximize",restore:"Restore",resize:"Resize window"}};export const layoutMessages={"":{skipToContent:"Skip to content",sidebar:"Sidebar",openSidebar:"Open sidebar",closeSidebar:"Close sidebar",resizeSidebar:"Resize sidebar"}};export const codeMessages={"":{code:"Code",copy:"Copy",copied:"Copied",copyFailed:"Could not copy",raw:"Raw",prompt:"Prompt"}};export const stepsMessages={"":{previous:"Previous",next:"Next",done:"Done",skip:"Skip",restart:"Start over",completed:"All steps complete",steps:"Steps",position:"{index} of {total}",step:"Step {index}: {title}"}};const o={zh:"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hk":"zh-hant","zh-mo":"zh-hant","zh-tw":"zh-hant"};const a=new WeakMap;export function resolveMessages(e,t){const r=e[""],n=t?.trim()??"";if(!n)return r;let i=a.get(e);return i||(i=new Map,a.set(e,i)),s(i,n,()=>{const s=function(e){const s=e.toLowerCase().split(/[-_]/).filter(Boolean),o=s[0];if(!o)return[];const a=s.slice(1),t=a.find(e=>/^[a-z]{4}$/.test(e)),r=a.find(e=>/^([a-z]{2}|\d{3})$/.test(e));return[t?`${o}-${t}`:"",r?`${o}-${r}`:"",o].filter(Boolean)}(n).map(s=>{const a=Object.hasOwn(o,s)?o[s]:void 0;return Object.hasOwn(e,s)?e[s]:a&&Object.hasOwn(e,a)?e[a]:void 0}).find(Boolean);return s?{...r,...s}:r})}export function useMessages(s,o){return e.useMemo(()=>resolveMessages(s,o),[s,o])}export function fillMessage(e,s){return e.replace(/\{(\w+)\}/g,(e,o)=>Object.hasOwn(s,o)?s[o]:e)}const t={action:actionMessages,confirm:confirmMessages,link:linkMessages,spoiler:spoilerMessages,chat:chatMessages,empty:emptyMessages,table:tableMessages,color:colorMessages,rating:ratingMessages,number:numberMessages,pagination:paginationMessages,carousel:carouselMessages,picker:pickerMessages,gallery:galleryMessages,image:imageMessages,chart:chartMessages,scroll:scrollMessages,breadcrumb:breadcrumbMessages,anchor:anchorMessages,transfer:transferMessages,command:commandMessages,combobox:comboboxMessages,overlay:overlayMessages,window:windowMessages,layout:layoutMessages,code:codeMessages,steps:stepsMessages};export function registerMessages(e,s){const o=e.trim().toLowerCase();for(const[e,r]of Object.entries(s)){const s=t[e];s&&r&&(s[o]=r,a.delete(s))}}
1
+ import*as e from"react";import{memoise as s}from"./cache.js";export const actionMessages={"":{close:"Close",dismiss:"Dismiss",clear:"Clear",remove:"Remove"}};export const confirmMessages={"":{confirm:"Confirm",cancel:"Cancel"}};export const linkMessages={"":{newTab:"(opens in a new tab)"}};export const spoilerMessages={"":{reveal:"Reveal",hide:"Hide",notice:"This may contain spoilers"}};export const chatMessages={"":{sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",typing:"Typing…"}};export const emptyMessages={"":{title:"Nothing here"}};export const tableMessages={"":{search:"Search",selectAll:"Select all rows",selectRow:"Select row",rowsPerPage:"Rows per page",range:"{start}–{end} of {total}",selected:"{count} selected",empty:"No data",exportCsv:"Export CSV",noGroup:"No group"}};export const colorMessages={"":{area:"Saturation and brightness",hue:"Hue",alpha:"Opacity",value:"Colour value",swatches:"Preset colours",clear:"Clear",empty:"Choose a colour"}};export const ratingMessages={"":{label:"Rating",value:"{value} out of {max}",empty:"No rating"}};export const numberMessages={"":{increase:"Increase",decrease:"Decrease"}};export const paginationMessages={"":{label:"Pagination",page:"Page {page}",status:"Page {page} of {total}",previous:"Previous page",next:"Next page",first:"First page",last:"Last page"}};export const carouselMessages={"":{label:"Carousel",slide:"Slide {index} of {total}",previous:"Previous slide",next:"Next slide",pause:"Pause slide show",play:"Play slide show"}};export const pickerMessages={"":{previousMonth:"Previous month",nextMonth:"Next month",previousYear:"Previous year",nextYear:"Next year",previousYears:"Previous years",nextYears:"Next years",chooseMonth:"Choose a month",chooseYear:"Choose a year",today:"Today",thisMonth:"This month",thisYear:"This year",now:"Now",clear:"Clear",done:"Done",hour:"Hour",minute:"Minute",second:"Second",meridiem:"AM/PM",start:"Start",end:"End"}};export const galleryMessages={"":{label:"Gallery",item:"Image {index} of {total}",previous:"Previous image",next:"Next image"}};export const imageMessages={"":{unavailable:"Image unavailable",preview:"Enlarge image"}};export const chartMessages={"":{label:"Chart",size:"Size",title:"Label",start:"Start",end:"End",summary:"Data points: {count}. Range: {min} to {max}.",exportCsv:"Export CSV"}};export const scrollMessages={"":{label:"Scrollable content",previous:"Scroll back",next:"Scroll forward"}};export const panesMessages={"":{handle:"Resize panes"}};export const breadcrumbMessages={"":{label:"Breadcrumb",expand:"Show hidden steps"}};export const commandMessages={"":{label:"Command palette",search:"Type a command or search…",empty:"No commands found"}};export const transferMessages={"":{source:"Available",target:"Selected",toTarget:"Move to selected",toSource:"Move to available",search:"Search",selectAll:"Select all",empty:"Nothing here"}};export const anchorMessages={"":{label:"On this page"}};export const comboboxMessages={"":{empty:"No matches",remove:"Remove {label}",add:"Add “{label}”",open:"Open"}};export const toastMessages={"":{label:"Notifications"}};export const timelineMessages={"":{complete:"Completed",upcoming:"Upcoming"}};export const fileMessages={"":{title:"Drop files here, or click to browse",remove:"Remove {name}"}};export const otpMessages={"":{slot:"Character {index} of {total}"}};export const overlayMessages={"":{label:"Loading"}};export const windowMessages={"":{minimize:"Minimize",maximize:"Maximize",restore:"Restore",resize:"Resize window",resizeHint:"Use the arrow keys to resize the window"}};export const layoutMessages={"":{skipToContent:"Skip to content",sidebar:"Sidebar",openSidebar:"Open sidebar",closeSidebar:"Close sidebar",resizeSidebar:"Resize sidebar"}};export const codeMessages={"":{code:"Code",copy:"Copy",copied:"Copied",copyFailed:"Could not copy",raw:"Raw",prompt:"Prompt"}};export const stepsMessages={"":{previous:"Previous",next:"Next",done:"Done",skip:"Skip",restart:"Start over",completed:"All steps complete",steps:"Steps",position:"{index} of {total}",step:"Step {index}: {title}"}};export const runMessages={"":{pending:"Waiting",running:"Running",success:"Finished",error:"Failed"}};export const toolMessages={"":{arguments:"Arguments",result:"Result"}};export const approvalMessages={"":{request:"Permission needed",answered:"Answered",low:"Low risk",medium:"Medium risk",high:"High risk"}};export const reasoningMessages={"":{thinking:"Thinking…",thought:"Thought for {duration}",done:"Finished thinking"}};export const contextMessages={"":{label:"Context",input:"Input",output:"Output",reasoning:"Reasoning",cached:"Cached",cost:"Estimated cost",usage:"{used} of {max}"}};export const sourcesMessages={"":{title:"Sources",citation:"Source {index}"}};export const promptMessages={"":{send:"Send",stop:"Stop",drop:"Drop files to attach"}};const o={zh:"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hk":"zh-hant","zh-mo":"zh-hant","zh-tw":"zh-hant"};const t=new WeakMap;export function resolveMessages(e,a){const r=e[""],n=a?.trim()??"";if(!n)return r;let i=t.get(e);return i||(i=new Map,t.set(e,i)),s(i,n,()=>{const s=function(e){const s=e.toLowerCase().split(/[-_]/).filter(Boolean),o=s[0];if(!o)return[];const t=s.slice(1),a=t.find(e=>/^[a-z]{4}$/.test(e)),r=t.find(e=>/^([a-z]{2}|\d{3})$/.test(e));return[a?`${o}-${a}`:"",r?`${o}-${r}`:"",o].filter(Boolean)}(n).map(s=>{const t=Object.hasOwn(o,s)?o[s]:void 0;return Object.hasOwn(e,s)?e[s]:t&&Object.hasOwn(e,t)?e[t]:void 0}).find(Boolean);return s?{...r,...s}:r})}export function useMessages(s,o){return e.useMemo(()=>resolveMessages(s,o),[s,o])}export function fillMessage(e,s){return e.replace(/\{(\w+)\}/g,(e,o)=>Object.hasOwn(s,o)?s[o]:e)}const a={action:actionMessages,confirm:confirmMessages,link:linkMessages,spoiler:spoilerMessages,chat:chatMessages,empty:emptyMessages,table:tableMessages,color:colorMessages,rating:ratingMessages,number:numberMessages,pagination:paginationMessages,carousel:carouselMessages,picker:pickerMessages,gallery:galleryMessages,image:imageMessages,chart:chartMessages,scroll:scrollMessages,panes:panesMessages,breadcrumb:breadcrumbMessages,anchor:anchorMessages,transfer:transferMessages,command:commandMessages,combobox:comboboxMessages,toast:toastMessages,overlay:overlayMessages,window:windowMessages,layout:layoutMessages,code:codeMessages,steps:stepsMessages,otp:otpMessages,file:fileMessages,timeline:timelineMessages,run:runMessages,tool:toolMessages,approval:approvalMessages,reasoning:reasoningMessages,context:contextMessages,sources:sourcesMessages,prompt:promptMessages};export function registerMessages(e,s){const o=e.trim().toLowerCase();if("__proto__"!==o)for(const[e,r]of Object.entries(s)){const s=Object.hasOwn(a,e)?a[e]:void 0;s&&r&&(s[o]=r,t.delete(s))}}
@@ -139,6 +139,16 @@ export declare function StarOutlineIcon(): React.JSX.Element;
139
139
  export declare function SpinnerIcon(): React.JSX.Element;
140
140
  /** The filled dot: the chosen one of a set, where a tick would say "and". */
141
141
  export declare function DotIcon(): React.JSX.Element;
142
+ /**
143
+ * The empty ring: something that has not started.
144
+ *
145
+ * The third member of the set a run status is drawn with — a hollow ring, a
146
+ * turning ring, a tick in a circle, a cross in a circle — so `pending`,
147
+ * `running`, `success` and `error` are four shapes at one diameter rather than
148
+ * four colours of one shape. A reader who cannot tell the colours apart still
149
+ * has four marks.
150
+ */
151
+ export declare function CircleIcon(): React.JSX.Element;
142
152
  /** The neutral note: a circled `i` without the serif problem an `i` has at 16px. */
143
153
  export declare function NoteIcon(): React.JSX.Element;
144
154
  /** The tick in a circle: the one that went through. */
@@ -151,8 +161,9 @@ export declare function DangerIcon(): React.JSX.Element;
151
161
  * One drawing per colour family.
152
162
  *
153
163
  * `primary` and `secondary` have no severity to draw, so they take the note the
154
- * informational one uses — three shapes for six families, because the three
155
- * that mean something are the three worth telling apart.
164
+ * informational one uses — four shapes for six families, because the three
165
+ * that mean something are the three worth telling apart, and everything else
166
+ * shares the note.
156
167
  *
157
168
  * A function rather than a `Record` of elements, for the reason the tables in
158
169
  * `i18n.ts` are one per namespace: a bundler drops an unused function and it