@hjmds/react 1.46.1 → 1.47.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 (90) hide show
  1. package/dist/actions.d.ts +2 -2
  2. package/dist/activity-chip.d.ts +1 -1
  3. package/dist/advanced-display.d.ts +6 -0
  4. package/dist/advanced-display.d.ts.map +1 -1
  5. package/dist/advanced-display.js +4 -2
  6. package/dist/advanced-display.js.map +1 -1
  7. package/dist/advanced-forms.d.ts +2 -2
  8. package/dist/auth-screen.d.ts +1 -1
  9. package/dist/bottom-navigation.d.ts.map +1 -1
  10. package/dist/bottom-navigation.js +1 -1
  11. package/dist/bottom-navigation.js.map +1 -1
  12. package/dist/calendar.d.ts.map +1 -1
  13. package/dist/calendar.js +31 -24
  14. package/dist/calendar.js.map +1 -1
  15. package/dist/carousel.d.ts +5 -1
  16. package/dist/carousel.d.ts.map +1 -1
  17. package/dist/carousel.js +2 -2
  18. package/dist/carousel.js.map +1 -1
  19. package/dist/clipboard.d.ts +2 -2
  20. package/dist/color-picker.d.ts +33 -3
  21. package/dist/color-picker.d.ts.map +1 -1
  22. package/dist/color-picker.js +73 -10
  23. package/dist/color-picker.js.map +1 -1
  24. package/dist/communication.d.ts +6 -1
  25. package/dist/communication.d.ts.map +1 -1
  26. package/dist/communication.js +2 -2
  27. package/dist/communication.js.map +1 -1
  28. package/dist/conversation-row.d.ts +7 -1
  29. package/dist/conversation-row.d.ts.map +1 -1
  30. package/dist/conversation-row.js +4 -2
  31. package/dist/conversation-row.js.map +1 -1
  32. package/dist/date-range.d.ts +24 -3
  33. package/dist/date-range.d.ts.map +1 -1
  34. package/dist/date-range.js +38 -17
  35. package/dist/date-range.js.map +1 -1
  36. package/dist/display.d.ts +28 -0
  37. package/dist/display.d.ts.map +1 -1
  38. package/dist/display.js +11 -9
  39. package/dist/display.js.map +1 -1
  40. package/dist/evidence.d.ts +1 -1
  41. package/dist/evidence.js +1 -1
  42. package/dist/evidence.js.map +1 -1
  43. package/dist/feedback.d.ts +1 -1
  44. package/dist/floating-action-button.d.ts +1 -1
  45. package/dist/follow-list.d.ts +58 -0
  46. package/dist/follow-list.d.ts.map +1 -0
  47. package/dist/follow-list.js +25 -0
  48. package/dist/follow-list.js.map +1 -0
  49. package/dist/forms.d.ts +3 -3
  50. package/dist/image-viewer.d.ts +1 -1
  51. package/dist/index.d.ts +1 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/internal/calendar-paint.d.ts +12 -0
  55. package/dist/internal/calendar-paint.d.ts.map +1 -0
  56. package/dist/internal/calendar-paint.js +3 -0
  57. package/dist/internal/calendar-paint.js.map +1 -0
  58. package/dist/internal/identity-action.d.ts +12 -0
  59. package/dist/internal/identity-action.d.ts.map +1 -0
  60. package/dist/internal/identity-action.js +10 -0
  61. package/dist/internal/identity-action.js.map +1 -0
  62. package/dist/internal.d.ts +1 -1
  63. package/dist/layout.d.ts +1 -1
  64. package/dist/overlays.d.ts +4 -0
  65. package/dist/overlays.d.ts.map +1 -1
  66. package/dist/overlays.js +3 -3
  67. package/dist/overlays.js.map +1 -1
  68. package/dist/provider-button.d.ts +1 -1
  69. package/dist/public-exports.generated.d.ts +3 -0
  70. package/dist/public-exports.generated.d.ts.map +1 -1
  71. package/dist/public-exports.generated.js +9 -0
  72. package/dist/public-exports.generated.js.map +1 -1
  73. package/dist/screen-flows.d.ts +33 -4
  74. package/dist/screen-flows.d.ts.map +1 -1
  75. package/dist/screen-flows.js +25 -10
  76. package/dist/screen-flows.js.map +1 -1
  77. package/dist/screens.d.ts +38 -6
  78. package/dist/screens.d.ts.map +1 -1
  79. package/dist/screens.js +26 -12
  80. package/dist/screens.js.map +1 -1
  81. package/dist/selection.d.ts +1 -1
  82. package/dist/social-compositions.d.ts +10 -0
  83. package/dist/social-compositions.d.ts.map +1 -1
  84. package/dist/social-compositions.js +3 -2
  85. package/dist/social-compositions.js.map +1 -1
  86. package/dist/styles.css +108 -46
  87. package/dist/styles.layered.css +108 -46
  88. package/dist/toast.d.ts +1 -1
  89. package/dist/top-bar.d.ts +1 -1
  90. package/package.json +8 -3
package/dist/screens.d.ts CHANGED
@@ -22,6 +22,12 @@ export type ScreenLayoutProps = Readonly<{
22
22
  * named by `title` (2026-10-18: yajalal team detail and Utilverse tool headers rebuilt the header to get this).
23
23
  */
24
24
  titleLeading?: ReactNode;
25
+ /** Optional navigation for the identity mark; the product owns the destination and translated label. */
26
+ titleLeadingAction?: Readonly<{
27
+ label: string;
28
+ onPress(): void;
29
+ disabled?: boolean;
30
+ }>;
25
31
  /** Hide duplicate route names; retain titles that identify a subject or a task. */
26
32
  titleVisibility?: "visible" | "hidden";
27
33
  /** Centered by default (2026-10-17 user rule); `start` remains available. Extra actions sit at the trailing edge. */
@@ -71,7 +77,7 @@ export type ScreenLayoutProps = Readonly<{
71
77
  initialFocus?: ScreenInitialFocus;
72
78
  }>;
73
79
  /** Shared screen shell. Routing, data, permission checks and mutation state remain product-owned. */
74
- export declare function ScreenLayout({ title, titleBadge, titleLeading, titleVisibility, headerAlignment, header, contentInset, contentAlignment, surface, presentation: suppliedPresentation, exit, actions, notice, footer, state, stateAction, loadingIndicator, children, scroll, as: Element, className, layoutStyle, initialFocus }: ScreenLayoutProps): import("react").JSX.Element;
80
+ export declare function ScreenLayout({ title, titleBadge, titleLeading, titleLeadingAction, titleVisibility, headerAlignment, header, contentInset, contentAlignment, surface, presentation: suppliedPresentation, exit, actions, notice, footer, state, stateAction, loadingIndicator, children, scroll, as: Element, className, layoutStyle, initialFocus }: ScreenLayoutProps): import("react").JSX.Element;
75
81
  /**
76
82
  * Style for a product scroller that owns the body with `scroll="content"`: it reaches across the body gutter
77
83
  * (`--hjm-screen-body-inline`) and pads it back, so items stay on the gutter while the clip moves to the screen edges and
@@ -92,11 +98,21 @@ export type SettingsScreenProps = Omit<ScreenLayoutProps, "children" | "scroll">
92
98
  sections: readonly SettingsScreenSection[];
93
99
  }>;
94
100
  export declare function SettingsScreen({ profile, sections, ...props }: SettingsScreenProps): import("react").JSX.Element;
101
+ /** Conversation rows own their inset; products supply routing/data and the optional virtualized host.
102
+ * Keep this composition shared with Showcase: rebuilding it in BurnTok doubled gutters (2026-10-25).
103
+ */
104
+ export type ConversationListScreenProps = Omit<ScreenLayoutProps, "contentInset" | "notice"> & Readonly<{
105
+ search?: ReactNode;
106
+ notice?: ReactNode;
107
+ }>;
108
+ export declare function ConversationListScreen({ search, notice, ...props }: ConversationListScreenProps): import("react").JSX.Element;
95
109
  export type NotificationInboxScreenProps = Omit<ScreenLayoutProps, "children"> & Readonly<{
96
110
  filters?: ReactNode;
111
+ /** NotificationRow owns its gutter; NotificationItem uses the screen gutter. */
112
+ rowPresentation?: "item" | "preview";
97
113
  children: ReactNode;
98
114
  }>;
99
- export declare function NotificationInboxScreen({ filters, children, notice, ...props }: NotificationInboxScreenProps): import("react").JSX.Element;
115
+ export declare function NotificationInboxScreen({ filters, children, notice, rowPresentation, ...props }: NotificationInboxScreenProps): import("react").JSX.Element;
100
116
  /** Read/unread is announced in localized copy as well as emphasis; rendering never marks an item read. */
101
117
  export type NotificationItemProps = Omit<ListRowProps, "description" | "selected"> & Readonly<{
102
118
  read: boolean;
@@ -111,7 +127,7 @@ export type NotificationItemProps = Omit<ListRowProps, "description" | "selected
111
127
  unreadLabel?: string;
112
128
  }>;
113
129
  export declare function NotificationItem({ read, statusLabel, timestamp, description, unreadLabel, title, className, ...props }: NotificationItemProps): import("react").JSX.Element;
114
- export type ChatScreenProps = Omit<ScreenLayoutProps, "footer" | "titleLeading"> & Readonly<{
130
+ export type ChatScreenProps = Omit<ScreenLayoutProps, "footer" | "titleLeading" | "titleLeadingAction"> & Readonly<{
115
131
  composer: ReactNode;
116
132
  /** Shown while the reader is away from the latest message; the host owns scroll position and visibility. */
117
133
  jumpToLatest?: Readonly<{
@@ -121,9 +137,15 @@ export type ChatScreenProps = Omit<ScreenLayoutProps, "footer" | "titleLeading">
121
137
  }>;
122
138
  /** Peer or room photo beside the centered title; group rooms add the member count through `titleBadge`. */
123
139
  avatar?: ReactNode;
140
+ /** Opens the peer profile (or group details); omit for a decorative avatar. */
141
+ avatarAction?: Readonly<{
142
+ label: string;
143
+ onPress(): void;
144
+ disabled?: boolean;
145
+ }>;
124
146
  }>;
125
147
  /** Caller supplies a virtualized timeline and keyboard-aware composer; no implicit auto-scroll or send. */
126
- export declare function ChatScreen({ composer, jumpToLatest, avatar, scroll, ...props }: ChatScreenProps): import("react").JSX.Element;
148
+ export declare function ChatScreen({ composer, jumpToLatest, avatar, avatarAction, scroll, ...props }: ChatScreenProps): import("react").JSX.Element;
127
149
  export type MessageComposerProps = Omit<MessageComposerDescriptor, "attachmentCount"> & Readonly<{
128
150
  maxLength?: number;
129
151
  /** Opt-in count/ring appears only near the actual maxLength; never trims drafts. */
@@ -183,6 +205,11 @@ export type ChatMessageProps = ChatMessageDescriptor & Readonly<{
183
205
  children: ReactNode;
184
206
  interactiveContent?: boolean;
185
207
  avatar?: ReactNode;
208
+ avatarAction?: Readonly<{
209
+ label: string;
210
+ onPress(): void;
211
+ disabled?: boolean;
212
+ }>;
186
213
  reply?: ReactNode;
187
214
  actions?: ReactNode;
188
215
  replyAction?: Readonly<{
@@ -237,7 +264,7 @@ export type ChatMessageProps = ChatMessageDescriptor & Readonly<{
237
264
  * accessible name ("Reactions: heart 2. Open menu") come from the product; `items` in display order.
238
265
  */
239
266
  export type ChatMessageReactionSummary = ChatReactionSummary;
240
- export declare function ChatMessage({ direction, author, timestamp, timestampPresentation, bubbleTail, groupPosition, deliveryLabel, avatar, reply, replyQuote, media, mediaAlbum, actions, replyAction, replyLink, reactions, children, interactiveContent, layoutStyle }: ChatMessageProps): import("react").JSX.Element;
267
+ export declare function ChatMessage({ direction, author, timestamp, timestampPresentation, bubbleTail, groupPosition, deliveryLabel, avatar, avatarAction, reply, replyQuote, media, mediaAlbum, actions, replyAction, replyLink, reactions, children, interactiveContent, layoutStyle }: ChatMessageProps): import("react").JSX.Element;
241
268
  /** Shared structure for embedded compositions. The parent supplies size; this never creates a second scroller. */
242
269
  export type CompositionLayoutProps = Readonly<{
243
270
  title?: string;
@@ -274,6 +301,11 @@ export type NotificationRowProps = Readonly<{
274
301
  preview: ReactNode;
275
302
  metadata: string;
276
303
  avatar: ReactNode;
304
+ avatarAction?: Readonly<{
305
+ label: string;
306
+ onPress(): void;
307
+ disabled?: boolean;
308
+ }>;
277
309
  avatarBadge?: ReactNode;
278
310
  thumbnail?: ReactNode;
279
311
  unread?: boolean;
@@ -287,7 +319,7 @@ export type NotificationRowProps = Readonly<{
287
319
  }>;
288
320
  }>;
289
321
  /** Optional shared command host; passive previews remain compatible with existing router/gesture hosts. */
290
- export declare function NotificationRow({ preview, metadata, avatar, avatarBadge, thumbnail, unread, separator, action }: NotificationRowProps): import("react").JSX.Element;
322
+ export declare function NotificationRow({ preview, metadata, avatar, avatarAction, avatarBadge, thumbnail, unread, separator, action }: NotificationRowProps): import("react").JSX.Element;
291
323
  export type IconTileProps = Readonly<{
292
324
  /**
293
325
  * Icon artwork. A function receives the rendered edge (`IconTileArtwork`) so fixed-size artwork such as an image
@@ -1 +1 @@
1
- {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../src/screens.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../src/screens.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA6B,KAAK,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAAqF,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAGtP,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE1G,OAAO,EAA8B,KAAK,+BAA+B,EAAE,MAAM,+CAA+C,CAAC;AACjI,OAAO,EAAqF,KAAK,iBAAiB,EAA+B,MAAM,iCAAiC,CAAC;AACzL,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEhG,YAAY,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAIhE,OAAO,EAA4C,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3F,OAAO,EAA6G,KAAK,2BAA2B,EAA+D,KAAK,sBAAsB,EAA0J,KAAK,mBAAmB,EAA0F,KAAK,qBAAqB,EAAE,KAAK,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAIxpB,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG9E,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wGAAwG;IACxG,kBAAkB,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,IAAI,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtF,mFAAmF;IACnF,eAAe,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACvC,qHAAqH;IACrH,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACtC,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IACpC,4DAA4D;IAC5D,YAAY,CAAC,EAAE,+BAA+B,CAAC;IAC/C,mKAAmK;IACnK,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yIAAyI;IACzI,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,6FAA6F;IAC7F,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC,CAAC,CAAC;AAEH,qGAAqG;AACrG,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAA2B,EAAE,eAA0B,EAAE,MAAM,EAAE,YAAwB,EAAE,gBAA0B,EAAE,OAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAyB,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAiB,EAAE,EAAE,EAAE,OAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,YAA0C,EAAE,EAAE,iBAAiB,+BAqFte;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,QAAQ,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC,aAAa,CAAA;CAAE,CAAC,CAElF;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACvH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAAE,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAAE,CAAC,CAAC;AACjK,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,+BAIlF;AAED;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;IACtG,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC,CAAC;AACH,wBAAgB,sBAAsB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,2BAA2B,+BAG/F;AAED,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC;IACxF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC,CAAC;AACH,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAwB,EAAE,GAAG,KAAK,EAAE,EAAE,4BAA4B,+BAGtI;AAED,0GAA0G;AAC1G,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,UAAU,CAAC,GAAG,QAAQ,CAAC;IAC5F,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AACH,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,+BAQ7I;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,cAAc,GAAG,oBAAoB,CAAC,GAAG,QAAQ,CAAC;IACjH,QAAQ,EAAE,SAAS,CAAC;IACpB,4GAA4G;IAC5G,YAAY,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,IAAI,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7E,2GAA2G;IAC3G,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,IAAI,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACjF,CAAC,CAAC;AACH,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAkB,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,+BAQzH;AAED,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACpC,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,4GAA4G;IAC5G,iHAAiH;IACjH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,QAAQ,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,EAAE,CAAA;KAAE,CAAC,CAAC;IACrH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,IAAI,IAAI,CAAA;KAAE,CAAC,CAAC;IAC/F,mGAAmG;IACnG,UAAU,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,IAAI,IAAI,CAAA;KAAE,CAAC,CAAC;IACjG,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACvC,gBAAgB,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,IAAI,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrG,WAAW,CAAC,EAAE,SAAS,CAAC,2BAA2B,GAAG,QAAQ,CAAC;QAAE,OAAO,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC,EAAE,CAAC;IAC1F,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,iGAAiG;IACjG,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AACH,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAmB,EAAE,WAAW,EAAE,gBAA0B,EAAE,KAAK,EAAE,OAAe,EAAE,UAAsB,EAAE,MAAM,EAAE,QAAgB,EAAE,OAAe,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,YAAoB,EAAE,iBAAyB,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAA2B,EAAE,gBAAgB,EAAE,WAAgB,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,oBAAoB,+BA4BtgB;AAED,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG,QAAQ,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,IAAI,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,OAAO,IAAG,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAC,OAAO,CAAC;QAAC,IAAI,CAAC,EAAC,SAAS,CAAA;KAAC,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,OAAO,IAAG,IAAI,CAAA;KAAC,CAAC,CAAC,CAAC,qHAAqH;IAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC,yGAAyG;IAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,IAAI,IAAI,CAAA;KAAE,CAAC,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG,QAAQ,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,IAAI,IAAI,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,IAAI,IAAI,CAAC;YAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,SAAS,CAAA;SAAE,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,0BAA0B,CAAA;KAAE,CAAC,CAAC;IAC7mC,mGAAmG;IACnG,WAAW,CAAC,EAAE,uBAAuB,CAAA;CAAE,CAAC,GAAG,QAAQ,CAAC;IACpD;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC,CAAC;AAC7B;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,mBAAmB,CAAC;AAC7D,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAgC,EAAE,UAAiB,EAAE,aAAwB,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,KAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAwB,EAAE,WAAW,EAAE,EAAE,gBAAgB,+BAgDzU;AAED,kHAAkH;AAClH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2FAA2F;IAC3F,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,qFAAqF;IACrF,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qFAAqF;IACrF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AACH,wBAAgB,iBAAiB,CAAC,EAAC,KAAK,EAAE,SAAqB,EAAE,YAAgB,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAuB,EAAE,WAAW,EAAE,WAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAC,EAAE,sBAAsB,+BAsCvR;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,kFAAkF;IAClF,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,IAAI,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAChF,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yGAAyG;IACzG,MAAM,CAAC,EAAE,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,IAAI,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAE9E,CAAC,CAAC;AAEH,2GAA2G;AAC3G,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAc,EAAE,SAAiB,EAAE,MAAM,EAAE,EAAE,oBAAoB,+BAsBnK;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC;IACnC;;;OAGG;IACH,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,eAAe,KAAK,SAAS,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACrI,2FAA2F;IAC3F,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,+FAA+F;IAC/F,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6HAA6H;IAC7H,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0GAA0G;IAC1G,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kBAAkB,CAAC,EAAE,wBAAwB,CAAC;IAC9C,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AACH,6GAA6G;AAC7G,wBAAgB,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAc,EAAE,KAAa,EAAE,KAAqC,EAAE,KAAqC,EAAE,IAAmC,EAAE,UAAU,EAAE,eAAe,EAAE,QAAgB,EAAE,MAAc,EAAE,WAAW,EAAE,SAAS,EAAE,kBAA+D,EAAE,WAAW,EAAC,EAAE,aAAa,+BAqCpX;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,0GAA0G;IAC1G,KAAK,EAAE,MAAM,CAAC;IACd,sGAAsG;IACtG,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AACH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,oBAAoB,+BAanF;AAED,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AACH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,sBAAsB,+BAMzF"}
package/dist/screens.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { IdentityAction } from "./internal/identity-action.js";
3
4
  import { cornerAccessoryPlacements } from "@hjmds/design-contracts/recipes";
4
5
  import { iconTileRecipe, notificationRowRecipe as notificationRecipe, initialFocusDefaults } from "@hjmds/design-contracts/screen-patterns";
5
6
  import { BottomEntryFocusBoundary, InitialFocusScope } from "./internal/initial-focus.js";
@@ -26,7 +27,7 @@ import { Section, Stack, Text, VisuallyHidden } from "./layout.js";
26
27
  import { ListRow } from "./display.js";
27
28
  import { classNames, useDesignProfileDefaults } from "./internal.js";
28
29
  /** Shared screen shell. Routing, data, permission checks and mutation state remain product-owned. */
29
- export function ScreenLayout({ title, titleBadge, titleLeading, titleVisibility = "visible", headerAlignment = "center", header, contentInset = "default", contentAlignment = "start", surface = "default", presentation: suppliedPresentation, exit, actions, notice, footer, state = { kind: "ready" }, stateAction, loadingIndicator, children, scroll = "screen", as: Element = "main", className, layoutStyle, initialFocus = initialFocusDefaults.screen }) {
30
+ export function ScreenLayout({ title, titleBadge, titleLeading, titleLeadingAction, titleVisibility = "visible", headerAlignment = "center", header, contentInset = "default", contentAlignment = "start", surface = "default", presentation: suppliedPresentation, exit, actions, notice, footer, state = { kind: "ready" }, stateAction, loadingIndicator, children, scroll = "screen", as: Element = "main", className, layoutStyle, initialFocus = initialFocusDefaults.screen }) {
30
31
  const id = useId();
31
32
  if (exit)
32
33
  validateScreenExit(exit, false);
@@ -64,7 +65,7 @@ export function ScreenLayout({ title, titleBadge, titleLeading, titleVisibility
64
65
  });
65
66
  const recipe = screenPatternRecipe;
66
67
  // The mark is decorative beside a visible title; standing alone it becomes the heading, named by `title`.
67
- const mark = hasMark ? _jsx("span", { className: "hjm-screen__title-leading", "aria-hidden": "true", children: titleLeading }) : null;
68
+ const mark = hasMark ? titleLeadingAction ? _jsx(IdentityAction, { action: titleLeadingAction, children: titleLeading }) : _jsx("span", { className: "hjm-screen__title-leading", "aria-hidden": "true", children: titleLeading }) : null;
68
69
  const titleRow = (level, justify) => titleVisibility === "visible"
69
70
  ? _jsxs(Stack, { axis: "inline", gap: "xs", align: "center", justify: justify, wrap: true, children: [mark
70
71
  // A mark labels its title: one non-wrapping group whose heading shrinks and wraps beside the mark. In the wrapping
@@ -95,8 +96,11 @@ export function SettingsScreen({ profile, sections, ...props }) {
95
96
  // Keep semantic section headings while using the smaller settings label role.
96
97
  return _jsx(ScreenLayout, { ...props, children: _jsxs(Stack, { gap: "md", children: [profile, sections.map(section => _jsx(Section, { className: "hjm-settings-section", title: _jsx(Text, { variant: "label", emphasis: "strong", tone: "muted", children: section.title }), description: section.description, children: section.children }, section.id))] }) });
97
98
  }
98
- export function NotificationInboxScreen({ filters, children, notice, ...props }) {
99
- return _jsx(ScreenLayout, { ...props, notice: _jsxs(Stack, { gap: "sm", children: [notice, filters] }), children: children });
99
+ export function ConversationListScreen({ search, notice, ...props }) {
100
+ return _jsx(ScreenLayout, { ...props, contentInset: "body-edge", notice: search || notice ? _jsxs(Stack, { gap: "sm", children: [search, notice] }) : undefined });
101
+ }
102
+ export function NotificationInboxScreen({ filters, children, notice, rowPresentation = "item", ...props }) {
103
+ return _jsx(ScreenLayout, { ...props, ...(rowPresentation === "preview" ? { contentInset: "body-edge" } : {}), notice: notice || filters ? _jsxs(Stack, { gap: "sm", children: [notice, filters] }) : undefined, children: children });
100
104
  }
101
105
  export function NotificationItem({ read, statusLabel, timestamp, description, unreadLabel, title, className, ...props }) {
102
106
  if (unreadLabel !== undefined && unreadLabel.trim().length === 0)
@@ -108,12 +112,12 @@ export function NotificationItem({ read, statusLabel, timestamp, description, un
108
112
  return _jsx(ListRow, { ...props, className: classNames("hjm-notification-item", className), "data-unread": !read || undefined, title: _jsx(Text, { variant: listRowRecipe.title.textVariant, emphasis: read ? "regular" : "strong", children: title }), description: _jsxs(Stack, { gap: "xxs", children: [description, dot ? _jsxs("span", { style: { display: "flex", alignItems: "center", gap: notificationRecipe.contentGap }, children: [meta, dot] }) : meta] }) });
109
113
  }
110
114
  /** Caller supplies a virtualized timeline and keyboard-aware composer; no implicit auto-scroll or send. */
111
- export function ChatScreen({ composer, jumpToLatest, avatar, scroll = "content", ...props }) {
115
+ export function ChatScreen({ composer, jumpToLatest, avatar, avatarAction, scroll = "content", ...props }) {
112
116
  // An empty conversation must still allow its first message; unavailable states hide input.
113
117
  const showComposer = !props.state || props.state.kind === "ready" || props.state.kind === "empty";
114
118
  // Anchor the jump control to the composer edge so it floats over the timeline without measuring the footer.
115
119
  // Conversations center the peer between back and tools and use the measured 10px timeline gutter (2026-10-16).
116
- return _jsx(ScreenLayout, { ...props, className: classNames("hjm-chat-screen", props.className) ?? "hjm-chat-screen", titleLeading: avatar, scroll: scroll, footer: showComposer ? _jsxs("div", { className: "hjm-chat-screen__footer", children: [jumpToLatest ? _jsx("div", { className: "hjm-chat-screen__jump", children: _jsx(IconButton, { label: jumpToLatest.label, size: "small", shape: "circle", tone: "secondary", onClick: jumpToLatest.onPress, children: jumpToLatest.icon }) }) : null, composer] }) : null });
120
+ return _jsx(ScreenLayout, { ...props, className: classNames("hjm-chat-screen", props.className) ?? "hjm-chat-screen", titleLeading: avatar, ...(avatarAction ? { titleLeadingAction: avatarAction } : {}), scroll: scroll, footer: showComposer ? _jsxs("div", { className: "hjm-chat-screen__footer", children: [jumpToLatest ? _jsx("div", { className: "hjm-chat-screen__jump", children: _jsx(IconButton, { label: jumpToLatest.label, size: "small", shape: "circle", tone: "secondary", onClick: jumpToLatest.onPress, children: jumpToLatest.icon }) }) : null, composer] }) : null });
117
121
  }
118
122
  export function MessageComposer({ leading, quickInserts, value, label, sendLabel, placeholder = label, description, descriptionAlign = "start", error, invalid = false, submitMode = "newline", onBlur, disabled = false, pending = false, onValueChange, onSend, maxLength, lengthFeedback, sendDisabled = false, additionalContent = false, leadingAction, inputRef, context, replyTo, editTarget, sendIcon, sendPresentation = "inline", attachmentAction, attachments = [], onRemoveAttachment, layoutStyle }) {
119
123
  if (replyTo && editTarget)
@@ -147,7 +151,7 @@ export function MessageComposer({ leading, quickInserts, value, label, sendLabel
147
151
  // The error is announced by TextArea's shared Field error region (internal/field-error.tsx); no composer-only copy.
148
152
  return _jsxs("div", { className: "hjm-message-composer", "data-send-presentation": sendPresentation, "data-description-align": descriptionAlign, style: { "--hjm-message-composer-gap": `${screenPatternRecipe.itemGap}px`, "--hjm-attachment-size": `${screenPatternRecipe.attachmentSize}px`, "--hjm-attachment-remove-size": `${screenPatternRecipe.attachmentRemoveSize}px`, ...layoutStyle }, children: [context, quickRow, _jsxs("div", { className: "hjm-message-composer__reply-card", "data-replying": target ? true : undefined, children: [target ? _jsxs("div", { className: "hjm-message-composer__reply", children: [_jsxs("div", { className: "hjm-message-composer__reply-text", children: [_jsx(Text, { emphasis: "strong", children: target.author }), _jsx(Text, { variant: "caption", tone: "muted", className: "hjm-message-composer__reply-excerpt", children: target.excerpt })] }), _jsx(IconButton, { label: target.cancelLabel, tone: "secondary", size: "small", shape: "circle", disabled: locked, onClick: target.onCancel, children: _jsx(Text, { children: "\u00D7" }) })] }) : null, composerBody] }), lengthFeedback && limit?.near ? _jsx(Progress, { shape: "circular", label: lengthFeedback.label, value: Math.min(limit.used, limit.max), max: limit.max, valueText: lengthFeedback.formatCount(limit.used, limit.max), children: _jsx(Text, { variant: "caption", children: lengthFeedback.formatCount(limit.used, limit.max) }) }) : null] });
149
153
  }
150
- export function ChatMessage({ direction, author, timestamp, timestampPresentation = "always", bubbleTail = true, groupPosition = "single", deliveryLabel, avatar, reply, replyQuote, media = [], mediaAlbum, actions, replyAction, replyLink, reactions, children, interactiveContent = false, layoutStyle }) {
154
+ export function ChatMessage({ direction, author, timestamp, timestampPresentation = "always", bubbleTail = true, groupPosition = "single", deliveryLabel, avatar, avatarAction, reply, replyQuote, media = [], mediaAlbum, actions, replyAction, replyLink, reactions, children, interactiveContent = false, layoutStyle }) {
151
155
  const theme = useOptionalHjmTheme();
152
156
  const display = resolveChatMessageGroupDisplay(groupPosition);
153
157
  // A run shows its time once, beside its last bubble; delivery state stays on every bubble.
@@ -188,7 +192,7 @@ export function ChatMessage({ direction, author, timestamp, timestampPresentatio
188
192
  finish(); }, onPointerLeave: event => { if (start.current?.pointerId === event.pointerId)
189
193
  finish(); }, style: { ...layoutStyle, position: "relative", overflow: "hidden", marginBlockStart: display.spacingBefore,
190
194
  // Reserve tip room only where it protrudes (own trailing edge, or leading edge without an avatar column).
191
- ...(bubbleTail ? (direction === "outgoing" ? { paddingInlineEnd: chatMessageRecipe.tailWidth } : avatar ? {} : { paddingInlineStart: chatMessageRecipe.tailWidth }) : {}), touchAction: revealTime || replyAction ? "pan-y" : undefined }, "aria-label": author, children: [revealTime ? _jsx("time", { style: { position: "absolute", ...(direction === "outgoing" ? { right: 0, justifyContent: "flex-end" } : { left: 0 }), top: 0, bottom: 0, width: 80, display: "flex", alignItems: "center", opacity: offset !== 0 ? 1 : 0, pointerEvents: "none" }, children: _jsx(Text, { variant: "caption", tone: "muted", children: timestamp }) }) : null, _jsxs("div", { className: "hjm-chat-message", style: { transform: `translateX(${offset}px)`, transition: start.current || theme?.environment.reducedMotion ? "none" : "transform var(--hjm-motion-normal, 200ms) ease-out", "--hjm-message-max-width": screenPatternRecipe.messageMaxWidth, "--hjm-chat-avatar-size": `${chatMessageRecipe.avatarSize}px` }, "data-direction": direction, "data-tail": (bubbleTail && display.showTail) || undefined, children: [avatar ? _jsx("div", { className: "hjm-chat-message__avatar", "aria-hidden": display.showAvatar ? undefined : true, children: display.showAvatar ? avatar : null }) : null, _jsxs("div", { className: "hjm-chat-message__content", children: [author && display.showAuthor && direction !== "outgoing" ? _jsx(Text, { variant: "caption", tone: "muted", children: author }) : null, _jsxs("div", { className: "hjm-chat-message__body", children: [reactionMenu ? _jsxs(MessageReactions, { ...reactionMenu, menuRef: menu, interactiveContent: interactiveContent || mediaAlbum !== undefined, ...(timestamp ? { menuTitle: timestamp } : {}), ...(replyAction && !replyAction.disabled ? { replyAction } : {}), children: [quoteBlock, mediaBlock, photoOnly ? null : children] }) : _jsxs("div", { className: "hjm-chat-message__bubble", "data-photo-only": photoOnly || undefined, children: [quoteBlock, mediaBlock, photoOnly ? null : children] }), (!revealTime && visibleTime) || deliveryLabel || actions || summaryButton ? _jsxs("div", { className: "hjm-chat-message__meta", children: [summaryButton, (!revealTime && visibleTime) || deliveryLabel ? _jsx(Text, { variant: "caption", tone: "muted", children: [revealTime ? "" : visibleTime, deliveryLabel].filter(Boolean).join(" · ") }) : null, actions] }) : null] })] })] })] });
195
+ ...(bubbleTail ? (direction === "outgoing" ? { paddingInlineEnd: chatMessageRecipe.tailWidth } : avatar ? {} : { paddingInlineStart: chatMessageRecipe.tailWidth }) : {}), touchAction: revealTime || replyAction ? "pan-y" : undefined }, "aria-label": author, children: [revealTime ? _jsx("time", { style: { position: "absolute", ...(direction === "outgoing" ? { right: 0, justifyContent: "flex-end" } : { left: 0 }), top: 0, bottom: 0, width: 80, display: "flex", alignItems: "center", opacity: offset !== 0 ? 1 : 0, pointerEvents: "none" }, children: _jsx(Text, { variant: "caption", tone: "muted", children: timestamp }) }) : null, _jsxs("div", { className: "hjm-chat-message", style: { transform: `translateX(${offset}px)`, transition: start.current || theme?.environment.reducedMotion ? "none" : "transform var(--hjm-motion-normal, 200ms) ease-out", "--hjm-message-max-width": screenPatternRecipe.messageMaxWidth, "--hjm-chat-avatar-size": `${avatarAction ? iconButtonRecipe.sizes.medium.diameter : chatMessageRecipe.avatarSize}px` }, "data-direction": direction, "data-tail": (bubbleTail && display.showTail) || undefined, children: [avatar ? _jsx("div", { className: "hjm-chat-message__avatar", "aria-hidden": display.showAvatar ? undefined : true, children: display.showAvatar ? avatarAction ? _jsx(IdentityAction, { action: avatarAction, children: avatar }) : avatar : null }) : null, _jsxs("div", { className: "hjm-chat-message__content", children: [author && display.showAuthor && direction !== "outgoing" ? _jsx(Text, { variant: "caption", tone: "muted", children: author }) : null, _jsxs("div", { className: "hjm-chat-message__body", children: [reactionMenu ? _jsxs(MessageReactions, { ...reactionMenu, menuRef: menu, interactiveContent: interactiveContent || mediaAlbum !== undefined, ...(timestamp ? { menuTitle: timestamp } : {}), ...(replyAction && !replyAction.disabled ? { replyAction } : {}), children: [quoteBlock, mediaBlock, photoOnly ? null : children] }) : _jsxs("div", { className: "hjm-chat-message__bubble", "data-photo-only": photoOnly || undefined, children: [quoteBlock, mediaBlock, photoOnly ? null : children] }), (!revealTime && visibleTime) || deliveryLabel || actions || summaryButton ? _jsxs("div", { className: "hjm-chat-message__meta", children: [summaryButton, (!revealTime && visibleTime) || deliveryLabel ? _jsx(Text, { variant: "caption", tone: "muted", children: [revealTime ? "" : visibleTime, deliveryLabel].filter(Boolean).join(" · ") }) : null, actions] }) : null] })] })] })] });
192
196
  }
193
197
  export function CompositionLayout({ title, titleSize = "default", headingLevel = 3, description, badge, leading, actions, notice, children, footer, aside, footerAside, state = { kind: "ready" }, stateAction, stateHeight = "fit", loadingIndicator, layoutStyle }) {
194
198
  const resolved = resolveScreenContentState(state);
@@ -201,13 +205,23 @@ export function CompositionLayout({ title, titleSize = "default", headingLevel =
201
205
  return _jsxs(Stack, { gap: "md", ...(layoutStyle === undefined ? {} : { layoutStyle }), children: [aside ? _jsxs(Stack, { axis: "inline", gap: "md", align: "start", children: [_jsx(Stack, { gap: "md", layoutStyle: { flex: 1, minWidth: 0 }, children: content }), _jsx(Stack, { layoutStyle: { flexShrink: 0, maxWidth: "40%" }, children: aside })] }) : content, footerAside ? _jsxs(Stack, { axis: "inline", gap: "xs", align: "center", justify: "between", wrap: true, children: [footer ? _jsx(Stack, { layoutStyle: { flexGrow: 1, minWidth: 0 }, children: footer }) : null, footerAside] }) : footer] });
202
206
  }
203
207
  /** Optional shared command host; passive previews remain compatible with existing router/gesture hosts. */
204
- export function NotificationRow({ preview, metadata, avatar, avatarBadge, thumbnail, unread = false, separator = false, action }) {
208
+ export function NotificationRow({ preview, metadata, avatar, avatarAction, avatarBadge, thumbnail, unread = false, separator = false, action }) {
205
209
  const r = notificationRecipe;
206
210
  if (action && !action.label.trim())
207
211
  throw new TypeError("NotificationRow action requires a localized label");
208
- const content = _jsxs("span", { "aria-hidden": "true", "data-hjm-notification-row": "true", style: { position: "relative", display: "flex", alignItems: "center", gap: r.gap, padding: `${r.paddingBlock}px ${r.paddingInline}px`, width: "100%", minWidth: 0, boxSizing: "border-box" }, children: [separator ? _jsx("span", { "data-hjm-notification-separator": "true", style: { position: "absolute", insetBlockStart: 0, insetInlineStart: r.separatorInsetStart, insetInlineEnd: 0, borderBlockStart: "1px solid var(--hjm-color-border)" } }) : null, _jsxs("span", { style: { position: "relative", width: r.avatarSize, height: r.avatarSize, flexShrink: 0 }, children: [_jsx("span", { style: { display: "flex", width: "100%", height: "100%", overflow: "hidden", borderRadius: "50%" }, children: avatar }), avatarBadge ? _jsx("span", { style: { position: "absolute", bottom: 0, right: 0, display: "flex", alignItems: "center", justifyContent: "center", width: r.avatarBadgeSize, height: r.avatarBadgeSize, borderRadius: "50%", background: "var(--hjm-color-surface)", border: "2px solid var(--hjm-color-surface)", boxSizing: "border-box" }, children: avatarBadge }) : null] }), _jsxs("span", { "data-hjm-notification-copy": "true", style: { flex: 1, minWidth: 0, display: "flex", flexDirection: "column", gap: r.contentGap }, children: [_jsx(Text, { style: { display: "-webkit-box", WebkitBoxOrient: "vertical", WebkitLineClamp: r.previewLines, overflow: "hidden" }, children: preview }), _jsxs("span", { style: { display: "flex", alignItems: "center", gap: r.contentGap }, children: [_jsx(Text, { variant: "caption", tone: "muted", children: metadata }), unread ? _jsx("span", { "data-hjm-unread-dot": "true", style: { width: r.unreadSize, height: r.unreadSize, borderRadius: "50%", flexShrink: 0, background: "var(--hjm-color-content-brand)" } }) : null] })] }), thumbnail ? _jsx("span", { style: { width: r.thumbnailSize, height: r.thumbnailSize, flexShrink: 0, overflow: "hidden", borderRadius: "var(--hjm-radius-sm)" }, children: thumbnail }) : null] });
209
- return action ? _jsx("button", { type: "button", className: "hjm-notification-row-action", "aria-label": action.label, disabled: action.disabled, onClick: () => { if (!action.disabled)
210
- action.onActivate(); }, style: { "--hjm-notification-disabled-opacity": r.interaction.disabledOpacity, "--hjm-notification-pressed-opacity": r.interaction.pressedOpacity }, children: content }) : content;
212
+ const portrait = _jsxs("span", { style: { position: "relative", display: "flex", width: r.avatarSize, height: r.avatarSize, flexShrink: 0 }, children: [_jsx("span", { style: { display: "flex", width: "100%", height: "100%", overflow: "hidden", borderRadius: "50%" }, children: avatar }), avatarBadge ? _jsx("span", { style: { position: "absolute", bottom: 0, right: 0, display: "flex", alignItems: "center", justifyContent: "center", width: r.avatarBadgeSize, height: r.avatarBadgeSize, borderRadius: "50%", background: "var(--hjm-color-surface)", border: "2px solid var(--hjm-color-surface)", boxSizing: "border-box" }, children: avatarBadge }) : null] });
213
+ const copy = _jsxs("span", { "data-hjm-notification-copy": "true", style: { flex: 1, minWidth: 0, display: "flex", flexDirection: "column", gap: r.contentGap }, children: [_jsx(Text, { style: { display: "-webkit-box", WebkitBoxOrient: "vertical", WebkitLineClamp: r.previewLines, overflow: "hidden" }, children: preview }), _jsxs("span", { style: { display: "flex", alignItems: "center", gap: r.contentGap }, children: [_jsx(Text, { variant: "caption", tone: "muted", children: metadata }), unread ? _jsx("span", { "data-hjm-unread-dot": "true", style: { width: r.unreadSize, height: r.unreadSize, borderRadius: "50%", flexShrink: 0, background: "var(--hjm-color-content-brand)" } }) : null] })] });
214
+ const image = thumbnail ? _jsx("span", { style: { width: r.thumbnailSize, height: r.thumbnailSize, flexShrink: 0, overflow: "hidden", borderRadius: "var(--hjm-radius-sm)" }, children: thumbnail }) : null;
215
+ const divider = separator ? _jsx("span", { "data-hjm-notification-separator": "true", style: { position: "absolute", insetBlockStart: 0, insetInlineStart: r.separatorInsetStart, insetInlineEnd: 0, borderBlockStart: "1px solid var(--hjm-color-border)" } }) : null;
216
+ const rowStyle = { position: "relative", display: "flex", alignItems: "center", gap: r.gap, padding: `${r.paddingBlock}px ${r.paddingInline}px`, width: "100%", minWidth: 0, boxSizing: "border-box" };
217
+ const commandStyle = { "--hjm-notification-disabled-opacity": r.interaction.disabledOpacity, "--hjm-notification-pressed-opacity": r.interaction.pressedOpacity };
218
+ const activate = () => { if (action && !action.disabled)
219
+ action.onActivate(); };
220
+ // Separate destinations share the same visual parts, with sibling controls rather than nested buttons.
221
+ if (avatarAction)
222
+ return _jsxs("div", { "data-hjm-notification-row": "true", style: rowStyle, children: [divider, _jsx(IdentityAction, { action: avatarAction, children: portrait }), action ? _jsx("button", { type: "button", className: "hjm-notification-row-action", "aria-label": action.label, disabled: action.disabled, onClick: activate, style: { ...commandStyle, flex: 1, minWidth: 0, minHeight: r.avatarSize }, children: _jsxs("span", { "aria-hidden": "true", style: { display: "flex", alignItems: "center", gap: r.gap, width: "100%" }, children: [copy, image] }) }) : _jsxs("span", { style: { display: "flex", alignItems: "center", gap: r.gap, flex: 1, minWidth: 0 }, children: [copy, image] })] });
223
+ const content = _jsxs("span", { "aria-hidden": "true", "data-hjm-notification-row": "true", style: rowStyle, children: [divider, portrait, copy, image] });
224
+ return action ? _jsx("button", { type: "button", className: "hjm-notification-row-action", "aria-label": action.label, disabled: action.disabled, onClick: activate, style: commandStyle, children: content }) : content;
211
225
  }
212
226
  /** Shared launcher/profile tile; simple activation and gesture-only presentation reuse identical content. */
213
227
  export function IconTile({ icon, label, overlay, labelLines = 1, ghost = false, frame = iconTileRecipe.defaults.frame, shape = iconTileRecipe.defaults.shape, size = iconTileRecipe.defaults.size, onActivate, activationLabel, disabled = false, locked = false, lockedLabel, accessory, accessoryPlacement = iconTileRecipe.defaults.accessoryPlacement, layoutStyle }) {