@oxy.so/bloom 4.19.0 → 4.20.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/docs/adoption-matrix.mdx +3 -3
- package/docs/ai-chat.mdx +32 -1
- package/docs/composer-panel.mdx +4 -0
- package/lib/commonjs/ai-chat/AiChat.js +2 -1
- package/lib/commonjs/ai-chat/AiChat.js.map +1 -1
- package/lib/commonjs/ai-chat/AiChat.web.js +2 -1
- package/lib/commonjs/ai-chat/AiChat.web.js.map +1 -1
- package/lib/commonjs/ai-chat/AiChatControls.js +60 -4
- package/lib/commonjs/ai-chat/AiChatControls.js.map +1 -1
- package/lib/commonjs/ai-chat/AiChatFeedbackRowBase.js +40 -12
- package/lib/commonjs/ai-chat/AiChatFeedbackRowBase.js.map +1 -1
- package/lib/commonjs/ai-chat/AiChatMessages.js +31 -5
- package/lib/commonjs/ai-chat/AiChatMessages.js.map +1 -1
- package/lib/commonjs/ai-chat/bindAiChat.js +10 -0
- package/lib/commonjs/ai-chat/bindAiChat.js.map +1 -1
- package/lib/commonjs/ai-chat/index.js +1 -1
- package/lib/commonjs/ai-chat/index.js.map +1 -1
- package/lib/commonjs/ai-chat/index.web.js +1 -1
- package/lib/commonjs/ai-chat/index.web.js.map +1 -1
- package/lib/commonjs/ai-chat/shared.js +11 -2
- package/lib/commonjs/ai-chat/shared.js.map +1 -1
- package/lib/commonjs/composer-panel/AttachmentStrip.js +108 -8
- package/lib/commonjs/composer-panel/AttachmentStrip.js.map +1 -1
- package/lib/commonjs/composer-panel/ComposerPanelBase.js +6 -2
- package/lib/commonjs/composer-panel/ComposerPanelBase.js.map +1 -1
- package/lib/commonjs/composer-panel/ComposerPillBase.js +2 -1
- package/lib/commonjs/composer-panel/ComposerPillBase.js.map +1 -1
- package/lib/commonjs/composer-panel/shared.js +2 -0
- package/lib/commonjs/composer-panel/shared.js.map +1 -1
- package/lib/commonjs/composer-panel/use-attachment-queue.js +5 -2
- package/lib/commonjs/composer-panel/use-attachment-queue.js.map +1 -1
- package/lib/commonjs/input-otp/InputOtp.js +13 -3
- package/lib/commonjs/input-otp/InputOtp.js.map +1 -1
- package/lib/module/ai-chat/AiChat.js +1 -0
- package/lib/module/ai-chat/AiChat.js.map +1 -1
- package/lib/module/ai-chat/AiChat.web.js +1 -0
- package/lib/module/ai-chat/AiChat.web.js.map +1 -1
- package/lib/module/ai-chat/AiChatControls.js +58 -4
- package/lib/module/ai-chat/AiChatControls.js.map +1 -1
- package/lib/module/ai-chat/AiChatFeedbackRowBase.js +41 -13
- package/lib/module/ai-chat/AiChatFeedbackRowBase.js.map +1 -1
- package/lib/module/ai-chat/AiChatMessages.js +30 -4
- package/lib/module/ai-chat/AiChatMessages.js.map +1 -1
- package/lib/module/ai-chat/bindAiChat.js +11 -1
- package/lib/module/ai-chat/bindAiChat.js.map +1 -1
- package/lib/module/ai-chat/index.js +2 -2
- package/lib/module/ai-chat/index.js.map +1 -1
- package/lib/module/ai-chat/index.web.js +2 -2
- package/lib/module/ai-chat/index.web.js.map +1 -1
- package/lib/module/ai-chat/shared.js +11 -2
- package/lib/module/ai-chat/shared.js.map +1 -1
- package/lib/module/composer-panel/AttachmentStrip.js +108 -8
- package/lib/module/composer-panel/AttachmentStrip.js.map +1 -1
- package/lib/module/composer-panel/ComposerPanelBase.js +6 -2
- package/lib/module/composer-panel/ComposerPanelBase.js.map +1 -1
- package/lib/module/composer-panel/ComposerPillBase.js +2 -1
- package/lib/module/composer-panel/ComposerPillBase.js.map +1 -1
- package/lib/module/composer-panel/shared.js +2 -0
- package/lib/module/composer-panel/shared.js.map +1 -1
- package/lib/module/composer-panel/use-attachment-queue.js +5 -2
- package/lib/module/composer-panel/use-attachment-queue.js.map +1 -1
- package/lib/module/input-otp/InputOtp.js +13 -3
- package/lib/module/input-otp/InputOtp.js.map +1 -1
- package/lib/typescript/commonjs/ai-chat/AiChat.d.ts +4 -0
- package/lib/typescript/commonjs/ai-chat/AiChat.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/AiChat.web.d.ts +4 -0
- package/lib/typescript/commonjs/ai-chat/AiChat.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/AiChatControls.d.ts +22 -1
- package/lib/typescript/commonjs/ai-chat/AiChatControls.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/AiChatFeedbackRowBase.d.ts +5 -2
- package/lib/typescript/commonjs/ai-chat/AiChatFeedbackRowBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/AiChatMessages.d.ts +1 -1
- package/lib/typescript/commonjs/ai-chat/AiChatMessages.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/bindAiChat.d.ts +5 -1
- package/lib/typescript/commonjs/ai-chat/bindAiChat.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/index.d.ts +3 -3
- package/lib/typescript/commonjs/ai-chat/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/index.web.d.ts +3 -3
- package/lib/typescript/commonjs/ai-chat/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/shared.d.ts +2 -2
- package/lib/typescript/commonjs/ai-chat/shared.d.ts.map +1 -1
- package/lib/typescript/commonjs/ai-chat/types.d.ts +43 -5
- package/lib/typescript/commonjs/ai-chat/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/composer-panel/AttachmentStrip.d.ts +10 -1
- package/lib/typescript/commonjs/composer-panel/AttachmentStrip.d.ts.map +1 -1
- package/lib/typescript/commonjs/composer-panel/ComposerPanelBase.d.ts +1 -1
- package/lib/typescript/commonjs/composer-panel/ComposerPanelBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/composer-panel/shared.d.ts +3 -0
- package/lib/typescript/commonjs/composer-panel/shared.d.ts.map +1 -1
- package/lib/typescript/commonjs/composer-panel/types.d.ts +11 -0
- package/lib/typescript/commonjs/composer-panel/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/composer-panel/use-attachment-queue.d.ts.map +1 -1
- package/lib/typescript/commonjs/input-otp/InputOtp.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/AiChat.d.ts +4 -0
- package/lib/typescript/module/ai-chat/AiChat.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/AiChat.web.d.ts +4 -0
- package/lib/typescript/module/ai-chat/AiChat.web.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/AiChatControls.d.ts +22 -1
- package/lib/typescript/module/ai-chat/AiChatControls.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/AiChatFeedbackRowBase.d.ts +5 -2
- package/lib/typescript/module/ai-chat/AiChatFeedbackRowBase.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/AiChatMessages.d.ts +1 -1
- package/lib/typescript/module/ai-chat/AiChatMessages.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/bindAiChat.d.ts +5 -1
- package/lib/typescript/module/ai-chat/bindAiChat.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/index.d.ts +3 -3
- package/lib/typescript/module/ai-chat/index.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/index.web.d.ts +3 -3
- package/lib/typescript/module/ai-chat/index.web.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/shared.d.ts +2 -2
- package/lib/typescript/module/ai-chat/shared.d.ts.map +1 -1
- package/lib/typescript/module/ai-chat/types.d.ts +43 -5
- package/lib/typescript/module/ai-chat/types.d.ts.map +1 -1
- package/lib/typescript/module/composer-panel/AttachmentStrip.d.ts +10 -1
- package/lib/typescript/module/composer-panel/AttachmentStrip.d.ts.map +1 -1
- package/lib/typescript/module/composer-panel/ComposerPanelBase.d.ts +1 -1
- package/lib/typescript/module/composer-panel/ComposerPanelBase.d.ts.map +1 -1
- package/lib/typescript/module/composer-panel/shared.d.ts +3 -0
- package/lib/typescript/module/composer-panel/shared.d.ts.map +1 -1
- package/lib/typescript/module/composer-panel/types.d.ts +11 -0
- package/lib/typescript/module/composer-panel/types.d.ts.map +1 -1
- package/lib/typescript/module/composer-panel/use-attachment-queue.d.ts.map +1 -1
- package/lib/typescript/module/input-otp/InputOtp.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ai-chat/AiChat.tsx +1 -0
- package/src/ai-chat/AiChat.web.tsx +1 -0
- package/src/ai-chat/AiChatControls.tsx +58 -3
- package/src/ai-chat/AiChatFeedbackRowBase.tsx +45 -17
- package/src/ai-chat/AiChatMessages.tsx +24 -1
- package/src/ai-chat/bindAiChat.tsx +19 -2
- package/src/ai-chat/index.ts +3 -1
- package/src/ai-chat/index.web.ts +3 -1
- package/src/ai-chat/shared.ts +11 -2
- package/src/ai-chat/types.ts +45 -5
- package/src/composer-panel/AttachmentStrip.tsx +98 -6
- package/src/composer-panel/ComposerPanelBase.tsx +4 -0
- package/src/composer-panel/ComposerPillBase.tsx +1 -0
- package/src/composer-panel/shared.ts +5 -0
- package/src/composer-panel/types.ts +11 -0
- package/src/composer-panel/use-attachment-queue.ts +5 -2
- package/src/input-otp/InputOtp.tsx +11 -2
|
@@ -15,14 +15,45 @@ export interface AiChatFeedbackLabels {
|
|
|
15
15
|
/** Default `'Copied!'` — the tooltip after a copy. */
|
|
16
16
|
copied?: string;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* What a copy handler reports. `void` (or `true`) is a copy that happened;
|
|
20
|
+
* `false` is one that did not. A promise is waited for: the confirmation shows
|
|
21
|
+
* once it resolves, and never if it resolves `false` or rejects.
|
|
22
|
+
*/
|
|
23
|
+
export type AiChatCopyResult = void | boolean | Promise<void | boolean>;
|
|
24
|
+
/**
|
|
25
|
+
* One extra action on a turn — read aloud, regenerate, edit. Drawn with the
|
|
26
|
+
* feedback row's own button: a 16px glyph on a 28px square, a tooltip naming it.
|
|
27
|
+
*/
|
|
28
|
+
export interface AiChatTurnAction {
|
|
29
|
+
/** Stable React key, and the suffix of the button's `testID`. */
|
|
30
|
+
key: string;
|
|
31
|
+
/** The accessible name, and the tooltip's copy. */
|
|
32
|
+
label: string;
|
|
33
|
+
/** A Bloom icon component (`RiVolumeUpLine`, not `<RiVolumeUpLine />`). */
|
|
34
|
+
icon: AiChatIconComponent;
|
|
35
|
+
onPress: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Makes the action a TOGGLE (read aloud while it is speaking): `true` paints
|
|
38
|
+
* the hover surface and the primary glyph, and announces it pressed. Leave it
|
|
39
|
+
* undefined for a plain button — `false` announces "not pressed".
|
|
40
|
+
*/
|
|
41
|
+
active?: boolean;
|
|
42
|
+
/** Dimmed to the shared disabled opacity, unfocusable, announced disabled. */
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
}
|
|
18
45
|
export interface AiChatFeedbackRowProps {
|
|
19
46
|
onLike?: () => void;
|
|
20
47
|
onDislike?: () => void;
|
|
21
48
|
/**
|
|
22
|
-
* Copy handler. The glyph swaps to a check and the tooltip reads "Copied!"
|
|
23
|
-
* 1.6s
|
|
49
|
+
* Copy handler. The glyph swaps to a check and the tooltip reads "Copied!"
|
|
50
|
+
* for 1.6s once the copy has happened: at once for a handler that returns
|
|
51
|
+
* nothing (or `true`), after the promise resolves for an async one, and not
|
|
52
|
+
* at all when it returns or resolves `false`, throws or rejects.
|
|
24
53
|
*/
|
|
25
|
-
onCopy?: () =>
|
|
54
|
+
onCopy?: () => AiChatCopyResult;
|
|
55
|
+
/** More buttons after copy, in order — read aloud, regenerate… */
|
|
56
|
+
actions?: ReadonlyArray<AiChatTurnAction>;
|
|
26
57
|
labels?: AiChatFeedbackLabels;
|
|
27
58
|
style?: StyleProp<ViewStyle>;
|
|
28
59
|
testID?: string;
|
|
@@ -30,6 +61,13 @@ export interface AiChatFeedbackRowProps {
|
|
|
30
61
|
export interface AiChatUserMessageProps {
|
|
31
62
|
/** `AiChatMessageLine`s — or a string, wrapped in one. */
|
|
32
63
|
children: ReactNode;
|
|
64
|
+
/**
|
|
65
|
+
* Buttons under the card, right-aligned — copy, edit. On a web pointer they
|
|
66
|
+
* fade in while the turn is hovered or holds focus; they stay in the tab order
|
|
67
|
+
* and the accessibility tree throughout, and on native (and touch web) they
|
|
68
|
+
* are always shown.
|
|
69
|
+
*/
|
|
70
|
+
actions?: ReadonlyArray<AiChatTurnAction>;
|
|
33
71
|
/** Skip the blur-in (a turn restored from history). Default `true`. */
|
|
34
72
|
animate?: boolean;
|
|
35
73
|
style?: StyleProp<ViewStyle>;
|
|
@@ -43,7 +81,7 @@ export interface AiChatAssistantMessageProps {
|
|
|
43
81
|
children: ReactNode;
|
|
44
82
|
/** The like / dislike / copy row under the reply. Default `true`. */
|
|
45
83
|
feedback?: boolean;
|
|
46
|
-
/** Feedback handlers and labels. */
|
|
84
|
+
/** Feedback handlers, extra `actions` and labels. */
|
|
47
85
|
feedbackProps?: Omit<AiChatFeedbackRowProps, 'style' | 'testID'>;
|
|
48
86
|
/** Skip the staggered blur-in. Default `true`. */
|
|
49
87
|
animate?: boolean;
|
|
@@ -109,7 +147,7 @@ export interface AiChatImageGenerationProps {
|
|
|
109
147
|
/** Feedback handlers under the landed image. */
|
|
110
148
|
onLike?: () => void;
|
|
111
149
|
onDislike?: () => void;
|
|
112
|
-
onCopy?: () =>
|
|
150
|
+
onCopy?: () => AiChatCopyResult;
|
|
113
151
|
labels?: AiChatImageGenerationLabels;
|
|
114
152
|
feedbackLabels?: AiChatFeedbackLabels;
|
|
115
153
|
style?: StyleProp<ViewStyle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ai-chat/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE1D,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAM3D,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ai-chat/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,9 @@ interface TileProps {
|
|
|
5
5
|
attachment: ComposerPanelAttachment;
|
|
6
6
|
palette: ComposerPalette;
|
|
7
7
|
onRemove?: () => void;
|
|
8
|
+
onRetry?: () => void;
|
|
8
9
|
removeLabel: string;
|
|
10
|
+
retryLabel: string;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
11
13
|
* One 56px tile: the thumbnail for images,
|
|
@@ -15,19 +17,26 @@ interface TileProps {
|
|
|
15
17
|
* percentage (9/16 medium, tabular; white over a photo, accent-500 otherwise)
|
|
16
18
|
* sits at top 3 / right 3; once landed it blurs out as the dismiss blurs in on
|
|
17
19
|
* the same spot.
|
|
20
|
+
*
|
|
21
|
+
* A FAILED tile (`error`) drops the ring and percentage and fills with the
|
|
22
|
+
* error subtle surface under an error-foreground border: the warning glyph (or
|
|
23
|
+
* the retry button) at (3, 4) and the message in 9/11 medium, two lines at
|
|
24
|
+
* most, from (5, 30). The dismiss shows as on a landed tile.
|
|
18
25
|
*/
|
|
19
26
|
export declare const AttachmentTile: React.NamedExoticComponent<TileProps>;
|
|
20
27
|
interface StripProps {
|
|
21
28
|
attachments: ReadonlyArray<ComposerPanelAttachment>;
|
|
22
29
|
palette: ComposerPalette;
|
|
23
30
|
onRemove?: (id: string) => void;
|
|
31
|
+
onRetry?: (id: string) => void;
|
|
24
32
|
removeLabel: string;
|
|
33
|
+
retryLabel: string;
|
|
25
34
|
}
|
|
26
35
|
/**
|
|
27
36
|
* The tile row: 8 apart, wrapping. Tiles
|
|
28
37
|
* scale 0.8 → 1, fade and un-blur on arrival over 280ms `cubic-bezier(0.22, 1,
|
|
29
38
|
* 0.36, 1)`, and play it backwards on dismissal before leaving the row.
|
|
30
39
|
*/
|
|
31
|
-
export declare function AttachmentStrip({ attachments, palette, onRemove, removeLabel }: StripProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export declare function AttachmentStrip({ attachments, palette, onRemove, onRetry, removeLabel, retryLabel }: StripProps): import("react/jsx-runtime").JSX.Element;
|
|
32
41
|
export {};
|
|
33
42
|
//# sourceMappingURL=AttachmentStrip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentStrip.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/AttachmentStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AttachmentStrip.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/AttachmentStrip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAgBjE,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAqIvD,UAAU,SAAS;IACjB,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,uCAuJzB,CAAC;AA0CH,UAAU,UAAU;IAClB,WAAW,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACpD,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,UAAU,2CA0C/G"}
|
|
@@ -13,5 +13,5 @@ import type { ComposerPanelProps } from './types';
|
|
|
13
13
|
*
|
|
14
14
|
* Takes its panel implementation from the family's platform binding.
|
|
15
15
|
*/
|
|
16
|
-
export declare function ComposerPanelBase({ value, defaultValue, onValueChange, onSubmit, onStop, busy, disabled, placeholder, permissions, permission, defaultPermission, onPermissionChange, onLearnMore, addMenu, onAddMenuSelect, providers, model, defaultModel, onModelChange, effort, defaultEffort, onEffortChange, effortLevels, modelPickerLabels, listening, defaultListening, onListeningChange, attachments, onRemoveAttachment, status, emptyAction, onKeyPress: onKeyPressProp, inputRef, labels: labelOverrides, style, testID, }: ComposerPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function ComposerPanelBase({ value, defaultValue, onValueChange, onSubmit, onStop, busy, disabled, placeholder, permissions, permission, defaultPermission, onPermissionChange, onLearnMore, addMenu, onAddMenuSelect, providers, model, defaultModel, onModelChange, effort, defaultEffort, onEffortChange, effortLevels, modelPickerLabels, listening, defaultListening, onListeningChange, attachments, onRemoveAttachment, onAttachmentRetry, status, emptyAction, onKeyPress: onKeyPressProp, inputRef, labels: labelOverrides, style, testID, }: ComposerPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
17
17
|
//# sourceMappingURL=ComposerPanelBase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerPanelBase.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/ComposerPanelBase.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ComposerPanelBase.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/ComposerPanelBase.tsx"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAuB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAkEvE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,YAAiB,EACjB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,IAAY,EACZ,QAAgB,EAChB,WAA2C,EAC3C,WAAwC,EACxC,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,OAAiC,EACjC,eAAe,EACf,SAAS,EACT,KAAK,EACL,YAAY,EACZ,aAAa,EACb,MAAM,EACN,aAAa,EACb,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,gBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,UAAU,EAAE,cAAc,EAC1B,QAAQ,EACR,MAAM,EAAE,cAAc,EACtB,KAAK,EACL,MAAM,GACP,EAAE,kBAAkB,2CA2LpB"}
|
|
@@ -48,6 +48,9 @@ export interface ComposerPalette {
|
|
|
48
48
|
accent500: string;
|
|
49
49
|
/** `border-focus-ring`. */
|
|
50
50
|
focusRing: string;
|
|
51
|
+
/** A failed tile: the error subtle surface and its paired foreground. */
|
|
52
|
+
errorSurface: string;
|
|
53
|
+
errorText: string;
|
|
51
54
|
/** `shadow-xs`, `shadow-dropdown` and the card's raw Figma shadow. */
|
|
52
55
|
shadowXs: string;
|
|
53
56
|
shadowDropdown: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAc1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAMpD,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,4FAA4F;AAC5F,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,13 @@ export interface ComposerPanelAttachment {
|
|
|
50
50
|
* once the file has landed — that also reveals the dismiss.
|
|
51
51
|
*/
|
|
52
52
|
progress?: number;
|
|
53
|
+
/**
|
|
54
|
+
* The upload failed, and why ("Too large", "Network error"). The tile turns
|
|
55
|
+
* to the error surface and shows this in place of the name; the ring and the
|
|
56
|
+
* percentage go (any `progress` is ignored) and the dismiss comes back. With
|
|
57
|
+
* `ComposerPanel`'s `onAttachmentRetry` it also gets a retry button.
|
|
58
|
+
*/
|
|
59
|
+
error?: string;
|
|
53
60
|
}
|
|
54
61
|
export interface ComposerPanelStatusTabProps {
|
|
55
62
|
/** Branch name, beside the (mirrored) merge glyph. */
|
|
@@ -150,6 +157,8 @@ export interface ComposerPanelLabels {
|
|
|
150
157
|
stop?: string;
|
|
151
158
|
/** Default `'Remove'` — prefixed to the file name on a tile's dismiss. */
|
|
152
159
|
remove?: string;
|
|
160
|
+
/** Default `'Retry'` — prefixed to the file name on a failed tile's retry. */
|
|
161
|
+
retry?: string;
|
|
153
162
|
}
|
|
154
163
|
export interface ComposerPanelProps {
|
|
155
164
|
/** Controlled draft. */
|
|
@@ -205,6 +214,8 @@ export interface ComposerPanelProps {
|
|
|
205
214
|
/** Tiles above the prompt. Each one's `progress` drives its upload ring. */
|
|
206
215
|
attachments?: ReadonlyArray<ComposerPanelAttachment>;
|
|
207
216
|
onRemoveAttachment?: (id: string) => void;
|
|
217
|
+
/** Draws a retry button on every tile with an `error`; called with its id. */
|
|
218
|
+
onAttachmentRetry?: (id: string) => void;
|
|
208
219
|
/** The tab on the card's top edge — typically `<ComposerPanelStatusTab />`. */
|
|
209
220
|
status?: ReactNode;
|
|
210
221
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EACV,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,0BAA0B,EAC1B,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM1D,yCAAyC;AACzC,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,6EAA6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAMD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;CAC9C;AAMD,MAAM,MAAM,2BAA2B,GACnC,OAAO,GACP,UAAU,GACV,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,2BAA2B,CAAC;IAClC,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EACV,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,0BAA0B,EAC1B,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM1D,yCAAyC;AACzC,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,6EAA6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAMD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAChC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;CAC9C;AAMD,MAAM,MAAM,2BAA2B,GACnC,OAAO,GACP,UAAU,GACV,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,2BAA2B,CAAC;IAClC,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,2BAA2B;IAC1C,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;IAC7D,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACzC;AAED,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,SAAS,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC9C,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8FAA8F;IAC9F,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,0GAA0G;IAC1G,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAC3D,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACnD,gEAAgE;IAChE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,0DAA0D;IAC1D,SAAS,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC/C,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,kDAAkD;IAClD,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAEjD,4EAA4E;IAC5E,WAAW,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACrD,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,KAAK,IAAI,CAAC;IAE/E,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,oBAAoB,CAAC;IACtE,wEAAwE;IACxE,WAAW,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACpD,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,uBAAuB,EAAE,KAAK,IAAI,CAAC;IACvE,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACjE,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAMD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,wCAAwC;IACxC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,yFAAyF;IACzF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,2GAA2G;IAC3G,OAAO,CAAC,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC;IAClD,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4FAA4F;IAC5F,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,oFAAoF;IACpF,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAErC,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAEjD;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,KAAK,IAAI,CAAC;IAE/E,sDAAsD;IACtD,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IACjD,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-attachment-queue.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/use-attachment-queue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"use-attachment-queue.d.ts","sourceRoot":"","sources":["../../../../src/composer-panel/use-attachment-queue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAmBjF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,cAAqB,EACrB,SAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACd,EAAE,IAAI,CACL,wBAAwB,EACxB,aAAa,GAAG,gBAAgB,GAAG,WAAW,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,eAAe,CAC9G,GAAG;IAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAkEvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputOtp.d.ts","sourceRoot":"","sources":["../../../../src/input-otp/InputOtp.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAU5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyC7C,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAepE;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,eAAe,EACxB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GACxD;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAyBpF;AAcD,wBAAgB,QAAQ,CAAC,EACvB,MAAU,EACV,KAAK,EACL,YAAiB,EACjB,QAAQ,EACR,UAAU,EACV,OAAO,EAAE,WAAW,EACpB,SAAS,EACT,UAAU,EACV,QAAQ,EAAE,aAAa,EACvB,UAAU,EACV,SAAiB,EACjB,kBAAkB,EAClB,KAAK,EACL,MAAM,GACP,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"InputOtp.d.ts","sourceRoot":"","sources":["../../../../src/input-otp/InputOtp.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAU5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyC7C,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAepE;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,4DAA4D;AAC5D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,eAAe,EACxB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,gBAAgB,GACxD;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAyBpF;AAcD,wBAAgB,QAAQ,CAAC,EACvB,MAAU,EACV,KAAK,EACL,YAAiB,EACjB,QAAQ,EACR,UAAU,EACV,OAAO,EAAE,WAAW,EACpB,SAAS,EACT,UAAU,EACV,QAAQ,EAAE,aAAa,EACvB,UAAU,EACV,SAAiB,EACjB,kBAAkB,EAClB,KAAK,EACL,MAAM,GACP,EAAE,aAAa,2CA0Kf"}
|
package/package.json
CHANGED
package/src/ai-chat/AiChat.tsx
CHANGED
|
@@ -10,6 +10,7 @@ import { bindAiChat } from './bindAiChat';
|
|
|
10
10
|
const parts = bindAiChat({ Tooltip, TooltipTrigger, TooltipTextBubble, ContentPanel });
|
|
11
11
|
|
|
12
12
|
export const AiChatFeedbackRow = parts.AiChatFeedbackRow;
|
|
13
|
+
export const AiChatUserMessage = parts.AiChatUserMessage;
|
|
13
14
|
export const AiChatAssistantMessage = parts.AiChatAssistantMessage;
|
|
14
15
|
export const AiChatImageGeneration = parts.AiChatImageGeneration;
|
|
15
16
|
export const AiChatGalleryPanel = parts.AiChatGalleryPanel;
|
|
@@ -10,6 +10,7 @@ import { bindAiChat } from './bindAiChat';
|
|
|
10
10
|
const parts = bindAiChat({ Tooltip, TooltipTrigger, TooltipTextBubble, ContentPanel });
|
|
11
11
|
|
|
12
12
|
export const AiChatFeedbackRow = parts.AiChatFeedbackRow;
|
|
13
|
+
export const AiChatUserMessage = parts.AiChatUserMessage;
|
|
13
14
|
export const AiChatAssistantMessage = parts.AiChatAssistantMessage;
|
|
14
15
|
export const AiChatImageGeneration = parts.AiChatImageGeneration;
|
|
15
16
|
export const AiChatGalleryPanel = parts.AiChatGalleryPanel;
|
|
@@ -9,9 +9,11 @@ import Animated, {
|
|
|
9
9
|
} from 'react-native-reanimated';
|
|
10
10
|
|
|
11
11
|
import type { Props as IconProps } from '../icons/shared';
|
|
12
|
+
import { DISABLED_OPACITY } from '../styles/tokens';
|
|
12
13
|
import type { WebCssStyle } from '../styles/web-view-style';
|
|
13
14
|
import { useAiChatPlatform } from './context';
|
|
14
15
|
import { dataHook, IS_WEB, type AiChatPalette } from './shared';
|
|
16
|
+
import type { AiChatTurnAction } from './types';
|
|
15
17
|
|
|
16
18
|
/**
|
|
17
19
|
* The family's small interactive pieces, shared by the message, image, code
|
|
@@ -178,6 +180,8 @@ export function SurfaceAction({
|
|
|
178
180
|
hoverBackground,
|
|
179
181
|
palette,
|
|
180
182
|
glyph,
|
|
183
|
+
active,
|
|
184
|
+
disabled = false,
|
|
181
185
|
style,
|
|
182
186
|
testID,
|
|
183
187
|
}: {
|
|
@@ -194,11 +198,20 @@ export function SurfaceAction({
|
|
|
194
198
|
hoverBackground: string;
|
|
195
199
|
palette: AiChatPalette;
|
|
196
200
|
glyph: (color: string) => React.ReactNode;
|
|
201
|
+
/**
|
|
202
|
+
* A toggle's state: `true` holds the hover surface and the primary glyph.
|
|
203
|
+
* Undefined for a plain button, which then carries no pressed state at all.
|
|
204
|
+
*/
|
|
205
|
+
active?: boolean;
|
|
206
|
+
disabled?: boolean;
|
|
197
207
|
style?: StyleProp<ViewStyle>;
|
|
198
208
|
testID?: string;
|
|
199
209
|
}) {
|
|
210
|
+
const isToggle = active !== undefined;
|
|
200
211
|
const tip = useHoverTooltip({ open: tooltipOpen, onOpenChange: onTooltipOpenChange });
|
|
201
|
-
const [
|
|
212
|
+
const [hoveredRaw, setHovered] = useState(false);
|
|
213
|
+
const hovered = hoveredRaw && !disabled;
|
|
214
|
+
const lit = hovered || active === true;
|
|
202
215
|
// A press focuses the control too; only keyboard focus should raise the tooltip.
|
|
203
216
|
const pointerDown = useRef(false);
|
|
204
217
|
const surface: WebCssStyle = {
|
|
@@ -207,7 +220,8 @@ export function SurfaceAction({
|
|
|
207
220
|
alignItems: 'center',
|
|
208
221
|
padding,
|
|
209
222
|
borderRadius: radius,
|
|
210
|
-
backgroundColor:
|
|
223
|
+
backgroundColor: lit ? hoverBackground : background,
|
|
224
|
+
opacity: disabled ? DISABLED_OPACITY : 1,
|
|
211
225
|
'--bloom-ai-chat-ring': palette.ring,
|
|
212
226
|
};
|
|
213
227
|
return (
|
|
@@ -217,6 +231,12 @@ export function SurfaceAction({
|
|
|
217
231
|
testID={testID}
|
|
218
232
|
accessibilityRole="button"
|
|
219
233
|
accessibilityLabel={label}
|
|
234
|
+
// BOTH spellings of the toggle state: react-native-web drops
|
|
235
|
+
// `accessibilityState` and React Native has no `aria-pressed`.
|
|
236
|
+
{...(isToggle ? { 'aria-pressed': active } : null)}
|
|
237
|
+
accessibilityState={{ disabled, ...(isToggle ? { selected: active } : null) }}
|
|
238
|
+
aria-disabled={disabled || undefined}
|
|
239
|
+
disabled={disabled}
|
|
220
240
|
onPressIn={() => {
|
|
221
241
|
pointerDown.current = true;
|
|
222
242
|
tip.onHoverOut();
|
|
@@ -238,8 +258,43 @@ export function SurfaceAction({
|
|
|
238
258
|
}}
|
|
239
259
|
onBlur={() => tip.setOpen(false)}
|
|
240
260
|
style={[surface, style]}>
|
|
241
|
-
{glyph(
|
|
261
|
+
{glyph(lit ? palette.iconPrimary : palette.iconSecondary)}
|
|
242
262
|
</Pressable>
|
|
243
263
|
</WithTooltip>
|
|
244
264
|
);
|
|
245
265
|
}
|
|
266
|
+
|
|
267
|
+
/** The feedback row's button surface: 28 square, radius 8, p 6, tertiary → secondary-hover. */
|
|
268
|
+
export function turnActionSurface(palette: AiChatPalette) {
|
|
269
|
+
return {
|
|
270
|
+
padding: 6,
|
|
271
|
+
radius: 8,
|
|
272
|
+
background: palette.tertiary,
|
|
273
|
+
hoverBackground: palette.secondaryHover,
|
|
274
|
+
palette,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/** One caller-supplied turn action, drawn as a feedback-row button. */
|
|
279
|
+
export function TurnActionButton({
|
|
280
|
+
action,
|
|
281
|
+
palette,
|
|
282
|
+
testID,
|
|
283
|
+
}: {
|
|
284
|
+
action: AiChatTurnAction;
|
|
285
|
+
palette: AiChatPalette;
|
|
286
|
+
testID?: string;
|
|
287
|
+
}) {
|
|
288
|
+
const Icon = action.icon;
|
|
289
|
+
return (
|
|
290
|
+
<SurfaceAction
|
|
291
|
+
{...turnActionSurface(palette)}
|
|
292
|
+
testID={testID ? `${testID}-${action.key}` : undefined}
|
|
293
|
+
label={action.label}
|
|
294
|
+
onPress={action.onPress}
|
|
295
|
+
active={action.active}
|
|
296
|
+
disabled={action.disabled}
|
|
297
|
+
glyph={(color) => <Icon width={16} height={16} fill={color} />}
|
|
298
|
+
/>
|
|
299
|
+
);
|
|
300
|
+
}
|
|
@@ -5,9 +5,9 @@ import { RiCheckLine } from '../icons/remix/RiCheckLine';
|
|
|
5
5
|
import { RiFileCopyLine } from '../icons/remix/RiFileCopyLine';
|
|
6
6
|
import { RiThumbDownLine } from '../icons/remix/RiThumbDownLine';
|
|
7
7
|
import { RiThumbUpLine } from '../icons/remix/RiThumbUpLine';
|
|
8
|
-
import { SurfaceAction, SwapGlyph } from './AiChatControls';
|
|
8
|
+
import { SurfaceAction, SwapGlyph, TurnActionButton, turnActionSurface } from './AiChatControls';
|
|
9
9
|
import { CONFIRM_MS, useAiChatPalette, useAiChatWebCss } from './shared';
|
|
10
|
-
import type { AiChatFeedbackRowProps } from './types';
|
|
10
|
+
import type { AiChatCopyResult, AiChatFeedbackRowProps } from './types';
|
|
11
11
|
|
|
12
12
|
const DEFAULT_LABELS = {
|
|
13
13
|
like: 'Good response',
|
|
@@ -26,9 +26,12 @@ const DEFAULT_LABELS = {
|
|
|
26
26
|
* tooltip a `sm` tooltip above, after a 200ms hover
|
|
27
27
|
* copy the copy glyph blurs, scales to 75% and fades out as a check comes
|
|
28
28
|
* in (200ms ease-out); the tooltip is held open reading "Copied!"
|
|
29
|
-
* for 1.6s, then dismissed even if the pointer is still over it
|
|
29
|
+
* for 1.6s, then dismissed even if the pointer is still over it — once
|
|
30
|
+
* the copy HAPPENED: an async handler is waited for, and a `false`,
|
|
31
|
+
* a throw or a rejection shows nothing
|
|
32
|
+
* actions the caller's extra buttons after copy, on the same surface
|
|
30
33
|
*/
|
|
31
|
-
export function AiChatFeedbackRowBase({ onLike, onDislike, onCopy, labels, style, testID }: AiChatFeedbackRowProps) {
|
|
34
|
+
export function AiChatFeedbackRowBase({ onLike, onDislike, onCopy, actions, labels, style, testID }: AiChatFeedbackRowProps) {
|
|
32
35
|
useAiChatWebCss();
|
|
33
36
|
const palette = useAiChatPalette();
|
|
34
37
|
const l = useMemo(() => ({ ...DEFAULT_LABELS, ...labels }), [labels]);
|
|
@@ -36,16 +39,20 @@ export function AiChatFeedbackRowBase({ onLike, onDislike, onCopy, labels, style
|
|
|
36
39
|
const [copyTooltipOpen, setCopyTooltipOpen] = useState(false);
|
|
37
40
|
const timer = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
// The latest press: a slower, earlier copy settling late must not confirm.
|
|
43
|
+
const attempt = useRef(0);
|
|
44
|
+
const mounted = useRef(true);
|
|
45
|
+
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
mounted.current = true;
|
|
48
|
+
return () => {
|
|
49
|
+
mounted.current = false;
|
|
41
50
|
if (timer.current) clearTimeout(timer.current);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
);
|
|
51
|
+
};
|
|
52
|
+
}, []);
|
|
45
53
|
|
|
46
|
-
const
|
|
54
|
+
const confirm = () => {
|
|
47
55
|
if (timer.current) clearTimeout(timer.current);
|
|
48
|
-
onCopy?.();
|
|
49
56
|
setCopied(true);
|
|
50
57
|
setCopyTooltipOpen(true);
|
|
51
58
|
timer.current = setTimeout(() => {
|
|
@@ -54,14 +61,28 @@ export function AiChatFeedbackRowBase({ onLike, onDislike, onCopy, labels, style
|
|
|
54
61
|
}, CONFIRM_MS);
|
|
55
62
|
};
|
|
56
63
|
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
const copy = () => {
|
|
65
|
+
const id = ++attempt.current;
|
|
66
|
+
let result: AiChatCopyResult;
|
|
67
|
+
try {
|
|
68
|
+
result = onCopy?.();
|
|
69
|
+
} catch {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (isPromiseLike(result)) {
|
|
73
|
+
result.then(
|
|
74
|
+
(ok) => {
|
|
75
|
+
if (ok !== false && mounted.current && id === attempt.current) confirm();
|
|
76
|
+
},
|
|
77
|
+
() => undefined,
|
|
78
|
+
);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (result !== false) confirm();
|
|
63
82
|
};
|
|
64
83
|
|
|
84
|
+
const surface = turnActionSurface(palette);
|
|
85
|
+
|
|
65
86
|
return (
|
|
66
87
|
<View testID={testID} style={[{ flexDirection: 'row', alignItems: 'center', gap: 6 }, style]}>
|
|
67
88
|
<SurfaceAction
|
|
@@ -97,6 +118,13 @@ export function AiChatFeedbackRowBase({ onLike, onDislike, onCopy, labels, style
|
|
|
97
118
|
</View>
|
|
98
119
|
)}
|
|
99
120
|
/>
|
|
121
|
+
{actions?.map((action) => (
|
|
122
|
+
<TurnActionButton key={action.key} action={action} palette={palette} testID={testID} />
|
|
123
|
+
))}
|
|
100
124
|
</View>
|
|
101
125
|
);
|
|
102
126
|
}
|
|
127
|
+
|
|
128
|
+
function isPromiseLike(value: unknown): value is PromiseLike<void | boolean> {
|
|
129
|
+
return typeof (value as PromiseLike<unknown> | null | undefined)?.then === 'function';
|
|
130
|
+
}
|
|
@@ -3,6 +3,7 @@ import { View, type LayoutChangeEvent } from 'react-native';
|
|
|
3
3
|
|
|
4
4
|
import { RiLinkM } from '../icons/remix/RiLinkM';
|
|
5
5
|
import { Text } from '../typography';
|
|
6
|
+
import { TurnActionButton } from './AiChatControls';
|
|
6
7
|
import { AiChatFeedbackRowBase } from './AiChatFeedbackRowBase';
|
|
7
8
|
import { RevealFade, RevealLine, RevealSequence, useRevealSlot } from './AiChatReveal';
|
|
8
9
|
import { CARD_RADIUS, dataHook, IS_WEB, useAiChatPalette, useAiChatWebCss } from './shared';
|
|
@@ -23,6 +24,10 @@ import type {
|
|
|
23
24
|
* user pushed right with a 6px bleed past the column (`-mr-1.5`), hugging
|
|
24
25
|
* its text up to half the column + 6; radius 16, background-primary,
|
|
25
26
|
* px 12 / py 11, shadow-card; body-regular text-primary, left-aligned
|
|
27
|
+
* actions under the user card, 8 below it and right-aligned: the feedback
|
|
28
|
+
* row's buttons, 6 apart. On a web pointer they fade in (150ms)
|
|
29
|
+
* while the turn is hovered or holds focus — opacity only, so they
|
|
30
|
+
* stay tabbable and announced; always shown on native and touch
|
|
26
31
|
* assistant full width, gap 8, body-regular text-primary; the feedback row last
|
|
27
32
|
* line a paragraph; `secondary` tone for status lines
|
|
28
33
|
* bullets disc markers outside a 21px indent, items 8 apart
|
|
@@ -55,12 +60,13 @@ function asBlocks(children: React.ReactNode): React.ReactNode {
|
|
|
55
60
|
});
|
|
56
61
|
}
|
|
57
62
|
|
|
58
|
-
export function
|
|
63
|
+
export function AiChatUserMessageBase({ children, actions, animate = true, style, testID }: AiChatUserMessageProps) {
|
|
59
64
|
useAiChatWebCss();
|
|
60
65
|
const palette = useAiChatPalette();
|
|
61
66
|
const [column, setColumn] = useState(0);
|
|
62
67
|
return (
|
|
63
68
|
<View
|
|
69
|
+
{...dataHook('bloomAiChatTurn')}
|
|
64
70
|
testID={testID}
|
|
65
71
|
onLayout={(event: LayoutChangeEvent) => setColumn(event.nativeEvent.layout.width)}
|
|
66
72
|
style={[{ width: '100%', alignItems: 'flex-end' }, style]}>
|
|
@@ -80,6 +86,23 @@ export function AiChatUserMessage({ children, animate = true, style, testID }: A
|
|
|
80
86
|
}}>
|
|
81
87
|
<RevealSequence animate={animate}>{asBlocks(children)}</RevealSequence>
|
|
82
88
|
</RevealFade>
|
|
89
|
+
{actions && actions.length > 0 ? (
|
|
90
|
+
<RevealFade animate={animate} style={{ marginTop: 8 }}>
|
|
91
|
+
<View
|
|
92
|
+
{...dataHook('bloomAiChatTurnActions')}
|
|
93
|
+
testID={testID ? `${testID}-actions` : undefined}
|
|
94
|
+
style={{ flexDirection: 'row', alignItems: 'center', gap: 6 }}>
|
|
95
|
+
{actions.map((action) => (
|
|
96
|
+
<TurnActionButton
|
|
97
|
+
key={action.key}
|
|
98
|
+
action={action}
|
|
99
|
+
palette={palette}
|
|
100
|
+
testID={testID ? `${testID}-actions` : undefined}
|
|
101
|
+
/>
|
|
102
|
+
))}
|
|
103
|
+
</View>
|
|
104
|
+
</RevealFade>
|
|
105
|
+
) : null}
|
|
83
106
|
</View>
|
|
84
107
|
);
|
|
85
108
|
}
|