react-aria-components 1.14.0 → 1.15.1
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/Breadcrumbs.main.js +3 -2
- package/dist/Breadcrumbs.main.js.map +1 -1
- package/dist/Breadcrumbs.mjs +4 -3
- package/dist/Breadcrumbs.module.js +4 -3
- package/dist/Breadcrumbs.module.js.map +1 -1
- package/dist/Button.main.js +1 -1
- package/dist/Button.main.js.map +1 -1
- package/dist/Button.mjs +2 -2
- package/dist/Button.module.js +2 -2
- package/dist/Button.module.js.map +1 -1
- package/dist/Calendar.main.js +11 -7
- package/dist/Calendar.main.js.map +1 -1
- package/dist/Calendar.mjs +12 -8
- package/dist/Calendar.module.js +12 -8
- package/dist/Calendar.module.js.map +1 -1
- package/dist/Checkbox.main.js +2 -2
- package/dist/Checkbox.main.js.map +1 -1
- package/dist/Checkbox.mjs +3 -3
- package/dist/Checkbox.module.js +3 -3
- package/dist/Checkbox.module.js.map +1 -1
- package/dist/ColorArea.main.js +1 -1
- package/dist/ColorArea.main.js.map +1 -1
- package/dist/ColorArea.mjs +2 -2
- package/dist/ColorArea.module.js +2 -2
- package/dist/ColorArea.module.js.map +1 -1
- package/dist/ColorField.main.js +7 -3
- package/dist/ColorField.main.js.map +1 -1
- package/dist/ColorField.mjs +8 -4
- package/dist/ColorField.module.js +8 -4
- package/dist/ColorField.module.js.map +1 -1
- package/dist/ColorSlider.main.js +1 -1
- package/dist/ColorSlider.main.js.map +1 -1
- package/dist/ColorSlider.mjs +2 -2
- package/dist/ColorSlider.module.js +2 -2
- package/dist/ColorSlider.module.js.map +1 -1
- package/dist/ColorSwatch.main.js +1 -1
- package/dist/ColorSwatch.main.js.map +1 -1
- package/dist/ColorSwatch.mjs +2 -2
- package/dist/ColorSwatch.module.js +2 -2
- package/dist/ColorSwatch.module.js.map +1 -1
- package/dist/ColorSwatchPicker.main.js +2 -0
- package/dist/ColorSwatchPicker.main.js.map +1 -1
- package/dist/ColorSwatchPicker.mjs +2 -0
- package/dist/ColorSwatchPicker.module.js +2 -0
- package/dist/ColorSwatchPicker.module.js.map +1 -1
- package/dist/ColorThumb.main.js +1 -1
- package/dist/ColorThumb.main.js.map +1 -1
- package/dist/ColorThumb.mjs +2 -2
- package/dist/ColorThumb.module.js +2 -2
- package/dist/ColorThumb.module.js.map +1 -1
- package/dist/ColorWheel.main.js +2 -2
- package/dist/ColorWheel.main.js.map +1 -1
- package/dist/ColorWheel.mjs +3 -3
- package/dist/ColorWheel.module.js +3 -3
- package/dist/ColorWheel.module.js.map +1 -1
- package/dist/ComboBox.main.js +2 -2
- package/dist/ComboBox.main.js.map +1 -1
- package/dist/ComboBox.mjs +3 -3
- package/dist/ComboBox.module.js +3 -3
- package/dist/ComboBox.module.js.map +1 -1
- package/dist/DateField.main.js +3 -3
- package/dist/DateField.main.js.map +1 -1
- package/dist/DateField.mjs +4 -4
- package/dist/DateField.module.js +4 -4
- package/dist/DateField.module.js.map +1 -1
- package/dist/DatePicker.main.js +2 -2
- package/dist/DatePicker.main.js.map +1 -1
- package/dist/DatePicker.mjs +3 -3
- package/dist/DatePicker.module.js +3 -3
- package/dist/DatePicker.module.js.map +1 -1
- package/dist/Dialog.main.js +2 -1
- package/dist/Dialog.main.js.map +1 -1
- package/dist/Dialog.mjs +3 -2
- package/dist/Dialog.module.js +3 -2
- package/dist/Dialog.module.js.map +1 -1
- package/dist/Disclosure.main.js +3 -3
- package/dist/Disclosure.main.js.map +1 -1
- package/dist/Disclosure.mjs +4 -4
- package/dist/Disclosure.module.js +4 -4
- package/dist/Disclosure.module.js.map +1 -1
- package/dist/DropZone.main.js +2 -3
- package/dist/DropZone.main.js.map +1 -1
- package/dist/DropZone.mjs +4 -5
- package/dist/DropZone.module.js +4 -5
- package/dist/DropZone.module.js.map +1 -1
- package/dist/Form.main.js +1 -1
- package/dist/Form.main.js.map +1 -1
- package/dist/Form.mjs +2 -2
- package/dist/Form.module.js +2 -2
- package/dist/Form.module.js.map +1 -1
- package/dist/GridList.main.js +16 -13
- package/dist/GridList.main.js.map +1 -1
- package/dist/GridList.mjs +17 -14
- package/dist/GridList.module.js +17 -14
- package/dist/GridList.module.js.map +1 -1
- package/dist/Group.main.js +1 -1
- package/dist/Group.main.js.map +1 -1
- package/dist/Group.mjs +2 -2
- package/dist/Group.module.js +2 -2
- package/dist/Group.module.js.map +1 -1
- package/dist/Header.main.js +1 -1
- package/dist/Header.main.js.map +1 -1
- package/dist/Header.mjs +2 -2
- package/dist/Header.module.js +2 -2
- package/dist/Header.module.js.map +1 -1
- package/dist/Heading.main.js +2 -2
- package/dist/Heading.main.js.map +1 -1
- package/dist/Heading.mjs +2 -2
- package/dist/Heading.module.js +2 -2
- package/dist/Heading.module.js.map +1 -1
- package/dist/HiddenDateInput.main.js +5 -1
- package/dist/HiddenDateInput.main.js.map +1 -1
- package/dist/HiddenDateInput.mjs +6 -2
- package/dist/HiddenDateInput.module.js +6 -2
- package/dist/HiddenDateInput.module.js.map +1 -1
- package/dist/Input.main.js +1 -1
- package/dist/Input.main.js.map +1 -1
- package/dist/Input.mjs +2 -2
- package/dist/Input.module.js +2 -2
- package/dist/Input.module.js.map +1 -1
- package/dist/Keyboard.main.js +1 -1
- package/dist/Keyboard.main.js.map +1 -1
- package/dist/Keyboard.mjs +2 -2
- package/dist/Keyboard.module.js +2 -2
- package/dist/Keyboard.module.js.map +1 -1
- package/dist/Label.main.js +2 -1
- package/dist/Label.main.js.map +1 -1
- package/dist/Label.mjs +3 -2
- package/dist/Label.module.js +3 -2
- package/dist/Label.module.js.map +1 -1
- package/dist/Link.main.js +3 -2
- package/dist/Link.main.js.map +1 -1
- package/dist/Link.mjs +4 -3
- package/dist/Link.module.js +4 -3
- package/dist/Link.module.js.map +1 -1
- package/dist/ListBox.main.js +13 -14
- package/dist/ListBox.main.js.map +1 -1
- package/dist/ListBox.mjs +14 -15
- package/dist/ListBox.module.js +14 -15
- package/dist/ListBox.module.js.map +1 -1
- package/dist/Menu.main.js +21 -8
- package/dist/Menu.main.js.map +1 -1
- package/dist/Menu.mjs +22 -9
- package/dist/Menu.module.js +22 -9
- package/dist/Menu.module.js.map +1 -1
- package/dist/Meter.main.js +1 -1
- package/dist/Meter.main.js.map +1 -1
- package/dist/Meter.mjs +2 -2
- package/dist/Meter.module.js +2 -2
- package/dist/Meter.module.js.map +1 -1
- package/dist/Modal.main.js +2 -2
- package/dist/Modal.main.js.map +1 -1
- package/dist/Modal.mjs +3 -3
- package/dist/Modal.module.js +3 -3
- package/dist/Modal.module.js.map +1 -1
- package/dist/NumberField.main.js +1 -1
- package/dist/NumberField.main.js.map +1 -1
- package/dist/NumberField.mjs +2 -2
- package/dist/NumberField.module.js +2 -2
- package/dist/NumberField.module.js.map +1 -1
- package/dist/OverlayArrow.main.js +1 -1
- package/dist/OverlayArrow.main.js.map +1 -1
- package/dist/OverlayArrow.mjs +2 -2
- package/dist/OverlayArrow.module.js +2 -2
- package/dist/OverlayArrow.module.js.map +1 -1
- package/dist/Popover.main.js +2 -2
- package/dist/Popover.main.js.map +1 -1
- package/dist/Popover.mjs +4 -4
- package/dist/Popover.module.js +4 -4
- package/dist/Popover.module.js.map +1 -1
- package/dist/ProgressBar.main.js +1 -1
- package/dist/ProgressBar.main.js.map +1 -1
- package/dist/ProgressBar.mjs +2 -2
- package/dist/ProgressBar.module.js +2 -2
- package/dist/ProgressBar.module.js.map +1 -1
- package/dist/RadioGroup.main.js +2 -2
- package/dist/RadioGroup.main.js.map +1 -1
- package/dist/RadioGroup.mjs +3 -3
- package/dist/RadioGroup.module.js +3 -3
- package/dist/RadioGroup.module.js.map +1 -1
- package/dist/SearchField.main.js +1 -1
- package/dist/SearchField.main.js.map +1 -1
- package/dist/SearchField.mjs +2 -2
- package/dist/SearchField.module.js +2 -2
- package/dist/SearchField.module.js.map +1 -1
- package/dist/Select.main.js +2 -2
- package/dist/Select.main.js.map +1 -1
- package/dist/Select.mjs +3 -3
- package/dist/Select.module.js +3 -3
- package/dist/Select.module.js.map +1 -1
- package/dist/Separator.main.js +3 -1
- package/dist/Separator.main.js.map +1 -1
- package/dist/Separator.mjs +4 -2
- package/dist/Separator.module.js +4 -2
- package/dist/Separator.module.js.map +1 -1
- package/dist/SharedElementTransition.main.js +3 -2
- package/dist/SharedElementTransition.main.js.map +1 -1
- package/dist/SharedElementTransition.mjs +4 -3
- package/dist/SharedElementTransition.module.js +4 -3
- package/dist/SharedElementTransition.module.js.map +1 -1
- package/dist/Slider.main.js +6 -5
- package/dist/Slider.main.js.map +1 -1
- package/dist/Slider.mjs +7 -6
- package/dist/Slider.module.js +7 -6
- package/dist/Slider.module.js.map +1 -1
- package/dist/Switch.main.js +1 -1
- package/dist/Switch.main.js.map +1 -1
- package/dist/Switch.mjs +2 -2
- package/dist/Switch.module.js +2 -2
- package/dist/Switch.module.js.map +1 -1
- package/dist/Table.main.js +30 -25
- package/dist/Table.main.js.map +1 -1
- package/dist/Table.mjs +31 -26
- package/dist/Table.module.js +31 -26
- package/dist/Table.module.js.map +1 -1
- package/dist/Tabs.main.js +13 -6
- package/dist/Tabs.main.js.map +1 -1
- package/dist/Tabs.mjs +14 -7
- package/dist/Tabs.module.js +14 -7
- package/dist/Tabs.module.js.map +1 -1
- package/dist/TagGroup.main.js +6 -5
- package/dist/TagGroup.main.js.map +1 -1
- package/dist/TagGroup.mjs +7 -6
- package/dist/TagGroup.module.js +7 -6
- package/dist/TagGroup.module.js.map +1 -1
- package/dist/Text.main.js +2 -1
- package/dist/Text.main.js.map +1 -1
- package/dist/Text.mjs +3 -2
- package/dist/Text.module.js +3 -2
- package/dist/Text.module.js.map +1 -1
- package/dist/TextArea.main.js +1 -1
- package/dist/TextArea.main.js.map +1 -1
- package/dist/TextArea.mjs +2 -2
- package/dist/TextArea.module.js +2 -2
- package/dist/TextArea.module.js.map +1 -1
- package/dist/TextField.main.js +1 -1
- package/dist/TextField.main.js.map +1 -1
- package/dist/TextField.mjs +2 -2
- package/dist/TextField.module.js +2 -2
- package/dist/TextField.module.js.map +1 -1
- package/dist/Toast.main.js +6 -4
- package/dist/Toast.main.js.map +1 -1
- package/dist/Toast.mjs +7 -5
- package/dist/Toast.module.js +7 -5
- package/dist/Toast.module.js.map +1 -1
- package/dist/ToggleButton.main.js +5 -2
- package/dist/ToggleButton.main.js.map +1 -1
- package/dist/ToggleButton.mjs +6 -3
- package/dist/ToggleButton.module.js +6 -3
- package/dist/ToggleButton.module.js.map +1 -1
- package/dist/ToggleButtonGroup.main.js +1 -1
- package/dist/ToggleButtonGroup.main.js.map +1 -1
- package/dist/ToggleButtonGroup.mjs +2 -2
- package/dist/ToggleButtonGroup.module.js +2 -2
- package/dist/ToggleButtonGroup.module.js.map +1 -1
- package/dist/Toolbar.main.js +1 -1
- package/dist/Toolbar.main.js.map +1 -1
- package/dist/Toolbar.mjs +2 -2
- package/dist/Toolbar.module.js +2 -2
- package/dist/Toolbar.module.js.map +1 -1
- package/dist/Tooltip.main.js +1 -1
- package/dist/Tooltip.main.js.map +1 -1
- package/dist/Tooltip.mjs +2 -2
- package/dist/Tooltip.module.js +2 -2
- package/dist/Tooltip.module.js.map +1 -1
- package/dist/Tree.main.js +6 -6
- package/dist/Tree.main.js.map +1 -1
- package/dist/Tree.mjs +7 -7
- package/dist/Tree.module.js +7 -7
- package/dist/Tree.module.js.map +1 -1
- package/dist/types.d.ts +121 -62
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.main.js +41 -3
- package/dist/utils.main.js.map +1 -1
- package/dist/utils.mjs +42 -5
- package/dist/utils.module.js +42 -5
- package/dist/utils.module.js.map +1 -1
- package/package.json +24 -24
- package/src/Breadcrumbs.tsx +9 -6
- package/src/Button.tsx +4 -3
- package/src/Calendar.tsx +26 -20
- package/src/Checkbox.tsx +7 -6
- package/src/ColorArea.tsx +3 -2
- package/src/ColorField.tsx +18 -3
- package/src/ColorSlider.tsx +2 -1
- package/src/ColorSwatch.tsx +2 -1
- package/src/ColorSwatchPicker.tsx +2 -0
- package/src/ColorThumb.tsx +3 -3
- package/src/ColorWheel.tsx +4 -3
- package/src/ComboBox.tsx +3 -2
- package/src/DateField.tsx +5 -4
- package/src/DatePicker.tsx +3 -2
- package/src/Dialog.tsx +5 -4
- package/src/Disclosure.tsx +7 -6
- package/src/DropZone.tsx +5 -5
- package/src/Form.tsx +4 -4
- package/src/GridList.tsx +30 -23
- package/src/Group.tsx +10 -9
- package/src/Header.tsx +7 -5
- package/src/Heading.tsx +4 -4
- package/src/HiddenDateInput.tsx +10 -3
- package/src/Input.tsx +3 -2
- package/src/Keyboard.tsx +4 -2
- package/src/Label.tsx +4 -3
- package/src/Link.tsx +15 -12
- package/src/ListBox.tsx +23 -22
- package/src/Menu.tsx +32 -17
- package/src/Meter.tsx +3 -2
- package/src/Modal.tsx +5 -4
- package/src/NumberField.tsx +2 -1
- package/src/OverlayArrow.tsx +3 -2
- package/src/Popover.tsx +5 -4
- package/src/ProgressBar.tsx +3 -2
- package/src/RadioGroup.tsx +6 -5
- package/src/SearchField.tsx +3 -2
- package/src/Select.tsx +6 -5
- package/src/Separator.tsx +8 -5
- package/src/SharedElementTransition.tsx +4 -3
- package/src/Slider.tsx +9 -7
- package/src/Switch.tsx +11 -10
- package/src/Table.tsx +47 -36
- package/src/Tabs.tsx +23 -18
- package/src/TagGroup.tsx +16 -13
- package/src/Text.tsx +4 -3
- package/src/TextArea.tsx +3 -2
- package/src/TextField.tsx +4 -3
- package/src/Toast.tsx +15 -11
- package/src/ToggleButton.tsx +5 -4
- package/src/ToggleButtonGroup.tsx +3 -2
- package/src/Toolbar.tsx +3 -2
- package/src/Tooltip.tsx +3 -2
- package/src/Tree.tsx +18 -17
- package/src/utils.tsx +96 -10
package/src/Table.tsx
CHANGED
|
@@ -7,7 +7,9 @@ import {
|
|
|
7
7
|
ClassNameOrFunction,
|
|
8
8
|
ContextValue,
|
|
9
9
|
DEFAULT_SLOT,
|
|
10
|
+
dom,
|
|
10
11
|
DOMProps,
|
|
12
|
+
DOMRenderProps,
|
|
11
13
|
Provider,
|
|
12
14
|
RenderProps,
|
|
13
15
|
SlotProps,
|
|
@@ -218,7 +220,7 @@ interface ResizableTableContainerContextValue {
|
|
|
218
220
|
|
|
219
221
|
const ResizableTableContainerContext = createContext<ResizableTableContainerContextValue | null>(null);
|
|
220
222
|
|
|
221
|
-
export interface ResizableTableContainerProps extends DOMProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
223
|
+
export interface ResizableTableContainerProps extends DOMProps, DOMRenderProps<'div', undefined>, GlobalDOMAttributes<HTMLDivElement> {
|
|
222
224
|
/**
|
|
223
225
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element.
|
|
224
226
|
* @default 'react-aria-ResizableTableContainer'
|
|
@@ -283,7 +285,8 @@ export const ResizableTableContainer = forwardRef(function ResizableTableContain
|
|
|
283
285
|
}), [tableRef, width, props.onResizeStart, props.onResize, props.onResizeEnd]);
|
|
284
286
|
|
|
285
287
|
return (
|
|
286
|
-
<div
|
|
288
|
+
<dom.div
|
|
289
|
+
render={props.render}
|
|
287
290
|
{...filterDOMProps(props, {global: true})}
|
|
288
291
|
ref={containerRef}
|
|
289
292
|
className={props.className || 'react-aria-ResizableTableContainer'}
|
|
@@ -292,7 +295,7 @@ export const ResizableTableContainer = forwardRef(function ResizableTableContain
|
|
|
292
295
|
<ResizableTableContainerContext.Provider value={ctx}>
|
|
293
296
|
{props.children}
|
|
294
297
|
</ResizableTableContainerContext.Provider>
|
|
295
|
-
</div>
|
|
298
|
+
</dom.div>
|
|
296
299
|
);
|
|
297
300
|
});
|
|
298
301
|
|
|
@@ -322,7 +325,7 @@ export interface TableRenderProps {
|
|
|
322
325
|
state: TableState<unknown>
|
|
323
326
|
}
|
|
324
327
|
|
|
325
|
-
export interface TableProps extends Omit<SharedTableProps<any>, 'children'>, StyleRenderProps<TableRenderProps>, SlotProps, AriaLabelingProps, GlobalDOMAttributes<HTMLTableElement> {
|
|
328
|
+
export interface TableProps extends Omit<SharedTableProps<any>, 'children'>, StyleRenderProps<TableRenderProps, 'table' | 'div'>, SlotProps, AriaLabelingProps, GlobalDOMAttributes<HTMLTableElement> {
|
|
326
329
|
/**
|
|
327
330
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
328
331
|
* @default 'react-aria-Table'
|
|
@@ -387,9 +390,9 @@ interface TableInnerProps {
|
|
|
387
390
|
let TableElementType = forwardRef(function TableElementType(props: any, ref: ForwardedRef<Element>) {
|
|
388
391
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
389
392
|
if (isVirtualized) {
|
|
390
|
-
return <div {...props} ref={ref} />;
|
|
393
|
+
return <dom.div {...props} ref={ref} />;
|
|
391
394
|
}
|
|
392
|
-
return <table {...props} ref={ref} />;
|
|
395
|
+
return <dom.table {...props} ref={ref} />;
|
|
393
396
|
});
|
|
394
397
|
|
|
395
398
|
function TableInner({props, forwardedRef: ref, selectionState, collection}: TableInnerProps) {
|
|
@@ -475,8 +478,8 @@ function TableInner({props, forwardedRef: ref, selectionState, collection}: Tabl
|
|
|
475
478
|
|
|
476
479
|
let {focusProps, isFocused, isFocusVisible} = useFocusRing();
|
|
477
480
|
let renderProps = useRenderProps({
|
|
478
|
-
|
|
479
|
-
|
|
481
|
+
...props,
|
|
482
|
+
children: undefined,
|
|
480
483
|
defaultClassName: 'react-aria-Table',
|
|
481
484
|
values: {
|
|
482
485
|
isDropTarget: isRootDropTarget,
|
|
@@ -567,7 +570,7 @@ export interface TableHeaderRenderProps {
|
|
|
567
570
|
isHovered: boolean
|
|
568
571
|
}
|
|
569
572
|
|
|
570
|
-
export interface TableHeaderProps<T> extends StyleRenderProps<TableHeaderRenderProps>, HoverEvents, GlobalDOMAttributes<HTMLTableSectionElement> {
|
|
573
|
+
export interface TableHeaderProps<T> extends StyleRenderProps<TableHeaderRenderProps, 'thead' | 'div'>, HoverEvents, GlobalDOMAttributes<HTMLTableSectionElement> {
|
|
571
574
|
/**
|
|
572
575
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
573
576
|
* @default 'react-aria-TableHeader'
|
|
@@ -588,9 +591,9 @@ class TableHeaderNode<T> extends CollectionNode<T> {
|
|
|
588
591
|
let THeadElementType = forwardRef(function THeadElementType(props: any, ref: ForwardedRef<Element>) {
|
|
589
592
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
590
593
|
if (isVirtualized) {
|
|
591
|
-
return <div {...props} ref={ref} />;
|
|
594
|
+
return <dom.div {...props} ref={ref} />;
|
|
592
595
|
}
|
|
593
|
-
return <thead {...props} ref={ref} />;
|
|
596
|
+
return <dom.thead {...props} ref={ref} />;
|
|
594
597
|
});
|
|
595
598
|
|
|
596
599
|
/**
|
|
@@ -620,8 +623,8 @@ export const TableHeader = /*#__PURE__*/ createBranchComponent(
|
|
|
620
623
|
});
|
|
621
624
|
|
|
622
625
|
let renderProps = useRenderProps({
|
|
623
|
-
|
|
624
|
-
|
|
626
|
+
...props,
|
|
627
|
+
children: undefined,
|
|
625
628
|
defaultClassName: 'react-aria-TableHeader',
|
|
626
629
|
values: {
|
|
627
630
|
isHovered
|
|
@@ -722,7 +725,7 @@ export interface ColumnRenderProps {
|
|
|
722
725
|
startResize(): void
|
|
723
726
|
}
|
|
724
727
|
|
|
725
|
-
export interface ColumnProps extends RenderProps<ColumnRenderProps>, GlobalDOMAttributes<HTMLTableHeaderCellElement> {
|
|
728
|
+
export interface ColumnProps extends RenderProps<ColumnRenderProps, 'th' | 'div'>, GlobalDOMAttributes<HTMLTableHeaderCellElement> {
|
|
726
729
|
/**
|
|
727
730
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
728
731
|
* @default 'react-aria-Column'
|
|
@@ -753,9 +756,9 @@ class TableColumnNode extends CollectionNode<unknown> {
|
|
|
753
756
|
let ColumnElementType = forwardRef(function ColumnElementType(props: any, ref: ForwardedRef<Element>) {
|
|
754
757
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
755
758
|
if (isVirtualized) {
|
|
756
|
-
return <div {...props} ref={ref} />;
|
|
759
|
+
return <dom.div {...props} ref={ref} />;
|
|
757
760
|
}
|
|
758
|
-
return <th {...props} ref={ref} />;
|
|
761
|
+
return <dom.th {...props} ref={ref} />;
|
|
759
762
|
});
|
|
760
763
|
|
|
761
764
|
/**
|
|
@@ -964,7 +967,7 @@ export const ColumnResizer = forwardRef(function ColumnResizer(props: ColumnResi
|
|
|
964
967
|
let DOMProps = filterDOMProps(props, {global: true});
|
|
965
968
|
|
|
966
969
|
return (
|
|
967
|
-
<div
|
|
970
|
+
<dom.div
|
|
968
971
|
ref={objectRef}
|
|
969
972
|
role="presentation"
|
|
970
973
|
{...mergeProps(DOMProps, renderProps, resizerProps, {onPointerDown}, hoverProps)}
|
|
@@ -978,7 +981,7 @@ export const ColumnResizer = forwardRef(function ColumnResizer(props: ColumnResi
|
|
|
978
981
|
ref={inputRef}
|
|
979
982
|
{...mergeProps(inputProps, focusProps)} />
|
|
980
983
|
{isResizing && isMouseDown && ReactDOM.createPortal(<div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />, document.body)}
|
|
981
|
-
</div>
|
|
984
|
+
</dom.div>
|
|
982
985
|
);
|
|
983
986
|
});
|
|
984
987
|
|
|
@@ -995,7 +998,7 @@ export interface TableBodyRenderProps {
|
|
|
995
998
|
isDropTarget: boolean
|
|
996
999
|
}
|
|
997
1000
|
|
|
998
|
-
export interface TableBodyProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleRenderProps<TableBodyRenderProps>, GlobalDOMAttributes<HTMLTableSectionElement> {
|
|
1001
|
+
export interface TableBodyProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleRenderProps<TableBodyRenderProps, 'tbody' | 'div'>, GlobalDOMAttributes<HTMLTableSectionElement> {
|
|
999
1002
|
/**
|
|
1000
1003
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
1001
1004
|
* @default 'react-aria-TableBody'
|
|
@@ -1012,9 +1015,9 @@ class TableBodyNode<T> extends FilterableNode<T> {
|
|
|
1012
1015
|
let TableBodyElementType = forwardRef(function TableBodyElementType(props: any, ref: ForwardedRef<Element>) {
|
|
1013
1016
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
1014
1017
|
if (isVirtualized) {
|
|
1015
|
-
return <div {...props} ref={ref} />;
|
|
1018
|
+
return <dom.div {...props} ref={ref} />;
|
|
1016
1019
|
}
|
|
1017
|
-
return <tbody {...props} ref={ref} />;
|
|
1020
|
+
return <dom.tbody {...props} ref={ref} />;
|
|
1018
1021
|
});
|
|
1019
1022
|
|
|
1020
1023
|
/**
|
|
@@ -1093,7 +1096,7 @@ export interface RowRenderProps extends ItemRenderProps {
|
|
|
1093
1096
|
id?: Key
|
|
1094
1097
|
}
|
|
1095
1098
|
|
|
1096
|
-
export interface RowProps<T> extends StyleRenderProps<RowRenderProps>, LinkDOMProps, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLTableRowElement>, 'onClick'> {
|
|
1099
|
+
export interface RowProps<T> extends StyleRenderProps<RowRenderProps, 'tr' | 'div'>, LinkDOMProps, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLTableRowElement>, 'onClick'> {
|
|
1097
1100
|
/**
|
|
1098
1101
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
1099
1102
|
* @default 'react-aria-Row'
|
|
@@ -1140,9 +1143,9 @@ class TableRowNode<T> extends CollectionNode<T> {
|
|
|
1140
1143
|
let TableRowElementType = forwardRef(function TableRowElementType(props: any, ref: ForwardedRef<Element>) {
|
|
1141
1144
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
1142
1145
|
if (isVirtualized) {
|
|
1143
|
-
return <div {...props} ref={ref} />;
|
|
1146
|
+
return <dom.div {...props} ref={ref} />;
|
|
1144
1147
|
}
|
|
1145
|
-
return <tr {...props} ref={ref} />;
|
|
1148
|
+
return <dom.tr {...props} ref={ref} />;
|
|
1146
1149
|
});
|
|
1147
1150
|
|
|
1148
1151
|
/**
|
|
@@ -1321,10 +1324,14 @@ export interface CellRenderProps {
|
|
|
1321
1324
|
/**
|
|
1322
1325
|
* The unique id of the cell.
|
|
1323
1326
|
**/
|
|
1324
|
-
id?: Key
|
|
1327
|
+
id?: Key,
|
|
1328
|
+
/**
|
|
1329
|
+
* The index of the column that this cell belongs to. Respects col spanning.
|
|
1330
|
+
*/
|
|
1331
|
+
columnIndex?: number | null
|
|
1325
1332
|
}
|
|
1326
1333
|
|
|
1327
|
-
export interface CellProps extends RenderProps<CellRenderProps>, GlobalDOMAttributes<HTMLTableCellElement> {
|
|
1334
|
+
export interface CellProps extends RenderProps<CellRenderProps, 'td' | 'div'>, GlobalDOMAttributes<HTMLTableCellElement> {
|
|
1328
1335
|
/**
|
|
1329
1336
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
1330
1337
|
* @default 'react-aria-Cell'
|
|
@@ -1345,9 +1352,9 @@ class TableCellNode extends CollectionNode<unknown> {
|
|
|
1345
1352
|
let TableCellElementType = forwardRef(function TableCellElementType(props: any, ref: ForwardedRef<Element>) {
|
|
1346
1353
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
1347
1354
|
if (isVirtualized) {
|
|
1348
|
-
return <div {...props} ref={ref} />;
|
|
1355
|
+
return <dom.div {...props} ref={ref} />;
|
|
1349
1356
|
}
|
|
1350
|
-
return <td {...props} ref={ref} />;
|
|
1357
|
+
return <dom.td {...props} ref={ref} />;
|
|
1351
1358
|
});
|
|
1352
1359
|
|
|
1353
1360
|
/**
|
|
@@ -1369,6 +1376,8 @@ export const Cell = /*#__PURE__*/ createLeafComponent(TableCellNode, (props: Cel
|
|
|
1369
1376
|
let {isFocused, isFocusVisible, focusProps} = useFocusRing();
|
|
1370
1377
|
let {hoverProps, isHovered} = useHover({});
|
|
1371
1378
|
let isSelected = cell.parentKey != null ? state.selectionManager.isSelected(cell.parentKey) : false;
|
|
1379
|
+
// colIndex is null, when there is so span, falling back to using the index
|
|
1380
|
+
let columnIndex = cell.colIndex || cell.index;
|
|
1372
1381
|
|
|
1373
1382
|
let renderProps = useRenderProps({
|
|
1374
1383
|
...props,
|
|
@@ -1380,7 +1389,8 @@ export const Cell = /*#__PURE__*/ createLeafComponent(TableCellNode, (props: Cel
|
|
|
1380
1389
|
isPressed,
|
|
1381
1390
|
isHovered,
|
|
1382
1391
|
isSelected,
|
|
1383
|
-
id: cell.key
|
|
1392
|
+
id: cell.key,
|
|
1393
|
+
columnIndex
|
|
1384
1394
|
}
|
|
1385
1395
|
});
|
|
1386
1396
|
|
|
@@ -1394,7 +1404,8 @@ export const Cell = /*#__PURE__*/ createLeafComponent(TableCellNode, (props: Cel
|
|
|
1394
1404
|
data-focused={isFocused || undefined}
|
|
1395
1405
|
data-focus-visible={isFocusVisible || undefined}
|
|
1396
1406
|
data-pressed={isPressed || undefined}
|
|
1397
|
-
data-selected={isSelected || undefined}
|
|
1407
|
+
data-selected={isSelected || undefined}
|
|
1408
|
+
data-column-index={columnIndex}>
|
|
1398
1409
|
<CollectionRendererContext.Provider value={DefaultCollectionRenderer}>
|
|
1399
1410
|
{renderProps.children}
|
|
1400
1411
|
</CollectionRendererContext.Provider>
|
|
@@ -1430,16 +1441,16 @@ interface TableDropIndicatorProps extends DropIndicatorProps, GlobalDOMAttribute
|
|
|
1430
1441
|
let TableDropIndicatorRowElementType = forwardRef(function TableDropIndicatorRowElementType(props: any, ref: ForwardedRef<Element>) {
|
|
1431
1442
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
1432
1443
|
if (isVirtualized) {
|
|
1433
|
-
return <div {...props} ref={ref} />;
|
|
1444
|
+
return <dom.div {...props} ref={ref} />;
|
|
1434
1445
|
}
|
|
1435
|
-
return <tr {...props} ref={ref} />;
|
|
1446
|
+
return <dom.tr {...props} ref={ref} />;
|
|
1436
1447
|
});
|
|
1437
1448
|
let TableDropIndicatorTDElementType = forwardRef(function TableDropIndicatorTDElementType(props: any, ref: ForwardedRef<Element>) {
|
|
1438
1449
|
let {isVirtualized} = useContext(CollectionRendererContext);
|
|
1439
1450
|
if (isVirtualized) {
|
|
1440
|
-
return <div {...props} ref={ref} />;
|
|
1451
|
+
return <dom.div {...props} ref={ref} />;
|
|
1441
1452
|
}
|
|
1442
|
-
return <td {...props} ref={ref} />;
|
|
1453
|
+
return <dom.td {...props} ref={ref} />;
|
|
1443
1454
|
});
|
|
1444
1455
|
|
|
1445
1456
|
function TableDropIndicator(props: TableDropIndicatorProps, ref: ForwardedRef<HTMLElement>) {
|
|
@@ -1509,7 +1520,7 @@ function RootDropIndicator() {
|
|
|
1509
1520
|
);
|
|
1510
1521
|
}
|
|
1511
1522
|
|
|
1512
|
-
export interface TableLoadMoreItemProps extends Omit<LoadMoreSentinelProps, 'collection'>, StyleProps, GlobalDOMAttributes<HTMLTableRowElement> {
|
|
1523
|
+
export interface TableLoadMoreItemProps extends Omit<LoadMoreSentinelProps, 'collection'>, StyleProps, DOMRenderProps<'tr' | 'div', undefined>, GlobalDOMAttributes<HTMLTableRowElement> {
|
|
1513
1524
|
/**
|
|
1514
1525
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element.
|
|
1515
1526
|
* @default 'react-aria-TableLoadMoreItem'
|
|
@@ -1545,7 +1556,7 @@ export const TableLoadMoreItem = createLeafComponent(LoaderNode, function TableL
|
|
|
1545
1556
|
id: undefined,
|
|
1546
1557
|
children: item.rendered,
|
|
1547
1558
|
defaultClassName: 'react-aria-TableLoadingIndicator',
|
|
1548
|
-
values:
|
|
1559
|
+
values: undefined
|
|
1549
1560
|
});
|
|
1550
1561
|
let rowProps = {};
|
|
1551
1562
|
let rowHeaderProps = {};
|
package/src/Tabs.tsx
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {AriaLabelingProps, forwardRefType, GlobalDOMAttributes, HoverEvents, Key, LinkDOMProps, PressEvents, RefObject} from '@react-types/shared';
|
|
13
|
+
import {AriaLabelingProps, FocusEvents, forwardRefType, GlobalDOMAttributes, HoverEvents, Key, LinkDOMProps, PressEvents, RefObject} from '@react-types/shared';
|
|
14
14
|
import {AriaTabListProps, AriaTabPanelProps, mergeProps, Orientation, useFocusRing, useHover, useTab, useTabList, useTabPanel} from 'react-aria';
|
|
15
|
-
import {ClassNameOrFunction, ContextValue, Provider, RenderProps, SlotProps, StyleProps, StyleRenderProps, useContextProps, useRenderProps, useSlottedContext} from './utils';
|
|
15
|
+
import {ClassNameOrFunction, ContextValue, dom, DOMRenderProps, PossibleLinkDOMRenderProps, Provider, RenderProps, SlotProps, StyleProps, StyleRenderProps, useContextProps, useRenderProps, useSlottedContext} from './utils';
|
|
16
16
|
import {Collection, CollectionBuilder, CollectionNode, createHideableComponent, createLeafComponent} from '@react-aria/collections';
|
|
17
17
|
import {CollectionProps, CollectionRendererContext, DefaultCollectionRenderer, usePersistedKeys} from './Collection';
|
|
18
18
|
import {filterDOMProps, inertValue, useEnterAnimation, useExitAnimation, useLayoutEffect, useObjectRef} from '@react-aria/utils';
|
|
@@ -57,7 +57,7 @@ export interface TabListRenderProps {
|
|
|
57
57
|
state: TabListState<unknown>
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export interface TabProps extends RenderProps<TabRenderProps>, AriaLabelingProps, LinkDOMProps, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {
|
|
60
|
+
export interface TabProps extends Omit<RenderProps<TabRenderProps>, 'render'>, PossibleLinkDOMRenderProps<'div', TabRenderProps>, AriaLabelingProps, LinkDOMProps, HoverEvents, FocusEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {
|
|
61
61
|
/**
|
|
62
62
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
63
63
|
* @default 'react-aria-Tab'
|
|
@@ -199,7 +199,7 @@ function TabsInner({props, tabsRef: ref, collection}: TabsInnerProps) {
|
|
|
199
199
|
let DOMProps = filterDOMProps(props, {global: true});
|
|
200
200
|
|
|
201
201
|
return (
|
|
202
|
-
<div
|
|
202
|
+
<dom.div
|
|
203
203
|
{...mergeProps(DOMProps, renderProps, focusProps)}
|
|
204
204
|
ref={ref}
|
|
205
205
|
slot={props.slot || undefined}
|
|
@@ -214,7 +214,7 @@ function TabsInner({props, tabsRef: ref, collection}: TabsInnerProps) {
|
|
|
214
214
|
]}>
|
|
215
215
|
{renderProps.children}
|
|
216
216
|
</Provider>
|
|
217
|
-
</div>
|
|
217
|
+
</dom.div>
|
|
218
218
|
);
|
|
219
219
|
}
|
|
220
220
|
|
|
@@ -260,14 +260,14 @@ function TabListInner<T extends object>({props, forwardedRef: ref}: TabListInner
|
|
|
260
260
|
delete DOMProps.id;
|
|
261
261
|
|
|
262
262
|
return (
|
|
263
|
-
<div
|
|
263
|
+
<dom.div
|
|
264
264
|
{...mergeProps(DOMProps, renderProps, tabListProps)}
|
|
265
265
|
ref={objectRef}
|
|
266
266
|
data-orientation={orientation || undefined}>
|
|
267
267
|
<SharedElementTransition>
|
|
268
268
|
<CollectionRoot collection={state.collection} persistedKeys={usePersistedKeys(state.selectionManager.focusedKey)} />
|
|
269
269
|
</SharedElementTransition>
|
|
270
|
-
</div>
|
|
270
|
+
</dom.div>
|
|
271
271
|
);
|
|
272
272
|
}
|
|
273
273
|
|
|
@@ -290,7 +290,7 @@ export const Tab = /*#__PURE__*/ createLeafComponent(TabItemNode, (props: TabPro
|
|
|
290
290
|
onHoverChange: props.onHoverChange
|
|
291
291
|
});
|
|
292
292
|
|
|
293
|
-
let renderProps = useRenderProps({
|
|
293
|
+
let renderProps = useRenderProps<TabRenderProps, any>({
|
|
294
294
|
...props,
|
|
295
295
|
id: undefined,
|
|
296
296
|
children: item.rendered,
|
|
@@ -305,7 +305,7 @@ export const Tab = /*#__PURE__*/ createLeafComponent(TabItemNode, (props: TabPro
|
|
|
305
305
|
}
|
|
306
306
|
});
|
|
307
307
|
|
|
308
|
-
let ElementType
|
|
308
|
+
let ElementType = item.props.href ? dom.a : dom.div;
|
|
309
309
|
let DOMProps = filterDOMProps(props as any, {global: true});
|
|
310
310
|
delete DOMProps.id;
|
|
311
311
|
delete DOMProps.onClick;
|
|
@@ -327,7 +327,7 @@ export const Tab = /*#__PURE__*/ createLeafComponent(TabItemNode, (props: TabPro
|
|
|
327
327
|
);
|
|
328
328
|
});
|
|
329
329
|
|
|
330
|
-
export interface TabPanelsProps<T> extends CollectionProps<T>, StyleProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
330
|
+
export interface TabPanelsProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleProps, DOMRenderProps<'div', undefined>, GlobalDOMAttributes<HTMLDivElement> {
|
|
331
331
|
/**
|
|
332
332
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element.
|
|
333
333
|
* @default 'react-aria-TabPanels'
|
|
@@ -354,7 +354,7 @@ export const TabPanels = /*#__PURE__*/ createHideableComponent(function TabPanel
|
|
|
354
354
|
if (hasTransition.current == null) {
|
|
355
355
|
hasTransition.current = /width|height|all/.test(window.getComputedStyle(el).transition);
|
|
356
356
|
}
|
|
357
|
-
|
|
357
|
+
|
|
358
358
|
if (hasTransition.current && selectedKeyRef.current != null && selectedKeyRef.current !== state.selectedKey) {
|
|
359
359
|
// Measure auto size.
|
|
360
360
|
el.style.setProperty('--tab-panel-width', 'auto');
|
|
@@ -365,7 +365,7 @@ export const TabPanels = /*#__PURE__*/ createHideableComponent(function TabPanel
|
|
|
365
365
|
// Revert to previous size.
|
|
366
366
|
el.style.setProperty('--tab-panel-width', prevSize.current.width + 'px');
|
|
367
367
|
el.style.setProperty('--tab-panel-height', prevSize.current.height + 'px');
|
|
368
|
-
|
|
368
|
+
|
|
369
369
|
// Force style re-calculation to trigger animations.
|
|
370
370
|
window.getComputedStyle(el).height;
|
|
371
371
|
|
|
@@ -382,7 +382,7 @@ export const TabPanels = /*#__PURE__*/ createHideableComponent(function TabPanel
|
|
|
382
382
|
.catch(() => {});
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
|
-
|
|
385
|
+
|
|
386
386
|
selectedKeyRef.current = state.selectedKey;
|
|
387
387
|
}, [ref, state.selectedKey]);
|
|
388
388
|
|
|
@@ -394,13 +394,18 @@ export const TabPanels = /*#__PURE__*/ createHideableComponent(function TabPanel
|
|
|
394
394
|
prevSize.current = ref.current.getBoundingClientRect();
|
|
395
395
|
}
|
|
396
396
|
|
|
397
|
+
let DOMProps = filterDOMProps(props, {labelable: true, global: true});
|
|
398
|
+
delete DOMProps.id;
|
|
399
|
+
|
|
397
400
|
return (
|
|
398
|
-
<div
|
|
399
|
-
{
|
|
401
|
+
<dom.div
|
|
402
|
+
render={props.render}
|
|
403
|
+
{...DOMProps}
|
|
400
404
|
ref={ref}
|
|
405
|
+
style={props.style}
|
|
401
406
|
className={props.className || 'react-aria-TabPanels'}>
|
|
402
407
|
<Collection {...props} />
|
|
403
|
-
</div>
|
|
408
|
+
</dom.div>
|
|
404
409
|
);
|
|
405
410
|
});
|
|
406
411
|
|
|
@@ -466,7 +471,7 @@ function TabPanelInner(props: TabPanelProps & {tabPanelRef: RefObject<HTMLDivEle
|
|
|
466
471
|
: mergeProps(DOMProps, renderProps);
|
|
467
472
|
|
|
468
473
|
return (
|
|
469
|
-
<div
|
|
474
|
+
<dom.div
|
|
470
475
|
{...domProps}
|
|
471
476
|
ref={ref}
|
|
472
477
|
data-focused={isFocused || undefined}
|
|
@@ -485,6 +490,6 @@ function TabPanelInner(props: TabPanelProps & {tabPanelRef: RefObject<HTMLDivEle
|
|
|
485
490
|
{renderProps.children}
|
|
486
491
|
</CollectionRendererContext.Provider>
|
|
487
492
|
</Provider>
|
|
488
|
-
</div>
|
|
493
|
+
</dom.div>
|
|
489
494
|
);
|
|
490
495
|
}
|
package/src/TagGroup.tsx
CHANGED
|
@@ -15,7 +15,9 @@ import {ButtonContext} from './Button';
|
|
|
15
15
|
import {
|
|
16
16
|
ClassNameOrFunction,
|
|
17
17
|
ContextValue,
|
|
18
|
+
dom,
|
|
18
19
|
DOMProps,
|
|
20
|
+
DOMRenderProps,
|
|
19
21
|
Provider,
|
|
20
22
|
RenderProps,
|
|
21
23
|
SlotProps,
|
|
@@ -27,7 +29,7 @@ import {
|
|
|
27
29
|
import {Collection, CollectionBuilder, createLeafComponent, ItemNode} from '@react-aria/collections';
|
|
28
30
|
import {CollectionProps, CollectionRendererContext, DefaultCollectionRenderer, ItemRenderProps, usePersistedKeys} from './Collection';
|
|
29
31
|
import {filterDOMProps, mergeProps, useObjectRef} from '@react-aria/utils';
|
|
30
|
-
import {forwardRefType, GlobalDOMAttributes, HoverEvents, Key, LinkDOMProps, PressEvents, RefObject} from '@react-types/shared';
|
|
32
|
+
import {FocusEvents, forwardRefType, GlobalDOMAttributes, HoverEvents, Key, LinkDOMProps, PressEvents, RefObject} from '@react-types/shared';
|
|
31
33
|
import {LabelContext} from './Label';
|
|
32
34
|
import {ListState, Node, UNSTABLE_useFilteredListState, useListState} from 'react-stately';
|
|
33
35
|
import {ListStateContext} from './ListBox';
|
|
@@ -37,7 +39,7 @@ import {SelectionIndicatorContext} from './SelectionIndicator';
|
|
|
37
39
|
import {SharedElementTransition} from './SharedElementTransition';
|
|
38
40
|
import {TextContext} from './Text';
|
|
39
41
|
|
|
40
|
-
export interface TagGroupProps extends Omit<AriaTagGroupProps<unknown>, 'children' | 'items' | 'label' | 'description' | 'errorMessage' | 'keyboardDelegate'>, DOMProps, SlotProps, GlobalDOMAttributes<HTMLDivElement> {
|
|
42
|
+
export interface TagGroupProps extends Omit<AriaTagGroupProps<unknown>, 'children' | 'items' | 'label' | 'description' | 'errorMessage' | 'keyboardDelegate'>, DOMProps, SlotProps, DOMRenderProps<'div', undefined>, GlobalDOMAttributes<HTMLDivElement> {
|
|
41
43
|
/**
|
|
42
44
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element.
|
|
43
45
|
* @default 'react-aria-TagGroup'
|
|
@@ -67,7 +69,7 @@ export interface TagListRenderProps {
|
|
|
67
69
|
state: ListState<unknown>
|
|
68
70
|
}
|
|
69
71
|
|
|
70
|
-
export interface TagListProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleRenderProps<TagListRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
72
|
+
export interface TagListProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleRenderProps<TagListRenderProps, 'div'>, GlobalDOMAttributes<HTMLDivElement> {
|
|
71
73
|
/**
|
|
72
74
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
73
75
|
* @default 'react-aria-TagList'
|
|
@@ -97,7 +99,7 @@ export const TagGroup = /*#__PURE__*/ (forwardRef as forwardRefType)(function Ta
|
|
|
97
99
|
interface TagGroupInnerProps<T> {
|
|
98
100
|
props: TagGroupProps & SelectableCollectionContextValue<T>,
|
|
99
101
|
forwardedRef: ForwardedRef<HTMLDivElement>,
|
|
100
|
-
collection
|
|
102
|
+
collection: any
|
|
101
103
|
}
|
|
102
104
|
|
|
103
105
|
function TagGroupInner<T extends object>({props, forwardedRef: ref, collection}: TagGroupInnerProps<T>) {
|
|
@@ -133,7 +135,8 @@ function TagGroupInner<T extends object>({props, forwardedRef: ref, collection}:
|
|
|
133
135
|
}, filteredState, tagListRef);
|
|
134
136
|
|
|
135
137
|
return (
|
|
136
|
-
<div
|
|
138
|
+
<dom.div
|
|
139
|
+
render={props.render}
|
|
137
140
|
{...domProps}
|
|
138
141
|
id={id}
|
|
139
142
|
ref={ref}
|
|
@@ -154,7 +157,7 @@ function TagGroupInner<T extends object>({props, forwardedRef: ref, collection}:
|
|
|
154
157
|
]}>
|
|
155
158
|
{props.children}
|
|
156
159
|
</Provider>
|
|
157
|
-
</div>
|
|
160
|
+
</dom.div>
|
|
158
161
|
);
|
|
159
162
|
}
|
|
160
163
|
|
|
@@ -186,8 +189,8 @@ function TagListInner<T extends object>({props, forwardedRef}: TagListInnerProps
|
|
|
186
189
|
state
|
|
187
190
|
};
|
|
188
191
|
let renderProps = useRenderProps({
|
|
189
|
-
|
|
190
|
-
|
|
192
|
+
...props,
|
|
193
|
+
children: undefined,
|
|
191
194
|
defaultClassName: 'react-aria-TagList',
|
|
192
195
|
values: renderValues
|
|
193
196
|
});
|
|
@@ -196,7 +199,7 @@ function TagListInner<T extends object>({props, forwardedRef}: TagListInnerProps
|
|
|
196
199
|
let DOMProps = filterDOMProps(props, {global: true});
|
|
197
200
|
|
|
198
201
|
return (
|
|
199
|
-
<div
|
|
202
|
+
<dom.div
|
|
200
203
|
{...mergeProps(DOMProps, renderProps, gridProps, focusProps)}
|
|
201
204
|
ref={ref}
|
|
202
205
|
data-empty={state.collection.size === 0 || undefined}
|
|
@@ -207,7 +210,7 @@ function TagListInner<T extends object>({props, forwardedRef}: TagListInnerProps
|
|
|
207
210
|
? props.renderEmptyState(renderValues)
|
|
208
211
|
: <CollectionRoot collection={state.collection} persistedKeys={persistedKeys} />}
|
|
209
212
|
</SharedElementTransition>
|
|
210
|
-
</div>
|
|
213
|
+
</dom.div>
|
|
211
214
|
);
|
|
212
215
|
}
|
|
213
216
|
|
|
@@ -219,7 +222,7 @@ export interface TagRenderProps extends Omit<ItemRenderProps, 'allowsDragging' |
|
|
|
219
222
|
allowsRemoving: boolean
|
|
220
223
|
}
|
|
221
224
|
|
|
222
|
-
export interface TagProps extends RenderProps<TagRenderProps>, LinkDOMProps, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {
|
|
225
|
+
export interface TagProps extends RenderProps<TagRenderProps, 'div'>, LinkDOMProps, HoverEvents, FocusEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLDivElement>, 'onClick'> {
|
|
223
226
|
/**
|
|
224
227
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
225
228
|
* @default 'react-aria-Tag'
|
|
@@ -277,7 +280,7 @@ export const Tag = /*#__PURE__*/ createLeafComponent(ItemNode, (props: TagProps,
|
|
|
277
280
|
delete DOMProps.onClick;
|
|
278
281
|
|
|
279
282
|
return (
|
|
280
|
-
<div
|
|
283
|
+
<dom.div
|
|
281
284
|
ref={ref}
|
|
282
285
|
{...mergeProps(DOMProps, renderProps, rowProps, focusProps, hoverProps)}
|
|
283
286
|
data-selected={states.isSelected || undefined}
|
|
@@ -302,6 +305,6 @@ export const Tag = /*#__PURE__*/ createLeafComponent(ItemNode, (props: TagProps,
|
|
|
302
305
|
{renderProps.children}
|
|
303
306
|
</Provider>
|
|
304
307
|
</div>
|
|
305
|
-
</div>
|
|
308
|
+
</dom.div>
|
|
306
309
|
);
|
|
307
310
|
});
|
package/src/Text.tsx
CHANGED
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {ContextValue, useContextProps} from './utils';
|
|
13
|
+
import {ContextValue, dom, DOMRenderProps, useContextProps} from './utils';
|
|
14
14
|
import React, {createContext, ForwardedRef, forwardRef, HTMLAttributes} from 'react';
|
|
15
15
|
|
|
16
|
-
export interface TextProps extends HTMLAttributes<HTMLElement> {
|
|
16
|
+
export interface TextProps extends HTMLAttributes<HTMLElement>, DOMRenderProps<any, any> {
|
|
17
17
|
elementType?: string
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -21,7 +21,8 @@ export const TextContext = createContext<ContextValue<TextProps, HTMLElement>>({
|
|
|
21
21
|
|
|
22
22
|
export const Text = forwardRef(function Text(props: TextProps, ref: ForwardedRef<HTMLElement>) {
|
|
23
23
|
[props, ref] = useContextProps(props, ref, TextContext);
|
|
24
|
-
let {elementType
|
|
24
|
+
let {elementType = 'span', ...domProps} = props;
|
|
25
|
+
let ElementType = dom[elementType];
|
|
25
26
|
// @ts-ignore
|
|
26
27
|
return <ElementType className="react-aria-Text" {...domProps} ref={ref} />;
|
|
27
28
|
});
|
package/src/TextArea.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ClassNameOrFunction,
|
|
3
3
|
ContextValue,
|
|
4
|
+
dom,
|
|
4
5
|
StyleRenderProps,
|
|
5
6
|
useContextProps,
|
|
6
7
|
useRenderProps
|
|
@@ -9,7 +10,7 @@ import {HoverEvents, mergeProps, useFocusRing, useHover} from 'react-aria';
|
|
|
9
10
|
import {InputRenderProps} from './Input';
|
|
10
11
|
import React, {createContext, ForwardedRef, forwardRef, TextareaHTMLAttributes} from 'react';
|
|
11
12
|
|
|
12
|
-
export interface TextAreaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'style'>, HoverEvents, StyleRenderProps<InputRenderProps> {
|
|
13
|
+
export interface TextAreaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'style'>, HoverEvents, StyleRenderProps<InputRenderProps, 'textarea'> {
|
|
13
14
|
/**
|
|
14
15
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
15
16
|
* @default 'react-aria-TextArea'
|
|
@@ -51,7 +52,7 @@ export const TextArea = forwardRef(function TextArea(props: TextAreaProps, ref:
|
|
|
51
52
|
});
|
|
52
53
|
|
|
53
54
|
return (
|
|
54
|
-
<textarea
|
|
55
|
+
<dom.textarea
|
|
55
56
|
{...mergeProps(filterHoverProps(props), focusProps, hoverProps)}
|
|
56
57
|
{...renderProps}
|
|
57
58
|
ref={ref}
|
package/src/TextField.tsx
CHANGED
|
@@ -14,6 +14,7 @@ import {AriaTextFieldProps, useTextField} from 'react-aria';
|
|
|
14
14
|
import {
|
|
15
15
|
ClassNameOrFunction,
|
|
16
16
|
ContextValue,
|
|
17
|
+
dom,
|
|
17
18
|
DOMProps,
|
|
18
19
|
Provider,
|
|
19
20
|
RACValidation,
|
|
@@ -61,7 +62,7 @@ export interface TextFieldRenderProps {
|
|
|
61
62
|
isRequired: boolean
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
export interface TextFieldProps extends Omit<AriaTextFieldProps, 'label' | 'placeholder' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, Omit<DOMProps, 'style' | 'className' | 'children'>, SlotProps, RenderProps<TextFieldRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
65
|
+
export interface TextFieldProps extends Omit<AriaTextFieldProps, 'label' | 'placeholder' | 'description' | 'errorMessage' | 'validationState' | 'validationBehavior'>, RACValidation, Omit<DOMProps, 'style' | 'className' | 'render' | 'children'>, SlotProps, RenderProps<TextFieldRenderProps>, GlobalDOMAttributes<HTMLDivElement> {
|
|
65
66
|
/**
|
|
66
67
|
* The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the element. A function may be provided to compute the class based on component state.
|
|
67
68
|
* @default 'react-aria-TextField'
|
|
@@ -117,7 +118,7 @@ export const TextField = /*#__PURE__*/ createHideableComponent(function TextFiel
|
|
|
117
118
|
delete DOMProps.id;
|
|
118
119
|
|
|
119
120
|
return (
|
|
120
|
-
<div
|
|
121
|
+
<dom.div
|
|
121
122
|
{...DOMProps}
|
|
122
123
|
{...renderProps}
|
|
123
124
|
ref={ref}
|
|
@@ -142,6 +143,6 @@ export const TextField = /*#__PURE__*/ createHideableComponent(function TextFiel
|
|
|
142
143
|
]}>
|
|
143
144
|
{renderProps.children}
|
|
144
145
|
</Provider>
|
|
145
|
-
</div>
|
|
146
|
+
</dom.div>
|
|
146
147
|
);
|
|
147
148
|
});
|