@revikornmann/muka-ui 0.11.0 → 0.13.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 (150) hide show
  1. package/build/manifest.json +30 -0
  2. package/dist/cjs/components/AgentTaskList/AgentTaskList.css +22 -3
  3. package/dist/cjs/components/AgentTaskList/AgentTaskList.js +1 -1
  4. package/dist/cjs/components/BadgeNumber/BadgeNumber.css +105 -0
  5. package/dist/cjs/components/BadgeNumber/BadgeNumber.js +19 -0
  6. package/dist/cjs/components/BadgeNumber/BadgeNumber.js.map +1 -0
  7. package/dist/cjs/components/BadgeNumber/index.js +11 -0
  8. package/dist/cjs/components/BadgeNumber/index.js.map +1 -0
  9. package/dist/cjs/components/BottomBar/BottomBar.css +8 -5
  10. package/dist/cjs/components/Button/Button.css +13 -6
  11. package/dist/cjs/components/Button/Button.js +1 -1
  12. package/dist/cjs/components/ChatComposer/ChatComposer.css +13 -1
  13. package/dist/cjs/components/ChatMessage/ChatMessage.css +328 -0
  14. package/dist/cjs/components/ChatMessage/ChatMessage.js +141 -0
  15. package/dist/cjs/components/ChatMessage/ChatMessage.js.map +1 -0
  16. package/dist/cjs/components/ChatMessage/index.js +7 -0
  17. package/dist/cjs/components/ChatMessage/index.js.map +1 -0
  18. package/dist/cjs/components/ChatMessageList/ChatMessageList.css +17 -1
  19. package/dist/cjs/components/ChatMessageList/ChatMessageList.js +1 -1
  20. package/dist/cjs/components/ChatMessageStack/ChatMessageStack.css +51 -0
  21. package/dist/cjs/components/ChatMessageStack/ChatMessageStack.js +49 -0
  22. package/dist/cjs/components/ChatMessageStack/ChatMessageStack.js.map +1 -0
  23. package/dist/cjs/components/ChatMessageStack/index.js +6 -0
  24. package/dist/cjs/components/ChatMessageStack/index.js.map +1 -0
  25. package/dist/cjs/components/ChatPhotoGrid/ChatPhotoGrid.css +119 -0
  26. package/dist/cjs/components/ChatPhotoGrid/ChatPhotoGrid.js +47 -0
  27. package/dist/cjs/components/ChatPhotoGrid/ChatPhotoGrid.js.map +1 -0
  28. package/dist/cjs/components/ChatPhotoGrid/index.js +11 -0
  29. package/dist/cjs/components/ChatPhotoGrid/index.js.map +1 -0
  30. package/dist/cjs/components/Menu/Menu.js +5 -4
  31. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  32. package/dist/cjs/components/index.js +11 -5
  33. package/dist/cjs/components/index.js.map +1 -1
  34. package/dist/cjs/utils/useLongPress.js +71 -0
  35. package/dist/cjs/utils/useLongPress.js.map +1 -0
  36. package/dist/esm/components/AgentTaskList/AgentTaskList.css +22 -3
  37. package/dist/esm/components/AgentTaskList/AgentTaskList.js +1 -1
  38. package/dist/esm/components/BadgeNumber/BadgeNumber.css +105 -0
  39. package/dist/esm/components/BadgeNumber/BadgeNumber.js +15 -0
  40. package/dist/esm/components/BadgeNumber/BadgeNumber.js.map +1 -0
  41. package/dist/esm/components/BadgeNumber/index.js +3 -0
  42. package/dist/esm/components/BadgeNumber/index.js.map +1 -0
  43. package/dist/esm/components/BottomBar/BottomBar.css +8 -5
  44. package/dist/esm/components/Button/Button.css +13 -6
  45. package/dist/esm/components/Button/Button.js +1 -1
  46. package/dist/esm/components/ChatComposer/ChatComposer.css +13 -1
  47. package/dist/esm/components/ChatMessage/ChatMessage.css +328 -0
  48. package/dist/esm/components/ChatMessage/ChatMessage.js +137 -0
  49. package/dist/esm/components/ChatMessage/ChatMessage.js.map +1 -0
  50. package/dist/esm/components/ChatMessage/index.js +2 -0
  51. package/dist/esm/components/ChatMessage/index.js.map +1 -0
  52. package/dist/esm/components/ChatMessageList/ChatMessageList.css +17 -1
  53. package/dist/esm/components/ChatMessageList/ChatMessageList.js +1 -1
  54. package/dist/esm/components/ChatMessageStack/ChatMessageStack.css +51 -0
  55. package/dist/esm/components/ChatMessageStack/ChatMessageStack.js +42 -0
  56. package/dist/esm/components/ChatMessageStack/ChatMessageStack.js.map +1 -0
  57. package/dist/esm/components/ChatMessageStack/index.js +2 -0
  58. package/dist/esm/components/ChatMessageStack/index.js.map +1 -0
  59. package/dist/esm/components/ChatPhotoGrid/ChatPhotoGrid.css +119 -0
  60. package/dist/esm/components/ChatPhotoGrid/ChatPhotoGrid.js +43 -0
  61. package/dist/esm/components/ChatPhotoGrid/ChatPhotoGrid.js.map +1 -0
  62. package/dist/esm/components/ChatPhotoGrid/index.js +3 -0
  63. package/dist/esm/components/ChatPhotoGrid/index.js.map +1 -0
  64. package/dist/esm/components/Menu/Menu.js +5 -4
  65. package/dist/esm/components/Menu/Menu.js.map +1 -1
  66. package/dist/esm/components/index.js +4 -1
  67. package/dist/esm/components/index.js.map +1 -1
  68. package/dist/esm/utils/useLongPress.js +68 -0
  69. package/dist/esm/utils/useLongPress.js.map +1 -0
  70. package/dist/styles/components/AgentTaskList.css +22 -3
  71. package/dist/styles/components/BadgeNumber.css +105 -0
  72. package/dist/styles/components/BottomBar.css +8 -5
  73. package/dist/styles/components/Button.css +13 -6
  74. package/dist/styles/components/ChatComposer.css +13 -1
  75. package/dist/styles/components/ChatMessage.css +328 -0
  76. package/dist/styles/components/ChatMessageList.css +17 -1
  77. package/dist/styles/components/ChatMessageStack.css +51 -0
  78. package/dist/styles/components/ChatPhotoGrid.css +119 -0
  79. package/dist/styles/index.css +2615 -1941
  80. package/dist/styles/muka-dark.css +2615 -1941
  81. package/dist/styles/muka-light.css +2615 -1941
  82. package/dist/styles/tokens-bouwplan-dark.css +85 -0
  83. package/dist/styles/tokens-bouwplan-light.css +85 -0
  84. package/dist/styles/tokens-fscl-dark.css +85 -0
  85. package/dist/styles/tokens-fscl-light.css +85 -0
  86. package/dist/styles/tokens-grip-dark.css +85 -0
  87. package/dist/styles/tokens-grip-light.css +85 -0
  88. package/dist/styles/tokens-muka-dark.css +85 -0
  89. package/dist/styles/tokens-muka-light.css +85 -0
  90. package/dist/styles/tokens-wireframe-dark.css +85 -0
  91. package/dist/styles/tokens-wireframe-light.css +85 -0
  92. package/dist/styles/wireframe-dark.css +2615 -1941
  93. package/dist/styles/wireframe-light.css +2615 -1941
  94. package/dist/types/components/AgentTaskList/AgentTaskList.d.ts +1 -1
  95. package/dist/types/components/BadgeNumber/BadgeNumber.d.ts +17 -0
  96. package/dist/types/components/BadgeNumber/BadgeNumber.d.ts.map +1 -0
  97. package/dist/types/components/BadgeNumber/index.d.ts +3 -0
  98. package/dist/types/components/BadgeNumber/index.d.ts.map +1 -0
  99. package/dist/types/components/Button/Button.d.ts +1 -1
  100. package/dist/types/components/ChatMessage/ChatMessage.d.ts +130 -0
  101. package/dist/types/components/ChatMessage/ChatMessage.d.ts.map +1 -0
  102. package/dist/types/components/ChatMessage/index.d.ts +2 -0
  103. package/dist/types/components/ChatMessage/index.d.ts.map +1 -0
  104. package/dist/types/components/ChatMessageList/ChatMessageList.d.ts +2 -2
  105. package/dist/types/components/ChatMessageList/ChatMessageList.d.ts.map +1 -1
  106. package/dist/types/components/ChatMessageStack/ChatMessageStack.d.ts +46 -0
  107. package/dist/types/components/ChatMessageStack/ChatMessageStack.d.ts.map +1 -0
  108. package/dist/types/components/ChatMessageStack/index.d.ts +2 -0
  109. package/dist/types/components/ChatMessageStack/index.d.ts.map +1 -0
  110. package/dist/types/components/ChatPhotoGrid/ChatPhotoGrid.d.ts +44 -0
  111. package/dist/types/components/ChatPhotoGrid/ChatPhotoGrid.d.ts.map +1 -0
  112. package/dist/types/components/ChatPhotoGrid/index.d.ts +3 -0
  113. package/dist/types/components/ChatPhotoGrid/index.d.ts.map +1 -0
  114. package/dist/types/components/Menu/Menu.d.ts +12 -0
  115. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  116. package/dist/types/components/index.d.ts +4 -1
  117. package/dist/types/components/index.d.ts.map +1 -1
  118. package/dist/types/utils/useLongPress.d.ts +28 -0
  119. package/dist/types/utils/useLongPress.d.ts.map +1 -0
  120. package/package.json +1 -1
  121. package/tokens/README.md +14 -0
  122. package/tokens/t2-alias/brand/bouwplan/dark.json +24 -0
  123. package/tokens/t2-alias/brand/bouwplan/light.json +24 -0
  124. package/tokens/t2-alias/brand/fscl/dark.json +24 -0
  125. package/tokens/t2-alias/brand/fscl/light.json +24 -0
  126. package/tokens/t2-alias/brand/grip/dark.json +54 -0
  127. package/tokens/t2-alias/brand/grip/light.json +54 -0
  128. package/tokens/t2-alias/brand/muka/dark.json +54 -0
  129. package/tokens/t2-alias/brand/muka/light.json +54 -0
  130. package/tokens/t2-alias/brand/wireframe/dark.json +54 -0
  131. package/tokens/t2-alias/brand/wireframe/light.json +54 -0
  132. package/tokens/t3-semantics/ui.json +219 -0
  133. package/tokens/t4-components/badge-number.json +48 -0
  134. package/tokens/t4-components/chatbubble.json +180 -0
  135. package/tokens/t4-components/chatphotogrid.json +32 -0
  136. package/dist/cjs/components/ChatBubble/ChatBubble.css +0 -80
  137. package/dist/cjs/components/ChatBubble/ChatBubble.js +0 -24
  138. package/dist/cjs/components/ChatBubble/ChatBubble.js.map +0 -1
  139. package/dist/cjs/components/ChatBubble/index.js +0 -6
  140. package/dist/cjs/components/ChatBubble/index.js.map +0 -1
  141. package/dist/esm/components/ChatBubble/ChatBubble.css +0 -80
  142. package/dist/esm/components/ChatBubble/ChatBubble.js +0 -20
  143. package/dist/esm/components/ChatBubble/ChatBubble.js.map +0 -1
  144. package/dist/esm/components/ChatBubble/index.js +0 -2
  145. package/dist/esm/components/ChatBubble/index.js.map +0 -1
  146. package/dist/styles/components/ChatBubble.css +0 -80
  147. package/dist/types/components/ChatBubble/ChatBubble.d.ts +0 -30
  148. package/dist/types/components/ChatBubble/ChatBubble.d.ts.map +0 -1
  149. package/dist/types/components/ChatBubble/index.d.ts +0 -2
  150. package/dist/types/components/ChatBubble/index.d.ts.map +0 -1
@@ -37,7 +37,7 @@ export interface AgentTaskListProps {
37
37
  * Renders a header + a vertical timeline of tasks the agent is performing
38
38
  * (e.g. searching the web, querying a database, drafting an answer).
39
39
  *
40
- * Typically rendered above the agent's final reply inside a `ChatBubble`
40
+ * Typically rendered above the agent's final reply inside a `ChatMessage`
41
41
  * with `variant="agent"`.
42
42
  */
43
43
  export declare const AgentTaskList: React.FC<AgentTaskListProps>;
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import './BadgeNumber.css';
3
+ export interface BadgeNumberProps {
4
+ /** The number (or short numeric content) to display, e.g. an unread count */
5
+ children: React.ReactNode;
6
+ /** Color variant */
7
+ variant?: 'neutral' | 'info' | 'success' | 'warning' | 'error';
8
+ /** Size */
9
+ size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg';
10
+ /** Additional CSS classes */
11
+ className?: string;
12
+ /** Accessible label for the badge (e.g. "3 unread notifications") */
13
+ 'aria-label'?: string;
14
+ }
15
+ export declare const BadgeNumber: React.FC<BadgeNumberProps>;
16
+ export default BadgeNumber;
17
+ //# sourceMappingURL=BadgeNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BadgeNumber.d.ts","sourceRoot":"","sources":["../../../../components/BadgeNumber/BadgeNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oBAAoB;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC/D,WAAW;IACX,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsBlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { BadgeNumber, type BadgeNumberProps } from './BadgeNumber';
2
+ export { default } from './BadgeNumber';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/BadgeNumber/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -37,7 +37,7 @@ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElemen
37
37
  * - Uses native <button> element for full keyboard support
38
38
  * - Focus indicator meets WCAG 2.4.7 (visible focus)
39
39
  * - When iconOnly=true, aria-label is required (dev warning if missing)
40
- * - Supports aria-pressed for toggle buttons
40
+ * - Supports aria-pressed for toggle buttons (renders the pressed treatment when true)
41
41
  * - Supports aria-expanded/aria-controls for menu buttons
42
42
  *
43
43
  * @see https://www.w3.org/WAI/ARIA/apg/patterns/button/
@@ -0,0 +1,130 @@
1
+ import React from 'react';
2
+ import './ChatMessage.css';
3
+ export type ChatMessageVariant = 'own' | 'peer' | 'agent';
4
+ /**
5
+ * Set by `ChatMessageStack` so its children inherit the author without every
6
+ * message repeating it. Exported for the stack; not part of the public API.
7
+ */
8
+ export declare const ChatMessageVariantContext: React.Context<ChatMessageVariant | null>;
9
+ export interface ChatMessageMenuItem {
10
+ /** Stable identity for the item */
11
+ id: string;
12
+ /** Visible label */
13
+ label: string;
14
+ /** Optional leading icon */
15
+ icon?: React.ReactNode;
16
+ /** Called when the item is chosen. The menu closes afterwards. */
17
+ onSelect: () => void;
18
+ /** Render with destructive (red) styling */
19
+ destructive?: boolean;
20
+ /** Disabled state */
21
+ disabled?: boolean;
22
+ }
23
+ export interface ChatMessageProps {
24
+ /**
25
+ * Message author.
26
+ * - `own` — the signed-in user's own message, right-aligned
27
+ * - `peer` — another human in the conversation: card with border + shadow
28
+ * - `agent` — AI or system author: left-aligned balloon
29
+ *
30
+ * Inside a `ChatMessageStack` the stack supplies this. Standalone it defaults
31
+ * to `peer`.
32
+ */
33
+ variant?: ChatMessageVariant;
34
+ /** Message body. Plain text or rich content (e.g. a markdown renderer) */
35
+ children: React.ReactNode;
36
+ /**
37
+ * How wide the bubble is.
38
+ * - `auto` (default) — `short` when `children` is a string of at most 100
39
+ * characters and no media/embed/action stack is present, `long` otherwise
40
+ * - `short` — the bubble hugs its content
41
+ * - `long` — the bubble fills the available width, up to its max width
42
+ */
43
+ length?: 'auto' | 'short' | 'long';
44
+ /**
45
+ * Avatar rendered in the rail beside the bubble (right for `own`, left otherwise).
46
+ * Pass an `<Avatar />` or `<ProfileBadge />`.
47
+ */
48
+ avatar?: React.ReactNode;
49
+ /**
50
+ * Reserve the avatar rail without drawing an avatar, so a grouped message
51
+ * lines up with the one that carries it. `ChatMessageStack` sets this for you.
52
+ */
53
+ reserveAvatar?: boolean;
54
+ /** Author name shown in the header row (`peer` and `agent`) */
55
+ author?: string;
56
+ /** Role or label rendered after the author name (e.g. "Onderaannemer elektra") */
57
+ authorMeta?: string;
58
+ /**
59
+ * Status/visibility badge rendered at the end of the header row.
60
+ * Pass a `<Badge size="sm">` (e.g. "Alleen zichtbaar voor jou").
61
+ *
62
+ * Only rendered when `author` is set — the visibility indicator belongs to the
63
+ * author line, so hiding the author hides it too. With an author present it is
64
+ * yours to show or omit.
65
+ */
66
+ badge?: React.ReactNode;
67
+ /** Timestamp (e.g. "19:54"), inset in the bubble's bottom-right corner */
68
+ timestamp?: string;
69
+ /** Media block above the message body — typically a `<ChatPhotoGrid />` */
70
+ media?: React.ReactNode;
71
+ /**
72
+ * Tinted, bordered card rendered inside the bubble below the body.
73
+ * Content-agnostic — pass whatever structured content the message carries.
74
+ */
75
+ embed?: React.ReactNode;
76
+ /** When provided, renders a copy button in the embed's top-right corner */
77
+ onEmbedCopy?: () => void;
78
+ /** Accessible label for the embed copy button. Default: 'Copy' */
79
+ embedCopyLabel?: string;
80
+ /**
81
+ * Vertical stack of full-width action buttons rendered inside the bubble
82
+ * (e.g. "Ja, sluit af" / "Annuleer"). Pass `<Button fullWidth>` children.
83
+ */
84
+ actionStack?: React.ReactNode;
85
+ /** When provided, adds a copy entry to the options menu */
86
+ onCopy?: () => void;
87
+ /** Label for the copy entry. Default: 'Copy' */
88
+ copyLabel?: string;
89
+ /**
90
+ * When provided, adds the thumbs up/down pair to the options menu.
91
+ * Called with the value the user picked, or `null` when they clear it.
92
+ */
93
+ onFeedback?: (value: 'up' | 'down' | null) => void;
94
+ /** Current feedback selection. Drives the checkmark on the thumbs entries. */
95
+ feedback?: 'up' | 'down' | null;
96
+ /** Label for the thumbs up entry. Default: 'Helpful' */
97
+ feedbackUpLabel?: string;
98
+ /** Label for the thumbs down entry. Default: 'Not helpful' */
99
+ feedbackDownLabel?: string;
100
+ /** When provided, adds a regenerate entry to the options menu */
101
+ onRefresh?: () => void;
102
+ /** Label for the regenerate entry. Default: 'Regenerate' */
103
+ refreshLabel?: string;
104
+ /**
105
+ * Extra entries appended to the options menu after the built-in copy,
106
+ * feedback and regenerate entries.
107
+ */
108
+ menuItems?: ChatMessageMenuItem[];
109
+ /** Accessible label for the menu trigger, and title of the touch sheet. Default: 'Message options' */
110
+ menuLabel?: string;
111
+ /** Label for the touch sheet's cancel button. Default: 'Cancel' */
112
+ menuCancelLabel?: string;
113
+ /** Additional CSS classes */
114
+ className?: string;
115
+ }
116
+ /**
117
+ * ChatMessage — a single chat message.
118
+ *
119
+ * Composes with `ChatMessageList`, and with `ChatMessageStack` for consecutive
120
+ * messages from one author. Pass `<ChatPhotoGrid />` to `media`, an
121
+ * `<AgentTaskList />` above the bubble for tool progress, and a `<Badge />` to
122
+ * `badge` for visibility scope.
123
+ *
124
+ * Secondary actions (copy, feedback, regenerate, plus anything in `menuItems`)
125
+ * live behind one options menu: a dropdown revealed on hover on pointer
126
+ * devices, and a bottom sheet opened by long-pressing the bubble on touch.
127
+ */
128
+ export declare const ChatMessage: React.FC<ChatMessageProps>;
129
+ export default ChatMessage;
130
+ //# sourceMappingURL=ChatMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../../../components/ChatMessage/ChatMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+D,MAAM,OAAO,CAAC;AAMpF,OAAO,mBAAmB,CAAC;AAQ3B,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,yBAAyB,0CAAiD,CAAC;AAExF,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IAEX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,4BAA4B;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAQD,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAE7B,0EAA0E;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnC;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE9B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAEnD,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAEhC,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAElC,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsQlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ChatMessage, ChatMessageVariantContext, type ChatMessageProps, type ChatMessageMenuItem, type ChatMessageVariant, } from './ChatMessage';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/ChatMessage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import './ChatMessageList.css';
3
3
  export interface ChatMessageListProps {
4
- /** Message bubbles (typically `ChatBubble` instances) */
4
+ /** Message bubbles (typically `ChatMessage` instances) */
5
5
  children: React.ReactNode;
6
6
  /**
7
7
  * When true, the list auto-scrolls to the bottom whenever children change.
@@ -19,7 +19,7 @@ export interface ChatMessageListProps {
19
19
  * Auto-scrolls to bottom when content changes. Pin the list to the bottom of
20
20
  * the conversation so new messages stay in view as they arrive.
21
21
  *
22
- * Composes with `ChatBubble` and `TypingIndicator`.
22
+ * Composes with `ChatMessage` and `TypingIndicator`.
23
23
  */
24
24
  export declare const ChatMessageList: React.FC<ChatMessageListProps>;
25
25
  export default ChatMessageList;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessageList.d.ts","sourceRoot":"","sources":["../../../../components/ChatMessageList/ChatMessageList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4B1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ChatMessageList.d.ts","sourceRoot":"","sources":["../../../../components/ChatMessageList/ChatMessageList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4B1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import { type ChatMessageVariant } from '../ChatMessage';
3
+ import './ChatMessageStack.css';
4
+ export interface ChatMessageStackProps {
5
+ /** Author of every message in the stack */
6
+ variant: ChatMessageVariant;
7
+ /**
8
+ * `ChatMessage` elements, oldest first. The stack supplies `variant` to each,
9
+ * puts the author line on the first and the avatar on the last.
10
+ */
11
+ children: React.ReactNode;
12
+ /**
13
+ * Avatar for the stack. Drawn beside the *last* message; the others reserve
14
+ * the rail so every bubble lines up (Figma `5379:47050`).
15
+ */
16
+ avatar?: React.ReactNode;
17
+ /** Author name, rendered on the first message only */
18
+ author?: string;
19
+ /** Role or label after the author name, on the first message only */
20
+ authorMeta?: string;
21
+ /**
22
+ * Visibility badge, on the first message only. Like `ChatMessage`, it needs
23
+ * an `author` to render.
24
+ */
25
+ badge?: React.ReactNode;
26
+ /**
27
+ * Tool progress rendered above the stack — typically an `<AgentTaskList />`.
28
+ * Agent reasoning always opens a new stack, so it belongs to the stack as a
29
+ * whole rather than to any one message.
30
+ */
31
+ reasoning?: React.ReactNode;
32
+ /** Additional CSS classes */
33
+ className?: string;
34
+ }
35
+ /**
36
+ * ChatMessageStack — consecutive messages from one author.
37
+ *
38
+ * Only the first message carries the author line and only the last carries the
39
+ * avatar; the messages in between reserve the rail so the bubbles stay aligned.
40
+ * Pass plain `<ChatMessage>` children and let the stack place those parts.
41
+ *
42
+ * Compose inside a `ChatMessageList`.
43
+ */
44
+ export declare const ChatMessageStack: React.FC<ChatMessageStackProps>;
45
+ export default ChatMessageStack;
46
+ //# sourceMappingURL=ChatMessageStack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMessageStack.d.ts","sourceRoot":"","sources":["../../../../components/ChatMessageStack/ChatMessageStack.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,OAAO,EAAE,kBAAkB,CAAC;IAE5B;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAsD5D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ChatMessageStack, type ChatMessageStackProps } from './ChatMessageStack';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/ChatMessageStack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import './ChatPhotoGrid.css';
3
+ export interface ChatPhoto {
4
+ /** Image source */
5
+ src: string;
6
+ /** Alternative text. Falls back to an empty string (decorative) when omitted. */
7
+ alt?: string;
8
+ /** Called when the tile is activated. When set, the tile becomes a button. */
9
+ onClick?: () => void;
10
+ }
11
+ export interface ChatPhotoGridProps {
12
+ /** Photos to display, in order */
13
+ photos: ChatPhoto[];
14
+ /**
15
+ * Aspect ratio used when there is exactly one photo.
16
+ * Default: `landscape` (4:3). `portrait` is 3:4.
17
+ */
18
+ singleOrientation?: 'landscape' | 'portrait';
19
+ /**
20
+ * Maximum number of tiles shown before the last one becomes an overflow tile.
21
+ * Default: 6
22
+ */
23
+ max?: number;
24
+ /** Label for the overflow tile. Default: `` (count) => `+${count}` `` */
25
+ overflowLabel?: (count: number) => string;
26
+ /** Called when the overflow tile is activated */
27
+ onOverflowClick?: () => void;
28
+ /** Accessible label for the grid. Default: 'Photos' */
29
+ 'aria-label'?: string;
30
+ /** Additional CSS classes */
31
+ className?: string;
32
+ }
33
+ /**
34
+ * ChatPhotoGrid — responsive photo grid for a chat message.
35
+ *
36
+ * Column counts follow the design: 1 → single tile (4:3 or 3:4), 2 → 2 columns,
37
+ * 3 → 3 columns, 4 → 2×2, 5 → a 2-up row above a 3-up row, 6 → 2×3. Beyond
38
+ * `max`, the final tile shows a `+N` overflow badge.
39
+ *
40
+ * Compose into `ChatMessage`'s `media` slot.
41
+ */
42
+ export declare const ChatPhotoGrid: React.FC<ChatPhotoGridProps>;
43
+ export default ChatPhotoGrid;
44
+ //# sourceMappingURL=ChatPhotoGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatPhotoGrid.d.ts","sourceRoot":"","sources":["../../../../components/ChatPhotoGrid/ChatPhotoGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IAEZ,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,MAAM,EAAE,SAAS,EAAE,CAAC;IAEpB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IAE7C;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAE1C,iDAAiD;IACjD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8DtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ChatPhotoGrid, type ChatPhotoGridProps, type ChatPhoto, } from './ChatPhotoGrid';
2
+ export { default } from './ChatPhotoGrid';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/ChatPhotoGrid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -59,6 +59,12 @@ export interface MenuContentProps {
59
59
  className?: string;
60
60
  /** Whether to loop focus within the menu */
61
61
  loop?: boolean;
62
+ /**
63
+ * Called when focus returns to the trigger after the menu closes.
64
+ * Call `event.preventDefault()` to leave focus where it is — useful when the
65
+ * trigger is a hover-only affordance that should not stay revealed.
66
+ */
67
+ onCloseAutoFocus?: (event: Event) => void;
62
68
  }
63
69
  /**
64
70
  * MenuContent - The dropdown container for menu items
@@ -113,6 +119,12 @@ export interface MenuCheckboxItemProps {
113
119
  onCheckedChange?: (checked: boolean) => void;
114
120
  /** Disables the item */
115
121
  disabled?: boolean;
122
+ /**
123
+ * Icon to display before the label, in the same column as `MenuItem`'s icon.
124
+ * The checkmark then moves to the end of the row, so a menu that mixes plain
125
+ * and checkable items keeps one icon column.
126
+ */
127
+ icon?: React.ReactNode;
116
128
  /** Additional CSS classes */
117
129
  className?: string;
118
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../components/Menu/Menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../components/Menu/Menu.tsx"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ export { NavigationTransition, type NavigationTransitionProps } from './Navigati
30
30
  export { Section, type SectionProps } from './Section';
31
31
  export { Container, type ContainerProps } from './Container';
32
32
  export { Badge, type BadgeProps } from './Badge';
33
+ export { BadgeNumber, type BadgeNumberProps } from './BadgeNumber';
33
34
  export { Avatar, AvatarGroup, type AvatarProps, type AvatarGroupProps } from './Avatar';
34
35
  export { ProfileBadge, type ProfileBadgeProps } from './ProfileBadge';
35
36
  export { Progress, type ProgressProps } from './Progress';
@@ -63,8 +64,10 @@ export { SpecList, SpecRow, type SpecListProps, type SpecRowProps } from './Spec
63
64
  export { FAB, type FABProps } from './FAB';
64
65
  export { ActionSheet, type ActionSheetProps, type ActionSheetItem, } from './ActionSheet';
65
66
  export { SearchInput, type SearchInputProps } from './SearchInput';
66
- export { ChatBubble, type ChatBubbleProps } from './ChatBubble';
67
+ export { ChatMessage, type ChatMessageProps, type ChatMessageMenuItem, type ChatMessageVariant, } from './ChatMessage';
68
+ export { ChatMessageStack, type ChatMessageStackProps } from './ChatMessageStack';
67
69
  export { ChatMessageList, type ChatMessageListProps } from './ChatMessageList';
70
+ export { ChatPhotoGrid, type ChatPhotoGridProps, type ChatPhoto, } from './ChatPhotoGrid';
68
71
  export { ChatComposer, type ChatComposerProps } from './ChatComposer';
69
72
  export { AgentTaskList, type AgentTaskListProps, type AgentTask, } from './AgentTaskList';
70
73
  export { TypingIndicator, type TypingIndicatorProps } from './TypingIndicator';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { PointerEvent as ReactPointerEvent, MouseEvent as ReactMouseEvent } from 'react';
2
+ export interface UseLongPressOptions {
3
+ /** Called once the press has been held for `delay` without moving */
4
+ onLongPress: () => void;
5
+ /** Hold duration in milliseconds. Default: 500 */
6
+ delay?: number;
7
+ /** Movement in px that cancels the press. Default: 10 */
8
+ moveTolerance?: number;
9
+ /** Set to false to disarm the hook entirely. Default: true */
10
+ enabled?: boolean;
11
+ }
12
+ export interface LongPressHandlers {
13
+ onPointerDown: (event: ReactPointerEvent) => void;
14
+ onPointerMove: (event: ReactPointerEvent) => void;
15
+ onPointerUp: (event: ReactPointerEvent) => void;
16
+ onPointerCancel: (event: ReactPointerEvent) => void;
17
+ onContextMenu: (event: ReactMouseEvent) => void;
18
+ }
19
+ /**
20
+ * useLongPress — press-and-hold gesture for touch and pen input.
21
+ *
22
+ * Mouse input is deliberately ignored, so a component can pair this with a
23
+ * hover affordance without the two fighting each other. The press is cancelled
24
+ * by moving beyond `moveTolerance`, by lifting, and by scrolling.
25
+ */
26
+ export declare function useLongPress({ onLongPress, delay, moveTolerance, enabled, }: UseLongPressOptions): LongPressHandlers;
27
+ export default useLongPress;
28
+ //# sourceMappingURL=useLongPress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLongPress.d.ts","sourceRoot":"","sources":["../../../utils/useLongPress.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,IAAI,iBAAiB,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,OAAO,CAAC;AAE9F,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClD,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClD,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,WAAW,EACX,KAAW,EACX,aAAkB,EAClB,OAAc,GACf,EAAE,mBAAmB,GAAG,iBAAiB,CAiEzC;AAED,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@revikornmann/muka-ui",
3
- "version": "0.11.0",
3
+ "version": "0.13.0",
4
4
  "description": "Muka Design System - Multi-brand design tokens and React components",
5
5
  "main": "dist/cjs/components/index.js",
6
6
  "module": "dist/esm/components/index.js",
package/tokens/README.md CHANGED
@@ -73,8 +73,22 @@ npm run validate:tokens # Validate JSON structure
73
73
  - Never use T1 primitives directly in components
74
74
  - Use T4 component tokens or T3 semantic tokens in CSS
75
75
  - Brand customization happens at the T2 alias layer
76
+ - T2 holds palette **roles** (`brand`, `accent`, `neutral`, `state`, `conversation`),
77
+ never component names. A component needing brand-tunable colour gets a role at T2, an
78
+ intent mapping at T3, and references T3 from T4
79
+ - Prefer named surface steps (`surface.default` / `surface.raised`) over numbered ones in
80
+ new roles — the existing `level0→3` scales run in opposite directions at T2 and T3
81
+ - Every brand/mode file must define the full set of leaves for a role — an unknown
82
+ reference is written into the CSS as the literal `{token.path}`, silently.
83
+ `npm run validate:tokens` fails on that
76
84
  - Layout tokens use breakpoint override files, not inline metadata
77
85
 
86
+ ## Known discrepancy
87
+
88
+ The inheritance list above documents brand/theme overrides as applying *after* T4, but
89
+ `build/manifest.json` loads brand files **before** T3 and T4. Brand values therefore have
90
+ to flow upward by reference; a brand file cannot override a `{component}.*` token directly.
91
+
78
92
  ## Human Docs
79
93
  <!-- SYNC: Update paths when Storybook docs change -->
80
94
  - Token architecture guide: components/Documentation/TokenArchitecture.mdx
@@ -118,6 +118,30 @@
118
118
  "level3": { "$type": "color", "$value": "{color.sandDark.5}" }
119
119
  }
120
120
  }
121
+ },
122
+ "conversation": {
123
+ "own": {
124
+ "surface": {
125
+ "default": { "$type": "color", "$value": "{color.mintDark.3}" },
126
+ "raised": { "$type": "color", "$value": "{color.mintDark.2}" }
127
+ },
128
+ "border": { "$type": "color", "$value": "{color.mintDark.5}" }
129
+ },
130
+ "peer": {
131
+ "surface": {
132
+ "default": { "$type": "color", "$value": "{alias.color.neutral.1}" },
133
+ "raised": { "$type": "color", "$value": "{alias.color.neutral.2}" }
134
+ },
135
+ "border": { "$type": "color", "$value": "{alias.color.neutral.5}" }
136
+ },
137
+ "agent": {
138
+ "surface": {
139
+ "default": { "$type": "color", "$value": "{color.amberDark.3}" },
140
+ "raised": { "$type": "color", "$value": "{color.amberDark.2}" }
141
+ },
142
+ "border": { "$type": "color", "$value": "{color.amberDark.5}" }
143
+ },
144
+ "meta": { "$type": "color", "$value": "{alias.color.neutral.11}" }
121
145
  }
122
146
  }
123
147
  }
@@ -118,6 +118,30 @@
118
118
  "level3": { "$type": "color", "$value": "{color.sand.5}" }
119
119
  }
120
120
  }
121
+ },
122
+ "conversation": {
123
+ "own": {
124
+ "surface": {
125
+ "default": { "$type": "color", "$value": "{color.mint.3}" },
126
+ "raised": { "$type": "color", "$value": "{color.mint.2}" }
127
+ },
128
+ "border": { "$type": "color", "$value": "{color.mint.5}" }
129
+ },
130
+ "peer": {
131
+ "surface": {
132
+ "default": { "$type": "color", "$value": "{alias.color.neutral.1}" },
133
+ "raised": { "$type": "color", "$value": "{alias.color.neutral.2}" }
134
+ },
135
+ "border": { "$type": "color", "$value": "{alias.color.neutral.5}" }
136
+ },
137
+ "agent": {
138
+ "surface": {
139
+ "default": { "$type": "color", "$value": "{color.amber.3}" },
140
+ "raised": { "$type": "color", "$value": "{color.amber.2}" }
141
+ },
142
+ "border": { "$type": "color", "$value": "{color.amber.5}" }
143
+ },
144
+ "meta": { "$type": "color", "$value": "{alias.color.neutral.11}" }
121
145
  }
122
146
  }
123
147
  }
@@ -115,6 +115,30 @@
115
115
  "level3": { "$type": "color", "$value": "{color.grayDark.5}" }
116
116
  }
117
117
  }
118
+ },
119
+ "conversation": {
120
+ "own": {
121
+ "surface": {
122
+ "default": { "$type": "color", "$value": "{color.greenDark.3}" },
123
+ "raised": { "$type": "color", "$value": "{color.greenDark.2}" }
124
+ },
125
+ "border": { "$type": "color", "$value": "{color.greenDark.5}" }
126
+ },
127
+ "peer": {
128
+ "surface": {
129
+ "default": { "$type": "color", "$value": "{alias.color.neutral.1}" },
130
+ "raised": { "$type": "color", "$value": "{alias.color.neutral.2}" }
131
+ },
132
+ "border": { "$type": "color", "$value": "{alias.color.neutral.5}" }
133
+ },
134
+ "agent": {
135
+ "surface": {
136
+ "default": { "$type": "color", "$value": "{color.amberDark.3}" },
137
+ "raised": { "$type": "color", "$value": "{color.amberDark.2}" }
138
+ },
139
+ "border": { "$type": "color", "$value": "{color.amberDark.5}" }
140
+ },
141
+ "meta": { "$type": "color", "$value": "{alias.color.neutral.11}" }
118
142
  }
119
143
  }
120
144
  }
@@ -104,6 +104,30 @@
104
104
  "level3": { "$type": "color", "$value": "{color.blue.5}" }
105
105
  }
106
106
  }
107
+ },
108
+ "conversation": {
109
+ "own": {
110
+ "surface": {
111
+ "default": { "$type": "color", "$value": "{color.green.3}" },
112
+ "raised": { "$type": "color", "$value": "{color.green.2}" }
113
+ },
114
+ "border": { "$type": "color", "$value": "{color.green.5}" }
115
+ },
116
+ "peer": {
117
+ "surface": {
118
+ "default": { "$type": "color", "$value": "{alias.color.neutral.1}" },
119
+ "raised": { "$type": "color", "$value": "{alias.color.neutral.2}" }
120
+ },
121
+ "border": { "$type": "color", "$value": "{alias.color.neutral.5}" }
122
+ },
123
+ "agent": {
124
+ "surface": {
125
+ "default": { "$type": "color", "$value": "{color.amber.3}" },
126
+ "raised": { "$type": "color", "$value": "{color.amber.2}" }
127
+ },
128
+ "border": { "$type": "color", "$value": "{color.amber.5}" }
129
+ },
130
+ "meta": { "$type": "color", "$value": "{alias.color.neutral.11}" }
107
131
  }
108
132
  }
109
133
  }