@bento/listbox 0.2.1 → 0.2.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/dist/index.d.ts DELETED
@@ -1,264 +0,0 @@
1
- import React, { ReactNode } from 'react';
2
- import { Slots } from '@bento/slots';
3
- import { LinkDOMProps, HoverEvents, Key } from '@react-types/shared';
4
- import { SelectionBehavior, ListState, Orientation } from 'react-stately';
5
- import { AriaListBoxProps } from '@react-types/listbox';
6
- export { Collection } from '@react-aria/collections';
7
-
8
- /**
9
- * Props for the Header component.
10
- * @interface HeaderProps
11
- */
12
- interface HeaderProps extends Slots, React.ComponentProps<'header'> {
13
- /**
14
- * The children of the header.
15
- */
16
- readonly children?: React.ReactNode;
17
- }
18
- /**
19
- * Context value structure for Header components.
20
- * Extends HTML attributes to support all standard header element properties.
21
- * @interface HeaderContextValue
22
- */
23
- interface HeaderContextValue extends React.HTMLAttributes<HTMLElement> {
24
- /**
25
- * Reference to the header element for forwarding.
26
- */
27
- readonly ref?: React.RefObject<HTMLDivElement>;
28
- }
29
- /**
30
- * React context for providing header-related attributes and refs to Header components.
31
- * Used internally by ListBoxSection to pass heading props to Header elements.
32
- * @public
33
- */
34
- declare const HeaderContext: React.Context<HeaderContextValue>;
35
- /**
36
- * A Header component for section headings within a ListBox.
37
- * Provides semantic header structure with proper accessibility attributes
38
- * and integrates with React Aria's collection system for automatic handling.
39
- *
40
- * This is the main public interface for creating headers in ListBox sections.
41
- * It automatically receives heading props from the parent ListBoxSection via HeaderContext.
42
- *
43
- * @component
44
- * @example
45
- * ```tsx
46
- * <ListBoxSection>
47
- * <Header>Fruits</Header>
48
- * <ListBoxItem>Apple</ListBoxItem>
49
- * <ListBoxItem>Banana</ListBoxItem>
50
- * </ListBoxSection>
51
- * ```
52
- * @public
53
- */
54
- declare const Header: React.ForwardRefExoticComponent<HeaderProps & React.RefAttributes<HTMLElement>>;
55
-
56
- /**
57
- * Render props provided to ListBoxItem render functions.
58
- * @interface ListBoxItemRenderProps
59
- */
60
- interface ListBoxItemRenderProps {
61
- /**
62
- * Whether the item is currently hovered.
63
- * @selector [data-hovered]
64
- */
65
- readonly isHovered: boolean;
66
- /**
67
- * Whether the item is currently pressed.
68
- * @selector [data-pressed]
69
- */
70
- readonly isPressed: boolean;
71
- /**
72
- * Whether the item is currently selected.
73
- * @selector [data-selected]
74
- */
75
- readonly isSelected: boolean;
76
- /**
77
- * Whether the item is currently focused.
78
- * @selector [data-focused]
79
- */
80
- readonly isFocused: boolean;
81
- /**
82
- * Whether the item is currently keyboard focused.
83
- * @selector [data-focus-visible]
84
- */
85
- readonly isFocusVisible: boolean;
86
- /**
87
- * Whether the item is disabled.
88
- * @selector [data-disabled]
89
- */
90
- readonly isDisabled: boolean;
91
- /**
92
- * The type of selection that is allowed in the collection.
93
- * @selector [data-selection-mode="none | single | multiple"]
94
- */
95
- readonly selectionMode: 'none' | 'single' | 'multiple';
96
- /**
97
- * The selection behavior for the collection.
98
- * @selector [data-selection-behavior="toggle | replace"]
99
- */
100
- readonly selectionBehavior: 'toggle' | 'replace';
101
- }
102
- /**
103
- * Props for the ListBoxItem component.
104
- * @interface ListBoxItemProps
105
- * @template T The type of the item value
106
- */
107
- interface ListBoxItemProps<T = object> extends LinkDOMProps, HoverEvents, Omit<React.HTMLAttributes<HTMLElement>, keyof LinkDOMProps | keyof HoverEvents | 'id' | 'children'> {
108
- /** The unique id of the item. If not provided, React Aria will auto-generate one. */
109
- readonly id?: Key;
110
- /** The object value that this item represents. When using dynamic collections, this is set automatically. */
111
- readonly value?: T;
112
- /** A string representation of the item's contents, used for features like typeahead. If not provided, React Aria will derive it from children automatically. */
113
- readonly textValue?: string;
114
- /**
115
- * Handler that is called when a user performs an action on the item. The exact user event depends on the
116
- * collection's `selectionBehavior` prop and the interaction modality.
117
- */
118
- readonly onAction?: () => void;
119
- /** The contents of the item. Can be a render function that receives render props. */
120
- readonly children?: ReactNode | ((values: ListBoxItemRenderProps) => ReactNode);
121
- /**
122
- * A slot name for the component. Used by Bento's slot system.
123
- */
124
- readonly slot?: string;
125
- /** Whether the item is disabled. */
126
- readonly isDisabled?: boolean;
127
- }
128
- /**
129
- * A single item within a ListBox component.
130
- * Handles user interactions, accessibility, and state management for individual options.
131
- *
132
- * @component
133
- * @template T The type of the item value
134
- * @example
135
- * ```tsx
136
- * <ListBoxItem>Simple option</ListBoxItem>
137
- * ```
138
- * @public
139
- */
140
- declare const ListBoxItem: <T extends object>(props: ListBoxItemProps<T> & React.RefAttributes<T>) => React.ReactElement | null;
141
-
142
- /**
143
- * Render props provided to ListBox render functions and empty state renderers.
144
- * @interface ListBoxRenderProps
145
- */
146
- interface ListBoxRenderProps {
147
- /**
148
- * Whether the listbox has no items and should display its empty state.
149
- * @selector [data-empty]
150
- */
151
- readonly isEmpty: boolean;
152
- /**
153
- * Whether the listbox is currently focused.
154
- * @selector [data-focused]
155
- */
156
- readonly isFocused: boolean;
157
- /**
158
- * Whether the listbox is currently keyboard focused.
159
- * @selector [data-focus-visible]
160
- */
161
- readonly isFocusVisible: boolean;
162
- /**
163
- * Whether the listbox is currently the active drop target.
164
- * @selector [data-drop-target]
165
- */
166
- readonly isDropTarget: boolean;
167
- /**
168
- * Whether the items are arranged in a stack or grid.
169
- * @selector [data-layout="stack | grid"]
170
- */
171
- readonly layout?: 'stack' | 'grid';
172
- /**
173
- * State of the listbox.
174
- */
175
- readonly state: ListState<unknown>;
176
- /**
177
- * The items array when using dynamic collections.
178
- */
179
- readonly items?: Iterable<unknown>;
180
- }
181
- /**
182
- * Props for the ListBox component.
183
- * @interface ListBoxProps
184
- * @template T The type of items in the collection
185
- */
186
- interface ListBoxProps<T> extends Omit<AriaListBoxProps<T>, 'label' | 'children'>, Omit<React.ComponentProps<'div'>, keyof AriaListBoxProps<T> | 'children'>, Slots {
187
- /**
188
- * How multiple selection should behave in the collection.
189
- */
190
- readonly selectionBehavior?: SelectionBehavior;
191
- /**
192
- * Provides content to display when there are no items in the list.
193
- */
194
- readonly renderEmptyState?: (props: ListBoxRenderProps) => React.ReactNode;
195
- /**
196
- * Whether the items are arranged in a stack layout.
197
- * @default 'stack'
198
- */
199
- readonly layout?: 'stack';
200
- /**
201
- * The primary orientation of the items. Usually this is the direction that the collection scrolls.
202
- * @default 'vertical'
203
- */
204
- readonly orientation?: Orientation;
205
- /**
206
- * Static children or render function for the ListBox.
207
- * When items prop is provided, children receives individual items for React Aria compatibility.
208
- * When no items prop is provided, children receives Bento render props { isEmpty, isFocused, state, etc. }.
209
- */
210
- readonly children?: React.ReactNode | ((item: T) => React.ReactNode) | ((props: ListBoxRenderProps) => React.ReactNode);
211
- }
212
- /**
213
- * A complete ListBox component providing accessible selection lists with keyboard navigation.
214
- * Supports both static children and dynamic collections, with single/multiple selection modes.
215
- * Built on React Aria with full ARIA compliance and keyboard accessibility.
216
- *
217
- * @component
218
- * @example
219
- * ```tsx
220
- * <ListBox aria-label="Fruits" selectionMode="single">
221
- * <ListBoxItem id="apple" textValue="Apple">Apple</ListBoxItem>
222
- * <ListBoxItem id="banana" textValue="Banana">Banana</ListBoxItem>
223
- * </ListBox>
224
- * ```
225
- * @public
226
- */
227
- declare const ListBox: React.MemoExoticComponent<React.ComponentType<ListBoxProps<unknown> & Slots>>;
228
-
229
- /**
230
- * Props for the ListBoxSection component.
231
- * @interface ListBoxSectionProps
232
- */
233
- interface ListBoxSectionProps extends Omit<React.ComponentProps<'section'>, 'title'> {
234
- /**
235
- * A slot name for the component. Used by Bento's slot system.
236
- */
237
- readonly slot?: string;
238
- /**
239
- * The title of the section.
240
- */
241
- readonly title?: React.ReactNode;
242
- /**
243
- * The children of the section.
244
- */
245
- readonly children?: React.ReactNode;
246
- }
247
- /**
248
- * A section component for organizing related items within a ListBox.
249
- *
250
- * @component
251
- * @example
252
- * ```tsx
253
- * <ListBoxSection title="Fruits">
254
- * <ListBoxItem>Apple</ListBoxItem>
255
- * <ListBoxItem>Banana</ListBoxItem>
256
- * </ListBoxSection>
257
- * ```
258
- * @public
259
- */
260
- declare const ListBoxSection: <_T extends object>(props: ListBoxSectionProps & {
261
- children?: React.ReactNode;
262
- }) => React.ReactElement;
263
-
264
- export { Header, HeaderContext, type HeaderProps, ListBox, ListBoxItem, type ListBoxItemProps, type ListBoxItemRenderProps, type ListBoxProps, type ListBoxRenderProps, ListBoxSection, type ListBoxSectionProps };
package/dist/index.js DELETED
@@ -1,367 +0,0 @@
1
- import React4, { createContext, useContext, useRef, useMemo, useEffect } from 'react';
2
- import { createLeafComponent, createBranchComponent, CollectionBuilder, Collection } from '@react-aria/collections';
3
- export { Collection } from '@react-aria/collections';
4
- import { useProps } from '@bento/use-props';
5
- import { withSlots } from '@bento/slots';
6
- import { useListBoxSection, mergeProps, useOption, useHover, useLocale, useCollator, useListBox, useFocusRing, FocusScope, ListKeyboardDelegate } from 'react-aria';
7
- import { useDataAttributes } from '@bento/use-data-attributes';
8
- import { useListState } from 'react-stately';
9
- import { CollectionRendererContext } from 'react-aria-components';
10
-
11
- // src/header.tsx
12
- var HeaderContext = createContext({});
13
- var BentoHeaderImpl = withSlots(
14
- "BentoHeader",
15
- function BentoHeader(props, ref) {
16
- const { props: processedProps, apply } = useProps(props);
17
- const contextProps = useContext(HeaderContext);
18
- const appliedUserProps = apply(processedProps);
19
- const composed = {
20
- ...contextProps,
21
- ...appliedUserProps
22
- // User props take precedence over context
23
- };
24
- return /* @__PURE__ */ React4.createElement("header", { ...composed, ref: contextProps.ref || ref }, processedProps.children);
25
- }
26
- );
27
- function HeaderWrapper(props, ref) {
28
- return /* @__PURE__ */ React4.createElement(BentoHeaderImpl, { ...props, ref });
29
- }
30
- var HeaderBase = createLeafComponent("header", HeaderWrapper);
31
- var Header = HeaderBase;
32
- var BentoListBoxSectionImpl = withSlots("BentoListBoxSection", function BentoListBoxSectionImpl2({ __node, children, title: titleProp, ...rest }, ref) {
33
- const { props, apply } = useProps(rest);
34
- const data = useDataAttributes({ level: __node?.level });
35
- const headingRef = useRef(null);
36
- const title = titleProp ?? props.title ?? __node?.rendered;
37
- const { groupProps, headingProps } = useListBoxSection({
38
- heading: title,
39
- "aria-label": props["aria-label"]
40
- });
41
- const composed = mergeProps(apply({ ...data, ...props }, ["children", "title", "slot"]), groupProps);
42
- const sectionContent = children || props.children;
43
- return /* @__PURE__ */ React4.createElement("section", { ...composed, ref }, /* @__PURE__ */ React4.createElement(HeaderContext.Provider, { value: { ...headingProps, ref: headingRef } }, title && /* @__PURE__ */ React4.createElement("div", { ...headingProps }, title), sectionContent));
44
- });
45
- function ListBoxSectionWrapper(props, ref, section) {
46
- return /* @__PURE__ */ React4.createElement(BentoListBoxSectionImpl, { ...props, __node: section, ref });
47
- }
48
- var ListBoxSectionBase = createBranchComponent("section", ListBoxSectionWrapper);
49
- var ListBoxSectionInner = function ListBoxSectionInner2({ section }) {
50
- const state = useContext(ListStateContext);
51
- const { CollectionBranch } = useContext(CollectionRendererContext);
52
- return /* @__PURE__ */ React4.createElement(BentoListBoxSectionImpl, { ...section.props, __node: section }, CollectionBranch && state?.collection ? /* @__PURE__ */ React4.createElement(CollectionBranch, { collection: state.collection, parent: section }) : null);
53
- };
54
- var ListBoxSection = ListBoxSectionBase;
55
- function useSafeObjectRef(ref) {
56
- const internalRef = useRef(null);
57
- useEffect(function updateForwardedRef() {
58
- const current = internalRef.current;
59
- if (typeof ref === "function") {
60
- ref(current);
61
- } else if (ref && "current" in ref) {
62
- try {
63
- ref.current = current;
64
- } catch {
65
- }
66
- }
67
- });
68
- return internalRef;
69
- }
70
-
71
- // src/listbox.tsx
72
- var ListStateContext = createContext(null);
73
- function useListBoxState(props) {
74
- const contextState = useContext(ListStateContext);
75
- const stateProps = {
76
- ...props,
77
- children: void 0,
78
- items: void 0
79
- };
80
- const state = contextState ?? useListState(stateProps);
81
- return { state, contextState };
82
- }
83
- function renderWithOptionalContext(content, state, contextState) {
84
- return contextState ? content : /* @__PURE__ */ React4.createElement(ListStateContext.Provider, { value: state }, content);
85
- }
86
- function useKeyboardDelegate({
87
- collection,
88
- collator,
89
- listBoxRef,
90
- selectionManager,
91
- layout,
92
- orientation,
93
- direction,
94
- keyboardDelegate: providedDelegate
95
- }) {
96
- const { disabledBehavior, disabledKeys } = selectionManager;
97
- return useMemo(
98
- function createKeyboardDelegate() {
99
- return providedDelegate || new ListKeyboardDelegate({
100
- collection,
101
- collator,
102
- ref: listBoxRef,
103
- disabledKeys,
104
- disabledBehavior,
105
- layout,
106
- orientation,
107
- direction
108
- });
109
- },
110
- [collection, collator, listBoxRef, selectionManager, orientation, direction, layout, providedDelegate]
111
- );
112
- }
113
- function useListBoxDataAttributes({
114
- isEmpty,
115
- isFocused,
116
- isFocusVisible,
117
- layout,
118
- orientation,
119
- selectionManager,
120
- allowsTabNavigation,
121
- shouldFocusWrap,
122
- originalSelectionBehavior
123
- }) {
124
- return useDataAttributes({
125
- empty: isEmpty,
126
- focused: isFocused,
127
- "focus-visible": isFocusVisible,
128
- layout,
129
- orientation,
130
- "selection-mode": selectionManager.selectionMode !== "none" ? selectionManager.selectionMode : void 0,
131
- "selection-behavior": originalSelectionBehavior !== void 0 ? selectionManager.selectionBehavior : void 0,
132
- "allows-tab-navigation": allowsTabNavigation,
133
- "focus-wrap": shouldFocusWrap
134
- });
135
- }
136
- function useComposedProps({
137
- otherProps,
138
- renderValues,
139
- listBoxProps,
140
- focusProps,
141
- dataAttributes,
142
- selectionManager,
143
- listBoxRef
144
- }) {
145
- const { apply } = useProps(otherProps, renderValues);
146
- const propsToExclude = [
147
- "renderEmptyState",
148
- "selectionMode",
149
- "defaultSelectedKeys",
150
- "disabledKeys",
151
- "disallowEmptySelection",
152
- "shouldFocusWrap",
153
- "items",
154
- "children",
155
- "selectionBehavior",
156
- "keyboardDelegate"
157
- ];
158
- const appliedUserProps = apply(otherProps, propsToExclude);
159
- const baseProps = {
160
- ...mergeProps(listBoxProps, focusProps),
161
- ...dataAttributes,
162
- ...selectionManager.selectionMode !== "none" && {
163
- "aria-multiselectable": selectionManager.selectionMode === "multiple"
164
- }
165
- };
166
- const finalProps = {
167
- ...baseProps,
168
- ...appliedUserProps,
169
- ref: listBoxRef
170
- // Set ref directly to avoid extensibility issues
171
- };
172
- return finalProps;
173
- }
174
- function renderEmptyState(renderEmptyStateFn, renderValues) {
175
- if (typeof renderEmptyStateFn === "function") {
176
- return renderEmptyStateFn(renderValues);
177
- }
178
- return renderEmptyStateFn;
179
- }
180
- function renderCollectionItems(collection) {
181
- return [...collection].map(function renderCollectionItem(item) {
182
- return item.type === "section" ? /* @__PURE__ */ React4.createElement(ListBoxSectionInner, { key: item.key, section: item }) : /* @__PURE__ */ React4.createElement(ListBoxItemImpl, { key: item.key, __node: item }, item.rendered);
183
- });
184
- }
185
- function renderListBoxContent({
186
- children,
187
- items,
188
- isEmpty,
189
- renderEmptyStateProp,
190
- renderValues,
191
- collection
192
- }) {
193
- const hasRenderChildren = typeof children === "function" && !items;
194
- if (hasRenderChildren) {
195
- return children(renderValues);
196
- }
197
- if (isEmpty && renderEmptyStateProp) {
198
- return renderEmptyState(renderEmptyStateProp, renderValues);
199
- }
200
- return renderCollectionItems(collection);
201
- }
202
- var ListBoxInner = function ListBoxInner2({
203
- state,
204
- renderEmptyState: renderEmptyStateProp,
205
- children,
206
- items,
207
- listBoxRef,
208
- ...otherProps
209
- }) {
210
- const { layout = "stack", orientation = "vertical", shouldSelectOnPressUp, selectionBehavior } = otherProps;
211
- const { collection, selectionManager } = state;
212
- const { direction } = useLocale();
213
- const collator = useCollator({ usage: "search", sensitivity: "base" });
214
- const keyboardDelegate = useKeyboardDelegate({
215
- collection,
216
- collator,
217
- listBoxRef,
218
- selectionManager,
219
- layout,
220
- orientation,
221
- direction,
222
- keyboardDelegate: otherProps.keyboardDelegate
223
- });
224
- const { listBoxProps } = useListBox(
225
- {
226
- ...otherProps,
227
- shouldSelectOnPressUp,
228
- keyboardDelegate
229
- },
230
- state,
231
- listBoxRef
232
- );
233
- const { focusProps, isFocused, isFocusVisible } = useFocusRing();
234
- const isEmpty = state.collection.size === 0;
235
- const renderValues = {
236
- isEmpty,
237
- isFocused,
238
- isFocusVisible,
239
- isDropTarget: false,
240
- layout,
241
- state,
242
- items
243
- };
244
- const dataAttributes = useListBoxDataAttributes({
245
- isEmpty,
246
- isFocused,
247
- isFocusVisible,
248
- layout,
249
- orientation,
250
- selectionManager,
251
- allowsTabNavigation: otherProps.allowsTabNavigation,
252
- shouldFocusWrap: otherProps.shouldFocusWrap,
253
- originalSelectionBehavior: selectionBehavior
254
- });
255
- const composedProps = useComposedProps({
256
- otherProps,
257
- renderValues,
258
- listBoxProps,
259
- focusProps,
260
- dataAttributes,
261
- selectionManager,
262
- listBoxRef
263
- });
264
- return /* @__PURE__ */ React4.createElement(FocusScope, null, /* @__PURE__ */ React4.createElement("div", { ...composedProps }, renderListBoxContent({
265
- children,
266
- items,
267
- isEmpty,
268
- renderEmptyStateProp,
269
- renderValues,
270
- collection
271
- })));
272
- };
273
- function ListBoxComponent(args, ref) {
274
- return /* @__PURE__ */ React4.createElement(CollectionBuilder, { content: /* @__PURE__ */ React4.createElement(Collection, { ...args }) }, function buildCollection(collection) {
275
- return /* @__PURE__ */ React4.createElement(StandaloneListBox, { props: args, listBoxRef: ref, collection });
276
- });
277
- }
278
- var StandaloneListBox = function StandaloneListBox2({ props, listBoxRef, collection }) {
279
- const originalRenderEmptyState = props.renderEmptyState;
280
- const { props: processedProps } = useProps(props);
281
- const processedRef = useSafeObjectRef(listBoxRef);
282
- const { state, contextState } = useListBoxState({ ...processedProps, collection });
283
- const { renderEmptyState: _, ...cleanProcessedProps } = processedProps;
284
- const content = /* @__PURE__ */ React4.createElement(
285
- ListBoxInner,
286
- {
287
- state,
288
- listBoxRef: processedRef,
289
- renderEmptyState: originalRenderEmptyState,
290
- ...cleanProcessedProps
291
- }
292
- );
293
- return renderWithOptionalContext(content, state, contextState);
294
- };
295
- var ListBox = withSlots("BentoListBox", ListBoxComponent);
296
- var TextContext = createContext({ slots: {} });
297
- var ListBoxItemImplComponent = function ListBoxItemImplComponent2({ __node, ...props }, ref) {
298
- const state = useContext(ListStateContext);
299
- const safeRef = useSafeObjectRef(ref);
300
- const { optionProps, labelProps, descriptionProps, ...states } = useOption(
301
- {
302
- key: __node.key,
303
- "aria-label": props["aria-label"],
304
- isDisabled: props.isDisabled
305
- },
306
- state,
307
- safeRef
308
- );
309
- const { hoverProps, isHovered } = useHover({
310
- isDisabled: states.isDisabled,
311
- onHoverStart: props.onHoverStart,
312
- onHoverChange: props.onHoverChange,
313
- onHoverEnd: props.onHoverEnd
314
- });
315
- const renderValues = {
316
- ...states,
317
- isHovered,
318
- selectionMode: state.selectionManager.selectionMode,
319
- selectionBehavior: state.selectionManager.selectionBehavior
320
- };
321
- const content = typeof props.children === "function" ? props.children(renderValues) : props.children;
322
- const { apply } = useProps(props, renderValues);
323
- const dataAttributes = useDataAttributes({
324
- selected: states.isSelected,
325
- disabled: states.isDisabled,
326
- hovered: isHovered,
327
- focused: states.isFocused,
328
- "focus-visible": states.isFocusVisible,
329
- pressed: states.isPressed,
330
- level: __node.level,
331
- "selection-mode": state.selectionManager.selectionMode,
332
- "selection-behavior": state.selectionManager.selectionBehavior
333
- });
334
- const textContext = useMemo(
335
- function createTextContext() {
336
- return {
337
- slots: {
338
- label: labelProps,
339
- description: descriptionProps
340
- }
341
- };
342
- },
343
- [labelProps, descriptionProps]
344
- );
345
- const ElementType = __node.props.href ? "a" : "div";
346
- const appliedUserProps = apply(__node.props, ["ref"]);
347
- const finalAttributes = {
348
- ...mergeProps(optionProps, hoverProps),
349
- // React Aria props
350
- ...dataAttributes,
351
- // Bento data attributes
352
- ...appliedUserProps,
353
- ref: safeRef,
354
- "data-text-value": __node.textValue
355
- };
356
- return /* @__PURE__ */ React4.createElement(TextContext.Provider, { value: textContext }, React4.createElement(ElementType, finalAttributes, content));
357
- };
358
- var ListBoxItemImpl = withSlots("BentoListBoxItem", ListBoxItemImplComponent);
359
- function ListBoxItemComponent(props, forwardedRef, item) {
360
- return /* @__PURE__ */ React4.createElement(ListBoxItemImpl, { ...props, ref: forwardedRef, __node: item });
361
- }
362
- var ListBoxItemBase = createLeafComponent("item", ListBoxItemComponent);
363
- var ListBoxItem = ListBoxItemBase;
364
-
365
- export { Header, HeaderContext, ListBox, ListBoxItem, ListBoxSection };
366
- //# sourceMappingURL=index.js.map
367
- //# sourceMappingURL=index.js.map