@visulima/tui 1.0.0-alpha.2 → 1.0.0-alpha.4
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/CHANGELOG.md +59 -0
- package/LICENSE.md +63 -9
- package/README.md +6 -6
- package/dist/core/index.js +3 -3
- package/dist/ink/canvas/braille.d.ts +22 -0
- package/dist/ink/canvas/buffer.d.ts +67 -0
- package/dist/ink/components/accordion.d.ts +52 -0
- package/dist/ink/components/animate-presence.d.ts +15 -0
- package/dist/ink/components/approval-prompt.d.ts +55 -0
- package/dist/ink/components/area-chart.d.ts +54 -0
- package/dist/ink/components/bar-chart.d.ts +57 -0
- package/dist/ink/components/blink-dot.d.ts +30 -0
- package/dist/ink/components/breadcrumb.d.ts +28 -0
- package/dist/ink/components/button.d.ts +38 -0
- package/dist/ink/components/calendar.d.ts +60 -0
- package/dist/ink/components/canvas.d.ts +38 -0
- package/dist/ink/components/card.d.ts +46 -0
- package/dist/ink/components/chart-utils.d.ts +54 -0
- package/dist/ink/components/checkbox.d.ts +39 -0
- package/dist/ink/components/collapsible.d.ts +43 -0
- package/dist/ink/components/command-block.d.ts +38 -0
- package/dist/ink/components/command-palette.d.ts +72 -0
- package/dist/ink/components/confirm-dialog.d.ts +63 -0
- package/dist/ink/components/content-switcher.d.ts +49 -0
- package/dist/ink/components/date-picker.d.ts +53 -0
- package/dist/ink/components/definition-list.d.ts +37 -0
- package/dist/ink/components/divider.d.ts +40 -0
- package/dist/ink/components/file-picker/{FilePicker.d.ts → file-picker.d.ts} +2 -19
- package/dist/ink/components/file-picker/types.d.ts +1 -4
- package/dist/ink/components/file-picker/use-file-system.d.ts +1 -1
- package/dist/ink/components/form.d.ts +74 -0
- package/dist/ink/components/gauge.d.ts +75 -0
- package/dist/ink/components/heading.d.ts +27 -0
- package/dist/ink/components/heatmap.d.ts +51 -0
- package/dist/ink/components/{Help.d.ts → help.d.ts} +4 -9
- package/dist/ink/components/histogram.d.ts +52 -0
- package/dist/ink/components/kbd.d.ts +27 -0
- package/dist/ink/components/line-chart.d.ts +94 -0
- package/dist/ink/components/loading-indicator.d.ts +24 -0
- package/dist/ink/components/masked-input.d.ts +41 -0
- package/dist/ink/components/menu.d.ts +70 -0
- package/dist/ink/components/message-bubble.d.ts +35 -0
- package/dist/ink/components/model-badge.d.ts +32 -0
- package/dist/ink/components/operation-tree.d.ts +46 -0
- package/dist/ink/components/option-list.d.ts +41 -0
- package/dist/ink/components/{Paginator.d.ts → paginator.d.ts} +4 -20
- package/dist/ink/components/paragraph.d.ts +31 -0
- package/dist/ink/components/placeholder.d.ts +47 -0
- package/dist/ink/components/{ProgressBar.d.ts → progress-bar.d.ts} +1 -1
- package/dist/ink/components/radio-group.d.ts +62 -0
- package/dist/ink/components/scatter-plot.d.ts +23 -0
- package/dist/ink/components/scroll/{ControlledScrollView.d.ts → controlled-scroll-view.d.ts} +1 -1
- package/dist/ink/components/scroll/index.d.ts +10 -10
- package/dist/ink/components/scroll/{ScrollBarBox.d.ts → scroll-bar-box.d.ts} +1 -1
- package/dist/ink/components/scroll/{ScrollBar.d.ts → scroll-bar.d.ts} +1 -1
- package/dist/ink/components/scroll/{ScrollList.d.ts → scroll-list.d.ts} +1 -1
- package/dist/ink/components/scroll/{ScrollView.d.ts → scroll-view.d.ts} +1 -1
- package/dist/ink/components/search-input.d.ts +46 -0
- package/dist/ink/components/{SelectInput.d.ts → select-input.d.ts} +2 -2
- package/dist/ink/components/shimmer-text.d.ts +39 -0
- package/dist/ink/components/sparkline.d.ts +30 -0
- package/dist/ink/components/{Spinner.d.ts → spinner.d.ts} +2 -4
- package/dist/ink/components/{StaticRender.d.ts → static-render.d.ts} +14 -2
- package/dist/ink/components/status-line.d.ts +30 -0
- package/dist/ink/components/stepper.d.ts +42 -0
- package/dist/ink/components/{Stopwatch.d.ts → stopwatch.d.ts} +5 -7
- package/dist/ink/components/streaming-text.d.ts +38 -0
- package/dist/ink/components/switch.d.ts +46 -0
- package/dist/ink/components/{Tabs.d.ts → tabs.d.ts} +1 -1
- package/dist/ink/components/tag.d.ts +30 -0
- package/dist/ink/components/{Timer.d.ts → timer.d.ts} +5 -7
- package/dist/ink/components/toast.d.ts +41 -0
- package/dist/ink/components/tooltip.d.ts +36 -0
- package/dist/ink/components/transition.d.ts +53 -0
- package/dist/ink/components/tree-view/theme.d.ts +2 -2
- package/dist/ink/cursor-helpers.d.ts +0 -3
- package/dist/ink/dom.d.ts +9 -8
- package/dist/ink/hooks/use-animation.d.ts +0 -2
- package/dist/ink/hooks/use-app.d.ts +1 -1
- package/dist/ink/hooks/use-focus-manager.d.ts +1 -1
- package/dist/ink/hooks/use-form.d.ts +70 -0
- package/dist/ink/hooks/use-hotkey.d.ts +37 -0
- package/dist/ink/hooks/use-interval.d.ts +25 -0
- package/dist/ink/hooks/use-key-bindings.d.ts +4 -6
- package/dist/ink/hooks/use-key-chord.d.ts +26 -0
- package/dist/ink/hooks/use-linked-scroll.d.ts +1 -1
- package/dist/ink/hooks/use-persistent-state.d.ts +56 -0
- package/dist/ink/hooks/use-stderr.d.ts +1 -1
- package/dist/ink/hooks/use-stdin.d.ts +1 -1
- package/dist/ink/hooks/use-stdout.d.ts +1 -1
- package/dist/ink/hooks/use-stopwatch.d.ts +1 -3
- package/dist/ink/hooks/use-timeout.d.ts +24 -0
- package/dist/ink/hooks/use-timer.d.ts +0 -2
- package/dist/ink/index.d.ts +228 -92
- package/dist/ink/index.js +132 -77
- package/dist/ink/ink.d.ts +7 -6
- package/dist/ink/mouse/constants.d.ts +5 -50
- package/dist/ink/mouse/index.d.ts +2 -2
- package/dist/ink/output.d.ts +2 -1
- package/dist/ink/styled-line.d.ts +10 -0
- package/dist/ink/write-synchronized.d.ts +2 -2
- package/dist/packem_shared/Accordion-BG-yfIkV.js +80 -0
- package/dist/packem_shared/{Alert-Dr3s_LD9.js → Alert-BLcwIW8V.js} +2 -2
- package/dist/packem_shared/AnimatePresence-D8nEOr_B.js +98 -0
- package/dist/packem_shared/ApprovalPrompt-BXdPros1.js +104 -0
- package/dist/packem_shared/AreaChart-CmTcxLum.js +116 -0
- package/dist/packem_shared/{Badge-Dk7EGGM6.js → Badge-CUfbXwAB.js} +1 -1
- package/dist/packem_shared/BarChart-DWRae67P.js +87 -0
- package/dist/packem_shared/{BigText-CjMdY63X.js → BigText-CVq2X7B5.js} +1 -1
- package/dist/packem_shared/BlinkDot-CrbHMR3L.js +11 -0
- package/dist/packem_shared/{Box-D_pSJ9Jp.js → Box-W1w_NGin.js} +4 -6
- package/dist/packem_shared/Breadcrumb-CPdNxVYs.js +26 -0
- package/dist/packem_shared/Button-CBmTbJ_D.js +57 -0
- package/dist/packem_shared/Calendar-C2Qxt-LA.js +139 -0
- package/dist/packem_shared/Canvas-COttmLPX.js +246 -0
- package/dist/packem_shared/Card-D3tGkNCm.js +24 -0
- package/dist/packem_shared/Checkbox-Dpy_4Lws.js +49 -0
- package/dist/packem_shared/{Code-DjQvPBD9.js → Code-CwzzbsLx.js} +3 -3
- package/dist/packem_shared/Collapsible-BMDrXf5C.js +45 -0
- package/dist/packem_shared/CommandBlock-jdOGJPjY.js +80 -0
- package/dist/packem_shared/CommandPalette-B5IfUQwi.js +146 -0
- package/dist/packem_shared/ConfirmDialog-5XJv3Cc4.js +67 -0
- package/dist/packem_shared/{ConfirmInput-85Y4kRQW.js → ConfirmInput-CxUS0XAA.js} +3 -3
- package/dist/packem_shared/{ConsoleOverlay-DBNa4vtj.js → ConsoleOverlay-BvnCEgjG.js} +2 -2
- package/dist/packem_shared/ContentSwitcher-BHFpO5Za.js +81 -0
- package/dist/packem_shared/ControlledScrollView-C2wOOlJO.js +5 -0
- package/dist/packem_shared/DatePicker-CPejKoqS.js +73 -0
- package/dist/packem_shared/DefinitionList-BAwr0l5J.js +18 -0
- package/dist/packem_shared/{DevTools-aMPIsaHx.js → DevTools-BdxRSkhL.js} +6 -4
- package/dist/packem_shared/{Dialog-DsSNAVgC.js → Dialog-S9r7Izff.js} +5 -5
- package/dist/packem_shared/{DiffView-hqaw-2S6.js → DiffView-BR4T6-Sj.js} +4 -4
- package/dist/packem_shared/Divider-DocXIqNn.js +30 -0
- package/dist/packem_shared/{FilePicker-DNwFxRhq.js → FilePicker-BZ55oF_n.js} +39 -32
- package/dist/packem_shared/FormField-BSG16cnA.js +29 -0
- package/dist/packem_shared/{Fullscreen-DrElAE1o.js → Fullscreen-DO7voOq5.js} +2 -2
- package/dist/packem_shared/Gauge-CKXUXxft.js +122 -0
- package/dist/packem_shared/{Gradient-Ql5P0GUd.js → Gradient-Dg0NezWc.js} +3 -3
- package/dist/packem_shared/Heading-BnR7McmP.js +29 -0
- package/dist/packem_shared/Heatmap-_jqISOU0.js +79 -0
- package/dist/packem_shared/{Help-6wanGG38.js → Help-0yZ_IcQg.js} +4 -11
- package/dist/packem_shared/Histogram-cgAjY5AJ.js +92 -0
- package/dist/packem_shared/{InputParser-BKHpWfvN.js → InputParser-BlsfeY9J.js} +8 -6
- package/dist/packem_shared/KEY-STOdi-nc.js +74 -0
- package/dist/packem_shared/Kbd-BNDXQgey.js +19 -0
- package/dist/packem_shared/{LayoutNode-Cjnsodiy.js → LayoutNode-DAkKg9TE.js} +5 -7
- package/dist/packem_shared/LineChart-ef3HF816.js +7 -0
- package/dist/packem_shared/{Link-COcKYfGT.js → Link-DZ2Tiq1m.js} +2 -2
- package/dist/packem_shared/LoadingIndicator-DzbLGfyJ.js +13 -0
- package/dist/packem_shared/{Markdown-y1ISztof.js → Markdown-33bpCUoe.js} +8 -8
- package/dist/packem_shared/MaskedInput-Ctr6v2dO.js +119 -0
- package/dist/packem_shared/Menu-CeKxhEix.js +112 -0
- package/dist/packem_shared/MessageBubble-BMoU8L2Q.js +26 -0
- package/dist/packem_shared/ModelBadge-CNIxPs7v.js +40 -0
- package/dist/packem_shared/{MouseProvider-Y9TSSEGl.js → MouseProvider-CekPbXCh.js} +3 -3
- package/dist/packem_shared/{MultiSelect-ChoLUcDI.js → MultiSelect-yz7-w0Zv.js} +4 -4
- package/dist/packem_shared/{NAMED_COLORS-a4QBvb5r.js → NAMED_COLORS-DcI3erCu.js} +79 -41
- package/dist/packem_shared/OperationTree-Dudx5o1o.js +67 -0
- package/dist/packem_shared/OptionList-CTyqQaZ1.js +24 -0
- package/dist/packem_shared/{OrderedList-Cp7pXr6m.js → OrderedList-VsvSmHUC.js} +2 -2
- package/dist/packem_shared/{Paginator-D1AuD-kj.js → Paginator-DmGogvEI.js} +44 -44
- package/dist/packem_shared/Paragraph-CNNhfepo.js +9 -0
- package/dist/packem_shared/Placeholder-DkM69Q8Z.js +29 -0
- package/dist/packem_shared/{ProgressBar-DOfpVagn.js → ProgressBar-B7cS4uQm.js} +2 -2
- package/dist/packem_shared/RadioGroup-B4F9PUyL.js +108 -0
- package/dist/packem_shared/{ResizeObserverEntry-Br4seLeQ.js → ResizeObserverEntry-Vr8GZ74x.js} +4 -4
- package/dist/packem_shared/ScatterPlot-CWOg4G5h.js +63 -0
- package/dist/packem_shared/{ScrollBar-EWAs2Uc7.js → ScrollBar-DFeWH43I.js} +2 -2
- package/dist/packem_shared/{ScrollBarBox-DTNNlh7R.js → ScrollBarBox-C7VL6Izd.js} +2 -2
- package/dist/packem_shared/{ScrollList-DCeIFL8M.js → ScrollList-DRcr_RrN.js} +2 -2
- package/dist/packem_shared/{ScrollView-v3MCNIyX.js → ScrollView-C6rdlGwU.js} +4 -4
- package/dist/packem_shared/SearchInput-cB8zFhSg.js +32 -0
- package/dist/packem_shared/{SelectInput-BN2TMyxp.js → SelectInput-WzZSqp72.js} +6 -6
- package/dist/packem_shared/{SelectInputIndicator-DkRMoH_b.js → SelectInputIndicator-DKeN6v5Z.js} +2 -2
- package/dist/packem_shared/{SelectInputItem-BF9LQgKu.js → SelectInputItem-CxFL3spM.js} +1 -1
- package/dist/packem_shared/ShimmerText-B2VbPUSB.js +34 -0
- package/dist/packem_shared/{Slider-BWD7xZX6.js → Slider-BOrNTOQe.js} +3 -3
- package/dist/packem_shared/{Spacer-Bs4ER-HK.js → Spacer-DhmXyTb8.js} +1 -1
- package/dist/packem_shared/Sparkline-BSbjPrwK.js +44 -0
- package/dist/packem_shared/Spinner-BcO5BCAa.js +1942 -0
- package/dist/packem_shared/StaticRender-C3XWvJdC.js +69 -0
- package/dist/packem_shared/StatusLine-DQNUstN9.js +22 -0
- package/dist/packem_shared/{StatusMessage-BtSYxzwb.js → StatusMessage-BYTL6Pl-.js} +2 -2
- package/dist/packem_shared/Stepper-CmUPRK3z.js +60 -0
- package/dist/packem_shared/Stopwatch-zqLQAxXC.js +21 -0
- package/dist/packem_shared/StreamingText-BmuoJtGu.js +38 -0
- package/dist/packem_shared/Switch-DcPdy8nm.js +59 -0
- package/dist/packem_shared/{Table-D-rSVlzb.js → Table-Bgxo87Df.js} +11 -5
- package/dist/packem_shared/{Tabs-hki-KRnx.js → Tabs-DubuHdYV.js} +30 -19
- package/dist/packem_shared/Tag-CCqM7Ee9.js +35 -0
- package/dist/packem_shared/{Text-DvAUdZcK.js → Text-CtUwV89_.js} +2 -2
- package/dist/packem_shared/{TextInput-C79WEQ5U.js → TextInput-C9r7zT0U.js} +3 -3
- package/dist/packem_shared/{Textarea-Dj06R6Zd.js → Textarea-CGmgt-Nl.js} +5 -5
- package/dist/packem_shared/Timer-D7ZZ0_wz.js +20 -0
- package/dist/packem_shared/Toast-DXSCXFPY.js +37 -0
- package/dist/packem_shared/Tooltip-SvVjj-2k.js +32 -0
- package/dist/packem_shared/{Transform-BHxY_dAM.js → Transform-Cfyva2wd.js} +1 -1
- package/dist/packem_shared/Transition-CbNfKhaj.js +108 -0
- package/dist/packem_shared/{TreeView-C2062dtj.js → TreeView-DGlZeSsK.js} +4 -4
- package/dist/packem_shared/{TuiApp-DfxOnXqi.js → TuiApp-DtdgNRWa.js} +4 -2
- package/dist/packem_shared/{TuiContext-CqEjMyXd.js → TuiContext-lXmJFd-x.js} +6 -3
- package/dist/packem_shared/{UnorderedList-DhnadWjX.js → UnorderedList-D8RPaEAW.js} +2 -2
- package/dist/packem_shared/{ansi-parser-0BdVTKho.js → ansi-parser-BOP8fNdT.js} +6 -4
- package/dist/packem_shared/braille-BoEWoH2I.js +93 -0
- package/dist/packem_shared/{comparePoints-CGMDnd3_.js → comparePoints-CAAlhiMS.js} +2 -2
- package/dist/packem_shared/{ControlledScrollView-BlOaxcsN.js → controlled-scroll-view-DJXfdWMm.js} +2 -2
- package/dist/packem_shared/{createInlineLoop-BxMmcq9D.js → createInlineLoop-Dnfm1ZSJ.js} +19 -13
- package/dist/packem_shared/createMemoryStorage-esFJ61La.js +115 -0
- package/dist/packem_shared/createScreen-Dh0sZlQ0.js +38 -0
- package/dist/packem_shared/{dom-DvzhsAez.js → dom-CrbpQgat.js} +17 -14
- package/dist/packem_shared/{getPathToRoot-a1wbwxfL.js → getPathToRoot-BbvlppLC.js} +2 -2
- package/dist/packem_shared/{getScrollHeight-BubfU_df.js → getScrollHeight-Cz3CDQN2.js} +5 -5
- package/dist/packem_shared/line-chart-VGU2l7pu.js +139 -0
- package/dist/packem_shared/{measure-element-Reza_yfC.js → measure-element-Bc6PEaIe.js} +26 -17
- package/dist/packem_shared/{measure-text-DItZYotK.js → measure-text-BdOhbOeh.js} +74 -7
- package/dist/packem_shared/{measureElement-CTgFCmKd.js → measureElement-DTELRaij.js} +2 -2
- package/dist/packem_shared/parseSgrMouse-4hpBJBsW.js +1 -0
- package/dist/packem_shared/{processLayout-BQ9kXfd3.js → processLayout-B0Coz0Ua.js} +1 -1
- package/dist/packem_shared/{reconciler-gfmqURLy.js → reconciler-Dd7Z0A97.js} +21 -5
- package/dist/packem_shared/{reconciler-BXf6miSS.js → reconciler-mzMwSOft.js} +23 -13
- package/dist/packem_shared/{render-BAwdjfki.js → render-Bm9Oa1sG.js} +72 -79
- package/dist/packem_shared/{render-Bpjhf0lD.js → render-CjlKdg4m.js} +15 -11
- package/dist/packem_shared/{renderToString-ClIaXgrC.js → renderToString-CWYS1ZXE.js} +4 -4
- package/dist/packem_shared/{renderToString-Cfg55DRD.js → renderToString-DB3ILWFm.js} +4 -4
- package/dist/packem_shared/{renderTreeToBuffer-D3mo7M7m.js → renderTreeToBuffer-CDDTGyZn.js} +8 -5
- package/dist/packem_shared/{renderer-B3wROkeg.js → renderer-GE9OLNNM.js} +47 -41
- package/dist/packem_shared/{setEnableStyledLineCache-BpskngSJ.js → setEnableStyledLineCache-D5f4favX.js} +1 -1
- package/dist/packem_shared/{text-width-DhuarWcB.js → text-width-Db-AxMea.js} +2 -1
- package/dist/packem_shared/{token-to-elements-BRFl_rzw.js → token-to-elements-CK4s8MJd.js} +2 -2
- package/dist/packem_shared/{useAnimation-kj31sA-T.js → useAnimation-DV22qxiJ.js} +2 -2
- package/dist/packem_shared/{useApp-DPQlRzi5.js → useApp-Cbi788rV.js} +1 -1
- package/dist/packem_shared/{useBoxMetrics-rBjKc-g4.js → useBoxMetrics-_5icypir.js} +2 -2
- package/dist/packem_shared/{useClipboard-B_9-adw1.js → useClipboard-MNj6MNR-.js} +1 -1
- package/dist/packem_shared/{useCursor-BIJzc8k9.js → useCursor-DS6LjIgv.js} +1 -1
- package/dist/packem_shared/{useFocus-CNl5QHHf.js → useFocus-DLoGQJd9.js} +2 -2
- package/dist/packem_shared/{useFocusManager-BPYaUuKQ.js → useFocusManager-UeZWtnNc.js} +1 -1
- package/dist/packem_shared/useForm-sQENbEuv.js +88 -0
- package/dist/packem_shared/useHotkey-D9giUX3q.js +112 -0
- package/dist/packem_shared/{useInput-Cfp5zB2s.js → useInput-DKZbqMRc.js} +2 -2
- package/dist/packem_shared/useInterval-CSXM8c2I.js +32 -0
- package/dist/packem_shared/{useIsScreenReaderEnabled-CnGKCe0f.js → useIsScreenReaderEnabled-BeoVqo1R.js} +1 -1
- package/dist/packem_shared/{useKeyBindings-B78l1E1n.js → useKeyBindings-S4fSIEAk.js} +2 -2
- package/dist/packem_shared/useKeyChord-BmXGNuEO.js +114 -0
- package/dist/packem_shared/{usePaste-Ct8J4AGR.js → usePaste-png73gvT.js} +2 -2
- package/dist/packem_shared/{useScrollInput-D3CpBq_a.js → useScrollInput-DfzRGQFe.js} +2 -2
- package/dist/packem_shared/{useStderr-CAOVUh4E.js → useStderr-BSWerMZ7.js} +1 -1
- package/dist/packem_shared/{useStdin-X-O0kd-n.js → useStdin-Rf0zPzVA.js} +1 -1
- package/dist/packem_shared/{useStdout-DyF6DSH0.js → useStdout-B5yRcg9N.js} +1 -1
- package/dist/packem_shared/{useStopwatch-qC4Beai4.js → useStopwatch-C__Zu6hd.js} +2 -2
- package/dist/packem_shared/{useTerminalPalette-BaWO2c4Q.js → useTerminalPalette-CtFG2JTq.js} +2 -2
- package/dist/packem_shared/{useTextSelection-mXtxgsPK.js → useTextSelection-ChrYZXsn.js} +2 -2
- package/dist/packem_shared/useTimeout-DuCqgWPX.js +34 -0
- package/dist/packem_shared/{useTimer-CPQ7j827.js → useTimer-DnBtbhB5.js} +1 -1
- package/dist/packem_shared/{useTreeView-BT57P3Kx.js → useTreeView-mkN5Di7w.js} +1 -1
- package/dist/packem_shared/{useWindowSize-ugEmGZJm.js → useWindowSize-D3UU41mv.js} +1 -1
- package/dist/packem_shared/waitFor-Cv9M2jKA.js +39 -0
- package/dist/packem_shared/{wrapOrTruncateStyledLine-DN3Nogoc.js → wrapOrTruncateStyledLine-49Mne3t3.js} +1 -1
- package/dist/react/index.js +7 -7
- package/dist/react/layout.d.ts +0 -2
- package/dist/testing/index.d.ts +4 -4
- package/dist/testing/index.js +6 -114
- package/dist/testing/wait-for.d.ts +0 -1
- package/index.js +691 -539
- package/package.json +17 -17
- package/dist/ink/components/file-picker/index.d.ts +0 -3
- package/dist/ink/components/tree-view/index.d.ts +0 -11
- package/dist/packem_shared/ControlledScrollView-DfAhcufF.js +0 -5
- package/dist/packem_shared/Spinner-BuI-kN4p.js +0 -1799
- package/dist/packem_shared/StaticRender-tYwH6QXl.js +0 -33
- package/dist/packem_shared/Stopwatch-DjtTCyHn.js +0 -23
- package/dist/packem_shared/Timer-wi9zuh4n.js +0 -22
- package/dist/packem_shared/parseSgrMouse-BHVBPP9G.js +0 -1
- /package/dist/ink/components/{AccessibilityContext.d.ts → accessibility-context.d.ts} +0 -0
- /package/dist/ink/components/{Alert.d.ts → alert.d.ts} +0 -0
- /package/dist/ink/components/{AnimationContext.d.ts → animation-context.d.ts} +0 -0
- /package/dist/ink/components/{AppContext.d.ts → app-context.d.ts} +0 -0
- /package/dist/ink/components/{App.d.ts → app.d.ts} +0 -0
- /package/dist/ink/components/{BackgroundContext.d.ts → background-context.d.ts} +0 -0
- /package/dist/ink/components/{Badge.d.ts → badge.d.ts} +0 -0
- /package/dist/ink/components/{BigText.d.ts → big-text.d.ts} +0 -0
- /package/dist/ink/components/{Box.d.ts → box.d.ts} +0 -0
- /package/dist/ink/components/{Code.d.ts → code.d.ts} +0 -0
- /package/dist/ink/components/{ConfirmInput.d.ts → confirm-input.d.ts} +0 -0
- /package/dist/ink/components/{ConsoleOverlay.d.ts → console-overlay.d.ts} +0 -0
- /package/dist/ink/components/{CursorContext.d.ts → cursor-context.d.ts} +0 -0
- /package/dist/ink/components/{Cursor.d.ts → cursor.d.ts} +0 -0
- /package/dist/ink/components/{Dialog.d.ts → dialog.d.ts} +0 -0
- /package/dist/ink/components/{DiffView.d.ts → diff-view.d.ts} +0 -0
- /package/dist/ink/components/{ErrorBoundary.d.ts → error-boundary.d.ts} +0 -0
- /package/dist/ink/components/{ErrorOverview.d.ts → error-overview.d.ts} +0 -0
- /package/dist/ink/components/{FocusContext.d.ts → focus-context.d.ts} +0 -0
- /package/dist/ink/components/{Gradient.d.ts → gradient.d.ts} +0 -0
- /package/dist/ink/components/{Link.d.ts → link.d.ts} +0 -0
- /package/dist/ink/components/{Markdown.d.ts → markdown.d.ts} +0 -0
- /package/dist/ink/components/{MultiSelect.d.ts → multi-select.d.ts} +0 -0
- /package/dist/ink/components/{Newline.d.ts → newline.d.ts} +0 -0
- /package/dist/ink/components/{OrderedList.d.ts → ordered-list.d.ts} +0 -0
- /package/dist/ink/components/{SelectInputIndicator.d.ts → select-input-indicator.d.ts} +0 -0
- /package/dist/ink/components/{SelectInputItem.d.ts → select-input-item.d.ts} +0 -0
- /package/dist/ink/components/{Slider.d.ts → slider.d.ts} +0 -0
- /package/dist/ink/components/{Spacer.d.ts → spacer.d.ts} +0 -0
- /package/dist/ink/components/{Static.d.ts → static.d.ts} +0 -0
- /package/dist/ink/components/{StatusMessage.d.ts → status-message.d.ts} +0 -0
- /package/dist/ink/components/{StderrContext.d.ts → stderr-context.d.ts} +0 -0
- /package/dist/ink/components/{StdinContext.d.ts → stdin-context.d.ts} +0 -0
- /package/dist/ink/components/{StdoutContext.d.ts → stdout-context.d.ts} +0 -0
- /package/dist/ink/components/{Tab.d.ts → tab.d.ts} +0 -0
- /package/dist/ink/components/{Table.d.ts → table.d.ts} +0 -0
- /package/dist/ink/components/{TextInput.d.ts → text-input.d.ts} +0 -0
- /package/dist/ink/components/{Text.d.ts → text.d.ts} +0 -0
- /package/dist/ink/components/{Textarea.d.ts → textarea.d.ts} +0 -0
- /package/dist/ink/components/{Transform.d.ts → transform.d.ts} +0 -0
- /package/dist/ink/components/tree-view/{TreeViewNode.d.ts → tree-view-node.d.ts} +0 -0
- /package/dist/ink/components/tree-view/{TreeView.d.ts → tree-view.d.ts} +0 -0
- /package/dist/ink/components/{UnorderedList.d.ts → unordered-list.d.ts} +0 -0
- /package/dist/ink/mouse/{Fullscreen.d.ts → fullscreen.d.ts} +0 -0
- /package/dist/ink/mouse/{MouseProvider.d.ts → mouse-provider.d.ts} +0 -0
- /package/dist/packem_shared/{AccessibilityContext-BLelHhNU.js → accessibility-context-BLelHhNU.js} +0 -0
- /package/dist/packem_shared/{AnimationContext-BcJg8Jr6.js → animation-context-BcJg8Jr6.js} +0 -0
- /package/dist/packem_shared/{AppContext-CP0U6H7O.js → app-context-CP0U6H7O.js} +0 -0
- /package/dist/packem_shared/{BackgroundContext-BAUaxfOb.js → background-context-BAUaxfOb.js} +0 -0
- /package/dist/packem_shared/{CursorContext-JxRzlqAx.js → cursor-context-JxRzlqAx.js} +0 -0
- /package/dist/packem_shared/{FocusContext-CWkYtgcm.js → focus-context-CWkYtgcm.js} +0 -0
- /package/dist/packem_shared/{StderrContext-Bj4Mf7v7.js → stderr-context-Bj4Mf7v7.js} +0 -0
- /package/dist/packem_shared/{StdinContext-Bq_GNJ3z.js → stdin-context-Bq_GNJ3z.js} +0 -0
- /package/dist/packem_shared/{StdoutContext-CgjWeCdO.js → stdout-context-CgjWeCdO.js} +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type Props = {
|
|
5
|
+
/**
|
|
6
|
+
* Accent color for today / the focused cell.
|
|
7
|
+
* @default "blue"
|
|
8
|
+
*/
|
|
9
|
+
readonly accentColor?: LiteralUnion<AnsiColors, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Auto-focus the grid on mount.
|
|
12
|
+
*/
|
|
13
|
+
readonly autoFocus?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Initial focused day when uncontrolled. Defaults to `value` or today.
|
|
16
|
+
*/
|
|
17
|
+
readonly defaultValue?: Date;
|
|
18
|
+
/**
|
|
19
|
+
* First day of the week: 0 = Sunday, 1 = Monday.
|
|
20
|
+
* @default 1
|
|
21
|
+
*/
|
|
22
|
+
readonly firstDayOfWeek?: 0 | 1;
|
|
23
|
+
/**
|
|
24
|
+
* When true, disable input and render the grid dim.
|
|
25
|
+
*/
|
|
26
|
+
readonly isDisabled?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Upper bound; days after `maxDate` cannot be selected.
|
|
29
|
+
*/
|
|
30
|
+
readonly maxDate?: Date;
|
|
31
|
+
/**
|
|
32
|
+
* Lower bound; days before `minDate` cannot be selected.
|
|
33
|
+
*/
|
|
34
|
+
readonly minDate?: Date;
|
|
35
|
+
/**
|
|
36
|
+
* Called whenever the user navigates or selects a day.
|
|
37
|
+
*/
|
|
38
|
+
readonly onChange?: (date: Date) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Called when the user presses Enter.
|
|
41
|
+
*/
|
|
42
|
+
readonly onSubmit?: (date: Date) => void;
|
|
43
|
+
/**
|
|
44
|
+
* Color used to mark the currently selected day.
|
|
45
|
+
* @default "green"
|
|
46
|
+
*/
|
|
47
|
+
readonly selectedColor?: LiteralUnion<AnsiColors, string>;
|
|
48
|
+
/**
|
|
49
|
+
* Controlled selected date.
|
|
50
|
+
*/
|
|
51
|
+
readonly value?: Date;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Month-grid date picker. Arrow keys move focus by one day, page up/down move
|
|
55
|
+
* by month. Enter submits; Space or Enter selects.
|
|
56
|
+
* @param props See {@link Props}.
|
|
57
|
+
* @returns A bordered `ReactElement` containing the month header, weekday
|
|
58
|
+
* labels, and the day grid.
|
|
59
|
+
*/
|
|
60
|
+
export default function Calendar({ accentColor, autoFocus, defaultValue, firstDayOfWeek, isDisabled, maxDate, minDate, onChange, onSubmit, selectedColor, value, }: Props): ReactElement;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import type { CanvasContext } from "../canvas/buffer.d.ts";
|
|
3
|
+
export type { CanvasColor, CanvasContext, CellStyle } from "../canvas/buffer.d.ts";
|
|
4
|
+
export type Props = {
|
|
5
|
+
/**
|
|
6
|
+
* Imperative draw callback. Mutates the underlying typed-array buffer via
|
|
7
|
+
* the provided `CanvasContext`. Runs in a `useMemo` keyed by `version` —
|
|
8
|
+
* pass a stable reference (or hash) so the canvas only re-renders when
|
|
9
|
+
* the input data truly changes.
|
|
10
|
+
*/
|
|
11
|
+
readonly draw: (context: CanvasContext) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Number of rows (character cells vertically).
|
|
14
|
+
*/
|
|
15
|
+
readonly height: number;
|
|
16
|
+
/**
|
|
17
|
+
* Invalidation key — required so the memoization contract is explicit.
|
|
18
|
+
* Re-runs `draw` and re-serializes only the rows the draw callback
|
|
19
|
+
* dirtied. Pass the data you render (or a hash of it). Use a stable
|
|
20
|
+
* value (e.g. a counter) when you intentionally want to redraw on
|
|
21
|
+
* every render.
|
|
22
|
+
*/
|
|
23
|
+
readonly version: unknown;
|
|
24
|
+
/**
|
|
25
|
+
* Number of columns (character cells horizontally).
|
|
26
|
+
*/
|
|
27
|
+
readonly width: number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* A fixed-size cell grid backed by typed arrays. Use the imperative `draw`
|
|
31
|
+
* callback to paint. The canvas emits one `Text` child per row (not per cell)
|
|
32
|
+
* and caches the ANSI output of each row: only rows marked dirty by the last
|
|
33
|
+
* draw pass are re-serialized, and only when `version` changes.
|
|
34
|
+
*
|
|
35
|
+
* This is the foundation for chart/grid components that need more layout
|
|
36
|
+
* control than `Text` alone.
|
|
37
|
+
*/
|
|
38
|
+
export default function Canvas({ draw, height, version, width }: Props): ReactElement;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement, ReactNode } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type Props = {
|
|
5
|
+
/**
|
|
6
|
+
* Border color.
|
|
7
|
+
*/
|
|
8
|
+
readonly borderColor?: LiteralUnion<AnsiColors, string>;
|
|
9
|
+
/**
|
|
10
|
+
* Border style name, passed through to `Box`.
|
|
11
|
+
* @default "round"
|
|
12
|
+
*/
|
|
13
|
+
readonly borderStyle?: "arrow" | "bold" | "classic" | "double" | "doubleSingle" | "round" | "single" | "singleDouble";
|
|
14
|
+
/**
|
|
15
|
+
* Card body.
|
|
16
|
+
*/
|
|
17
|
+
readonly children: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Optional footer rendered below body with a dim divider.
|
|
20
|
+
*/
|
|
21
|
+
readonly footer?: ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Optional content rendered after the title on the same row.
|
|
24
|
+
*/
|
|
25
|
+
readonly headerRight?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Optional subtitle rendered below the title.
|
|
28
|
+
*/
|
|
29
|
+
readonly subtitle?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Optional title rendered in the header area.
|
|
32
|
+
*/
|
|
33
|
+
readonly title?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Color applied to the title.
|
|
36
|
+
*/
|
|
37
|
+
readonly titleColor?: LiteralUnion<AnsiColors, string>;
|
|
38
|
+
/**
|
|
39
|
+
* Fix the card width. When omitted the card grows to fill its parent.
|
|
40
|
+
*/
|
|
41
|
+
readonly width?: number | string;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Bordered container with optional title, subtitle, and footer.
|
|
45
|
+
*/
|
|
46
|
+
export default function Card({ borderColor, borderStyle, children, footer, headerRight, subtitle, title, titleColor, width }: Props): ReactElement;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { LiteralUnion } from "type-fest";
|
|
3
|
+
/**
|
|
4
|
+
* A single 2D data point.
|
|
5
|
+
*/
|
|
6
|
+
export type Point = {
|
|
7
|
+
readonly x: number;
|
|
8
|
+
readonly y: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Minimal shape every "series-like" chart entry conforms to. Used so chart
|
|
12
|
+
* components share utilities without coupling to a specific Props type.
|
|
13
|
+
*/
|
|
14
|
+
export type SeriesLike = {
|
|
15
|
+
readonly color?: LiteralUnion<AnsiColors, string>;
|
|
16
|
+
readonly data: ReadonlyArray<number> | ReadonlyArray<Point>;
|
|
17
|
+
readonly label?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Default palette cycled through when a series does not declare its own color.
|
|
21
|
+
*/
|
|
22
|
+
export declare const DEFAULT_CHART_PALETTE: ReadonlyArray<LiteralUnion<AnsiColors, string>>;
|
|
23
|
+
/**
|
|
24
|
+
* Normalize the per-series `data` prop into a uniform `Point[]`. Numeric
|
|
25
|
+
* arrays are treated as y-values with their index as x.
|
|
26
|
+
* @param data Either a numeric array or an array of `{x, y}` points.
|
|
27
|
+
* @returns A uniform `Point[]` — empty when no samples were provided.
|
|
28
|
+
*/
|
|
29
|
+
export declare const toPoints: (data: SeriesLike["data"]) => ReadonlyArray<Point>;
|
|
30
|
+
/**
|
|
31
|
+
* Pick the effective color for a series: per-series override, else palette
|
|
32
|
+
* cycling by index, with a safe `"cyan"` fallback.
|
|
33
|
+
* @param series The series whose color we want.
|
|
34
|
+
* @param index The series index for palette cycling.
|
|
35
|
+
* @param palette Fallback palette.
|
|
36
|
+
* @returns The resolved color string.
|
|
37
|
+
*/
|
|
38
|
+
export declare const pickSeriesColor: (series: SeriesLike, index: number, palette: ReadonlyArray<LiteralUnion<AnsiColors, string>>) => LiteralUnion<AnsiColors, string>;
|
|
39
|
+
export type Extents = {
|
|
40
|
+
readonly xMax: number;
|
|
41
|
+
readonly xMin: number;
|
|
42
|
+
readonly yMax: number;
|
|
43
|
+
readonly yMin: number;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Single-pass min/max scan for an arbitrary collection of series. Returns
|
|
47
|
+
* `Infinity` / `-Infinity` sentinels when no points are provided; callers
|
|
48
|
+
* should replace these with their chosen defaults before rendering.
|
|
49
|
+
* @param seriesList Iterable of series whose projected `points` need extents.
|
|
50
|
+
* @returns The `{xMin, xMax, yMin, yMax}` tuple across all input points.
|
|
51
|
+
*/
|
|
52
|
+
export declare const computeExtents: (seriesList: Iterable<{
|
|
53
|
+
readonly points: ReadonlyArray<Point>;
|
|
54
|
+
}>) => Extents;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement, ReactNode } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type Props = {
|
|
5
|
+
/**
|
|
6
|
+
* Accent color when focused.
|
|
7
|
+
* @default "blue"
|
|
8
|
+
*/
|
|
9
|
+
readonly accentColor?: LiteralUnion<AnsiColors, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Auto-focus when mounted if nothing else is focused.
|
|
12
|
+
*/
|
|
13
|
+
readonly autoFocus?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Label rendered next to the checkbox.
|
|
16
|
+
*/
|
|
17
|
+
readonly children?: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Initial checked state when uncontrolled.
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
readonly defaultChecked?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Controlled checked state. When provided, `onChange` should update the parent.
|
|
25
|
+
*/
|
|
26
|
+
readonly isChecked?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Disable input and dim the label.
|
|
29
|
+
*/
|
|
30
|
+
readonly isDisabled?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Fired when the checkbox toggles.
|
|
33
|
+
*/
|
|
34
|
+
readonly onChange?: (checked: boolean) => void;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Focusable checkbox. Toggles with Space or Enter.
|
|
38
|
+
*/
|
|
39
|
+
export default function Checkbox({ accentColor, autoFocus, children, defaultChecked, isChecked, isDisabled, onChange, }: Props): ReactElement;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement, ReactNode } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type Props = {
|
|
5
|
+
/**
|
|
6
|
+
* Accent color when the header is focused.
|
|
7
|
+
* @default "blue"
|
|
8
|
+
*/
|
|
9
|
+
readonly accentColor?: LiteralUnion<AnsiColors, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Auto-focus the collapsible on mount.
|
|
12
|
+
*/
|
|
13
|
+
readonly autoFocus?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Child content rendered when open.
|
|
16
|
+
*/
|
|
17
|
+
readonly children: ReactNode;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the section starts expanded.
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
readonly defaultOpen?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Disable interaction.
|
|
25
|
+
*/
|
|
26
|
+
readonly isDisabled?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Controlled open state.
|
|
29
|
+
*/
|
|
30
|
+
readonly isOpen?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Called when the user toggles the section.
|
|
33
|
+
*/
|
|
34
|
+
readonly onToggle?: (isOpen: boolean) => void;
|
|
35
|
+
/**
|
|
36
|
+
* Header label.
|
|
37
|
+
*/
|
|
38
|
+
readonly title: ReactNode;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Focusable section that can be expanded or collapsed.
|
|
42
|
+
*/
|
|
43
|
+
export default function Collapsible({ accentColor, autoFocus, children, defaultOpen, isDisabled, isOpen, onToggle, title, }: Props): ReactElement;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from "react";
|
|
2
|
+
export type CommandStatus = "error" | "idle" | "running" | "success";
|
|
3
|
+
export type Props = {
|
|
4
|
+
/**
|
|
5
|
+
* Shell command rendered in the header.
|
|
6
|
+
*/
|
|
7
|
+
readonly command: string;
|
|
8
|
+
/**
|
|
9
|
+
* Optional working directory shown after the command name.
|
|
10
|
+
*/
|
|
11
|
+
readonly cwd?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Duration in ms; shown when finished.
|
|
14
|
+
*/
|
|
15
|
+
readonly durationMs?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Exit code of the completed command.
|
|
18
|
+
*/
|
|
19
|
+
readonly exitCode?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Max output rows rendered before truncation. Use `Infinity` to disable.
|
|
22
|
+
*/
|
|
23
|
+
readonly maxOutputRows?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Command output. Either a string (rendered as-is) or arbitrary children.
|
|
26
|
+
*/
|
|
27
|
+
readonly output?: ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Lifecycle state. Controls the header icon and color.
|
|
30
|
+
* @default "idle"
|
|
31
|
+
*/
|
|
32
|
+
readonly status?: CommandStatus;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Renders a shell command with its output and a status header. Designed for
|
|
36
|
+
* coding-agent UIs that stream terminal operations.
|
|
37
|
+
*/
|
|
38
|
+
export default function CommandBlock({ command, cwd, durationMs, exitCode, maxOutputRows, output, status }: Props): ReactElement;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement, ReactNode } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type CommandEntry = {
|
|
5
|
+
/**
|
|
6
|
+
* Optional description rendered under the label.
|
|
7
|
+
*/
|
|
8
|
+
readonly description?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Optional hotkey rendered on the right.
|
|
11
|
+
*/
|
|
12
|
+
readonly hotkey?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Optional icon rendered before the label.
|
|
15
|
+
*/
|
|
16
|
+
readonly icon?: ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* Stable identifier returned by `onSelect`.
|
|
19
|
+
*/
|
|
20
|
+
readonly id: string;
|
|
21
|
+
/**
|
|
22
|
+
* Optional keywords to boost matching (not displayed).
|
|
23
|
+
*/
|
|
24
|
+
readonly keywords?: ReadonlyArray<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Label shown in the list (and used as the primary match target).
|
|
27
|
+
*/
|
|
28
|
+
readonly label: string;
|
|
29
|
+
};
|
|
30
|
+
export type Props = {
|
|
31
|
+
/**
|
|
32
|
+
* Accent color for the border and focused row.
|
|
33
|
+
* @default "cyan"
|
|
34
|
+
*/
|
|
35
|
+
readonly accentColor?: LiteralUnion<AnsiColors, string>;
|
|
36
|
+
/**
|
|
37
|
+
* Auto-focus the palette on mount.
|
|
38
|
+
*/
|
|
39
|
+
readonly autoFocus?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Available commands to search.
|
|
42
|
+
*/
|
|
43
|
+
readonly commands: ReadonlyArray<CommandEntry>;
|
|
44
|
+
/**
|
|
45
|
+
* Empty-state text when nothing matches.
|
|
46
|
+
* @default "No results"
|
|
47
|
+
*/
|
|
48
|
+
readonly emptyText?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Max rows rendered in the list.
|
|
51
|
+
* @default 8
|
|
52
|
+
*/
|
|
53
|
+
readonly limit?: number;
|
|
54
|
+
/**
|
|
55
|
+
* Called when the user presses Escape.
|
|
56
|
+
*/
|
|
57
|
+
readonly onCancel?: () => void;
|
|
58
|
+
/**
|
|
59
|
+
* Called when the user picks a command with Enter.
|
|
60
|
+
*/
|
|
61
|
+
readonly onSelect: (id: string, query: string) => void;
|
|
62
|
+
/**
|
|
63
|
+
* Placeholder inside the search field.
|
|
64
|
+
* @default "Type a command or search..."
|
|
65
|
+
*/
|
|
66
|
+
readonly placeholder?: string;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Ctrl-P style fuzzy command finder. Features a search input, ranked results,
|
|
70
|
+
* keyboard navigation, and Esc to cancel.
|
|
71
|
+
*/
|
|
72
|
+
export default function CommandPalette({ accentColor, autoFocus, commands, emptyText, limit, onCancel, onSelect, placeholder, }: Props): ReactElement;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from "react";
|
|
2
|
+
export type ConfirmTone = "danger" | "info" | "warning";
|
|
3
|
+
export type Props = {
|
|
4
|
+
/**
|
|
5
|
+
* Auto-focus the dialog on mount. Set `false` if a parent already owns
|
|
6
|
+
* focus and routes input here.
|
|
7
|
+
* @default true
|
|
8
|
+
*/
|
|
9
|
+
readonly autoFocus?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Label for the cancel button.
|
|
12
|
+
* @default "Cancel"
|
|
13
|
+
*/
|
|
14
|
+
readonly cancelLabel?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Body content (rendered between title and buttons).
|
|
17
|
+
*/
|
|
18
|
+
readonly children?: ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Label for the confirm button.
|
|
21
|
+
* @default "Confirm"
|
|
22
|
+
*/
|
|
23
|
+
readonly confirmLabel?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Default button when opening the dialog.
|
|
26
|
+
* @default "confirm"
|
|
27
|
+
*/
|
|
28
|
+
readonly defaultFocus?: "cancel" | "confirm";
|
|
29
|
+
/**
|
|
30
|
+
* Disable input.
|
|
31
|
+
*/
|
|
32
|
+
readonly isDisabled?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Fired when the user declines.
|
|
35
|
+
*/
|
|
36
|
+
readonly onCancel: () => void;
|
|
37
|
+
/**
|
|
38
|
+
* Fired when the user confirms.
|
|
39
|
+
*/
|
|
40
|
+
readonly onConfirm: () => void;
|
|
41
|
+
/**
|
|
42
|
+
* Heading rendered at the top of the dialog.
|
|
43
|
+
*/
|
|
44
|
+
readonly title?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Controls the border color.
|
|
47
|
+
* @default "info"
|
|
48
|
+
*/
|
|
49
|
+
readonly tone?: ConfirmTone;
|
|
50
|
+
/**
|
|
51
|
+
* Dialog width.
|
|
52
|
+
*/
|
|
53
|
+
readonly width?: number;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Full-width modal-style confirm/cancel prompt. Unlike `ConfirmInput`, this
|
|
57
|
+
* renders a visible two-button UI: ← / → to toggle focus, Enter to activate,
|
|
58
|
+
* y/n as shortcuts, Esc to cancel.
|
|
59
|
+
* @param props See {@link Props}.
|
|
60
|
+
* @returns A bordered `ReactElement` with optional title, body, and two
|
|
61
|
+
* buttons (cancel / confirm).
|
|
62
|
+
*/
|
|
63
|
+
export default function ConfirmDialog({ autoFocus, cancelLabel, children, confirmLabel, defaultFocus, isDisabled, onCancel, onConfirm, title, tone, width, }: Props): ReactElement;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement, ReactNode } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type ContentSwitcherOption = {
|
|
5
|
+
readonly content: ReactNode;
|
|
6
|
+
readonly icon?: ReactNode;
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly label: string;
|
|
9
|
+
};
|
|
10
|
+
export type Props = {
|
|
11
|
+
/**
|
|
12
|
+
* Accent color for the selected segment.
|
|
13
|
+
* @default "blue"
|
|
14
|
+
*/
|
|
15
|
+
readonly accentColor?: LiteralUnion<AnsiColors, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Auto-focus the switcher on mount.
|
|
18
|
+
*/
|
|
19
|
+
readonly autoFocus?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Initial selected id (uncontrolled).
|
|
22
|
+
*/
|
|
23
|
+
readonly defaultValue?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Disable input.
|
|
26
|
+
*/
|
|
27
|
+
readonly isDisabled?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Called when the selection changes.
|
|
30
|
+
*/
|
|
31
|
+
readonly onChange?: (id: string) => void;
|
|
32
|
+
/**
|
|
33
|
+
* Segments to toggle between.
|
|
34
|
+
*/
|
|
35
|
+
readonly options: ReadonlyArray<ContentSwitcherOption>;
|
|
36
|
+
/**
|
|
37
|
+
* Controlled selected id.
|
|
38
|
+
*/
|
|
39
|
+
readonly value?: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Segmented control that flips between mutually exclusive content. More
|
|
43
|
+
* compact than `Tabs`: the selected segment is highlighted as a pill, and
|
|
44
|
+
* only the active segment's content is rendered.
|
|
45
|
+
* @param props See {@link Props}.
|
|
46
|
+
* @returns A `ReactElement` with a segmented header row and the active
|
|
47
|
+
* panel's content beneath it.
|
|
48
|
+
*/
|
|
49
|
+
export default function ContentSwitcher({ accentColor, autoFocus, defaultValue, isDisabled, onChange, options, value, }: Props): ReactElement;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type Props = {
|
|
5
|
+
/**
|
|
6
|
+
* Accent color used by the inner calendar when open.
|
|
7
|
+
* @default "blue"
|
|
8
|
+
*/
|
|
9
|
+
readonly accentColor?: LiteralUnion<AnsiColors, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Auto-focus the picker on mount.
|
|
12
|
+
*/
|
|
13
|
+
readonly autoFocus?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Initial selected date when uncontrolled.
|
|
16
|
+
*/
|
|
17
|
+
readonly defaultValue?: Date;
|
|
18
|
+
/**
|
|
19
|
+
* Override the way the selected date is rendered in the input row.
|
|
20
|
+
*/
|
|
21
|
+
readonly formatValue?: (date: Date) => string;
|
|
22
|
+
/**
|
|
23
|
+
* Disable the picker.
|
|
24
|
+
*/
|
|
25
|
+
readonly isDisabled?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Upper bound for selectable dates.
|
|
28
|
+
*/
|
|
29
|
+
readonly maxDate?: Date;
|
|
30
|
+
/**
|
|
31
|
+
* Lower bound for selectable dates.
|
|
32
|
+
*/
|
|
33
|
+
readonly minDate?: Date;
|
|
34
|
+
/**
|
|
35
|
+
* Fired when the user commits a date with Enter.
|
|
36
|
+
*/
|
|
37
|
+
readonly onChange?: (date: Date) => void;
|
|
38
|
+
/**
|
|
39
|
+
* Placeholder rendered when no date is selected.
|
|
40
|
+
* @default "Pick a date"
|
|
41
|
+
*/
|
|
42
|
+
readonly placeholder?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Controlled selected date.
|
|
45
|
+
*/
|
|
46
|
+
readonly value?: Date;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Compact date input. Shows the currently-selected date; Enter / Space opens
|
|
50
|
+
* the inline `Calendar` for navigation. Enter inside the calendar commits the
|
|
51
|
+
* date and closes the picker.
|
|
52
|
+
*/
|
|
53
|
+
export default function DatePicker({ accentColor, autoFocus, defaultValue, formatValue, isDisabled, maxDate, minDate, onChange, placeholder, value, }: Props): ReactElement;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement, ReactNode } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type DefinitionItem = {
|
|
5
|
+
readonly description: ReactNode;
|
|
6
|
+
readonly key?: string;
|
|
7
|
+
readonly term: ReactNode;
|
|
8
|
+
};
|
|
9
|
+
export type Props = {
|
|
10
|
+
/**
|
|
11
|
+
* Spacing between term and description columns.
|
|
12
|
+
* @default 2
|
|
13
|
+
*/
|
|
14
|
+
readonly columnGap?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Entries to render.
|
|
17
|
+
*/
|
|
18
|
+
readonly items: ReadonlyArray<DefinitionItem>;
|
|
19
|
+
/**
|
|
20
|
+
* Inline items display on the same row; stacked items display with the term above the description.
|
|
21
|
+
* @default "inline"
|
|
22
|
+
*/
|
|
23
|
+
readonly layout?: "inline" | "stacked";
|
|
24
|
+
/**
|
|
25
|
+
* Color applied to the term.
|
|
26
|
+
* @default "cyan"
|
|
27
|
+
*/
|
|
28
|
+
readonly termColor?: LiteralUnion<AnsiColors, string>;
|
|
29
|
+
/**
|
|
30
|
+
* Minimum width used to align inline terms.
|
|
31
|
+
*/
|
|
32
|
+
readonly termWidth?: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Key/value style definition list. Equivalent to the HTML `<dl>` element.
|
|
36
|
+
*/
|
|
37
|
+
export default function DefinitionList({ columnGap, items, layout, termColor, termWidth }: Props): ReactElement;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { AnsiColors } from "@visulima/colorize";
|
|
2
|
+
import type { ReactElement } from "react";
|
|
3
|
+
import type { LiteralUnion } from "type-fest";
|
|
4
|
+
export type Props = {
|
|
5
|
+
/**
|
|
6
|
+
* Custom character to use instead of the default line character.
|
|
7
|
+
*/
|
|
8
|
+
readonly character?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Color of the divider line.
|
|
11
|
+
*/
|
|
12
|
+
readonly color?: LiteralUnion<AnsiColors, string>;
|
|
13
|
+
/**
|
|
14
|
+
* Render the divider with dim color.
|
|
15
|
+
*/
|
|
16
|
+
readonly dimColor?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Optional label rendered in the middle of a horizontal divider.
|
|
19
|
+
*/
|
|
20
|
+
readonly label?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Padding around the label.
|
|
23
|
+
* @default 1
|
|
24
|
+
*/
|
|
25
|
+
readonly labelPadding?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Total length of the divider. When omitted, horizontal dividers stretch to
|
|
28
|
+
* fill the available space and vertical dividers default to one row.
|
|
29
|
+
*/
|
|
30
|
+
readonly length?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Orientation of the divider.
|
|
33
|
+
* @default "horizontal"
|
|
34
|
+
*/
|
|
35
|
+
readonly orientation?: "horizontal" | "vertical";
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Horizontal or vertical divider line, optionally with a centered label.
|
|
39
|
+
*/
|
|
40
|
+
export default function Divider({ character, color, dimColor, label, labelPadding, length, orientation }: Props): ReactElement;
|