@stackone/malachite 2.15.0 → 2.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/COMPONENTS.md +19 -17
- package/dist/{CodeBlockHighlighter-DES3PGjN.js → CodeBlockHighlighter-FRBmWthe.js} +673 -668
- package/dist/{CodeBlockHighlighter-DES3PGjN.js.map → CodeBlockHighlighter-FRBmWthe.js.map} +1 -1
- package/dist/{index-nNYi9ulL.js → index-DB8AAfU8.js} +6342 -4994
- package/dist/index-DB8AAfU8.js.map +1 -0
- package/dist/index.d.ts +473 -3
- package/dist/index.js +91 -89
- package/package.json +1 -1
- package/dist/index-nNYi9ulL.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -305,7 +305,13 @@ export declare type ButtonRadius = 'md' | 'lg' | 'xl';
|
|
|
305
305
|
|
|
306
306
|
export declare type ButtonSize = 'xsmall' | 'small' | 'medium' | 'large';
|
|
307
307
|
|
|
308
|
-
export declare type ButtonVariant = 'filled' | 'outline'
|
|
308
|
+
export declare type ButtonVariant = 'filled' | 'outline'
|
|
309
|
+
/**
|
|
310
|
+
* `outline`'s geometry on a ground of its own. For a button sitting on a tinted or
|
|
311
|
+
* patterned surface, where `outline`'s transparent background lets that surface through
|
|
312
|
+
* and the control stops reading as a button.
|
|
313
|
+
*/
|
|
314
|
+
| 'surface' | 'destructive' | 'success' | 'warning' | 'error' | 'ghost' | 'no-style';
|
|
309
315
|
|
|
310
316
|
export declare const Card: default_2.FC<CardProps>;
|
|
311
317
|
|
|
@@ -383,6 +389,362 @@ export declare interface CardStripProps {
|
|
|
383
389
|
/** Palette for the strip's rule. Pass the tone of whatever card is selected. */
|
|
384
390
|
export declare type CardStripTone = 'profile' | 'library' | 'editing';
|
|
385
391
|
|
|
392
|
+
export declare type ChangeKind = 'changed' | 'added' | 'removed';
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* Reviewing changes a machine made: one note per changed thing, a card for what it removed
|
|
396
|
+
* outright, a bar counting what is still outstanding, and a chip pointing at any of it from
|
|
397
|
+
* elsewhere on the page.
|
|
398
|
+
*/
|
|
399
|
+
export declare const ChangeReview: {
|
|
400
|
+
Item: FC<ChangeReviewItemProps>;
|
|
401
|
+
Summary: FC<ChangeReviewSummaryProps>;
|
|
402
|
+
Removed: FC<ChangeReviewRemovedProps>;
|
|
403
|
+
Jump: FC<ChangeReviewJumpProps>;
|
|
404
|
+
};
|
|
405
|
+
|
|
406
|
+
export declare interface ChangeReviewItemProps {
|
|
407
|
+
/**
|
|
408
|
+
* What changed — a field name, or the name of a group of them. Omit it when the field this
|
|
409
|
+
* item annotates already carries its own visible heading elsewhere on the page (so the name
|
|
410
|
+
* doesn't render twice) — pass `fieldName` instead, so the badge and actions still know what
|
|
411
|
+
* they belong to.
|
|
412
|
+
*/
|
|
413
|
+
label?: string;
|
|
414
|
+
/**
|
|
415
|
+
* Names the field the badge and actions act on, for assistive tech. Defaults to `label`, so
|
|
416
|
+
* passing only `label` keeps working as before. Set it explicitly when `label` is omitted —
|
|
417
|
+
* otherwise "Accept"/"Revert" would have nothing telling a screen reader which field they act
|
|
418
|
+
* on.
|
|
419
|
+
*/
|
|
420
|
+
fieldName?: string;
|
|
421
|
+
/** How it read before. A node, so a caller can show chips or code rather than a string. */
|
|
422
|
+
before?: default_2.ReactNode;
|
|
423
|
+
/** How it reads now. Usually omitted: the field itself is showing it. */
|
|
424
|
+
after?: default_2.ReactNode;
|
|
425
|
+
kind?: ChangeKind;
|
|
426
|
+
/** What made the change. Names the assistant by default. */
|
|
427
|
+
origin?: string;
|
|
428
|
+
/**
|
|
429
|
+
* The field the change is annotating. When given, the tag/label/actions form a header band
|
|
430
|
+
* above it and the before/after line moves below it, so "Was …" reads next to the value it
|
|
431
|
+
* describes instead of stacked with the header. Omit it for the standalone card.
|
|
432
|
+
*/
|
|
433
|
+
children?: default_2.ReactNode;
|
|
434
|
+
onApprove: () => void;
|
|
435
|
+
onDeny: () => void;
|
|
436
|
+
/**
|
|
437
|
+
* Fires while the revert control is hovered or focused, and again when it stops being
|
|
438
|
+
* either. A callback rather than internal state because the thing being previewed — the
|
|
439
|
+
* field this change came from — lives elsewhere on the page, outside what `Item` renders;
|
|
440
|
+
* only the caller can swap what that field shows.
|
|
441
|
+
*/
|
|
442
|
+
onPreviewRevert?: (previewing: boolean) => void;
|
|
443
|
+
disabled?: boolean;
|
|
444
|
+
className?: string;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
export declare interface ChangeReviewJumpProps {
|
|
448
|
+
/** What the chip points at, e.g. a field or capability name. */
|
|
449
|
+
label: string;
|
|
450
|
+
/** Jumps the page to what changed. Without it the chip only names the change. */
|
|
451
|
+
onClick?: () => void;
|
|
452
|
+
disabled?: boolean;
|
|
453
|
+
className?: string;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
export declare interface ChangeReviewRemovedDetail {
|
|
457
|
+
label: string;
|
|
458
|
+
/** A node, so a caller can show a chip or code rather than a string. */
|
|
459
|
+
value: default_2.ReactNode;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
export declare interface ChangeReviewRemovedProps {
|
|
463
|
+
/** The noun for what was removed. Defaults to a capability, but the component isn't
|
|
464
|
+
* policy-specific — a caller reviewing something else names it. */
|
|
465
|
+
title?: string;
|
|
466
|
+
/** Field/value pairs describing the removed thing, so the admin can see what they would
|
|
467
|
+
* lose before deciding. */
|
|
468
|
+
details: ChangeReviewRemovedDetail[];
|
|
469
|
+
onRestore: () => void;
|
|
470
|
+
onDiscard: () => void;
|
|
471
|
+
/** What made the removal. Names the assistant by default. */
|
|
472
|
+
origin?: string;
|
|
473
|
+
disabled?: boolean;
|
|
474
|
+
className?: string;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
export declare interface ChangeReviewSummaryProps {
|
|
478
|
+
/** How many changes are still undecided. */
|
|
479
|
+
count: number;
|
|
480
|
+
/** What made them. Names the assistant by default. */
|
|
481
|
+
origin?: string;
|
|
482
|
+
onApproveAll: () => void;
|
|
483
|
+
onDenyAll: () => void;
|
|
484
|
+
disabled?: boolean;
|
|
485
|
+
/**
|
|
486
|
+
* What to say once nothing is outstanding. Omit and the bar renders nothing, which is what
|
|
487
|
+
* a caller wants when the space should collapse rather than reassure.
|
|
488
|
+
*/
|
|
489
|
+
settledMessage?: string;
|
|
490
|
+
className?: string;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
export declare const Chat: ChatComponent;
|
|
494
|
+
|
|
495
|
+
declare interface ChatComponent extends default_2.FC<ChatProps> {
|
|
496
|
+
Header: default_2.FC<ChatHeaderProps>;
|
|
497
|
+
Thread: default_2.FC<ChatThreadProps>;
|
|
498
|
+
Message: default_2.FC<ChatMessageProps>;
|
|
499
|
+
ToolCall: default_2.FC<ChatToolCallProps>;
|
|
500
|
+
Thinking: default_2.FC<ChatThinkingProps>;
|
|
501
|
+
Composer: default_2.FC<ChatComposerProps>;
|
|
502
|
+
ComposerChip: default_2.FC<ChatComposerChipProps>;
|
|
503
|
+
Context: default_2.FC<ChatContextProps>;
|
|
504
|
+
ContextMeter: default_2.FC<ChatContextMeterProps>;
|
|
505
|
+
ModelPicker: default_2.FC<ChatModelPickerProps>;
|
|
506
|
+
Suggestion: default_2.FC<ChatSuggestionProps>;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
export declare interface ChatComposerChipProps {
|
|
510
|
+
label: string;
|
|
511
|
+
icon?: default_2.ReactNode;
|
|
512
|
+
/** Sits after the label — a caret on a chip that opens a menu. */
|
|
513
|
+
trailingIcon?: default_2.ReactNode;
|
|
514
|
+
/** Makes the chip a control. Without it, the chip reports rather than acts. */
|
|
515
|
+
onClick?: () => void;
|
|
516
|
+
disabled?: boolean;
|
|
517
|
+
className?: string;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
export declare interface ChatComposerProps {
|
|
521
|
+
value: string;
|
|
522
|
+
onChange: (value: string) => void;
|
|
523
|
+
onSend: () => void;
|
|
524
|
+
/** Offered in place of send while `busy`. Without it, send is simply disabled. */
|
|
525
|
+
onStop?: () => void;
|
|
526
|
+
/** A reply is streaming. */
|
|
527
|
+
busy?: boolean;
|
|
528
|
+
disabled?: boolean;
|
|
529
|
+
placeholder?: string;
|
|
530
|
+
maxLength?: number;
|
|
531
|
+
rows?: number;
|
|
532
|
+
/**
|
|
533
|
+
* How many lines the field grows to before it scrolls internally instead of growing
|
|
534
|
+
* further. Defaults well above `rows` so the field grows by default rather than staying
|
|
535
|
+
* fixed at its starting height — a consumer that genuinely wants a static box passes
|
|
536
|
+
* `maxRows` equal to `rows`.
|
|
537
|
+
*/
|
|
538
|
+
maxRows?: number;
|
|
539
|
+
/**
|
|
540
|
+
* `'in-field'` (the default, so no existing consumer moves) nests a round send button
|
|
541
|
+
* inside the field, trailing the text. `'beside'` matches the policy design instead: a
|
|
542
|
+
* plain field with a labelled `Send` button to its right. Either way the field stays a
|
|
543
|
+
* `TextArea` — the mock draws a single-line input, but a composer that cannot take a
|
|
544
|
+
* second line is a downgrade, and `TextArea` already owns the Enter-to-send convention.
|
|
545
|
+
*/
|
|
546
|
+
sendPlacement?: 'in-field' | 'beside';
|
|
547
|
+
/**
|
|
548
|
+
* `'assistant'` marks the field itself as AI-owned chrome: its focus border recolours to
|
|
549
|
+
* the assistant violet instead of the default accent. Defaults to `'default'` — an AI
|
|
550
|
+
* surface (e.g. the playground) opts in deliberately rather than inheriting it silently.
|
|
551
|
+
*/
|
|
552
|
+
tone?: 'default' | 'assistant';
|
|
553
|
+
/** Controls belonging with the composer — a model picker, a token meter. */
|
|
554
|
+
children?: default_2.ReactNode;
|
|
555
|
+
'aria-label'?: string;
|
|
556
|
+
className?: string;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
export declare interface ChatContextItem {
|
|
560
|
+
id: string;
|
|
561
|
+
label: string;
|
|
562
|
+
/** Shows a remove control on the item. Without it, the item reports rather than can be dropped. */
|
|
563
|
+
onRemove?: () => void;
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
export declare interface ChatContextMeterProps {
|
|
567
|
+
/** Tokens spent. Absent reads as a dash: nothing has been measured yet. */
|
|
568
|
+
used?: number | null;
|
|
569
|
+
/** The model's context window. */
|
|
570
|
+
limit: number;
|
|
571
|
+
/** Tokens served from cache, when the provider reports them. */
|
|
572
|
+
cached?: number | null;
|
|
573
|
+
label?: string;
|
|
574
|
+
className?: string;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
export declare interface ChatContextProps {
|
|
578
|
+
label?: string;
|
|
579
|
+
items: ChatContextItem[];
|
|
580
|
+
/** Renders the "Add context" control. Without it, the row only lists what is already in scope. */
|
|
581
|
+
onAdd?: () => void;
|
|
582
|
+
className?: string;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
export declare type ChatFeedback = 'up' | 'down';
|
|
586
|
+
|
|
587
|
+
export declare interface ChatHeaderProps {
|
|
588
|
+
/** Names the surface, e.g. "Policy chat". */
|
|
589
|
+
title: string;
|
|
590
|
+
/**
|
|
591
|
+
* Marks the surface as AI-owned: the title takes the assistant violet and a sparkle
|
|
592
|
+
* leads it. Defaults to `'default'`, so a chat that is not assistant-authored does not
|
|
593
|
+
* inherit the treatment.
|
|
594
|
+
*/
|
|
595
|
+
tone?: 'default' | 'assistant';
|
|
596
|
+
/** Sits opposite the title — a model name, a token count. */
|
|
597
|
+
trailing?: default_2.ReactNode;
|
|
598
|
+
/** Rows travelling with the header, e.g. `Chat.Context`. Pinned along with it. */
|
|
599
|
+
children?: default_2.ReactNode;
|
|
600
|
+
className?: string;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
export declare interface ChatMessageProps {
|
|
604
|
+
role: ChatRole;
|
|
605
|
+
/**
|
|
606
|
+
* `card` frames the turn with a header and a footer — for a surface where a reply carries
|
|
607
|
+
* its own status and cost. `plain` is the bare turn. `bubble` wraps the turn in a coloured,
|
|
608
|
+
* asymmetrically-rounded bubble instead — no header, no footer, just the shape.
|
|
609
|
+
*/
|
|
610
|
+
variant?: ChatMessageVariant;
|
|
611
|
+
/** Markdown. Rendered through `Typography.MarkdownBlock`, so a reply may carry formatting. */
|
|
612
|
+
content?: string;
|
|
613
|
+
/** Anything belonging with the message — tool calls, reasoning, a busy indicator. */
|
|
614
|
+
children?: default_2.ReactNode;
|
|
615
|
+
/** Names a user turn and its avatar; labels an assistant turn's header. */
|
|
616
|
+
name?: string;
|
|
617
|
+
avatarSrc?: string;
|
|
618
|
+
/** Shown in a `card` header. Omitted means the turn reports no state. */
|
|
619
|
+
status?: ChatMessageStatus;
|
|
620
|
+
/**
|
|
621
|
+
* The reply has been asked for but nothing has arrived. Renders the same placeholder
|
|
622
|
+
* `Chat.Thinking` does, in the body's place, so the turn does not jump when text lands.
|
|
623
|
+
*/
|
|
624
|
+
loading?: boolean;
|
|
625
|
+
/**
|
|
626
|
+
* Offers a copy control. The handler decides what to copy: a turn may hold tool calls and
|
|
627
|
+
* reasoning this component never sees, so it cannot honestly claim to know the text.
|
|
628
|
+
*/
|
|
629
|
+
onCopy?: () => void;
|
|
630
|
+
/** Offers thumbs up and down. */
|
|
631
|
+
onFeedback?: (feedback: ChatFeedback) => void;
|
|
632
|
+
usage?: ChatMessageUsage;
|
|
633
|
+
className?: string;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
export declare type ChatMessageStatus = 'streaming' | 'completed' | 'error';
|
|
637
|
+
|
|
638
|
+
export declare interface ChatMessageUsage {
|
|
639
|
+
/** The model as a reader would name it, e.g. "Claude Haiku 4.5". */
|
|
640
|
+
model: string;
|
|
641
|
+
inputTokens?: number;
|
|
642
|
+
outputTokens?: number;
|
|
643
|
+
totalTokens?: number;
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* Three distinct treatments, not two plus a repaint of one: `plain` is the bare turn, `card`
|
|
648
|
+
* frames a reply with its own status, copy/rating actions and a token line, and `bubble` is a
|
|
649
|
+
* message-app chat style with no chrome beyond the bubble itself. All three appear in the
|
|
650
|
+
* design-sync previews — keep them that way rather than folding `bubble` back into `card`.
|
|
651
|
+
*/
|
|
652
|
+
export declare type ChatMessageVariant = 'plain' | 'card' | 'bubble';
|
|
653
|
+
|
|
654
|
+
export declare interface ChatModelOption {
|
|
655
|
+
value: string;
|
|
656
|
+
label: string;
|
|
657
|
+
/** The provider's mark. A URL, since providers ship logos rather than icon fonts. */
|
|
658
|
+
iconSrc?: string;
|
|
659
|
+
/** A second choice the model offers, e.g. how long it may think. */
|
|
660
|
+
options?: ChatModelSubOption[];
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
export declare interface ChatModelPickerProps {
|
|
664
|
+
models: ChatModelOption[];
|
|
665
|
+
value: string;
|
|
666
|
+
/** The chosen sub-option, when the current model offers them. */
|
|
667
|
+
optionValue?: string;
|
|
668
|
+
/** Called with the model, and its sub-option when it has them. */
|
|
669
|
+
onChange: (model: string, option?: string) => void;
|
|
670
|
+
disabled?: boolean;
|
|
671
|
+
/**
|
|
672
|
+
* Opens upward. On by default: this sits under a composer at the bottom of a column, so
|
|
673
|
+
* downward is almost always off-screen.
|
|
674
|
+
*/
|
|
675
|
+
openUp?: boolean;
|
|
676
|
+
'aria-label'?: string;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
export declare interface ChatModelSubOption {
|
|
680
|
+
value: string;
|
|
681
|
+
label: string;
|
|
682
|
+
description?: string;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
export declare interface ChatProps {
|
|
686
|
+
children?: default_2.ReactNode;
|
|
687
|
+
className?: string;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
export declare type ChatRole = 'user' | 'assistant';
|
|
691
|
+
|
|
692
|
+
export declare interface ChatSuggestionProps {
|
|
693
|
+
text: string;
|
|
694
|
+
/** Fills the composer — never sends. A suggestion is a starting point the reader edits,
|
|
695
|
+
* not a message the component decides to submit on their behalf. */
|
|
696
|
+
onPick: (text: string) => void;
|
|
697
|
+
disabled?: boolean;
|
|
698
|
+
className?: string;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
export declare interface ChatThinkingProps {
|
|
702
|
+
/** Names what is happening, when that is worth saying. Omitted, the bars speak alone. */
|
|
703
|
+
label?: string;
|
|
704
|
+
className?: string;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
export declare interface ChatThreadProps {
|
|
708
|
+
children?: default_2.ReactNode;
|
|
709
|
+
/** Names the transcript for assistive tech, e.g. "Policy assistant conversation". */
|
|
710
|
+
'aria-label'?: string;
|
|
711
|
+
/** Shown, centred, while the transcript holds nothing. Ignored when `emptyContent` is
|
|
712
|
+
* supplied. */
|
|
713
|
+
emptyTitle?: string;
|
|
714
|
+
/** The lines under the title. A node, because guidance is rarely one sentence. Ignored
|
|
715
|
+
* when `emptyContent` is supplied. */
|
|
716
|
+
emptyDescription?: default_2.ReactNode;
|
|
717
|
+
/** Ignored when `emptyContent` is supplied. */
|
|
718
|
+
emptyIcon?: default_2.ReactNode;
|
|
719
|
+
/**
|
|
720
|
+
* Replaces the `emptyTitle`/`emptyDescription`/`emptyIcon` composition. Renders
|
|
721
|
+
* left-aligned at the bottom of the transcript, directly above the composer — an empty
|
|
722
|
+
* conversation should read as ready to start, not as a decorated void.
|
|
723
|
+
*/
|
|
724
|
+
emptyContent?: default_2.ReactNode;
|
|
725
|
+
className?: string;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
export declare interface ChatToolCallProps {
|
|
729
|
+
/** The tool the assistant called, e.g. `update_policy_draft`. */
|
|
730
|
+
name: string;
|
|
731
|
+
status?: ChatToolCallStatus;
|
|
732
|
+
/**
|
|
733
|
+
* The provider's id for this call. Shown once the card is expanded, not on the collapsed
|
|
734
|
+
* row: it is a long opaque string nobody reads at a glance, and beside the tool name it
|
|
735
|
+
* was taking two lines of the transcript to say nothing a reader wanted.
|
|
736
|
+
*/
|
|
737
|
+
callId?: string;
|
|
738
|
+
/** Arguments the assistant sent. */
|
|
739
|
+
input?: object;
|
|
740
|
+
/** What the call returned. Absent while it is still running. */
|
|
741
|
+
output?: object;
|
|
742
|
+
defaultExpanded?: boolean;
|
|
743
|
+
className?: string;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
export declare type ChatToolCallStatus = 'running' | 'completed' | 'error';
|
|
747
|
+
|
|
386
748
|
export declare const Checkbox: default_2.FC<CheckboxProps>;
|
|
387
749
|
|
|
388
750
|
export declare interface CheckboxProps {
|
|
@@ -454,6 +816,24 @@ declare interface CodeBlockProps {
|
|
|
454
816
|
language?: 'yaml' | 'cedar';
|
|
455
817
|
/** How much of a `json` tree starts collapsed: `true` all of it, a number below that depth. */
|
|
456
818
|
collapsed?: boolean | number;
|
|
819
|
+
/**
|
|
820
|
+
* Renders the change between two texts rather than one text, and takes precedence over
|
|
821
|
+
* `code` and `json`. Only the changed lines are shown, with `context` unchanged ones either
|
|
822
|
+
* side, so a small edit to a long document reads as a few hunks instead of the whole thing.
|
|
823
|
+
*/
|
|
824
|
+
diff?: {
|
|
825
|
+
before: string;
|
|
826
|
+
after: string;
|
|
827
|
+
/** Unchanged lines kept either side of each change. Three by convention. */
|
|
828
|
+
context?: number;
|
|
829
|
+
/**
|
|
830
|
+
* Swaps the `+`/`-` gutter and tinted rows for the palette a mock specified for
|
|
831
|
+
* AI-authored changes: star, minus-sign and middle-dot markers, and a struck-through
|
|
832
|
+
* removal. Omit to keep the neutral markers; there is no default consumer for the
|
|
833
|
+
* assistant look yet.
|
|
834
|
+
*/
|
|
835
|
+
origin?: 'assistant';
|
|
836
|
+
};
|
|
457
837
|
}
|
|
458
838
|
|
|
459
839
|
export declare interface CodeTextProps {
|
|
@@ -571,6 +951,7 @@ export declare const CustomIcons: {
|
|
|
571
951
|
ApiKeysIcon: FC<IconProps>;
|
|
572
952
|
ArchiveIcon: FC<IconProps>;
|
|
573
953
|
ArrowLeftIcon: FC<IconProps>;
|
|
954
|
+
ArrowUpIcon: FC<IconProps>;
|
|
574
955
|
ArrowUpRightIcon: FC<IconProps>;
|
|
575
956
|
AuthenticationIcon: FC<IconProps>;
|
|
576
957
|
BellIcon: FC<IconProps>;
|
|
@@ -653,10 +1034,13 @@ export declare const CustomIcons: {
|
|
|
653
1034
|
SliderIcon: FC<IconProps>;
|
|
654
1035
|
SortIcon: FC<IconProps>;
|
|
655
1036
|
SourceIcon: FC<IconProps>;
|
|
1037
|
+
SparkleIcon: FC<IconProps>;
|
|
656
1038
|
StarIcon: FC<IconProps>;
|
|
657
1039
|
StepCurrentIcon: FC<IconProps>;
|
|
658
1040
|
StepUpcomingIcon: FC<IconProps>;
|
|
659
1041
|
SyntheticWebhookIcon: FC<IconProps>;
|
|
1042
|
+
ThumbsDownIcon: FC<IconProps>;
|
|
1043
|
+
ThumbsUpIcon: FC<IconProps>;
|
|
660
1044
|
TrashIcon: FC<IconProps>;
|
|
661
1045
|
TriangleDownIcon: FC<IconProps>;
|
|
662
1046
|
TriangleRightIcon: FC<IconProps>;
|
|
@@ -1157,6 +1541,16 @@ export declare const MalachiteContext: default_2.FC<MalachiteContextProps>;
|
|
|
1157
1541
|
declare interface MalachiteContextProps {
|
|
1158
1542
|
children: default_2.ReactNode;
|
|
1159
1543
|
className?: string;
|
|
1544
|
+
/**
|
|
1545
|
+
* Stretches the shadow host, and every plain div between it and `children`, to 100% of
|
|
1546
|
+
* the height available from this component's own parent. Without it, the host sizes to
|
|
1547
|
+
* its content: a percentage height set further down (inside `children`) has nothing
|
|
1548
|
+
* non-`auto` to resolve against, and a chain of plain `<div>`s does not propagate a
|
|
1549
|
+
* parent's height to its children on its own. Off by default: every existing consumer
|
|
1550
|
+
* relies on the host hugging its content, and turning this on for all of them would
|
|
1551
|
+
* change how much space they take up.
|
|
1552
|
+
*/
|
|
1553
|
+
fillHeight?: boolean;
|
|
1160
1554
|
}
|
|
1161
1555
|
|
|
1162
1556
|
export declare interface MalachiteTheme {
|
|
@@ -1469,6 +1863,12 @@ export declare interface MalachiteTheme {
|
|
|
1469
1863
|
border: string;
|
|
1470
1864
|
shadow: string;
|
|
1471
1865
|
};
|
|
1866
|
+
assistant: {
|
|
1867
|
+
background: string;
|
|
1868
|
+
foreground: string;
|
|
1869
|
+
border: string;
|
|
1870
|
+
shadow: string;
|
|
1871
|
+
};
|
|
1472
1872
|
};
|
|
1473
1873
|
numberTag: {
|
|
1474
1874
|
background: string;
|
|
@@ -1557,6 +1957,33 @@ export declare interface MalachiteTheme {
|
|
|
1557
1957
|
string: string;
|
|
1558
1958
|
number: string;
|
|
1559
1959
|
type: string;
|
|
1960
|
+
diffAddedBackground: string;
|
|
1961
|
+
diffRemovedBackground: string;
|
|
1962
|
+
diffAssistantBackground: string;
|
|
1963
|
+
diffAssistantForeground: string;
|
|
1964
|
+
diffAssistantRemovedBackground: string;
|
|
1965
|
+
diffRemovedForeground: string;
|
|
1966
|
+
diffContextForeground: string;
|
|
1967
|
+
diffContextText: string;
|
|
1968
|
+
};
|
|
1969
|
+
/** The conversation's own surfaces — message bubbles, not chrome around them. */
|
|
1970
|
+
chat: {
|
|
1971
|
+
userBubbleBackground: string;
|
|
1972
|
+
userBubbleBorder: string;
|
|
1973
|
+
assistantBubbleBackground: string;
|
|
1974
|
+
assistantBubbleBorder: string;
|
|
1975
|
+
assistantBubbleForeground: string;
|
|
1976
|
+
};
|
|
1977
|
+
/** Chrome marking machine-authored content outside the conversation itself
|
|
1978
|
+
* (badges, diff callouts) — distinct from `chat`, which is the conversation's
|
|
1979
|
+
* own bubbles. */
|
|
1980
|
+
assistant: {
|
|
1981
|
+
foreground: string;
|
|
1982
|
+
surfaceBackground: string;
|
|
1983
|
+
surfaceBorder: string;
|
|
1984
|
+
/** Body text sitting on `surfaceBackground` — darker/muted so a run of it reads,
|
|
1985
|
+
* unlike `foreground`, which is the vivid accent. */
|
|
1986
|
+
surfaceForeground: string;
|
|
1560
1987
|
};
|
|
1561
1988
|
};
|
|
1562
1989
|
}
|
|
@@ -1852,6 +2279,8 @@ export declare interface PartialMalachiteTheme {
|
|
|
1852
2279
|
rightSideText?: Partial<MalachiteTheme['colors']['text']['rightSideText']>;
|
|
1853
2280
|
};
|
|
1854
2281
|
codeBlock?: Partial<MalachiteTheme['colors']['codeBlock']>;
|
|
2282
|
+
chat?: Partial<MalachiteTheme['colors']['chat']>;
|
|
2283
|
+
assistant?: Partial<MalachiteTheme['colors']['assistant']>;
|
|
1855
2284
|
};
|
|
1856
2285
|
}
|
|
1857
2286
|
|
|
@@ -1871,10 +2300,26 @@ declare interface PillButtonProps {
|
|
|
1871
2300
|
interactive?: boolean;
|
|
1872
2301
|
size?: PillButtonSize;
|
|
1873
2302
|
variant?: PillButtonVariant;
|
|
2303
|
+
shape?: PillButtonShape;
|
|
2304
|
+
tone?: PillButtonTone;
|
|
2305
|
+
/** Sits after the label — a caret on a pill that opens a menu. */
|
|
2306
|
+
trailingIcon?: default_2.ReactNode;
|
|
1874
2307
|
onClick?: () => void;
|
|
1875
2308
|
}
|
|
1876
2309
|
|
|
1877
|
-
|
|
2310
|
+
/**
|
|
2311
|
+
* `tab` squares the top corners so the pill reads as attached to whatever sits above it —
|
|
2312
|
+
* a row of controls hanging under an input, rather than free-floating pills.
|
|
2313
|
+
*/
|
|
2314
|
+
declare type PillButtonShape = 'pill' | 'tab';
|
|
2315
|
+
|
|
2316
|
+
declare type PillButtonSize = 'xsmall' | 'small' | 'medium';
|
|
2317
|
+
|
|
2318
|
+
/**
|
|
2319
|
+
* `assistant` is the chrome for AI-authored chips (e.g. `ChangeReview.Jump`): a fixed
|
|
2320
|
+
* violet-on-white look with its own border, independent of `variant`/`selected`.
|
|
2321
|
+
*/
|
|
2322
|
+
declare type PillButtonTone = 'default' | 'assistant';
|
|
1878
2323
|
|
|
1879
2324
|
declare type PillButtonVariant = 'default' | 'inverted';
|
|
1880
2325
|
|
|
@@ -2701,7 +3146,9 @@ export declare interface TagProps {
|
|
|
2701
3146
|
className?: string;
|
|
2702
3147
|
}
|
|
2703
3148
|
|
|
2704
|
-
export declare type TagType = 'primary' | 'secondary' | 'default' | 'error' | 'warning' | 'success' | 'emphasis' | 'info'
|
|
3149
|
+
export declare type TagType = 'primary' | 'secondary' | 'default' | 'error' | 'warning' | 'success' | 'emphasis' | 'info'
|
|
3150
|
+
/** Marks content a machine produced rather than a person — provenance, not severity. */
|
|
3151
|
+
| 'assistant';
|
|
2705
3152
|
|
|
2706
3153
|
declare interface TerminalTextProps {
|
|
2707
3154
|
bold?: boolean;
|
|
@@ -2739,8 +3186,23 @@ declare interface TextAreaProps {
|
|
|
2739
3186
|
onChange?: (value: string) => void;
|
|
2740
3187
|
value?: string;
|
|
2741
3188
|
onBlur?: () => void;
|
|
3189
|
+
/** Key handling the control cannot own, e.g. Enter-to-submit in a chat composer. */
|
|
3190
|
+
onKeyDown?: (event: default_2.KeyboardEvent<HTMLTextAreaElement>) => void;
|
|
3191
|
+
/**
|
|
3192
|
+
* A control that belongs inside the field, pinned bottom-right — a chat composer's send.
|
|
3193
|
+
* The field reserves room for it, so text cannot run underneath.
|
|
3194
|
+
*/
|
|
3195
|
+
inFieldAction?: default_2.ReactNode;
|
|
3196
|
+
/** See `TextAreaTone`. Defaults to `'default'`, so no existing field changes. */
|
|
3197
|
+
tone?: TextAreaTone;
|
|
2742
3198
|
helperText?: string;
|
|
2743
3199
|
rows?: number;
|
|
3200
|
+
/**
|
|
3201
|
+
* Grows the field from `rows` up to this many lines as content is typed, then scrolls
|
|
3202
|
+
* internally rather than growing further. Omitted keeps the field at a fixed `rows`
|
|
3203
|
+
* height, the pre-existing behaviour.
|
|
3204
|
+
*/
|
|
3205
|
+
maxRows?: number;
|
|
2744
3206
|
maxLength?: number;
|
|
2745
3207
|
resize?: 'none' | 'vertical' | 'horizontal' | 'both';
|
|
2746
3208
|
/**
|
|
@@ -2756,6 +3218,14 @@ declare interface TextAreaProps {
|
|
|
2756
3218
|
|
|
2757
3219
|
declare type TextAreaSize = 'small' | 'medium' | 'large';
|
|
2758
3220
|
|
|
3221
|
+
/**
|
|
3222
|
+
* `assistant` is the chrome for a field sitting in an AI context (e.g. `Chat.Composer`'s
|
|
3223
|
+
* policy-assistant tone): the field's own focus border recolours to the assistant violet
|
|
3224
|
+
* instead of the default accent — same indicator, different colour, not an extra one. Same
|
|
3225
|
+
* naming precedent as `PillButton`'s own `tone`.
|
|
3226
|
+
*/
|
|
3227
|
+
declare type TextAreaTone = 'default' | 'assistant';
|
|
3228
|
+
|
|
2759
3229
|
export declare type TextColor = 'primary' | 'secondary' | 'dimmed' | 'placeholder' | 'emphasis' | 'muted' | 'destructive' | 'success' | 'highlight' | 'warning' | 'error' | 'info' | 'link' | 'inherit';
|
|
2760
3230
|
|
|
2761
3231
|
export declare interface TextProps {
|