@hiver/connector-agent 4.18.0-slackm2-beta.2 → 4.18.0-slackm2-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/app/hig-slack/HigSlackSection.d.ts.map +1 -1
  2. package/app/hig-slack/style.d.ts +8 -1
  3. package/app/hig-slack/style.d.ts.map +1 -1
  4. package/context/react-query-client-provider/index.d.ts.map +1 -1
  5. package/features/slack/api/channels.d.ts +11 -7
  6. package/features/slack/api/channels.d.ts.map +1 -1
  7. package/features/slack/api/effective-config.d.ts.map +1 -1
  8. package/features/slack/components/LinkedConversationPanel/ChannelThreadGroup.d.ts.map +1 -1
  9. package/features/slack/components/LinkedConversationPanel/Composer.d.ts.map +1 -1
  10. package/features/slack/components/LinkedConversationPanel/LinkedChannelHeader.d.ts.map +1 -1
  11. package/features/slack/components/LinkedConversationPanel/MessageItem.d.ts +12 -0
  12. package/features/slack/components/LinkedConversationPanel/MessageItem.d.ts.map +1 -1
  13. package/features/slack/components/LinkedConversationPanel/ThreadDetailView.d.ts.map +1 -1
  14. package/features/slack/components/LinkedConversationPanel/ThreadSkeleton.d.ts +3 -1
  15. package/features/slack/components/LinkedConversationPanel/ThreadSkeleton.d.ts.map +1 -1
  16. package/features/slack/components/LinkedConversationPanel/index.d.ts.map +1 -1
  17. package/features/slack/components/LinkedConversationPanel/style.d.ts +34 -9
  18. package/features/slack/components/LinkedConversationPanel/style.d.ts.map +1 -1
  19. package/features/slack/components/ReauthIllustration.d.ts +15 -0
  20. package/features/slack/components/ReauthIllustration.d.ts.map +1 -0
  21. package/features/slack/components/SlackConversationTab.d.ts.map +1 -1
  22. package/features/slack/components/SlackReauthScreen.d.ts +25 -0
  23. package/features/slack/components/SlackReauthScreen.d.ts.map +1 -0
  24. package/features/slack/components/StartModal/MentionTextarea.d.ts +4 -12
  25. package/features/slack/components/StartModal/MentionTextarea.d.ts.map +1 -1
  26. package/features/slack/components/StartModal/SlackChannelTab.d.ts +2 -0
  27. package/features/slack/components/StartModal/SlackChannelTab.d.ts.map +1 -1
  28. package/features/slack/components/StartModal/SlackThreadTab.d.ts.map +1 -1
  29. package/features/slack/components/StartModal/__tests__/MentionTextarea.test.d.ts +2 -0
  30. package/features/slack/components/StartModal/__tests__/MentionTextarea.test.d.ts.map +1 -0
  31. package/features/slack/components/StartModal/__tests__/SlackThreadTab.test.d.ts +2 -0
  32. package/features/slack/components/StartModal/__tests__/SlackThreadTab.test.d.ts.map +1 -0
  33. package/features/slack/components/StartModal/index.d.ts.map +1 -1
  34. package/features/slack/hooks/__tests__/useReauthStatusRefetch.test.d.ts +2 -0
  35. package/features/slack/hooks/__tests__/useReauthStatusRefetch.test.d.ts.map +1 -0
  36. package/features/slack/hooks/useReauthStatusRefetch.d.ts +32 -0
  37. package/features/slack/hooks/useReauthStatusRefetch.d.ts.map +1 -0
  38. package/features/slack/messageType.d.ts +5 -0
  39. package/features/slack/messageType.d.ts.map +1 -1
  40. package/features/slack/types/wire.d.ts +12 -0
  41. package/features/slack/types/wire.d.ts.map +1 -1
  42. package/features/slack/utils/format-timestamp.d.ts +1 -1
  43. package/features/slack/utils/format-timestamp.d.ts.map +1 -1
  44. package/features/slack/utils/render-mentions.d.ts +4 -4
  45. package/index.es.js +9100 -8876
  46. package/index.umd.js +593 -527
  47. package/main-dev.d.ts.map +1 -1
  48. package/package.json +1 -1
  49. package/testing/mocks/handlers/slack.d.ts +3 -0
  50. package/testing/mocks/handlers/slack.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"HigSlackSection.d.ts","sourceRoot":"","sources":["../../../src/app/hig-slack/HigSlackSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAkC,MAAM,OAAO,CAAC;AAQ3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAiCjE,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD;yEACqE;IACrE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAiNF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAIpD,CAAC"}
1
+ {"version":3,"file":"HigSlackSection.d.ts","sourceRoot":"","sources":["../../../src/app/hig-slack/HigSlackSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAkC,MAAM,OAAO,CAAC;AAQ3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAiCjE,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD;yEACqE;IACrE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAmOF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAIpD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BoxProps, StackProps, TypographyProps } from '@hiver/hiver-ui-kit';
1
+ import { BoxProps, ButtonProps, StackProps, TypographyProps } from '@hiver/hiver-ui-kit';
2
2
  import { StyledComponent } from '@emotion/styled';
3
3
  /**
4
4
  * HigSlackSection accordion shell (§0 Addendum). The section must look
@@ -20,6 +20,13 @@ export declare const CountBadge: StyledComponent<BoxProps>;
20
20
  export declare const AccordionBody: StyledComponent<StackProps>;
21
21
  /** Invitational body copy shared by the connect / start-new states. */
22
22
  export declare const SectionBody: StyledComponent<TypographyProps>;
23
+ /**
24
+ * Start-new CTA for the section's connected/no-link state — Slack brand
25
+ * aubergine (#4a154b), matching the ConnectSlackButton and the HIG design.
26
+ * Section-scoped so it stays distinct from the shared blue PrimaryButton used
27
+ * by the full tab / reauth screen.
28
+ */
29
+ export declare const StartNewButton: StyledComponent<ButtonProps>;
23
30
  /** "Channel: #<name>" label/value row in the linked state. */
24
31
  export declare const ChannelRow: StyledComponent<BoxProps>;
25
32
  export declare const ChannelLabel: StyledComponent<TypographyProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/app/hig-slack/style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,QAAQ,CAKnD,CAAC;AAEF;iDACiD;AACjD,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,QAAQ,CAarD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAKhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CAMxD,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAehD,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,UAAU,CAGrD,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CAKxD,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAKhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,eAAe,CAMzD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,eAAe,CASzD,CAAC;AAEF;4EAC4E;AAC5E,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,QAAQ,CAUjD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,QAAQ,CAoBnD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,UAAU,CAGnD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAKtD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,eAAe,CAS1D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CAMxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CASxD,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CAWxD,CAAC"}
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/app/hig-slack/style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,QAAQ,CAKnD,CAAC;AAEF;iDACiD;AACjD,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,QAAQ,CAarD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAKhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CAMxD,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAehD,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,UAAU,CAGrD,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CASxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,WAAW,CAoBvD,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,QAAQ,CAMhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,eAAe,CAMzD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,eAAe,CASzD,CAAC;AAEF;4EAC4E;AAC5E,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,QAAQ,CASjD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,QAAQ,CAoBnD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,UAAU,CAGnD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAKtD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,eAAe,CAS1D,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CAMxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CASxD,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,eAAe,CAWxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/react-query-client-provider/index.tsx"],"names":[],"mappings":"AAGA,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,wBAAwB,iBAAkB,uBAAuB,4CAGtE,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/react-query-client-provider/index.tsx"],"names":[],"mappings":"AAKA,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,QAAA,MAAM,wBAAwB,iBAAkB,uBAAuB,4CAyBtE,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1,11 +1,15 @@
1
- import { SlackChannel } from '../types/wire';
1
+ import { SlackChannelsPage } from '../types/wire';
2
2
  /**
3
- * Lists Slack channels accessible to the signed-in agent. Backend
4
- * endpoint pending — UI uses MSW mock for now. Once backend ships,
5
- * the response shape should be `{ channels: SlackChannel[] }`.
3
+ * Lists Slack channels accessible to the signed-in agent (UI-3's existing-
4
+ * channel picker source).
6
5
  *
7
- * Drives UI-3's existing-channel picker. Cache the result for 60s
8
- * so opening the modal multiple times doesn't re-fetch.
6
+ * The backend serves this from a pre-warmed Redis channel directory. On a cold
7
+ * cache it returns the agent's own channels instantly with `warmState:
8
+ * 'warming'` while the full workspace directory loads in the background — so the
9
+ * list can be PARTIAL. We poll every few seconds while warming and stop once
10
+ * it's `ready`, so the picker fills in to the complete list without the agent
11
+ * waiting on the (rate-limited) full fetch up front. Once ready, the 60s
12
+ * staleTime means reopening the modal doesn't re-fetch.
9
13
  */
10
- export declare function useSlackChannels(): import('@tanstack/react-query').UseQueryResult<SlackChannel[], Error>;
14
+ export declare function useSlackChannels(): import('@tanstack/react-query').UseQueryResult<SlackChannelsPage, Error>;
11
15
  //# sourceMappingURL=channels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/api/channels.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,0EAc/B"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/api/channels.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAKrE;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,6EAqB/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"effective-config.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/api/effective-config.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,WAAW,CAAC;AAEhB,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,kFAkBrE"}
1
+ {"version":3,"file":"effective-config.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/api/effective-config.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,WAAW,CAAC;AAEhB,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,kFAuBrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelThreadGroup.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/ChannelThreadGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAK3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKpE,UAAU,uBAAuB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB;sDACkD;IAClD,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;8BAE0B;IAC1B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;gEAE4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;+EAC2E;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA6C1D,CAAC"}
1
+ {"version":3,"file":"ChannelThreadGroup.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/ChannelThreadGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAI3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKpE,UAAU,uBAAuB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB;sDACkD;IAClD,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;8BAE0B;IAC1B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;gEAE4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;+EAC2E;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAkC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/Composer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,EAAE,EAA+E,MAAM,OAAO,CAAC;AA+EvH,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,CAsgBtC,CAAC"}
1
+ {"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/Composer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,EAAE,EAA+E,MAAM,OAAO,CAAC;AAgFvH,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,CAijBtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LinkedChannelHeader.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/LinkedChannelHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAM3B,UAAU,wBAAwB;IAChC;sFACkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB;;8DAE0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAWD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA4C5D,CAAC"}
1
+ {"version":3,"file":"LinkedChannelHeader.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/LinkedChannelHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAM3B,UAAU,wBAAwB;IAChC;sFACkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB;;8DAE0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA4C5D,CAAC"}
@@ -16,6 +16,18 @@ interface MessageItemProps {
16
16
  * (deep-link arrival). Inline background overrides the :hover rule so the
17
17
  * highlight holds steady while hovered. */
18
18
  isHighlighted?: boolean;
19
+ /** When true, clamp the message body to a few lines (3 boxed / 5 normal)
20
+ * behind a "Show more"/"Show less" toggle. Used for the pinned thread root
21
+ * so a long opening message doesn't push the replies off-screen. */
22
+ collapsible?: boolean;
23
+ /** Channel-list thread root only: the reply count for the "Replies (n)"
24
+ * drill-in link. In boxed (HIG) mode the link renders inside the message
25
+ * box, left-aligned under the body; the non-boxed panel renders it
26
+ * externally (see ChannelThreadGroup), so this is ignored there. */
27
+ replyCount?: number;
28
+ /** Drill into this thread's detail view. Fired by the boxed-mode
29
+ * "Replies (n)" link (paired with `replyCount`). */
30
+ onOpenReplies?: () => void;
19
31
  }
20
32
  /**
21
33
  * Single Chat-UI row per Figma 683:666933 / 666934.
@@ -1 +1 @@
1
- {"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/MessageItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,EAAE,EAAqB,MAAM,OAAO,CAAC;AAU7D,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,6BAA6B,CAAC;AAgB/E,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;IACnB;;gDAE4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAkDD;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAyK5C,CAAC"}
1
+ {"version":3,"file":"MessageItem.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/MessageItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,EAAE,EAA8C,MAAM,OAAO,CAAC;AAYtF,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,6BAA6B,CAAC;AAiB/E,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;IACnB;;gDAE4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;yEAEqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;yEAGqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;yDACqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAkDD;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAuQ5C,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,EAAE,SAAS,EAAyC,MAAM,OAAO,CAAC;AA0F7E,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;IACnB;;qEAEiE;IACjE,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAsJtD,CAAC"}
1
+ {"version":3,"file":"ThreadDetailView.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/ThreadDetailView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAyC,MAAM,OAAO,CAAC;AA0F7E,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;IACnB;;qEAEiE;IACjE,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA6JtD,CAAC"}
@@ -1,3 +1,5 @@
1
1
  import { FC } from 'react';
2
- export declare const ThreadSkeleton: FC;
2
+ export declare const ThreadSkeleton: FC<{
3
+ boxed?: boolean;
4
+ }>;
3
5
  //# sourceMappingURL=ThreadSkeleton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadSkeleton.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/ThreadSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA+B3B,eAAO,MAAM,cAAc,EAAE,EAM5B,CAAC"}
1
+ {"version":3,"file":"ThreadSkeleton.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/ThreadSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAgD3B,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAQlD,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;AA8BvF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,uBAAuB,EAAE,EA4frC,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;AA+BvF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,uBAAuB,EAAE,EAugBrC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ButtonHTMLAttributes } from 'react';
1
2
  import { BoxProps, ButtonProps, StackProps } from '@hiver/hiver-ui-kit';
2
3
  import { StyledComponent } from '@emotion/styled';
3
4
  type LinkedRootBaseProps = BoxProps & {
@@ -48,8 +49,14 @@ export declare const LoadOlderBar: StyledComponent<BoxProps>;
48
49
  /**
49
50
  * Thread-detail "‹ back" row (Figma 683:669379) — sits above the
50
51
  * drilled-in thread, left-aligned with the message column.
52
+ *
53
+ * `boxed` (HIG layer): the message cards sit at the RepliesScroll gutter
54
+ * (8px/lg) rather than the panel pad (20px), so the back affordance takes the
55
+ * same 8px left inset to line up with the cards' left edge.
51
56
  */
52
- export declare const BackRow: StyledComponent<BoxProps>;
57
+ export declare const BackRow: StyledComponent<BoxProps & {
58
+ boxed?: boolean;
59
+ }>;
53
60
  /**
54
61
  * Channel-mode scroll region (B4) — the full list of thread groups in
55
62
  * the linked channel. Same scroll mechanics as RepliesScroll.
@@ -63,6 +70,19 @@ export declare const ChannelThreadsScroll: StyledComponent<BoxProps & {
63
70
  * between messages.
64
71
  */
65
72
  export declare const ThreadGroupRoot: StyledComponent<BoxProps>;
73
+ /**
74
+ * "Replies (n)" drill-in link on a channel-list thread root. Placement
75
+ * differs by layer:
76
+ * - non-boxed panel: rendered below the message row (sibling in
77
+ * ThreadGroupRoot), indented by `panel + avatar(30) + gap` so it lands
78
+ * under the root author's body column.
79
+ * - boxed (HIG) layer: rendered inside the message box as the last child
80
+ * of MessageBodyCol, so it sits inside the gray card and left-aligns with
81
+ * the message content (no indent — the column already starts at content).
82
+ */
83
+ export declare const RepliesButton: StyledComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
84
+ boxed?: boolean;
85
+ }>;
66
86
  /**
67
87
  * Thread-detail reply stack (Figma 683:669746). Replies are indented
68
88
  * 32px so their avatars sit under the root message's text column, and a
@@ -116,15 +136,20 @@ export declare const MessageRow: StyledComponent<StackProps & {
116
136
  * z-index keeps it above adjacent rows' hover background. `overflow: hidden`
117
137
  * clamps the button's hover tint to the pill's rounded corners.
118
138
  */
119
- export declare const HoverToolbar: StyledComponent<BoxProps>;
139
+ export declare const HoverToolbar: StyledComponent<BoxProps & {
140
+ boxed?: boolean;
141
+ }>;
120
142
  export declare const ReplyButton: StyledComponent<ButtonProps>;
121
143
  export declare const DeleteButton: StyledComponent<ButtonProps>;
122
144
  /**
123
145
  * Avatar — 30px fully rounded per Figma 683:666937 (`size-[30px]
124
146
  * rounded-[100px]`). Background per-author in production; the
125
- * fallback uses Hiver's purple-light tint.
147
+ * fallback uses Hiver's purple-light tint. In boxed (HIG) mode the
148
+ * tighter card layout uses a 24px avatar.
126
149
  */
127
- export declare const AvatarCircle: StyledComponent<BoxProps>;
150
+ export declare const AvatarCircle: StyledComponent<BoxProps & {
151
+ boxed?: boolean;
152
+ }>;
128
153
  export declare const MessageBodyCol: StyledComponent<BoxProps>;
129
154
  /**
130
155
  * Header row — author + timestamp baseline-aligned with 12px gap
@@ -142,11 +167,11 @@ export declare const MessageHeaderRow: StyledComponent<StackProps & {
142
167
  export declare const ReactionsRow: StyledComponent<BoxProps>;
143
168
  /**
144
169
  * One reaction pill (Figma 683:671874 "Emoji states") — a fully-rounded
145
- * chip holding a 12px emoji glyph + the reactor count. Neutral fill by
146
- * default; the viewer's own reactions get the primary blue wash + hairline
147
- * border (the component's "reacted" state). Display-only in M1, so no
148
- * hover/cursor affordance. The 1px transparent base border keeps the box
149
- * the same size whether or not the self-border is shown.
170
+ * chip holding a 12px emoji glyph + the reactor count. Uniform neutral
171
+ * slate-100 fill with no border for every reaction (the viewer's own
172
+ * reactions are distinguished by their tooltip, not a colour wash).
173
+ * Display-only in M1, so no hover/cursor affordance. The 1px transparent
174
+ * border is kept only to hold the box geometry stable.
150
175
  */
151
176
  export declare const ReactionPill: StyledComponent<BoxProps>;
152
177
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/style.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD,KAAK,mBAAmB,GAAG,QAAQ,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,mBAAmB,CAa/D,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAKrE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,QAAQ,CAQvD,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAMtD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAiBzE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAMlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,eAAe,CAAC,QAAQ,CAG7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAWhF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,QAAQ,CAGrD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,QAAQ,CAGnD,CAAC;AAEF;;;;;;GAMG;AAEH;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAStD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAoCxE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAalD,CAAC;AAKF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,WAAW,CAkBpD,CAAC;AAKF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,WAAW,CAmBrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAoBlD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,QAAQ,CAMpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAc9E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAKlD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAQlD,CAAC"}
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/LinkedConversationPanel/style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD,KAAK,mBAAmB,GAAG,QAAQ,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,mBAAmB,CAa/D,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAgBrE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,QAAQ,CAQvD,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAMtD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAuBzE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAMlD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAKnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAoBhF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,QAAQ,CAGrD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAoBxG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,eAAe,CAAC,QAAQ,CAGnD,CAAC;AAEF;;;;;;GAMG;AAEH;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAStD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,EAAE,eAAe,CAAC,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAqCxE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAkBxE,CAAC;AAKF,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,WAAW,CAkBpD,CAAC;AAKF,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,WAAW,CAmBrD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAsBxE,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,QAAQ,CAMpD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAQ9E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAKlD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,QAAQ,CAQlD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { FC } from 'react';
2
+ /**
3
+ * Illustration for the Slack tab's re-auth-required state — the
4
+ * designer-exported "broken connection" composition (the Hiver ⇄ Slack
5
+ * app cards with a snapped cord + broken-link glyph between them). Figma
6
+ * frame 1304:49822 ("Frame 1618872655", auth-failed variant) in the
7
+ * Internal-Collaboration Slack file.
8
+ *
9
+ * Mirrors HeroIllustration: rendered at its natural width (capped) and
10
+ * centered above the body copy + Re-authenticate CTA.
11
+ */
12
+ export declare const ReauthIllustration: FC<{
13
+ width?: number;
14
+ }>;
15
+ //# sourceMappingURL=ReauthIllustration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReauthIllustration.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/components/ReauthIllustration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAM3B;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAQrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SlackConversationTab.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/components/SlackConversationTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAoC,MAAM,OAAO,CAAC;AAuB7D,UAAU,yBAAyB;IACjC;;oDAEgD;IAChD,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC;AAiCD,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAwK9D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"SlackConversationTab.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/components/SlackConversationTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAoC,MAAM,OAAO,CAAC;AAwB7D,UAAU,yBAAyB;IACjC;;oDAEgD;IAChD,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC;AAuCD,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CA2M9D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { FC } from 'react';
2
+ import { ITrackingData } from '../../../context';
3
+ interface SlackReauthScreenProps {
4
+ connectorId: string;
5
+ /** Gainsight sink, threaded from SlackContext by the tab. */
6
+ sendTrackingEvent?: (event: string, data?: ITrackingData) => void;
7
+ }
8
+ /**
9
+ * Re-authentication-required screen — Figma frame 1304:49821
10
+ * (Conversation_Open, auth-failed variant).
11
+ *
12
+ * Shown inline in the Slack tab body when the agent's Slack user-token has
13
+ * expired or been revoked (user-auth state `reauth_required`). Unlike
14
+ * first-time connect — which uses the <SlackConnectModal> overlay — this is
15
+ * a full-tab state: the broken Hiver⇄Slack illustration, a single line of
16
+ * copy, and a blue Re-authenticate CTA.
17
+ *
18
+ * The CTA runs the EXACT same OAuth popup + status-poll as first connect
19
+ * (useUserAuthFlow.connect). While the popup is open (in_progress) the card
20
+ * swaps to a "Reconnecting…" state so it doesn't flash the failed copy; on
21
+ * success the tab re-renders to the linked/ready panel.
22
+ */
23
+ export declare const SlackReauthScreen: FC<SlackReauthScreenProps>;
24
+ export default SlackReauthScreen;
25
+ //# sourceMappingURL=SlackReauthScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlackReauthScreen.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/components/SlackReauthScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,OAAO,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO/C,UAAU,sBAAsB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;CACnE;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAmCxD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -6,22 +6,14 @@ interface MentionTextareaProps {
6
6
  * mentions rewritten to `<@user_id>`) so the parent can show one and
7
7
  * post the other. */
8
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
9
  placeholder?: string;
14
10
  autoFocus?: boolean;
15
11
  }
16
12
  /**
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.
13
+ * Message field for the Start flow (thread + channel tabs) that resolves
14
+ * @-mentions to real Slack `<@id>` mentions. The picker searches the whole
15
+ * workspace roster (useWorkspaceUsers) so the agent can tag anyone, regardless
16
+ * of which channel is picked/created. Controlled — the parent owns the draft.
25
17
  */
26
18
  export declare const MentionTextarea: FC<MentionTextareaProps>;
27
19
  export {};
@@ -1 +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
+ {"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;AAmB7F,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAwIpD,CAAC"}
@@ -13,6 +13,8 @@ export interface ChannelFormValues {
13
13
  channelType: 'public' | 'private';
14
14
  members: SlackUser[];
15
15
  message: string;
16
+ /** `message` with picked @mentions rewritten to `<@id>` — posted so they notify. */
17
+ messageSlack: string;
16
18
  }
17
19
  interface SlackChannelTabProps {
18
20
  values: ChannelFormValues;
@@ -1 +1 @@
1
- {"version":3,"file":"SlackChannelTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/SlackChannelTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAM7D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,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,CAqCpD,CAAC"}
1
+ {"version":3,"file":"SlackChannelTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/SlackChannelTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAO7D;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,oBAAoB;IAC5B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC7C;AAmCD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAsCpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SlackThreadTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/SlackThreadTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAA4B,MAAM,OAAO,CAAC;AAarD,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,CAwFlD,CAAC"}
1
+ {"version":3,"file":"SlackThreadTab.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/components/StartModal/SlackThreadTab.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAA4B,MAAM,OAAO,CAAC;AAcrD,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,CAmGlD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MentionTextarea.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MentionTextarea.test.d.ts","sourceRoot":"","sources":["../../../../../../src/features/slack/components/StartModal/__tests__/MentionTextarea.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SlackThreadTab.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlackThreadTab.test.d.ts","sourceRoot":"","sources":["../../../../../../src/features/slack/components/StartModal/__tests__/SlackThreadTab.test.tsx"],"names":[],"mappings":""}
@@ -1 +1 @@
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,CAoM1C,CAAC"}
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;AAgClD,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,CAmN1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useReauthStatusRefetch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReauthStatusRefetch.test.d.ts","sourceRoot":"","sources":["../../../../../src/features/slack/hooks/__tests__/useReauthStatusRefetch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * True when an error is Slack rejecting the agent's own user-token:
3
+ * - 401 { reason: 'slack_invalid_auth' } — a live invalid_auth /
4
+ * token_revoked / token_expired on an agent action.
5
+ * - 412 { reason: 'user_slack_auth_missing' } — the connector was
6
+ * already flagged reauth_required, so the resolver short-circuits
7
+ * before hitting Slack.
8
+ *
9
+ * The slack-agent controller raises these via FastAPI `HTTPException(
10
+ * detail={reason, ...})`, which serialises as `{ detail: { reason } }` —
11
+ * NOT a top-level `reason`. (The generic user-tier resolver's
12
+ * UserAuthRequiredHandler does return a top-level `reason`.) We read
13
+ * `detail.reason` first and fall back to the top level so BOTH shapes
14
+ * match. Reading `err.response` defensively (rather than gating on
15
+ * axios's `isAxiosError`, which can return false across bundled axios
16
+ * instances) mirrors how StartModal's handleSubmitError reads the body.
17
+ */
18
+ export declare const isSlackAuthError: (err: unknown) => boolean;
19
+ /**
20
+ * Returns a callback that refetches the agent's user-auth status by
21
+ * invalidating its query. Used for mid-session token death: the backend
22
+ * flips the connector to `reauth_required` in the SAME request that 401s
23
+ * (the mark lands before the response is sent), so the refetch returns
24
+ * `reauth_required` and SlackConversationTab swaps in the inline re-auth
25
+ * screen — no remount needed.
26
+ *
27
+ * Call it from an action's error handler (guarded by isSlackAuthError) or
28
+ * directly when the conversation payload reports the viewer is no longer
29
+ * connected (viewerPostBlockReason === 'slack_not_connected').
30
+ */
31
+ export declare function useReauthStatusRefetch(): () => void;
32
+ //# sourceMappingURL=useReauthStatusRefetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReauthStatusRefetch.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/hooks/useReauthStatusRefetch.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,QAAS,OAAO,KAAG,OAS/C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,IAAI,CAMnD"}
@@ -13,4 +13,9 @@ export declare const NON_REPLYABLE_SUBTYPES: ReadonlySet<string>;
13
13
  /** Ordinary messages (no subtype) are replyable; system subtypes above
14
14
  * are not. Unknown subtypes default to replyable. */
15
15
  export declare const isReplyable: (message: Pick<SlackMessage, "subtype">) => boolean;
16
+ /** These lifecycle subtypes describe an event (e.g. "@X has joined the
17
+ * channel") rather than carrying a user-authored message. They render as a
18
+ * plain, full-width descriptive line — no avatar, author, timestamp, box, or
19
+ * reply affordance. (Tombstone is handled separately via DeletedTombstone.) */
20
+ export declare const isSystemNotice: (message: Pick<SlackMessage, "subtype">) => boolean;
16
21
  //# sourceMappingURL=messageType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messageType.d.ts","sourceRoot":"","sources":["../../../src/features/slack/messageType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAerD,CAAC;AAEH;sDACsD;AACtD,eAAO,MAAM,WAAW,YAAa,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,KAAG,OACH,CAAC"}
1
+ {"version":3,"file":"messageType.d.ts","sourceRoot":"","sources":["../../../src/features/slack/messageType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAerD,CAAC;AAEH;sDACsD;AACtD,eAAO,MAAM,WAAW,YAAa,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,KAAG,OACH,CAAC;AAEnE;;;gFAGgF;AAChF,eAAO,MAAM,cAAc,YAAa,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,KAAG,OACN,CAAC"}
@@ -202,4 +202,16 @@ export interface SlackChannel {
202
202
  isPrivate: boolean;
203
203
  isMember: boolean;
204
204
  }
205
+ /**
206
+ * GET /channels response. The backend serves the picker from a pre-warmed Redis
207
+ * channel directory; `warmState` tells us whether that directory is fully built:
208
+ * - 'warming': the list may be PARTIAL (a cold cache returns the agent's own
209
+ * channels instantly while the full workspace directory loads) — keep polling.
210
+ * - 'ready': the list is complete.
211
+ * - null/undefined: older backend (or the live fallback) — always complete.
212
+ */
213
+ export interface SlackChannelsPage {
214
+ channels: SlackChannel[];
215
+ warmState?: 'warming' | 'ready' | null;
216
+ }
205
217
  //# sourceMappingURL=wire.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/types/wire.ts"],"names":[],"mappings":"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"}
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;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B;;6EAEyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd;kCAC8B;IAC9B,YAAY,EAAE,OAAO,CAAC;CACvB;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;;yCAEqC;IACrC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B;;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;IAClB;;gEAE4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;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;IACpD;;;;gFAI4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;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;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,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;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC;CACxC"}
@@ -1,3 +1,3 @@
1
- export declare const formatTime: (timestamp: string) => string;
1
+ export declare const formatTime: (timestamp: string, compact?: boolean) => string;
2
2
  export declare const formatAbsoluteTime: (timestamp: string) => string;
3
3
  //# sourceMappingURL=format-timestamp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-timestamp.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/utils/format-timestamp.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,UAAU,cAAe,MAAM,KAAG,MAI9C,CAAC;AAKF,eAAO,MAAM,kBAAkB,cAAe,MAAM,KAAG,MAKtD,CAAC"}
1
+ {"version":3,"file":"format-timestamp.d.ts","sourceRoot":"","sources":["../../../../src/features/slack/utils/format-timestamp.ts"],"names":[],"mappings":"AA4CA,eAAO,MAAM,UAAU,cAAe,MAAM,wBAAoB,MAQ/D,CAAC;AAKF,eAAO,MAAM,kBAAkB,cAAe,MAAM,KAAG,MAKtD,CAAC"}
@@ -2,10 +2,10 @@ import { ReactNode } from 'react';
2
2
  /**
3
3
  * Display-only: render Slack's raw `<@USER_ID>` mention tokens. A token
4
4
  * whose id resolves to a known channel member becomes a `@DisplayName`
5
- * rendered in medium weight (500) but the SAME colour as the surrounding
6
- * body text — it inherits, no colour override. An UNRESOLVED id renders as
7
- * plain `@<id>`. The stored/edited text keeps the raw token so a re-send
8
- * preserves the real Slack mention.
5
+ * rendered in medium weight (500), keeping the SAME colour as the surrounding
6
+ * body text (no colour override). An UNRESOLVED id renders as plain `@<id>`.
7
+ * The stored/edited text keeps the raw token so a re-send preserves the real
8
+ * Slack mention.
9
9
  *
10
10
  * Shared by `MessageItem` (the full linked-conv panel rows) and the HIG
11
11
  * `HigSlackSection` last-message preview so the two never drift — the