@remix-run/ui 0.1.1 → 0.2.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.
- package/README.md +33 -10
- package/dist/animation/animate-layout-mixin.js +66 -66
- package/dist/animation/animate-layout-mixin.js.map +1 -1
- package/dist/animation/spring.d.ts +6 -35
- package/dist/animation/spring.js +9 -8
- package/dist/animation/spring.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts +7 -7
- 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.d.ts +1 -1
- 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 +86 -4
- package/dist/components/button/button.js +63 -3
- 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 +11 -11
- 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 +4 -9
- 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 +15 -24
- 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/popover/popover.d.ts +5 -5
- package/dist/components/popover/popover.js.map +1 -1
- 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 +11 -11
- package/dist/components/select/select.js +17 -26
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +6 -6
- package/dist/components/tabs/tabs.js +0 -2
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/interactions/keydown/keydown.d.ts +1 -1
- package/dist/interactions/outside-click/outside-click-mixin.d.ts +2 -1
- package/dist/interactions/typeahead/typeahead-mixin.d.ts +3 -1
- package/dist/runtime/component.d.ts +18 -12
- package/dist/runtime/component.js +93 -80
- package/dist/runtime/component.js.map +1 -1
- package/dist/runtime/core/attributes.d.ts +14 -0
- package/dist/runtime/core/attributes.js +103 -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 +170 -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 +20 -9
- package/dist/runtime/frame.d.ts +23 -2
- package/dist/runtime/frame.js +41 -47
- package/dist/runtime/frame.js.map +1 -1
- package/dist/runtime/jsx.d.ts +1 -1
- package/dist/runtime/jsx.js +2 -28
- package/dist/runtime/jsx.js.map +1 -1
- package/dist/runtime/mixins/link-mixin.d.ts +5 -1
- package/dist/runtime/mixins/link-mixin.js.map +1 -1
- package/dist/runtime/mixins/mixin.d.ts +2 -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/mixins/ref-mixin.d.ts +2 -1
- package/dist/runtime/mixins/ref-mixin.js.map +1 -1
- package/dist/runtime/navigation.js +9 -1
- package/dist/runtime/navigation.js.map +1 -1
- package/dist/runtime/reconcile.d.ts +1 -1
- package/dist/runtime/reconcile.js +452 -197
- 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.d.ts +10 -10
- package/dist/runtime/scheduler.js +1 -1
- 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/svg-attributes.js +1 -0
- package/dist/runtime/svg-attributes.js.map +1 -1
- package/dist/runtime/to-vnode.js +7 -11
- package/dist/runtime/to-vnode.js.map +1 -1
- package/dist/runtime/vnode.d.ts +11 -5
- package/dist/runtime/vnode.js +6 -3
- package/dist/runtime/vnode.js.map +1 -1
- package/dist/server/stream.d.ts +2 -0
- package/dist/server/stream.js +154 -114
- package/dist/server/stream.js.map +1 -1
- package/dist/style/css-mixin.d.ts +2 -1
- package/dist/style/css-mixin.js.map +1 -1
- package/dist/style/index.d.ts +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 +13 -11
- package/dist/style/stylesheet.js +69 -8
- package/dist/style/stylesheet.js.map +1 -1
- package/dist/theme/contract.d.ts +24 -222
- package/dist/theme/contract.js +2 -2
- package/dist/theme/contract.js.map +1 -1
- package/dist/theme/glyph-contract.d.ts +1 -3
- package/dist/theme/glyph-contract.js.map +1 -1
- package/dist/theme/presets/rmx-01/index.d.ts +4 -2
- package/dist/theme/presets/rmx-01/index.js.map +1 -1
- package/dist/theme/runtime.js +4 -1
- package/dist/theme/runtime.js.map +1 -1
- package/dist/utils/scroll-lock.d.ts +3 -3
- package/dist/utils/scroll-lock.js.map +1 -1
- package/package.json +3 -3
- package/src/animation/README.md +316 -0
- package/src/animation/animate-layout-mixin.ts +79 -71
- package/src/animation/spring.ts +21 -9
- package/src/components/accordion/README.md +166 -0
- package/src/components/accordion/accordion.tsx +14 -14
- 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/anchor/anchor.ts +1 -1
- package/src/components/breadcrumbs/README.md +55 -0
- package/src/components/breadcrumbs/breadcrumbs.tsx +1 -3
- 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 +118 -20
- 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/README.md +1 -1
- package/src/components/combobox/combobox.tsx +37 -21
- package/src/components/combobox/demos/overview.demo.tsx +199 -0
- package/src/components/glyph/README.md +72 -0
- package/src/components/glyph/glyph.tsx +2 -2
- package/src/components/listbox/README.md +115 -0
- package/src/components/listbox/demos/overview.demo.tsx +101 -0
- package/src/components/listbox/listbox.ts +106 -110
- 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 +61 -55
- package/src/components/popover/README.md +3 -3
- package/src/components/popover/demos/overview.demo.tsx +143 -0
- package/src/components/popover/popover.ts +90 -79
- 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 +53 -36
- package/src/components/tabs/tabs.tsx +10 -5
- package/src/index.ts +2 -1
- package/src/runtime/component.ts +122 -88
- package/src/runtime/core/attributes.ts +118 -0
- package/src/runtime/core/children.ts +42 -0
- package/src/runtime/core/props.ts +187 -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 +20 -9
- package/src/runtime/frame.ts +71 -55
- package/src/runtime/jsx.ts +3 -30
- package/src/runtime/mixins/link-mixin.ts +88 -86
- package/src/runtime/mixins/mixin.ts +18 -5
- package/src/runtime/mixins/on-mixin.ts +20 -12
- package/src/runtime/mixins/ref-mixin.ts +4 -5
- package/src/runtime/navigation.ts +10 -1
- package/src/runtime/reconcile.ts +563 -223
- package/src/runtime/run.ts +17 -1
- package/src/runtime/scheduler.ts +20 -20
- package/src/runtime/stream-protocol.ts +27 -0
- package/src/runtime/svg-attributes.ts +1 -0
- package/src/runtime/to-vnode.ts +7 -10
- package/src/runtime/vnode.ts +16 -9
- package/src/server/README.md +90 -0
- package/src/server/stream.ts +176 -124
- package/src/style/css-mixin.ts +6 -1
- package/src/style/index.ts +1 -2
- package/src/style/layers.ts +2 -0
- package/src/style/stylesheet.ts +88 -11
- package/src/test/README.md +107 -0
- package/src/test/utils.ts +3 -1
- package/src/theme/README.md +103 -0
- package/src/theme/contract.ts +37 -5
- package/src/theme/glyph-contract.ts +3 -1
- package/src/theme/presets/rmx-01/index.ts +4 -2
- package/src/theme/runtime.ts +4 -1
- package/src/utils/scroll-lock/README.md +33 -0
- package/src/utils/scroll-lock.ts +7 -3
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Handle } from '@remix-run/ui';
|
|
2
|
+
/**
|
|
3
|
+
* @name Combobox Overview
|
|
4
|
+
* @description A searchable combobox with keyboard navigation. Try typing airport names or codes like ord, lax, or jfk.
|
|
5
|
+
*/
|
|
6
|
+
export default function Example(handle: Handle): () => import("@remix-run/ui").RemixElement;
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
|
|
2
|
+
import { css } from '@remix-run/ui';
|
|
3
|
+
import { Combobox, ComboboxOption, onComboboxChange } from '@remix-run/ui/combobox';
|
|
4
|
+
import { theme } from '@remix-run/ui/theme';
|
|
5
|
+
/**
|
|
6
|
+
* @name Combobox Overview
|
|
7
|
+
* @description A searchable combobox with keyboard navigation. Try typing airport names or codes like ord, lax, or jfk.
|
|
8
|
+
*/
|
|
9
|
+
export default function Example(handle) {
|
|
10
|
+
let value = null;
|
|
11
|
+
return () => (_jsxs("div", { mix: stackCss, children: [_jsxs("div", { mix: fieldCss, children: [_jsx("label", { for: "airport-combobox", mix: labelCss, children: "Airport" }), _jsx(Combobox, { inputId: "airport-combobox", mix: [
|
|
12
|
+
comboboxCss,
|
|
13
|
+
onComboboxChange((event) => {
|
|
14
|
+
value = event.value;
|
|
15
|
+
void handle.update();
|
|
16
|
+
}),
|
|
17
|
+
], name: "airport", placeholder: "Search airports or codes", children: airportOptions.map((airport) => (_jsx(ComboboxOption, { disabled: airport.disabled, label: airport.label, searchValue: airport.searchValue, value: airport.value }, airport.value))) }), _jsx("div", { mix: helpCss, children: "Try typing `san`, `wash`, or airport codes like `ord`, `lax`, or `jfk`, then use ArrowDown and Enter." })] }), _jsx("p", { mix: valueCss, children: `value=${value ?? 'null'}` })] }));
|
|
18
|
+
}
|
|
19
|
+
const airportOptions = [
|
|
20
|
+
{
|
|
21
|
+
label: 'Hartsfield-Jackson Atlanta International',
|
|
22
|
+
searchValue: ['atl', 'atlanta', 'hartsfield-jackson atlanta international'],
|
|
23
|
+
value: 'ATL',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: 'Austin-Bergstrom International',
|
|
27
|
+
searchValue: ['aus', 'austin', 'austin-bergstrom international'],
|
|
28
|
+
value: 'AUS',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: 'Boston Logan International',
|
|
32
|
+
searchValue: ['bos', 'boston', 'boston logan international'],
|
|
33
|
+
value: 'BOS',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
label: 'Baltimore/Washington International',
|
|
37
|
+
searchValue: ['bwi', 'baltimore', 'washington', 'baltimore/washington international'],
|
|
38
|
+
value: 'BWI',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: 'Ronald Reagan Washington National',
|
|
42
|
+
searchValue: ['dca', 'reagan', 'washington', 'ronald reagan washington national'],
|
|
43
|
+
value: 'DCA',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
label: 'Denver International',
|
|
47
|
+
searchValue: ['den', 'denver', 'denver international'],
|
|
48
|
+
value: 'DEN',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: 'Dallas/Fort Worth International',
|
|
52
|
+
searchValue: ['dfw', 'dallas', 'fort worth', 'dallas/fort worth international'],
|
|
53
|
+
value: 'DFW',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
label: 'Newark Liberty International',
|
|
57
|
+
searchValue: ['ewr', 'newark', 'newark liberty international'],
|
|
58
|
+
value: 'EWR',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
label: 'Daniel K. Inouye International',
|
|
62
|
+
searchValue: ['hnl', 'honolulu', 'daniel k. inouye international'],
|
|
63
|
+
value: 'HNL',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
label: 'Washington Dulles International',
|
|
67
|
+
searchValue: ['iad', 'dulles', 'washington', 'washington dulles international'],
|
|
68
|
+
value: 'IAD',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
label: 'John F. Kennedy International',
|
|
72
|
+
searchValue: ['jfk', 'kennedy', 'new york', 'john f. kennedy international'],
|
|
73
|
+
value: 'JFK',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
label: 'Harry Reid International',
|
|
77
|
+
searchValue: ['las', 'las vegas', 'harry reid international'],
|
|
78
|
+
value: 'LAS',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
label: 'Los Angeles International',
|
|
82
|
+
searchValue: ['lax', 'los angeles', 'los angeles international'],
|
|
83
|
+
value: 'LAX',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
label: 'Orlando International',
|
|
87
|
+
searchValue: ['mco', 'orlando', 'orlando international'],
|
|
88
|
+
value: 'MCO',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
label: 'Miami International',
|
|
92
|
+
searchValue: ['mia', 'miami', 'miami international'],
|
|
93
|
+
value: 'MIA',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
label: "Chicago O'Hare International",
|
|
97
|
+
searchValue: ['ord', 'ohare', 'chicago', "chicago o'hare international"],
|
|
98
|
+
value: 'ORD',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
label: 'Portland International',
|
|
102
|
+
searchValue: ['pdx', 'portland', 'portland international'],
|
|
103
|
+
value: 'PDX',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
label: 'San Diego International',
|
|
107
|
+
searchValue: ['san', 'san diego', 'san diego international'],
|
|
108
|
+
value: 'SAN',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
label: 'San Francisco International',
|
|
112
|
+
searchValue: ['sfo', 'san francisco', 'san francisco international'],
|
|
113
|
+
value: 'SFO',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
disabled: true,
|
|
117
|
+
label: 'San Jose Mineta International',
|
|
118
|
+
searchValue: ['sjc', 'san jose', 'san jose mineta international'],
|
|
119
|
+
value: 'SJC',
|
|
120
|
+
},
|
|
121
|
+
];
|
|
122
|
+
const comboboxCss = css({
|
|
123
|
+
width: '16rem',
|
|
124
|
+
});
|
|
125
|
+
const stackCss = css({
|
|
126
|
+
display: 'flex',
|
|
127
|
+
flexDirection: 'column',
|
|
128
|
+
gap: theme.space.sm,
|
|
129
|
+
width: '100%',
|
|
130
|
+
});
|
|
131
|
+
const fieldCss = css({
|
|
132
|
+
display: 'flex',
|
|
133
|
+
flexDirection: 'column',
|
|
134
|
+
gap: theme.space.xs,
|
|
135
|
+
});
|
|
136
|
+
const labelCss = css({
|
|
137
|
+
margin: 0,
|
|
138
|
+
fontSize: theme.fontSize.xs,
|
|
139
|
+
fontWeight: theme.fontWeight.semibold,
|
|
140
|
+
color: theme.colors.text.primary,
|
|
141
|
+
});
|
|
142
|
+
const helpCss = css({
|
|
143
|
+
fontSize: theme.fontSize.xs,
|
|
144
|
+
lineHeight: theme.lineHeight.relaxed,
|
|
145
|
+
color: theme.colors.text.secondary,
|
|
146
|
+
});
|
|
147
|
+
const valueCss = css({
|
|
148
|
+
margin: 0,
|
|
149
|
+
fontFamily: theme.fontFamily.mono,
|
|
150
|
+
fontSize: theme.fontSize.xs,
|
|
151
|
+
color: theme.colors.text.secondary,
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=overview.demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview.demo.js","sourceRoot":"","sources":["../../../../src/components/combobox/demos/overview.demo.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type Handle } from '@remix-run/ui';
|
|
2
|
+
/**
|
|
3
|
+
* @name Listbox Overview
|
|
4
|
+
* @description A keyboard-navigable listbox with selection, highlighting, and an optional flash-selection animation.
|
|
5
|
+
*/
|
|
6
|
+
export default function Example(handle: Handle): () => import("@remix-run/ui").RemixElement;
|
|
@@ -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
|
-
import { type CSSMixinDescriptor, type Handle, type RemixNode } from '@remix-run/ui';
|
|
1
|
+
import { type CSSMixinDescriptor, type ElementProps, type Handle, type MixinFactory, 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;
|
|
@@ -62,6 +57,6 @@ export interface ListboxOption {
|
|
|
62
57
|
textValue?: SearchValue;
|
|
63
58
|
}
|
|
64
59
|
export declare const Context: typeof ListboxProvider;
|
|
65
|
-
export declare const list: <
|
|
66
|
-
export declare const option: <
|
|
60
|
+
export declare const list: MixinFactory<HTMLElement, [], ElementProps>;
|
|
61
|
+
export declare const option: MixinFactory<HTMLElement, [option: Omit<ListboxOption, "id">], ElementProps>;
|
|
67
62
|
export {};
|
|
@@ -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 { on, type CSSMixinDescriptor, type Dispatched, type ElementProps, type Handle, type MixinFactory, 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;
|
|
@@ -132,18 +123,18 @@ interface MenuContextValue {
|
|
|
132
123
|
unregisterSurface: (node: HTMLElement) => void;
|
|
133
124
|
unregisterTrigger: (node: HTMLElement) => void;
|
|
134
125
|
}
|
|
135
|
-
declare function MenuProvider(handle: Handle<MenuProviderProps, MenuContextValue>): () =>
|
|
136
|
-
declare const popoverMixin: <
|
|
126
|
+
declare function MenuProvider(handle: Handle<MenuProviderProps, MenuContextValue>): () => RemixNode;
|
|
127
|
+
declare const popoverMixin: MixinFactory<HTMLElement, [], ElementProps>;
|
|
137
128
|
export interface MenuListProps extends Props<'div'> {
|
|
138
129
|
}
|
|
139
130
|
type MenuListChildProps = Omit<JSX.LibraryManagedAttributes<typeof MenuList, MenuListProps>, 'children'>;
|
|
140
131
|
export declare const Context: typeof MenuProvider;
|
|
141
|
-
export declare const item: <
|
|
142
|
-
export declare const list: <
|
|
132
|
+
export declare const item: MixinFactory<HTMLElement, [options: MenuItemOptions], ElementProps>;
|
|
133
|
+
export declare const list: MixinFactory<HTMLElement, [], ElementProps>;
|
|
143
134
|
export { popoverMixin as popover };
|
|
144
|
-
export declare const submenuTrigger: <
|
|
145
|
-
export declare const trigger: <
|
|
146
|
-
export declare function onMenuSelect(handler: MenuSelectHandler
|
|
135
|
+
export declare const submenuTrigger: MixinFactory<HTMLElement, [options: SubmenuTriggerOptions], ElementProps>;
|
|
136
|
+
export declare const trigger: MixinFactory<HTMLElement, [options?: MenuTriggerOptions | undefined], ElementProps>;
|
|
137
|
+
export declare function onMenuSelect<target extends HTMLElement>(handler: MenuSelectHandler<target>, captureBoolean?: boolean): ReturnType<typeof on<target, typeof MENU_SELECT_EVENT>>;
|
|
147
138
|
export interface MenuProps extends Omit<Props<'button'>, 'children'> {
|
|
148
139
|
children?: RemixNode;
|
|
149
140
|
label: RemixNode;
|
|
@@ -158,7 +149,7 @@ export interface SubmenuProps extends Omit<Props<'div'>, 'children' | 'name' | '
|
|
|
158
149
|
listProps?: MenuListChildProps;
|
|
159
150
|
menuLabel?: string;
|
|
160
151
|
}
|
|
161
|
-
export declare function Menu(handle: Handle<MenuProps>): () =>
|
|
162
|
-
export declare function MenuList(handle: Handle<MenuListProps>): () =>
|
|
163
|
-
export declare function MenuItem(handle: Handle<MenuItemProps>): () =>
|
|
164
|
-
export declare function Submenu(handle: Handle<SubmenuProps>): () =>
|
|
152
|
+
export declare function Menu(handle: Handle<MenuProps>): () => RemixNode;
|
|
153
|
+
export declare function MenuList(handle: Handle<MenuListProps>): () => RemixNode;
|
|
154
|
+
export declare function MenuItem(handle: Handle<MenuItemProps>): () => RemixNode;
|
|
155
|
+
export declare function Submenu(handle: Handle<SubmenuProps>): () => RemixNode;
|