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.
- package/README.md +22 -30
- package/dist/a2ui/catalog.json +1466 -0
- package/dist/a2ui/components.d.ts +21 -0
- package/dist/a2ui/components.js +1 -0
- package/dist/a2ui/index.d.ts +62 -0
- package/dist/a2ui/index.js +1 -0
- package/dist/a2ui/schema.d.ts +47 -0
- package/dist/a2ui/schema.js +1 -0
- package/dist/components/accordion/Accordion.d.ts +5 -1
- package/dist/components/accordion/Accordion.js +1 -1
- package/dist/components/agent-steps/AgentSteps.d.ts +80 -0
- package/dist/components/agent-steps/AgentSteps.js +1 -0
- package/dist/components/agent-steps/index.d.ts +2 -0
- package/dist/components/agent-steps/index.js +1 -0
- package/dist/components/alert/Alert.js +1 -1
- package/dist/components/anchor/Anchor.d.ts +3 -2
- package/dist/components/anchor/Anchor.js +1 -1
- package/dist/components/animate-appear/AnimateAppear.js +1 -1
- package/dist/components/animate-blink/AnimateBlink.d.ts +3 -0
- package/dist/components/animate-blink/AnimateBlink.js +1 -1
- package/dist/components/animate-counter/AnimateCounter.d.ts +3 -1
- package/dist/components/animate-counter/AnimateCounter.js +1 -1
- package/dist/components/animate-fade/AnimateFade.js +1 -1
- package/dist/components/animate-float/AnimateFloat.js +1 -1
- package/dist/components/animate-grow/AnimateGrow.js +1 -1
- package/dist/components/animate-headline/AnimateHeadline.d.ts +9 -2
- package/dist/components/animate-headline/AnimateHeadline.js +1 -1
- package/dist/components/animate-lighting/AnimateLighting.d.ts +1 -1
- package/dist/components/animate-lighting/AnimateLighting.js +1 -1
- package/dist/components/animate-marquee/AnimateMarquee.d.ts +15 -6
- package/dist/components/animate-marquee/AnimateMarquee.js +1 -1
- package/dist/components/animate-reveal/AnimateReveal.js +1 -1
- package/dist/components/animate-rotate/AnimateRotate.js +1 -1
- package/dist/components/animate-scramble/AnimateScramble.d.ts +5 -3
- package/dist/components/animate-scramble/AnimateScramble.js +1 -1
- package/dist/components/animate-shake/AnimateShake.js +1 -1
- package/dist/components/animate-slide/AnimateSlide.js +1 -1
- package/dist/components/animate-split/AnimateSplit.d.ts +3 -1
- package/dist/components/animate-split/AnimateSplit.js +1 -1
- package/dist/components/animate-typing/AnimateTyping.d.ts +12 -4
- package/dist/components/animate-typing/AnimateTyping.js +1 -1
- package/dist/components/animate-zoom/AnimateZoom.js +1 -1
- package/dist/components/app-logo/AppLogo.js +1 -1
- package/dist/components/approval/Approval.d.ts +115 -0
- package/dist/components/approval/Approval.js +1 -0
- package/dist/components/approval/index.d.ts +2 -0
- package/dist/components/approval/index.js +1 -0
- package/dist/components/area-chart/AreaChart.d.ts +16 -5
- package/dist/components/area-chart/AreaChart.js +1 -1
- package/dist/components/aspect-ratio/AspectRatio.d.ts +6 -4
- package/dist/components/aspect-ratio/AspectRatio.js +1 -1
- package/dist/components/avatar/Avatar.js +1 -1
- package/dist/components/badge/Badge.js +1 -1
- package/dist/components/bar-chart/BarChart.d.ts +1 -1
- package/dist/components/bar-chart/BarChart.js +1 -1
- package/dist/components/blockquote/Blockquote.js +1 -1
- package/dist/components/bottom-navigation/BottomNavigation.d.ts +2 -1
- package/dist/components/bottom-navigation/BottomNavigation.js +1 -1
- package/dist/components/box/Box.d.ts +5 -0
- package/dist/components/box/Box.js +1 -1
- package/dist/components/breadcrumb/Breadcrumb.d.ts +10 -0
- package/dist/components/breadcrumb/Breadcrumb.js +1 -1
- package/dist/components/button/Button.d.ts +11 -0
- package/dist/components/button/Button.js +1 -1
- package/dist/components/button-group/ButtonGroup.js +1 -1
- package/dist/components/calendar/Calendar.js +1 -1
- package/dist/components/card/Card.js +1 -1
- package/dist/components/carousel/Carousel.d.ts +4 -0
- package/dist/components/carousel/Carousel.js +1 -1
- package/dist/components/chat-bubble/ChatBubble.js +1 -1
- package/dist/components/checkbox/Checkbox.js +1 -1
- package/dist/components/chip/Chip.d.ts +3 -1
- package/dist/components/chip/Chip.js +1 -1
- package/dist/components/code-block/CodeBlock.d.ts +6 -3
- package/dist/components/code-block/CodeBlock.js +1 -1
- package/dist/components/collapsible/Collapsible.d.ts +11 -1
- package/dist/components/collapsible/Collapsible.js +1 -1
- package/dist/components/color-picker/ColorPicker.js +1 -1
- package/dist/components/combobox/Combobox.d.ts +11 -1
- package/dist/components/combobox/Combobox.js +1 -1
- package/dist/components/command-palette/CommandPalette.js +1 -1
- package/dist/components/confirm/Confirm.js +1 -1
- package/dist/components/container/Container.js +1 -1
- package/dist/components/context-window/ContextWindow.d.ts +103 -0
- package/dist/components/context-window/ContextWindow.js +1 -0
- package/dist/components/context-window/index.d.ts +2 -0
- package/dist/components/context-window/index.js +1 -0
- package/dist/components/data-list/DataList.js +1 -1
- package/dist/components/data-table/DataTable.d.ts +12 -1
- package/dist/components/data-table/DataTable.js +1 -1
- package/dist/components/date-picker/DatePicker.js +1 -1
- package/dist/components/date-range-picker/DateRangePicker.js +1 -1
- package/dist/components/date-time-picker/DateTimePicker.js +1 -1
- package/dist/components/dialog/Dialog.d.ts +12 -0
- package/dist/components/dialog/Dialog.js +1 -1
- package/dist/components/divider/Divider.js +1 -1
- package/dist/components/drawer/Drawer.d.ts +7 -0
- package/dist/components/drawer/Drawer.js +1 -1
- package/dist/components/empty/Empty.js +1 -1
- package/dist/components/fieldset/Fieldset.js +1 -1
- package/dist/components/file-picker/FilePicker.d.ts +12 -4
- package/dist/components/file-picker/FilePicker.js +1 -1
- package/dist/components/flex/Flex.d.ts +8 -2
- package/dist/components/flex/Flex.js +1 -1
- package/dist/components/floating-action-button/FloatingActionButton.d.ts +16 -1
- package/dist/components/floating-action-button/FloatingActionButton.js +1 -1
- package/dist/components/floating-bottom-navigation/FloatingBottomNavigation.js +1 -1
- package/dist/components/footer/Footer.d.ts +8 -0
- package/dist/components/footer/Footer.js +1 -1
- package/dist/components/form/Form.d.ts +4 -2
- package/dist/components/form/Form.js +1 -1
- package/dist/components/gallery/Gallery.d.ts +56 -3
- package/dist/components/gallery/Gallery.js +1 -1
- package/dist/components/gallery/GalleryViewer.js +1 -1
- package/dist/components/gauge-chart/GaugeChart.d.ts +1 -1
- package/dist/components/gauge-chart/GaugeChart.js +1 -1
- package/dist/components/grid/Grid.js +1 -1
- package/dist/components/grid-container/GridContainer.js +1 -1
- package/dist/components/header/Header.js +1 -1
- package/dist/components/heatmap-chart/HeatmapChart.d.ts +20 -1
- package/dist/components/heatmap-chart/HeatmapChart.js +1 -1
- package/dist/components/highlight/Highlight.js +1 -1
- package/dist/components/how-to-steps/HowToSteps.d.ts +26 -1
- package/dist/components/how-to-steps/HowToSteps.js +1 -1
- package/dist/components/icon/Icon.js +1 -1
- package/dist/components/icon-button/IconButton.d.ts +0 -20
- package/dist/components/icon-button/IconButton.js +1 -1
- package/dist/components/image/Image.d.ts +137 -11
- package/dist/components/image/Image.js +1 -1
- package/dist/components/image/index.d.ts +1 -1
- package/dist/components/inline-citation/InlineCitation.d.ts +53 -0
- package/dist/components/inline-citation/InlineCitation.js +1 -0
- package/dist/components/inline-citation/index.d.ts +2 -0
- package/dist/components/inline-citation/index.js +1 -0
- package/dist/components/line-chart/LineChart.d.ts +16 -5
- package/dist/components/line-chart/LineChart.js +1 -1
- package/dist/components/list/List.js +1 -1
- package/dist/components/menu/Menu.d.ts +25 -11
- package/dist/components/menu/Menu.js +1 -1
- package/dist/components/menubar/Menubar.js +1 -1
- package/dist/components/meter/Meter.d.ts +6 -0
- package/dist/components/meter/Meter.js +1 -1
- package/dist/components/mockup/Mockup.js +1 -1
- package/dist/components/navigation-menu/NavigationMenu.d.ts +10 -1
- package/dist/components/navigation-menu/NavigationMenu.js +1 -1
- package/dist/components/number-field/NumberField.d.ts +20 -6
- package/dist/components/number-field/NumberField.js +1 -1
- package/dist/components/otp-field/OtpField.d.ts +7 -0
- package/dist/components/otp-field/OtpField.js +1 -1
- package/dist/components/overlay/Overlay.d.ts +1 -1
- package/dist/components/overlay/Overlay.js +1 -1
- package/dist/components/page-layout/PageLayout.d.ts +11 -0
- package/dist/components/page-layout/PageLayout.js +1 -1
- package/dist/components/pagination/Pagination.js +1 -1
- package/dist/components/panes/Panes.d.ts +11 -0
- package/dist/components/panes/Panes.js +1 -1
- package/dist/components/pie-chart/PieChart.d.ts +34 -3
- package/dist/components/pie-chart/PieChart.js +1 -1
- package/dist/components/pill/Pill.d.ts +8 -0
- package/dist/components/pill/Pill.js +1 -1
- package/dist/components/popconfirm/Popconfirm.d.ts +10 -3
- package/dist/components/popconfirm/Popconfirm.js +1 -1
- package/dist/components/popover/Popover.d.ts +8 -1
- package/dist/components/popover/Popover.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/progress-box/ProgressBox.js +1 -1
- package/dist/components/progress-circular/ProgressCircular.js +1 -1
- package/dist/components/progress-linear/ProgressLinear.js +1 -1
- package/dist/components/prompt-input/PromptInput.d.ts +104 -0
- package/dist/components/prompt-input/PromptInput.js +1 -0
- package/dist/components/prompt-input/index.d.ts +2 -0
- package/dist/components/prompt-input/index.js +1 -0
- package/dist/components/provider/NebaProvider.d.ts +3 -3
- package/dist/components/provider/NebaProvider.js +1 -1
- package/dist/components/radio-group/RadioGroup.js +1 -1
- package/dist/components/rating/Rating.d.ts +4 -1
- package/dist/components/rating/Rating.js +1 -1
- package/dist/components/reasoning/Reasoning.d.ts +78 -0
- package/dist/components/reasoning/Reasoning.js +1 -0
- package/dist/components/reasoning/index.d.ts +2 -0
- package/dist/components/reasoning/index.js +1 -0
- package/dist/components/scatter-chart/ScatterChart.js +1 -1
- package/dist/components/scroll-area/ScrollArea.js +1 -1
- package/dist/components/scroll-zone/ScrollZone.d.ts +10 -0
- package/dist/components/scroll-zone/ScrollZone.js +1 -1
- package/dist/components/segmented-button/SegmentedButton.js +1 -1
- package/dist/components/select/Select.js +1 -1
- package/dist/components/shortcut/Shortcut.js +1 -1
- package/dist/components/show/Show.d.ts +6 -5
- package/dist/components/show/Show.js +1 -1
- package/dist/components/sidebar/Sidebar.d.ts +7 -5
- package/dist/components/sidebar/Sidebar.js +1 -1
- package/dist/components/sidebar/SidebarTrigger.js +1 -1
- package/dist/components/skeleton/Skeleton.d.ts +1 -1
- package/dist/components/skeleton/Skeleton.js +1 -1
- package/dist/components/slider/Slider.d.ts +13 -1
- package/dist/components/slider/Slider.js +1 -1
- package/dist/components/sources/Sources.d.ts +78 -0
- package/dist/components/sources/Sources.js +1 -0
- package/dist/components/sources/index.d.ts +2 -0
- package/dist/components/sources/index.js +1 -0
- package/dist/components/sparkline/Sparkline.d.ts +14 -1
- package/dist/components/sparkline/Sparkline.js +1 -1
- package/dist/components/spoiler/Spoiler.js +1 -1
- package/dist/components/stack/Stack.d.ts +2 -2
- package/dist/components/stack/Stack.js +1 -1
- package/dist/components/statistic/Statistic.js +1 -1
- package/dist/components/streaming-text/StreamingText.d.ts +75 -0
- package/dist/components/streaming-text/StreamingText.js +1 -0
- package/dist/components/streaming-text/index.d.ts +2 -0
- package/dist/components/streaming-text/index.js +1 -0
- package/dist/components/switch/Switch.js +1 -1
- package/dist/components/table/Table.d.ts +8 -2
- package/dist/components/table/Table.js +1 -1
- package/dist/components/tabs/Tabs.d.ts +17 -1
- package/dist/components/tabs/Tabs.js +1 -1
- package/dist/components/text-field/TextField.js +1 -1
- package/dist/components/text-link/TextLink.js +1 -1
- package/dist/components/time-picker/TimePicker.js +1 -1
- package/dist/components/timeline/Timeline.d.ts +8 -0
- package/dist/components/timeline/Timeline.js +1 -1
- package/dist/components/timeline-chart/TimelineChart.js +1 -1
- package/dist/components/toast/Toast.d.ts +9 -3
- package/dist/components/toast/Toast.js +1 -1
- package/dist/components/toggle/Toggle.js +1 -1
- package/dist/components/toggle-group/ToggleGroup.js +1 -1
- package/dist/components/tool-call/ToolCall.d.ts +104 -0
- package/dist/components/tool-call/ToolCall.js +1 -0
- package/dist/components/tool-call/index.d.ts +2 -0
- package/dist/components/tool-call/index.js +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +8 -0
- package/dist/components/toolbar/Toolbar.js +1 -1
- package/dist/components/tooltip/Tooltip.js +1 -1
- package/dist/components/tour/Tour.d.ts +2 -0
- package/dist/components/tour/Tour.js +1 -1
- package/dist/components/transfer/Transfer.js +1 -1
- package/dist/components/tree-select/TreeSelect.js +1 -1
- package/dist/components/tree-view/TreeView.d.ts +6 -0
- package/dist/components/tree-view/TreeView.js +1 -1
- package/dist/components/typography/Typography.js +1 -1
- package/dist/components/visually-hidden/VisuallyHidden.d.ts +9 -7
- package/dist/components/visually-hidden/VisuallyHidden.js +1 -1
- package/dist/components/window-pane/WindowPane.d.ts +2 -2
- package/dist/components/window-pane/WindowPane.js +1 -1
- package/dist/hooks/useElementSize.d.ts +3 -1
- package/dist/hooks/useElementSize.js +1 -1
- package/dist/hooks/useOnScreen.d.ts +3 -0
- package/dist/hooks/useOnScreen.js +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +1 -1
- package/dist/internal/animate.d.ts +63 -16
- package/dist/internal/animate.js +1 -1
- package/dist/internal/calendar.d.ts +6 -1
- package/dist/internal/calendar.js +1 -1
- package/dist/internal/chart-brush.d.ts +53 -0
- package/dist/internal/chart-brush.js +1 -0
- package/dist/internal/chart-frame.d.ts +186 -30
- package/dist/internal/chart-frame.js +1 -1
- package/dist/internal/chart-line.js +1 -1
- package/dist/internal/chart.d.ts +133 -6
- package/dist/internal/chart.js +1 -1
- package/dist/internal/children.d.ts +15 -0
- package/dist/internal/children.js +1 -0
- package/dist/internal/color.d.ts +4 -0
- package/dist/internal/color.js +1 -1
- package/dist/internal/csv.d.ts +12 -1
- package/dist/internal/csv.js +1 -1
- package/dist/internal/data-table.d.ts +28 -10
- package/dist/internal/data-table.js +1 -1
- package/dist/internal/date.d.ts +12 -5
- package/dist/internal/date.js +1 -1
- package/dist/internal/defaults.d.ts +6 -1
- package/dist/internal/defaults.js +1 -1
- package/dist/internal/drag.d.ts +13 -1
- package/dist/internal/drag.js +1 -1
- package/dist/internal/drop.d.ts +61 -0
- package/dist/internal/drop.js +1 -0
- package/dist/internal/fieldset.d.ts +13 -0
- package/dist/internal/fieldset.js +1 -0
- package/dist/internal/glow.d.ts +102 -0
- package/dist/internal/glow.js +1 -0
- package/dist/internal/highlight.js +1 -1
- package/dist/internal/i18n.d.ts +232 -11
- package/dist/internal/i18n.js +1 -1
- package/dist/internal/icons.d.ts +13 -2
- package/dist/internal/icons.js +1 -1
- package/dist/internal/inert.d.ts +13 -0
- package/dist/internal/inert.js +1 -0
- package/dist/internal/initials.d.ts +8 -3
- package/dist/internal/initials.js +1 -1
- package/dist/internal/keys.d.ts +13 -0
- package/dist/internal/keys.js +1 -1
- package/dist/internal/link.d.ts +13 -15
- package/dist/internal/link.js +1 -1
- package/dist/internal/media.d.ts +9 -17
- package/dist/internal/media.js +1 -1
- package/dist/internal/menu.d.ts +6 -1
- package/dist/internal/mockup.d.ts +5 -4
- package/dist/internal/mockup.js +1 -1
- package/dist/internal/observe.d.ts +12 -0
- package/dist/internal/observe.js +1 -1
- package/dist/internal/page-layout.d.ts +10 -8
- package/dist/internal/page-layout.js +1 -1
- package/dist/internal/picker.d.ts +1 -1
- package/dist/internal/picker.js +1 -1
- package/dist/internal/progress.d.ts +11 -5
- package/dist/internal/progress.js +1 -1
- package/dist/internal/responsive.d.ts +0 -8
- package/dist/internal/responsive.js +1 -1
- package/dist/internal/run.d.ts +71 -0
- package/dist/internal/run.js +1 -0
- package/dist/internal/screen.d.ts +12 -0
- package/dist/internal/screen.js +1 -0
- package/dist/internal/styles.d.ts +185 -14
- package/dist/internal/styles.js +1 -1
- package/dist/internal/text.d.ts +3 -3
- package/dist/internal/text.js +1 -1
- package/dist/internal/window.js +1 -1
- package/dist/locales/ar.js +1 -1
- package/dist/locales/de.js +1 -1
- package/dist/locales/es.js +1 -1
- package/dist/locales/fr.js +1 -1
- package/dist/locales/hi.js +1 -1
- package/dist/locales/id.js +1 -1
- package/dist/locales/it.js +1 -1
- package/dist/locales/ja.js +1 -1
- package/dist/locales/ko.js +1 -1
- package/dist/locales/nl.js +1 -1
- package/dist/locales/pl.js +1 -1
- package/dist/locales/pt.js +1 -1
- package/dist/locales/ru.js +1 -1
- package/dist/locales/th.js +1 -1
- package/dist/locales/tr.js +1 -1
- package/dist/locales/vi.js +1 -1
- package/dist/locales/zh-hans.js +1 -1
- package/dist/locales/zh-hant.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +516 -53
- package/dist/types.d.ts +167 -7
- package/dist/types.js +0 -8
- package/package.json +43 -9
package/dist/types.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export type NebaOrientation = 'horizontal' | 'vertical';
|
|
|
27
27
|
* Which edge of an anchor something is placed against. Tooltip reads this, and
|
|
28
28
|
* so does anything else that hangs a popup off an element.
|
|
29
29
|
*
|
|
30
|
-
*
|
|
30
|
+
* Physical rather than logical — `start`/`end` would be wrong here, because a
|
|
31
31
|
* tooltip above a button is above it in every writing direction.
|
|
32
32
|
*/
|
|
33
33
|
export type NebaSide = 'top' | 'right' | 'bottom' | 'left';
|
|
@@ -86,6 +86,24 @@ export type NebaWeekday = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
|
86
86
|
* would be reporting a day nobody chose.
|
|
87
87
|
*/
|
|
88
88
|
export type NebaDateGranularity = 'day' | 'month' | 'year';
|
|
89
|
+
/**
|
|
90
|
+
* How far a piece of work an agent is doing has got.
|
|
91
|
+
*
|
|
92
|
+
* One vocabulary rather than one per component, for the reason `NebaSize` is
|
|
93
|
+
* one: a tool call and a step of a plan are the same lifecycle seen at two
|
|
94
|
+
* scales, and a library that said `running` on one and `current` on the other
|
|
95
|
+
* would make a caller translate between them in the middle of a transcript.
|
|
96
|
+
* [Timeline](../components/display/timeline) keeps its own three words on
|
|
97
|
+
* purpose — a step of a checkout is `upcoming` rather than `pending`, because
|
|
98
|
+
* nothing is waiting on it.
|
|
99
|
+
*
|
|
100
|
+
* Four, and the list is closed. `success` and `error` are two endings and not
|
|
101
|
+
* one `done` with a flag beside it, because what a reader needs from a failed
|
|
102
|
+
* step is the thing a boolean would bury; and there is no `cancelled`, because
|
|
103
|
+
* a run that was stopped ended without succeeding, which is what `error`
|
|
104
|
+
* already says.
|
|
105
|
+
*/
|
|
106
|
+
export type NebaRunStatus = 'pending' | 'running' | 'success' | 'error';
|
|
89
107
|
/**
|
|
90
108
|
* The viewport widths the layout components branch on, smallest first.
|
|
91
109
|
*
|
|
@@ -280,8 +298,12 @@ export interface NebaAnimateProps {
|
|
|
280
298
|
paused?: boolean;
|
|
281
299
|
/** What starts it. @default 'mount' */
|
|
282
300
|
trigger?: NebaAnimateTrigger;
|
|
283
|
-
/**
|
|
284
|
-
|
|
301
|
+
/**
|
|
302
|
+
* Runs it, when `trigger` is `manual`. Each `false` → `true` starts it over,
|
|
303
|
+
* and so does a number that changes: a count of failed attempts replays a
|
|
304
|
+
* shake on every failure without remounting what is inside it. `0` is stopped.
|
|
305
|
+
*/
|
|
306
|
+
play?: boolean | number;
|
|
285
307
|
/**
|
|
286
308
|
* With `trigger="visible"`, whether it runs only the first time. Off, it runs
|
|
287
309
|
* again every time the element comes back into view.
|
|
@@ -359,7 +381,8 @@ export interface NebaTransitionOptions {
|
|
|
359
381
|
* A bare effect name is the whole of what most callers want —
|
|
360
382
|
* `transition="fade"` — and the object form is there for the rest.
|
|
361
383
|
*
|
|
362
|
-
* It runs on mount and once
|
|
384
|
+
* It runs on mount and once, except `blink`, which repeats until its `repeat`
|
|
385
|
+
* says otherwise: a blink that ran once would be a flicker. Anything else — replaying on scroll, on hover, or
|
|
363
386
|
* under your own control — is what the `Animate*` components are, and any
|
|
364
387
|
* component can be wrapped in one. This prop exists so the common case does not
|
|
365
388
|
* need an extra element in the tree.
|
|
@@ -444,6 +467,21 @@ export interface NebaChartSeries {
|
|
|
444
467
|
* @default false
|
|
445
468
|
*/
|
|
446
469
|
hidden?: boolean;
|
|
470
|
+
/**
|
|
471
|
+
* Which value axis this series is measured against.
|
|
472
|
+
*
|
|
473
|
+
* `secondary` is for the series whose units are not the others' — revenue
|
|
474
|
+
* beside a conversion rate, a count beside a duration. It is read only when
|
|
475
|
+
* the chart was given a `secondaryAxis`, and never on a stacked chart: a
|
|
476
|
+
* stack is a total, and a total across two units is not a number.
|
|
477
|
+
*
|
|
478
|
+
* Reach for it rarely. Two scales on one plot let a caller make any two
|
|
479
|
+
* series look like they move together by choosing the ranges, and a reader
|
|
480
|
+
* has no way to see that it was done — which is why the second axis is drawn
|
|
481
|
+
* on the far edge and labelled rather than merely implied.
|
|
482
|
+
* @default 'primary'
|
|
483
|
+
*/
|
|
484
|
+
axis?: 'primary' | 'secondary';
|
|
447
485
|
}
|
|
448
486
|
/**
|
|
449
487
|
* One span on a [TimelineChart] — a stretch of time with two ends.
|
|
@@ -487,6 +525,24 @@ export interface NebaTimelineSeries {
|
|
|
487
525
|
}
|
|
488
526
|
/** How a line gets from one point to the next. */
|
|
489
527
|
export type NebaChartCurve = 'linear' | 'smooth' | 'step';
|
|
528
|
+
/**
|
|
529
|
+
* What a line or a band does where a value is missing.
|
|
530
|
+
*
|
|
531
|
+
* - `gap` — breaks. The default, and the honest one: a `null` is a month that
|
|
532
|
+
* has not closed or a sensor that was offline, and a chart that draws over
|
|
533
|
+
* the hole has stated a number nobody measured.
|
|
534
|
+
* - `connect` — joins the two sides with a straight segment. For a gap that is
|
|
535
|
+
* an artefact of how the data was collected rather than a fact about the
|
|
536
|
+
* world — a reading that failed to arrive for something that never stopped.
|
|
537
|
+
* - `zero` — reads the gap as a nought, everywhere: the line goes to the
|
|
538
|
+
* baseline, the axis takes the nought into its range, and the tooltip and the
|
|
539
|
+
* table say `0` rather than nothing. That last part is the point of it being
|
|
540
|
+
* here rather than a change to the drawing alone — a picture that touches
|
|
541
|
+
* zero over a table that says "no reading" is two answers to one question.
|
|
542
|
+
* Reach for it when a missing row genuinely means none happened, which is
|
|
543
|
+
* what an event count usually means and what a rate never does.
|
|
544
|
+
*/
|
|
545
|
+
export type NebaChartNulls = 'gap' | 'connect' | 'zero';
|
|
490
546
|
/**
|
|
491
547
|
* Which values are written onto the marks themselves.
|
|
492
548
|
*
|
|
@@ -527,7 +583,7 @@ export interface NebaChartTooltipContext {
|
|
|
527
583
|
}
|
|
528
584
|
/** The tooltip, when a bare `true` or `false` is not enough. */
|
|
529
585
|
export interface NebaChartTooltip {
|
|
530
|
-
/** @default 'index' */
|
|
586
|
+
/** @default 'index', or 'item' on ScatterChart and TimelineChart */
|
|
531
587
|
mode?: NebaChartTooltipMode;
|
|
532
588
|
/**
|
|
533
589
|
* The line dropped through the plot at the active category. On in `index`
|
|
@@ -537,6 +593,86 @@ export interface NebaChartTooltip {
|
|
|
537
593
|
/** Draws the panel. Without it the chart draws its own. */
|
|
538
594
|
render?: (context: NebaChartTooltipContext) => React.ReactNode;
|
|
539
595
|
}
|
|
596
|
+
/**
|
|
597
|
+
* A line, or a band, drawn across a plot at a value the data has none of.
|
|
598
|
+
*
|
|
599
|
+
* A target, an SLA, a budget, last year's average, the window a forecast
|
|
600
|
+
* covers. It is the one thing on a chart that is neither a mark nor chrome: it
|
|
601
|
+
* carries meaning, so it is drawn heavier than a gridline — and it is not the
|
|
602
|
+
* reader's data, so it is dashed and neutral rather than taking one of the
|
|
603
|
+
* eight series hues.
|
|
604
|
+
*
|
|
605
|
+
* The scale is widened to hold it. A target drawn off the top of the plot is a
|
|
606
|
+
* target nobody can see, and moving every mark down a little to make room is
|
|
607
|
+
* the cheaper of the two costs.
|
|
608
|
+
*/
|
|
609
|
+
export interface NebaChartReference {
|
|
610
|
+
/** Where it sits, in the units of the axis it is read against. */
|
|
611
|
+
value: number;
|
|
612
|
+
/**
|
|
613
|
+
* Turns the line into a band that runs from `value` to here — a tolerance, a
|
|
614
|
+
* quarter, the range a forecast covers. Drawn as a wash with an edge at each
|
|
615
|
+
* end, so what is inside it stays readable.
|
|
616
|
+
*/
|
|
617
|
+
to?: number;
|
|
618
|
+
/**
|
|
619
|
+
* Which axis the numbers are read against.
|
|
620
|
+
*
|
|
621
|
+
* - `value` — the one the marks are measured on. A target, a budget, a limit.
|
|
622
|
+
* - `category` — the one they are placed along, for a rule that says *when*:
|
|
623
|
+
* a release, a policy change. On an axis of columns the number is the
|
|
624
|
+
* column's index; on one of dates or numbers it is a point on that scale.
|
|
625
|
+
* @default 'value'
|
|
626
|
+
*/
|
|
627
|
+
axis?: 'value' | 'category';
|
|
628
|
+
/**
|
|
629
|
+
* What it is called, written at the far end of it. SVG text, so a string:
|
|
630
|
+
* an element has nowhere to go.
|
|
631
|
+
*/
|
|
632
|
+
label?: string;
|
|
633
|
+
/**
|
|
634
|
+
* Its colour. A `NebaColor` family, or any CSS colour.
|
|
635
|
+
*
|
|
636
|
+
* Neutral by default, and that is the right answer more often than it looks:
|
|
637
|
+
* a reference in `danger` says the line is the bad thing, when usually the
|
|
638
|
+
* bad thing is the data crossing it.
|
|
639
|
+
* @default the muted ink
|
|
640
|
+
*/
|
|
641
|
+
color?: NebaColor | (string & {});
|
|
642
|
+
/**
|
|
643
|
+
* Draws it as a solid rule. Dashed otherwise, which is what says a line is a
|
|
644
|
+
* threshold rather than one more gridline.
|
|
645
|
+
* @default false
|
|
646
|
+
*/
|
|
647
|
+
solid?: boolean;
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* The strip under a plot that says which part of a long series is drawn.
|
|
651
|
+
*
|
|
652
|
+
* A chart of two thousand points is a chart with no points on it: every column
|
|
653
|
+
* is a fraction of a pixel wide and the shape is a smear. The answer is not to
|
|
654
|
+
* draw fewer of them — that is the caller's data — but to draw a window of
|
|
655
|
+
* them, and to put the whole series under the plot small so the reader can see
|
|
656
|
+
* where the window is and move it.
|
|
657
|
+
*
|
|
658
|
+
* The window is in **category indices**, inclusive at both ends, because that
|
|
659
|
+
* is what a category axis is indexed by whether it holds dates, numbers or
|
|
660
|
+
* columns.
|
|
661
|
+
*/
|
|
662
|
+
export interface NebaChartBrush {
|
|
663
|
+
/** Which categories the window covers to begin with. Defaults to all of them. */
|
|
664
|
+
defaultRange?: readonly [number, number];
|
|
665
|
+
/** The window, for a chart whose range the caller holds. */
|
|
666
|
+
range?: readonly [number, number];
|
|
667
|
+
/** Called with the new window whenever the reader moves it. */
|
|
668
|
+
onRangeChange?: (range: [number, number]) => void;
|
|
669
|
+
/**
|
|
670
|
+
* How tall the strip is, in pixels. Drawn **inside** the chart's own height,
|
|
671
|
+
* like the axis labels, so a card sized to the chart is a card it fits in.
|
|
672
|
+
* @default 32
|
|
673
|
+
*/
|
|
674
|
+
height?: number;
|
|
675
|
+
}
|
|
540
676
|
/** One axis of a cartesian chart. */
|
|
541
677
|
export interface NebaChartAxis {
|
|
542
678
|
/** Leaves the axis undrawn — its rule, its ticks and its labels. */
|
|
@@ -558,8 +694,32 @@ export interface NebaChartAxis {
|
|
|
558
694
|
max?: number;
|
|
559
695
|
/** Roughly how many ticks. The scale still rounds to clean numbers. */
|
|
560
696
|
tickCount?: number;
|
|
561
|
-
/**
|
|
562
|
-
|
|
697
|
+
/**
|
|
698
|
+
* How a tick is written, overriding the chart's own `format`. A tick is SVG
|
|
699
|
+
* text, so this returns a string or a number: an element has nowhere to go and
|
|
700
|
+
* was written out as `[object Object]`.
|
|
701
|
+
*/
|
|
702
|
+
tickFormat?: (value: NebaChartCategory, index: number) => string | number;
|
|
703
|
+
/**
|
|
704
|
+
* Turns the labels by this many degrees, between `-90` and `90`. Negative
|
|
705
|
+
* tilts them up to the right, which is the one most readers have met;
|
|
706
|
+
* positive tilts them down, and `-90` stands them on end.
|
|
707
|
+
*
|
|
708
|
+
* What it buys is **all** of the labels. Flat, a long category name has one
|
|
709
|
+
* slot to fit in, so the axis either cuts it to an ellipsis or drops every
|
|
710
|
+
* second one; turned, each label only has to clear its neighbour across its
|
|
711
|
+
* own height, and a dozen product names fit where three did. What it costs is
|
|
712
|
+
* a band of the plot and a label nobody can read at a glance, so it is worth
|
|
713
|
+
* it when the names are what the reader came for and not when the shape is.
|
|
714
|
+
*
|
|
715
|
+
* Only the **category** axis reads it, and only on a chart that draws that
|
|
716
|
+
* axis along the bottom: a horizontal chart already gives each label a row of
|
|
717
|
+
* its own, and a value tick is a rounded number that was never cut. The band
|
|
718
|
+
* under the plot grows to hold the turned labels, up to a cap — past that
|
|
719
|
+
* they are still cut, because a chart that is mostly axis is not a chart.
|
|
720
|
+
* @default 0
|
|
721
|
+
*/
|
|
722
|
+
tickAngle?: number;
|
|
563
723
|
/**
|
|
564
724
|
* How much room the axis keeps for its ticks and its label, in pixels.
|
|
565
725
|
* Measured from the ticks themselves otherwise; set it when a long category
|
package/dist/types.js
CHANGED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared prop vocabulary for every Neba component.
|
|
3
|
-
*
|
|
4
|
-
* These names and values are deliberately generic: a `size` of `md` or a
|
|
5
|
-
* `color` of `primary` has to mean the same thing on a Button, a Chip, a
|
|
6
|
-
* TextField or a Dialog. Components pick the subset they need from here and
|
|
7
|
-
* never invent a parallel spelling of the same idea.
|
|
8
|
-
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neba",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.0",
|
|
4
4
|
"description": "A comprehensive React UI component library — buttons, fields, menus, dialogs, tables and much more — accessible and themeable, sharing one prop vocabulary and a translucent acrylic design language. ESM only, types included, dark mode built in.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,22 +19,24 @@
|
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
21
|
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
22
|
-
"build": "npm run clean && npm run format:fix && tsc --project tsconfig.prod.json && node scripts/annotate-pure.mjs && npm run minify && node scripts/build-styles.mjs",
|
|
22
|
+
"build": "npm run clean && npm run format:fix && tsc --project tsconfig.prod.json && node scripts/annotate-pure.mjs && npm run minify && node scripts/build-styles.mjs && node scripts/build-catalog.mjs",
|
|
23
23
|
"lint": "eslint . --report-unused-disable-directives",
|
|
24
24
|
"lint:fix": "eslint . --report-unused-disable-directives --fix",
|
|
25
|
-
"minify": "
|
|
25
|
+
"minify": "node scripts/minify.mjs",
|
|
26
26
|
"size": "node scripts/measure-bundle.mjs",
|
|
27
27
|
"size:update": "node scripts/measure-bundle.mjs --update",
|
|
28
|
+
"compat": "node scripts/check-browsers.mjs",
|
|
28
29
|
"prepare": "npm run build",
|
|
29
30
|
"format": "prettier .",
|
|
30
31
|
"format:fix": "prettier . --write",
|
|
31
32
|
"docs:changelog": "node scripts/copy-changelog.mjs",
|
|
32
|
-
"docs:dev": "npm run docs:changelog && vitepress dev docs",
|
|
33
|
-
"docs:build": "npm run docs:changelog && node --max-old-space-size=8192 ./node_modules/vitepress/bin/vitepress.js build docs",
|
|
33
|
+
"docs:dev": "npm run docs:changelog && npm run docs:catalog && vitepress dev docs",
|
|
34
|
+
"docs:build": "npm run docs:changelog && npm run docs:catalog && node --max-old-space-size=8192 ./node_modules/vitepress/bin/vitepress.js build docs",
|
|
34
35
|
"docs:serve": "npm run docs:build && vitepress serve docs",
|
|
35
36
|
"test": "node scripts/run-tests.mjs",
|
|
36
37
|
"test:watch": "vitest",
|
|
37
|
-
"typecheck": "tsc --project tsconfig.prod.json --noEmit && tsc --project test/tsconfig.json && tsc --project docs/tsconfig.json"
|
|
38
|
+
"typecheck": "tsc --project tsconfig.prod.json --noEmit && tsc --project test/tsconfig.json && tsc --project docs/tsconfig.json",
|
|
39
|
+
"docs:catalog": "node scripts/build-catalog.mjs --docs"
|
|
38
40
|
},
|
|
39
41
|
"engines": {
|
|
40
42
|
"node": ">=18.0.0"
|
|
@@ -69,6 +71,12 @@
|
|
|
69
71
|
"./styles.css": "./dist/styles.css",
|
|
70
72
|
"./tailwind.css": "./dist/tailwind.css",
|
|
71
73
|
"./package.json": "./package.json",
|
|
74
|
+
"./a2ui": {
|
|
75
|
+
"types": "./dist/a2ui/index.d.ts",
|
|
76
|
+
"module": "./dist/a2ui/index.js",
|
|
77
|
+
"default": "./dist/a2ui/index.js"
|
|
78
|
+
},
|
|
79
|
+
"./a2ui/catalog.json": "./dist/a2ui/catalog.json",
|
|
72
80
|
"./*": {
|
|
73
81
|
"types": "./dist/components/*/index.d.ts",
|
|
74
82
|
"module": "./dist/components/*/index.js",
|
|
@@ -89,6 +97,12 @@
|
|
|
89
97
|
"locales/*": [
|
|
90
98
|
"dist/locales/*.d.ts"
|
|
91
99
|
],
|
|
100
|
+
"hooks": [
|
|
101
|
+
"dist/hooks/index.d.ts"
|
|
102
|
+
],
|
|
103
|
+
"a2ui": [
|
|
104
|
+
"dist/a2ui/index.d.ts"
|
|
105
|
+
],
|
|
92
106
|
"*": [
|
|
93
107
|
"dist/components/*/index.d.ts"
|
|
94
108
|
]
|
|
@@ -137,7 +151,10 @@
|
|
|
137
151
|
"form"
|
|
138
152
|
],
|
|
139
153
|
"devDependencies": {
|
|
154
|
+
"@a2ui/react": "^0.11.1",
|
|
155
|
+
"@a2ui/web_core": "^0.11.0",
|
|
140
156
|
"@eslint/js": "^9.39.1",
|
|
157
|
+
"@mdn/browser-compat-data": "^8.1.1",
|
|
141
158
|
"@tailwindcss/postcss": "^4.3.3",
|
|
142
159
|
"@types/node": "^26.4.1",
|
|
143
160
|
"@types/react": "^19.2.18",
|
|
@@ -159,7 +176,7 @@
|
|
|
159
176
|
"react": "^19.2.8",
|
|
160
177
|
"react-dom": "^19.2.8",
|
|
161
178
|
"tailwindcss": "^4.3.3",
|
|
162
|
-
"terser
|
|
179
|
+
"terser": "^5.51.2",
|
|
163
180
|
"tsx": "^4.23.13",
|
|
164
181
|
"typescript": "^6.0.3",
|
|
165
182
|
"typescript-eslint": "^8.69.0",
|
|
@@ -168,7 +185,8 @@
|
|
|
168
185
|
"vitepress-i18n": "^1.4.0",
|
|
169
186
|
"vitepress-sidebar": "^1.40.0",
|
|
170
187
|
"vitest": "^5.0.0",
|
|
171
|
-
"vitest-browser-react": "^2.3.0"
|
|
188
|
+
"vitest-browser-react": "^2.3.0",
|
|
189
|
+
"zod": "^3.25.76"
|
|
172
190
|
},
|
|
173
191
|
"dependencies": {
|
|
174
192
|
"@base-ui/react": "^1.8.0",
|
|
@@ -177,11 +195,27 @@
|
|
|
177
195
|
"peerDependencies": {
|
|
178
196
|
"@types/react": "^18.0.0 || ^19.0.0",
|
|
179
197
|
"react": "^18.0.0 || ^19.0.0",
|
|
180
|
-
"react-dom": "^18.0.0 || ^19.0.0"
|
|
198
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
199
|
+
"@a2ui/react": "^0.11.0",
|
|
200
|
+
"@a2ui/web_core": "^0.11.0",
|
|
201
|
+
"zod": "^3.25.76"
|
|
181
202
|
},
|
|
182
203
|
"peerDependenciesMeta": {
|
|
183
204
|
"@types/react": {
|
|
184
205
|
"optional": true
|
|
206
|
+
},
|
|
207
|
+
"@a2ui/react": {
|
|
208
|
+
"optional": true
|
|
209
|
+
},
|
|
210
|
+
"@a2ui/web_core": {
|
|
211
|
+
"optional": true
|
|
212
|
+
},
|
|
213
|
+
"zod": {
|
|
214
|
+
"optional": true
|
|
185
215
|
}
|
|
216
|
+
},
|
|
217
|
+
"allowScripts": {
|
|
218
|
+
"esbuild": false,
|
|
219
|
+
"fsevents": false
|
|
186
220
|
}
|
|
187
221
|
}
|