@remix-run/ui 0.1.0 → 0.1.2
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.
- package/README.md +24 -3
- package/dist/animation/animate-layout-mixin.js +66 -66
- package/dist/animation/animate-layout-mixin.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts +3 -3
- package/dist/components/accordion/accordion.js +0 -2
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/accordion/demos/card.demo.d.ts +6 -0
- package/dist/components/accordion/demos/card.demo.js +58 -0
- package/dist/components/accordion/demos/card.demo.js.map +1 -0
- package/dist/components/accordion/demos/multiple.demo.d.ts +6 -0
- package/dist/components/accordion/demos/multiple.demo.js +19 -0
- package/dist/components/accordion/demos/multiple.demo.js.map +1 -0
- package/dist/components/accordion/demos/overview.demo.d.ts +6 -0
- package/dist/components/accordion/demos/overview.demo.js +19 -0
- package/dist/components/accordion/demos/overview.demo.js.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.js +0 -2
- package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/dist/components/breadcrumbs/demos/basic.demo.d.ts +5 -0
- package/dist/components/breadcrumbs/demos/basic.demo.js +14 -0
- package/dist/components/breadcrumbs/demos/basic.demo.js.map +1 -0
- package/dist/components/breadcrumbs/demos/separator.demo.d.ts +5 -0
- package/dist/components/breadcrumbs/demos/separator.demo.js +14 -0
- package/dist/components/breadcrumbs/demos/separator.demo.js.map +1 -0
- package/dist/components/button/button.d.ts +82 -0
- package/dist/components/button/button.js +60 -2
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/button/demos/aliases.demo.d.ts +6 -0
- package/dist/components/button/demos/aliases.demo.js +18 -0
- package/dist/components/button/demos/aliases.demo.js.map +1 -0
- package/dist/components/button/demos/basic.demo.d.ts +6 -0
- package/dist/components/button/demos/basic.demo.js +19 -0
- package/dist/components/button/demos/basic.demo.js.map +1 -0
- package/dist/components/button/demos/states.demo.d.ts +6 -0
- package/dist/components/button/demos/states.demo.js +29 -0
- package/dist/components/button/demos/states.demo.js.map +1 -0
- package/dist/components/combobox/combobox.d.ts +3 -3
- package/dist/components/combobox/combobox.js +0 -2
- package/dist/components/combobox/combobox.js.map +1 -1
- package/dist/components/combobox/demos/overview.demo.d.ts +6 -0
- package/dist/components/combobox/demos/overview.demo.js +153 -0
- package/dist/components/combobox/demos/overview.demo.js.map +1 -0
- package/dist/components/listbox/demos/overview.demo.d.ts +6 -0
- package/dist/components/listbox/demos/overview.demo.js +64 -0
- package/dist/components/listbox/demos/overview.demo.js.map +1 -0
- package/dist/components/listbox/listbox.d.ts +1 -6
- package/dist/components/listbox/listbox.js +21 -33
- package/dist/components/listbox/listbox.js.map +1 -1
- package/dist/components/menu/demos/bubbling.demo.d.ts +5 -0
- package/dist/components/menu/demos/bubbling.demo.js +15 -0
- package/dist/components/menu/demos/bubbling.demo.js.map +1 -0
- package/dist/components/menu/demos/overview.demo.d.ts +6 -0
- package/dist/components/menu/demos/overview.demo.js +32 -0
- package/dist/components/menu/demos/overview.demo.js.map +1 -0
- package/dist/components/menu/menu.d.ts +5 -14
- package/dist/components/menu/menu.js +23 -38
- package/dist/components/menu/menu.js.map +1 -1
- package/dist/components/popover/demos/overview.demo.d.ts +6 -0
- package/dist/components/popover/demos/overview.demo.js +64 -0
- package/dist/components/popover/demos/overview.demo.js.map +1 -0
- package/dist/components/select/demos/deconstructed.demo.d.ts +6 -0
- package/dist/components/select/demos/deconstructed.demo.js +53 -0
- package/dist/components/select/demos/deconstructed.demo.js.map +1 -0
- package/dist/components/select/demos/overview.demo.d.ts +5 -0
- package/dist/components/select/demos/overview.demo.js +27 -0
- package/dist/components/select/demos/overview.demo.js.map +1 -0
- package/dist/components/select/select.d.ts +3 -3
- package/dist/components/select/select.js +17 -26
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +3 -3
- package/dist/components/tabs/tabs.js +0 -2
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/component.d.ts +8 -5
- package/dist/runtime/component.js +84 -80
- package/dist/runtime/component.js.map +1 -1
- package/dist/runtime/core/attributes.d.ts +12 -0
- package/dist/runtime/core/attributes.js +85 -0
- package/dist/runtime/core/attributes.js.map +1 -0
- package/dist/runtime/core/children.d.ts +7 -0
- package/dist/runtime/core/children.js +30 -0
- package/dist/runtime/core/children.js.map +1 -0
- package/dist/runtime/core/props.d.ts +9 -0
- package/dist/runtime/core/props.js +169 -0
- package/dist/runtime/core/props.js.map +1 -0
- package/dist/runtime/core/vnode.d.ts +3 -0
- package/dist/runtime/core/vnode.js +39 -0
- package/dist/runtime/core/vnode.js.map +1 -0
- package/dist/runtime/create-element.js +2 -1
- package/dist/runtime/create-element.js.map +1 -1
- package/dist/runtime/diff-dom.js +47 -14
- package/dist/runtime/diff-dom.js.map +1 -1
- package/dist/runtime/diff-props.d.ts +1 -2
- package/dist/runtime/diff-props.js +2 -181
- package/dist/runtime/diff-props.js.map +1 -1
- package/dist/runtime/dom.d.ts +4 -0
- package/dist/runtime/frame.d.ts +23 -2
- package/dist/runtime/frame.js +51 -52
- package/dist/runtime/frame.js.map +1 -1
- package/dist/runtime/jsx.js +2 -27
- package/dist/runtime/jsx.js.map +1 -1
- package/dist/runtime/mixins/mixin.js +9 -4
- package/dist/runtime/mixins/mixin.js.map +1 -1
- package/dist/runtime/mixins/on-mixin.d.ts +15 -4
- package/dist/runtime/mixins/on-mixin.js +9 -2
- package/dist/runtime/mixins/on-mixin.js.map +1 -1
- package/dist/runtime/navigation.d.ts +6 -0
- package/dist/runtime/navigation.js +16 -3
- package/dist/runtime/navigation.js.map +1 -1
- package/dist/runtime/reconcile.js +444 -181
- package/dist/runtime/reconcile.js.map +1 -1
- package/dist/runtime/run.d.ts +17 -2
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/scheduler.js +10 -0
- package/dist/runtime/scheduler.js.map +1 -1
- package/dist/runtime/stream-protocol.d.ts +8 -0
- package/dist/runtime/stream-protocol.js +20 -0
- package/dist/runtime/stream-protocol.js.map +1 -0
- package/dist/runtime/to-vnode.js +17 -18
- package/dist/runtime/to-vnode.js.map +1 -1
- package/dist/runtime/vnode.d.ts +5 -4
- package/dist/runtime/vnode.js +2 -3
- package/dist/runtime/vnode.js.map +1 -1
- package/dist/server/stream.js +80 -106
- package/dist/server/stream.js.map +1 -1
- package/dist/style/layers.d.ts +2 -0
- package/dist/style/layers.js +3 -0
- package/dist/style/layers.js.map +1 -0
- package/dist/style/stylesheet.d.ts +3 -1
- package/dist/style/stylesheet.js +69 -8
- package/dist/style/stylesheet.js.map +1 -1
- package/dist/theme/glyph-contract.d.ts +1 -1
- package/dist/theme/runtime.js +4 -1
- package/dist/theme/runtime.js.map +1 -1
- package/package.json +6 -7
- package/src/animation/README.md +314 -0
- package/src/animation/animate-layout-mixin.ts +79 -71
- package/src/components/accordion/README.md +166 -0
- package/src/components/accordion/accordion.tsx +8 -10
- package/src/components/accordion/demos/card.demo.tsx +113 -0
- package/src/components/accordion/demos/multiple.demo.tsx +56 -0
- package/src/components/accordion/demos/overview.demo.tsx +56 -0
- package/src/components/anchor/README.md +153 -0
- package/src/components/breadcrumbs/README.md +55 -0
- package/src/components/breadcrumbs/breadcrumbs.tsx +0 -2
- package/src/components/breadcrumbs/demos/basic.demo.tsx +17 -0
- package/src/components/breadcrumbs/demos/separator.demo.tsx +18 -0
- package/src/components/button/README.md +4 -4
- package/src/components/button/button.tsx +88 -2
- package/src/components/button/demos/aliases.demo.tsx +27 -0
- package/src/components/button/demos/basic.demo.tsx +30 -0
- package/src/components/button/demos/states.demo.tsx +52 -0
- package/src/components/combobox/combobox.tsx +8 -10
- package/src/components/combobox/demos/overview.demo.tsx +199 -0
- package/src/components/glyph/README.md +72 -0
- package/src/components/listbox/README.md +115 -0
- package/src/components/listbox/demos/overview.demo.tsx +101 -0
- package/src/components/listbox/listbox.ts +23 -32
- package/src/components/menu/README.md +96 -0
- package/src/components/menu/demos/bubbling.demo.tsx +34 -0
- package/src/components/menu/demos/overview.demo.tsx +76 -0
- package/src/components/menu/menu.tsx +35 -41
- package/src/components/popover/README.md +3 -3
- package/src/components/popover/demos/overview.demo.tsx +143 -0
- package/src/components/select/README.md +107 -0
- package/src/components/select/demos/deconstructed.demo.tsx +95 -0
- package/src/components/select/demos/overview.demo.tsx +51 -0
- package/src/components/select/select.tsx +28 -28
- package/src/components/tabs/tabs.tsx +10 -5
- package/src/index.ts +1 -1
- package/src/runtime/component.ts +94 -82
- package/src/runtime/core/attributes.ts +97 -0
- package/src/runtime/core/children.ts +42 -0
- package/src/runtime/core/props.ts +185 -0
- package/src/runtime/core/vnode.ts +48 -0
- package/src/runtime/create-element.ts +2 -1
- package/src/runtime/diff-dom.ts +59 -12
- package/src/runtime/diff-props.ts +2 -187
- package/src/runtime/dom.ts +4 -0
- package/src/runtime/frame.ts +84 -61
- package/src/runtime/jsx.ts +2 -30
- package/src/runtime/mixins/mixin.ts +9 -4
- package/src/runtime/mixins/on-mixin.ts +20 -12
- package/src/runtime/navigation.ts +24 -3
- package/src/runtime/reconcile.ts +552 -186
- package/src/runtime/run.ts +17 -1
- package/src/runtime/scheduler.ts +7 -0
- package/src/runtime/stream-protocol.ts +27 -0
- package/src/runtime/to-vnode.ts +15 -17
- package/src/runtime/vnode.ts +6 -9
- package/src/server/README.md +88 -0
- package/src/server/stream.ts +105 -117
- package/src/style/layers.ts +2 -0
- package/src/style/stylesheet.ts +75 -10
- package/src/test/README.md +107 -0
- package/src/test/utils.ts +3 -1
- package/src/theme/README.md +103 -0
- package/src/theme/runtime.ts +4 -1
- package/src/utils/scroll-lock/README.md +33 -0
- package/src/test/setup.ts +0 -7
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
|
|
2
|
+
import { css, on } from '@remix-run/ui';
|
|
3
|
+
import { Glyph } from '@remix-run/ui/glyph';
|
|
4
|
+
import * as listbox from '@remix-run/ui/listbox';
|
|
5
|
+
import { theme } from '@remix-run/ui/theme';
|
|
6
|
+
/**
|
|
7
|
+
* @name Listbox Overview
|
|
8
|
+
* @description A keyboard-navigable listbox with selection, highlighting, and an optional flash-selection animation.
|
|
9
|
+
*/
|
|
10
|
+
export default function Example(handle) {
|
|
11
|
+
let value = options[0].value;
|
|
12
|
+
let activeValue = options[0].value;
|
|
13
|
+
let flashSelection = false;
|
|
14
|
+
return () => {
|
|
15
|
+
return (_jsxs("div", { mix: stackCss, children: [_jsx(listbox.Context, { value: value, activeValue: activeValue, flashSelection: flashSelection, onSelect: (nextValue) => {
|
|
16
|
+
value = nextValue;
|
|
17
|
+
handle.update();
|
|
18
|
+
}, onHighlight: (nextActiveValue) => {
|
|
19
|
+
activeValue = nextActiveValue;
|
|
20
|
+
handle.update();
|
|
21
|
+
}, children: _jsx("div", { tabIndex: 0, mix: [listbox.listStyle, listbox.list(), containerCss], children: options.map((option) => (_jsxs("div", { mix: [listbox.optionStyle, listbox.option(option)], children: [_jsx(Glyph, { mix: listbox.glyphStyle, name: "check" }), _jsx("span", { mix: listbox.labelStyle, children: option.label })] }, option.value))) }) }), _jsxs("div", { mix: controlsCss, children: [_jsxs("label", { mix: checkboxLabelCss, children: [_jsx("input", { type: "checkbox", defaultChecked: flashSelection, mix: on('change', (event) => {
|
|
22
|
+
flashSelection = event.currentTarget.checked;
|
|
23
|
+
handle.update();
|
|
24
|
+
}) }), ' ', "Flash selection"] }), _jsx("p", { mix: valueCss, children: `value=${value ?? 'null'}` })] })] }));
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const options = [
|
|
28
|
+
{ label: 'Apple', value: 'apple' },
|
|
29
|
+
{ label: 'Banana', value: 'banana' },
|
|
30
|
+
{ label: 'Cherry', value: 'cherry' },
|
|
31
|
+
{ label: 'Date', value: 'date' },
|
|
32
|
+
{ label: 'Elderberry', value: 'elderberry' },
|
|
33
|
+
{ label: 'Fig', value: 'fig' },
|
|
34
|
+
{ label: 'Grape', value: 'grape' },
|
|
35
|
+
];
|
|
36
|
+
const containerCss = css({
|
|
37
|
+
borderColor: theme.colors.border.subtle,
|
|
38
|
+
padding: theme.space.xs,
|
|
39
|
+
borderRadius: theme.radius.lg,
|
|
40
|
+
borderStyle: 'solid',
|
|
41
|
+
});
|
|
42
|
+
const stackCss = css({
|
|
43
|
+
display: 'flex',
|
|
44
|
+
flexDirection: 'column',
|
|
45
|
+
gap: theme.space.md,
|
|
46
|
+
width: '100%',
|
|
47
|
+
});
|
|
48
|
+
const controlsCss = css({
|
|
49
|
+
display: 'flex',
|
|
50
|
+
flexDirection: 'column',
|
|
51
|
+
gap: theme.space.xs,
|
|
52
|
+
});
|
|
53
|
+
const checkboxLabelCss = css({
|
|
54
|
+
fontSize: theme.fontSize.sm,
|
|
55
|
+
lineHeight: theme.lineHeight.normal,
|
|
56
|
+
color: theme.colors.text.secondary,
|
|
57
|
+
});
|
|
58
|
+
const valueCss = css({
|
|
59
|
+
margin: 0,
|
|
60
|
+
fontFamily: theme.fontFamily.mono,
|
|
61
|
+
fontSize: theme.fontSize.xs,
|
|
62
|
+
color: theme.colors.text.secondary,
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=overview.demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview.demo.js","sourceRoot":"","sources":["../../../../src/components/listbox/demos/overview.demo.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
import { type CSSMixinDescriptor, type Handle, type RemixNode } from '@remix-run/ui';
|
|
2
2
|
import { type SearchValue } from '../../interactions/typeahead/typeahead-mixin.ts';
|
|
3
3
|
export type ListboxValue = string | null;
|
|
4
|
-
|
|
5
|
-
Next = 0,
|
|
6
|
-
Previous = 1,
|
|
7
|
-
First = 2,
|
|
8
|
-
Last = 3
|
|
9
|
-
}
|
|
4
|
+
type NavigationStrategy = 'next' | 'previous' | 'first' | 'last';
|
|
10
5
|
interface Values {
|
|
11
6
|
value: ListboxValue;
|
|
12
7
|
activeValue: ListboxValue;
|
|
@@ -2,18 +2,6 @@ import { attrs, createMixin, css, on, } from '@remix-run/ui';
|
|
|
2
2
|
import { theme } from "../../theme/theme.js";
|
|
3
3
|
import { hiddenTypeahead, matchNextItemBySearchText, } from "../../interactions/typeahead/typeahead-mixin.js";
|
|
4
4
|
import { flashAttribute } from "../../utils/flash-attribute.js";
|
|
5
|
-
var NavigationStrategy;
|
|
6
|
-
(function (NavigationStrategy) {
|
|
7
|
-
NavigationStrategy[NavigationStrategy["Next"] = 0] = "Next";
|
|
8
|
-
NavigationStrategy[NavigationStrategy["Previous"] = 1] = "Previous";
|
|
9
|
-
NavigationStrategy[NavigationStrategy["First"] = 2] = "First";
|
|
10
|
-
NavigationStrategy[NavigationStrategy["Last"] = 3] = "Last";
|
|
11
|
-
})(NavigationStrategy || (NavigationStrategy = {}));
|
|
12
|
-
var State;
|
|
13
|
-
(function (State) {
|
|
14
|
-
State["Idle"] = "idle";
|
|
15
|
-
State["Selecting"] = "selecting";
|
|
16
|
-
})(State || (State = {}));
|
|
17
5
|
const listCss = css({
|
|
18
6
|
display: 'flex',
|
|
19
7
|
flexDirection: 'column',
|
|
@@ -93,7 +81,7 @@ export const glyphStyle = itemGlyphCss;
|
|
|
93
81
|
export const labelStyle = itemLabelCss;
|
|
94
82
|
function ListboxProvider(handle) {
|
|
95
83
|
let options = [];
|
|
96
|
-
let state =
|
|
84
|
+
let state = 'idle';
|
|
97
85
|
function getOption(value) {
|
|
98
86
|
return options.find((option) => option.value === value);
|
|
99
87
|
}
|
|
@@ -144,16 +132,16 @@ function ListboxProvider(handle) {
|
|
|
144
132
|
return findSearchMatch(text, fromValue);
|
|
145
133
|
},
|
|
146
134
|
navigateFirst() {
|
|
147
|
-
context.navigate(
|
|
135
|
+
context.navigate('first');
|
|
148
136
|
},
|
|
149
137
|
navigateLast() {
|
|
150
|
-
context.navigate(
|
|
138
|
+
context.navigate('last');
|
|
151
139
|
},
|
|
152
140
|
navigateNext() {
|
|
153
|
-
context.navigate(
|
|
141
|
+
context.navigate('next');
|
|
154
142
|
},
|
|
155
143
|
navigatePrevious() {
|
|
156
|
-
context.navigate(
|
|
144
|
+
context.navigate('previous');
|
|
157
145
|
},
|
|
158
146
|
scrollActiveOptionIntoView() {
|
|
159
147
|
context.scrollActiveOptionIntoView();
|
|
@@ -179,13 +167,13 @@ function ListboxProvider(handle) {
|
|
|
179
167
|
options.push(option);
|
|
180
168
|
},
|
|
181
169
|
async select(value) {
|
|
182
|
-
if (state ===
|
|
170
|
+
if (state === 'selecting') {
|
|
183
171
|
return;
|
|
184
172
|
}
|
|
185
|
-
state =
|
|
173
|
+
state = 'selecting';
|
|
186
174
|
let option = getOption(value);
|
|
187
175
|
if (!isInteractableOption(option)) {
|
|
188
|
-
state =
|
|
176
|
+
state = 'idle';
|
|
189
177
|
return;
|
|
190
178
|
}
|
|
191
179
|
handle.props.onSelect(value, option);
|
|
@@ -193,16 +181,16 @@ function ListboxProvider(handle) {
|
|
|
193
181
|
await flashAttribute(option.node, handle.props.selectionFlashAttribute ?? 'data-listbox-flash', 60);
|
|
194
182
|
}
|
|
195
183
|
await handle.props.onSelectSettled?.(value, option);
|
|
196
|
-
state =
|
|
184
|
+
state = 'idle';
|
|
197
185
|
},
|
|
198
186
|
highlight(value) {
|
|
199
|
-
if (state ===
|
|
187
|
+
if (state === 'selecting')
|
|
200
188
|
return;
|
|
201
189
|
let option = getOption(value);
|
|
202
190
|
handle.props.onHighlight(value, option);
|
|
203
191
|
},
|
|
204
192
|
highlightSearchMatch(text) {
|
|
205
|
-
if (state ===
|
|
193
|
+
if (state === 'selecting')
|
|
206
194
|
return;
|
|
207
195
|
let option = findSearchMatch(text, handle.props.activeValue);
|
|
208
196
|
if (option) {
|
|
@@ -211,25 +199,25 @@ function ListboxProvider(handle) {
|
|
|
211
199
|
}
|
|
212
200
|
},
|
|
213
201
|
navigate(strategy) {
|
|
214
|
-
if (state ===
|
|
202
|
+
if (state === 'selecting')
|
|
215
203
|
return;
|
|
216
204
|
let option;
|
|
217
205
|
let interactableOptions = getInteractableOptions();
|
|
218
206
|
let activeIndex = interactableOptions.findIndex((option) => option.value === handle.props.activeValue);
|
|
219
207
|
switch (strategy) {
|
|
220
|
-
case
|
|
208
|
+
case 'next':
|
|
221
209
|
option = interactableOptions[activeIndex + 1] ?? interactableOptions[0];
|
|
222
210
|
break;
|
|
223
|
-
case
|
|
211
|
+
case 'previous':
|
|
224
212
|
option =
|
|
225
213
|
activeIndex === -1
|
|
226
214
|
? interactableOptions[interactableOptions.length - 1]
|
|
227
215
|
: interactableOptions[activeIndex - 1];
|
|
228
216
|
break;
|
|
229
|
-
case
|
|
217
|
+
case 'first':
|
|
230
218
|
option = interactableOptions[0];
|
|
231
219
|
break;
|
|
232
|
-
case
|
|
220
|
+
case 'last':
|
|
233
221
|
option = interactableOptions[interactableOptions.length - 1];
|
|
234
222
|
break;
|
|
235
223
|
}
|
|
@@ -262,15 +250,15 @@ const listMixin = createMixin((handle) => (props) => {
|
|
|
262
250
|
switch (event.key) {
|
|
263
251
|
case 'ArrowDown':
|
|
264
252
|
event.preventDefault();
|
|
265
|
-
context.navigate(
|
|
253
|
+
context.navigate('next');
|
|
266
254
|
break;
|
|
267
255
|
case 'ArrowUp':
|
|
268
256
|
event.preventDefault();
|
|
269
|
-
context.navigate(
|
|
257
|
+
context.navigate('previous');
|
|
270
258
|
break;
|
|
271
259
|
case 'Tab':
|
|
272
260
|
event.preventDefault();
|
|
273
|
-
context.navigate(
|
|
261
|
+
context.navigate('first');
|
|
274
262
|
break;
|
|
275
263
|
case 'Enter':
|
|
276
264
|
case ' ':
|
|
@@ -279,11 +267,11 @@ const listMixin = createMixin((handle) => (props) => {
|
|
|
279
267
|
break;
|
|
280
268
|
case 'Home':
|
|
281
269
|
event.preventDefault();
|
|
282
|
-
context.navigate(
|
|
270
|
+
context.navigate('first');
|
|
283
271
|
break;
|
|
284
272
|
case 'End':
|
|
285
273
|
event.preventDefault();
|
|
286
|
-
context.navigate(
|
|
274
|
+
context.navigate('last');
|
|
287
275
|
}
|
|
288
276
|
}),
|
|
289
277
|
hiddenTypeahead((text) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listbox.js","sourceRoot":"","sources":["../../../src/components/listbox/listbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listbox.js","sourceRoot":"","sources":["../../../src/components/listbox/listbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
|
|
2
|
+
import { on } from '@remix-run/ui';
|
|
3
|
+
import { Menu, MenuItem, onMenuSelect } from '@remix-run/ui/menu';
|
|
4
|
+
/**
|
|
5
|
+
* @name Menu Event Bubbling
|
|
6
|
+
* @description Item-level handlers fire before the root handler, letting individual items intercept events while others bubble up.
|
|
7
|
+
*/
|
|
8
|
+
export default function Example() {
|
|
9
|
+
return () => (_jsxs(Menu, { label: "Project", menuLabel: "Project actions", mix: onMenuSelect((event) => {
|
|
10
|
+
console.log('Menu root handler:', event.item);
|
|
11
|
+
}), children: [_jsx(MenuItem, { name: "open", value: "open-project", children: "Open project" }), _jsx(MenuItem, { name: "rename", value: "rename-project", mix: onMenuSelect((event) => {
|
|
12
|
+
console.log('Menu item handler:', event.item);
|
|
13
|
+
}), children: "Rename project" }), _jsx(MenuItem, { name: "duplicate", value: "duplicate-project", children: "Duplicate project" })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=bubbling.demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bubbling.demo.js","sourceRoot":"","sources":["../../../../src/components/menu/demos/bubbling.demo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO,GAAG,EAAE,CAAC,CACX,MAAC,IAAI,IACH,KAAK,EAAC,SAAS,EACf,SAAS,EAAC,iBAAiB,EAC3B,GAAG,EAAE,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC/C,CAAC,CAAC,aAEF,KAAC,QAAQ,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc,6BAE/B,EACX,KAAC,QAAQ,IACP,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,gBAAgB,EACtB,GAAG,EAAE,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC/C,CAAC,CAAC,+BAGO,EACX,KAAC,QAAQ,IAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,mBAAmB,kCAEzC,IACN,CACR,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
|
|
2
|
+
import {} from '@remix-run/ui';
|
|
3
|
+
import { Menu, MenuItem, onMenuSelect, Submenu } from '@remix-run/ui/menu';
|
|
4
|
+
import { separatorStyle } from '@remix-run/ui/separator';
|
|
5
|
+
/**
|
|
6
|
+
* @name Menu Overview
|
|
7
|
+
* @description A hierarchical menu with checkboxes, radio groups, submenus, and separators.
|
|
8
|
+
*/
|
|
9
|
+
export default function Example(handle) {
|
|
10
|
+
let wordWrap = true;
|
|
11
|
+
let minimap = false;
|
|
12
|
+
let showGutter = true;
|
|
13
|
+
let density = 'comfortable';
|
|
14
|
+
return () => (_jsxs(Menu, { label: "View", menuLabel: "View options", mix: onMenuSelect((event) => {
|
|
15
|
+
switch (event.item.name) {
|
|
16
|
+
case 'wordWrap':
|
|
17
|
+
wordWrap = !wordWrap;
|
|
18
|
+
break;
|
|
19
|
+
case 'minimap':
|
|
20
|
+
minimap = !minimap;
|
|
21
|
+
break;
|
|
22
|
+
case 'showGutter':
|
|
23
|
+
showGutter = !showGutter;
|
|
24
|
+
break;
|
|
25
|
+
case 'density':
|
|
26
|
+
density = event.item.value;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
handle.update();
|
|
30
|
+
}), children: [_jsx(MenuItem, { name: "wordWrap", type: "checkbox", checked: wordWrap, children: "Word wrap" }), _jsx(MenuItem, { name: "minimap", type: "checkbox", checked: minimap, children: "Minimap" }), _jsx(MenuItem, { name: "showGutter", type: "checkbox", checked: showGutter, children: "Show gutter" }), _jsx("hr", { mix: separatorStyle }), _jsxs(Submenu, { label: "Zoom", children: [_jsx(MenuItem, { name: "zoomIn", value: "zoom-in", children: "Zoom In" }), _jsx(MenuItem, { name: "zoomOut", value: "zoom-out", children: "Zoom Out" }), _jsx(MenuItem, { name: "resetZoom", value: "reset-zoom", children: "Reset Zoom" })] }), _jsxs(Submenu, { label: "Density", children: [_jsx(MenuItem, { name: "density", type: "radio", value: "comfortable", checked: density === 'comfortable', children: "Comfortable" }), _jsx(MenuItem, { name: "density", type: "radio", value: "compact", checked: density === 'compact', children: "Compact" })] })] }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=overview.demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview.demo.js","sourceRoot":"","sources":["../../../../src/components/menu/demos/overview.demo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,MAAc;IAE5C,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,UAAU,GAAG,IAAI,CAAA;IACrB,IAAI,OAAO,GAAY,aAAa,CAAA;IAEpC,OAAO,GAAG,EAAE,CAAC,CACX,MAAC,IAAI,IACH,KAAK,EAAC,MAAM,EACZ,SAAS,EAAC,cAAc,EACxB,GAAG,EAAE,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,UAAU;oBACb,QAAQ,GAAG,CAAC,QAAQ,CAAA;oBACpB,MAAK;gBACP,KAAK,SAAS;oBACZ,OAAO,GAAG,CAAC,OAAO,CAAA;oBAClB,MAAK;gBACP,KAAK,YAAY;oBACf,UAAU,GAAG,CAAC,UAAU,CAAA;oBACxB,MAAK;gBACP,KAAK,SAAS;oBACZ,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAgB,CAAA;oBACrC,MAAK;YACT,CAAC;YACD,MAAM,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC,CAAC,aAEF,KAAC,QAAQ,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,QAAQ,0BAEhD,EACX,KAAC,QAAQ,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,OAAO,wBAE9C,EACX,KAAC,QAAQ,IAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,UAAU,4BAEpD,EAEX,aAAI,GAAG,EAAE,cAAc,GAAI,EAC3B,MAAC,OAAO,IAAC,KAAK,EAAC,MAAM,aACnB,KAAC,QAAQ,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,SAAS,wBAE5B,EACX,KAAC,QAAQ,IAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,UAAU,yBAE9B,EACX,KAAC,QAAQ,IAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAC,YAAY,2BAElC,IACH,EAEV,MAAC,OAAO,IAAC,KAAK,EAAC,SAAS,aACtB,KAAC,QAAQ,IACP,IAAI,EAAC,SAAS,EACd,IAAI,EAAC,OAAO,EACZ,KAAK,EAAC,aAAa,EACnB,OAAO,EAAE,OAAO,KAAK,aAAa,4BAGzB,EACX,KAAC,QAAQ,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,OAAO,KAAK,SAAS,wBAEzE,IACH,IACL,CACR,CAAA;AACH,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type CSSMixinDescriptor, type ElementProps, type Handle, type Props, type RemixNode } from '@remix-run/ui';
|
|
1
|
+
import { type CSSMixinDescriptor, type Dispatched, type ElementProps, type Handle, type Props, type RemixNode } from '@remix-run/ui';
|
|
2
2
|
import { type AnchorOptions } from '../anchor/anchor.ts';
|
|
3
3
|
import { type SearchValue } from '../../interactions/typeahead/typeahead-mixin.ts';
|
|
4
4
|
declare const MENU_SELECT_EVENT: "rmx:menu-select";
|
|
5
|
-
type MenuSelectHandler = (event: MenuSelectEvent, signal: AbortSignal) => void | Promise<void>;
|
|
5
|
+
type MenuSelectHandler<target extends HTMLElement> = (event: Dispatched<MenuSelectEvent, target>, signal: AbortSignal) => void | Promise<void>;
|
|
6
6
|
export declare const buttonStyle: CSSMixinDescriptor;
|
|
7
7
|
export declare const popoverStyle: CSSMixinDescriptor;
|
|
8
8
|
export declare const listStyle: CSSMixinDescriptor;
|
|
@@ -19,17 +19,8 @@ declare global {
|
|
|
19
19
|
type MenuItemType = 'item' | 'checkbox' | 'radio';
|
|
20
20
|
type CloseAnimation = 'fade' | 'none';
|
|
21
21
|
type OpenStrategy = 'first' | 'last' | 'list' | 'none';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Previous = 1,
|
|
25
|
-
First = 2,
|
|
26
|
-
Last = 3
|
|
27
|
-
}
|
|
28
|
-
declare enum State {
|
|
29
|
-
Idle = "idle",
|
|
30
|
-
Dismissing = "dismissing",
|
|
31
|
-
Selecting = "selecting"
|
|
32
|
-
}
|
|
22
|
+
type NavigationStrategy = 'next' | 'previous' | 'first' | 'last';
|
|
23
|
+
type State = 'idle' | 'dismissing' | 'selecting';
|
|
33
24
|
export interface MenuSelectItem {
|
|
34
25
|
checked?: boolean;
|
|
35
26
|
id: string;
|
|
@@ -143,7 +134,7 @@ export declare const list: <boundNode extends HTMLElement = HTMLElement>() => im
|
|
|
143
134
|
export { popoverMixin as popover };
|
|
144
135
|
export declare const submenuTrigger: <boundNode extends HTMLElement = HTMLElement>(options: SubmenuTriggerOptions) => import("@remix-run/ui").MixinDescriptor<boundNode, [options: SubmenuTriggerOptions], ElementProps>;
|
|
145
136
|
export declare const trigger: <boundNode extends HTMLElement = HTMLElement>(options?: MenuTriggerOptions | undefined) => import("@remix-run/ui").MixinDescriptor<boundNode, [options?: MenuTriggerOptions | undefined], ElementProps>;
|
|
146
|
-
export declare function onMenuSelect(handler: MenuSelectHandler
|
|
137
|
+
export declare function onMenuSelect<target extends HTMLElement>(handler: MenuSelectHandler<target>, captureBoolean?: boolean): import("@remix-run/ui").MixinDescriptor<target, ["rmx:menu-select", (event: import("../../runtime/event-listeners.ts").EnsureEvent<import("../../runtime/event-listeners.ts").EventMap<target>["rmx:menu-select"], target>, signal: AbortSignal) => void | Promise<void>, (boolean | undefined)?], ElementProps>;
|
|
147
138
|
export interface MenuProps extends Omit<Props<'button'>, 'children'> {
|
|
148
139
|
children?: RemixNode;
|
|
149
140
|
label: RemixNode;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
|
|
2
|
-
// @jsxRuntime classic
|
|
3
|
-
// @jsx createElement
|
|
4
2
|
import { attrs, createElement, createMixin, css, on, ref, } from '@remix-run/ui';
|
|
5
3
|
import {} from "../anchor/anchor.js";
|
|
6
4
|
import * as button from "../button/button.js";
|
|
@@ -182,19 +180,6 @@ export const itemSlotStyle = menuItemSlotCss;
|
|
|
182
180
|
export const itemLabelStyle = menuItemLabelCss;
|
|
183
181
|
export const itemGlyphStyle = menuItemGlyphCss;
|
|
184
182
|
export const triggerGlyphStyle = menuTriggerGlyphCss;
|
|
185
|
-
var NavigationStrategy;
|
|
186
|
-
(function (NavigationStrategy) {
|
|
187
|
-
NavigationStrategy[NavigationStrategy["Next"] = 0] = "Next";
|
|
188
|
-
NavigationStrategy[NavigationStrategy["Previous"] = 1] = "Previous";
|
|
189
|
-
NavigationStrategy[NavigationStrategy["First"] = 2] = "First";
|
|
190
|
-
NavigationStrategy[NavigationStrategy["Last"] = 3] = "Last";
|
|
191
|
-
})(NavigationStrategy || (NavigationStrategy = {}));
|
|
192
|
-
var State;
|
|
193
|
-
(function (State) {
|
|
194
|
-
State["Idle"] = "idle";
|
|
195
|
-
State["Dismissing"] = "dismissing";
|
|
196
|
-
State["Selecting"] = "selecting";
|
|
197
|
-
})(State || (State = {}));
|
|
198
183
|
export class MenuSelectEvent extends Event {
|
|
199
184
|
item;
|
|
200
185
|
constructor(item) {
|
|
@@ -262,7 +247,7 @@ function MenuProvider(handle) {
|
|
|
262
247
|
let items = [];
|
|
263
248
|
let listRef;
|
|
264
249
|
let open = false;
|
|
265
|
-
let state =
|
|
250
|
+
let state = 'idle';
|
|
266
251
|
let suppressNextPointerLeaveClear = false;
|
|
267
252
|
let surfaceRef;
|
|
268
253
|
let triggerId;
|
|
@@ -297,7 +282,7 @@ function MenuProvider(handle) {
|
|
|
297
282
|
focusNode(activeItem.node);
|
|
298
283
|
}
|
|
299
284
|
async function openMenu({ strategy = 'list', focus = strategy !== 'none', } = {}) {
|
|
300
|
-
if (state !==
|
|
285
|
+
if (state !== 'idle') {
|
|
301
286
|
return;
|
|
302
287
|
}
|
|
303
288
|
let updates = [];
|
|
@@ -336,10 +321,10 @@ function MenuProvider(handle) {
|
|
|
336
321
|
open = false;
|
|
337
322
|
if (animation === 'none') {
|
|
338
323
|
activeId = null;
|
|
339
|
-
state =
|
|
324
|
+
state = 'idle';
|
|
340
325
|
}
|
|
341
|
-
else if (wasOpen && state ===
|
|
342
|
-
state =
|
|
326
|
+
else if (wasOpen && state === 'idle') {
|
|
327
|
+
state = 'dismissing';
|
|
343
328
|
}
|
|
344
329
|
updates.push(handle.update());
|
|
345
330
|
}
|
|
@@ -355,8 +340,8 @@ function MenuProvider(handle) {
|
|
|
355
340
|
activeId = null;
|
|
356
341
|
shouldUpdate = true;
|
|
357
342
|
}
|
|
358
|
-
if (state !==
|
|
359
|
-
state =
|
|
343
|
+
if (state !== 'idle') {
|
|
344
|
+
state = 'idle';
|
|
360
345
|
shouldUpdate = true;
|
|
361
346
|
}
|
|
362
347
|
if (closeAnimation !== 'none') {
|
|
@@ -411,7 +396,7 @@ function MenuProvider(handle) {
|
|
|
411
396
|
}
|
|
412
397
|
}
|
|
413
398
|
function highlight(id, { focus = false } = {}) {
|
|
414
|
-
if (state !==
|
|
399
|
+
if (state !== 'idle') {
|
|
415
400
|
return;
|
|
416
401
|
}
|
|
417
402
|
let nextItem = id ? getItem(id) : undefined;
|
|
@@ -443,29 +428,29 @@ function MenuProvider(handle) {
|
|
|
443
428
|
});
|
|
444
429
|
}
|
|
445
430
|
function navigate(strategy) {
|
|
446
|
-
if (state !==
|
|
431
|
+
if (state !== 'idle') {
|
|
447
432
|
return;
|
|
448
433
|
}
|
|
449
434
|
let interactableItems = getInteractableItems();
|
|
450
435
|
let activeIndex = interactableItems.findIndex((item) => item.id === activeId);
|
|
451
436
|
let nextItem;
|
|
452
437
|
switch (strategy) {
|
|
453
|
-
case
|
|
438
|
+
case 'next':
|
|
454
439
|
nextItem =
|
|
455
440
|
activeIndex === -1
|
|
456
441
|
? interactableItems[0]
|
|
457
442
|
: (interactableItems[activeIndex + 1] ?? interactableItems[activeIndex]);
|
|
458
443
|
break;
|
|
459
|
-
case
|
|
444
|
+
case 'previous':
|
|
460
445
|
nextItem =
|
|
461
446
|
activeIndex === -1
|
|
462
447
|
? interactableItems[interactableItems.length - 1]
|
|
463
448
|
: interactableItems[activeIndex - 1];
|
|
464
449
|
break;
|
|
465
|
-
case
|
|
450
|
+
case 'first':
|
|
466
451
|
nextItem = interactableItems[0];
|
|
467
452
|
break;
|
|
468
|
-
case
|
|
453
|
+
case 'last':
|
|
469
454
|
nextItem = interactableItems[interactableItems.length - 1];
|
|
470
455
|
break;
|
|
471
456
|
}
|
|
@@ -474,7 +459,7 @@ function MenuProvider(handle) {
|
|
|
474
459
|
}
|
|
475
460
|
}
|
|
476
461
|
function highlightSearchMatch(text) {
|
|
477
|
-
if (state !==
|
|
462
|
+
if (state !== 'idle') {
|
|
478
463
|
return;
|
|
479
464
|
}
|
|
480
465
|
let interactableItems = getInteractableItems();
|
|
@@ -490,7 +475,7 @@ function MenuProvider(handle) {
|
|
|
490
475
|
}
|
|
491
476
|
}
|
|
492
477
|
async function activateItem(id) {
|
|
493
|
-
if (state !==
|
|
478
|
+
if (state !== 'idle') {
|
|
494
479
|
return;
|
|
495
480
|
}
|
|
496
481
|
let item = getItem(id);
|
|
@@ -502,7 +487,7 @@ function MenuProvider(handle) {
|
|
|
502
487
|
return;
|
|
503
488
|
}
|
|
504
489
|
let committedChecked = item.type === 'checkbox' ? !item.checked : item.type === 'radio' ? true : undefined;
|
|
505
|
-
state =
|
|
490
|
+
state = 'selecting';
|
|
506
491
|
activeId = item.id;
|
|
507
492
|
flashState = item.type === 'item' ? { id: item.id } : { checked: committedChecked, id: item.id };
|
|
508
493
|
let signal = await handle.update();
|
|
@@ -527,7 +512,7 @@ function MenuProvider(handle) {
|
|
|
527
512
|
return;
|
|
528
513
|
}
|
|
529
514
|
await closeAll();
|
|
530
|
-
state =
|
|
515
|
+
state = 'idle';
|
|
531
516
|
signal = await handle.update();
|
|
532
517
|
if (signal.aborted) {
|
|
533
518
|
return;
|
|
@@ -540,7 +525,7 @@ function MenuProvider(handle) {
|
|
|
540
525
|
await activateItem(activeId);
|
|
541
526
|
}
|
|
542
527
|
async function openActiveSubmenu() {
|
|
543
|
-
if (state !==
|
|
528
|
+
if (state !== 'idle') {
|
|
544
529
|
return;
|
|
545
530
|
}
|
|
546
531
|
if (!activeId) {
|
|
@@ -788,22 +773,22 @@ const listMixin = createMixin((handle) => {
|
|
|
788
773
|
case 'ArrowDown':
|
|
789
774
|
event.preventDefault();
|
|
790
775
|
event.stopPropagation();
|
|
791
|
-
context.navigate(
|
|
776
|
+
context.navigate('next');
|
|
792
777
|
return;
|
|
793
778
|
case 'ArrowUp':
|
|
794
779
|
event.preventDefault();
|
|
795
780
|
event.stopPropagation();
|
|
796
|
-
context.navigate(
|
|
781
|
+
context.navigate('previous');
|
|
797
782
|
return;
|
|
798
783
|
case 'Home':
|
|
799
784
|
event.preventDefault();
|
|
800
785
|
event.stopPropagation();
|
|
801
|
-
context.navigate(
|
|
786
|
+
context.navigate('first');
|
|
802
787
|
return;
|
|
803
788
|
case 'End':
|
|
804
789
|
event.preventDefault();
|
|
805
790
|
event.stopPropagation();
|
|
806
|
-
context.navigate(
|
|
791
|
+
context.navigate('last');
|
|
807
792
|
return;
|
|
808
793
|
case 'Enter':
|
|
809
794
|
case ' ':
|
|
@@ -971,7 +956,7 @@ const submenuTriggerMixin = createMixin((handle) => {
|
|
|
971
956
|
'aria-disabled': options.disabled ? 'true' : undefined,
|
|
972
957
|
'aria-expanded': childMenu.isOpen ? 'true' : 'false',
|
|
973
958
|
'aria-haspopup': 'menu',
|
|
974
|
-
'data-submenu-state': childMenu.state ===
|
|
959
|
+
'data-submenu-state': childMenu.state === 'idle' ? undefined : childMenu.state,
|
|
975
960
|
'data-highlighted': parent.activeId === handle.id ? 'true' : undefined,
|
|
976
961
|
}),
|
|
977
962
|
ref((node, signal) => {
|