@uplifted/react 0.23.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/AddClientSheet.d.ts +10 -1
  3. package/dist/AddClientSheet.d.ts.map +1 -1
  4. package/dist/AddClientSheet.js +26 -21
  5. package/dist/AddClientSheet.js.map +1 -1
  6. package/dist/AiSettingsSheet.d.ts +2 -2
  7. package/dist/AiSettingsSheet.d.ts.map +1 -1
  8. package/dist/AiSettingsSheet.js +30 -97
  9. package/dist/AiSettingsSheet.js.map +1 -1
  10. package/dist/AssistantGrid.d.ts +10 -8
  11. package/dist/AssistantGrid.d.ts.map +1 -1
  12. package/dist/AssistantGrid.js +90 -16
  13. package/dist/AssistantGrid.js.map +1 -1
  14. package/dist/BulkGenerateSheet.d.ts +13 -5
  15. package/dist/BulkGenerateSheet.d.ts.map +1 -1
  16. package/dist/BulkGenerateSheet.js +25 -11
  17. package/dist/BulkGenerateSheet.js.map +1 -1
  18. package/dist/ClientList.d.ts.map +1 -1
  19. package/dist/ClientList.js +8 -8
  20. package/dist/ClientList.js.map +1 -1
  21. package/dist/Composer.d.ts +4 -0
  22. package/dist/Composer.d.ts.map +1 -1
  23. package/dist/Composer.js +5 -9
  24. package/dist/Composer.js.map +1 -1
  25. package/dist/ConnectClientSheet.d.ts +26 -0
  26. package/dist/ConnectClientSheet.d.ts.map +1 -0
  27. package/dist/ConnectClientSheet.js +67 -0
  28. package/dist/ConnectClientSheet.js.map +1 -0
  29. package/dist/ConversationPane.d.ts +3 -1
  30. package/dist/ConversationPane.d.ts.map +1 -1
  31. package/dist/ConversationPane.js +30 -7
  32. package/dist/ConversationPane.js.map +1 -1
  33. package/dist/HostLinkAction.d.ts +10 -0
  34. package/dist/HostLinkAction.d.ts.map +1 -0
  35. package/dist/HostLinkAction.js +14 -0
  36. package/dist/HostLinkAction.js.map +1 -0
  37. package/dist/HostPreviewPane.d.ts +4 -2
  38. package/dist/HostPreviewPane.d.ts.map +1 -1
  39. package/dist/HostPreviewPane.js +6 -6
  40. package/dist/HostPreviewPane.js.map +1 -1
  41. package/dist/ItemActions.d.ts +7 -3
  42. package/dist/ItemActions.d.ts.map +1 -1
  43. package/dist/ItemActions.js +4 -3
  44. package/dist/ItemActions.js.map +1 -1
  45. package/dist/OfferSheet.d.ts +2 -0
  46. package/dist/OfferSheet.d.ts.map +1 -1
  47. package/dist/OfferSheet.js +3 -1
  48. package/dist/OfferSheet.js.map +1 -1
  49. package/dist/QuickSend.d.ts +3 -1
  50. package/dist/QuickSend.d.ts.map +1 -1
  51. package/dist/QuickSend.js +10 -3
  52. package/dist/QuickSend.js.map +1 -1
  53. package/dist/SegmentEditor.d.ts +11 -4
  54. package/dist/SegmentEditor.d.ts.map +1 -1
  55. package/dist/SegmentEditor.js +96 -11
  56. package/dist/SegmentEditor.js.map +1 -1
  57. package/dist/ThreadFeed.d.ts +7 -1
  58. package/dist/ThreadFeed.d.ts.map +1 -1
  59. package/dist/ThreadFeed.js +4 -4
  60. package/dist/ThreadFeed.js.map +1 -1
  61. package/dist/UpliftPanel.d.ts +10 -2
  62. package/dist/UpliftPanel.d.ts.map +1 -1
  63. package/dist/UpliftPanel.js +142 -24
  64. package/dist/UpliftPanel.js.map +1 -1
  65. package/dist/UpliftProvider.d.ts.map +1 -1
  66. package/dist/UpliftProvider.js +16 -2
  67. package/dist/UpliftProvider.js.map +1 -1
  68. package/dist/build-info.json +3 -3
  69. package/dist/channels.d.ts +2 -0
  70. package/dist/channels.d.ts.map +1 -1
  71. package/dist/channels.js +4 -0
  72. package/dist/channels.js.map +1 -1
  73. package/dist/draftContext.d.ts +34 -0
  74. package/dist/draftContext.d.ts.map +1 -0
  75. package/dist/draftContext.js +48 -0
  76. package/dist/draftContext.js.map +1 -0
  77. package/dist/host.d.ts +19 -0
  78. package/dist/host.d.ts.map +1 -1
  79. package/dist/host.js.map +1 -1
  80. package/dist/icons.d.ts +4 -0
  81. package/dist/icons.d.ts.map +1 -1
  82. package/dist/icons.js +5 -0
  83. package/dist/icons.js.map +1 -1
  84. package/dist/index.d.ts +6 -3
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +3 -1
  87. package/dist/index.js.map +1 -1
  88. package/dist/segments.d.ts.map +1 -1
  89. package/dist/segments.js +2 -1
  90. package/dist/segments.js.map +1 -1
  91. package/dist/styles.d.ts +1 -1
  92. package/dist/styles.d.ts.map +1 -1
  93. package/dist/styles.js +63 -25
  94. package/dist/styles.js.map +1 -1
  95. package/dist/usePreviewDrafts.d.ts +1 -1
  96. package/dist/usePreviewDrafts.d.ts.map +1 -1
  97. package/dist/usePreviewDrafts.js +8 -1
  98. package/dist/usePreviewDrafts.js.map +1 -1
  99. package/dist/useSend.d.ts +7 -2
  100. package/dist/useSend.d.ts.map +1 -1
  101. package/dist/useSend.js +7 -2
  102. package/dist/useSend.js.map +1 -1
  103. package/package.json +3 -3
  104. package/dist/ComposerExtras.d.ts +0 -15
  105. package/dist/ComposerExtras.d.ts.map +0 -1
  106. package/dist/ComposerExtras.js +0 -14
  107. package/dist/ComposerExtras.js.map +0 -1
@@ -1,25 +1,49 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from "react";
3
- import { IconChevronDown, IconPencil, IconRefresh, IconSparkles } from "./icons.js";
3
+ import { IconCheck, IconChevronDown, IconFrown, IconHelpCircle, IconPencil, IconRefresh, IconSmile, IconSparkles, IconZap } from "./icons.js";
4
4
  export const TONES = [
5
5
  { key: "happy", label: "Happy" },
6
6
  { key: "tough", label: "Tough" },
7
7
  { key: "inquisitive", label: "Question" },
8
8
  { key: "five_words", label: "Concise" },
9
9
  ];
10
- /* Display-only cap on the text inside a cell, like native. Never affects what gets injected. */
11
- const PREVIEW_MAX = 75;
12
- const previewText = (t) => (t.length > PREVIEW_MAX ? `${t.slice(0, PREVIEW_MAX)}…` : t);
13
10
  const LOADING_PHRASES = ["Generating…", "Drafting options…", "Reading context…", "Almost there…"];
11
+ /* Native DraftTiles (uplift_coach #630, spec #631): tone colours and icons, and the per-device
12
+ preferences (same localStorage keys as native, so a coach's choice carries across). */
13
+ const TONE_STYLE = {
14
+ happy: { color: "#34c759", Icon: IconSmile },
15
+ tough: { color: "#ff9500", Icon: IconFrown },
16
+ inquisitive: { color: "#007aff", Icon: IconHelpCircle },
17
+ five_words: { color: "#af52de", Icon: IconZap },
18
+ };
19
+ const VIEW_KEY = "uplift_draft_view"; // "tiles" | "grid"
20
+ const TONE_KEY = "uplift_draft_tone"; // native's canonical keys: happy | tough | inquisitive | concise
21
+ const toCanon = (t) => (t === "five_words" ? "concise" : t);
22
+ const fromCanon = (c) => (c === "concise" ? "five_words" : c === "happy" || c === "tough" || c === "inquisitive" ? c : null);
23
+ function readPref(key) { try {
24
+ return window.localStorage.getItem(key);
25
+ }
26
+ catch {
27
+ return null;
28
+ } }
29
+ function writePref(key, value) { try {
30
+ window.localStorage.setItem(key, value);
31
+ }
32
+ catch { /* private mode */ } }
33
+ const pressed = (color) => ({ borderColor: color, background: `${color}1f`, boxShadow: "inset 0 1px 3px rgba(0,0,0,.18)" });
14
34
  /**
15
- * The draft grid above the editor, a port of native Uplift's ComposerAssistant: a sparkle header
16
- * that collapses the 2×2 grid, a regenerate control, shimmer cells with cycling copy while the
17
- * engine writes, and cells labelled with a pencil because clicking one edits, never sends.
18
- * Cells keep radio semantics so the picked tone is announced.
35
+ * The drafts above the editor, ported from native Uplift's DraftTiles: one row of tone tiles by
36
+ * default (icon + the first words of each draft), and the full 2×2 grid behind the header chevron.
37
+ * The view is a per-device preference. When a draft set arrives and the composer is empty, the
38
+ * remembered tone's draft preloads into the editor through the same onPick a click uses; it never
39
+ * lands over the coach's text and never twice for one set. Picking replaces the editor's draft.
40
+ * Tiles and cells keep radio semantics so the picked tone is announced, and arrows move it.
19
41
  */
20
- export function AssistantGrid({ drafts, label, selected, onPick, onRegenerate, regenDisabled, open, onToggle, clientFirstName, footnote, onNeedsPlan }) {
42
+ export function AssistantGrid({ drafts, label, selected, onPick, onRegenerate, regenDisabled, composerEmpty, clientFirstName, footnote, onNeedsPlan }) {
21
43
  const cells = useRef([]);
22
44
  const [phrase, setPhrase] = useState(0);
45
+ const [view, setView] = useState(() => (readPref(VIEW_KEY) === "grid" ? "grid" : "tiles"));
46
+ const [chosen, setChosen] = useState(null);
23
47
  const loading = drafts.status === "loading";
24
48
  useEffect(() => {
25
49
  if (!loading) {
@@ -29,11 +53,46 @@ export function AssistantGrid({ drafts, label, selected, onPick, onRegenerate, r
29
53
  const t = setInterval(() => setPhrase((p) => (p + 1) % LOADING_PHRASES.length), 1400);
30
54
  return () => clearInterval(t);
31
55
  }, [loading]);
56
+ // Preload: once per draft set, into an empty composer only.
57
+ const set = drafts.status === "ready" ? drafts.drafts : null;
58
+ const signature = set ? TONES.map((t) => `${t.key}:${set[t.key] ?? ""}`).join("\u0000") : "";
59
+ const preloaded = useRef(null);
60
+ const emptyRef = useRef(composerEmpty);
61
+ emptyRef.current = composerEmpty;
62
+ const pickRef = useRef(onPick);
63
+ pickRef.current = onPick;
64
+ useEffect(() => {
65
+ if (!set || !signature)
66
+ return;
67
+ const remembered = fromCanon(readPref(TONE_KEY));
68
+ const tone = TONES.find((t) => t.key === remembered && set[t.key]) ?? TONES.find((t) => set[t.key]);
69
+ if (!tone)
70
+ return;
71
+ setChosen(tone.key);
72
+ if (preloaded.current === signature)
73
+ return;
74
+ preloaded.current = signature;
75
+ if (emptyRef.current)
76
+ pickRef.current(tone.key, set[tone.key]);
77
+ // eslint-disable-next-line react-hooks/exhaustive-deps
78
+ }, [signature]);
32
79
  if (drafts.status === "idle")
33
80
  return null;
34
81
  const refused = drafts.status === "error" && drafts.error?.code === "refused";
35
82
  const planInactive = drafts.status === "error" && drafts.error?.code === "plan_inactive";
36
83
  const limited = drafts.retryIn !== null;
84
+ const current = selected ?? chosen;
85
+ const gridOpen = view === "grid";
86
+ const pick = (tone, text) => {
87
+ setChosen(tone);
88
+ writePref(TONE_KEY, toCanon(tone));
89
+ onPick(tone, text);
90
+ };
91
+ const toggleView = () => {
92
+ const next = gridOpen ? "tiles" : "grid";
93
+ setView(next);
94
+ writePref(VIEW_KEY, next);
95
+ };
37
96
  const onKey = (i) => (e) => {
38
97
  const n = TONES.length;
39
98
  let next = null;
@@ -48,21 +107,36 @@ export function AssistantGrid({ drafts, label, selected, onPick, onRegenerate, r
48
107
  btn?.focus();
49
108
  const tone = TONES[next];
50
109
  if (btn && tone && drafts.drafts)
51
- onPick(tone.key, drafts.drafts[tone.key]);
110
+ pick(tone.key, drafts.drafts[tone.key]);
52
111
  };
53
- return (_jsxs("section", { className: "u-ag", "aria-label": "Drafts", children: [_jsxs("div", { className: "u-ag-h", children: [_jsxs("button", { type: "button", className: "u-ag-toggle", "aria-expanded": open, onClick: onToggle, children: [_jsx("span", { className: "u-ag-spark", children: _jsx(IconSparkles, {}) }), _jsx("span", { className: "u-ag-label", children: label }), _jsx("span", { className: `u-ag-chev${open ? " u-ag-chev-open" : ""}`, children: _jsx(IconChevronDown, {}) })] }), limited && _jsxs("span", { className: "u-ag-by", role: "status", children: ["Try again in ", drafts.retryIn, "s"] }), _jsx("button", { type: "button", className: `u-ag-regen${loading ? " u-ag-spinning" : ""}`, "aria-label": "Regenerate drafts", title: "Regenerate drafts", disabled: loading || limited || regenDisabled, onClick: onRegenerate, children: _jsx(IconRefresh, {}) })] }), open && (refused
112
+ return (_jsxs("section", { className: "u-ag", "aria-label": "Drafts", children: [_jsxs("div", { className: "u-ag-h", children: [_jsxs("button", { type: "button", className: "u-ag-toggle", "aria-expanded": gridOpen, onClick: toggleView, title: gridOpen ? "Back to the compact tone row" : "Show all four drafts in full", children: [_jsx("span", { className: "u-ag-spark", children: _jsx(IconSparkles, {}) }), _jsx("span", { className: "u-ag-label", children: label }), _jsx("span", { className: `u-ag-chev${gridOpen ? " u-ag-chev-open" : ""}`, children: _jsx(IconChevronDown, {}) })] }), limited && _jsxs("span", { className: "u-ag-by", role: "status", children: ["Try again in ", drafts.retryIn, "s"] }), _jsx("button", { type: "button", className: `u-ag-regen${loading ? " u-ag-spinning" : ""}`, "aria-label": "Regenerate drafts", title: "Regenerate drafts", disabled: loading || limited || regenDisabled, onClick: onRegenerate, children: _jsx(IconRefresh, {}) })] }), refused
54
113
  ? _jsx("p", { className: "u-ag-empty", children: "Uplift won't draft this one. Write it yourself." })
55
114
  : planInactive
56
115
  ? (_jsxs("div", { className: "u-ag-empty", role: "status", children: [_jsx("span", { children: "Your Uplift plan isn't active, so drafts are paused." }), onNeedsPlan && _jsx("button", { type: "button", className: "u-retry", onClick: onNeedsPlan, children: "Reactivate" })] }))
57
116
  : drafts.status === "error"
58
117
  ? (_jsxs("div", { className: "u-ag-empty", role: "status", children: [_jsxs("span", { children: ["Couldn't write drafts. ", drafts.error?.message] }), !limited && _jsx("button", { type: "button", className: "u-retry", onClick: onRegenerate, children: "Retry" })] }))
59
- : (_jsx("div", { className: "u-ag-grid", role: "radiogroup", "aria-label": "Pick a draft", "aria-busy": loading, children: TONES.map((t, i) => {
118
+ : (_jsx("div", { className: gridOpen ? "u-ag-grid" : "u-ag-tiles", role: "radiogroup", "aria-label": "Pick a draft", "aria-busy": loading, children: TONES.map((t, i) => {
60
119
  if (loading) {
61
- return (_jsxs("div", { className: "u-ag-cell u-ag-loading", "aria-hidden": "true", children: [_jsx("span", { className: "u-ag-shimmer" }), _jsx("span", { className: "u-ag-loading-txt", children: LOADING_PHRASES[phrase] })] }, t.key));
120
+ return gridOpen
121
+ ? (_jsxs("div", { className: "u-ag-cell u-ag-loading", "aria-hidden": "true", children: [_jsx("span", { className: "u-ag-shimmer" }), _jsx("span", { className: "u-ag-loading-txt", children: LOADING_PHRASES[phrase] })] }, t.key))
122
+ : _jsx("span", { className: "u-ag-tile-shimmer", "aria-hidden": "true" }, t.key);
62
123
  }
63
124
  const text = drafts.drafts?.[t.key] ?? "";
64
- const checked = selected === t.key;
65
- return (_jsxs("button", { ref: (el) => { cells.current[i] = el; }, type: "button", role: "radio", "aria-checked": checked, tabIndex: checked || (selected === null && i === 0) ? 0 : -1, className: "u-ag-cell", title: `Edit this draft — nothing sends until you press send\n\n${text}`, onClick: () => onPick(t.key, text), onKeyDown: onKey(i), children: [_jsxs("span", { className: "u-ag-lab", children: [t.label, _jsx("span", { className: "u-ag-pencil", children: _jsx(IconPencil, {}) })] }), _jsx("span", { className: "u-ag-txt", children: previewText(text) || "…" })] }, t.key));
66
- }) }))), open && footnote && !loading && _jsx("p", { className: "u-ag-foot", children: footnote }), clientFirstName ? null : null] }));
125
+ const checked = current === t.key;
126
+ const { color, Icon } = TONE_STYLE[t.key];
127
+ const common = {
128
+ ref: (el) => { cells.current[i] = el; },
129
+ type: "button",
130
+ role: "radio",
131
+ "aria-checked": checked,
132
+ tabIndex: checked || (current === null && i === 0) ? 0 : -1,
133
+ style: checked ? pressed(color) : undefined,
134
+ onClick: () => pick(t.key, text),
135
+ onKeyDown: onKey(i),
136
+ };
137
+ return gridOpen
138
+ ? (_jsxs("button", { ...common, className: "u-ag-cell", title: `Edit this draft — nothing sends until you press send\n\n${text}`, children: [_jsxs("span", { className: "u-ag-lab", style: { color }, children: [_jsx(Icon, {}), t.label, checked ? _jsx(IconCheck, {}) : _jsx("span", { className: "u-ag-pencil", children: _jsx(IconPencil, {}) })] }), _jsx("span", { className: "u-ag-txt", children: text || "…" })] }, t.key))
139
+ : (_jsxs("button", { ...common, className: "u-ag-tile", "aria-label": `${t.label}: ${text}`, title: `Edit this draft — nothing sends until you press send\n\n${text}`, children: [_jsx("span", { className: "u-ag-tile-ic", style: { color }, children: _jsx(Icon, {}) }), _jsx("span", { className: `u-ag-tile-txt${checked ? " u-ag-tile-on" : ""}`, children: text || "…" })] }, t.key));
140
+ }) })), footnote && !loading && _jsx("p", { className: "u-ag-foot", children: footnote }), clientFirstName ? null : null] }));
67
141
  }
68
142
  //# sourceMappingURL=AssistantGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantGrid.js","sourceRoot":"","sources":["../src/AssistantGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssistantGrid.js","sourceRoot":"","sources":["../src/AssistantGrid.tsx"],"names":[],"mappings":"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"}
@@ -9,17 +9,25 @@ export interface BulkCandidate {
9
9
  connected: boolean;
10
10
  }
11
11
  /**
12
- * Native Uplift's BulkGenerateModal: pick clients (all selected to start), write a prompt (or reuse
13
- * one of the last eight), and generate. The sheet closes as soon as generation starts; progress shows
14
- * on each row. Not-connected clients can be picked too: their drafts come from host activity and
15
- * sending one opens the connect sheet.
12
+ * Native Uplift's BulkGenerateModal: pick clients (all connected ones selected to start), write a
13
+ * prompt (or reuse one of the last eight), and generate. The sheet closes as soon as generation starts;
14
+ * progress shows on each row. Not-connected clients start unselected; with `onConnect`, picking one
15
+ * connects them first (Ian, 2026-10-20), and without it they can be picked and drafted from host activity.
16
16
  */
17
- export declare function BulkGenerateSheet({ candidates, now, onClose, onGenerate, onEditInstructions }: {
17
+ export declare function BulkGenerateSheet({ candidates, now, onClose, onGenerate, onEditInstructions, onConnect, initialPrompt, initialSelected }: {
18
18
  candidates: ReadonlyArray<BulkCandidate>;
19
19
  now: Date;
20
20
  onClose: () => void;
21
21
  onGenerate: (targets: BulkTarget[], prompt: string) => void;
22
22
  /** Shown as "Edit AI instructions" when the coach can edit their AI rules. */
23
23
  onEditInstructions?: (() => void) | undefined;
24
+ /** Picking a not-connected client starts connecting them, carrying what the sheet holds so far. */
25
+ onConnect?: ((c: BulkCandidate, state: {
26
+ prompt: string;
27
+ selected: string[];
28
+ }) => void) | undefined;
29
+ /** Restores the sheet after a connect: the prompt and the picked `kind:id` keys. */
30
+ initialPrompt?: string | undefined;
31
+ initialSelected?: ReadonlyArray<string> | undefined;
24
32
  }): import("react").JSX.Element;
25
33
  //# sourceMappingURL=BulkGenerateSheet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BulkGenerateSheet.d.ts","sourceRoot":"","sources":["../src/BulkGenerateSheet.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,yFAAyF;AACzF,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAE5E,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAAG,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE;AAgBpH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE;IAC9F,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACzC,GAAG,EAAE,IAAI,CAAC;IACV,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/C,+BA8FA"}
1
+ {"version":3,"file":"BulkGenerateSheet.d.ts","sourceRoot":"","sources":["../src/BulkGenerateSheet.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,yFAAyF;AACzF,eAAO,MAAM,2BAA2B,mCAAmC,CAAC;AAE5E,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAAG,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE;AAgBpH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAkB,EAAE,eAAe,EAAE,EAAE;IAC9I,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACzC,GAAG,EAAE,IAAI,CAAC;IACV,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9C,mGAAmG;IACnG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpG,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CACrD,+BA2GA"}
@@ -25,27 +25,39 @@ function saveHistory(list) {
25
25
  catch { /* private mode */ }
26
26
  }
27
27
  /**
28
- * Native Uplift's BulkGenerateModal: pick clients (all selected to start), write a prompt (or reuse
29
- * one of the last eight), and generate. The sheet closes as soon as generation starts; progress shows
30
- * on each row. Not-connected clients can be picked too: their drafts come from host activity and
31
- * sending one opens the connect sheet.
28
+ * Native Uplift's BulkGenerateModal: pick clients (all connected ones selected to start), write a
29
+ * prompt (or reuse one of the last eight), and generate. The sheet closes as soon as generation starts;
30
+ * progress shows on each row. Not-connected clients start unselected; with `onConnect`, picking one
31
+ * connects them first (Ian, 2026-10-20), and without it they can be picked and drafted from host activity.
32
32
  */
33
- export function BulkGenerateSheet({ candidates, now, onClose, onGenerate, onEditInstructions }) {
33
+ export function BulkGenerateSheet({ candidates, now, onClose, onGenerate, onEditInstructions, onConnect, initialPrompt = "", initialSelected }) {
34
34
  const keyOf = (c) => `${c.target.kind}:${c.target.id}`;
35
- const [selected, setSelected] = useState(() => new Set(candidates.map(keyOf)));
36
- const [prompt, setPrompt] = useState("");
35
+ // Only connected clients can be picked straight away when the host can connect the rest.
36
+ const pickable = (c) => c.connected || !onConnect;
37
+ const [selected, setSelected] = useState(() => new Set(initialSelected ?? candidates.filter(pickable).map(keyOf)));
38
+ const [prompt, setPrompt] = useState(initialPrompt);
37
39
  const [history, setHistory] = useState(loadHistory);
38
40
  const promptRef = useRef(null);
39
41
  // Start in the prompt, like native. Deferred: Sheet focuses its first control after this effect.
40
42
  useEffect(() => { const t = setTimeout(() => promptRef.current?.focus(), 0); return () => clearTimeout(t); }, []);
41
43
  const picked = useMemo(() => candidates.filter((c) => selected.has(keyOf(c))), [candidates, selected]); // eslint-disable-line react-hooks/exhaustive-deps
42
- const allSelected = candidates.length > 0 && picked.length === candidates.length;
44
+ const selectable = candidates.filter(pickable);
45
+ // Who can be picked leads; the ones to connect follow.
46
+ const shown = useMemo(() => [...candidates.filter(pickable), ...candidates.filter((c) => !pickable(c))], [candidates, onConnect]); // eslint-disable-line react-hooks/exhaustive-deps
47
+ const allSelected = selectable.length > 0 && selectable.every((c) => selected.has(keyOf(c)));
43
48
  const canGenerate = prompt.trim().length > 0 && picked.length > 0;
44
49
  const toggle = (k) => setSelected((s) => { const n = new Set(s); if (n.has(k))
45
50
  n.delete(k);
46
51
  else
47
52
  n.add(k); return n; });
48
- const toggleAll = () => setSelected(allSelected ? new Set() : new Set(candidates.map(keyOf)));
53
+ const toggleAll = () => setSelected(allSelected ? new Set() : new Set(selectable.map(keyOf)));
54
+ const choose = (c) => {
55
+ const k = keyOf(c);
56
+ if (pickable(c) || selected.has(k))
57
+ toggle(k);
58
+ else
59
+ onConnect?.(c, { prompt, selected: [...selected] });
60
+ };
49
61
  const generate = () => {
50
62
  if (!canGenerate)
51
63
  return;
@@ -56,10 +68,12 @@ export function BulkGenerateSheet({ candidates, now, onClose, onGenerate, onEdit
56
68
  onGenerate(picked.map((c) => c.target), p);
57
69
  onClose();
58
70
  };
59
- return (_jsxs(Sheet, { labelledBy: "u-bulk-title", onClose: onClose, children: [_jsxs("div", { className: "u-bulk-head", children: [_jsx("span", { className: "u-bulk-spark", "aria-hidden": "true", children: _jsx(IconSparkles, {}) }), _jsxs("div", { className: "u-bulk-titles", children: [_jsx("h3", { id: "u-bulk-title", children: BULK_GENERATE_FEATURE_TITLE }), _jsxs("p", { className: "u-bulk-sub", children: ["Describe what you want to say\u2014we'll suggest draft options per client.", onEditInstructions && _jsxs(_Fragment, { children: [" ", _jsx("button", { type: "button", className: "u-linkbtn", onClick: onEditInstructions, children: "Edit AI instructions" })] })] })] }), _jsx("button", { type: "button", className: "u-iconbtn", "aria-label": "Close", title: "Close", onClick: onClose, children: _jsx(IconX, {}) })] }), _jsxs("section", { className: "u-bulk-sec", "aria-labelledby": "u-bulk-to", children: [_jsxs("div", { className: "u-bulk-sechead", children: [_jsx("span", { id: "u-bulk-to", className: "u-bulk-label", children: "To" }), _jsx("button", { type: "button", className: "u-linkbtn", onClick: toggleAll, children: allSelected ? "Deselect all" : `Select all (${candidates.length})` })] }), _jsxs("div", { className: "u-bulk-chips", children: [candidates.length === 0 && _jsx("span", { className: "u-bulk-empty", children: "No clients yet." }), candidates.map((c) => {
71
+ return (_jsxs(Sheet, { labelledBy: "u-bulk-title", onClose: onClose, children: [_jsxs("div", { className: "u-bulk-head", children: [_jsx("span", { className: "u-bulk-spark", "aria-hidden": "true", children: _jsx(IconSparkles, {}) }), _jsxs("div", { className: "u-bulk-titles", children: [_jsx("h3", { id: "u-bulk-title", children: BULK_GENERATE_FEATURE_TITLE }), _jsxs("p", { className: "u-bulk-sub", children: ["Describe what you want to say\u2014we'll suggest draft options per client.", onEditInstructions && _jsxs(_Fragment, { children: [" ", _jsx("button", { type: "button", className: "u-linkbtn", onClick: onEditInstructions, children: "Edit AI instructions" })] })] })] }), _jsx("button", { type: "button", className: "u-iconbtn", "aria-label": "Close", title: "Close", onClick: onClose, children: _jsx(IconX, {}) })] }), _jsxs("section", { className: "u-bulk-sec", "aria-labelledby": "u-bulk-to", children: [_jsxs("div", { className: "u-bulk-sechead", children: [_jsx("span", { id: "u-bulk-to", className: "u-bulk-label", children: "To" }), _jsx("button", { type: "button", className: "u-linkbtn", onClick: toggleAll, children: allSelected ? "Deselect all" : `Select all (${selectable.length})` })] }), _jsxs("div", { className: "u-bulk-chips", children: [candidates.length === 0 && _jsx("span", { className: "u-bulk-empty", children: "No clients yet." }), shown.map((c) => {
60
72
  const k = keyOf(c);
61
73
  const on = selected.has(k);
62
- return (_jsxs("button", { type: "button", className: `u-bulk-chip${on ? " u-bulk-chip-on" : ""}`, "aria-pressed": on, onClick: () => toggle(k), title: c.connected ? c.name : `${c.name}: not connected yet. Drafts come from their activity; sending asks you to connect them.`, children: [_jsx("span", { className: "u-bulk-av", style: { background: avatarColor(c.target.id), opacity: c.connected ? 1 : 0.7 }, "aria-hidden": "true", children: initials(c.name) }), _jsx("span", { className: "u-bulk-name", children: c.name }), c.lastActiveAt && _jsx("span", { className: "u-bulk-meta", children: relativeShort(c.lastActiveAt, now) })] }, k));
74
+ return (_jsxs("button", { type: "button", className: `u-bulk-chip${on ? " u-bulk-chip-on" : ""}`, "aria-pressed": on, onClick: () => choose(c), "aria-label": c.connected || !onConnect ? undefined : `${c.name}, not connected: connect to include`, title: c.connected ? c.name : onConnect ? `${c.name} isn't connected to Uplift yet. Pick to connect them.` : `${c.name}: not connected yet. Drafts come from their activity; sending asks you to connect them.`, children: [_jsx("span", { className: "u-bulk-av", style: { background: avatarColor(c.target.id), opacity: c.connected ? 1 : 0.7 }, "aria-hidden": "true", children: initials(c.name) }), _jsx("span", { className: "u-bulk-name", children: c.name }), !c.connected && onConnect
75
+ ? _jsx("span", { className: "u-bulk-meta", children: "Connect" })
76
+ : c.lastActiveAt && _jsx("span", { className: "u-bulk-meta", children: relativeShort(c.lastActiveAt, now) })] }, k));
63
77
  })] })] }), _jsxs("section", { className: "u-bulk-sec", children: [_jsx("div", { className: "u-bulk-sechead", children: _jsx("label", { htmlFor: "u-bulk-prompt", className: "u-bulk-label", children: "Prompt" }) }), _jsx("textarea", { id: "u-bulk-prompt", ref: promptRef, rows: 4, maxLength: PROMPT_MAX, className: "u-bulk-prompt", value: prompt, onChange: (e) => setPrompt(e.target.value), placeholder: "e.g. Check in with each client based on the time of day and their most recent update." }), history.length > 0 && (_jsxs("div", { className: "u-bulk-hist", children: [_jsx("span", { className: "u-bulk-histlabel", children: "Recent:" }), history.map((h) => (_jsx("button", { type: "button", className: "u-bulk-histbtn", title: h, onClick: () => { setPrompt(h); promptRef.current?.focus(); }, children: h.length > 48 ? `${h.slice(0, 48)}…` : h }, h)))] }))] }), _jsxs("div", { className: "u-bulk-foot", children: [_jsx("button", { type: "button", className: "u-secondary", onClick: onClose, children: "Cancel" }), _jsxs("button", { type: "button", className: "u-send u-bulk-go", disabled: !canGenerate, onClick: generate, children: [_jsx(IconSparkles, {}), "Generate for ", picked.length, " client", picked.length === 1 ? "" : "s"] })] })] }));
64
78
  }
65
79
  //# sourceMappingURL=BulkGenerateSheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BulkGenerateSheet.js","sourceRoot":"","sources":["../src/BulkGenerateSheet.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BulkGenerateSheet.js","sourceRoot":"","sources":["../src/BulkGenerateSheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,yFAAyF;AACzF,MAAM,CAAC,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAK5E,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAChD,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3G,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACxB,CAAC;AACD,SAAS,WAAW,CAAC,IAAc;IACjC,IAAI,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,GAAG,EAAE,EAAE,eAAe,EAY3I;IACC,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IACtE,yFAAyF;IACzF,MAAM,QAAQ,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC;IACjE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,eAAe,IAAI,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAW,WAAW,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,MAAM,CAA6B,IAAI,CAAC,CAAC;IAC3D,iGAAiG;IACjG,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,kDAAkD;IAC1J,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,uDAAuD;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,kDAAkD;IACrL,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAElE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;QAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChI,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,CAAC,CAAgB,EAAE,EAAE;QAClC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC;;YACzC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC1E,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,KAAK,IAAC,UAAU,EAAC,cAAc,EAAC,OAAO,EAAE,OAAO,aAC/C,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAM,SAAS,EAAC,cAAc,iBAAa,MAAM,YAAC,KAAC,YAAY,KAAG,GAAO,EACzE,eAAK,SAAS,EAAC,eAAe,aAC5B,aAAI,EAAE,EAAC,cAAc,YAAE,2BAA2B,GAAM,EACxD,aAAG,SAAS,EAAC,YAAY,2FAEtB,kBAAkB,IAAI,mCAAG,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAE,kBAAkB,qCAA+B,IAAG,IACjI,IACA,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,gBAAY,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,OAAO,YAAE,KAAC,KAAK,KAAG,GAAS,IAC7G,EAEN,mBAAS,SAAS,EAAC,YAAY,qBAAiB,WAAW,aACzD,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAM,EAAE,EAAC,WAAW,EAAC,SAAS,EAAC,cAAc,mBAAU,EACvD,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAE,SAAS,YAAG,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,UAAU,CAAC,MAAM,GAAG,GAAU,IACzI,EACN,eAAK,SAAS,EAAC,cAAc,aAC1B,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,eAAM,SAAS,EAAC,cAAc,gCAAuB,EAChF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACf,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gCACnB,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCAC3B,OAAO,CACL,kBAAgB,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,kBAAgB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,gBAClH,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,qCAAqC,EAClG,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,uDAAuD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,yFAAyF,aAC/M,eAAM,SAAS,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,iBAAc,MAAM,YAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAQ,EACzJ,eAAM,SAAS,EAAC,aAAa,YAAE,CAAC,CAAC,IAAI,GAAQ,EAC5C,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS;4CACxB,CAAC,CAAC,eAAM,SAAS,EAAC,aAAa,wBAAe;4CAC9C,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,eAAM,SAAS,EAAC,aAAa,YAAE,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,GAAQ,KAPpF,CAAC,CAQL,CACV,CAAC;4BACJ,CAAC,CAAC,IACE,IACE,EAEV,mBAAS,SAAS,EAAC,YAAY,aAC7B,cAAK,SAAS,EAAC,gBAAgB,YAAC,gBAAO,OAAO,EAAC,eAAe,EAAC,SAAS,EAAC,cAAc,uBAAe,GAAM,EAC5G,mBACE,EAAE,EAAC,eAAe,EAClB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,UAAU,EACrB,SAAS,EAAC,eAAe,EACzB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EAAC,uFAAuF,GACnG,EACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAM,SAAS,EAAC,kBAAkB,wBAAe,EAChD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,iBAAgB,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,YAC5H,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAD9B,CAAC,CAEL,CACV,CAAC,IACE,CACP,IACO,EAEV,eAAK,SAAS,EAAC,aAAa,aAC1B,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,aAAa,EAAC,OAAO,EAAE,OAAO,uBAAiB,EAC/E,kBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,kBAAkB,EAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,aAC1F,KAAC,YAAY,KAAG,mBAAc,MAAM,CAAC,MAAM,aAAS,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAC3E,IACL,IACA,CACT,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClientList.d.ts","sourceRoot":"","sources":["../src/ClientList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAgD,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGzG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,+FAA+F;IAC/F,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,0HAA0H;IAC1H,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0HAA0H;IAC1H,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0HAA0H;IAC1H,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3C,qGAAqG;IACrG,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC;IACjE,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnE,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,0IAA0I;IAC1I,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,GAAG,EAAE,IAAI,CAAC;CACX;AAyBD,wBAAgB,UAAU,CAAC,CAAC,EAAE,eAAe,+BAgE5C"}
1
+ {"version":3,"file":"ClientList.d.ts","sourceRoot":"","sources":["../src/ClientList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,EAAgD,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGzG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,+FAA+F;IAC/F,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,0HAA0H;IAC1H,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0HAA0H;IAC1H,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0HAA0H;IAC1H,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3C,qGAAqG;IACrG,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC;IACjE,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnE,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,0IAA0I;IAC1I,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,GAAG,EAAE,IAAI,CAAC;CACX;AAyBD,wBAAgB,UAAU,CAAC,CAAC,EAAE,eAAe,+BA4D5C"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useRef, useState } from "react";
3
3
  import { hostNeedsAttention } from "./host.js";
4
- import { IconSearch, IconPlus, IconClock, IconLoader, IconZap, IconMessageSquare, IconMessagesSquare, IconSparklesLucide, IconArrowUpRight, IconActivity, IconAlert } from "./icons.js";
4
+ import { IconSearch, IconPlus, IconClock, IconLoader, IconZap, IconMessageSquare, IconMessagesSquare, IconSparklesLucide, IconArrowUpRight, IconActivity, IconAlert, IconChevronRight } from "./icons.js";
5
5
  import { ChannelBadge } from "./ChannelBadge.js";
6
6
  import { avatarColor, initials, statusTag, SORT_MODES } from "./labels.js";
7
7
  import { QuickSend } from "./QuickSend.js";
@@ -19,11 +19,11 @@ function SearchBox({ value, onChange }) {
19
19
  }
20
20
  export function ClientList(p) {
21
21
  const anyRows = p.rows.length > 0;
22
- return (_jsxs("div", { className: "u-list", children: [_jsxs("div", { className: "u-toolbar", children: [_jsx(SearchBox, { value: p.search, onChange: p.onSearch }), _jsx("div", { className: "u-sortgroup", role: "group", "aria-label": "Sort clients", children: SORT_MODES.map((m) => (_jsx("button", { type: "button", "aria-pressed": p.sort === m.id, onClick: () => p.onSort(m.id), children: m.label }, m.id))) }), p.onBulk && (_jsxs("button", { type: "button", className: "u-bulkbtn", onClick: p.onBulk, disabled: p.bulkDisabled, "aria-label": "Bulk generate", title: "AI drafts for multiple clients", children: [_jsx(IconSparklesLucide, {}), _jsx(IconMessagesSquare, {})] })), !p.hostManaged && _jsx("button", { type: "button", className: "u-iconbtn u-addbtn", "aria-label": "Add client", title: "Add client", onClick: p.onAddClient, children: _jsx(IconPlus, {}) }), p.headActions && _jsx("span", { className: "u-toolbar-acts", children: p.headActions })] }), p.status === "loading" && p.rows.length === 0 && _jsx(SkeletonRows, {}), p.status === "error" && (_jsxs("div", { className: "u-state", role: "alert", children: [_jsx("h3", { children: "Couldn't load clients" }), _jsx("p", { children: p.error?.message }), _jsx("button", { type: "button", className: "u-retry", onClick: p.onRetry, children: "Retry" })] })), p.status === "ready" && p.totalCount === 0 && (_jsxs("div", { className: "u-state", children: [_jsx("h3", { children: "Your clients' activity shows up here" }), p.hostManaged
22
+ return (_jsxs("div", { className: "u-list", children: [_jsxs("div", { className: "u-toolbar", children: [_jsx(SearchBox, { value: p.search, onChange: p.onSearch }), _jsx("div", { className: "u-sortgroup", role: "group", "aria-label": "Sort clients", children: SORT_MODES.map((m) => (_jsx("button", { type: "button", "aria-pressed": p.sort === m.id, onClick: () => p.onSort(m.id), children: m.label }, m.id))) }), !p.hostManaged && _jsx("button", { type: "button", className: "u-iconbtn u-addbtn", "aria-label": "Add client", title: "Add client", onClick: p.onAddClient, children: _jsx(IconPlus, {}) }), p.headActions && _jsx("span", { className: "u-toolbar-acts", children: p.headActions })] }), p.status === "loading" && p.rows.length === 0 && _jsx(SkeletonRows, {}), p.status === "error" && (_jsxs("div", { className: "u-state", role: "alert", children: [_jsx("h3", { children: "Couldn't load clients" }), _jsx("p", { children: p.error?.message }), _jsx("button", { type: "button", className: "u-retry", onClick: p.onRetry, children: "Retry" })] })), p.status === "ready" && p.totalCount === 0 && (_jsxs("div", { className: "u-state", children: [_jsx("h3", { children: "Your clients' activity shows up here" }), p.hostManaged
23
23
  ? _jsxs("p", { children: ["Add clients in ", p.hostName ?? "your app", " and they appear here with their workouts. Connect any of them to Uplift for check-in drafts ready to send; Uplift spots who's gone quiet and drafts the message for you."] })
24
- : (_jsxs(_Fragment, { children: [_jsx("p", { children: "Add a client and their workouts appear here with check-in drafts ready to send. Uplift spots who's gone quiet and drafts the message for you." }), _jsx("button", { type: "button", className: "u-send", onClick: p.onAddClient, children: "Add a client" })] })), _jsx(ExampleStrip, {})] })), p.status === "ready" && p.totalCount > 0 && !anyRows && (_jsxs("div", { className: "u-state", children: [_jsxs("h3", { children: ["No clients match \u201C", p.search.trim(), "\u201D"] }), _jsx("button", { type: "button", className: "u-retry", onClick: () => p.onSearch(""), children: "Clear search" })] })), anyRows && (_jsx("ul", { className: "u-rows", children: p.rows.map((r) => (r.kind === "client"
25
- ? _jsx(Row, { client: r.client, selected: r.client.id === p.selectedId, onOpen: p.onOpen, drafts: p.drafts[r.client.id] ?? null, bulk: p.bulkStatus?.[r.client.id] ?? null, onQuickSent: p.onQuickSent, now: p.now }, r.client.id)
26
- : _jsx(HostRow, { host: r.host, hostName: p.hostName ?? "your app", selected: p.selectedId === `host:${r.host.id}`, onOpen: p.onOpenHost, onConnect: p.onConnectHost, drafts: p.drafts[`host:${r.host.id}`] ?? null, bulk: p.bulkStatus?.[`host:${r.host.id}`] ?? null, now: p.now }, `host:${r.host.id}`))) }))] }));
24
+ : (_jsxs(_Fragment, { children: [_jsx("p", { children: "Add a client and their workouts appear here with check-in drafts ready to send. Uplift spots who's gone quiet and drafts the message for you." }), _jsx("button", { type: "button", className: "u-send", onClick: p.onAddClient, children: "Add a client" })] })), _jsx(ExampleStrip, {})] })), p.status === "ready" && p.totalCount > 0 && !anyRows && (_jsxs("div", { className: "u-state", children: [_jsxs("h3", { children: ["No clients match \u201C", p.search.trim(), "\u201D"] }), _jsx("button", { type: "button", className: "u-retry", onClick: () => p.onSearch(""), children: "Clear search" })] })), anyRows && (_jsxs("ul", { className: "u-rows", children: [p.rows.map((r) => (r.kind === "client"
25
+ ? _jsx(Row, { client: r.client, selected: r.client.id === p.selectedId, onOpen: p.onOpen, drafts: p.drafts[r.client.id] ?? null, bulk: p.bulkStatus?.[r.client.id] ?? null, onQuickSent: p.onQuickSent, now: p.now }, r.client.id)
26
+ : _jsx(HostRow, { host: r.host, hostName: p.hostName ?? "your app", selected: p.selectedId === `host:${r.host.id}`, onOpen: p.onOpenHost, onConnect: p.onConnectHost, drafts: p.drafts[`host:${r.host.id}`] ?? null, bulk: p.bulkStatus?.[`host:${r.host.id}`] ?? null, now: p.now }, `host:${r.host.id}`))), p.onBulk && (_jsx("li", { className: "u-bulkrow", role: "none", children: _jsxs("button", { type: "button", className: "u-bulkbtn", onClick: p.onBulk, disabled: p.bulkDisabled, title: "AI drafts for multiple clients", children: [_jsx(IconSparklesLucide, {}), _jsx(IconMessagesSquare, {}), _jsx("span", { children: "Bulk generate" })] }) }))] }))] }));
27
27
  }
28
28
  /** The row preview, like native ClientRow's PreviewBody: the newest thread item with a direction icon, or the status line. */
29
29
  function Preview({ client, now }) {
@@ -49,9 +49,9 @@ function Row({ client, selected, onOpen, drafts, bulk, onQuickSent, now }) {
49
49
  // A fresh bulk draft overrides the one Uplift prepared, like native.
50
50
  const quick = drafts ?? client.drafts ?? null;
51
51
  const at = client.lastActivity?.at ?? client.lastContactAt;
52
- return (_jsxs("li", { className: `${unread > 0 ? "u-row-unread" : ""}${client.followUpDue ? " u-row-follow" : ""}`, children: [_jsxs("button", { type: "button", className: "u-row-open", "aria-current": selected, onClick: () => onOpen(client), children: [_jsx("span", { className: "u-r-ind", "aria-hidden": unread === 0, children: unread > 1 ? _jsx("span", { className: "u-r-badge", "aria-label": `${unread} unread events`, title: `${unread} unread events`, children: unread }) : unread === 1 ? _jsx("span", { className: "u-r-dot", "aria-label": "Unread activity" }) : null }), _jsxs("span", { className: "u-av-wrap u-r-av", children: [_jsx("span", { className: "u-av", style: { background: avatarColor(client.id) }, "aria-hidden": "true", children: initials(client.name) }), _jsx(ChannelBadge, { channel: client.channel })] }), _jsxs("span", { className: "u-r-top", children: [_jsx("span", { className: `u-r-name${unread > 0 ? " u-r-name-unread" : ""}`, children: client.name }), client.followUpDue && _jsx("span", { className: "u-r-follow", title: "Follow up \u2014 you messaged over 24 hours ago with no reply", "aria-label": "Follow up \u2014 no reply in over 24 hours", children: _jsx(IconClock, {}) }), client.lastDeliveryFailure && _jsx("span", { className: "u-r-fail", title: `Message not delivered — ${client.lastDeliveryFailure.errorDesc || "delivery failed"}`, "aria-label": "Last message not delivered", children: _jsx(IconAlert, {}) }), _jsx("span", { className: "u-r-time", children: relativeShort(at, now) })] }), _jsx(Preview, { client: client, now: now }), _jsx("span", { className: "u-r-tags", children: tag && _jsx("span", { className: `u-tag u-${tag.kind}`, children: tag.text }) })] }), bulk === "pending" || (bulk === "error" && !drafts)
52
+ return (_jsxs("li", { className: `${unread > 0 ? "u-row-unread" : ""}${client.followUpDue ? " u-row-follow" : ""}`, children: [_jsxs("button", { type: "button", className: "u-row-open", "aria-current": selected, onClick: () => onOpen(client), children: [_jsx("span", { className: "u-r-ind", "aria-hidden": unread === 0, children: unread > 1 ? _jsx("span", { className: "u-r-badge", "aria-label": `${unread} unread events`, title: `${unread} unread events`, children: unread }) : unread === 1 ? _jsx("span", { className: "u-r-dot", "aria-label": "Unread activity" }) : null }), _jsxs("span", { className: "u-av-wrap u-r-av", children: [_jsx("span", { className: "u-av", style: { background: avatarColor(client.id) }, "aria-hidden": "true", children: initials(client.name) }), _jsx(ChannelBadge, { channel: client.channel })] }), _jsxs("span", { className: "u-r-top", children: [_jsx("span", { className: `u-r-name${unread > 0 ? " u-r-name-unread" : ""}`, children: client.name }), client.followUpDue && _jsx("span", { className: "u-r-follow", title: "Follow up \u2014 you messaged over 24 hours ago with no reply", "aria-label": "Follow up \u2014 no reply in over 24 hours", children: _jsx(IconClock, {}) }), client.lastDeliveryFailure && _jsx("span", { className: "u-r-fail", title: `Message not delivered — ${client.lastDeliveryFailure.errorDesc || "delivery failed"}`, "aria-label": "Last message not delivered", children: _jsx(IconAlert, {}) }), _jsx("span", { className: "u-r-time", children: relativeShort(at, now) }), _jsx("span", { className: "u-r-chev", "aria-hidden": "true", children: _jsx(IconChevronRight, {}) })] }), _jsx(Preview, { client: client, now: now }), _jsx("span", { className: "u-r-tags", children: tag && _jsx("span", { className: `u-tag u-${tag.kind}`, children: tag.text }) })] }), bulk === "pending" || (bulk === "error" && !drafts)
53
53
  ? _jsx(BulkChip, { status: bulk })
54
- : quick && (_jsx("span", { className: "u-r-quick", onClick: (e) => e.stopPropagation(), children: _jsx(QuickSend, { client: client, drafts: quick, onSent: onQuickSent }, quick.five_words || quick.happy) }))] }));
54
+ : quick && (_jsx("span", { className: "u-r-quick", onClick: (e) => e.stopPropagation(), children: _jsx(QuickSend, { client: client, drafts: quick, source: drafts ? "bulk" : "reply_options", onSent: onQuickSent }, quick.five_words || quick.happy) }))] }));
55
55
  }
56
56
  /** D19: a host client who is not on Uplift. Opens the preview pane; never a thread. */
57
57
  function HostRow({ host, hostName, selected, onOpen, onConnect, drafts, bulk, now }) {
@@ -60,7 +60,7 @@ function HostRow({ host, hostName, selected, onOpen, onConnect, drafts, bulk, no
60
60
  const label = words.length <= 6 ? short : `${words.slice(0, 6).join(" ")}…`;
61
61
  const quiet = hostNeedsAttention(host, now);
62
62
  const line = host.lastActiveAt ? `Last active in ${hostName} ${relativeAgo(host.lastActiveAt, now)}` : `No ${hostName} activity yet`;
63
- return (_jsxs("li", { children: [_jsxs("button", { type: "button", className: "u-row-open", "aria-current": selected, onClick: () => onOpen?.(host), children: [_jsx("span", { className: "u-av", style: { background: avatarColor(host.id), opacity: 0.7 }, "aria-hidden": "true", children: initials(host.name) }), _jsxs("span", { className: "u-r-top", children: [_jsx("span", { className: "u-r-name", children: host.name }), _jsx("span", { className: "u-r-time", children: relativeShort(host.lastActiveAt, now) })] }), _jsx("span", { className: "u-r-line", children: line })] }), _jsxs("span", { className: "u-r-tags u-r-hosttags", children: [quiet && _jsx("span", { className: "u-tag u-need", children: "Quiet" }), onConnect
63
+ return (_jsxs("li", { children: [_jsxs("button", { type: "button", className: "u-row-open", "aria-current": selected, onClick: () => onOpen?.(host), children: [_jsx("span", { className: "u-av", style: { background: avatarColor(host.id), opacity: 0.7 }, "aria-hidden": "true", children: initials(host.name) }), _jsxs("span", { className: "u-r-top", children: [_jsx("span", { className: "u-r-name", children: host.name }), _jsx("span", { className: "u-r-time", children: relativeShort(host.lastActiveAt, now) }), _jsx("span", { className: "u-r-chev", "aria-hidden": "true", children: _jsx(IconChevronRight, {}) })] }), _jsx("span", { className: "u-r-line", children: line })] }), _jsxs("span", { className: "u-r-tags u-r-hosttags", children: [quiet && _jsx("span", { className: "u-tag u-need", children: "Quiet" }), onConnect
64
64
  ? _jsx("button", { type: "button", className: "u-tag u-tag-connect", title: `Connect ${host.name.split(" ")[0]} to Uplift`, onClick: () => onConnect(host), children: "Not connected" })
65
65
  : _jsx("span", { className: "u-tag", children: "Not connected" })] }), bulk === "pending" || (bulk === "error" && !drafts)
66
66
  ? _jsx(BulkChip, { status: bulk })
@@ -1 +1 @@
1
- {"version":3,"file":"ClientList.js","sourceRoot":"","sources":["../src/ClientList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientList.js","sourceRoot":"","sources":["../src/ClientList.tsx"],"names":[],"mappings":"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"}
@@ -30,6 +30,10 @@ export interface ComposerProps {
30
30
  body: string;
31
31
  attachments: Attachment[];
32
32
  }) => void;
33
+ /** A worded send button, e.g. "Connect to send" for a client who isn't connected yet: its name and title. */
34
+ sendLabel?: string | undefined;
35
+ /** The word shown before the send icon on that button, e.g. "Connect". */
36
+ sendText?: string | undefined;
33
37
  /** Absent for a not-connected client: nothing can be in flight. */
34
38
  send?: SendState | undefined;
35
39
  /** S1 free-tier wall: open the offer. */
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../src/Composer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAe,MAAM,eAAe,CAAC;AAM3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,SAAS,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC1H,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,uCAAuC;IACvC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gHAAgH;IAChH,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,qFAAqF;IACrF,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,UAAU,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE,mEAAmE;IACnE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,yCAAyC;IACzC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,eAAe,KAAK,IAAI,CAAC;IACjE,4GAA4G;IAC5G,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,sGAAsG;IACtG,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,+BAqJxC"}
1
+ {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../src/Composer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAe,MAAM,eAAe,CAAC;AAK3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,SAAS,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC1H,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,uCAAuC;IACvC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,gHAAgH;IAChH,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,qFAAqF;IACrF,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,MAAM,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,UAAU,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE,6GAA6G;IAC7G,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,mEAAmE;IACnE,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,yCAAyC;IACzC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,eAAe,KAAK,IAAI,CAAC;IACjE,4GAA4G;IAC5G,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,sGAAsG;IACtG,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,+BAkJxC"}
package/dist/Composer.js CHANGED
@@ -2,8 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
3
  import { AssistantGrid } from "./AssistantGrid.js";
4
4
  import { AttachmentPicker, PICK_ACCEPT } from "./AttachmentPicker.js";
5
- import { ComposerExtras } from "./ComposerExtras.js";
6
- import { IconPlus, IconSend, IconSliders, IconSparkles } from "./icons.js";
5
+ import { IconPlus, IconSend, IconSliders, IconSparkles, IconX } from "./icons.js";
7
6
  import { channelLabel, firstName } from "./labels.js";
8
7
  import { SegmentEditor } from "./SegmentEditor.js";
9
8
  import { previewSmsCost } from "./smsSegments.js";
@@ -18,14 +17,11 @@ export function Composer(p) {
18
17
  const first = firstName(p.recipient.name);
19
18
  const sending = p.send?.status === "sending";
20
19
  const attachmentsOn = p.attachments ?? !!p.recipient.id;
21
- const [extrasCollapsed, setExtrasCollapsed] = useState(false);
22
- const [gridOpen, setGridOpen] = useState(true);
23
20
  const [attachMenu, setAttachMenu] = useState(null);
24
21
  const [genMenu, setGenMenu] = useState(false);
25
22
  const [attach, setAttach] = useState({ count: 0, uploading: false, ready: 0, recording: false, errors: false });
26
23
  const picker = useRef(null);
27
- // A generate into a collapsed stack would land where the coach can't see it: expand first.
28
- const generate = useCallback((purpose) => { setGenMenu(false); setExtrasCollapsed(false); setGridOpen(true); p.onGenerate(purpose); }, [p]);
24
+ const generate = useCallback((purpose) => { setGenMenu(false); p.onGenerate(purpose); }, [p]);
29
25
  const hasText = p.text.trim().length > 0;
30
26
  const showSend = hasText || attach.ready > 0 || sending;
31
27
  // WhatsApp only carries media inside the 24-hour window; outside it Uplift refuses the whole send.
@@ -57,12 +53,12 @@ export function Composer(p) {
57
53
  picker.current?.clear(); }, [p.send?.status]);
58
54
  const pickAttachment = (accept) => { setAttachMenu(null); picker.current?.openPicker(accept); };
59
55
  const recordVoiceNote = () => { setAttachMenu(null); picker.current?.startRecording(); };
60
- return (_jsxs("div", { className: "u-composer", children: [_jsx(ComposerExtras, { collapsed: extrasCollapsed, onToggle: setExtrasCollapsed, hasContent: p.drafts.status !== "idle", children: _jsx(AssistantGrid, { drafts: p.drafts, label: p.draftsLabel, footnote: p.draftsFootnote, selected: p.selectedTone, onPick: p.onPick, onRegenerate: () => generate(), regenDisabled: p.generateDisabled, open: gridOpen, onToggle: () => setGridOpen((o) => !o), clientFirstName: first, onNeedsPlan: () => p.onNeedsPlan("plan_inactive") }) }), attachmentsOn && (_jsxs("div", { className: "u-attach-row", style: { display: attach.count > 0 || attach.recording ? "flex" : "none" }, children: [_jsx(AttachmentPicker, { ref: picker, clientId: p.recipient.id, onChange: setAttach }), attach.count > 0 && (mediaBlocked
56
+ return (_jsxs("div", { className: `u-composer${attachMenu || genMenu ? " u-composer-menu" : ""}`, children: [_jsx(AssistantGrid, { drafts: p.drafts, label: p.draftsLabel, footnote: p.draftsFootnote, selected: p.selectedTone, onPick: p.onPick, onRegenerate: () => generate(), regenDisabled: p.generateDisabled, composerEmpty: !hasText, clientFirstName: first, onNeedsPlan: () => p.onNeedsPlan("plan_inactive") }), attachmentsOn && (_jsxs("div", { className: "u-attach-row", style: { display: attach.count > 0 || attach.recording ? "flex" : "none" }, children: [_jsx(AttachmentPicker, { ref: picker, clientId: p.recipient.id, onChange: setAttach }), attach.count > 0 && (mediaBlocked
61
57
  ? _jsx("span", { className: "u-limits u-limits-warn", role: "status", children: mediaWaitNote(first) })
62
58
  : _jsx("span", { className: "u-limits", children: limitsNote }))] })), smsCost && (_jsxs("span", { className: "u-sms-note", role: "status", children: ["Too long for one text \u2014 this will arrive as ", smsCost.parts, " messages (", smsCost.segments, " SMS parts).", smsCost.encoding === "UCS-2" && " Emoji and special characters more than halve how much fits in each."] })), _jsxs("div", { className: "u-c-row", children: [_jsxs("div", { className: "u-attach-wrap", children: [attachMenu && (_jsxs(_Fragment, { children: [_jsx("div", { className: "u-menu-backdrop", onClick: () => setAttachMenu(null) }), _jsx("div", { className: "u-menu u-menu-left", role: "menu", "aria-label": "Attach", children: attachMenu === "main"
63
59
  ? (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: () => pickAttachment(PICK_ACCEPT.photo), children: "Photo" }), _jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: () => pickAttachment(PICK_ACCEPT.video), children: "Video" }), _jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: () => pickAttachment(PICK_ACCEPT.file), children: "File (PDF)" }), _jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: () => setAttachMenu("more"), children: "More\u2026" })] }))
64
- : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: () => setAttachMenu("main"), children: "\u2190 Back" }), _jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: recordVoiceNote, children: "Voice note" }), _jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: () => pickAttachment("audio/*"), children: "Audio file" })] })) })] })), _jsx("button", { type: "button", className: "u-attach-btn", onClick: () => setAttachMenu((m) => (m ? null : "main")), disabled: !attachmentsOn || sending || attach.recording, title: attachmentsOn ? "Attach" : `Connect ${first} to attach files`, "aria-label": "Attach", "aria-expanded": !!attachMenu, children: _jsx(IconPlus, {}) })] }), _jsxs("div", { className: `u-pill${p.inject?.locked ? " u-pill-locked" : ""}`, children: [_jsx("div", { className: "u-pill-grow", children: _jsx(SegmentEditor, { ariaLabel: `Message to ${p.recipient.name}`, placeholder: "Write your message here\u2026", value: p.text, onChange: p.onText, inject: p.inject, disabled: sending, readOnly: !!p.inject?.locked }) }), showSend
65
- ? (_jsx("button", { type: "button", className: "u-send-btn", onClick: send, disabled: !canSend, "aria-busy": sending, title: "Send", "aria-label": "Send message", children: _jsx(IconSend, {}) }))
60
+ : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: () => setAttachMenu("main"), children: "\u2190 Back" }), _jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: recordVoiceNote, children: "Voice note" }), _jsx("button", { type: "button", role: "menuitem", className: "u-menu-item", onClick: () => pickAttachment("audio/*"), children: "Audio file" })] })) })] })), _jsx("button", { type: "button", className: "u-attach-btn", onClick: () => setAttachMenu((m) => (m ? null : "main")), disabled: !attachmentsOn || sending || attach.recording, title: attachmentsOn ? "Attach" : `Connect ${first} to attach files`, "aria-label": "Attach", "aria-expanded": !!attachMenu, children: _jsx(IconPlus, {}) })] }), _jsxs("div", { className: `u-pill${p.inject?.locked ? " u-pill-locked" : ""}${p.drafts.status === "loading" && !hasText ? " u-pill-gen" : ""}`, children: [_jsx("div", { className: "u-pill-grow", children: _jsx(SegmentEditor, { ariaLabel: `Message to ${p.recipient.name}`, placeholder: "Write your message here\u2026", value: p.text, onChange: p.onText, inject: p.inject, disabled: sending, readOnly: !!p.inject?.locked, onEscape: p.inject?.locked ? undefined : () => p.onText("") }) }), p.text.trim() !== "" && !p.inject?.locked && (_jsx("button", { type: "button", className: "u-clear-btn", onClick: () => p.onText(""), disabled: sending, title: "Clear (Esc)", "aria-label": "Clear message", children: _jsx(IconX, {}) })), showSend
61
+ ? (_jsxs("button", { type: "button", className: `u-send-btn${p.sendText ? " u-send-btn-text" : ""}`, onClick: send, disabled: !canSend, "aria-busy": sending, title: p.sendLabel ?? "Send", "aria-label": p.sendLabel ?? "Send message", children: [p.sendText, _jsx(IconSend, {})] }))
66
62
  : (_jsx("button", { type: "button", className: "u-gen-btn", onClick: () => (p.purposes ? setGenMenu((o) => !o) : generate()), disabled: p.generateDisabled, title: "Generate message", "aria-label": "Generate message", "aria-expanded": p.purposes ? genMenu : undefined, children: _jsx(IconSparkles, {}) })), genMenu && p.purposes && (_jsxs(_Fragment, { children: [_jsx("div", { className: "u-menu-backdrop", onClick: () => setGenMenu(false) }), _jsxs("div", { className: "u-menu u-menu-right", role: "menu", "aria-label": "Generate message", children: [_jsxs("div", { className: "u-menu-titlerow", children: [_jsx("span", { className: "u-menu-title", children: "Generate message" }), p.onCustomize && (_jsx("button", { type: "button", className: "u-menu-cfg", onClick: () => { setGenMenu(false); p.onCustomize?.(); }, title: "Customize these options", "aria-label": "Customize proactive options", children: _jsx(IconSliders, {}) }))] }), p.purposes.map((pu) => (_jsxs("button", { type: "button", role: "menuitem", className: "u-menu-item u-menu-purpose", onClick: () => generate(pu), title: pu.prompt, children: [_jsx(pu.Icon, {}), _jsx("span", { children: pu.label })] }, pu.id)))] })] }))] })] }), p.send?.status === "error" && p.send.error && _jsx(SendNote, { error: p.send.error, first: first, onRetry: send, onNeedsPlan: p.onNeedsPlan })] }));
67
63
  }
68
64
  /** D11: typed send errors, placed under the composer. The text above is never cleared. */