@hiver/connector-agent 4.14.0-slack2-beta.3 → 4.14.0-slack3-beta.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/features/connector-cards/hooks/useUserAuthFlow.d.ts.map +1 -1
- package/features/connector-cards/store/userAuth.d.ts.map +1 -1
- package/features/slack/api/conversations.d.ts +1 -1
- package/features/slack/api/conversations.d.ts.map +1 -1
- package/features/slack/api/linked-conv.d.ts +2 -2
- package/features/slack/api/members.d.ts +1 -1
- package/features/slack/api/members.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/ChannelStateView.d.ts +21 -0
- package/features/slack/components/LinkedConversationPanel/ChannelStateView.d.ts.map +1 -0
- package/features/slack/components/LinkedConversationPanel/Composer.d.ts +5 -0
- package/features/slack/components/LinkedConversationPanel/Composer.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/MentionPicker.d.ts +8 -4
- package/features/slack/components/LinkedConversationPanel/MentionPicker.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/MessageItem.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/NotMemberTooltip.d.ts +5 -0
- package/features/slack/components/LinkedConversationPanel/NotMemberTooltip.d.ts.map +1 -0
- package/features/slack/components/LinkedConversationPanel/ThreadDetailView.d.ts +0 -1
- package/features/slack/components/LinkedConversationPanel/ThreadDetailView.d.ts.map +1 -1
- package/features/slack/components/LinkedConversationPanel/index.d.ts.map +1 -1
- package/features/slack/components/StartModal/MentionTextarea.d.ts +28 -0
- package/features/slack/components/StartModal/MentionTextarea.d.ts.map +1 -0
- package/features/slack/components/StartModal/SlackChannelTab.d.ts.map +1 -1
- package/features/slack/components/StartModal/SlackThreadTab.d.ts +2 -1
- package/features/slack/components/StartModal/SlackThreadTab.d.ts.map +1 -1
- package/features/slack/components/StartModal/index.d.ts.map +1 -1
- package/features/slack/components/StartModal/style.d.ts +1 -0
- package/features/slack/components/StartModal/style.d.ts.map +1 -1
- package/features/slack/components/figma-tokens.d.ts +3 -1
- package/features/slack/components/figma-tokens.d.ts.map +1 -1
- package/features/slack/context.d.ts +14 -0
- package/features/slack/context.d.ts.map +1 -1
- package/features/slack/hooks/useNow.d.ts +3 -0
- package/features/slack/hooks/useNow.d.ts.map +1 -0
- package/features/slack/hooks/useSlackTabLabel.d.ts.map +1 -1
- package/features/slack/types/wire.d.ts +7 -2
- package/features/slack/types/wire.d.ts.map +1 -1
- package/features/slack/utils/emoji.d.ts +7 -0
- package/features/slack/utils/emoji.d.ts.map +1 -0
- package/features/slack/utils/mentions.d.ts +18 -0
- package/features/slack/utils/mentions.d.ts.map +1 -0
- package/features/slack/utils/text.d.ts +7 -0
- package/features/slack/utils/text.d.ts.map +1 -0
- package/index.es.js +17259 -14258
- package/index.umd.js +619 -613
- package/package.json +1 -1
- package/features/slack/components/LinkedConversationPanel/LeftChannelBanner.d.ts +0 -26
- package/features/slack/components/LinkedConversationPanel/LeftChannelBanner.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserAuthFlow.d.ts","sourceRoot":"","sources":["../../../../src/features/connector-cards/hooks/useUserAuthFlow.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAkB9F,UAAU,sBAAsB;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,qBAAqB,
|
|
1
|
+
{"version":3,"file":"useUserAuthFlow.d.ts","sourceRoot":"","sources":["../../../../src/features/connector-cards/hooks/useUserAuthFlow.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAkB9F,UAAU,sBAAsB;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,qBAAqB,CAgNhH;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,QAqB3E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,kBAGd,MAAM,UAKvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userAuth.d.ts","sourceRoot":"","sources":["../../../../src/features/connector-cards/store/userAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;GASG;AAEH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,cAAc,GACd,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE;QAAE,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAC;CACzD;AAMD,UAAU,qBAAqB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,mBAAmB;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;
|
|
1
|
+
{"version":3,"file":"userAuth.d.ts","sourceRoot":"","sources":["../../../../src/features/connector-cards/store/userAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;GASG;AAEH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,cAAc,GACd,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE;QAAE,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAC;CACzD;AAMD,UAAU,qBAAqB;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,mBAAmB;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAmBD,UAAU,YAAY;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa;IAItB;;;;;OAKG;wFACmC,aAAa,CAAC,qBAAqB,CAAC;IAsB1E;;;;;;OAMG;kFAC6B,aAAa,CAAC,mBAAmB,CAAC;oFAiBhC,aAAa,CAAC,iBAAiB,CAAC;mFAUjC,aAAa,CAAC,gBAAgB,CAAC;gFASlC,aAAa,CAAC,aAAa,CAAC;+EAW7B,aAAa,CAAC,YAAY,CAAC;oFAI1D,CAAC;AAEH,eAAO,MACL,sBAAsB,iHACtB,gBAAgB,yGAChB,kBAAkB,yGAClB,iBAAiB,uGACjB,cAAc,iGACd,aAAa,6FACU,CAAC;;AAE1B,wBAAqC;AAMrC,eAAO,MAAM,mBAAmB,UAAW,SAAS,eAAe,MAAM,KAAG,aACxB,CAAC;AAErD,eAAO,MAAM,mBAAmB,UAAW,SAAS,eAAe,MAAM,KAAG,aAC7B,CAAC;AAEhD,eAAO,MAAM,qBAAqB,UAAW,SAAS,eAAe,MAAM,KAAG,OACf,CAAC;AAEhE,eAAO,MAAM,gBAAgB,UAAW,SAAS,eAAe,MAAM,KAAG,MAAM,GAAG,SAC9B,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,UAAW,SAAS,KAAG,MAAM,GAAG,SAK1E,CAAC"}
|
|
@@ -11,7 +11,7 @@ export interface SlackPageParams {
|
|
|
11
11
|
}
|
|
12
12
|
export declare const startExistingChannel: (payload: StartExistingChannelRequest) => Promise<StartResponse>;
|
|
13
13
|
export declare const startNewChannel: (payload: StartNewChannelRequest) => Promise<StartResponse>;
|
|
14
|
-
export declare const getExternalConversation: (hiverConvId: string, page?: SlackPageParams) => Promise<ExternalConversation>;
|
|
14
|
+
export declare const getExternalConversation: (hiverConvId: string, page?: SlackPageParams) => Promise<ExternalConversation | null>;
|
|
15
15
|
/**
|
|
16
16
|
* Imperative older-page fetch for the message list. Bypasses the polled
|
|
17
17
|
* page-0 query: pass the previous page's nextCursor as `beforeTs` to walk
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/api/conversations.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,oBAAoB,EAEpB,cAAc,EAGd,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/api/conversations.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,oBAAoB,EAEpB,cAAc,EAGd,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6DD,eAAO,MAAM,oBAAoB,YAAmB,2BAA2B,KAAG,OAAO,CAAC,aAAa,CAQtG,CAAC;AAEF,eAAO,MAAM,eAAe,YAAmB,sBAAsB,KAAG,OAAO,CAAC,aAAa,CAQ5F,CAAC;AAeF,eAAO,MAAM,uBAAuB,gBACrB,MAAM,SACZ,eAAe,KACrB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAsBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,gBACzB,MAAM,YACT,MAAM,aACL,MAAM,KAChB,OAAO,CAAC,cAAc,CASxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,gBACP,MAAM,YACT,MAAM,SACT,eAAe,KACrB,OAAO,CAAC,gBAAgB,CAQ1B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,gBACX,MAAM,YACT,MAAM,YACN,MAAM,aACL,MAAM,KAChB,OAAO,CAAC,cAAc,CAQxB,CAAC;AAEF,eAAO,MAAM,gCAAgC,WAAkB;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,KAAG,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAUrC,CAAC"}
|
|
@@ -4,12 +4,12 @@ import { ExternalConversation, SlackThreadGroup } from '../types/wire';
|
|
|
4
4
|
* stopgap until VS's websocket setup lands ([[plan-slack-m1-phase-X]]
|
|
5
5
|
* — Cross-repo dependency #10) — events don't push into the UI yet,
|
|
6
6
|
* so we pull on a timer to keep inbound Slack messages visible. The
|
|
7
|
-
*
|
|
7
|
+
* 2s default is chosen to be perceptually "live" without hammering
|
|
8
8
|
* the backend; set this constant (or override via `refetchIntervalMs`
|
|
9
9
|
* arg to `useLinkedConversation`) when ws ships and we want to drop
|
|
10
10
|
* the timer.
|
|
11
11
|
*/
|
|
12
|
-
export declare const LINKED_CONV_POLL_INTERVAL_MS =
|
|
12
|
+
export declare const LINKED_CONV_POLL_INTERVAL_MS = 2000;
|
|
13
13
|
/**
|
|
14
14
|
* Reads the linked Slack thread for a Hiver conversation, if any.
|
|
15
15
|
* Returns `null` on 404 (no link yet) and surfaces other errors
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChannelMember } from '../types/wire';
|
|
2
|
-
export declare const getChannelMembers: (hiverConvId
|
|
2
|
+
export declare const getChannelMembers: (hiverConvId?: string, channelId?: string) => Promise<ChannelMember[]>;
|
|
3
3
|
/**
|
|
4
4
|
* Cached channel-members query. Used by the linked-conv panel to
|
|
5
5
|
* resolve `<@USER_ID>` mention tokens to display names, and by the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/api/members.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/api/members.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,eAAO,MAAM,iBAAiB,iBAAwB,MAAM,cAAc,MAAM,KAAG,OAAO,CAAC,aAAa,EAAE,CAgBzG,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,UAAO,0EAQpE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Centered empty-state shown in the message area (replacing history) when the
|
|
4
|
+
* linked Slack channel can't be read by this viewer. Two variants, per Figma
|
|
5
|
+
* frames 1046:18769 (delink badge) and 1052:174648 (lock badge):
|
|
6
|
+
*
|
|
7
|
+
* - 'channel_unavailable' → channel archived/deleted; "no longer available"
|
|
8
|
+
* - 'no_access' → private channel the viewer isn't in
|
|
9
|
+
*
|
|
10
|
+
* The "channel card" illustration mirrors the Figma node structure 1:1 — exact
|
|
11
|
+
* gradients/shadows/positions from the design — and the red status badge is the
|
|
12
|
+
* EXACT vector exported from Figma (Frame 2147240252), not a re-draw. The
|
|
13
|
+
* composer still renders below (disabled), so this fills only the scrollable
|
|
14
|
+
* message region.
|
|
15
|
+
*/
|
|
16
|
+
type ChannelStateVariant = 'channel_unavailable' | 'no_access';
|
|
17
|
+
export declare const ChannelStateView: FC<{
|
|
18
|
+
variant: ChannelStateVariant;
|
|
19
|
+
}>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=ChannelStateView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelStateView.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/ChannelStateView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAK3B;;;;;;;;;;;;;GAaG;AAEH,KAAK,mBAAmB,GAAG,qBAAqB,GAAG,WAAW,CAAC;AAmI/D,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC;IAAE,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAyBjE,CAAC"}
|
|
@@ -17,6 +17,11 @@ interface ComposerProps {
|
|
|
17
17
|
* event's `link_type` metadata. Derived from the conversation's
|
|
18
18
|
* `targetKind` by the parent panel. */
|
|
19
19
|
linkType?: 'thread' | 'channel';
|
|
20
|
+
/** Read-only/blocked presentation: textarea + emoji + Send are inert.
|
|
21
|
+
* Used by the panel when the viewer can't post (public-left, no-access,
|
|
22
|
+
* archived) — the composer stays visible but does nothing. The "why" is
|
|
23
|
+
* surfaced by the parent (NotMemberTooltip / ChannelStateView). */
|
|
24
|
+
disabled?: boolean;
|
|
20
25
|
}
|
|
21
26
|
/**
|
|
22
27
|
* Composer per Figma 683:667012. Plain textarea + emoji /
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/Composer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/Composer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAoE,MAAM,OAAO,CAAC;AAuB7F,UAAU,aAAa;IACrB;oEACgE;IAChE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD;wEACoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;oDACgD;IAChD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;4CAEwC;IACxC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC;;;wEAGoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAwetC,CAAC"}
|
|
@@ -4,7 +4,11 @@ interface MentionPickerProps {
|
|
|
4
4
|
anchor: HTMLElement | null;
|
|
5
5
|
query: string;
|
|
6
6
|
members: ChannelMember[];
|
|
7
|
+
/** Index of the row the keyboard has highlighted (drives Enter-select). */
|
|
8
|
+
highlightIdx: number;
|
|
7
9
|
onPick: (member: ChannelMember) => void;
|
|
10
|
+
/** Keep highlight in sync with mouse hover so click + keyboard agree. */
|
|
11
|
+
onHighlightChange: (idx: number) => void;
|
|
8
12
|
onClose: () => void;
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
@@ -13,10 +17,10 @@ interface MentionPickerProps {
|
|
|
13
17
|
* 24px avatar + display name (Inter Medium 13/19 slate-body).
|
|
14
18
|
* Filtered by the `query` substring after the `@` keystroke.
|
|
15
19
|
*
|
|
16
|
-
* Keyboard handling lives in the parent
|
|
17
|
-
*
|
|
18
|
-
* renders the list + handles row clicks.
|
|
19
|
-
* translated by the parent into onPick calls.
|
|
20
|
+
* Keyboard handling lives in the parent composer (so the textarea keeps
|
|
21
|
+
* focus while the popover navigates); `highlightIdx` is owned there and
|
|
22
|
+
* passed down. This component renders the list + handles row clicks/hover.
|
|
23
|
+
* ArrowUp/Down + Enter are translated by the parent into onPick calls.
|
|
20
24
|
*/
|
|
21
25
|
export declare const MentionPicker: FC<MentionPickerProps>;
|
|
22
26
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionPicker.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/MentionPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"MentionPicker.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/MentionPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAa,MAAM,OAAO,CAAC;AAMtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,UAAU,kBAAkB;IAC1B,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,yEAAyE;IACzE,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAiFhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/MessageItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAgC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/MessageItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAgC,MAAM,OAAO,CAAC;AAUzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAYhE,UAAU,gBAAgB;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB;wEACoE;IACpE,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;kCAE8B;IAC9B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;2EACuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgJD;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAqJ5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotMemberTooltip.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/NotMemberTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AA0CzC,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,CAI3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadDetailView.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/ThreadDetailView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAyC,MAAM,OAAO,CAAC;AA8ElE,UAAU,qBAAqB;IAC7B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"ThreadDetailView.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/ThreadDetailView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAyC,MAAM,OAAO,CAAC;AA8ElE,UAAU,qBAAqB;IAC7B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA6HtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAA8D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAA8D,MAAM,OAAO,CAAC;AAuBvF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,uBAAuB,EAAE,EAuTrC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
interface MentionTextareaProps {
|
|
3
|
+
/** Human-readable draft (with "@DisplayName" literals). */
|
|
4
|
+
value: string;
|
|
5
|
+
/** Reports both the display text and the Slack-mention form (picked
|
|
6
|
+
* mentions rewritten to `<@user_id>`) so the parent can show one and
|
|
7
|
+
* post the other. */
|
|
8
|
+
onChange: (displayText: string, slackText: string) => void;
|
|
9
|
+
/** Slack channel the agent picked in the Start flow. Members are fetched
|
|
10
|
+
* for this channel (no link exists yet, so we can't resolve via the conv).
|
|
11
|
+
* Mentions are disabled until a channel is selected. */
|
|
12
|
+
channelId: string | null;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
autoFocus?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Bug 1 — message field for the Start flow that resolves @-mentions to real
|
|
18
|
+
* Slack mentions, mirroring the thread-reply Composer. Without this the Start
|
|
19
|
+
* compose posted "@name" as literal text and nobody was notified.
|
|
20
|
+
*
|
|
21
|
+
* Controlled: the parent owns the draft string (so Cancel can reset it — see
|
|
22
|
+
* Bug 8). This component owns only the transient mention map + picker state,
|
|
23
|
+
* and reuses the shared MentionPicker + mention helpers so keyboard nav
|
|
24
|
+
* (Bug 4) and `<@id>` conversion behave identically in both composers.
|
|
25
|
+
*/
|
|
26
|
+
export declare const MentionTextarea: FC<MentionTextareaProps>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=MentionTextarea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MentionTextarea.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/MentionTextarea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAoE,MAAM,OAAO,CAAC;AAgB7F,UAAU,oBAAoB;IAC5B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd;;0BAEsB;IACtB,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D;;6DAEyD;IACzD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAwJpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackChannelTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/SlackChannelTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAA2B,MAAM,OAAO,CAAC;AAQpD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7C;AA6BD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,
|
|
1
|
+
{"version":3,"file":"SlackChannelTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/SlackChannelTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAA2B,MAAM,OAAO,CAAC;AAQpD;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7C;AA6BD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAgGpD,CAAC"}
|
|
@@ -3,7 +3,8 @@ interface SlackThreadTabProps {
|
|
|
3
3
|
channelId: string | null;
|
|
4
4
|
message: string;
|
|
5
5
|
onChannelChange: (channelId: string | null) => void;
|
|
6
|
-
|
|
6
|
+
/** Reports both the human-readable draft and the Slack-mention form. */
|
|
7
|
+
onMessageChange: (message: string, slackText: string) => void;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
10
|
* UI-3 — Slack thread tab body. Pick an existing channel and write
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackThreadTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/SlackThreadTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SlackThreadTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/SlackThreadTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAkB,MAAM,OAAO,CAAC;AAU3C,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,wEAAwE;IACxE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAiElD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAyB,MAAM,OAAO,CAAC;AA+BlD,UAAU,eAAe;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;6DACyD;IACzD,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAID;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAkM1C,CAAC"}
|
|
@@ -33,6 +33,7 @@ export declare const SelectValue: StyledComponent<BoxProps>;
|
|
|
33
33
|
export declare const MemberChip: StyledComponent<BoxProps>;
|
|
34
34
|
export declare const ChipRemove: StyledComponent<IconButtonProps>;
|
|
35
35
|
export declare const MessageTextarea: StyledComponent<React.TextareaHTMLAttributes<HTMLTextAreaElement>>;
|
|
36
|
+
export declare const FormError: StyledComponent<BoxProps>;
|
|
36
37
|
export declare const CancelButton: StyledComponent<ButtonProps>;
|
|
37
38
|
export declare const PrimaryButton: StyledComponent<ButtonProps>;
|
|
38
39
|
//# sourceMappingURL=style.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;;;;;;;;;GAWG;AAIH,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAOhD,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,UAAU,CAOnD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,QAAQ,CAMjD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,eAAe,CAY1D,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAKlD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAIhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,UAAU,CAKnD,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAO9C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CA8BzE,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAOhD,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAehD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAelF,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,WAAW,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CA4BlF,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,QAAQ,CAMjD,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAchD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,eAAe,CAUvD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CA6B9F,CAAC;AAOF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,WAAW,CA0BrD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,WAAW,CAuBtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;;;;;;;;;GAWG;AAIH,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAOhD,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,UAAU,CAOnD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,QAAQ,CAMjD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,eAAe,CAY1D,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAKlD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAIhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,UAAU,CAKnD,CAAC;AAIF,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAO9C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,WAAW,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CA8BzE,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAOhD,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAehD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAelF,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,WAAW,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,CA4BlF,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,QAAQ,CAMjD,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAchD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,eAAe,CAUvD,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CA6B9F,CAAC;AAIF,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,QAAQ,CAK/C,CAAC;AAOF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,WAAW,CA0BrD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,WAAW,CAuBtD,CAAC"}
|
|
@@ -31,6 +31,8 @@ export declare const slackTokens: {
|
|
|
31
31
|
readonly slateSurfaceSubtle100: "#f1f5f9";
|
|
32
32
|
readonly slateSurface150: "#edf1f6";
|
|
33
33
|
readonly slateSurfaceDisabled: "#e2e8f0";
|
|
34
|
+
readonly slateSurfaceDark600: "#475569";
|
|
35
|
+
readonly errorTextSubtle: "#b81717";
|
|
34
36
|
readonly primarySurfaceDefault: "#276cf0";
|
|
35
37
|
readonly primaryBorderDefault: "#276cf0";
|
|
36
38
|
readonly primarySurfaceSubtle: "#e6effd";
|
|
@@ -58,7 +60,7 @@ export declare const slackTokens: {
|
|
|
58
60
|
readonly full: 9999;
|
|
59
61
|
};
|
|
60
62
|
readonly font: {
|
|
61
|
-
readonly family: "
|
|
63
|
+
readonly family: "'Hanken Grotesk', system-ui, sans-serif";
|
|
62
64
|
readonly weightRegular: 400;
|
|
63
65
|
readonly weightMedium: 500;
|
|
64
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figma-tokens.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/components/figma-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"figma-tokens.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/components/figma-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Ed,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC"}
|
|
@@ -31,6 +31,20 @@ export interface SlackContextData {
|
|
|
31
31
|
* at the call site (`sendTrackingEvent?.(...)`).
|
|
32
32
|
*/
|
|
33
33
|
sendTrackingEvent?: (event: string, data?: ITrackingData) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Host-injected emoji picker. The composer renders only the trigger button;
|
|
36
|
+
* when the agent clicks it we hand the host the button's DOM node plus a
|
|
37
|
+
* sink for the chosen emoji, and the host renders its own picker anchored
|
|
38
|
+
* there. This lets outlook-ui reuse its exact Vue emoji picker (pixel-
|
|
39
|
+
* identical to the rest of the app) without embedding Vue in this React
|
|
40
|
+
* library. When absent (dev mounts / hosts that don't inject one), the
|
|
41
|
+
* composer falls back to a small built-in emoji grid.
|
|
42
|
+
*/
|
|
43
|
+
openEmojiPicker?: (args: {
|
|
44
|
+
anchorEl: HTMLElement;
|
|
45
|
+
onSelect: (emoji: string) => void;
|
|
46
|
+
onClose?: () => void;
|
|
47
|
+
}) => void;
|
|
34
48
|
}
|
|
35
49
|
export declare const SlackContextProvider: FC<{
|
|
36
50
|
value: SlackContextData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/features/slack/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,EAAE,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/features/slack/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,EAAE,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAClE;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;CACtH;AAID,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAErF,CAAC;AAKF,eAAO,MAAM,eAAe,QAAO,gBAMlC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNow.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/hooks/useNow.ts"],"names":[],"mappings":"AAsCA,6DAA6D;AAC7D,eAAO,MAAM,MAAM,QAAO,MAAmE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlackTabLabel.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/hooks/useSlackTabLabel.ts"],"names":[],"mappings":"AAEA,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd;;uDAEmD;IACnD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"useSlackTabLabel.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/hooks/useSlackTabLabel.ts"],"names":[],"mappings":"AAEA,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd;;uDAEmD;IACnD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAiBnE"}
|
|
@@ -61,10 +61,15 @@ export interface SlackThreadGroup {
|
|
|
61
61
|
}
|
|
62
62
|
/** Why the current viewer can't post into the linked channel. Backend
|
|
63
63
|
* computes this per-request against the viewer's OWN Slack token:
|
|
64
|
-
* - 'not_in_channel' →
|
|
64
|
+
* - 'not_in_channel' → public channel the viewer left; history is
|
|
65
|
+
* still readable, so we keep it visible and show
|
|
66
|
+
* a "not a member" banner over a disabled composer
|
|
67
|
+
* - 'no_access' → private channel the viewer isn't in (or can no
|
|
68
|
+
* longer resolve) → "You don't have access"
|
|
69
|
+
* - 'channel_unavailable' → channel archived/deleted → "no longer available"
|
|
65
70
|
* - 'slack_not_connected' → no active Slack auth for this viewer
|
|
66
71
|
* Null/undefined when the viewer can post. */
|
|
67
|
-
export type SlackPostBlockReason = 'not_in_channel' | 'slack_not_connected';
|
|
72
|
+
export type SlackPostBlockReason = 'not_in_channel' | 'no_access' | 'channel_unavailable' | 'slack_not_connected';
|
|
68
73
|
export interface ExternalConversation {
|
|
69
74
|
hiverConvId: string;
|
|
70
75
|
channelId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/types/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB;;uDAEmD;IACnD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAIzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;6BAGyB;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;oCAEgC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;sEACsE;AACtE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD;0EAC0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB;;;iDAG6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/types/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB;;uDAEmD;IACnD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAIzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;6BAGyB;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;oCAEgC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;sEACsE;AACtE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD;0EAC0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB;;;iDAG6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;+CAS+C;AAC/C,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,WAAW,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAElH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;yDACqD;IACrD,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB;6CACyC;IACzC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAK7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;0EACsE;IACtE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;6DACyD;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACrD;AAED;;;;2DAI2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B;mDAC+C;IAC/C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB;2DACuD;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,YAAY,CAAC;IAC5B,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb;sEACkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replace Slack `:shortcode:` tokens in a message with their unicode glyphs.
|
|
3
|
+
* Unknown / custom shortcodes are left untouched (no regression). Display-only:
|
|
4
|
+
* the stored/edited text keeps the original colon form for re-send.
|
|
5
|
+
*/
|
|
6
|
+
export declare const renderSlackEmoji: (text: string) => string;
|
|
7
|
+
//# sourceMappingURL=emoji.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emoji.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/utils/emoji.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,KAAG,MAAwC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ChannelMember } from '../types/wire';
|
|
2
|
+
export interface MentionRef {
|
|
3
|
+
/** "@DisplayName" literal as it appears in the textarea. */
|
|
4
|
+
displayText: string;
|
|
5
|
+
externalUserId: string;
|
|
6
|
+
}
|
|
7
|
+
/** Substring (case-insensitive) filter for the @-mention dropdown. Shared by
|
|
8
|
+
* the picker (what it renders) and the composers (what Enter selects) so the
|
|
9
|
+
* two never drift. */
|
|
10
|
+
export declare const filterMembers: (members: ChannelMember[], query: string) => ChannelMember[];
|
|
11
|
+
/**
|
|
12
|
+
* Rewrite each tracked "@DisplayName" to Slack's `<@external_user_id>` mention
|
|
13
|
+
* syntax before sending, so the mentioned user is actually notified. Only
|
|
14
|
+
* mentions picked from the dropdown are converted — a hand-typed "@Sarah" is
|
|
15
|
+
* sent literally (no fake-mention guessing).
|
|
16
|
+
*/
|
|
17
|
+
export declare const toSlackMentions: (text: string, mentions: MentionRef[]) => string;
|
|
18
|
+
//# sourceMappingURL=mentions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/utils/mentions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;uBAEuB;AACvB,eAAO,MAAM,aAAa,YAAa,aAAa,EAAE,SAAS,MAAM,KAAG,aAAa,EACV,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SAAU,MAAM,YAAY,UAAU,EAAE,KAAG,MAItE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True when `value` contains at least one visible glyph once invisible /
|
|
3
|
+
* zero-width characters and surrounding whitespace are stripped. Use this for
|
|
4
|
+
* "is the field empty?" / Send-enabled checks instead of `value.trim()`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const hasVisibleContent: (value: string) => boolean;
|
|
7
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/utils/text.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,OAAkE,CAAC"}
|