@revikornmann/muka-ui 0.17.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 (105) 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/ContextSelect/ContextSelect.css +117 -0
  6. package/dist/cjs/components/ContextSelect/ContextSelect.js +49 -0
  7. package/dist/cjs/components/ContextSelect/ContextSelect.js.map +1 -0
  8. package/dist/cjs/components/ContextSelect/index.js +11 -0
  9. package/dist/cjs/components/ContextSelect/index.js.map +1 -0
  10. package/dist/cjs/components/Icon/custom/ArrowDropUpDownIcon.js +11 -0
  11. package/dist/cjs/components/Icon/custom/ArrowDropUpDownIcon.js.map +1 -0
  12. package/dist/cjs/components/Icon/iconRegistry.js +6 -0
  13. package/dist/cjs/components/Icon/iconRegistry.js.map +1 -1
  14. package/dist/cjs/components/Menu/Menu.css +112 -2
  15. package/dist/cjs/components/Menu/Menu.js +171 -39
  16. package/dist/cjs/components/Menu/Menu.js.map +1 -1
  17. package/dist/cjs/components/Menu/index.js +5 -1
  18. package/dist/cjs/components/Menu/index.js.map +1 -1
  19. package/dist/cjs/components/Scrollbar/Scrollbar.css +123 -0
  20. package/dist/cjs/components/Scrollbar/Scrollbar.js +118 -0
  21. package/dist/cjs/components/Scrollbar/Scrollbar.js.map +1 -0
  22. package/dist/cjs/components/Scrollbar/index.js +11 -0
  23. package/dist/cjs/components/Scrollbar/index.js.map +1 -0
  24. package/dist/cjs/components/index.js +10 -15
  25. package/dist/cjs/components/index.js.map +1 -1
  26. package/dist/esm/components/ActionSheet/ActionSheet.js +1 -1
  27. package/dist/esm/components/Breadcrumb/Breadcrumb.css +11 -3
  28. package/dist/esm/components/Breadcrumb/Breadcrumb.js +19 -1
  29. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  30. package/dist/esm/components/ContextSelect/ContextSelect.css +117 -0
  31. package/dist/esm/components/ContextSelect/ContextSelect.js +45 -0
  32. package/dist/esm/components/ContextSelect/ContextSelect.js.map +1 -0
  33. package/dist/esm/components/ContextSelect/index.js +3 -0
  34. package/dist/esm/components/ContextSelect/index.js.map +1 -0
  35. package/dist/esm/components/Icon/custom/ArrowDropUpDownIcon.js +7 -0
  36. package/dist/esm/components/Icon/custom/ArrowDropUpDownIcon.js.map +1 -0
  37. package/dist/esm/components/Icon/iconRegistry.js +6 -0
  38. package/dist/esm/components/Icon/iconRegistry.js.map +1 -1
  39. package/dist/esm/components/Menu/Menu.css +112 -2
  40. package/dist/esm/components/Menu/Menu.js +170 -40
  41. package/dist/esm/components/Menu/Menu.js.map +1 -1
  42. package/dist/esm/components/Menu/index.js +1 -1
  43. package/dist/esm/components/Menu/index.js.map +1 -1
  44. package/dist/esm/components/Scrollbar/Scrollbar.css +123 -0
  45. package/dist/esm/components/Scrollbar/Scrollbar.js +114 -0
  46. package/dist/esm/components/Scrollbar/Scrollbar.js.map +1 -0
  47. package/dist/esm/components/Scrollbar/index.js +3 -0
  48. package/dist/esm/components/Scrollbar/index.js.map +1 -0
  49. package/dist/esm/components/index.js +3 -2
  50. package/dist/esm/components/index.js.map +1 -1
  51. package/dist/styles/components/Breadcrumb.css +11 -3
  52. package/dist/styles/components/ContextSelect.css +117 -0
  53. package/dist/styles/components/Menu.css +112 -2
  54. package/dist/styles/components/Scrollbar.css +123 -0
  55. package/dist/styles/index.css +373 -7
  56. package/dist/styles/muka-dark.css +373 -7
  57. package/dist/styles/muka-light.css +373 -7
  58. package/dist/styles/tokens-bouwplan-dark.css +4 -2
  59. package/dist/styles/tokens-bouwplan-light.css +4 -2
  60. package/dist/styles/tokens-fscl-dark.css +4 -2
  61. package/dist/styles/tokens-fscl-light.css +4 -2
  62. package/dist/styles/tokens-grip-dark.css +4 -2
  63. package/dist/styles/tokens-grip-light.css +4 -2
  64. package/dist/styles/tokens-muka-dark.css +4 -2
  65. package/dist/styles/tokens-muka-light.css +4 -2
  66. package/dist/styles/tokens-wireframe-dark.css +4 -2
  67. package/dist/styles/tokens-wireframe-light.css +4 -2
  68. package/dist/styles/wireframe-dark.css +373 -7
  69. package/dist/styles/wireframe-light.css +373 -7
  70. package/dist/types/components/ActionSheet/ActionSheet.d.ts +1 -1
  71. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +27 -3
  72. package/dist/types/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  73. package/dist/types/components/ContextSelect/ContextSelect.d.ts +62 -0
  74. package/dist/types/components/ContextSelect/ContextSelect.d.ts.map +1 -0
  75. package/dist/types/components/ContextSelect/index.d.ts +3 -0
  76. package/dist/types/components/ContextSelect/index.d.ts.map +1 -0
  77. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  78. package/dist/types/components/Icon/custom/ArrowDropUpDownIcon.d.ts +9 -0
  79. package/dist/types/components/Icon/custom/ArrowDropUpDownIcon.d.ts.map +1 -0
  80. package/dist/types/components/Icon/iconRegistry.d.ts.map +1 -1
  81. package/dist/types/components/Menu/Menu.d.ts +58 -28
  82. package/dist/types/components/Menu/Menu.d.ts.map +1 -1
  83. package/dist/types/components/Menu/index.d.ts +2 -2
  84. package/dist/types/components/Menu/index.d.ts.map +1 -1
  85. package/dist/types/components/Scrollbar/Scrollbar.d.ts +19 -0
  86. package/dist/types/components/Scrollbar/Scrollbar.d.ts.map +1 -0
  87. package/dist/types/components/Scrollbar/index.d.ts +3 -0
  88. package/dist/types/components/Scrollbar/index.d.ts.map +1 -0
  89. package/dist/types/components/index.d.ts +4 -4
  90. package/dist/types/components/index.d.ts.map +1 -1
  91. package/package.json +1 -1
  92. package/tokens/README.md +1 -1
  93. package/tokens/t4-components/menu.json +12 -2
  94. package/dist/cjs/components/ContextMenu/ContextMenu.js +0 -186
  95. package/dist/cjs/components/ContextMenu/ContextMenu.js.map +0 -1
  96. package/dist/cjs/components/ContextMenu/index.js +0 -17
  97. package/dist/cjs/components/ContextMenu/index.js.map +0 -1
  98. package/dist/esm/components/ContextMenu/ContextMenu.js +0 -145
  99. package/dist/esm/components/ContextMenu/ContextMenu.js.map +0 -1
  100. package/dist/esm/components/ContextMenu/index.js +0 -2
  101. package/dist/esm/components/ContextMenu/index.js.map +0 -1
  102. package/dist/types/components/ContextMenu/ContextMenu.d.ts +0 -188
  103. package/dist/types/components/ContextMenu/ContextMenu.d.ts.map +0 -1
  104. package/dist/types/components/ContextMenu/index.d.ts +0 -3
  105. package/dist/types/components/ContextMenu/index.d.ts.map +0 -1
@@ -34,55 +34,165 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  };
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.MenuSubContent = exports.MenuSubTrigger = exports.MenuSub = exports.MenuRadioItem = exports.MenuRadioGroup = exports.MenuCheckboxItem = exports.MenuGroup = exports.MenuSeparator = exports.MenuItem = exports.MenuContent = exports.MenuTrigger = exports.Menu = void 0;
37
+ exports.MenuSubContent = exports.MenuSubTrigger = exports.MenuSub = exports.MenuRadioItem = exports.MenuRadioGroup = exports.MenuCheckboxItem = exports.MenuGroup = exports.MenuSeparator = exports.MenuItem = exports.MenuSearch = exports.MenuContent = exports.MenuTrigger = exports.DropdownMenu = exports.Menu = void 0;
38
+ exports.useMenuSearch = useMenuSearch;
39
+ exports.highlightMenuMatch = highlightMenuMatch;
38
40
  const jsx_runtime_1 = require("react/jsx-runtime");
39
41
  const react_1 = __importStar(require("react"));
40
42
  const DropdownMenuPrimitive = __importStar(require("@radix-ui/react-dropdown-menu"));
43
+ const ContextMenuPrimitive = __importStar(require("@radix-ui/react-context-menu"));
41
44
  const Icon_1 = require("../Icon");
45
+ const Scrollbar_1 = require("../Scrollbar");
42
46
  require("./Menu.css");
43
- const MenuContext = (0, react_1.createContext)({});
47
+ const MenuContext = (0, react_1.createContext)({ trigger: 'click' });
48
+ const MenuSearchContext = (0, react_1.createContext)({
49
+ query: '',
50
+ setQuery: () => { },
51
+ searchable: false,
52
+ });
53
+ function useMenuSearch() {
54
+ return (0, react_1.useContext)(MenuSearchContext);
55
+ }
56
+ function useMenuPrimitives() {
57
+ const { trigger } = (0, react_1.useContext)(MenuContext);
58
+ return trigger === 'context' ? ContextMenuPrimitive : DropdownMenuPrimitive;
59
+ }
60
+ /** Bold the first case-insensitive match of `query` within `text`. */
61
+ function highlightMenuMatch(text, query) {
62
+ if (!query)
63
+ return text;
64
+ const lower = text.toLowerCase();
65
+ const q = query.toLowerCase();
66
+ const index = lower.indexOf(q);
67
+ if (index === -1)
68
+ return text;
69
+ const before = text.slice(0, index);
70
+ const match = text.slice(index, index + query.length);
71
+ const after = text.slice(index + query.length);
72
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [before, (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__match", children: match }), after] }));
73
+ }
74
+ function getSearchableText(children) {
75
+ if (typeof children === 'string' || typeof children === 'number') {
76
+ return String(children);
77
+ }
78
+ if (Array.isArray(children)) {
79
+ return children.map(getSearchableText).join('');
80
+ }
81
+ if (react_1.default.isValidElement(children)) {
82
+ const props = children.props;
83
+ return getSearchableText(props.children);
84
+ }
85
+ return '';
86
+ }
87
+ function matchesSearch(children, query) {
88
+ if (!query)
89
+ return true;
90
+ return getSearchableText(children).toLowerCase().includes(query.toLowerCase());
91
+ }
44
92
  /**
45
- * Menu Component
46
- *
47
- * A dropdown menu for displaying actions and options.
48
- * Built on Radix UI DropdownMenu for accessibility and keyboard navigation.
93
+ * Menu (Dropdown Menu)
49
94
  *
50
- * @example
51
- * ```tsx
52
- * <Menu>
53
- * <MenuTrigger asChild>
54
- * <Button>Open Menu</Button>
55
- * </MenuTrigger>
56
- * <MenuContent>
57
- * <MenuItem onSelect={() => console.log('Edit')}>Edit</MenuItem>
58
- * <MenuItem onSelect={() => console.log('Delete')} destructive>Delete</MenuItem>
59
- * </MenuContent>
60
- * </Menu>
61
- * ```
95
+ * Shared action-menu surface for click and right-click triggers.
96
+ * Built on Radix DropdownMenu / ContextMenu.
62
97
  */
63
- const Menu = ({ children, open, onOpenChange, defaultOpen, modal = true, }) => {
64
- return ((0, jsx_runtime_1.jsx)(MenuContext.Provider, { value: { onOpenChange }, children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Root, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen, modal: modal, children: children }) }));
98
+ const Menu = ({ children, trigger = 'click', open, onOpenChange, defaultOpen, modal = true, }) => {
99
+ const value = (0, react_1.useMemo)(() => ({ trigger, onOpenChange }), [trigger, onOpenChange]);
100
+ if (trigger === 'context') {
101
+ return ((0, jsx_runtime_1.jsx)(MenuContext.Provider, { value: value, children: (0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Root, { onOpenChange: onOpenChange, modal: modal, children: children }) }));
102
+ }
103
+ return ((0, jsx_runtime_1.jsx)(MenuContext.Provider, { value: value, children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Root, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen, modal: modal, children: children }) }));
65
104
  };
66
105
  exports.Menu = Menu;
106
+ /** Alias for Figma / docs naming parity with "Dropdown Menu". */
107
+ exports.DropdownMenu = exports.Menu;
67
108
  /**
68
- * MenuTrigger - Button that opens the menu
109
+ * MenuTrigger — opens the menu on click or right-click depending on `Menu.trigger`.
69
110
  */
70
- exports.MenuTrigger = react_1.default.forwardRef(({ children, asChild = false, className = '' }, ref) => {
71
- return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Trigger, { ref: ref, asChild: asChild, className: className || undefined, children: children }));
111
+ exports.MenuTrigger = react_1.default.forwardRef(({ children, asChild = false, disabled = false, className = '' }, ref) => {
112
+ const { trigger } = (0, react_1.useContext)(MenuContext);
113
+ const Primitives = useMenuPrimitives();
114
+ if (trigger === 'context') {
115
+ const triggerClasses = ['muka-context-menu__trigger', className]
116
+ .filter(Boolean)
117
+ .join(' ');
118
+ return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Trigger, { ref: ref, asChild: asChild, disabled: disabled, className: triggerClasses || undefined, children: children }));
119
+ }
120
+ return ((0, jsx_runtime_1.jsx)(Primitives.Trigger, { ref: ref, asChild: asChild, disabled: disabled, className: className || undefined, children: children }));
72
121
  });
73
122
  exports.MenuTrigger.displayName = 'MenuTrigger';
74
123
  /**
75
- * MenuContent - The dropdown container for menu items
124
+ * MenuContent — dropdown / context menu surface with optional search + scrollbar.
76
125
  */
77
- exports.MenuContent = react_1.default.forwardRef(({ children, align = 'start', side = 'bottom', sideOffset = 4, alignOffset = 0, className = '', loop = true, onCloseAutoFocus, }, ref) => {
78
- const contentClasses = ['muka-menu__content', className].filter(Boolean).join(' ');
79
- return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Content, { ref: ref, align: align, side: side, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, onCloseAutoFocus: onCloseAutoFocus, children: children }) }));
126
+ function isMenuSearchElement(child) {
127
+ return (react_1.default.isValidElement(child) &&
128
+ typeof child.type !== 'string' &&
129
+ Boolean(child.type &&
130
+ typeof child.type === 'object' &&
131
+ 'displayName' in child.type &&
132
+ child.type.displayName === 'MenuSearch'));
133
+ }
134
+ function partitionMenuChildren(children) {
135
+ const search = [];
136
+ const items = [];
137
+ react_1.default.Children.forEach(children, (child) => {
138
+ if (isMenuSearchElement(child)) {
139
+ search.push(child);
140
+ }
141
+ else {
142
+ items.push(child);
143
+ }
144
+ });
145
+ return { search, items };
146
+ }
147
+ exports.MenuContent = react_1.default.forwardRef(({ children, align = 'start', side = 'bottom', sideOffset = 4, alignOffset = 0, className = '', loop = true, onCloseAutoFocus, searchable = false, scrollbar = false, }, ref) => {
148
+ const { trigger } = (0, react_1.useContext)(MenuContext);
149
+ const [query, setQuery] = (0, react_1.useState)('');
150
+ const viewportRef = (0, react_1.useRef)(null);
151
+ const searchValue = (0, react_1.useMemo)(() => ({ query, setQuery, searchable }), [query, searchable]);
152
+ const { search, items } = partitionMenuChildren(children);
153
+ const searchNodes = search.length > 0 ? search : searchable ? (0, jsx_runtime_1.jsx)(exports.MenuSearch, {}) : null;
154
+ const contentClasses = [
155
+ 'muka-menu__content',
156
+ searchable && 'muka-menu__content--searchable',
157
+ scrollbar && 'muka-menu__content--scrollbar',
158
+ className,
159
+ ]
160
+ .filter(Boolean)
161
+ .join(' ');
162
+ const body = ((0, jsx_runtime_1.jsxs)(MenuSearchContext.Provider, { value: searchValue, children: [searchNodes, (0, jsx_runtime_1.jsxs)("div", { className: "muka-menu__body", children: [(0, jsx_runtime_1.jsx)("div", { className: "muka-menu__viewport", ref: viewportRef, children: items }), scrollbar ? (0, jsx_runtime_1.jsx)(Scrollbar_1.Scrollbar, { viewportRef: viewportRef }) : null] })] }));
163
+ if (trigger === 'context') {
164
+ return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Content, { ref: ref, alignOffset: alignOffset, className: contentClasses, loop: loop, onCloseAutoFocus: onCloseAutoFocus, children: body }) }));
165
+ }
166
+ return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Content, { ref: ref, align: align, side: side, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, onCloseAutoFocus: onCloseAutoFocus, children: body }) }));
80
167
  });
81
168
  exports.MenuContent.displayName = 'MenuContent';
169
+ /**
170
+ * MenuSearch — sticky search header for filtering menu items.
171
+ * Must be used inside a `MenuContent` with `searchable`.
172
+ */
173
+ exports.MenuSearch = react_1.default.forwardRef(({ placeholder = 'Search', className = '', 'aria-label': ariaLabel }, ref) => {
174
+ const { query, setQuery, searchable } = useMenuSearch();
175
+ const handleKeyDown = (0, react_1.useCallback)((e) => {
176
+ // Keep typing in the field from driving Radix typeahead / menu focus.
177
+ e.stopPropagation();
178
+ }, []);
179
+ if (!searchable) {
180
+ return null;
181
+ }
182
+ const rootClasses = ['muka-menu__search', className].filter(Boolean).join(' ');
183
+ return ((0, jsx_runtime_1.jsxs)("div", { className: rootClasses, "data-muka-menu-search": "", children: [(0, jsx_runtime_1.jsx)("span", { className: "muka-menu__search-icon", "aria-hidden": "true", children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "search", variant: "line", size: "md" }) }), (0, jsx_runtime_1.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 && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "muka-menu__search-clear", onClick: () => setQuery(''), "aria-label": "Clear search", tabIndex: -1, children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "close", variant: "line", size: "sm" }) }))] }));
184
+ });
185
+ exports.MenuSearch.displayName = 'MenuSearch';
82
186
  /**
83
187
  * MenuItem - An action item within the menu
84
188
  */
85
- exports.MenuItem = react_1.default.forwardRef(({ children, onSelect, disabled = false, destructive = false, icon, shortcut, className = '', }, ref) => {
189
+ exports.MenuItem = react_1.default.forwardRef(({ children, onSelect, disabled = false, destructive = false, icon, shortcut, 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
+ }
86
196
  const itemClasses = [
87
197
  'muka-menu__item',
88
198
  destructive && 'muka-menu__item--destructive',
@@ -91,29 +201,37 @@ exports.MenuItem = react_1.default.forwardRef(({ children, onSelect, disabled =
91
201
  ]
92
202
  .filter(Boolean)
93
203
  .join(' ');
94
- return ((0, jsx_runtime_1.jsxs)(DropdownMenuPrimitive.Item, { ref: ref, className: itemClasses, onSelect: onSelect, disabled: disabled, children: [icon && (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-icon", children: icon }), (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-label", children: children }), shortcut && (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-shortcut", children: shortcut })] }));
204
+ return ((0, jsx_runtime_1.jsxs)(Primitives.Item, { ref: ref, className: itemClasses, onSelect: onSelect, disabled: disabled, textValue: labelText, children: [icon && (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-icon", children: icon }), (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-label", children: searchable && query ? highlightMenuMatch(labelText, query) : children }), shortcut && (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-shortcut", children: shortcut })] }));
95
205
  });
96
206
  exports.MenuItem.displayName = 'MenuItem';
97
207
  /**
98
208
  * MenuSeparator - A visual divider between menu items
99
209
  */
100
210
  exports.MenuSeparator = react_1.default.forwardRef(({ className = '' }, ref) => {
211
+ const Primitives = useMenuPrimitives();
101
212
  const separatorClasses = ['muka-menu__separator', className].filter(Boolean).join(' ');
102
- return (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Separator, { ref: ref, className: separatorClasses });
213
+ return (0, jsx_runtime_1.jsx)(Primitives.Separator, { ref: ref, className: separatorClasses });
103
214
  });
104
215
  exports.MenuSeparator.displayName = 'MenuSeparator';
105
216
  /**
106
217
  * MenuGroup - A labeled group of menu items
107
218
  */
108
219
  exports.MenuGroup = react_1.default.forwardRef(({ children, label, className = '' }, ref) => {
220
+ const Primitives = useMenuPrimitives();
109
221
  const groupClasses = ['muka-menu__group', className].filter(Boolean).join(' ');
110
- return ((0, jsx_runtime_1.jsxs)(DropdownMenuPrimitive.Group, { ref: ref, className: groupClasses, children: [label && ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Label, { className: "muka-menu__group-label", children: label })), children] }));
222
+ return ((0, jsx_runtime_1.jsxs)(Primitives.Group, { ref: ref, className: groupClasses, children: [label && (0, jsx_runtime_1.jsx)(Primitives.Label, { className: "muka-menu__group-label", children: label }), children] }));
111
223
  });
112
224
  exports.MenuGroup.displayName = 'MenuGroup';
113
225
  /**
114
226
  * MenuCheckboxItem - A checkable menu item
115
227
  */
116
- exports.MenuCheckboxItem = react_1.default.forwardRef(({ children, checked, onCheckedChange, disabled = false, icon, className = '' }, ref) => {
228
+ exports.MenuCheckboxItem = react_1.default.forwardRef(({ children, checked, onCheckedChange, disabled = false, icon, className = '', textValue, }, ref) => {
229
+ const Primitives = useMenuPrimitives();
230
+ const { query, searchable } = useMenuSearch();
231
+ const labelText = textValue ?? getSearchableText(children);
232
+ if (searchable && query && !matchesSearch(labelText, query)) {
233
+ return null;
234
+ }
117
235
  const itemClasses = [
118
236
  'muka-menu__item',
119
237
  'muka-menu__item--checkbox',
@@ -122,44 +240,54 @@ exports.MenuCheckboxItem = react_1.default.forwardRef(({ children, checked, onCh
122
240
  ]
123
241
  .filter(Boolean)
124
242
  .join(' ');
125
- const indicator = ((0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-indicator", children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "check", size: "sm" }) }) }));
126
- return ((0, jsx_runtime_1.jsxs)(DropdownMenuPrimitive.CheckboxItem, { ref: ref, className: itemClasses, checked: checked, onCheckedChange: onCheckedChange, disabled: disabled, children: [icon ? (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-icon", children: icon }) : indicator, (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-label", children: children }), icon ? indicator : null] }));
243
+ const indicator = ((0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-indicator", children: (0, jsx_runtime_1.jsx)(Primitives.ItemIndicator, { children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "check", size: "sm" }) }) }));
244
+ return ((0, jsx_runtime_1.jsxs)(Primitives.CheckboxItem, { ref: ref, className: itemClasses, checked: checked, onCheckedChange: onCheckedChange, disabled: disabled, textValue: labelText, children: [icon ? (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-icon", children: icon }) : indicator, (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-label", children: searchable && query ? highlightMenuMatch(labelText, query) : children }), icon ? indicator : null] }));
127
245
  });
128
246
  exports.MenuCheckboxItem.displayName = 'MenuCheckboxItem';
129
247
  /**
130
248
  * MenuRadioGroup - A group of radio menu items
131
249
  */
132
250
  exports.MenuRadioGroup = react_1.default.forwardRef(({ children, value, onValueChange, className = '' }, ref) => {
251
+ const Primitives = useMenuPrimitives();
133
252
  const groupClasses = ['muka-menu__radio-group', className].filter(Boolean).join(' ');
134
- return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.RadioGroup, { ref: ref, className: groupClasses, value: value, onValueChange: onValueChange, children: children }));
253
+ return ((0, jsx_runtime_1.jsx)(Primitives.RadioGroup, { ref: ref, className: groupClasses, value: value, onValueChange: onValueChange, children: children }));
135
254
  });
136
255
  exports.MenuRadioGroup.displayName = 'MenuRadioGroup';
137
256
  /**
138
257
  * MenuRadioItem - A radio option within a MenuRadioGroup
139
258
  */
140
- exports.MenuRadioItem = react_1.default.forwardRef(({ children, value, disabled = false, className = '' }, ref) => {
259
+ exports.MenuRadioItem = react_1.default.forwardRef(({ children, value, disabled = false, className = '', indicator = 'dot', textValue, }, ref) => {
260
+ const Primitives = useMenuPrimitives();
261
+ const { query, searchable } = useMenuSearch();
262
+ const labelText = textValue ?? getSearchableText(children);
263
+ if (searchable && query && !matchesSearch(labelText, query)) {
264
+ return null;
265
+ }
141
266
  const itemClasses = [
142
267
  'muka-menu__item',
143
268
  'muka-menu__item--radio',
269
+ indicator === 'check' && 'muka-menu__item--radio-check',
144
270
  disabled && 'muka-menu__item--disabled',
145
271
  className,
146
272
  ]
147
273
  .filter(Boolean)
148
274
  .join(' ');
149
- return ((0, jsx_runtime_1.jsxs)(DropdownMenuPrimitive.RadioItem, { ref: ref, className: itemClasses, value: value, disabled: disabled, children: [(0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-indicator", children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__radio-dot" }) }) }), (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-label", children: children })] }));
275
+ return ((0, jsx_runtime_1.jsxs)(Primitives.RadioItem, { ref: ref, className: itemClasses, value: value, disabled: disabled, textValue: labelText, children: [indicator === 'dot' && ((0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-indicator", children: (0, jsx_runtime_1.jsx)(Primitives.ItemIndicator, { children: (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__radio-dot" }) }) })), (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-label", children: searchable && query ? highlightMenuMatch(labelText, query) : children }), indicator === 'check' && ((0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-indicator muka-menu__item-indicator--trailing", children: (0, jsx_runtime_1.jsx)(Primitives.ItemIndicator, { children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "check", size: "sm" }) }) }))] }));
150
276
  });
151
277
  exports.MenuRadioItem.displayName = 'MenuRadioItem';
152
278
  /**
153
279
  * MenuSub - A submenu container
154
280
  */
155
281
  const MenuSub = ({ children, open, onOpenChange, defaultOpen, }) => {
156
- return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Sub, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen, children: children }));
282
+ const Primitives = useMenuPrimitives();
283
+ return ((0, jsx_runtime_1.jsx)(Primitives.Sub, { open: open, onOpenChange: onOpenChange, defaultOpen: defaultOpen, children: children }));
157
284
  };
158
285
  exports.MenuSub = MenuSub;
159
286
  /**
160
287
  * MenuSubTrigger - Trigger that opens a submenu
161
288
  */
162
289
  exports.MenuSubTrigger = react_1.default.forwardRef(({ children, icon, disabled = false, className = '' }, ref) => {
290
+ const Primitives = useMenuPrimitives();
163
291
  const itemClasses = [
164
292
  'muka-menu__item',
165
293
  'muka-menu__item--sub-trigger',
@@ -168,16 +296,20 @@ exports.MenuSubTrigger = react_1.default.forwardRef(({ children, icon, disabled
168
296
  ]
169
297
  .filter(Boolean)
170
298
  .join(' ');
171
- return ((0, jsx_runtime_1.jsxs)(DropdownMenuPrimitive.SubTrigger, { ref: ref, className: itemClasses, disabled: disabled, children: [icon && (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-icon", children: icon }), (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-label", children: children }), (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-chevron", children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "arrow-right", variant: "line", size: "sm" }) })] }));
299
+ return ((0, jsx_runtime_1.jsxs)(Primitives.SubTrigger, { ref: ref, className: itemClasses, disabled: disabled, children: [icon && (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-icon", children: icon }), (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-label", children: children }), (0, jsx_runtime_1.jsx)("span", { className: "muka-menu__item-chevron", children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: "arrow-right", variant: "line", size: "sm" }) })] }));
172
300
  });
173
301
  exports.MenuSubTrigger.displayName = 'MenuSubTrigger';
174
302
  /**
175
303
  * MenuSubContent - The dropdown container for submenu items
176
304
  */
177
305
  exports.MenuSubContent = react_1.default.forwardRef(({ children, sideOffset = 2, alignOffset = -4, className = '', loop = true }, ref) => {
306
+ const { trigger } = (0, react_1.useContext)(MenuContext);
178
307
  const contentClasses = ['muka-menu__content', 'muka-menu__content--sub', className]
179
308
  .filter(Boolean)
180
309
  .join(' ');
310
+ if (trigger === 'context') {
311
+ return ((0, jsx_runtime_1.jsx)(ContextMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(ContextMenuPrimitive.SubContent, { ref: ref, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, children: children }) }));
312
+ }
181
313
  return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.SubContent, { ref: ref, sideOffset: sideOffset, alignOffset: alignOffset, className: contentClasses, loop: loop, children: children }) }));
182
314
  });
183
315
  exports.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":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCb,sCAEC;AAQD,gDAgBC;;AA/DD,+CAOe;AACf,qFAAuE;AACvE,mFAAqE;AACrE,kCAA+B;AAC/B,4CAAyC;AACzC,sBAAoB;AAWpB,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAQ1E,MAAM,iBAAiB,GAAG,IAAA,qBAAa,EAAyB;IAC9D,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,UAAU,EAAE,KAAK;CAClB,CAAC,CAAC;AAEH,SAAgB,aAAa;IAC3B,OAAO,IAAA,kBAAU,EAAC,iBAAiB,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAC9E,CAAC;AAED,sEAAsE;AACtE,SAAgB,kBAAkB,CAAC,IAAY,EAAE,KAAa;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,CACL,6DACG,MAAM,EACP,iCAAM,SAAS,EAAC,kBAAkB,YAAE,KAAK,GAAQ,EAChD,KAAK,IACL,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAyB;IAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,eAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAuC,CAAC;QAC/D,OAAO,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,QAAyB,EAAE,KAAa;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACjF,CAAC;AAuBD;;;;;GAKG;AACI,MAAM,IAAI,GAAwB,CAAC,EACxC,QAAQ,EACR,OAAO,GAAG,OAAO,EACjB,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,KAAK,GAAG,IAAI,GACb,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EACjC,CAAC,OAAO,EAAE,YAAY,CAAC,CACxB,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,uBAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAChC,uBAAC,oBAAoB,CAAC,IAAI,IAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,YAChE,QAAQ,GACiB,GACP,CACxB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,uBAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAChC,uBAAC,qBAAqB,CAAC,IAAI,IACzB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,YAEX,QAAQ,GACkB,GACR,CACxB,CAAC;AACJ,CAAC,CAAC;AAnCW,QAAA,IAAI,QAmCf;AAEF,iEAAiE;AACpD,QAAA,YAAY,GAAG,YAAI,CAAC;AAejC;;GAEG;AACU,QAAA,WAAW,GAAG,eAAK,CAAC,UAAU,CACzC,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IACvE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,CAAC,4BAA4B,EAAE,SAAS,CAAC;aAC7D,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,CACL,uBAAC,oBAAoB,CAAC,OAAO,IAC3B,GAAG,EAAE,GAAiC,EACtC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,cAAc,IAAI,SAAS,YAErC,QAAQ,GACoB,CAChC,CAAC;IACJ,CAAC;IAED,OAAO,CACL,uBAAC,UAAU,CAAC,OAAO,IACjB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,IAAI,SAAS,YAEhC,QAAQ,GACU,CACtB,CAAC;AACJ,CAAC,CACF,CAAC;AACF,mBAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AA8BxC;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAsB;IACjD,OAAO,CACL,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC;QAC3B,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,CACL,KAAK,CAAC,IAAI;YACR,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,aAAa,IAAI,KAAK,CAAC,IAAI;YAC1B,KAAK,CAAC,IAAiC,CAAC,WAAW,KAAK,YAAY,CACxE,CACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAyB;IAItD,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAsB,EAAE,CAAC;IAEpC,eAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAEY,QAAA,WAAW,GAAG,eAAK,CAAC,UAAU,CACzC,CACE,EACE,QAAQ,EACR,KAAK,GAAG,OAAO,EACf,IAAI,GAAG,QAAQ,EACf,UAAU,GAAG,CAAC,EACd,WAAW,GAAG,CAAC,EACf,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,IAAI,EACX,gBAAgB,EAChB,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,KAAK,GAClB,EACD,GAAG,EACH,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,IAAA,eAAO,EACzB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EACvC,CAAC,KAAK,EAAE,UAAU,CAAC,CACpB,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAC,kBAAU,KAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAElE,MAAM,cAAc,GAAG;QACrB,oBAAoB;QACpB,UAAU,IAAI,gCAAgC;QAC9C,SAAS,IAAI,+BAA+B;QAC5C,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,IAAI,GAAG,CACX,wBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,WAAW,aAC3C,WAAW,EACZ,iCAAK,SAAS,EAAC,iBAAiB,aAC9B,gCAAK,SAAS,EAAC,qBAAqB,EAAC,GAAG,EAAE,WAAW,YAClD,KAAK,GACF,EACL,SAAS,CAAC,CAAC,CAAC,uBAAC,qBAAS,IAAC,WAAW,EAAE,WAAW,GAAI,CAAC,CAAC,CAAC,IAAI,IACvD,IACqB,CAC9B,CAAC;IAEF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,uBAAC,oBAAoB,CAAC,MAAM,cAC1B,uBAAC,oBAAoB,CAAC,OAAO,IAC3B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,YAEjC,IAAI,GACwB,GACH,CAC/B,CAAC;IACJ,CAAC;IAED,OAAO,CACL,uBAAC,qBAAqB,CAAC,MAAM,cAC3B,uBAAC,qBAAqB,CAAC,OAAO,IAC5B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,YAEjC,IAAI,GACyB,GACH,CAChC,CAAC;AACJ,CAAC,CACF,CAAC;AACF,mBAAW,CAAC,WAAW,GAAG,aAAa,CAAC;AAaxC;;;GAGG;AACU,QAAA,UAAU,GAAG,eAAK,CAAC,UAAU,CACxC,CAAC,EAAE,WAAW,GAAG,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3E,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAExD,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,CAAC,CAAwC,EAAE,EAAE;QAC7E,sEAAsE;QACtE,CAAC,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/E,OAAO,CACL,iCAAK,SAAS,EAAE,WAAW,2BAAwB,EAAE,aACnD,iCAAM,SAAS,EAAC,wBAAwB,iBAAa,MAAM,YACzD,uBAAC,WAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG,GAC1C,EACP,kCACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yBAAyB,EACnC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,WAAW,gBACZ,SAAS,IAAI,WAAW,EACpC,YAAY,EAAC,KAAK,EAClB,WAAW,EAAC,KAAK,EACjB,UAAU,EAAE,KAAK,GACjB,EACD,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,mCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yBAAyB,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,gBAChB,cAAc,EACzB,QAAQ,EAAE,CAAC,CAAC,YAEZ,uBAAC,WAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG,GACvC,CACV,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,kBAAU,CAAC,WAAW,GAAG,YAAY,CAAC;AAuBtC;;GAEG;AACU,QAAA,QAAQ,GAAG,eAAK,CAAC,UAAU,CACtC,CACE,EACE,QAAQ,EACR,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,KAAK,EACnB,IAAI,EACJ,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,SAAS,GACV,EACD,GAAG,EACH,EAAE;IACF,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,SAAS,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE3D,IAAI,UAAU,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,iBAAiB;QACjB,WAAW,IAAI,8BAA8B;QAC7C,QAAQ,IAAI,2BAA2B;QACvC,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,wBAAC,UAAU,CAAC,IAAI,IACd,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,aAEnB,IAAI,IAAI,iCAAM,SAAS,EAAC,sBAAsB,YAAE,IAAI,GAAQ,EAC7D,iCAAM,SAAS,EAAC,uBAAuB,YACpC,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GACjE,EACN,QAAQ,IAAI,iCAAM,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAQ,IACzD,CACnB,CAAC;AACJ,CAAC,CACF,CAAC;AACF,gBAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AASlC;;GAEG;AACU,QAAA,aAAa,GAAG,eAAK,CAAC,UAAU,CAC3C,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IAC1B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvF,OAAO,uBAAC,UAAU,CAAC,SAAS,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,gBAAgB,GAAI,CAAC;AACzE,CAAC,CACF,CAAC;AACF,qBAAa,CAAC,WAAW,GAAG,eAAe,CAAC;AAa5C;;GAEG;AACU,QAAA,SAAS,GAAG,eAAK,CAAC,UAAU,CACvC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3C,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/E,OAAO,CACL,wBAAC,UAAU,CAAC,KAAK,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,aAChD,KAAK,IAAI,uBAAC,UAAU,CAAC,KAAK,IAAC,SAAS,EAAC,wBAAwB,YAAE,KAAK,GAAoB,EACxF,QAAQ,IACQ,CACpB,CAAC;AACJ,CAAC,CACF,CAAC;AACF,iBAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAwBpC;;GAEG;AACU,QAAA,gBAAgB,GAAG,eAAK,CAAC,UAAU,CAC9C,CACE,EACE,QAAQ,EACR,OAAO,EACP,eAAe,EACf,QAAQ,GAAG,KAAK,EAChB,IAAI,EACJ,SAAS,GAAG,EAAE,EACd,SAAS,GACV,EACD,GAAG,EACH,EAAE;IACF,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,SAAS,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE3D,IAAI,UAAU,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,iBAAiB;QACjB,2BAA2B;QAC3B,QAAQ,IAAI,2BAA2B;QACvC,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,SAAS,GAAG,CAChB,iCAAM,SAAS,EAAC,2BAA2B,YACzC,uBAAC,UAAU,CAAC,aAAa,cACvB,uBAAC,WAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,GAAG,GACN,GACtB,CACR,CAAC;IAEF,OAAO,CACL,wBAAC,UAAU,CAAC,YAAY,IACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,aAEnB,IAAI,CAAC,CAAC,CAAC,iCAAM,SAAS,EAAC,sBAAsB,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,SAAS,EACxE,iCAAM,SAAS,EAAC,uBAAuB,YACpC,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GACjE,EACN,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IACA,CAC3B,CAAC;AACJ,CAAC,CACF,CAAC;AACF,wBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC;AAelD;;GAEG;AACU,QAAA,cAAc,GAAG,eAAK,CAAC,UAAU,CAC5C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IAC1D,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErF,OAAO,CACL,uBAAC,UAAU,CAAC,UAAU,IACpB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,YAE3B,QAAQ,GACa,CACzB,CAAC;AACJ,CAAC,CACF,CAAC;AACF,sBAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAuB9C;;GAEG;AACU,QAAA,aAAa,GAAG,eAAK,CAAC,UAAU,CAC3C,CACE,EACE,QAAQ,EACR,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,KAAK,EACjB,SAAS,GACV,EACD,GAAG,EACH,EAAE;IACF,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,SAAS,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE3D,IAAI,UAAU,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,iBAAiB;QACjB,wBAAwB;QACxB,SAAS,KAAK,OAAO,IAAI,8BAA8B;QACvD,QAAQ,IAAI,2BAA2B;QACvC,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,wBAAC,UAAU,CAAC,SAAS,IACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,aAEnB,SAAS,KAAK,KAAK,IAAI,CACtB,iCAAM,SAAS,EAAC,2BAA2B,YACzC,uBAAC,UAAU,CAAC,aAAa,cACvB,iCAAM,SAAS,EAAC,sBAAsB,GAAG,GAChB,GACtB,CACR,EACD,iCAAM,SAAS,EAAC,uBAAuB,YACpC,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GACjE,EACN,SAAS,KAAK,OAAO,IAAI,CACxB,iCAAM,SAAS,EAAC,+DAA+D,YAC7E,uBAAC,UAAU,CAAC,aAAa,cACvB,uBAAC,WAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,GAAG,GACN,GACtB,CACR,IACoB,CACxB,CAAC;AACJ,CAAC,CACF,CAAC;AACF,qBAAa,CAAC,WAAW,GAAG,eAAe,CAAC;AAe5C;;GAEG;AACI,MAAM,OAAO,GAA2B,CAAC,EAC9C,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,OAAO,CACL,uBAAC,UAAU,CAAC,GAAG,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,YAC7E,QAAQ,GACM,CAClB,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,OAAO,WAYlB;AAeF;;GAEG;AACU,QAAA,cAAc,GAAG,eAAK,CAAC,UAAU,CAC5C,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IAC5D,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG;QAClB,iBAAiB;QACjB,8BAA8B;QAC9B,QAAQ,IAAI,2BAA2B;QACvC,SAAS;KACV;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,CACL,wBAAC,UAAU,CAAC,UAAU,IAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,aACxE,IAAI,IAAI,iCAAM,SAAS,EAAC,sBAAsB,YAAE,IAAI,GAAQ,EAC7D,iCAAM,SAAS,EAAC,uBAAuB,YAAE,QAAQ,GAAQ,EACzD,iCAAM,SAAS,EAAC,yBAAyB,YACvC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,GAAG,GAC/C,IACe,CACzB,CAAC;AACJ,CAAC,CACF,CAAC;AACF,sBAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAiB9C;;GAEG;AACU,QAAA,cAAc,GAAG,eAAK,CAAC,UAAU,CAC5C,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IACnF,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,SAAS,CAAC;SAChF,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,uBAAC,oBAAoB,CAAC,MAAM,cAC1B,uBAAC,oBAAoB,CAAC,UAAU,IAC9B,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,IAAI,YAET,QAAQ,GACuB,GACN,CAC/B,CAAC;IACJ,CAAC;IAED,OAAO,CACL,uBAAC,qBAAqB,CAAC,MAAM,cAC3B,uBAAC,qBAAqB,CAAC,UAAU,IAC/B,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,IAAI,YAET,QAAQ,GACwB,GACN,CAChC,CAAC;AACJ,CAAC,CACF,CAAC;AACF,sBAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAE9C,kBAAe,YAAI,CAAC"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MenuSubContent = exports.MenuSubTrigger = exports.MenuSub = exports.MenuRadioItem = exports.MenuRadioGroup = exports.MenuCheckboxItem = exports.MenuGroup = exports.MenuSeparator = exports.MenuItem = exports.MenuContent = exports.MenuTrigger = exports.Menu = void 0;
3
+ exports.useMenuSearch = exports.highlightMenuMatch = exports.MenuSubContent = exports.MenuSubTrigger = exports.MenuSub = exports.MenuRadioItem = exports.MenuRadioGroup = exports.MenuCheckboxItem = exports.MenuGroup = exports.MenuSeparator = exports.MenuItem = exports.MenuSearch = exports.MenuContent = exports.MenuTrigger = exports.DropdownMenu = exports.Menu = void 0;
4
4
  var Menu_1 = require("./Menu");
5
5
  Object.defineProperty(exports, "Menu", { enumerable: true, get: function () { return Menu_1.Menu; } });
6
+ Object.defineProperty(exports, "DropdownMenu", { enumerable: true, get: function () { return Menu_1.DropdownMenu; } });
6
7
  Object.defineProperty(exports, "MenuTrigger", { enumerable: true, get: function () { return Menu_1.MenuTrigger; } });
7
8
  Object.defineProperty(exports, "MenuContent", { enumerable: true, get: function () { return Menu_1.MenuContent; } });
9
+ Object.defineProperty(exports, "MenuSearch", { enumerable: true, get: function () { return Menu_1.MenuSearch; } });
8
10
  Object.defineProperty(exports, "MenuItem", { enumerable: true, get: function () { return Menu_1.MenuItem; } });
9
11
  Object.defineProperty(exports, "MenuSeparator", { enumerable: true, get: function () { return Menu_1.MenuSeparator; } });
10
12
  Object.defineProperty(exports, "MenuGroup", { enumerable: true, get: function () { return Menu_1.MenuGroup; } });
@@ -14,4 +16,6 @@ Object.defineProperty(exports, "MenuRadioItem", { enumerable: true, get: functio
14
16
  Object.defineProperty(exports, "MenuSub", { enumerable: true, get: function () { return Menu_1.MenuSub; } });
15
17
  Object.defineProperty(exports, "MenuSubTrigger", { enumerable: true, get: function () { return Menu_1.MenuSubTrigger; } });
16
18
  Object.defineProperty(exports, "MenuSubContent", { enumerable: true, get: function () { return Menu_1.MenuSubContent; } });
19
+ Object.defineProperty(exports, "highlightMenuMatch", { enumerable: true, get: function () { return Menu_1.highlightMenuMatch; } });
20
+ Object.defineProperty(exports, "useMenuSearch", { enumerable: true, get: function () { return Menu_1.useMenuSearch; } });
17
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/Menu/index.ts"],"names":[],"mappings":";;;AAAA,+BAagB;AAZd,4FAAA,IAAI,OAAA;AACJ,mGAAA,WAAW,OAAA;AACX,mGAAA,WAAW,OAAA;AACX,gGAAA,QAAQ,OAAA;AACR,qGAAA,aAAa,OAAA;AACb,iGAAA,SAAS,OAAA;AACT,wGAAA,gBAAgB,OAAA;AAChB,sGAAA,cAAc,OAAA;AACd,qGAAA,aAAa,OAAA;AACb,+FAAA,OAAO,OAAA;AACP,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/Menu/index.ts"],"names":[],"mappings":";;;AAAA,+BAiBgB;AAhBd,4FAAA,IAAI,OAAA;AACJ,oGAAA,YAAY,OAAA;AACZ,mGAAA,WAAW,OAAA;AACX,mGAAA,WAAW,OAAA;AACX,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,qGAAA,aAAa,OAAA;AACb,iGAAA,SAAS,OAAA;AACT,wGAAA,gBAAgB,OAAA;AAChB,sGAAA,cAAc,OAAA;AACd,qGAAA,aAAa,OAAA;AACb,+FAAA,OAAO,OAAA;AACP,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,0GAAA,kBAAkB,OAAA;AAClB,qGAAA,aAAa,OAAA"}
@@ -0,0 +1,123 @@
1
+ /* Scrollbar — Figma menu scrollbar (32px rail, chevrons, grip thumb) */
2
+
3
+ .muka-scrollbar {
4
+ display: flex;
5
+ flex-shrink: 0;
6
+ border-left: var(--border-width-regular) solid var(--color-border-default);
7
+ background-color: var(--color-surface-level3);
8
+ user-select: none;
9
+ }
10
+
11
+ .muka-scrollbar--vertical {
12
+ flex-direction: column;
13
+ width: var(--size-2xl, 32px);
14
+ align-self: stretch;
15
+ }
16
+
17
+ .muka-scrollbar--horizontal {
18
+ flex-direction: row;
19
+ height: var(--size-2xl, 32px);
20
+ width: 100%;
21
+ border-left: none;
22
+ border-top: var(--border-width-regular) solid var(--color-border-default);
23
+ }
24
+
25
+ .muka-scrollbar__button {
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ flex-shrink: 0;
30
+ width: 100%;
31
+ height: var(--size-2xl, 32px);
32
+ padding: 0;
33
+ border: none;
34
+ background-color: var(--button-color-tertiary-background-default, var(--color-surface-level3));
35
+ color: var(--color-text-default-default);
36
+ cursor: pointer;
37
+ }
38
+
39
+ .muka-scrollbar--horizontal .muka-scrollbar__button {
40
+ width: var(--size-2xl, 32px);
41
+ height: 100%;
42
+ }
43
+
44
+ .muka-scrollbar__button:hover {
45
+ background-color: var(--color-surface-hover);
46
+ }
47
+
48
+ .muka-scrollbar__divider {
49
+ flex-shrink: 0;
50
+ width: 100%;
51
+ height: 1px;
52
+ background-color: var(--color-border-default);
53
+ }
54
+
55
+ .muka-scrollbar--horizontal .muka-scrollbar__divider {
56
+ width: 1px;
57
+ height: 100%;
58
+ }
59
+
60
+ .muka-scrollbar__track {
61
+ position: relative;
62
+ display: flex;
63
+ flex-direction: column;
64
+ flex: 1 1 auto;
65
+ min-height: 0;
66
+ width: 100%;
67
+ }
68
+
69
+ .muka-scrollbar--horizontal .muka-scrollbar__track {
70
+ flex-direction: row;
71
+ min-width: 0;
72
+ height: 100%;
73
+ }
74
+
75
+ .muka-scrollbar__thumb {
76
+ position: absolute;
77
+ left: 50%;
78
+ top: 0;
79
+ z-index: 1;
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ width: 14px;
84
+ margin-left: -7px;
85
+ cursor: grab;
86
+ touch-action: none;
87
+ }
88
+
89
+ .muka-scrollbar--horizontal .muka-scrollbar__thumb {
90
+ left: 0;
91
+ top: 50%;
92
+ width: auto;
93
+ height: 14px;
94
+ margin-left: 0;
95
+ margin-top: -7px;
96
+ }
97
+
98
+ .muka-scrollbar__thumb:active {
99
+ cursor: grabbing;
100
+ }
101
+
102
+ .muka-scrollbar__grip {
103
+ display: flex;
104
+ flex-direction: column;
105
+ gap: 2px;
106
+ width: 14px;
107
+ }
108
+
109
+ .muka-scrollbar__grip::before,
110
+ .muka-scrollbar__grip::after {
111
+ content: '';
112
+ display: block;
113
+ width: 100%;
114
+ height: 2px;
115
+ border-radius: var(--border-radius-md);
116
+ background-color: var(--color-text-subtle-default);
117
+ }
118
+
119
+ .muka-scrollbar__spacer {
120
+ flex: 1 1 auto;
121
+ min-height: 0;
122
+ background-color: var(--color-surface-level2);
123
+ }
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Scrollbar = void 0;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const Icon_1 = require("../Icon");
8
+ require("./Scrollbar.css");
9
+ /**
10
+ * Scrollbar — custom vertical scrollbar matching the Figma menu scrollbar
11
+ * (chevron buttons + grip thumb on a 32px rail).
12
+ */
13
+ const Scrollbar = ({ viewportRef, orientation = 'vertical', step = 48, className = '', }) => {
14
+ const [metrics, setMetrics] = (0, react_1.useState)({
15
+ scrollTop: 0,
16
+ scrollLeft: 0,
17
+ scrollHeight: 0,
18
+ scrollWidth: 0,
19
+ clientHeight: 0,
20
+ clientWidth: 0,
21
+ });
22
+ const updateMetrics = (0, react_1.useCallback)(() => {
23
+ const el = viewportRef.current;
24
+ if (!el)
25
+ return;
26
+ setMetrics({
27
+ scrollTop: el.scrollTop,
28
+ scrollLeft: el.scrollLeft,
29
+ scrollHeight: el.scrollHeight,
30
+ scrollWidth: el.scrollWidth,
31
+ clientHeight: el.clientHeight,
32
+ clientWidth: el.clientWidth,
33
+ });
34
+ }, [viewportRef]);
35
+ (0, react_1.useEffect)(() => {
36
+ const el = viewportRef.current;
37
+ if (!el)
38
+ return;
39
+ updateMetrics();
40
+ el.addEventListener('scroll', updateMetrics, { passive: true });
41
+ const resizeObserver = new ResizeObserver(updateMetrics);
42
+ resizeObserver.observe(el);
43
+ if (el.firstElementChild) {
44
+ resizeObserver.observe(el.firstElementChild);
45
+ }
46
+ return () => {
47
+ el.removeEventListener('scroll', updateMetrics);
48
+ resizeObserver.disconnect();
49
+ };
50
+ }, [viewportRef, updateMetrics]);
51
+ const isVertical = orientation === 'vertical';
52
+ const maxScroll = isVertical
53
+ ? metrics.scrollHeight - metrics.clientHeight
54
+ : metrics.scrollWidth - metrics.clientWidth;
55
+ if (maxScroll <= 0) {
56
+ return null;
57
+ }
58
+ const trackSize = isVertical ? metrics.clientHeight : metrics.clientWidth;
59
+ // Rail body between the two 32px chevron buttons + 2×1px dividers ≈ track - 66
60
+ const railBody = Math.max(trackSize - 66, 24);
61
+ const thumbRatio = isVertical
62
+ ? metrics.clientHeight / metrics.scrollHeight
63
+ : metrics.clientWidth / metrics.scrollWidth;
64
+ const thumbSize = Math.max(railBody * thumbRatio, 28);
65
+ const scrollPos = isVertical ? metrics.scrollTop : metrics.scrollLeft;
66
+ const thumbOffset = (scrollPos / maxScroll) * (railBody - thumbSize);
67
+ const scrollBy = (delta) => {
68
+ const el = viewportRef.current;
69
+ if (!el)
70
+ return;
71
+ if (isVertical) {
72
+ el.scrollBy({ top: delta, behavior: 'smooth' });
73
+ }
74
+ else {
75
+ el.scrollBy({ left: delta, behavior: 'smooth' });
76
+ }
77
+ };
78
+ const handleThumbPointerDown = (event) => {
79
+ event.preventDefault();
80
+ event.stopPropagation();
81
+ const el = viewportRef.current;
82
+ if (!el)
83
+ return;
84
+ const startPos = isVertical ? event.clientY : event.clientX;
85
+ const startScroll = isVertical ? el.scrollTop : el.scrollLeft;
86
+ const movable = railBody - thumbSize;
87
+ const onMove = (e) => {
88
+ const current = isVertical ? e.clientY : e.clientX;
89
+ const delta = current - startPos;
90
+ const next = startScroll + (delta / movable) * maxScroll;
91
+ if (isVertical) {
92
+ el.scrollTop = next;
93
+ }
94
+ else {
95
+ el.scrollLeft = next;
96
+ }
97
+ };
98
+ const onUp = () => {
99
+ window.removeEventListener('pointermove', onMove);
100
+ window.removeEventListener('pointerup', onUp);
101
+ };
102
+ window.addEventListener('pointermove', onMove);
103
+ window.addEventListener('pointerup', onUp);
104
+ };
105
+ const rootClasses = [
106
+ 'muka-scrollbar',
107
+ `muka-scrollbar--${orientation}`,
108
+ className,
109
+ ]
110
+ .filter(Boolean)
111
+ .join(' ');
112
+ return ((0, jsx_runtime_1.jsxs)("div", { className: rootClasses, "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", className: "muka-scrollbar__button muka-scrollbar__button--start", tabIndex: -1, onClick: () => scrollBy(-step), "aria-label": isVertical ? 'Scroll up' : 'Scroll left', children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: isVertical ? 'arrow-up-s' : 'arrow-left-s', size: "sm" }) }), (0, jsx_runtime_1.jsx)("div", { className: "muka-scrollbar__divider" }), (0, jsx_runtime_1.jsxs)("div", { className: "muka-scrollbar__track", children: [(0, jsx_runtime_1.jsx)("div", { className: "muka-scrollbar__thumb", style: isVertical
113
+ ? { height: thumbSize, transform: `translateY(${thumbOffset}px)` }
114
+ : { width: thumbSize, transform: `translateX(${thumbOffset}px)` }, onPointerDown: handleThumbPointerDown, children: (0, jsx_runtime_1.jsx)("span", { className: "muka-scrollbar__grip" }) }), (0, jsx_runtime_1.jsx)("div", { className: "muka-scrollbar__spacer" })] }), (0, jsx_runtime_1.jsx)("div", { className: "muka-scrollbar__divider" }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "muka-scrollbar__button muka-scrollbar__button--end", tabIndex: -1, onClick: () => scrollBy(step), "aria-label": isVertical ? 'Scroll down' : 'Scroll right', children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { name: isVertical ? 'arrow-down-s' : 'arrow-right-s', size: "sm" }) })] }));
115
+ };
116
+ exports.Scrollbar = Scrollbar;
117
+ exports.default = exports.Scrollbar;
118
+ //# sourceMappingURL=Scrollbar.js.map