@revikornmann/muka-ui 0.16.0 → 0.18.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 (204) hide show
  1. package/dist/cjs/components/ActionSheet/ActionSheet.js +1 -1
  2. package/dist/cjs/components/Breadcrumb/Breadcrumb.css +11 -3
  3. package/dist/cjs/components/Breadcrumb/Breadcrumb.js +19 -1
  4. package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -1
  5. package/dist/cjs/components/ChatComposer/ChatComposer.js +12 -4
  6. package/dist/cjs/components/ChatComposer/ChatComposer.js.map +1 -1
  7. package/dist/cjs/components/ContextSelect/ContextSelect.css +117 -0
  8. package/dist/cjs/components/ContextSelect/ContextSelect.js +49 -0
  9. package/dist/cjs/components/ContextSelect/ContextSelect.js.map +1 -0
  10. package/dist/cjs/components/ContextSelect/index.js +11 -0
  11. package/dist/cjs/components/ContextSelect/index.js.map +1 -0
  12. package/dist/cjs/components/EmojiPicker/EmojiPicker.css +19 -0
  13. package/dist/cjs/components/EmojiPicker/EmojiPicker.js +54 -0
  14. package/dist/cjs/components/EmojiPicker/EmojiPicker.js.map +1 -0
  15. package/dist/cjs/components/EmojiPicker/index.js +12 -0
  16. package/dist/cjs/components/EmojiPicker/index.js.map +1 -0
  17. package/dist/cjs/components/Icon/custom/ArrowDropUpDownIcon.js +11 -0
  18. package/dist/cjs/components/Icon/custom/ArrowDropUpDownIcon.js.map +1 -0
  19. package/dist/cjs/components/Icon/iconRegistry.js +6 -0
  20. package/dist/cjs/components/Icon/iconRegistry.js.map +1 -1
  21. package/dist/cjs/components/Menu/Menu.css +112 -2
  22. package/dist/cjs/components/Menu/Menu.js +171 -39
  23. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  24. package/dist/cjs/components/Menu/index.js +5 -1
  25. package/dist/cjs/components/Menu/index.js.map +1 -1
  26. package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.css +27 -0
  27. package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.js +36 -0
  28. package/dist/cjs/components/PhotoDraftStrip/PhotoDraftStrip.js.map +1 -0
  29. package/dist/cjs/components/PhotoDraftStrip/index.js +11 -0
  30. package/dist/cjs/components/PhotoDraftStrip/index.js.map +1 -0
  31. package/dist/cjs/components/RecordingBar/RecordingBar.css +47 -0
  32. package/dist/cjs/components/RecordingBar/RecordingBar.js +22 -0
  33. package/dist/cjs/components/RecordingBar/RecordingBar.js.map +1 -0
  34. package/dist/cjs/components/RecordingBar/index.js +11 -0
  35. package/dist/cjs/components/RecordingBar/index.js.map +1 -0
  36. package/dist/cjs/components/Scrollbar/Scrollbar.css +123 -0
  37. package/dist/cjs/components/Scrollbar/Scrollbar.js +118 -0
  38. package/dist/cjs/components/Scrollbar/Scrollbar.js.map +1 -0
  39. package/dist/cjs/components/Scrollbar/index.js +11 -0
  40. package/dist/cjs/components/Scrollbar/index.js.map +1 -0
  41. package/dist/cjs/components/VoiceMessage/VoiceMessage.css +29 -0
  42. package/dist/cjs/components/VoiceMessage/VoiceMessage.js +85 -0
  43. package/dist/cjs/components/VoiceMessage/VoiceMessage.js.map +1 -0
  44. package/dist/cjs/components/VoiceMessage/index.js +11 -0
  45. package/dist/cjs/components/VoiceMessage/index.js.map +1 -0
  46. package/dist/cjs/components/VoiceRecorder/audio.js +61 -0
  47. package/dist/cjs/components/VoiceRecorder/audio.js.map +1 -0
  48. package/dist/cjs/components/VoiceRecorder/index.js +16 -0
  49. package/dist/cjs/components/VoiceRecorder/index.js.map +1 -0
  50. package/dist/cjs/components/VoiceRecorder/useVoiceRecorder.js +213 -0
  51. package/dist/cjs/components/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  52. package/dist/cjs/components/Waveform/Waveform.css +23 -0
  53. package/dist/cjs/components/Waveform/Waveform.js +36 -0
  54. package/dist/cjs/components/Waveform/Waveform.js.map +1 -0
  55. package/dist/cjs/components/Waveform/index.js +11 -0
  56. package/dist/cjs/components/Waveform/index.js.map +1 -0
  57. package/dist/cjs/components/index.js +27 -15
  58. package/dist/cjs/components/index.js.map +1 -1
  59. package/dist/esm/components/ActionSheet/ActionSheet.js +1 -1
  60. package/dist/esm/components/Breadcrumb/Breadcrumb.css +11 -3
  61. package/dist/esm/components/Breadcrumb/Breadcrumb.js +19 -1
  62. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  63. package/dist/esm/components/ChatComposer/ChatComposer.js +12 -4
  64. package/dist/esm/components/ChatComposer/ChatComposer.js.map +1 -1
  65. package/dist/esm/components/ContextSelect/ContextSelect.css +117 -0
  66. package/dist/esm/components/ContextSelect/ContextSelect.js +45 -0
  67. package/dist/esm/components/ContextSelect/ContextSelect.js.map +1 -0
  68. package/dist/esm/components/ContextSelect/index.js +3 -0
  69. package/dist/esm/components/ContextSelect/index.js.map +1 -0
  70. package/dist/esm/components/EmojiPicker/EmojiPicker.css +19 -0
  71. package/dist/esm/components/EmojiPicker/EmojiPicker.js +50 -0
  72. package/dist/esm/components/EmojiPicker/EmojiPicker.js.map +1 -0
  73. package/dist/esm/components/EmojiPicker/index.js +3 -0
  74. package/dist/esm/components/EmojiPicker/index.js.map +1 -0
  75. package/dist/esm/components/Icon/custom/ArrowDropUpDownIcon.js +7 -0
  76. package/dist/esm/components/Icon/custom/ArrowDropUpDownIcon.js.map +1 -0
  77. package/dist/esm/components/Icon/iconRegistry.js +6 -0
  78. package/dist/esm/components/Icon/iconRegistry.js.map +1 -1
  79. package/dist/esm/components/Menu/Menu.css +112 -2
  80. package/dist/esm/components/Menu/Menu.js +170 -40
  81. package/dist/esm/components/Menu/Menu.js.map +1 -1
  82. package/dist/esm/components/Menu/index.js +1 -1
  83. package/dist/esm/components/Menu/index.js.map +1 -1
  84. package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.css +27 -0
  85. package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.js +32 -0
  86. package/dist/esm/components/PhotoDraftStrip/PhotoDraftStrip.js.map +1 -0
  87. package/dist/esm/components/PhotoDraftStrip/index.js +3 -0
  88. package/dist/esm/components/PhotoDraftStrip/index.js.map +1 -0
  89. package/dist/esm/components/RecordingBar/RecordingBar.css +47 -0
  90. package/dist/esm/components/RecordingBar/RecordingBar.js +18 -0
  91. package/dist/esm/components/RecordingBar/RecordingBar.js.map +1 -0
  92. package/dist/esm/components/RecordingBar/index.js +3 -0
  93. package/dist/esm/components/RecordingBar/index.js.map +1 -0
  94. package/dist/esm/components/Scrollbar/Scrollbar.css +123 -0
  95. package/dist/esm/components/Scrollbar/Scrollbar.js +114 -0
  96. package/dist/esm/components/Scrollbar/Scrollbar.js.map +1 -0
  97. package/dist/esm/components/Scrollbar/index.js +3 -0
  98. package/dist/esm/components/Scrollbar/index.js.map +1 -0
  99. package/dist/esm/components/VoiceMessage/VoiceMessage.css +29 -0
  100. package/dist/esm/components/VoiceMessage/VoiceMessage.js +81 -0
  101. package/dist/esm/components/VoiceMessage/VoiceMessage.js.map +1 -0
  102. package/dist/esm/components/VoiceMessage/index.js +3 -0
  103. package/dist/esm/components/VoiceMessage/index.js.map +1 -0
  104. package/dist/esm/components/VoiceRecorder/audio.js +55 -0
  105. package/dist/esm/components/VoiceRecorder/audio.js.map +1 -0
  106. package/dist/esm/components/VoiceRecorder/index.js +4 -0
  107. package/dist/esm/components/VoiceRecorder/index.js.map +1 -0
  108. package/dist/esm/components/VoiceRecorder/useVoiceRecorder.js +210 -0
  109. package/dist/esm/components/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  110. package/dist/esm/components/Waveform/Waveform.css +23 -0
  111. package/dist/esm/components/Waveform/Waveform.js +32 -0
  112. package/dist/esm/components/Waveform/Waveform.js.map +1 -0
  113. package/dist/esm/components/Waveform/index.js +3 -0
  114. package/dist/esm/components/Waveform/index.js.map +1 -0
  115. package/dist/esm/components/index.js +9 -2
  116. package/dist/esm/components/index.js.map +1 -1
  117. package/dist/styles/components/Breadcrumb.css +11 -3
  118. package/dist/styles/components/ContextSelect.css +117 -0
  119. package/dist/styles/components/EmojiPicker.css +19 -0
  120. package/dist/styles/components/Menu.css +112 -2
  121. package/dist/styles/components/PhotoDraftStrip.css +27 -0
  122. package/dist/styles/components/RecordingBar.css +47 -0
  123. package/dist/styles/components/Scrollbar.css +123 -0
  124. package/dist/styles/components/VoiceMessage.css +29 -0
  125. package/dist/styles/components/Waveform.css +23 -0
  126. package/dist/styles/index.css +919 -393
  127. package/dist/styles/muka-dark.css +919 -393
  128. package/dist/styles/muka-light.css +919 -393
  129. package/dist/styles/tokens-bouwplan-dark.css +4 -2
  130. package/dist/styles/tokens-bouwplan-light.css +4 -2
  131. package/dist/styles/tokens-fscl-dark.css +4 -2
  132. package/dist/styles/tokens-fscl-light.css +4 -2
  133. package/dist/styles/tokens-grip-dark.css +4 -2
  134. package/dist/styles/tokens-grip-light.css +4 -2
  135. package/dist/styles/tokens-muka-dark.css +4 -2
  136. package/dist/styles/tokens-muka-light.css +4 -2
  137. package/dist/styles/tokens-wireframe-dark.css +4 -2
  138. package/dist/styles/tokens-wireframe-light.css +4 -2
  139. package/dist/styles/wireframe-dark.css +919 -393
  140. package/dist/styles/wireframe-light.css +919 -393
  141. package/dist/types/components/ActionSheet/ActionSheet.d.ts +1 -1
  142. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +27 -3
  143. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  144. package/dist/types/components/ChatComposer/ChatComposer.d.ts +7 -0
  145. package/dist/types/components/ChatComposer/ChatComposer.d.ts.map +1 -1
  146. package/dist/types/components/ContextSelect/ContextSelect.d.ts +62 -0
  147. package/dist/types/components/ContextSelect/ContextSelect.d.ts.map +1 -0
  148. package/dist/types/components/ContextSelect/index.d.ts +3 -0
  149. package/dist/types/components/ContextSelect/index.d.ts.map +1 -0
  150. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  151. package/dist/types/components/EmojiPicker/EmojiPicker.d.ts +28 -0
  152. package/dist/types/components/EmojiPicker/EmojiPicker.d.ts.map +1 -0
  153. package/dist/types/components/EmojiPicker/index.d.ts +3 -0
  154. package/dist/types/components/EmojiPicker/index.d.ts.map +1 -0
  155. package/dist/types/components/Icon/custom/ArrowDropUpDownIcon.d.ts +9 -0
  156. package/dist/types/components/Icon/custom/ArrowDropUpDownIcon.d.ts.map +1 -0
  157. package/dist/types/components/Icon/iconRegistry.d.ts.map +1 -1
  158. package/dist/types/components/Menu/Menu.d.ts +58 -28
  159. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  160. package/dist/types/components/Menu/index.d.ts +2 -2
  161. package/dist/types/components/Menu/index.d.ts.map +1 -1
  162. package/dist/types/components/PhotoDraftStrip/PhotoDraftStrip.d.ts +51 -0
  163. package/dist/types/components/PhotoDraftStrip/PhotoDraftStrip.d.ts.map +1 -0
  164. package/dist/types/components/PhotoDraftStrip/index.d.ts +3 -0
  165. package/dist/types/components/PhotoDraftStrip/index.d.ts.map +1 -0
  166. package/dist/types/components/RecordingBar/RecordingBar.d.ts +22 -0
  167. package/dist/types/components/RecordingBar/RecordingBar.d.ts.map +1 -0
  168. package/dist/types/components/RecordingBar/index.d.ts +3 -0
  169. package/dist/types/components/RecordingBar/index.d.ts.map +1 -0
  170. package/dist/types/components/Scrollbar/Scrollbar.d.ts +19 -0
  171. package/dist/types/components/Scrollbar/Scrollbar.d.ts.map +1 -0
  172. package/dist/types/components/Scrollbar/index.d.ts +3 -0
  173. package/dist/types/components/Scrollbar/index.d.ts.map +1 -0
  174. package/dist/types/components/VoiceMessage/VoiceMessage.d.ts +34 -0
  175. package/dist/types/components/VoiceMessage/VoiceMessage.d.ts.map +1 -0
  176. package/dist/types/components/VoiceMessage/index.d.ts +3 -0
  177. package/dist/types/components/VoiceMessage/index.d.ts.map +1 -0
  178. package/dist/types/components/VoiceRecorder/audio.d.ts +20 -0
  179. package/dist/types/components/VoiceRecorder/audio.d.ts.map +1 -0
  180. package/dist/types/components/VoiceRecorder/index.d.ts +4 -0
  181. package/dist/types/components/VoiceRecorder/index.d.ts.map +1 -0
  182. package/dist/types/components/VoiceRecorder/useVoiceRecorder.d.ts +48 -0
  183. package/dist/types/components/VoiceRecorder/useVoiceRecorder.d.ts.map +1 -0
  184. package/dist/types/components/Waveform/Waveform.d.ts +31 -0
  185. package/dist/types/components/Waveform/Waveform.d.ts.map +1 -0
  186. package/dist/types/components/Waveform/index.d.ts +3 -0
  187. package/dist/types/components/Waveform/index.d.ts.map +1 -0
  188. package/dist/types/components/index.d.ts +10 -4
  189. package/dist/types/components/index.d.ts.map +1 -1
  190. package/package.json +1 -1
  191. package/tokens/README.md +1 -1
  192. package/tokens/t4-components/menu.json +12 -2
  193. package/dist/cjs/components/ContextMenu/ContextMenu.js +0 -186
  194. package/dist/cjs/components/ContextMenu/ContextMenu.js.map +0 -1
  195. package/dist/cjs/components/ContextMenu/index.js +0 -17
  196. package/dist/cjs/components/ContextMenu/index.js.map +0 -1
  197. package/dist/esm/components/ContextMenu/ContextMenu.js +0 -145
  198. package/dist/esm/components/ContextMenu/ContextMenu.js.map +0 -1
  199. package/dist/esm/components/ContextMenu/index.js +0 -2
  200. package/dist/esm/components/ContextMenu/index.js.map +0 -1
  201. package/dist/types/components/ContextMenu/ContextMenu.d.ts +0 -188
  202. package/dist/types/components/ContextMenu/ContextMenu.d.ts.map +0 -1
  203. package/dist/types/components/ContextMenu/index.d.ts +0 -3
  204. package/dist/types/components/ContextMenu/index.d.ts.map +0 -1
@@ -1,51 +1,159 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React, { createContext } from 'react';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React, { createContext, useCallback, useContext, useMemo, useRef, useState, } from 'react';
4
4
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
5
+ import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
5
6
  import { Icon } from '../Icon';
7
+ import { Scrollbar } from '../Scrollbar';
6
8
  import './Menu.css';
7
- const MenuContext = createContext({});
9
+ const MenuContext = createContext({ trigger: 'click' });
10
+ const MenuSearchContext = createContext({
11
+ query: '',
12
+ setQuery: () => { },
13
+ searchable: false,
14
+ });
15
+ export function useMenuSearch() {
16
+ return useContext(MenuSearchContext);
17
+ }
18
+ function useMenuPrimitives() {
19
+ const { trigger } = useContext(MenuContext);
20
+ return trigger === 'context' ? ContextMenuPrimitive : DropdownMenuPrimitive;
21
+ }
22
+ /** Bold the first case-insensitive match of `query` within `text`. */
23
+ export function highlightMenuMatch(text, query) {
24
+ if (!query)
25
+ return text;
26
+ const lower = text.toLowerCase();
27
+ const q = query.toLowerCase();
28
+ const index = lower.indexOf(q);
29
+ if (index === -1)
30
+ return text;
31
+ const before = text.slice(0, index);
32
+ const match = text.slice(index, index + query.length);
33
+ const after = text.slice(index + query.length);
34
+ return (_jsxs(_Fragment, { children: [before, _jsx("span", { className: "muka-menu__match", children: match }), after] }));
35
+ }
36
+ function getSearchableText(children) {
37
+ if (typeof children === 'string' || typeof children === 'number') {
38
+ return String(children);
39
+ }
40
+ if (Array.isArray(children)) {
41
+ return children.map(getSearchableText).join('');
42
+ }
43
+ if (React.isValidElement(children)) {
44
+ const props = children.props;
45
+ return getSearchableText(props.children);
46
+ }
47
+ return '';
48
+ }
49
+ function matchesSearch(children, query) {
50
+ if (!query)
51
+ return true;
52
+ return getSearchableText(children).toLowerCase().includes(query.toLowerCase());
53
+ }
8
54
  /**
9
- * Menu Component
10
- *
11
- * A dropdown menu for displaying actions and options.
12
- * Built on Radix UI DropdownMenu for accessibility and keyboard navigation.
55
+ * Menu (Dropdown Menu)
13
56
  *
14
- * @example
15
- * ```tsx
16
- * <Menu>
17
- * <MenuTrigger asChild>
18
- * <Button>Open Menu</Button>
19
- * </MenuTrigger>
20
- * <MenuContent>
21
- * <MenuItem onSelect={() => console.log('Edit')}>Edit</MenuItem>
22
- * <MenuItem onSelect={() => console.log('Delete')} destructive>Delete</MenuItem>
23
- * </MenuContent>
24
- * </Menu>
25
- * ```
57
+ * Shared action-menu surface for click and right-click triggers.
58
+ * Built on Radix DropdownMenu / ContextMenu.
26
59
  */
27
- export const Menu = ({ children, open, onOpenChange, defaultOpen, modal = true, }) => {
28
- return (_jsx(MenuContext.Provider, { value: { onOpenChange }, children: _jsx(DropdownMenuPrimitive.Root, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen, modal: modal, children: children }) }));
60
+ export const Menu = ({ children, trigger = 'click', open, onOpenChange, defaultOpen, modal = true, }) => {
61
+ const value = useMemo(() => ({ trigger, onOpenChange }), [trigger, onOpenChange]);
62
+ if (trigger === 'context') {
63
+ return (_jsx(MenuContext.Provider, { value: value, children: _jsx(ContextMenuPrimitive.Root, { onOpenChange: onOpenChange, modal: modal, children: children }) }));
64
+ }
65
+ return (_jsx(MenuContext.Provider, { value: value, children: _jsx(DropdownMenuPrimitive.Root, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen, modal: modal, children: children }) }));
29
66
  };
67
+ /** Alias for Figma / docs naming parity with "Dropdown Menu". */
68
+ export const DropdownMenu = Menu;
30
69
  /**
31
- * MenuTrigger - Button that opens the menu
70
+ * MenuTrigger — opens the menu on click or right-click depending on `Menu.trigger`.
32
71
  */
33
- export const MenuTrigger = React.forwardRef(({ children, asChild = false, className = '' }, ref) => {
34
- return (_jsx(DropdownMenuPrimitive.Trigger, { ref: ref, asChild: asChild, className: className || undefined, children: children }));
72
+ export const MenuTrigger = React.forwardRef(({ children, asChild = false, disabled = false, className = '' }, ref) => {
73
+ const { trigger } = useContext(MenuContext);
74
+ const Primitives = useMenuPrimitives();
75
+ if (trigger === 'context') {
76
+ const triggerClasses = ['muka-context-menu__trigger', className]
77
+ .filter(Boolean)
78
+ .join(' ');
79
+ return (_jsx(ContextMenuPrimitive.Trigger, { ref: ref, asChild: asChild, disabled: disabled, className: triggerClasses || undefined, children: children }));
80
+ }
81
+ return (_jsx(Primitives.Trigger, { ref: ref, asChild: asChild, disabled: disabled, className: className || undefined, children: children }));
35
82
  });
36
83
  MenuTrigger.displayName = 'MenuTrigger';
37
84
  /**
38
- * MenuContent - The dropdown container for menu items
85
+ * MenuContent — dropdown / context menu surface with optional search + scrollbar.
39
86
  */
40
- export const MenuContent = React.forwardRef(({ children, align = 'start', side = 'bottom', sideOffset = 4, alignOffset = 0, className = '', loop = true, onCloseAutoFocus, }, ref) => {
41
- const contentClasses = ['muka-menu__content', className].filter(Boolean).join(' ');
42
- return (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { ref: ref, align: align, side: side, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, onCloseAutoFocus: onCloseAutoFocus, children: children }) }));
87
+ function isMenuSearchElement(child) {
88
+ return (React.isValidElement(child) &&
89
+ typeof child.type !== 'string' &&
90
+ Boolean(child.type &&
91
+ typeof child.type === 'object' &&
92
+ 'displayName' in child.type &&
93
+ child.type.displayName === 'MenuSearch'));
94
+ }
95
+ function partitionMenuChildren(children) {
96
+ const search = [];
97
+ const items = [];
98
+ React.Children.forEach(children, (child) => {
99
+ if (isMenuSearchElement(child)) {
100
+ search.push(child);
101
+ }
102
+ else {
103
+ items.push(child);
104
+ }
105
+ });
106
+ return { search, items };
107
+ }
108
+ export const MenuContent = React.forwardRef(({ children, align = 'start', side = 'bottom', sideOffset = 4, alignOffset = 0, className = '', loop = true, onCloseAutoFocus, searchable = false, scrollbar = false, }, ref) => {
109
+ const { trigger } = useContext(MenuContext);
110
+ const [query, setQuery] = useState('');
111
+ const viewportRef = useRef(null);
112
+ const searchValue = useMemo(() => ({ query, setQuery, searchable }), [query, searchable]);
113
+ const { search, items } = partitionMenuChildren(children);
114
+ const searchNodes = search.length > 0 ? search : searchable ? _jsx(MenuSearch, {}) : null;
115
+ const contentClasses = [
116
+ 'muka-menu__content',
117
+ searchable && 'muka-menu__content--searchable',
118
+ scrollbar && 'muka-menu__content--scrollbar',
119
+ className,
120
+ ]
121
+ .filter(Boolean)
122
+ .join(' ');
123
+ const body = (_jsxs(MenuSearchContext.Provider, { value: searchValue, children: [searchNodes, _jsxs("div", { className: "muka-menu__body", children: [_jsx("div", { className: "muka-menu__viewport", ref: viewportRef, children: items }), scrollbar ? _jsx(Scrollbar, { viewportRef: viewportRef }) : null] })] }));
124
+ if (trigger === 'context') {
125
+ return (_jsx(ContextMenuPrimitive.Portal, { children: _jsx(ContextMenuPrimitive.Content, { ref: ref, alignOffset: alignOffset, className: contentClasses, loop: loop, onCloseAutoFocus: onCloseAutoFocus, children: body }) }));
126
+ }
127
+ return (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { ref: ref, align: align, side: side, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, onCloseAutoFocus: onCloseAutoFocus, children: body }) }));
43
128
  });
44
129
  MenuContent.displayName = 'MenuContent';
130
+ /**
131
+ * MenuSearch — sticky search header for filtering menu items.
132
+ * Must be used inside a `MenuContent` with `searchable`.
133
+ */
134
+ export const MenuSearch = React.forwardRef(({ placeholder = 'Search', className = '', 'aria-label': ariaLabel }, ref) => {
135
+ const { query, setQuery, searchable } = useMenuSearch();
136
+ const handleKeyDown = useCallback((e) => {
137
+ // Keep typing in the field from driving Radix typeahead / menu focus.
138
+ e.stopPropagation();
139
+ }, []);
140
+ if (!searchable) {
141
+ return null;
142
+ }
143
+ const rootClasses = ['muka-menu__search', className].filter(Boolean).join(' ');
144
+ return (_jsxs("div", { className: rootClasses, "data-muka-menu-search": "", children: [_jsx("span", { className: "muka-menu__search-icon", "aria-hidden": "true", children: _jsx(Icon, { name: "search", variant: "line", size: "md" }) }), _jsx("input", { ref: ref, type: "search", className: "muka-menu__search-input", value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: handleKeyDown, placeholder: placeholder, "aria-label": ariaLabel || placeholder, autoComplete: "off", autoCorrect: "off", spellCheck: false }), query.length > 0 && (_jsx("button", { type: "button", className: "muka-menu__search-clear", onClick: () => setQuery(''), "aria-label": "Clear search", tabIndex: -1, children: _jsx(Icon, { name: "close", variant: "line", size: "sm" }) }))] }));
145
+ });
146
+ MenuSearch.displayName = 'MenuSearch';
45
147
  /**
46
148
  * MenuItem - An action item within the menu
47
149
  */
48
- export const MenuItem = React.forwardRef(({ children, onSelect, disabled = false, destructive = false, icon, shortcut, className = '', }, ref) => {
150
+ export const MenuItem = React.forwardRef(({ children, onSelect, disabled = false, destructive = false, icon, shortcut, className = '', textValue, }, ref) => {
151
+ const Primitives = useMenuPrimitives();
152
+ const { query, searchable } = useMenuSearch();
153
+ const labelText = textValue ?? getSearchableText(children);
154
+ if (searchable && query && !matchesSearch(labelText, query)) {
155
+ return null;
156
+ }
49
157
  const itemClasses = [
50
158
  'muka-menu__item',
51
159
  destructive && 'muka-menu__item--destructive',
@@ -54,29 +162,37 @@ export const MenuItem = React.forwardRef(({ children, onSelect, disabled = false
54
162
  ]
55
163
  .filter(Boolean)
56
164
  .join(' ');
57
- return (_jsxs(DropdownMenuPrimitive.Item, { ref: ref, className: itemClasses, onSelect: onSelect, disabled: disabled, children: [icon && _jsx("span", { className: "muka-menu__item-icon", children: icon }), _jsx("span", { className: "muka-menu__item-label", children: children }), shortcut && _jsx("span", { className: "muka-menu__item-shortcut", children: shortcut })] }));
165
+ return (_jsxs(Primitives.Item, { ref: ref, className: itemClasses, onSelect: onSelect, disabled: disabled, textValue: labelText, children: [icon && _jsx("span", { className: "muka-menu__item-icon", children: icon }), _jsx("span", { className: "muka-menu__item-label", children: searchable && query ? highlightMenuMatch(labelText, query) : children }), shortcut && _jsx("span", { className: "muka-menu__item-shortcut", children: shortcut })] }));
58
166
  });
59
167
  MenuItem.displayName = 'MenuItem';
60
168
  /**
61
169
  * MenuSeparator - A visual divider between menu items
62
170
  */
63
171
  export const MenuSeparator = React.forwardRef(({ className = '' }, ref) => {
172
+ const Primitives = useMenuPrimitives();
64
173
  const separatorClasses = ['muka-menu__separator', className].filter(Boolean).join(' ');
65
- return _jsx(DropdownMenuPrimitive.Separator, { ref: ref, className: separatorClasses });
174
+ return _jsx(Primitives.Separator, { ref: ref, className: separatorClasses });
66
175
  });
67
176
  MenuSeparator.displayName = 'MenuSeparator';
68
177
  /**
69
178
  * MenuGroup - A labeled group of menu items
70
179
  */
71
180
  export const MenuGroup = React.forwardRef(({ children, label, className = '' }, ref) => {
181
+ const Primitives = useMenuPrimitives();
72
182
  const groupClasses = ['muka-menu__group', className].filter(Boolean).join(' ');
73
- return (_jsxs(DropdownMenuPrimitive.Group, { ref: ref, className: groupClasses, children: [label && (_jsx(DropdownMenuPrimitive.Label, { className: "muka-menu__group-label", children: label })), children] }));
183
+ return (_jsxs(Primitives.Group, { ref: ref, className: groupClasses, children: [label && _jsx(Primitives.Label, { className: "muka-menu__group-label", children: label }), children] }));
74
184
  });
75
185
  MenuGroup.displayName = 'MenuGroup';
76
186
  /**
77
187
  * MenuCheckboxItem - A checkable menu item
78
188
  */
79
- export const MenuCheckboxItem = React.forwardRef(({ children, checked, onCheckedChange, disabled = false, icon, className = '' }, ref) => {
189
+ export const MenuCheckboxItem = React.forwardRef(({ children, checked, onCheckedChange, disabled = false, icon, className = '', textValue, }, ref) => {
190
+ const Primitives = useMenuPrimitives();
191
+ const { query, searchable } = useMenuSearch();
192
+ const labelText = textValue ?? getSearchableText(children);
193
+ if (searchable && query && !matchesSearch(labelText, query)) {
194
+ return null;
195
+ }
80
196
  const itemClasses = [
81
197
  'muka-menu__item',
82
198
  'muka-menu__item--checkbox',
@@ -85,43 +201,53 @@ export const MenuCheckboxItem = React.forwardRef(({ children, checked, onChecked
85
201
  ]
86
202
  .filter(Boolean)
87
203
  .join(' ');
88
- const indicator = (_jsx("span", { className: "muka-menu__item-indicator", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(Icon, { name: "check", size: "sm" }) }) }));
89
- return (_jsxs(DropdownMenuPrimitive.CheckboxItem, { ref: ref, className: itemClasses, checked: checked, onCheckedChange: onCheckedChange, disabled: disabled, children: [icon ? _jsx("span", { className: "muka-menu__item-icon", children: icon }) : indicator, _jsx("span", { className: "muka-menu__item-label", children: children }), icon ? indicator : null] }));
204
+ const indicator = (_jsx("span", { className: "muka-menu__item-indicator", children: _jsx(Primitives.ItemIndicator, { children: _jsx(Icon, { name: "check", size: "sm" }) }) }));
205
+ return (_jsxs(Primitives.CheckboxItem, { ref: ref, className: itemClasses, checked: checked, onCheckedChange: onCheckedChange, disabled: disabled, textValue: labelText, children: [icon ? _jsx("span", { className: "muka-menu__item-icon", children: icon }) : indicator, _jsx("span", { className: "muka-menu__item-label", children: searchable && query ? highlightMenuMatch(labelText, query) : children }), icon ? indicator : null] }));
90
206
  });
91
207
  MenuCheckboxItem.displayName = 'MenuCheckboxItem';
92
208
  /**
93
209
  * MenuRadioGroup - A group of radio menu items
94
210
  */
95
211
  export const MenuRadioGroup = React.forwardRef(({ children, value, onValueChange, className = '' }, ref) => {
212
+ const Primitives = useMenuPrimitives();
96
213
  const groupClasses = ['muka-menu__radio-group', className].filter(Boolean).join(' ');
97
- return (_jsx(DropdownMenuPrimitive.RadioGroup, { ref: ref, className: groupClasses, value: value, onValueChange: onValueChange, children: children }));
214
+ return (_jsx(Primitives.RadioGroup, { ref: ref, className: groupClasses, value: value, onValueChange: onValueChange, children: children }));
98
215
  });
99
216
  MenuRadioGroup.displayName = 'MenuRadioGroup';
100
217
  /**
101
218
  * MenuRadioItem - A radio option within a MenuRadioGroup
102
219
  */
103
- export const MenuRadioItem = React.forwardRef(({ children, value, disabled = false, className = '' }, ref) => {
220
+ export const MenuRadioItem = React.forwardRef(({ children, value, disabled = false, className = '', indicator = 'dot', textValue, }, ref) => {
221
+ const Primitives = useMenuPrimitives();
222
+ const { query, searchable } = useMenuSearch();
223
+ const labelText = textValue ?? getSearchableText(children);
224
+ if (searchable && query && !matchesSearch(labelText, query)) {
225
+ return null;
226
+ }
104
227
  const itemClasses = [
105
228
  'muka-menu__item',
106
229
  'muka-menu__item--radio',
230
+ indicator === 'check' && 'muka-menu__item--radio-check',
107
231
  disabled && 'muka-menu__item--disabled',
108
232
  className,
109
233
  ]
110
234
  .filter(Boolean)
111
235
  .join(' ');
112
- return (_jsxs(DropdownMenuPrimitive.RadioItem, { ref: ref, className: itemClasses, value: value, disabled: disabled, children: [_jsx("span", { className: "muka-menu__item-indicator", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx("span", { className: "muka-menu__radio-dot" }) }) }), _jsx("span", { className: "muka-menu__item-label", children: children })] }));
236
+ return (_jsxs(Primitives.RadioItem, { ref: ref, className: itemClasses, value: value, disabled: disabled, textValue: labelText, children: [indicator === 'dot' && (_jsx("span", { className: "muka-menu__item-indicator", children: _jsx(Primitives.ItemIndicator, { children: _jsx("span", { className: "muka-menu__radio-dot" }) }) })), _jsx("span", { className: "muka-menu__item-label", children: searchable && query ? highlightMenuMatch(labelText, query) : children }), indicator === 'check' && (_jsx("span", { className: "muka-menu__item-indicator muka-menu__item-indicator--trailing", children: _jsx(Primitives.ItemIndicator, { children: _jsx(Icon, { name: "check", size: "sm" }) }) }))] }));
113
237
  });
114
238
  MenuRadioItem.displayName = 'MenuRadioItem';
115
239
  /**
116
240
  * MenuSub - A submenu container
117
241
  */
118
242
  export const MenuSub = ({ children, open, onOpenChange, defaultOpen, }) => {
119
- return (_jsx(DropdownMenuPrimitive.Sub, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen, children: children }));
243
+ const Primitives = useMenuPrimitives();
244
+ return (_jsx(Primitives.Sub, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen, children: children }));
120
245
  };
121
246
  /**
122
247
  * MenuSubTrigger - Trigger that opens a submenu
123
248
  */
124
249
  export const MenuSubTrigger = React.forwardRef(({ children, icon, disabled = false, className = '' }, ref) => {
250
+ const Primitives = useMenuPrimitives();
125
251
  const itemClasses = [
126
252
  'muka-menu__item',
127
253
  'muka-menu__item--sub-trigger',
@@ -130,16 +256,20 @@ export const MenuSubTrigger = React.forwardRef(({ children, icon, disabled = fal
130
256
  ]
131
257
  .filter(Boolean)
132
258
  .join(' ');
133
- return (_jsxs(DropdownMenuPrimitive.SubTrigger, { ref: ref, className: itemClasses, disabled: disabled, children: [icon && _jsx("span", { className: "muka-menu__item-icon", children: icon }), _jsx("span", { className: "muka-menu__item-label", children: children }), _jsx("span", { className: "muka-menu__item-chevron", children: _jsx(Icon, { name: "arrow-right", variant: "line", size: "sm" }) })] }));
259
+ return (_jsxs(Primitives.SubTrigger, { ref: ref, className: itemClasses, disabled: disabled, children: [icon && _jsx("span", { className: "muka-menu__item-icon", children: icon }), _jsx("span", { className: "muka-menu__item-label", children: children }), _jsx("span", { className: "muka-menu__item-chevron", children: _jsx(Icon, { name: "arrow-right", variant: "line", size: "sm" }) })] }));
134
260
  });
135
261
  MenuSubTrigger.displayName = 'MenuSubTrigger';
136
262
  /**
137
263
  * MenuSubContent - The dropdown container for submenu items
138
264
  */
139
265
  export const MenuSubContent = React.forwardRef(({ children, sideOffset = 2, alignOffset = -4, className = '', loop = true }, ref) => {
266
+ const { trigger } = useContext(MenuContext);
140
267
  const contentClasses = ['muka-menu__content', 'muka-menu__content--sub', className]
141
268
  .filter(Boolean)
142
269
  .join(' ');
270
+ if (trigger === 'context') {
271
+ return (_jsx(ContextMenuPrimitive.Portal, { children: _jsx(ContextMenuPrimitive.SubContent, { ref: ref, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, children: children }) }));
272
+ }
143
273
  return (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.SubContent, { ref: ref, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, children: children }) }));
144
274
  });
145
275
  MenuSubContent.displayName = 'MenuSubContent';
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../components/Menu/Menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../../components/Menu/Menu.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { Menu, MenuTrigger, MenuContent, MenuItem, MenuSeparator, MenuGroup, MenuCheckboxItem, MenuRadioGroup, MenuRadioItem, MenuSub, MenuSubTrigger, MenuSubContent, } from './Menu';
1
+ export { Menu, DropdownMenu, MenuTrigger, MenuContent, MenuSearch, MenuItem, MenuSeparator, MenuGroup, MenuCheckboxItem, MenuRadioGroup, MenuRadioItem, MenuSub, MenuSubTrigger, MenuSubContent, highlightMenuMatch, useMenuSearch, } from './Menu';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/Menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,WAAW,EACX,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/Menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,OAAO,EACP,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,27 @@
1
+ /* PhotoDraftStrip Component Styles */
2
+
3
+ .muka-photo-draft-strip {
4
+ display: flex;
5
+ align-items: center;
6
+ gap: var(--spacing-3);
7
+ width: 100%;
8
+ padding: var(--spacing-2) 0;
9
+ }
10
+
11
+ .muka-photo-draft-strip__track {
12
+ display: flex;
13
+ gap: var(--spacing-2);
14
+ flex: 1 1 auto;
15
+ min-width: 0;
16
+ overflow-x: auto;
17
+ scroll-behavior: smooth;
18
+ scrollbar-width: none;
19
+ }
20
+
21
+ .muka-photo-draft-strip__track::-webkit-scrollbar {
22
+ display: none;
23
+ }
24
+
25
+ .muka-photo-draft-strip__item {
26
+ flex: 0 0 auto;
27
+ }
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Button } from '../Button';
4
+ import { Icon } from '../Icon';
5
+ import { Spinner } from '../Spinner';
6
+ import { Thumbnail } from '../Thumbnail';
7
+ import './PhotoDraftStrip.css';
8
+ /**
9
+ * PhotoDraftStrip — a controlled, horizontally-scrolling strip of staged photos
10
+ * shown above the composer while they upload. Each tile is a Muka `Thumbnail`
11
+ * carrying its own upload progress / error and a remove (×) control, so a
12
+ * per-item failure never blocks sending the rest.
13
+ *
14
+ * Controlled and network-free: the app owns upload, object URLs and the cap on
15
+ * how many photos may be staged. The optional send button lives here because
16
+ * the composer only enables its own send once text is non-empty — it can't send
17
+ * a caption-less gallery. Sending is enabled once every tile has settled and at
18
+ * least one uploaded successfully.
19
+ */
20
+ export const PhotoDraftStrip = ({ photos, onRemove, onSend, sending = false, showSend = true, sendLabel = 'Send photos', removeLabel = 'Remove photo', viewLabel = 'View photo', errorCaption = 'Upload failed', className = '', }) => {
21
+ if (photos.length === 0)
22
+ return null;
23
+ // Allow sending once every tile settled (uploaded or failed) and at least one
24
+ // uploaded successfully — a failed tile shouldn't block the rest.
25
+ const anyUploading = photos.some((p) => p.status === 'uploading');
26
+ const anyReady = photos.some((p) => p.status === 'ready');
27
+ const canSend = !sending && !anyUploading && anyReady;
28
+ const classes = ['muka-photo-draft-strip', className].filter(Boolean).join(' ');
29
+ return (_jsxs("div", { className: classes, children: [_jsx("div", { className: "muka-photo-draft-strip__track", children: photos.map((photo) => (_jsx("div", { className: "muka-photo-draft-strip__item", children: _jsx(Thumbnail, { src: photo.previewUrl, alt: photo.fileName, shape: "1:1", processing: photo.status === 'uploading' && photo.progress <= 0, loading: photo.status === 'uploading' && photo.progress > 0, progress: photo.progress, error: photo.status === 'error', caption: photo.status === 'error' ? errorCaption : undefined, onRemove: () => onRemove(photo.id), removeLabel: removeLabel, viewLabel: viewLabel }) }, photo.id))) }), showSend && (_jsx(Button, { variant: "primary", size: "lg", iconOnly: true, "aria-label": sendLabel, onClick: onSend, disabled: !canSend, children: sending ? (_jsx(Spinner, { size: "sm", variant: "inverse" })) : (_jsx(Icon, { name: "send-plane2", size: "md" })) }))] }));
30
+ };
31
+ export default PhotoDraftStrip;
32
+ //# sourceMappingURL=PhotoDraftStrip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhotoDraftStrip.js","sourceRoot":"","sources":["../../../../components/PhotoDraftStrip/PhotoDraftStrip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,uBAAuB,CAAC;AA+C/B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,aAAa,EACzB,WAAW,GAAG,cAAc,EAC5B,SAAS,GAAG,YAAY,EACxB,YAAY,GAAG,eAAe,EAC9B,SAAS,GAAG,EAAE,GACf,EAAE,EAAE;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,8EAA8E;IAC9E,kEAAkE;IAClE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;IAEtD,MAAM,OAAO,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhF,OAAO,CACL,eAAK,SAAS,EAAE,OAAO,aACrB,cAAK,SAAS,EAAC,+BAA+B,YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,cAAoB,SAAS,EAAC,8BAA8B,YAC1D,KAAC,SAAS,IACR,GAAG,EAAE,KAAK,CAAC,UAAU,EACrB,GAAG,EAAE,KAAK,CAAC,QAAQ,EACnB,KAAK,EAAC,KAAK,EACX,UAAU,EAAE,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,EAC/D,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,EAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,OAAO,EAC/B,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAC5D,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAClC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACpB,IAbM,KAAK,CAAC,EAAE,CAcZ,CACP,CAAC,GACE,EAEL,QAAQ,IAAI,CACX,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,QAAQ,sBACI,SAAS,EACrB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,OAAO,YAEjB,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,GAAG,CACxC,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,GAAG,CACtC,GACM,CACV,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { PhotoDraftStrip, } from './PhotoDraftStrip';
2
+ export { default } from './PhotoDraftStrip';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/PhotoDraftStrip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /* RecordingBar Component Styles */
2
+
3
+ .muka-recording-bar {
4
+ display: flex;
5
+ align-items: center;
6
+ gap: var(--spacing-3);
7
+ width: 100%;
8
+ min-width: 0;
9
+ }
10
+
11
+ .muka-recording-bar__dot {
12
+ flex: 0 0 auto;
13
+ width: 0.625rem;
14
+ height: 0.625rem;
15
+ border-radius: var(--radius-full, 9999px);
16
+ background: var(--alert-color-error-accent, var(--color-text-default-default));
17
+ animation: muka-recording-bar-pulse 1s ease-in-out infinite;
18
+ }
19
+
20
+ .muka-recording-bar__time {
21
+ flex: 0 0 auto;
22
+ font-size: var(--text-label-sm-fontSize, 0.75rem);
23
+ line-height: var(--text-label-sm-lineHeight, 1);
24
+ font-variant-numeric: tabular-nums;
25
+ color: var(--color-text-default-default);
26
+ }
27
+
28
+ .muka-recording-bar__wave {
29
+ flex: 1 1 auto;
30
+ min-width: 0;
31
+ }
32
+
33
+ @keyframes muka-recording-bar-pulse {
34
+ 0%,
35
+ 100% {
36
+ opacity: 1;
37
+ }
38
+ 50% {
39
+ opacity: 0.3;
40
+ }
41
+ }
42
+
43
+ @media (prefers-reduced-motion: reduce) {
44
+ .muka-recording-bar__dot {
45
+ animation: none;
46
+ }
47
+ }
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Waveform } from '../Waveform';
4
+ import { formatClock } from '../VoiceRecorder';
5
+ import './RecordingBar.css';
6
+ /**
7
+ * RecordingBar — drop-in content for `ChatComposer.recordingSlot` while a voice
8
+ * note is being recorded. A pulsing record dot, an elapsed timer, and the live
9
+ * `Waveform`. Muka delegates this slot to the app, but ships this default so
10
+ * consumers don't rebuild it. Feed it straight from `useVoiceRecorder`
11
+ * (`elapsedMs`, `livePeaks`). Tokens only; the label comes via props.
12
+ */
13
+ export const RecordingBar = ({ elapsedMs, livePeaks, recordingLabel = 'Recording', className = '', }) => {
14
+ const classes = ['muka-recording-bar', className].filter(Boolean).join(' ');
15
+ return (_jsxs("div", { className: classes, role: "status", "aria-label": recordingLabel, children: [_jsx("span", { className: "muka-recording-bar__dot", "aria-hidden": "true" }), _jsx("span", { className: "muka-recording-bar__time", children: formatClock(elapsedMs / 1000) }), _jsx("div", { className: "muka-recording-bar__wave", children: _jsx(Waveform, { peaks: livePeaks, progress: 1 }) })] }));
16
+ };
17
+ export default RecordingBar;
18
+ //# sourceMappingURL=RecordingBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordingBar.js","sourceRoot":"","sources":["../../../../components/RecordingBar/RecordingBar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,oBAAoB,CAAC;AAgB5B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,SAAS,EACT,SAAS,EACT,cAAc,GAAG,WAAW,EAC5B,SAAS,GAAG,EAAE,GACf,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5E,OAAO,CACL,eAAK,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,QAAQ,gBAAa,cAAc,aAC/D,eAAM,SAAS,EAAC,yBAAyB,iBAAa,MAAM,GAAG,EAC/D,eAAM,SAAS,EAAC,0BAA0B,YAAE,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAQ,EACjF,cAAK,SAAS,EAAC,0BAA0B,YACvC,KAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAI,GACvC,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { RecordingBar } from './RecordingBar';
2
+ export { default } from './RecordingBar';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/RecordingBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}