@react-spectrum/s2 3.0.0-nightly-bebc9764a-241010 → 3.0.0-nightly-db60babaf-241012

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.
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/TableView.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Button,\n CellRenderProps,\n Collection,\n ColumnRenderProps,\n ColumnResizer,\n Key,\n Provider,\n Cell as RACCell,\n CellProps as RACCellProps,\n CheckboxContext as RACCheckboxContext,\n Column as RACColumn,\n ColumnProps as RACColumnProps,\n Row as RACRow,\n RowProps as RACRowProps,\n Table as RACTable,\n TableBody as RACTableBody,\n TableBodyProps as RACTableBodyProps,\n TableHeader as RACTableHeader,\n TableHeaderProps as RACTableHeaderProps,\n TableProps as RACTableProps,\n ResizableTableContainer,\n RowRenderProps,\n TableBodyRenderProps,\n TableRenderProps,\n UNSTABLE_TableLayout,\n UNSTABLE_TableLoadingIndicator,\n UNSTABLE_Virtualizer,\n useSlottedContext,\n useTableOptions\n} from 'react-aria-components';\nimport {centerPadding, getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};\nimport {Checkbox} from './Checkbox';\nimport Chevron from '../ui-icons/Chevron';\nimport {colorMix, fontRelative, lightDark, size, style} from '../style/spectrum-theme' with {type: 'macro'};\nimport {ColumnSize} from '@react-types/table';\nimport {DOMRef, LoadingState, Node} from '@react-types/shared';\nimport {GridNode} from '@react-types/grid';\nimport {IconContext} from './Icon';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {LayoutNode} from '@react-stately/layout';\nimport {Menu, MenuItem, MenuTrigger} from './Menu';\nimport {mergeStyles} from '../style/runtime';\nimport Nubbin from '../ui-icons/S2_Icon_MoveHorizontalCircleTableWidget_16_N.svg';\nimport {ProgressCircle} from './ProgressCircle';\nimport {raw} from '../style/style-macro' with {type: 'macro'};\nimport React, {createContext, forwardRef, ReactNode, useCallback, useContext, useMemo, useRef, useState} from 'react';\nimport {Rect} from '@react-stately/virtualizer';\nimport SortDownArrow from '../s2wf-icons/S2_Icon_SortDown_20_N.svg';\nimport SortUpArrow from '../s2wf-icons/S2_Icon_SortUp_20_N.svg';\nimport {useDOMRef} from '@react-spectrum/utils';\nimport {useLoadMore} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useScale} from './utils';\nimport {VisuallyHidden} from 'react-aria';\n\ninterface S2TableProps {\n /** Whether the Table should be displayed with a quiet style. */\n isQuiet?: boolean,\n /**\n * Sets the amount of vertical padding within each cell.\n * @default 'regular'\n */\n density?: 'compact' | 'spacious' | 'regular',\n /**\n * Sets the overflow behavior for the cell contents.\n * @default 'truncate'\n */\n overflowMode?: 'wrap' | 'truncate',\n // TODO: will we contine with onAction or rename to onRowAction like it is in RAC?\n /** Handler that is called when a user performs an action on a row. */\n onAction?: (key: Key) => void,\n /**\n * Handler that is called when a user starts a column resize.\n */\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called when a user performs a column resize.\n * Can be used with the width property on columns to put the column widths into\n * a controlled state.\n */\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called after a user performs a column resize.\n * Can be used to store the widths of columns for another future session.\n */\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void,\n /** The current loading state of the table. */\n loadingState?: LoadingState,\n /** Handler that is called when more items should be loaded, e.g. while scrolling near the bottom. */\n onLoadMore?: () => any\n}\n\n// TODO: Note that loadMore and loadingState are now on the Table instead of on the TableBody\nexport interface TableViewProps extends Omit<RACTableProps, 'style' | 'disabledBehavior' | 'className' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks'>, UnsafeStyles, S2TableProps {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight\n}\n\nlet InternalTableContext = createContext<TableViewProps & {layout?: S2TableLayout<unknown>, setIsInResizeMode?:(val: boolean) => void, isInResizeMode?: boolean}>({});\n\nconst tableWrapper = style({\n minHeight: 0,\n minWidth: 0,\n display: 'flex',\n isolation: 'isolate',\n disableTapHighlight: true\n});\n\nconst table = style<TableRenderProps & S2TableProps & {isCheckboxSelection?: boolean}>({\n width: 'full',\n userSelect: 'none',\n minHeight: 0,\n minWidth: 0,\n fontFamily: 'sans',\n fontWeight: 'normal',\n overflow: 'auto',\n backgroundColor: {\n default: 'gray-25',\n isQuiet: 'transparent',\n forcedColors: 'Background'\n },\n outlineColor: {\n default: 'gray-300',\n isFocusVisible: 'focus-ring',\n forcedColors: 'ButtonBorder'\n },\n outlineWidth: {\n default: 1,\n isQuiet: 0,\n isFocusVisible: 2\n },\n outlineStyle: 'solid',\n borderRadius: {\n default: size(6),\n isQuiet: 'none'\n },\n // Multiple browser bugs from scrollIntoView and scrollPadding:\n // Bug: Table doesn't scroll items into view perfectly in Chrome\n // https://issues.chromium.org/issues/365913982\n // Bug: Table scrolls to the left when navigating up/down through the checkboxes when body is scrolled to the right.\n // https://issues.chromium.org/issues/40067778\n // https://bugs.webkit.org/show_bug.cgi?id=272799\n // Base reproduction: https://codepen.io/lfdanlu/pen/zYVVGPW\n scrollPaddingTop: 32,\n scrollPaddingStart: {\n isCheckboxSelection: 40\n }\n}, getAllowedOverrides({height: true}));\n\n// component-height-100\nconst DEFAULT_HEADER_HEIGHT = {\n medium: 32,\n large: 40\n};\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32, // table-row-height-medium-compact (aka component-height-100)\n large: 40\n },\n regular: {\n medium: 40, // table-row-height-medium-regular\n large: 50\n },\n spacious: {\n medium: 48, // table-row-height-medium-spacious\n large: 60\n }\n};\n\nexport class S2TableLayout<T> extends UNSTABLE_TableLayout<T> {\n constructor(options) {\n super({...options, loaderHeight: 60});\n }\n\n protected isStickyColumn(node: GridNode<T>): boolean {\n return node.props.isSticky;\n }\n\n protected buildCollection(): LayoutNode[] {\n let [header, body] = super.buildCollection();\n let {children, layoutInfo} = body;\n // TableLayout's buildCollection always sets the body width to the max width between the header width, but\n // we want the body to be sticky and only as wide as the table so it is always in view if loading/empty\n if (children?.length === 0) {\n layoutInfo.rect.width = this.virtualizer.visibleRect.width - 80;\n }\n\n return [\n header,\n body\n ];\n }\n\n protected buildLoader(node: Node<T>, x: number, y: number): LayoutNode {\n let layoutNode = super.buildLoader(node, x, y);\n let {layoutInfo} = layoutNode;\n layoutInfo.allowOverflow = true;\n layoutInfo.rect.width = this.virtualizer.visibleRect.width;\n layoutInfo.isSticky = true;\n return layoutNode;\n }\n\n protected buildBody(y: number): LayoutNode {\n let layoutNode = super.buildBody(y);\n let {children, layoutInfo} = layoutNode;\n // Needs overflow for sticky loader\n layoutInfo.allowOverflow = true;\n // If loading or empty, we'll want the body to be sticky and centered\n if (children?.length === 0) {\n layoutInfo.rect = new Rect(40, 40, this.virtualizer.visibleRect.width - 80, this.virtualizer.visibleRect.height - 80);\n layoutInfo.isSticky = true;\n }\n\n return {...layoutNode, layoutInfo};\n }\n\n protected buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let layoutNode = super.buildRow(node, x, y);\n layoutNode.layoutInfo.allowOverflow = true;\n // Needs overflow for sticky selection/drag cells\n return layoutNode;\n }\n\n protected buildTableHeader(): LayoutNode {\n let layoutNode = super.buildTableHeader();\n // Needs overflow for sticky selection/drag column\n layoutNode.layoutInfo.allowOverflow = true;\n return layoutNode;\n }\n\n protected buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let layoutNode = super.buildColumn(node, x, y);\n // Needs overflow for the resize handle\n layoutNode.layoutInfo.allowOverflow = true;\n return layoutNode;\n }\n}\n\nfunction TableView(props: TableViewProps, ref: DOMRef<HTMLDivElement>) {\n let {\n UNSAFE_style,\n UNSAFE_className,\n isQuiet = false,\n density = 'regular',\n overflowMode = 'truncate',\n styles,\n loadingState,\n onLoadMore,\n onResize: propsOnResize,\n onResizeStart: propsOnResizeStart,\n onResizeEnd: propsOnResizeEnd,\n onAction,\n ...otherProps\n } = props;\n\n let domRef = useDOMRef(ref);\n let scale = useScale();\n let layout = useMemo(() => {\n return new S2TableLayout({\n rowHeight: overflowMode === 'wrap'\n ? undefined\n : ROW_HEIGHTS[density][scale],\n estimatedRowHeight: overflowMode === 'wrap'\n ? ROW_HEIGHTS[density][scale]\n : undefined,\n // No need for estimated headingHeight since the headers aren't affected by overflow mode: wrap\n headingHeight: DEFAULT_HEADER_HEIGHT[scale]\n });\n }, [overflowMode, density, scale]);\n\n // Starts when the user selects resize from the menu, ends when resizing ends\n // used to control the visibility of the resizer Nubbin\n let [isInResizeMode, setIsInResizeMode] = useState(false);\n let onResizeStart = useCallback((widths) => {\n propsOnResizeStart?.(widths);\n }, [propsOnResizeStart]);\n let onResizeEnd = useCallback((widths) => {\n setIsInResizeMode(false);\n propsOnResizeEnd?.(widths);\n }, [propsOnResizeEnd, setIsInResizeMode]);\n\n let context = useMemo(() => ({\n isQuiet,\n density,\n overflowMode,\n loadingState,\n isInResizeMode,\n setIsInResizeMode\n }), [isQuiet, density, overflowMode, loadingState, isInResizeMode, setIsInResizeMode]);\n\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n let scrollRef = useRef(null);\n let memoedLoadMoreProps = useMemo(() => ({\n isLoading: isLoading,\n onLoadMore\n }), [isLoading, onLoadMore]);\n useLoadMore(memoedLoadMoreProps, scrollRef);\n let isCheckboxSelection = props.selectionMode === 'multiple' || props.selectionMode === 'single';\n\n return (\n <ResizableTableContainer\n // TODO: perhaps this ref should be attached to the RACTable but it expects a table type ref which isn't true in the virtualized case\n ref={domRef}\n onResize={propsOnResize}\n onResizeEnd={onResizeEnd}\n onResizeStart={onResizeStart}\n className={(UNSAFE_className || '') + mergeStyles(tableWrapper, styles)}\n style={UNSAFE_style}>\n <UNSTABLE_Virtualizer layout={layout}>\n <InternalTableContext.Provider value={context}>\n <RACTable\n ref={scrollRef}\n // Fix webkit bug where scrollbars appear above the checkboxes/other table elements\n style={{WebkitTransform: 'translateZ(0)'}}\n className={renderProps => table({\n ...renderProps,\n isCheckboxSelection,\n isQuiet\n })}\n selectionBehavior=\"toggle\"\n onRowAction={onAction}\n {...otherProps} />\n </InternalTableContext.Provider>\n </UNSTABLE_Virtualizer>\n </ResizableTableContainer>\n );\n}\n\nconst centeredWrapper = style({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'full',\n height: 'full'\n});\n\nexport interface TableBodyProps<T> extends Omit<RACTableBodyProps<T>, 'style' | 'className' | 'dependencies'> {}\n\n/**\n * The body of a `<Table>`, containing the table rows.\n */\nexport function TableBody<T extends object>(props: TableBodyProps<T>) {\n let {items, renderEmptyState, children} = props;\n let {loadingState} = useContext(InternalTableContext);\n let emptyRender;\n let renderer = children;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let loadMoreSpinner = (\n <UNSTABLE_TableLoadingIndicator className={style({height: 'full', width: 'full'})}>\n <div className={centeredWrapper}>\n <ProgressCircle\n isIndeterminate\n aria-label={stringFormatter.format('table.loadingMore')} />\n </div>\n </UNSTABLE_TableLoadingIndicator>\n );\n\n // If the user is rendering their rows in dynamic fashion, wrap their render function in Collection so we can inject\n // the loader. Otherwise it is a static renderer and thus we can simply add the table loader after\n // TODO: this assumes that the user isn't providing their children in some wrapper though and/or isn't doing a map of children\n // (though I guess they wouldn't provide items then so the check for this is still valid in the latter case)...\n if (typeof children === 'function' && items) {\n renderer = (\n <>\n <Collection items={items}>\n {children}\n </Collection>\n {loadingState === 'loadingMore' && loadMoreSpinner}\n </>\n );\n } else {\n renderer = (\n <>\n {children}\n {loadingState === 'loadingMore' && loadMoreSpinner}\n </>\n );\n }\n\n if (renderEmptyState != null && loadingState !== 'loading') {\n emptyRender = (props: TableBodyRenderProps) => (\n <div className={centeredWrapper}>\n {renderEmptyState(props)}\n </div>\n );\n } else if (loadingState === 'loading') {\n emptyRender = () => (\n <div className={centeredWrapper}>\n <ProgressCircle\n isIndeterminate\n aria-label={stringFormatter.format('table.loading')} />\n </div>\n );\n }\n\n return (\n <RACTableBody\n className={style({height: 'full'})}\n {...props}\n renderEmptyState={emptyRender}\n dependencies={[loadingState]}>\n {renderer}\n </RACTableBody>\n );\n}\n\nconst cellFocus = {\n outlineStyle: {\n default: 'none',\n isFocusVisible: 'solid'\n },\n outlineOffset: -2,\n outlineWidth: 2,\n outlineColor: 'focus-ring',\n borderRadius: size(6)\n} as const;\n\nfunction CellFocusRing() {\n return <div role=\"presentation\" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />;\n}\n\nconst columnStyles = style({\n height: '[inherit]',\n boxSizing: 'border-box',\n color: {\n default: 'neutral',\n forcedColors: 'ButtonText'\n },\n paddingX: {\n default: 16,\n isColumnResizable: 0\n },\n textAlign: {\n align: {\n start: 'start',\n center: 'center',\n end: 'end'\n }\n },\n outlineStyle: 'none',\n position: 'relative',\n fontSize: 'control',\n fontFamily: 'sans',\n fontWeight: 'bold',\n display: 'flex',\n borderColor: {\n default: 'gray-300',\n forcedColors: 'ButtonBorder'\n },\n borderTopWidth: {\n default: 0,\n isQuiet: 1\n },\n borderBottomWidth: 1,\n borderStartWidth: 0,\n borderEndWidth: {\n default: 0,\n isColumnResizable: 1\n },\n borderStyle: 'solid',\n forcedColorAdjust: 'none'\n});\n\nexport interface ColumnProps extends RACColumnProps {\n /** Whether the column should render a divider between it and the next column. */\n showDivider?: boolean,\n /** Whether the column allows resizing. */\n allowsResizing?: boolean,\n /**\n * The alignment of the column's contents relative to its allotted width.\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end',\n /** The content to render as the column header. */\n children: ReactNode\n}\n\n/**\n * A column within a `<Table>`.\n */\nexport function Column(props: ColumnProps) {\n let {isHeaderRowHovered} = useContext(InternalTableHeaderContext);\n let {isQuiet} = useContext(InternalTableContext);\n let {allowsResizing, children, align = 'start'} = props;\n let isColumnResizable = allowsResizing;\n\n return (\n <RACColumn {...props} style={{borderInlineEndColor: 'transparent'}} className={renderProps => columnStyles({...renderProps, isColumnResizable, align, isQuiet})}>\n {({allowsSorting, sortDirection, isFocusVisible, sort, startResize, isHovered}) => (\n <>\n {/* Note this is mainly for column's without a dropdown menu. If there is a dropdown menu, the button is styled to have a focus ring for simplicity\n (no need to juggle showing this focus ring if focus is on the menu button and not if it is on the resizer) */}\n {/* Separate absolutely positioned element because appyling the ring on the column directly via outline means the ring's required borderRadius will cause the bottom gray border to curve as well */}\n {isFocusVisible && <CellFocusRing />}\n {isColumnResizable ?\n (\n <ResizableColumnContents allowsSorting={allowsSorting} sortDirection={sortDirection} sort={sort} startResize={startResize} isHovered={isHeaderRowHovered || isHovered} align={align}>\n {children}\n </ResizableColumnContents>\n ) : (\n <ColumnContents allowsSorting={allowsSorting} sortDirection={sortDirection}>\n {children}\n </ColumnContents>\n )\n }\n </>\n )}\n </RACColumn>\n );\n}\n\nconst columnContentWrapper = style({\n minWidth: 0,\n display: 'flex',\n alignItems: 'center',\n width: 'full'\n});\n\nconst sortIcon = style({\n size: fontRelative(16),\n flexShrink: 0,\n marginEnd: {\n default: 8,\n isButton: 'text-to-visual'\n },\n verticalAlign: {\n default: 'bottom',\n isButton: 0\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\ninterface ColumnContentProps extends Pick<ColumnRenderProps, 'allowsSorting' | 'sortDirection'>, Pick<ColumnProps, 'children'> {}\n\nfunction ColumnContents(props: ColumnContentProps) {\n let {allowsSorting, sortDirection, children} = props;\n\n return (\n <div className={columnContentWrapper}>\n {allowsSorting && (\n <Provider\n values={[\n [IconContext, {\n styles: sortIcon({})\n }]\n ]}>\n {sortDirection != null && (\n sortDirection === 'ascending' ? <SortUpArrow /> : <SortDownArrow />\n )}\n </Provider>\n )}\n <span className={style({truncate: true, width: 'full'})}>\n {children}\n </span>\n </div>\n );\n}\n\nconst resizableMenuButtonWrapper = style({\n ...cellFocus,\n color: 'gray-800', // body-color\n width: 'full',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: {\n align: {\n default: 'start',\n center: 'center',\n end: 'end'\n }\n },\n // TODO: when align: end, the dropdown arrow is misaligned with the text, not sure how best to make the svg be flush with the end of the button other than modifying the\n // paddingEnd\n paddingX: 16,\n backgroundColor: 'transparent',\n borderStyle: 'none',\n fontSize: 'control',\n fontFamily: 'sans',\n fontWeight: 'bold'\n});\n\nconst resizerHandleContainer = style({\n display: {\n default: 'none',\n isResizing: 'block',\n isHovered: 'block'\n },\n width: 12,\n height: 'full',\n position: 'absolute',\n top: 0,\n insetEnd: size(-6),\n cursor: {\n default: 'none',\n resizableDirection: {\n 'left': 'e-resize',\n 'right': 'w-resize',\n 'both': 'ew-resize'\n }\n },\n // So that the user can still hover + drag the resizer even though it's hit area is partially in the adjacent column's space\n '--focus-ring-color': {\n type: 'outlineColor',\n value: 'focus-ring'\n }\n});\n\nconst resizerHandle = style({\n backgroundColor: {\n default: 'transparent',\n isHovered: 'gray-300',\n isFocusVisible: '--focus-ring-color',\n isResizing: '--focus-ring-color',\n forcedColors: {\n default: 'Background',\n isHovered: 'ButtonBorder',\n isFocusVisible: 'Highlight',\n isResizing: 'Highlight'\n }\n },\n height: {\n default: 'full',\n isResizing: 'screen'\n },\n width: {\n default: size(1),\n isResizing: size(2)\n },\n position: 'absolute',\n insetStart: size(6)\n});\n\nconst columnHeaderText = style({\n truncate: true,\n // Make it so the text doesn't completely disappear when column is resized to smallest width + both sort and chevron icon is rendered\n minWidth: fontRelative(16),\n flexGrow: 0,\n flexShrink: 1,\n flexBasis: 'auto'\n});\n\nconst chevronIcon = style({\n rotate: 90,\n marginStart: 'text-to-visual',\n minWidth: fontRelative(16),\n flexShrink: 0,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nconst nubbin = style({\n position: 'absolute',\n top: 0,\n insetStart: size(-1),\n size: fontRelative(16),\n fill: {\n default: '--focus-ring-color',\n forcedColors: 'Highlight'\n },\n '--iconPrimary': {\n type: 'fill',\n value: {\n default: 'white',\n forcedColors: 'HighlightText'\n }\n }\n});\n\ninterface ResizableColumnContentProps extends Pick<ColumnRenderProps, 'allowsSorting' | 'sort' | 'sortDirection' | 'startResize' | 'isHovered'>, Pick<ColumnProps, 'align' | 'children'> {}\n\nfunction ResizableColumnContents(props: ResizableColumnContentProps) {\n let {allowsSorting, sortDirection, sort, startResize, children, isHovered, align} = props;\n let {setIsInResizeMode, isInResizeMode} = useContext(InternalTableContext);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n const onMenuSelect = (key) => {\n switch (key) {\n case 'sort-asc':\n sort('ascending');\n break;\n case 'sort-desc':\n sort('descending');\n break;\n case 'resize':\n setIsInResizeMode?.(true);\n startResize();\n break;\n }\n };\n\n let items = useMemo(() => {\n let options = [\n {\n label: stringFormatter.format('table.resizeColumn'),\n id: 'resize'\n }\n ];\n if (allowsSorting) {\n options = [\n {\n label: stringFormatter.format('table.sortAscending'),\n id: 'sort-asc'\n },\n {\n label: stringFormatter.format('table.sortDescending'),\n id: 'sort-desc'\n },\n ...options\n ];\n }\n return options;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allowsSorting]);\n\n let buttonAlignment = 'start';\n let menuAlign = 'start' as 'start' | 'end';\n if (align === 'center') {\n buttonAlignment = 'center';\n } else if (align === 'end') {\n buttonAlignment = 'end';\n menuAlign = 'end';\n }\n\n return (\n <>\n <MenuTrigger align={menuAlign}>\n <Button className={(renderProps) => resizableMenuButtonWrapper({...renderProps, align: buttonAlignment})}>\n {allowsSorting && (\n <Provider\n values={[\n [IconContext, {\n styles: sortIcon({isButton: true})\n }]\n ]}>\n {sortDirection != null && (\n sortDirection === 'ascending' ? <SortUpArrow /> : <SortDownArrow />\n )}\n </Provider>\n )}\n <div className={columnHeaderText}>\n {children}\n </div>\n <Chevron size=\"M\" className={chevronIcon} />\n </Button>\n <Menu onAction={onMenuSelect} items={items} styles={style({minWidth: 128})}>\n {(item) => <MenuItem>{item?.label}</MenuItem>}\n </Menu>\n </MenuTrigger>\n <div data-react-aria-prevent-focus=\"true\">\n <ColumnResizer data-react-aria-prevent-focus=\"true\" className={({resizableDirection, isResizing}) => resizerHandleContainer({resizableDirection, isResizing, isHovered: isInResizeMode || isHovered})}>\n {({isFocusVisible, isResizing}) => (\n <>\n <ResizerIndicator isInResizeMode={isInResizeMode} isFocusVisible={isFocusVisible} isHovered={isHovered} isResizing={isResizing} />\n {(isFocusVisible || isInResizeMode) && isResizing && <div className={nubbin}><Nubbin /></div>}\n </>\n )}\n </ColumnResizer>\n </div>\n </>\n );\n}\n\nfunction ResizerIndicator({isFocusVisible, isHovered, isResizing, isInResizeMode}) {\n return (\n <div className={resizerHandle({isFocusVisible, isHovered: isHovered || isInResizeMode, isResizing})} />\n );\n}\n\nconst tableHeader = style({\n height: 'full',\n width: 'full',\n backgroundColor: 'gray-75',\n // Attempt to prevent 1px area where you can see scrolled cell content between the table outline and the table header\n marginTop: '[-1px]'\n});\n\nconst selectAllCheckbox = style({\n marginStart: 16 // table-edge-to-content, same between mobile and desktop\n});\n\nconst selectAllCheckboxColumn = style({\n padding: 0,\n height: 'full',\n boxSizing: 'border-box',\n outlineStyle: 'none',\n position: 'relative',\n alignContent: 'center',\n borderColor: {\n default: 'gray-300',\n forcedColors: 'ButtonBorder'\n },\n borderXWidth: 0,\n borderTopWidth: {\n default: 0,\n isQuiet: 1\n },\n borderBottomWidth: 1,\n borderStyle: 'solid',\n backgroundColor: 'gray-75'\n});\n\nlet InternalTableHeaderContext = createContext<{isHeaderRowHovered?: boolean}>({isHeaderRowHovered: false});\n\nexport interface TableHeaderProps<T> extends Omit<RACTableHeaderProps<T>, 'style' | 'className' | 'dependencies' | 'onHoverChange' | 'onHoverStart' | 'onHoverEnd'> {}\n\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nexport function TableHeader<T extends object>({columns, children}: TableHeaderProps<T>) {\n let scale = useScale();\n let {selectionBehavior, selectionMode} = useTableOptions();\n let {isQuiet} = useContext(InternalTableContext);\n let [isHeaderRowHovered, setHeaderRowHovered] = useState(false);\n\n return (\n <InternalTableHeaderContext.Provider value={{isHeaderRowHovered}}>\n <RACTableHeader onHoverChange={setHeaderRowHovered} className={tableHeader}>\n {/* Add extra columns for selection. */}\n {selectionBehavior === 'toggle' && (\n // Also isSticky prop is applied just for the layout, will decide what the RAC api should be later\n // @ts-ignore\n <RACColumn isSticky width={scale === 'medium' ? 40 : 52} minWidth={scale === 'medium' ? 40 : 52} className={selectAllCheckboxColumn({isQuiet})}>\n {({isFocusVisible}) => (\n <>\n {selectionMode === 'single' &&\n <>\n {isFocusVisible && <CellFocusRing />}\n <VisuallyHiddenSelectAllLabel />\n </>\n }\n {selectionMode === 'multiple' &&\n <Checkbox isEmphasized styles={selectAllCheckbox} slot=\"selection\" />\n }\n </>\n )}\n </RACColumn>\n )}\n <Collection items={columns}>\n {children}\n </Collection>\n </RACTableHeader>\n </InternalTableHeaderContext.Provider>\n );\n}\n\nfunction VisuallyHiddenSelectAllLabel() {\n let checkboxProps = useSlottedContext(RACCheckboxContext, 'selection');\n\n return (\n <VisuallyHidden>{checkboxProps?.['aria-label']}</VisuallyHidden>\n );\n}\n\nconst commonCellStyles = {\n borderColor: 'transparent',\n borderBottomWidth: 1,\n borderTopWidth: 0,\n borderXWidth: 0,\n borderStyle: 'solid',\n position: 'relative',\n color: {\n default: 'gray-800',\n forcedColors: 'ButtonText'\n },\n outlineStyle: 'none',\n paddingX: 16 // table-edge-to-content\n} as const;\n\nconst cell = style<CellRenderProps & S2TableProps & {isDivider: boolean}>({\n ...commonCellStyles,\n color: 'neutral',\n paddingY: centerPadding(),\n minHeight: {\n default: 40,\n density: {\n compact: 32,\n spacious: 48\n }\n },\n boxSizing: 'border-box',\n height: 'full',\n width: 'full',\n fontSize: 'control',\n alignItems: 'center',\n display: 'flex',\n borderStyle: {\n default: 'none',\n isDivider: 'solid'\n },\n borderEndWidth: {\n default: 0,\n isDivider: 1\n },\n borderColor: {\n default: 'gray-300',\n forcedColors: 'ButtonBorder'\n }\n});\n\nconst stickyCell = {\n backgroundColor: 'gray-25'\n} as const;\n\nconst checkboxCellStyle = style({\n ...commonCellStyles,\n ...stickyCell,\n paddingStart: 16,\n alignContent: 'center',\n height: '[calc(100% - 1px)]',\n borderBottomWidth: 0,\n backgroundColor: '--rowBackgroundColor'\n});\n\nconst cellContent = style({\n truncate: true,\n whiteSpace: {\n default: 'nowrap',\n overflowMode: {\n wrap: 'normal'\n }\n },\n textAlign: {\n align: {\n start: 'start',\n center: 'center',\n end: 'end'\n }\n },\n width: 'full',\n isolation: 'isolate',\n padding: {\n default: 4,\n isSticky: 0\n },\n margin: {\n default: -4,\n isSticky: 0\n },\n backgroundColor: {\n default: 'transparent',\n isSticky: '--rowBackgroundColor'\n }\n});\n\nexport interface CellProps extends RACCellProps, Pick<ColumnProps, 'align' | 'showDivider'> {\n /** @private */\n isSticky?: boolean,\n /** The content to render as the cell children. */\n children: ReactNode\n}\n\n/**\n * A cell within a table row.\n */\nexport function Cell(props: CellProps) {\n let {children, isSticky, showDivider = false, align, textValue, ...otherProps} = props;\n let tableVisualOptions = useContext(InternalTableContext);\n textValue ||= typeof children === 'string' ? children : undefined;\n\n return (\n <RACCell\n // Also isSticky prop is applied just for the layout, will decide what the RAC api should be later\n // @ts-ignore\n isSticky={isSticky}\n className={renderProps => cell({\n ...renderProps,\n ...tableVisualOptions,\n isDivider: showDivider\n })}\n textValue={textValue}\n {...otherProps}>\n {({isFocusVisible}) => (\n <>\n {isFocusVisible && <CellFocusRing />}\n <span className={cellContent({...tableVisualOptions, isSticky, align: align || 'start'})}>{children}</span>\n </>\n )}\n </RACCell>\n );\n}\n\n// Use color-mix instead of transparency so sticky cells work correctly.\nconst selectedBackground = lightDark(colorMix('gray-25', 'informative-900', 10), colorMix('gray-25', 'informative-700', 10));\nconst selectedActiveBackground = lightDark(colorMix('gray-25', 'informative-900', 15), colorMix('gray-25', 'informative-700', 15));\nconst rowBackgroundColor = {\n default: {\n default: 'gray-25',\n isQuiet: 'transparent'\n },\n isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 7), // table-row-hover-color\n isHovered: colorMix('gray-25', 'gray-900', 7), // table-row-hover-color\n isPressed: colorMix('gray-25', 'gray-900', 10), // table-row-hover-color\n isSelected: {\n default: selectedBackground, // table-selected-row-background-color, opacity /10\n isFocusVisibleWithin: selectedActiveBackground, // table-selected-row-background-color, opacity /15\n isHovered: selectedActiveBackground, // table-selected-row-background-color, opacity /15\n isPressed: selectedActiveBackground // table-selected-row-background-color, opacity /15\n },\n forcedColors: {\n default: 'Background'\n }\n} as const;\n\nconst row = style<RowRenderProps & S2TableProps>({\n height: 'full',\n position: 'relative',\n boxSizing: 'border-box',\n backgroundColor: '--rowBackgroundColor',\n '--rowBackgroundColor': {\n type: 'backgroundColor',\n value: rowBackgroundColor\n },\n '--rowFocusIndicatorColor': {\n type: 'outlineColor',\n value: {\n default: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n // TODO: outline here is to emulate v3 forcedColors experience but runs into the same problem where the sticky column covers the outline\n // This doesn't quite work because it gets cut off by the checkbox cell background masking element, figure out another way. Could shrink the checkbox cell's content even more\n // and offset it by margin top but that messes up the checkbox centering a bit\n // outlineWidth: {\n // forcedColors: {\n // isFocusVisible: 2\n // }\n // },\n // outlineOffset: {\n // forcedColors: {\n // isFocusVisible: -1\n // }\n // },\n // outlineColor: {\n // forcedColors: {\n // isFocusVisible: 'ButtonBorder'\n // }\n // },\n // outlineStyle: {\n // default: 'none',\n // forcedColors: {\n // isFocusVisible: 'solid'\n // }\n // },\n outlineStyle: 'none',\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderStartWidth: 0,\n borderEndWidth: 0,\n borderStyle: 'solid',\n borderColor: {\n default: 'gray-300',\n forcedColors: 'ButtonBorder'\n },\n forcedColorAdjust: 'none'\n});\n\nexport interface RowProps<T> extends Pick<RACRowProps<T>, 'id' | 'columns' | 'children' | 'textValue'> {}\n\n/**\n * A row within a `<Table>`.\n */\nexport function Row<T extends object>({id, columns, children, ...otherProps}: RowProps<T>) {\n let {selectionBehavior, selectionMode} = useTableOptions();\n let tableVisualOptions = useContext(InternalTableContext);\n\n return (\n <RACRow\n id={id}\n className={renderProps => row({\n ...renderProps,\n ...tableVisualOptions\n }) + (renderProps.isFocusVisible && ' ' + raw('&:before { content: \"\"; display: inline-block; position: sticky; inset-inline-start: 0; width: 3px; height: 100%; margin-inline-end: -3px; margin-block-end: 1px; z-index: 3; background-color: var(--rowFocusIndicatorColor)'))}\n {...otherProps}>\n {selectionMode !== 'none' && selectionBehavior === 'toggle' && (\n <Cell isSticky className={checkboxCellStyle}>\n <Checkbox isEmphasized slot=\"selection\" />\n </Cell>\n )}\n <Collection items={columns}>\n {children}\n </Collection>\n </RACRow>\n );\n}\n\n/**\n * Tables are containers for displaying information. They allow users to quickly scan, sort, compare, and take action on large amounts of data.\n */\nconst _TableView = forwardRef(TableView);\nexport {_TableView as TableView};\n"],"names":[],"version":3,"file":"TableView.mjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/TableView.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Button,\n CellRenderProps,\n Collection,\n ColumnRenderProps,\n ColumnResizer,\n ContextValue,\n Key,\n Provider,\n Cell as RACCell,\n CellProps as RACCellProps,\n CheckboxContext as RACCheckboxContext,\n Column as RACColumn,\n ColumnProps as RACColumnProps,\n Row as RACRow,\n RowProps as RACRowProps,\n Table as RACTable,\n TableBody as RACTableBody,\n TableBodyProps as RACTableBodyProps,\n TableHeader as RACTableHeader,\n TableHeaderProps as RACTableHeaderProps,\n TableProps as RACTableProps,\n ResizableTableContainer,\n RowRenderProps,\n TableBodyRenderProps,\n TableRenderProps,\n UNSTABLE_TableLayout,\n UNSTABLE_TableLoadingIndicator,\n UNSTABLE_Virtualizer,\n useSlottedContext,\n useTableOptions\n} from 'react-aria-components';\nimport {centerPadding, getAllowedOverrides, StylesPropWithHeight, UnsafeStyles} from './style-utils' with {type: 'macro'};\nimport {Checkbox} from './Checkbox';\nimport Chevron from '../ui-icons/Chevron';\nimport {colorMix, fontRelative, lightDark, size, style} from '../style/spectrum-theme' with {type: 'macro'};\nimport {ColumnSize} from '@react-types/table';\nimport {DOMRef, DOMRefValue, forwardRefType, LoadingState, Node} from '@react-types/shared';\nimport {GridNode} from '@react-types/grid';\nimport {IconContext} from './Icon';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {LayoutNode} from '@react-stately/layout';\nimport {Menu, MenuItem, MenuTrigger} from './Menu';\nimport {mergeStyles} from '../style/runtime';\nimport Nubbin from '../ui-icons/S2_Icon_MoveHorizontalCircleTableWidget_16_N.svg';\nimport {ProgressCircle} from './ProgressCircle';\nimport {raw} from '../style/style-macro' with {type: 'macro'};\nimport React, {createContext, forwardRef, ReactNode, useCallback, useContext, useMemo, useRef, useState} from 'react';\nimport {Rect} from '@react-stately/virtualizer';\nimport SortDownArrow from '../s2wf-icons/S2_Icon_SortDown_20_N.svg';\nimport SortUpArrow from '../s2wf-icons/S2_Icon_SortUp_20_N.svg';\nimport {useDOMRef} from '@react-spectrum/utils';\nimport {useLoadMore} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useScale} from './utils';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\nimport {VisuallyHidden} from 'react-aria';\n\ninterface S2TableProps {\n /** Whether the Table should be displayed with a quiet style. */\n isQuiet?: boolean,\n /**\n * Sets the amount of vertical padding within each cell.\n * @default 'regular'\n */\n density?: 'compact' | 'spacious' | 'regular',\n /**\n * Sets the overflow behavior for the cell contents.\n * @default 'truncate'\n */\n overflowMode?: 'wrap' | 'truncate',\n // TODO: will we contine with onAction or rename to onRowAction like it is in RAC?\n /** Handler that is called when a user performs an action on a row. */\n onAction?: (key: Key) => void,\n /**\n * Handler that is called when a user starts a column resize.\n */\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called when a user performs a column resize.\n * Can be used with the width property on columns to put the column widths into\n * a controlled state.\n */\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called after a user performs a column resize.\n * Can be used to store the widths of columns for another future session.\n */\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void,\n /** The current loading state of the table. */\n loadingState?: LoadingState,\n /** Handler that is called when more items should be loaded, e.g. while scrolling near the bottom. */\n onLoadMore?: () => any\n}\n\n// TODO: Note that loadMore and loadingState are now on the Table instead of on the TableBody\nexport interface TableViewProps extends Omit<RACTableProps, 'style' | 'disabledBehavior' | 'className' | 'onRowAction' | 'selectionBehavior' | 'onScroll' | 'onCellAction' | 'dragAndDropHooks'>, UnsafeStyles, S2TableProps {\n /** Spectrum-defined styles, returned by the `style()` macro. */\n styles?: StylesPropWithHeight\n}\n\nlet InternalTableContext = createContext<TableViewProps & {layout?: S2TableLayout<unknown>, setIsInResizeMode?:(val: boolean) => void, isInResizeMode?: boolean}>({});\n\nconst tableWrapper = style({\n minHeight: 0,\n minWidth: 0,\n display: 'flex',\n isolation: 'isolate',\n disableTapHighlight: true\n});\n\nconst table = style<TableRenderProps & S2TableProps & {isCheckboxSelection?: boolean}>({\n width: 'full',\n userSelect: 'none',\n minHeight: 0,\n minWidth: 0,\n fontFamily: 'sans',\n fontWeight: 'normal',\n overflow: 'auto',\n backgroundColor: {\n default: 'gray-25',\n isQuiet: 'transparent',\n forcedColors: 'Background'\n },\n outlineColor: {\n default: 'gray-300',\n isFocusVisible: 'focus-ring',\n forcedColors: 'ButtonBorder'\n },\n outlineWidth: {\n default: 1,\n isQuiet: 0,\n isFocusVisible: 2\n },\n outlineStyle: 'solid',\n borderRadius: {\n default: size(6),\n isQuiet: 'none'\n },\n // Multiple browser bugs from scrollIntoView and scrollPadding:\n // Bug: Table doesn't scroll items into view perfectly in Chrome\n // https://issues.chromium.org/issues/365913982\n // Bug: Table scrolls to the left when navigating up/down through the checkboxes when body is scrolled to the right.\n // https://issues.chromium.org/issues/40067778\n // https://bugs.webkit.org/show_bug.cgi?id=272799\n // Base reproduction: https://codepen.io/lfdanlu/pen/zYVVGPW\n scrollPaddingTop: 32,\n scrollPaddingStart: {\n isCheckboxSelection: 40\n }\n}, getAllowedOverrides({height: true}));\n\n// component-height-100\nconst DEFAULT_HEADER_HEIGHT = {\n medium: 32,\n large: 40\n};\n\nconst ROW_HEIGHTS = {\n compact: {\n medium: 32, // table-row-height-medium-compact (aka component-height-100)\n large: 40\n },\n regular: {\n medium: 40, // table-row-height-medium-regular\n large: 50\n },\n spacious: {\n medium: 48, // table-row-height-medium-spacious\n large: 60\n }\n};\n\nexport class S2TableLayout<T> extends UNSTABLE_TableLayout<T> {\n constructor(options) {\n super({...options, loaderHeight: 60});\n }\n\n protected isStickyColumn(node: GridNode<T>): boolean {\n return node.props.isSticky;\n }\n\n protected buildCollection(): LayoutNode[] {\n let [header, body] = super.buildCollection();\n let {children, layoutInfo} = body;\n // TableLayout's buildCollection always sets the body width to the max width between the header width, but\n // we want the body to be sticky and only as wide as the table so it is always in view if loading/empty\n if (children?.length === 0) {\n layoutInfo.rect.width = this.virtualizer.visibleRect.width - 80;\n }\n\n return [\n header,\n body\n ];\n }\n\n protected buildLoader(node: Node<T>, x: number, y: number): LayoutNode {\n let layoutNode = super.buildLoader(node, x, y);\n let {layoutInfo} = layoutNode;\n layoutInfo.allowOverflow = true;\n layoutInfo.rect.width = this.virtualizer.visibleRect.width;\n layoutInfo.isSticky = true;\n return layoutNode;\n }\n\n protected buildBody(y: number): LayoutNode {\n let layoutNode = super.buildBody(y);\n let {children, layoutInfo} = layoutNode;\n // Needs overflow for sticky loader\n layoutInfo.allowOverflow = true;\n // If loading or empty, we'll want the body to be sticky and centered\n if (children?.length === 0) {\n layoutInfo.rect = new Rect(40, 40, this.virtualizer.visibleRect.width - 80, this.virtualizer.visibleRect.height - 80);\n layoutInfo.isSticky = true;\n }\n\n return {...layoutNode, layoutInfo};\n }\n\n protected buildRow(node: GridNode<T>, x: number, y: number): LayoutNode {\n let layoutNode = super.buildRow(node, x, y);\n layoutNode.layoutInfo.allowOverflow = true;\n // Needs overflow for sticky selection/drag cells\n return layoutNode;\n }\n\n protected buildTableHeader(): LayoutNode {\n let layoutNode = super.buildTableHeader();\n // Needs overflow for sticky selection/drag column\n layoutNode.layoutInfo.allowOverflow = true;\n return layoutNode;\n }\n\n protected buildColumn(node: GridNode<T>, x: number, y: number): LayoutNode {\n let layoutNode = super.buildColumn(node, x, y);\n // Needs overflow for the resize handle\n layoutNode.layoutInfo.allowOverflow = true;\n return layoutNode;\n }\n}\n\nexport const TableContext = createContext<ContextValue<TableViewProps, DOMRefValue<HTMLDivElement>>>(null);\n\nfunction TableView(props: TableViewProps, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, TableContext);\n let {\n UNSAFE_style,\n UNSAFE_className,\n isQuiet = false,\n density = 'regular',\n overflowMode = 'truncate',\n styles,\n loadingState,\n onLoadMore,\n onResize: propsOnResize,\n onResizeStart: propsOnResizeStart,\n onResizeEnd: propsOnResizeEnd,\n onAction,\n ...otherProps\n } = props;\n\n let domRef = useDOMRef(ref);\n let scale = useScale();\n let layout = useMemo(() => {\n return new S2TableLayout({\n rowHeight: overflowMode === 'wrap'\n ? undefined\n : ROW_HEIGHTS[density][scale],\n estimatedRowHeight: overflowMode === 'wrap'\n ? ROW_HEIGHTS[density][scale]\n : undefined,\n // No need for estimated headingHeight since the headers aren't affected by overflow mode: wrap\n headingHeight: DEFAULT_HEADER_HEIGHT[scale]\n });\n }, [overflowMode, density, scale]);\n\n // Starts when the user selects resize from the menu, ends when resizing ends\n // used to control the visibility of the resizer Nubbin\n let [isInResizeMode, setIsInResizeMode] = useState(false);\n let onResizeStart = useCallback((widths) => {\n propsOnResizeStart?.(widths);\n }, [propsOnResizeStart]);\n let onResizeEnd = useCallback((widths) => {\n setIsInResizeMode(false);\n propsOnResizeEnd?.(widths);\n }, [propsOnResizeEnd, setIsInResizeMode]);\n\n let context = useMemo(() => ({\n isQuiet,\n density,\n overflowMode,\n loadingState,\n isInResizeMode,\n setIsInResizeMode\n }), [isQuiet, density, overflowMode, loadingState, isInResizeMode, setIsInResizeMode]);\n\n let isLoading = loadingState === 'loading' || loadingState === 'loadingMore';\n let scrollRef = useRef(null);\n let memoedLoadMoreProps = useMemo(() => ({\n isLoading: isLoading,\n onLoadMore\n }), [isLoading, onLoadMore]);\n useLoadMore(memoedLoadMoreProps, scrollRef);\n let isCheckboxSelection = props.selectionMode === 'multiple' || props.selectionMode === 'single';\n\n return (\n <ResizableTableContainer\n // TODO: perhaps this ref should be attached to the RACTable but it expects a table type ref which isn't true in the virtualized case\n ref={domRef}\n onResize={propsOnResize}\n onResizeEnd={onResizeEnd}\n onResizeStart={onResizeStart}\n className={(UNSAFE_className || '') + mergeStyles(tableWrapper, styles)}\n style={UNSAFE_style}>\n <UNSTABLE_Virtualizer layout={layout}>\n <InternalTableContext.Provider value={context}>\n <RACTable\n ref={scrollRef}\n // Fix webkit bug where scrollbars appear above the checkboxes/other table elements\n style={{WebkitTransform: 'translateZ(0)'}}\n className={renderProps => table({\n ...renderProps,\n isCheckboxSelection,\n isQuiet\n })}\n selectionBehavior=\"toggle\"\n onRowAction={onAction}\n {...otherProps} />\n </InternalTableContext.Provider>\n </UNSTABLE_Virtualizer>\n </ResizableTableContainer>\n );\n}\n\nconst centeredWrapper = style({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'full',\n height: 'full'\n});\n\nexport interface TableBodyProps<T> extends Omit<RACTableBodyProps<T>, 'style' | 'className' | 'dependencies'> {}\n\nfunction TableBody<T extends object>(props: TableBodyProps<T>, ref: DOMRef<HTMLDivElement>) {\n let {items, renderEmptyState, children} = props;\n let domRef = useDOMRef(ref);\n let {loadingState} = useContext(InternalTableContext);\n let emptyRender;\n let renderer = children;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let loadMoreSpinner = (\n <UNSTABLE_TableLoadingIndicator className={style({height: 'full', width: 'full'})}>\n <div className={centeredWrapper}>\n <ProgressCircle\n isIndeterminate\n aria-label={stringFormatter.format('table.loadingMore')} />\n </div>\n </UNSTABLE_TableLoadingIndicator>\n );\n\n // If the user is rendering their rows in dynamic fashion, wrap their render function in Collection so we can inject\n // the loader. Otherwise it is a static renderer and thus we can simply add the table loader after\n // TODO: this assumes that the user isn't providing their children in some wrapper though and/or isn't doing a map of children\n // (though I guess they wouldn't provide items then so the check for this is still valid in the latter case)...\n if (typeof children === 'function' && items) {\n renderer = (\n <>\n <Collection items={items}>\n {children}\n </Collection>\n {loadingState === 'loadingMore' && loadMoreSpinner}\n </>\n );\n } else {\n renderer = (\n <>\n {children}\n {loadingState === 'loadingMore' && loadMoreSpinner}\n </>\n );\n }\n\n if (renderEmptyState != null && loadingState !== 'loading') {\n emptyRender = (props: TableBodyRenderProps) => (\n <div className={centeredWrapper}>\n {renderEmptyState(props)}\n </div>\n );\n } else if (loadingState === 'loading') {\n emptyRender = () => (\n <div className={centeredWrapper}>\n <ProgressCircle\n isIndeterminate\n aria-label={stringFormatter.format('table.loading')} />\n </div>\n );\n }\n\n return (\n <RACTableBody\n // @ts-ignore\n ref={domRef}\n className={style({height: 'full'})}\n {...props}\n renderEmptyState={emptyRender}\n dependencies={[loadingState]}>\n {renderer}\n </RACTableBody>\n );\n}\n\n/**\n * The body of a `<Table>`, containing the table rows.\n */\nlet _TableBody = /*#__PURE__*/ (forwardRef as forwardRefType)(TableBody);\nexport {_TableBody as TableBody};\n\nconst cellFocus = {\n outlineStyle: {\n default: 'none',\n isFocusVisible: 'solid'\n },\n outlineOffset: -2,\n outlineWidth: 2,\n outlineColor: 'focus-ring',\n borderRadius: size(6)\n} as const;\n\nfunction CellFocusRing() {\n return <div role=\"presentation\" className={style({...cellFocus, position: 'absolute', inset: 0})({isFocusVisible: true})} />;\n}\n\nconst columnStyles = style({\n height: '[inherit]',\n boxSizing: 'border-box',\n color: {\n default: 'neutral',\n forcedColors: 'ButtonText'\n },\n paddingX: {\n default: 16,\n isColumnResizable: 0\n },\n textAlign: {\n align: {\n start: 'start',\n center: 'center',\n end: 'end'\n }\n },\n outlineStyle: 'none',\n position: 'relative',\n fontSize: 'control',\n fontFamily: 'sans',\n fontWeight: 'bold',\n display: 'flex',\n borderColor: {\n default: 'gray-300',\n forcedColors: 'ButtonBorder'\n },\n borderTopWidth: {\n default: 0,\n isQuiet: 1\n },\n borderBottomWidth: 1,\n borderStartWidth: 0,\n borderEndWidth: {\n default: 0,\n isColumnResizable: 1\n },\n borderStyle: 'solid',\n forcedColorAdjust: 'none'\n});\n\nexport interface ColumnProps extends RACColumnProps {\n /** Whether the column should render a divider between it and the next column. */\n showDivider?: boolean,\n /** Whether the column allows resizing. */\n allowsResizing?: boolean,\n /**\n * The alignment of the column's contents relative to its allotted width.\n * @default 'start'\n */\n align?: 'start' | 'center' | 'end',\n /** The content to render as the column header. */\n children: ReactNode\n}\n\n/**\n * A column within a `<Table>`.\n */\nexport const Column = forwardRef(function Column(props: ColumnProps, ref: DOMRef<HTMLDivElement>) {\n let {isHeaderRowHovered} = useContext(InternalTableHeaderContext);\n let {isQuiet} = useContext(InternalTableContext);\n let {allowsResizing, children, align = 'start'} = props;\n let domRef = useDOMRef(ref);\n let isColumnResizable = allowsResizing;\n\n return (\n <RACColumn {...props} ref={domRef} style={{borderInlineEndColor: 'transparent'}} className={renderProps => columnStyles({...renderProps, isColumnResizable, align, isQuiet})}>\n {({allowsSorting, sortDirection, isFocusVisible, sort, startResize, isHovered}) => (\n <>\n {/* Note this is mainly for column's without a dropdown menu. If there is a dropdown menu, the button is styled to have a focus ring for simplicity\n (no need to juggle showing this focus ring if focus is on the menu button and not if it is on the resizer) */}\n {/* Separate absolutely positioned element because appyling the ring on the column directly via outline means the ring's required borderRadius will cause the bottom gray border to curve as well */}\n {isFocusVisible && <CellFocusRing />}\n {isColumnResizable ?\n (\n <ResizableColumnContents allowsSorting={allowsSorting} sortDirection={sortDirection} sort={sort} startResize={startResize} isHovered={isHeaderRowHovered || isHovered} align={align}>\n {children}\n </ResizableColumnContents>\n ) : (\n <ColumnContents allowsSorting={allowsSorting} sortDirection={sortDirection}>\n {children}\n </ColumnContents>\n )\n }\n </>\n )}\n </RACColumn>\n );\n});\n\nconst columnContentWrapper = style({\n minWidth: 0,\n display: 'flex',\n alignItems: 'center',\n width: 'full'\n});\n\nconst sortIcon = style({\n size: fontRelative(16),\n flexShrink: 0,\n marginEnd: {\n default: 8,\n isButton: 'text-to-visual'\n },\n verticalAlign: {\n default: 'bottom',\n isButton: 0\n },\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\ninterface ColumnContentProps extends Pick<ColumnRenderProps, 'allowsSorting' | 'sortDirection'>, Pick<ColumnProps, 'children'> {}\n\nfunction ColumnContents(props: ColumnContentProps) {\n let {allowsSorting, sortDirection, children} = props;\n\n return (\n <div className={columnContentWrapper}>\n {allowsSorting && (\n <Provider\n values={[\n [IconContext, {\n styles: sortIcon({})\n }]\n ]}>\n {sortDirection != null && (\n sortDirection === 'ascending' ? <SortUpArrow /> : <SortDownArrow />\n )}\n </Provider>\n )}\n <span className={style({truncate: true, width: 'full'})}>\n {children}\n </span>\n </div>\n );\n}\n\nconst resizableMenuButtonWrapper = style({\n ...cellFocus,\n color: 'gray-800', // body-color\n width: 'full',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: {\n align: {\n default: 'start',\n center: 'center',\n end: 'end'\n }\n },\n // TODO: when align: end, the dropdown arrow is misaligned with the text, not sure how best to make the svg be flush with the end of the button other than modifying the\n // paddingEnd\n paddingX: 16,\n backgroundColor: 'transparent',\n borderStyle: 'none',\n fontSize: 'control',\n fontFamily: 'sans',\n fontWeight: 'bold'\n});\n\nconst resizerHandleContainer = style({\n display: {\n default: 'none',\n isResizing: 'block',\n isHovered: 'block'\n },\n width: 12,\n height: 'full',\n position: 'absolute',\n top: 0,\n insetEnd: size(-6),\n cursor: {\n default: 'none',\n resizableDirection: {\n 'left': 'e-resize',\n 'right': 'w-resize',\n 'both': 'ew-resize'\n }\n },\n // So that the user can still hover + drag the resizer even though it's hit area is partially in the adjacent column's space\n '--focus-ring-color': {\n type: 'outlineColor',\n value: 'focus-ring'\n }\n});\n\nconst resizerHandle = style({\n backgroundColor: {\n default: 'transparent',\n isHovered: 'gray-300',\n isFocusVisible: '--focus-ring-color',\n isResizing: '--focus-ring-color',\n forcedColors: {\n default: 'Background',\n isHovered: 'ButtonBorder',\n isFocusVisible: 'Highlight',\n isResizing: 'Highlight'\n }\n },\n height: {\n default: 'full',\n isResizing: 'screen'\n },\n width: {\n default: size(1),\n isResizing: size(2)\n },\n position: 'absolute',\n insetStart: size(6)\n});\n\nconst columnHeaderText = style({\n truncate: true,\n // Make it so the text doesn't completely disappear when column is resized to smallest width + both sort and chevron icon is rendered\n minWidth: fontRelative(16),\n flexGrow: 0,\n flexShrink: 1,\n flexBasis: 'auto'\n});\n\nconst chevronIcon = style({\n rotate: 90,\n marginStart: 'text-to-visual',\n minWidth: fontRelative(16),\n flexShrink: 0,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nconst nubbin = style({\n position: 'absolute',\n top: 0,\n insetStart: size(-1),\n size: fontRelative(16),\n fill: {\n default: '--focus-ring-color',\n forcedColors: 'Highlight'\n },\n '--iconPrimary': {\n type: 'fill',\n value: {\n default: 'white',\n forcedColors: 'HighlightText'\n }\n }\n});\n\ninterface ResizableColumnContentProps extends Pick<ColumnRenderProps, 'allowsSorting' | 'sort' | 'sortDirection' | 'startResize' | 'isHovered'>, Pick<ColumnProps, 'align' | 'children'> {}\n\nfunction ResizableColumnContents(props: ResizableColumnContentProps) {\n let {allowsSorting, sortDirection, sort, startResize, children, isHovered, align} = props;\n let {setIsInResizeMode, isInResizeMode} = useContext(InternalTableContext);\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n const onMenuSelect = (key) => {\n switch (key) {\n case 'sort-asc':\n sort('ascending');\n break;\n case 'sort-desc':\n sort('descending');\n break;\n case 'resize':\n setIsInResizeMode?.(true);\n startResize();\n break;\n }\n };\n\n let items = useMemo(() => {\n let options = [\n {\n label: stringFormatter.format('table.resizeColumn'),\n id: 'resize'\n }\n ];\n if (allowsSorting) {\n options = [\n {\n label: stringFormatter.format('table.sortAscending'),\n id: 'sort-asc'\n },\n {\n label: stringFormatter.format('table.sortDescending'),\n id: 'sort-desc'\n },\n ...options\n ];\n }\n return options;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [allowsSorting]);\n\n let buttonAlignment = 'start';\n let menuAlign = 'start' as 'start' | 'end';\n if (align === 'center') {\n buttonAlignment = 'center';\n } else if (align === 'end') {\n buttonAlignment = 'end';\n menuAlign = 'end';\n }\n\n return (\n <>\n <MenuTrigger align={menuAlign}>\n <Button className={(renderProps) => resizableMenuButtonWrapper({...renderProps, align: buttonAlignment})}>\n {allowsSorting && (\n <Provider\n values={[\n [IconContext, {\n styles: sortIcon({isButton: true})\n }]\n ]}>\n {sortDirection != null && (\n sortDirection === 'ascending' ? <SortUpArrow /> : <SortDownArrow />\n )}\n </Provider>\n )}\n <div className={columnHeaderText}>\n {children}\n </div>\n <Chevron size=\"M\" className={chevronIcon} />\n </Button>\n <Menu onAction={onMenuSelect} items={items} styles={style({minWidth: 128})}>\n {(item) => <MenuItem>{item?.label}</MenuItem>}\n </Menu>\n </MenuTrigger>\n <div data-react-aria-prevent-focus=\"true\">\n <ColumnResizer data-react-aria-prevent-focus=\"true\" className={({resizableDirection, isResizing}) => resizerHandleContainer({resizableDirection, isResizing, isHovered: isInResizeMode || isHovered})}>\n {({isFocusVisible, isResizing}) => (\n <>\n <ResizerIndicator isInResizeMode={isInResizeMode} isFocusVisible={isFocusVisible} isHovered={isHovered} isResizing={isResizing} />\n {(isFocusVisible || isInResizeMode) && isResizing && <div className={nubbin}><Nubbin /></div>}\n </>\n )}\n </ColumnResizer>\n </div>\n </>\n );\n}\n\nfunction ResizerIndicator({isFocusVisible, isHovered, isResizing, isInResizeMode}) {\n return (\n <div className={resizerHandle({isFocusVisible, isHovered: isHovered || isInResizeMode, isResizing})} />\n );\n}\n\nconst tableHeader = style({\n height: 'full',\n width: 'full',\n backgroundColor: 'gray-75',\n // Attempt to prevent 1px area where you can see scrolled cell content between the table outline and the table header\n marginTop: '[-1px]'\n});\n\nconst selectAllCheckbox = style({\n marginStart: 16 // table-edge-to-content, same between mobile and desktop\n});\n\nconst selectAllCheckboxColumn = style({\n padding: 0,\n height: 'full',\n boxSizing: 'border-box',\n outlineStyle: 'none',\n position: 'relative',\n alignContent: 'center',\n borderColor: {\n default: 'gray-300',\n forcedColors: 'ButtonBorder'\n },\n borderXWidth: 0,\n borderTopWidth: {\n default: 0,\n isQuiet: 1\n },\n borderBottomWidth: 1,\n borderStyle: 'solid',\n backgroundColor: 'gray-75'\n});\n\nlet InternalTableHeaderContext = createContext<{isHeaderRowHovered?: boolean}>({isHeaderRowHovered: false});\n\nexport interface TableHeaderProps<T> extends Omit<RACTableHeaderProps<T>, 'style' | 'className' | 'dependencies' | 'onHoverChange' | 'onHoverStart' | 'onHoverEnd'> {}\n\nfunction TableHeader<T extends object>({columns, children}: TableHeaderProps<T>, ref: DOMRef<HTMLDivElement>) {\n let scale = useScale();\n let {selectionBehavior, selectionMode} = useTableOptions();\n let {isQuiet} = useContext(InternalTableContext);\n let [isHeaderRowHovered, setHeaderRowHovered] = useState(false);\n let domRef = useDOMRef(ref);\n\n return (\n <InternalTableHeaderContext.Provider value={{isHeaderRowHovered}}>\n <RACTableHeader\n // @ts-ignore\n ref={domRef}\n onHoverChange={setHeaderRowHovered}\n className={tableHeader}>\n {/* Add extra columns for selection. */}\n {selectionBehavior === 'toggle' && (\n // Also isSticky prop is applied just for the layout, will decide what the RAC api should be later\n // @ts-ignore\n <RACColumn isSticky width={scale === 'medium' ? 40 : 52} minWidth={scale === 'medium' ? 40 : 52} className={selectAllCheckboxColumn({isQuiet})}>\n {({isFocusVisible}) => (\n <>\n {selectionMode === 'single' &&\n <>\n {isFocusVisible && <CellFocusRing />}\n <VisuallyHiddenSelectAllLabel />\n </>\n }\n {selectionMode === 'multiple' &&\n <Checkbox isEmphasized styles={selectAllCheckbox} slot=\"selection\" />\n }\n </>\n )}\n </RACColumn>\n )}\n <Collection items={columns}>\n {children}\n </Collection>\n </RACTableHeader>\n </InternalTableHeaderContext.Provider>\n );\n}\n\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nlet _TableHeader = /*#__PURE__*/ (forwardRef as forwardRefType)(TableHeader);\nexport {_TableHeader as TableHeader};\n\nfunction VisuallyHiddenSelectAllLabel() {\n let checkboxProps = useSlottedContext(RACCheckboxContext, 'selection');\n\n return (\n <VisuallyHidden>{checkboxProps?.['aria-label']}</VisuallyHidden>\n );\n}\n\nconst commonCellStyles = {\n borderColor: 'transparent',\n borderBottomWidth: 1,\n borderTopWidth: 0,\n borderXWidth: 0,\n borderStyle: 'solid',\n position: 'relative',\n color: {\n default: 'gray-800',\n forcedColors: 'ButtonText'\n },\n outlineStyle: 'none',\n paddingX: 16 // table-edge-to-content\n} as const;\n\nconst cell = style<CellRenderProps & S2TableProps & {isDivider: boolean}>({\n ...commonCellStyles,\n color: 'neutral',\n paddingY: centerPadding(),\n minHeight: {\n default: 40,\n density: {\n compact: 32,\n spacious: 48\n }\n },\n boxSizing: 'border-box',\n height: 'full',\n width: 'full',\n fontSize: 'control',\n alignItems: 'center',\n display: 'flex',\n borderStyle: {\n default: 'none',\n isDivider: 'solid'\n },\n borderEndWidth: {\n default: 0,\n isDivider: 1\n },\n borderColor: {\n default: 'gray-300',\n forcedColors: 'ButtonBorder'\n }\n});\n\nconst stickyCell = {\n backgroundColor: 'gray-25'\n} as const;\n\nconst checkboxCellStyle = style({\n ...commonCellStyles,\n ...stickyCell,\n paddingStart: 16,\n alignContent: 'center',\n height: '[calc(100% - 1px)]',\n borderBottomWidth: 0,\n backgroundColor: '--rowBackgroundColor'\n});\n\nconst cellContent = style({\n truncate: true,\n whiteSpace: {\n default: 'nowrap',\n overflowMode: {\n wrap: 'normal'\n }\n },\n textAlign: {\n align: {\n start: 'start',\n center: 'center',\n end: 'end'\n }\n },\n width: 'full',\n isolation: 'isolate',\n padding: {\n default: 4,\n isSticky: 0\n },\n margin: {\n default: -4,\n isSticky: 0\n },\n backgroundColor: {\n default: 'transparent',\n isSticky: '--rowBackgroundColor'\n }\n});\n\nexport interface CellProps extends RACCellProps, Pick<ColumnProps, 'align' | 'showDivider'> {\n /** @private */\n isSticky?: boolean,\n /** The content to render as the cell children. */\n children: ReactNode\n}\n\n/**\n * A cell within a table row.\n */\nexport const Cell = forwardRef(function Cell(props: CellProps, ref: DOMRef<HTMLDivElement>) {\n let {children, isSticky, showDivider = false, align, textValue, ...otherProps} = props;\n let domRef = useDOMRef(ref);\n let tableVisualOptions = useContext(InternalTableContext);\n textValue ||= typeof children === 'string' ? children : undefined;\n\n return (\n <RACCell\n ref={domRef}\n // Also isSticky prop is applied just for the layout, will decide what the RAC api should be later\n // @ts-ignore\n isSticky={isSticky}\n className={renderProps => cell({\n ...renderProps,\n ...tableVisualOptions,\n isDivider: showDivider\n })}\n textValue={textValue}\n {...otherProps}>\n {({isFocusVisible}) => (\n <>\n {isFocusVisible && <CellFocusRing />}\n <span className={cellContent({...tableVisualOptions, isSticky, align: align || 'start'})}>{children}</span>\n </>\n )}\n </RACCell>\n );\n});\n\n// Use color-mix instead of transparency so sticky cells work correctly.\nconst selectedBackground = lightDark(colorMix('gray-25', 'informative-900', 10), colorMix('gray-25', 'informative-700', 10));\nconst selectedActiveBackground = lightDark(colorMix('gray-25', 'informative-900', 15), colorMix('gray-25', 'informative-700', 15));\nconst rowBackgroundColor = {\n default: {\n default: 'gray-25',\n isQuiet: 'transparent'\n },\n isFocusVisibleWithin: colorMix('gray-25', 'gray-900', 7), // table-row-hover-color\n isHovered: colorMix('gray-25', 'gray-900', 7), // table-row-hover-color\n isPressed: colorMix('gray-25', 'gray-900', 10), // table-row-hover-color\n isSelected: {\n default: selectedBackground, // table-selected-row-background-color, opacity /10\n isFocusVisibleWithin: selectedActiveBackground, // table-selected-row-background-color, opacity /15\n isHovered: selectedActiveBackground, // table-selected-row-background-color, opacity /15\n isPressed: selectedActiveBackground // table-selected-row-background-color, opacity /15\n },\n forcedColors: {\n default: 'Background'\n }\n} as const;\n\nconst row = style<RowRenderProps & S2TableProps>({\n height: 'full',\n position: 'relative',\n boxSizing: 'border-box',\n backgroundColor: '--rowBackgroundColor',\n '--rowBackgroundColor': {\n type: 'backgroundColor',\n value: rowBackgroundColor\n },\n '--rowFocusIndicatorColor': {\n type: 'outlineColor',\n value: {\n default: 'focus-ring',\n forcedColors: 'Highlight'\n }\n },\n // TODO: outline here is to emulate v3 forcedColors experience but runs into the same problem where the sticky column covers the outline\n // This doesn't quite work because it gets cut off by the checkbox cell background masking element, figure out another way. Could shrink the checkbox cell's content even more\n // and offset it by margin top but that messes up the checkbox centering a bit\n // outlineWidth: {\n // forcedColors: {\n // isFocusVisible: 2\n // }\n // },\n // outlineOffset: {\n // forcedColors: {\n // isFocusVisible: -1\n // }\n // },\n // outlineColor: {\n // forcedColors: {\n // isFocusVisible: 'ButtonBorder'\n // }\n // },\n // outlineStyle: {\n // default: 'none',\n // forcedColors: {\n // isFocusVisible: 'solid'\n // }\n // },\n outlineStyle: 'none',\n borderTopWidth: 0,\n borderBottomWidth: 1,\n borderStartWidth: 0,\n borderEndWidth: 0,\n borderStyle: 'solid',\n borderColor: {\n default: 'gray-300',\n forcedColors: 'ButtonBorder'\n },\n forcedColorAdjust: 'none'\n});\n\nexport interface RowProps<T> extends Pick<RACRowProps<T>, 'id' | 'columns' | 'children' | 'textValue'> {}\n\nfunction Row<T extends object>({id, columns, children, ...otherProps}: RowProps<T>, ref: DOMRef<HTMLDivElement>) {\n let {selectionBehavior, selectionMode} = useTableOptions();\n let tableVisualOptions = useContext(InternalTableContext);\n let domRef = useDOMRef(ref);\n\n return (\n <RACRow\n // @ts-ignore\n ref={domRef}\n id={id}\n className={renderProps => row({\n ...renderProps,\n ...tableVisualOptions\n }) + (renderProps.isFocusVisible && ' ' + raw('&:before { content: \"\"; display: inline-block; position: sticky; inset-inline-start: 0; width: 3px; height: 100%; margin-inline-end: -3px; margin-block-end: 1px; z-index: 3; background-color: var(--rowFocusIndicatorColor)'))}\n {...otherProps}>\n {selectionMode !== 'none' && selectionBehavior === 'toggle' && (\n <Cell isSticky className={checkboxCellStyle}>\n <Checkbox isEmphasized slot=\"selection\" />\n </Cell>\n )}\n <Collection items={columns}>\n {children}\n </Collection>\n </RACRow>\n );\n}\n\n/**\n * A row within a `<Table>`.\n */\nlet _Row = /*#__PURE__*/ (forwardRef as forwardRefType)(Row);\nexport {_Row as Row};\n\n/**\n * Tables are containers for displaying information. They allow users to quickly scan, sort, compare, and take action on large amounts of data.\n */\nconst _TableView = forwardRef(TableView);\nexport {_TableView as TableView};\n"],"names":[],"version":3,"file":"TableView.mjs.map"}
package/dist/main.cjs CHANGED
@@ -95,6 +95,7 @@ $parcel$export(module.exports, "UserCard", () => $230078a1c4ce81d8$exports.UserC
95
95
  $parcel$export(module.exports, "ProductCard", () => $230078a1c4ce81d8$exports.ProductCard);
96
96
  $parcel$export(module.exports, "CardContext", () => $230078a1c4ce81d8$exports.CardContext);
97
97
  $parcel$export(module.exports, "CardView", () => $1aaf8931044a97bd$exports.CardView);
98
+ $parcel$export(module.exports, "CardViewContext", () => $1aaf8931044a97bd$exports.CardViewContext);
98
99
  $parcel$export(module.exports, "Checkbox", () => $af04e099a53d3e85$exports.Checkbox);
99
100
  $parcel$export(module.exports, "CheckboxContext", () => $af04e099a53d3e85$exports.CheckboxContext);
100
101
  $parcel$export(module.exports, "CheckboxGroup", () => $883687908275b504$exports.CheckboxGroup);
@@ -198,6 +199,7 @@ $parcel$export(module.exports, "TableBody", () => $bed37377ec7a3a9e$exports.Tabl
198
199
  $parcel$export(module.exports, "Row", () => $bed37377ec7a3a9e$exports.Row);
199
200
  $parcel$export(module.exports, "Cell", () => $bed37377ec7a3a9e$exports.Cell);
200
201
  $parcel$export(module.exports, "Column", () => $bed37377ec7a3a9e$exports.Column);
202
+ $parcel$export(module.exports, "TableContext", () => $bed37377ec7a3a9e$exports.TableContext);
201
203
  $parcel$export(module.exports, "Tabs", () => $b27519d6a701105b$exports.Tabs);
202
204
  $parcel$export(module.exports, "TabList", () => $b27519d6a701105b$exports.TabList);
203
205
  $parcel$export(module.exports, "Tab", () => $b27519d6a701105b$exports.Tab);
package/dist/main.cjs.map CHANGED
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC","sources":["packages/@react-spectrum/s2/src/index.ts"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport {Accordion, AccordionContext} from './Accordion';\nexport {ActionButton, ActionButtonContext} from './ActionButton';\nexport {ActionMenu, ActionMenuContext} from './ActionMenu';\nexport {AlertDialog} from './AlertDialog';\nexport {Avatar, AvatarContext} from './Avatar';\nexport {AvatarGroup, AvatarGroupContext} from './AvatarGroup';\nexport {Badge, BadgeContext} from './Badge';\nexport {Breadcrumbs, Breadcrumb, BreadcrumbsContext} from './Breadcrumbs';\nexport {Button, LinkButton, ButtonContext, LinkButtonContext} from './Button';\nexport {ButtonGroup, ButtonGroupContext} from './ButtonGroup';\nexport {Card, CardPreview, CollectionCardPreview, AssetCard, UserCard, ProductCard, CardContext} from './Card';\nexport {CardView} from './CardView';\nexport {Checkbox, CheckboxContext} from './Checkbox';\nexport {CheckboxGroup, CheckboxGroupContext} from './CheckboxGroup';\nexport {ColorArea, ColorAreaContext} from './ColorArea';\nexport {ColorField, ColorFieldContext} from './ColorField';\nexport {ColorSlider, ColorSliderContext} from './ColorSlider';\nexport {ColorSwatch, ColorSwatchContext} from './ColorSwatch';\nexport {ColorSwatchPicker, ColorSwatchPickerContext} from './ColorSwatchPicker';\nexport {ColorWheel, ColorWheelContext} from './ColorWheel';\nexport {ComboBox, ComboBoxItem, ComboBoxSection, ComboBoxContext} from './ComboBox';\nexport {ContextualHelp, ContextualHelpContext} from './ContextualHelp';\nexport {DisclosureHeader, Disclosure, DisclosurePanel, DisclosureContext} from './Disclosure';\nexport {Heading, HeadingContext, Header, HeaderContext, Content, ContentContext, Footer, FooterContext, Text, TextContext, Keyboard, KeyboardContext} from './Content';\nexport {Dialog} from './Dialog';\nexport {DialogTrigger} from './DialogTrigger';\nexport {DialogContainer, useDialogContainer} from './DialogContainer';\nexport {Divider, DividerContext} from './Divider';\nexport {DropZone, DropZoneContext} from './DropZone';\nexport {Form} from './Form';\nexport {createIcon, IconContext, IllustrationContext} from './Icon';\nexport {IllustratedMessage, IllustratedMessageContext} from './IllustratedMessage';\nexport {Image, ImageContext} from './Image';\nexport {ImageCoordinator} from './ImageCoordinator';\nexport {InlineAlert, InlineAlertContext} from './InlineAlert';\nexport {Link, LinkContext} from './Link';\nexport {MenuItem, MenuTrigger, Menu, MenuSection, SubmenuTrigger, MenuContext} from './Menu';\nexport {Meter, MeterContext} from './Meter';\nexport {NumberField, NumberFieldContext} from './NumberField';\nexport {Picker, PickerItem, PickerSection, PickerContext} from './Picker';\nexport {ProgressBar, ProgressBarContext} from './ProgressBar';\nexport {ProgressCircle, ProgressCircleContext} from './ProgressCircle';\nexport {Provider} from './Provider';\nexport {Radio} from './Radio';\nexport {RadioGroup, RadioGroupContext} from './RadioGroup';\nexport {RangeSlider, RangeSliderContext} from './RangeSlider';\nexport {SearchField, SearchFieldContext} from './SearchField';\nexport {SegmentedControl, SegmentedControlItem, SegmentedControlContext} from './SegmentedControl';\nexport {Slider, SliderContext} from './Slider';\nexport {Skeleton, useIsSkeleton} from './Skeleton';\nexport {SkeletonCollection} from './SkeletonCollection';\nexport {StatusLight, StatusLightContext} from './StatusLight';\nexport {Switch, SwitchContext} from './Switch';\nexport {TableView, TableHeader, TableBody, Row, Cell, Column} from './TableView';\nexport {Tabs, TabList, Tab, TabPanel, TabsContext} from './Tabs';\nexport {TagGroup, Tag, TagGroupContext} from './TagGroup';\nexport {TextArea, TextField, TextAreaContext, TextFieldContext} from './TextField';\nexport {ToggleButton, ToggleButtonContext} from './ToggleButton';\nexport {Tooltip, TooltipTrigger} from './Tooltip';\n\nexport {pressScale} from './pressScale';\n\nexport {Collection} from 'react-aria-components';\nexport {FileTrigger} from 'react-aria-components';\n\nexport type {AccordionProps} from './Accordion';\nexport type {ActionButtonProps} from './ActionButton';\nexport type {ActionMenuProps} from './ActionMenu';\nexport type {AlertDialogProps} from './AlertDialog';\nexport type {AvatarProps} from './Avatar';\nexport type {AvatarGroupProps} from './AvatarGroup';\nexport type {BreadcrumbsProps, BreadcrumbProps} from './Breadcrumbs';\nexport type {BadgeProps} from './Badge';\nexport type {ButtonProps, LinkButtonProps} from './Button';\nexport type {ButtonGroupProps} from './ButtonGroup';\nexport type {CardProps, CardPreviewProps, AssetCardProps, ProductCardProps, UserCardProps} from './Card';\nexport type {CardViewProps} from './CardView';\nexport type {CheckboxProps} from './Checkbox';\nexport type {CheckboxGroupProps} from './CheckboxGroup';\nexport type {ColorAreaProps} from './ColorArea';\nexport type {ColorFieldProps} from './ColorField';\nexport type {ColorSliderProps} from './ColorSlider';\nexport type {ColorSwatchProps} from './ColorSwatch';\nexport type {ColorSwatchPickerProps} from './ColorSwatchPicker';\nexport type {ColorWheelProps} from './ColorWheel';\nexport type {ComboBoxProps, ComboBoxItemProps, ComboBoxSectionProps} from './ComboBox';\nexport type {DialogProps} from './Dialog';\nexport type {DialogContainerProps, DialogContainerValue} from './DialogContainer';\nexport type {DialogTriggerProps} from './DialogTrigger';\nexport type {DisclosureProps, DisclosurePanelProps} from './Disclosure';\nexport type {DividerProps} from './Divider';\nexport type {DropZoneProps} from './DropZone';\nexport type {FormProps} from './Form';\nexport type {IconProps, IconContextValue} from './Icon';\nexport type {InlineAlertProps} from './InlineAlert';\nexport type {ImageProps} from './Image';\nexport type {ImageCoordinatorProps} from './ImageCoordinator';\nexport type {LinkProps} from './Link';\nexport type {MenuTriggerProps, MenuProps, MenuItemProps, MenuSectionProps, SubmenuTriggerProps} from './Menu';\nexport type {MeterProps} from './Meter';\nexport type {PickerProps, PickerItemProps, PickerSectionProps} from './Picker';\nexport type {ProgressBarProps} from './ProgressBar';\nexport type {ProgressCircleProps} from './ProgressCircle';\nexport type {ProviderProps} from './Provider';\nexport type {RadioProps} from './Radio';\nexport type {RadioGroupProps} from './RadioGroup';\nexport type {SearchFieldProps} from './SearchField';\nexport type {SegmentedControlProps, SegmentedControlItemProps} from './SegmentedControl';\nexport type {SliderProps} from './Slider';\nexport type {RangeSliderProps} from './RangeSlider';\nexport type {SkeletonProps} from './Skeleton';\nexport type {SkeletonCollectionProps} from './SkeletonCollection';\nexport type {StatusLightProps} from './StatusLight';\nexport type {SwitchProps} from './Switch';\nexport type {TableViewProps, TableHeaderProps, TableBodyProps, RowProps, CellProps, ColumnProps} from './TableView';\nexport type {TabsProps, TabProps, TabListProps, TabPanelProps} from './Tabs';\nexport type {TagGroupProps, TagProps} from './TagGroup';\nexport type {TextFieldProps, TextAreaProps} from './TextField';\nexport type {ToggleButtonProps} from './ToggleButton';\nexport type {TooltipProps} from './Tooltip';\nexport type {FileTriggerProps, TooltipTriggerComponentProps as TooltipTriggerProps} from 'react-aria-components';\n"],"names":[],"version":3,"file":"main.cjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC","sources":["packages/@react-spectrum/s2/src/index.ts"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport {Accordion, AccordionContext} from './Accordion';\nexport {ActionButton, ActionButtonContext} from './ActionButton';\nexport {ActionMenu, ActionMenuContext} from './ActionMenu';\nexport {AlertDialog} from './AlertDialog';\nexport {Avatar, AvatarContext} from './Avatar';\nexport {AvatarGroup, AvatarGroupContext} from './AvatarGroup';\nexport {Badge, BadgeContext} from './Badge';\nexport {Breadcrumbs, Breadcrumb, BreadcrumbsContext} from './Breadcrumbs';\nexport {Button, LinkButton, ButtonContext, LinkButtonContext} from './Button';\nexport {ButtonGroup, ButtonGroupContext} from './ButtonGroup';\nexport {Card, CardPreview, CollectionCardPreview, AssetCard, UserCard, ProductCard, CardContext} from './Card';\nexport {CardView, CardViewContext} from './CardView';\nexport {Checkbox, CheckboxContext} from './Checkbox';\nexport {CheckboxGroup, CheckboxGroupContext} from './CheckboxGroup';\nexport {ColorArea, ColorAreaContext} from './ColorArea';\nexport {ColorField, ColorFieldContext} from './ColorField';\nexport {ColorSlider, ColorSliderContext} from './ColorSlider';\nexport {ColorSwatch, ColorSwatchContext} from './ColorSwatch';\nexport {ColorSwatchPicker, ColorSwatchPickerContext} from './ColorSwatchPicker';\nexport {ColorWheel, ColorWheelContext} from './ColorWheel';\nexport {ComboBox, ComboBoxItem, ComboBoxSection, ComboBoxContext} from './ComboBox';\nexport {ContextualHelp, ContextualHelpContext} from './ContextualHelp';\nexport {DisclosureHeader, Disclosure, DisclosurePanel, DisclosureContext} from './Disclosure';\nexport {Heading, HeadingContext, Header, HeaderContext, Content, ContentContext, Footer, FooterContext, Text, TextContext, Keyboard, KeyboardContext} from './Content';\nexport {Dialog} from './Dialog';\nexport {DialogTrigger} from './DialogTrigger';\nexport {DialogContainer, useDialogContainer} from './DialogContainer';\nexport {Divider, DividerContext} from './Divider';\nexport {DropZone, DropZoneContext} from './DropZone';\nexport {Form} from './Form';\nexport {createIcon, IconContext, IllustrationContext} from './Icon';\nexport {IllustratedMessage, IllustratedMessageContext} from './IllustratedMessage';\nexport {Image, ImageContext} from './Image';\nexport {ImageCoordinator} from './ImageCoordinator';\nexport {InlineAlert, InlineAlertContext} from './InlineAlert';\nexport {Link, LinkContext} from './Link';\nexport {MenuItem, MenuTrigger, Menu, MenuSection, SubmenuTrigger, MenuContext} from './Menu';\nexport {Meter, MeterContext} from './Meter';\nexport {NumberField, NumberFieldContext} from './NumberField';\nexport {Picker, PickerItem, PickerSection, PickerContext} from './Picker';\nexport {ProgressBar, ProgressBarContext} from './ProgressBar';\nexport {ProgressCircle, ProgressCircleContext} from './ProgressCircle';\nexport {Provider} from './Provider';\nexport {Radio} from './Radio';\nexport {RadioGroup, RadioGroupContext} from './RadioGroup';\nexport {RangeSlider, RangeSliderContext} from './RangeSlider';\nexport {SearchField, SearchFieldContext} from './SearchField';\nexport {SegmentedControl, SegmentedControlItem, SegmentedControlContext} from './SegmentedControl';\nexport {Slider, SliderContext} from './Slider';\nexport {Skeleton, useIsSkeleton} from './Skeleton';\nexport {SkeletonCollection} from './SkeletonCollection';\nexport {StatusLight, StatusLightContext} from './StatusLight';\nexport {Switch, SwitchContext} from './Switch';\nexport {TableView, TableHeader, TableBody, Row, Cell, Column, TableContext} from './TableView';\nexport {Tabs, TabList, Tab, TabPanel, TabsContext} from './Tabs';\nexport {TagGroup, Tag, TagGroupContext} from './TagGroup';\nexport {TextArea, TextField, TextAreaContext, TextFieldContext} from './TextField';\nexport {ToggleButton, ToggleButtonContext} from './ToggleButton';\nexport {Tooltip, TooltipTrigger} from './Tooltip';\n\nexport {pressScale} from './pressScale';\n\nexport {Collection} from 'react-aria-components';\nexport {FileTrigger} from 'react-aria-components';\n\nexport type {AccordionProps} from './Accordion';\nexport type {ActionButtonProps} from './ActionButton';\nexport type {ActionMenuProps} from './ActionMenu';\nexport type {AlertDialogProps} from './AlertDialog';\nexport type {AvatarProps} from './Avatar';\nexport type {AvatarGroupProps} from './AvatarGroup';\nexport type {BreadcrumbsProps, BreadcrumbProps} from './Breadcrumbs';\nexport type {BadgeProps} from './Badge';\nexport type {ButtonProps, LinkButtonProps} from './Button';\nexport type {ButtonGroupProps} from './ButtonGroup';\nexport type {CardProps, CardPreviewProps, AssetCardProps, ProductCardProps, UserCardProps} from './Card';\nexport type {CardViewProps} from './CardView';\nexport type {CheckboxProps} from './Checkbox';\nexport type {CheckboxGroupProps} from './CheckboxGroup';\nexport type {ColorAreaProps} from './ColorArea';\nexport type {ColorFieldProps} from './ColorField';\nexport type {ColorSliderProps} from './ColorSlider';\nexport type {ColorSwatchProps} from './ColorSwatch';\nexport type {ColorSwatchPickerProps} from './ColorSwatchPicker';\nexport type {ColorWheelProps} from './ColorWheel';\nexport type {ComboBoxProps, ComboBoxItemProps, ComboBoxSectionProps} from './ComboBox';\nexport type {DialogProps} from './Dialog';\nexport type {DialogContainerProps, DialogContainerValue} from './DialogContainer';\nexport type {DialogTriggerProps} from './DialogTrigger';\nexport type {DisclosureProps, DisclosurePanelProps} from './Disclosure';\nexport type {DividerProps} from './Divider';\nexport type {DropZoneProps} from './DropZone';\nexport type {FormProps} from './Form';\nexport type {IconProps, IconContextValue} from './Icon';\nexport type {InlineAlertProps} from './InlineAlert';\nexport type {ImageProps} from './Image';\nexport type {ImageCoordinatorProps} from './ImageCoordinator';\nexport type {LinkProps} from './Link';\nexport type {MenuTriggerProps, MenuProps, MenuItemProps, MenuSectionProps, SubmenuTriggerProps} from './Menu';\nexport type {MeterProps} from './Meter';\nexport type {PickerProps, PickerItemProps, PickerSectionProps} from './Picker';\nexport type {ProgressBarProps} from './ProgressBar';\nexport type {ProgressCircleProps} from './ProgressCircle';\nexport type {ProviderProps} from './Provider';\nexport type {RadioProps} from './Radio';\nexport type {RadioGroupProps} from './RadioGroup';\nexport type {SearchFieldProps} from './SearchField';\nexport type {SegmentedControlProps, SegmentedControlItemProps} from './SegmentedControl';\nexport type {SliderProps} from './Slider';\nexport type {RangeSliderProps} from './RangeSlider';\nexport type {SkeletonProps} from './Skeleton';\nexport type {SkeletonCollectionProps} from './SkeletonCollection';\nexport type {StatusLightProps} from './StatusLight';\nexport type {SwitchProps} from './Switch';\nexport type {TableViewProps, TableHeaderProps, TableBodyProps, RowProps, CellProps, ColumnProps} from './TableView';\nexport type {TabsProps, TabProps, TabListProps, TabPanelProps} from './Tabs';\nexport type {TagGroupProps, TagProps} from './TagGroup';\nexport type {TextFieldProps, TextAreaProps} from './TextField';\nexport type {ToggleButtonProps} from './ToggleButton';\nexport type {TooltipProps} from './Tooltip';\nexport type {FileTriggerProps, TooltipTriggerComponentProps as TooltipTriggerProps} from 'react-aria-components';\n"],"names":[],"version":3,"file":"main.cjs.map"}
package/dist/module.mjs CHANGED
@@ -9,7 +9,7 @@ import {Breadcrumb as $f329dd4f2aa58cd0$export$dabcc1ec9dd9d1cc, Breadcrumbs as
9
9
  import {Button as $067ea9f64ccd4e8e$export$353f5b6fc5456de1, ButtonContext as $067ea9f64ccd4e8e$export$24d547caef80ccd1, LinkButton as $067ea9f64ccd4e8e$export$29d11c0fe2fc51d8, LinkButtonContext as $067ea9f64ccd4e8e$export$1c1a176f3b9e48d3} from "./Button.mjs";
10
10
  import {ButtonGroup as $472eaa9a9b344b9a$export$69b1032f2ecdf404, ButtonGroupContext as $472eaa9a9b344b9a$export$4c574c91bb0be0e2} from "./ButtonGroup.mjs";
11
11
  import {AssetCard as $68e4e6fe083e22fd$export$eff93e4e59ccc3b8, Card as $68e4e6fe083e22fd$export$60332b2344f7fe41, CardContext as $68e4e6fe083e22fd$export$d0b2ee33ebf7d64, CardPreview as $68e4e6fe083e22fd$export$115f017852a4bb7c, CollectionCardPreview as $68e4e6fe083e22fd$export$c368ea3e577b1b86, ProductCard as $68e4e6fe083e22fd$export$e6cbe35324ccf844, UserCard as $68e4e6fe083e22fd$export$78e8870b5d8ae469} from "./Card.mjs";
12
- import {CardView as $bbcff092fe610ff3$export$7e52c821f7b6f422} from "./CardView.mjs";
12
+ import {CardView as $bbcff092fe610ff3$export$7e52c821f7b6f422, CardViewContext as $bbcff092fe610ff3$export$64992ac69f286e5c} from "./CardView.mjs";
13
13
  import {Checkbox as $9b405e0f8095dce0$export$48513f6b9f8ce62d, CheckboxContext as $9b405e0f8095dce0$export$b085522c77523c51} from "./Checkbox.mjs";
14
14
  import {CheckboxGroup as $4f43ac2b11e2df05$export$4aa08d5625cb8ead, CheckboxGroupContext as $4f43ac2b11e2df05$export$baf37c4be89255b8} from "./CheckboxGroup.mjs";
15
15
  import {ColorArea as $40a2b649525568ab$export$b2103f68a961418e, ColorAreaContext as $40a2b649525568ab$export$ebe63fadcdce34ed} from "./ColorArea.mjs";
@@ -51,7 +51,7 @@ import {Skeleton as $5ad421ec19460c48$export$8f31e4c4a37b8e9c, useIsSkeleton as
51
51
  import {SkeletonCollection as $00cf18afd94ad18c$export$4365333b6bb1c86b} from "./SkeletonCollection.mjs";
52
52
  import {StatusLight as $cd71613dba8ee178$export$5f84c37a31c6e41c, StatusLightContext as $cd71613dba8ee178$export$d8f8c0b091d8cb9b} from "./StatusLight.mjs";
53
53
  import {Switch as $8926b17b75ae985d$export$b5d5cf8927ab7262, SwitchContext as $8926b17b75ae985d$export$8699e3b644d5a28a} from "./Switch.mjs";
54
- import {Cell as $0fcd5fb617970a1d$export$f6f0c3fe4ec306ea, Column as $0fcd5fb617970a1d$export$816b5d811295e6bc, Row as $0fcd5fb617970a1d$export$b59bdbef9ce70de2, TableBody as $0fcd5fb617970a1d$export$76ccd210b9029917, TableHeader as $0fcd5fb617970a1d$export$f850895b287ef28e, TableView as $0fcd5fb617970a1d$export$b3c27e869d856b7} from "./TableView.mjs";
54
+ import {Cell as $0fcd5fb617970a1d$export$f6f0c3fe4ec306ea, Column as $0fcd5fb617970a1d$export$816b5d811295e6bc, Row as $0fcd5fb617970a1d$export$b59bdbef9ce70de2, TableBody as $0fcd5fb617970a1d$export$76ccd210b9029917, TableContext as $0fcd5fb617970a1d$export$93e4b0b2cc49b648, TableHeader as $0fcd5fb617970a1d$export$f850895b287ef28e, TableView as $0fcd5fb617970a1d$export$b3c27e869d856b7} from "./TableView.mjs";
55
55
  import {Tab as $79e2b4a1b34d1592$export$3e41faf802a29e71, TabList as $79e2b4a1b34d1592$export$e51a686c67fdaa2d, TabPanel as $79e2b4a1b34d1592$export$3d96ec278d3efce4, Tabs as $79e2b4a1b34d1592$export$b2539bed5023c21c, TabsContext as $79e2b4a1b34d1592$export$cfa7aa87c26e7d1f} from "./Tabs.mjs";
56
56
  import {Tag as $1d63bfab43d9ffe1$export$3288d34c523a1192, TagGroup as $1d63bfab43d9ffe1$export$67ea30858aaf75e3, TagGroupContext as $1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3} from "./TagGroup.mjs";
57
57
  import {TextArea as $d946f50010ba937f$export$f5c9f3c2c4054eec, TextAreaContext as $d946f50010ba937f$export$2dc6166a7e65358c, TextField as $d946f50010ba937f$export$2c73285ae9390cec, TextFieldContext as $d946f50010ba937f$export$2129e27b3ef0d483} from "./TextField.mjs";
@@ -133,5 +133,5 @@ import {Collection as $c2fb5c905bcef374$re_export$Collection, FileTrigger as $c2
133
133
 
134
134
 
135
135
 
136
- export {$e0a5d45f488fa6ba$export$a766cd26d0d69044 as Accordion, $e0a5d45f488fa6ba$export$6bd5bb82c987ab74 as AccordionContext, $da878a05ab4a403e$export$cfc7921d29ef7b80 as ActionButton, $da878a05ab4a403e$export$2ff682723a46d413 as ActionButtonContext, $8bf3cd2442eb485e$export$ed57a210b9d13bb6 as ActionMenu, $8bf3cd2442eb485e$export$7f4b66acaca28bd5 as ActionMenuContext, $94a8ad475d9a330c$export$de466dd8317b0b75 as AlertDialog, $3ffa2cd930156220$export$e2255cf6045e8d47 as Avatar, $3ffa2cd930156220$export$a20dad690e1279e2 as AvatarContext, $85e1de65a7290f4a$export$5b26ebaf2b105908 as AvatarGroup, $85e1de65a7290f4a$export$4f18251748129091 as AvatarGroupContext, $6357025487dea614$export$37acb3580601e69a as Badge, $6357025487dea614$export$1d4627584e49159a as BadgeContext, $f329dd4f2aa58cd0$export$2dc68d50d56fbbd as Breadcrumbs, $f329dd4f2aa58cd0$export$dabcc1ec9dd9d1cc as Breadcrumb, $f329dd4f2aa58cd0$export$65596d3621b0a4a0 as BreadcrumbsContext, $067ea9f64ccd4e8e$export$353f5b6fc5456de1 as Button, $067ea9f64ccd4e8e$export$29d11c0fe2fc51d8 as LinkButton, $067ea9f64ccd4e8e$export$24d547caef80ccd1 as ButtonContext, $067ea9f64ccd4e8e$export$1c1a176f3b9e48d3 as LinkButtonContext, $472eaa9a9b344b9a$export$69b1032f2ecdf404 as ButtonGroup, $472eaa9a9b344b9a$export$4c574c91bb0be0e2 as ButtonGroupContext, $68e4e6fe083e22fd$export$60332b2344f7fe41 as Card, $68e4e6fe083e22fd$export$115f017852a4bb7c as CardPreview, $68e4e6fe083e22fd$export$c368ea3e577b1b86 as CollectionCardPreview, $68e4e6fe083e22fd$export$eff93e4e59ccc3b8 as AssetCard, $68e4e6fe083e22fd$export$78e8870b5d8ae469 as UserCard, $68e4e6fe083e22fd$export$e6cbe35324ccf844 as ProductCard, $68e4e6fe083e22fd$export$d0b2ee33ebf7d64 as CardContext, $bbcff092fe610ff3$export$7e52c821f7b6f422 as CardView, $9b405e0f8095dce0$export$48513f6b9f8ce62d as Checkbox, $9b405e0f8095dce0$export$b085522c77523c51 as CheckboxContext, $4f43ac2b11e2df05$export$4aa08d5625cb8ead as CheckboxGroup, $4f43ac2b11e2df05$export$baf37c4be89255b8 as CheckboxGroupContext, $40a2b649525568ab$export$b2103f68a961418e as ColorArea, $40a2b649525568ab$export$ebe63fadcdce34ed as ColorAreaContext, $9c5ed7ec0bc126af$export$b865d4358897bb17 as ColorField, $9c5ed7ec0bc126af$export$44644b8a16031b5b as ColorFieldContext, $495db619596088aa$export$44fd664bcca5b6fb as ColorSlider, $495db619596088aa$export$717b2c0a523a0b53 as ColorSliderContext, $cd9e1720baab3945$export$cae13e90592f246a as ColorSwatch, $cd9e1720baab3945$export$83cc445538396800 as ColorSwatchContext, $ba9c901b6c815fb9$export$b46792416e3d8515 as ColorSwatchPicker, $ba9c901b6c815fb9$export$7214f50881fc1eaf as ColorSwatchPickerContext, $4a6afc95235907f0$export$f80663f808113381 as ColorWheel, $4a6afc95235907f0$export$265015d6dc85bf21 as ColorWheelContext, $a2f262fac286a920$export$72b9695b8216309a as ComboBox, $a2f262fac286a920$export$b674b8ff01584ab1 as ComboBoxItem, $a2f262fac286a920$export$5510125537491b61 as ComboBoxSection, $a2f262fac286a920$export$d414ccceff7063c3 as ComboBoxContext, $8e176595bc49ca3f$export$7d3cdb256c2ba320 as ContextualHelp, $8e176595bc49ca3f$export$41b9afaaba473494 as ContextualHelpContext, $cf1d656285911959$export$1e037ddd32f5b8ac as DisclosureHeader, $cf1d656285911959$export$74a362b31437ec83 as Disclosure, $cf1d656285911959$export$feabaa331e1d464c as DisclosurePanel, $cf1d656285911959$export$d665dd135a51b28a as DisclosureContext, $8e847109a6ab556d$export$a8a3e93435678ff9 as Heading, $8e847109a6ab556d$export$d688439359537581 as HeadingContext, $8e847109a6ab556d$export$8b251419efc915eb as Header, $8e847109a6ab556d$export$e0e4026c12a8bdbb as HeaderContext, $8e847109a6ab556d$export$7c6e2c02157bb7d2 as Content, $8e847109a6ab556d$export$1cbdd774077931b4 as ContentContext, $8e847109a6ab556d$export$a06f1c675e846f6f as Footer, $8e847109a6ab556d$export$5630640b68817ed6 as FooterContext, $8e847109a6ab556d$export$5f1af8db9871e1d6 as Text, $8e847109a6ab556d$export$9afb8bc826b033ea as TextContext, $8e847109a6ab556d$export$16e4d70cc375e707 as Keyboard, $8e847109a6ab556d$export$744d98a3b8a94e1c as KeyboardContext, $9bbc115952dac5a6$export$3ddf2d174ce01153 as Dialog, $66262086fa190fcb$export$2e1e1122cf0cba88 as DialogTrigger, $dd7e1b1b86bf720d$export$547754aada6e339f as DialogContainer, $dd7e1b1b86bf720d$export$a2f2d8fa6720dab1 as useDialogContainer, $bdf52657dac0f070$export$2e0a83ec2e27ecbb as Divider, $bdf52657dac0f070$export$30fbfd376abdf190 as DividerContext, $fb6e45fba2483f65$export$3c6489d84dc98b6 as DropZone, $fb6e45fba2483f65$export$14a72053295ff9a6 as DropZoneContext, $9b916426527cebe7$export$a7fed597f4b8afd8 as Form, $ac8c32e6775ddd1f$export$274edc73af1ae9c8 as createIcon, $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed as IconContext, $ac8c32e6775ddd1f$export$207c7561471de4bd as IllustrationContext, $4950413ac998f607$export$406dbc84c317ece0 as IllustratedMessage, $4950413ac998f607$export$d661ef89ad42d682 as IllustratedMessageContext, $dbd6f0b2503b938c$export$3e431a229df88919 as Image, $dbd6f0b2503b938c$export$8151eb379fcf2442 as ImageContext, $4b5e069e9e001e8b$export$1b926c015f09611d as ImageCoordinator, $fc2cf6b397804b9c$export$a3b2c96db9b0eb71 as InlineAlert, $fc2cf6b397804b9c$export$c0de4eca0a8bf011 as InlineAlertContext, $f50c78733c21bfe2$export$a6c7ac8248d6e38a as Link, $f50c78733c21bfe2$export$e2509388b49734e7 as LinkContext, $13afb0ea5f0ed767$export$2ce376c2cc3355c8 as MenuItem, $13afb0ea5f0ed767$export$27d2ad3c5815583e as MenuTrigger, $13afb0ea5f0ed767$export$d9b273488cd8ce6f as Menu, $13afb0ea5f0ed767$export$4b1545b4f2016d26 as MenuSection, $13afb0ea5f0ed767$export$ecabc99eeffab7ca as SubmenuTrigger, $13afb0ea5f0ed767$export$c7e742effb1c51e2 as MenuContext, $bb56943300b294c6$export$62e3ae2a4090b879 as Meter, $bb56943300b294c6$export$8b645da15a96b44f as MeterContext, $675eca1a78ccd399$export$63c5fa0b2fdccd2e as NumberField, $675eca1a78ccd399$export$b414a48cf5dcbc11 as NumberFieldContext, $b41c15d27fbaff7d$export$ba25329847403e11 as Picker, $b41c15d27fbaff7d$export$d601881f38163e28 as PickerItem, $b41c15d27fbaff7d$export$a340772aca6155cd as PickerSection, $b41c15d27fbaff7d$export$b72b8dade9393cd5 as PickerContext, $b847b7cd294eafba$export$c17561cb55d4db30 as ProgressBar, $b847b7cd294eafba$export$e9f3bf65a26ce129 as ProgressBarContext, $41ddd91dbbf0c389$export$c79b9d6b4cc92af7 as ProgressCircle, $41ddd91dbbf0c389$export$afffa1e5edf12209 as ProgressCircleContext, $9affbfa4e13b9582$export$2881499e37b75b9a as Provider, $1ae2870af9a200f8$export$d7b12c4107be0d61 as Radio, $9a2afae66771094f$export$a98f0dcb43a68a25 as RadioGroup, $9a2afae66771094f$export$a79eda4ff50e30b6 as RadioGroupContext, $c683c8ad68e59901$export$826424dabc3dd705 as RangeSlider, $c683c8ad68e59901$export$9e0b46d8c4f4c18f as RangeSliderContext, $e3d0f3db0eb61b92$export$b94867ecbd698f21 as SearchField, $e3d0f3db0eb61b92$export$d1c4e4c63cb03a11 as SearchFieldContext, $c679c2152e03f8bf$export$668709c620d0b8e2 as SegmentedControl, $c679c2152e03f8bf$export$4fc12f2742e8cf3f as SegmentedControlItem, $c679c2152e03f8bf$export$c083c44d8a07dd35 as SegmentedControlContext, $8128d8480e67c400$export$472062a354075cee as Slider, $8128d8480e67c400$export$e99164f0030f3bff as SliderContext, $5ad421ec19460c48$export$8f31e4c4a37b8e9c as Skeleton, $5ad421ec19460c48$export$4f8dc7555740235c as useIsSkeleton, $00cf18afd94ad18c$export$4365333b6bb1c86b as SkeletonCollection, $cd71613dba8ee178$export$5f84c37a31c6e41c as StatusLight, $cd71613dba8ee178$export$d8f8c0b091d8cb9b as StatusLightContext, $8926b17b75ae985d$export$b5d5cf8927ab7262 as Switch, $8926b17b75ae985d$export$8699e3b644d5a28a as SwitchContext, $0fcd5fb617970a1d$export$b3c27e869d856b7 as TableView, $0fcd5fb617970a1d$export$f850895b287ef28e as TableHeader, $0fcd5fb617970a1d$export$76ccd210b9029917 as TableBody, $0fcd5fb617970a1d$export$b59bdbef9ce70de2 as Row, $0fcd5fb617970a1d$export$f6f0c3fe4ec306ea as Cell, $0fcd5fb617970a1d$export$816b5d811295e6bc as Column, $79e2b4a1b34d1592$export$b2539bed5023c21c as Tabs, $79e2b4a1b34d1592$export$e51a686c67fdaa2d as TabList, $79e2b4a1b34d1592$export$3e41faf802a29e71 as Tab, $79e2b4a1b34d1592$export$3d96ec278d3efce4 as TabPanel, $79e2b4a1b34d1592$export$cfa7aa87c26e7d1f as TabsContext, $1d63bfab43d9ffe1$export$67ea30858aaf75e3 as TagGroup, $1d63bfab43d9ffe1$export$3288d34c523a1192 as Tag, $1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3 as TagGroupContext, $d946f50010ba937f$export$f5c9f3c2c4054eec as TextArea, $d946f50010ba937f$export$2c73285ae9390cec as TextField, $d946f50010ba937f$export$2dc6166a7e65358c as TextAreaContext, $d946f50010ba937f$export$2129e27b3ef0d483 as TextFieldContext, $fe4c9df7420c3c9f$export$d2b052e7b4be1756 as ToggleButton, $fe4c9df7420c3c9f$export$43506d75ebd2e218 as ToggleButtonContext, $4c20647d6e5d8fdf$export$28c660c63b792dea as Tooltip, $4c20647d6e5d8fdf$export$8c610744efcf8a1d as TooltipTrigger, $10ea7662e51a285b$export$56e8cba416805d8d as pressScale, $c2fb5c905bcef374$re_export$Collection as Collection, $c2fb5c905bcef374$re_export$FileTrigger as FileTrigger};
136
+ export {$e0a5d45f488fa6ba$export$a766cd26d0d69044 as Accordion, $e0a5d45f488fa6ba$export$6bd5bb82c987ab74 as AccordionContext, $da878a05ab4a403e$export$cfc7921d29ef7b80 as ActionButton, $da878a05ab4a403e$export$2ff682723a46d413 as ActionButtonContext, $8bf3cd2442eb485e$export$ed57a210b9d13bb6 as ActionMenu, $8bf3cd2442eb485e$export$7f4b66acaca28bd5 as ActionMenuContext, $94a8ad475d9a330c$export$de466dd8317b0b75 as AlertDialog, $3ffa2cd930156220$export$e2255cf6045e8d47 as Avatar, $3ffa2cd930156220$export$a20dad690e1279e2 as AvatarContext, $85e1de65a7290f4a$export$5b26ebaf2b105908 as AvatarGroup, $85e1de65a7290f4a$export$4f18251748129091 as AvatarGroupContext, $6357025487dea614$export$37acb3580601e69a as Badge, $6357025487dea614$export$1d4627584e49159a as BadgeContext, $f329dd4f2aa58cd0$export$2dc68d50d56fbbd as Breadcrumbs, $f329dd4f2aa58cd0$export$dabcc1ec9dd9d1cc as Breadcrumb, $f329dd4f2aa58cd0$export$65596d3621b0a4a0 as BreadcrumbsContext, $067ea9f64ccd4e8e$export$353f5b6fc5456de1 as Button, $067ea9f64ccd4e8e$export$29d11c0fe2fc51d8 as LinkButton, $067ea9f64ccd4e8e$export$24d547caef80ccd1 as ButtonContext, $067ea9f64ccd4e8e$export$1c1a176f3b9e48d3 as LinkButtonContext, $472eaa9a9b344b9a$export$69b1032f2ecdf404 as ButtonGroup, $472eaa9a9b344b9a$export$4c574c91bb0be0e2 as ButtonGroupContext, $68e4e6fe083e22fd$export$60332b2344f7fe41 as Card, $68e4e6fe083e22fd$export$115f017852a4bb7c as CardPreview, $68e4e6fe083e22fd$export$c368ea3e577b1b86 as CollectionCardPreview, $68e4e6fe083e22fd$export$eff93e4e59ccc3b8 as AssetCard, $68e4e6fe083e22fd$export$78e8870b5d8ae469 as UserCard, $68e4e6fe083e22fd$export$e6cbe35324ccf844 as ProductCard, $68e4e6fe083e22fd$export$d0b2ee33ebf7d64 as CardContext, $bbcff092fe610ff3$export$7e52c821f7b6f422 as CardView, $bbcff092fe610ff3$export$64992ac69f286e5c as CardViewContext, $9b405e0f8095dce0$export$48513f6b9f8ce62d as Checkbox, $9b405e0f8095dce0$export$b085522c77523c51 as CheckboxContext, $4f43ac2b11e2df05$export$4aa08d5625cb8ead as CheckboxGroup, $4f43ac2b11e2df05$export$baf37c4be89255b8 as CheckboxGroupContext, $40a2b649525568ab$export$b2103f68a961418e as ColorArea, $40a2b649525568ab$export$ebe63fadcdce34ed as ColorAreaContext, $9c5ed7ec0bc126af$export$b865d4358897bb17 as ColorField, $9c5ed7ec0bc126af$export$44644b8a16031b5b as ColorFieldContext, $495db619596088aa$export$44fd664bcca5b6fb as ColorSlider, $495db619596088aa$export$717b2c0a523a0b53 as ColorSliderContext, $cd9e1720baab3945$export$cae13e90592f246a as ColorSwatch, $cd9e1720baab3945$export$83cc445538396800 as ColorSwatchContext, $ba9c901b6c815fb9$export$b46792416e3d8515 as ColorSwatchPicker, $ba9c901b6c815fb9$export$7214f50881fc1eaf as ColorSwatchPickerContext, $4a6afc95235907f0$export$f80663f808113381 as ColorWheel, $4a6afc95235907f0$export$265015d6dc85bf21 as ColorWheelContext, $a2f262fac286a920$export$72b9695b8216309a as ComboBox, $a2f262fac286a920$export$b674b8ff01584ab1 as ComboBoxItem, $a2f262fac286a920$export$5510125537491b61 as ComboBoxSection, $a2f262fac286a920$export$d414ccceff7063c3 as ComboBoxContext, $8e176595bc49ca3f$export$7d3cdb256c2ba320 as ContextualHelp, $8e176595bc49ca3f$export$41b9afaaba473494 as ContextualHelpContext, $cf1d656285911959$export$1e037ddd32f5b8ac as DisclosureHeader, $cf1d656285911959$export$74a362b31437ec83 as Disclosure, $cf1d656285911959$export$feabaa331e1d464c as DisclosurePanel, $cf1d656285911959$export$d665dd135a51b28a as DisclosureContext, $8e847109a6ab556d$export$a8a3e93435678ff9 as Heading, $8e847109a6ab556d$export$d688439359537581 as HeadingContext, $8e847109a6ab556d$export$8b251419efc915eb as Header, $8e847109a6ab556d$export$e0e4026c12a8bdbb as HeaderContext, $8e847109a6ab556d$export$7c6e2c02157bb7d2 as Content, $8e847109a6ab556d$export$1cbdd774077931b4 as ContentContext, $8e847109a6ab556d$export$a06f1c675e846f6f as Footer, $8e847109a6ab556d$export$5630640b68817ed6 as FooterContext, $8e847109a6ab556d$export$5f1af8db9871e1d6 as Text, $8e847109a6ab556d$export$9afb8bc826b033ea as TextContext, $8e847109a6ab556d$export$16e4d70cc375e707 as Keyboard, $8e847109a6ab556d$export$744d98a3b8a94e1c as KeyboardContext, $9bbc115952dac5a6$export$3ddf2d174ce01153 as Dialog, $66262086fa190fcb$export$2e1e1122cf0cba88 as DialogTrigger, $dd7e1b1b86bf720d$export$547754aada6e339f as DialogContainer, $dd7e1b1b86bf720d$export$a2f2d8fa6720dab1 as useDialogContainer, $bdf52657dac0f070$export$2e0a83ec2e27ecbb as Divider, $bdf52657dac0f070$export$30fbfd376abdf190 as DividerContext, $fb6e45fba2483f65$export$3c6489d84dc98b6 as DropZone, $fb6e45fba2483f65$export$14a72053295ff9a6 as DropZoneContext, $9b916426527cebe7$export$a7fed597f4b8afd8 as Form, $ac8c32e6775ddd1f$export$274edc73af1ae9c8 as createIcon, $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed as IconContext, $ac8c32e6775ddd1f$export$207c7561471de4bd as IllustrationContext, $4950413ac998f607$export$406dbc84c317ece0 as IllustratedMessage, $4950413ac998f607$export$d661ef89ad42d682 as IllustratedMessageContext, $dbd6f0b2503b938c$export$3e431a229df88919 as Image, $dbd6f0b2503b938c$export$8151eb379fcf2442 as ImageContext, $4b5e069e9e001e8b$export$1b926c015f09611d as ImageCoordinator, $fc2cf6b397804b9c$export$a3b2c96db9b0eb71 as InlineAlert, $fc2cf6b397804b9c$export$c0de4eca0a8bf011 as InlineAlertContext, $f50c78733c21bfe2$export$a6c7ac8248d6e38a as Link, $f50c78733c21bfe2$export$e2509388b49734e7 as LinkContext, $13afb0ea5f0ed767$export$2ce376c2cc3355c8 as MenuItem, $13afb0ea5f0ed767$export$27d2ad3c5815583e as MenuTrigger, $13afb0ea5f0ed767$export$d9b273488cd8ce6f as Menu, $13afb0ea5f0ed767$export$4b1545b4f2016d26 as MenuSection, $13afb0ea5f0ed767$export$ecabc99eeffab7ca as SubmenuTrigger, $13afb0ea5f0ed767$export$c7e742effb1c51e2 as MenuContext, $bb56943300b294c6$export$62e3ae2a4090b879 as Meter, $bb56943300b294c6$export$8b645da15a96b44f as MeterContext, $675eca1a78ccd399$export$63c5fa0b2fdccd2e as NumberField, $675eca1a78ccd399$export$b414a48cf5dcbc11 as NumberFieldContext, $b41c15d27fbaff7d$export$ba25329847403e11 as Picker, $b41c15d27fbaff7d$export$d601881f38163e28 as PickerItem, $b41c15d27fbaff7d$export$a340772aca6155cd as PickerSection, $b41c15d27fbaff7d$export$b72b8dade9393cd5 as PickerContext, $b847b7cd294eafba$export$c17561cb55d4db30 as ProgressBar, $b847b7cd294eafba$export$e9f3bf65a26ce129 as ProgressBarContext, $41ddd91dbbf0c389$export$c79b9d6b4cc92af7 as ProgressCircle, $41ddd91dbbf0c389$export$afffa1e5edf12209 as ProgressCircleContext, $9affbfa4e13b9582$export$2881499e37b75b9a as Provider, $1ae2870af9a200f8$export$d7b12c4107be0d61 as Radio, $9a2afae66771094f$export$a98f0dcb43a68a25 as RadioGroup, $9a2afae66771094f$export$a79eda4ff50e30b6 as RadioGroupContext, $c683c8ad68e59901$export$826424dabc3dd705 as RangeSlider, $c683c8ad68e59901$export$9e0b46d8c4f4c18f as RangeSliderContext, $e3d0f3db0eb61b92$export$b94867ecbd698f21 as SearchField, $e3d0f3db0eb61b92$export$d1c4e4c63cb03a11 as SearchFieldContext, $c679c2152e03f8bf$export$668709c620d0b8e2 as SegmentedControl, $c679c2152e03f8bf$export$4fc12f2742e8cf3f as SegmentedControlItem, $c679c2152e03f8bf$export$c083c44d8a07dd35 as SegmentedControlContext, $8128d8480e67c400$export$472062a354075cee as Slider, $8128d8480e67c400$export$e99164f0030f3bff as SliderContext, $5ad421ec19460c48$export$8f31e4c4a37b8e9c as Skeleton, $5ad421ec19460c48$export$4f8dc7555740235c as useIsSkeleton, $00cf18afd94ad18c$export$4365333b6bb1c86b as SkeletonCollection, $cd71613dba8ee178$export$5f84c37a31c6e41c as StatusLight, $cd71613dba8ee178$export$d8f8c0b091d8cb9b as StatusLightContext, $8926b17b75ae985d$export$b5d5cf8927ab7262 as Switch, $8926b17b75ae985d$export$8699e3b644d5a28a as SwitchContext, $0fcd5fb617970a1d$export$b3c27e869d856b7 as TableView, $0fcd5fb617970a1d$export$f850895b287ef28e as TableHeader, $0fcd5fb617970a1d$export$76ccd210b9029917 as TableBody, $0fcd5fb617970a1d$export$b59bdbef9ce70de2 as Row, $0fcd5fb617970a1d$export$f6f0c3fe4ec306ea as Cell, $0fcd5fb617970a1d$export$816b5d811295e6bc as Column, $0fcd5fb617970a1d$export$93e4b0b2cc49b648 as TableContext, $79e2b4a1b34d1592$export$b2539bed5023c21c as Tabs, $79e2b4a1b34d1592$export$e51a686c67fdaa2d as TabList, $79e2b4a1b34d1592$export$3e41faf802a29e71 as Tab, $79e2b4a1b34d1592$export$3d96ec278d3efce4 as TabPanel, $79e2b4a1b34d1592$export$cfa7aa87c26e7d1f as TabsContext, $1d63bfab43d9ffe1$export$67ea30858aaf75e3 as TagGroup, $1d63bfab43d9ffe1$export$3288d34c523a1192 as Tag, $1d63bfab43d9ffe1$export$5b07b5dd2cbd96e3 as TagGroupContext, $d946f50010ba937f$export$f5c9f3c2c4054eec as TextArea, $d946f50010ba937f$export$2c73285ae9390cec as TextField, $d946f50010ba937f$export$2dc6166a7e65358c as TextAreaContext, $d946f50010ba937f$export$2129e27b3ef0d483 as TextFieldContext, $fe4c9df7420c3c9f$export$d2b052e7b4be1756 as ToggleButton, $fe4c9df7420c3c9f$export$43506d75ebd2e218 as ToggleButtonContext, $4c20647d6e5d8fdf$export$28c660c63b792dea as Tooltip, $4c20647d6e5d8fdf$export$8c610744efcf8a1d as TooltipTrigger, $10ea7662e51a285b$export$56e8cba416805d8d as pressScale, $c2fb5c905bcef374$re_export$Collection as Collection, $c2fb5c905bcef374$re_export$FileTrigger as FileTrigger};
137
137
  //# sourceMappingURL=module.mjs.map
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC","sources":["packages/@react-spectrum/s2/src/index.ts"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport {Accordion, AccordionContext} from './Accordion';\nexport {ActionButton, ActionButtonContext} from './ActionButton';\nexport {ActionMenu, ActionMenuContext} from './ActionMenu';\nexport {AlertDialog} from './AlertDialog';\nexport {Avatar, AvatarContext} from './Avatar';\nexport {AvatarGroup, AvatarGroupContext} from './AvatarGroup';\nexport {Badge, BadgeContext} from './Badge';\nexport {Breadcrumbs, Breadcrumb, BreadcrumbsContext} from './Breadcrumbs';\nexport {Button, LinkButton, ButtonContext, LinkButtonContext} from './Button';\nexport {ButtonGroup, ButtonGroupContext} from './ButtonGroup';\nexport {Card, CardPreview, CollectionCardPreview, AssetCard, UserCard, ProductCard, CardContext} from './Card';\nexport {CardView} from './CardView';\nexport {Checkbox, CheckboxContext} from './Checkbox';\nexport {CheckboxGroup, CheckboxGroupContext} from './CheckboxGroup';\nexport {ColorArea, ColorAreaContext} from './ColorArea';\nexport {ColorField, ColorFieldContext} from './ColorField';\nexport {ColorSlider, ColorSliderContext} from './ColorSlider';\nexport {ColorSwatch, ColorSwatchContext} from './ColorSwatch';\nexport {ColorSwatchPicker, ColorSwatchPickerContext} from './ColorSwatchPicker';\nexport {ColorWheel, ColorWheelContext} from './ColorWheel';\nexport {ComboBox, ComboBoxItem, ComboBoxSection, ComboBoxContext} from './ComboBox';\nexport {ContextualHelp, ContextualHelpContext} from './ContextualHelp';\nexport {DisclosureHeader, Disclosure, DisclosurePanel, DisclosureContext} from './Disclosure';\nexport {Heading, HeadingContext, Header, HeaderContext, Content, ContentContext, Footer, FooterContext, Text, TextContext, Keyboard, KeyboardContext} from './Content';\nexport {Dialog} from './Dialog';\nexport {DialogTrigger} from './DialogTrigger';\nexport {DialogContainer, useDialogContainer} from './DialogContainer';\nexport {Divider, DividerContext} from './Divider';\nexport {DropZone, DropZoneContext} from './DropZone';\nexport {Form} from './Form';\nexport {createIcon, IconContext, IllustrationContext} from './Icon';\nexport {IllustratedMessage, IllustratedMessageContext} from './IllustratedMessage';\nexport {Image, ImageContext} from './Image';\nexport {ImageCoordinator} from './ImageCoordinator';\nexport {InlineAlert, InlineAlertContext} from './InlineAlert';\nexport {Link, LinkContext} from './Link';\nexport {MenuItem, MenuTrigger, Menu, MenuSection, SubmenuTrigger, MenuContext} from './Menu';\nexport {Meter, MeterContext} from './Meter';\nexport {NumberField, NumberFieldContext} from './NumberField';\nexport {Picker, PickerItem, PickerSection, PickerContext} from './Picker';\nexport {ProgressBar, ProgressBarContext} from './ProgressBar';\nexport {ProgressCircle, ProgressCircleContext} from './ProgressCircle';\nexport {Provider} from './Provider';\nexport {Radio} from './Radio';\nexport {RadioGroup, RadioGroupContext} from './RadioGroup';\nexport {RangeSlider, RangeSliderContext} from './RangeSlider';\nexport {SearchField, SearchFieldContext} from './SearchField';\nexport {SegmentedControl, SegmentedControlItem, SegmentedControlContext} from './SegmentedControl';\nexport {Slider, SliderContext} from './Slider';\nexport {Skeleton, useIsSkeleton} from './Skeleton';\nexport {SkeletonCollection} from './SkeletonCollection';\nexport {StatusLight, StatusLightContext} from './StatusLight';\nexport {Switch, SwitchContext} from './Switch';\nexport {TableView, TableHeader, TableBody, Row, Cell, Column} from './TableView';\nexport {Tabs, TabList, Tab, TabPanel, TabsContext} from './Tabs';\nexport {TagGroup, Tag, TagGroupContext} from './TagGroup';\nexport {TextArea, TextField, TextAreaContext, TextFieldContext} from './TextField';\nexport {ToggleButton, ToggleButtonContext} from './ToggleButton';\nexport {Tooltip, TooltipTrigger} from './Tooltip';\n\nexport {pressScale} from './pressScale';\n\nexport {Collection} from 'react-aria-components';\nexport {FileTrigger} from 'react-aria-components';\n\nexport type {AccordionProps} from './Accordion';\nexport type {ActionButtonProps} from './ActionButton';\nexport type {ActionMenuProps} from './ActionMenu';\nexport type {AlertDialogProps} from './AlertDialog';\nexport type {AvatarProps} from './Avatar';\nexport type {AvatarGroupProps} from './AvatarGroup';\nexport type {BreadcrumbsProps, BreadcrumbProps} from './Breadcrumbs';\nexport type {BadgeProps} from './Badge';\nexport type {ButtonProps, LinkButtonProps} from './Button';\nexport type {ButtonGroupProps} from './ButtonGroup';\nexport type {CardProps, CardPreviewProps, AssetCardProps, ProductCardProps, UserCardProps} from './Card';\nexport type {CardViewProps} from './CardView';\nexport type {CheckboxProps} from './Checkbox';\nexport type {CheckboxGroupProps} from './CheckboxGroup';\nexport type {ColorAreaProps} from './ColorArea';\nexport type {ColorFieldProps} from './ColorField';\nexport type {ColorSliderProps} from './ColorSlider';\nexport type {ColorSwatchProps} from './ColorSwatch';\nexport type {ColorSwatchPickerProps} from './ColorSwatchPicker';\nexport type {ColorWheelProps} from './ColorWheel';\nexport type {ComboBoxProps, ComboBoxItemProps, ComboBoxSectionProps} from './ComboBox';\nexport type {DialogProps} from './Dialog';\nexport type {DialogContainerProps, DialogContainerValue} from './DialogContainer';\nexport type {DialogTriggerProps} from './DialogTrigger';\nexport type {DisclosureProps, DisclosurePanelProps} from './Disclosure';\nexport type {DividerProps} from './Divider';\nexport type {DropZoneProps} from './DropZone';\nexport type {FormProps} from './Form';\nexport type {IconProps, IconContextValue} from './Icon';\nexport type {InlineAlertProps} from './InlineAlert';\nexport type {ImageProps} from './Image';\nexport type {ImageCoordinatorProps} from './ImageCoordinator';\nexport type {LinkProps} from './Link';\nexport type {MenuTriggerProps, MenuProps, MenuItemProps, MenuSectionProps, SubmenuTriggerProps} from './Menu';\nexport type {MeterProps} from './Meter';\nexport type {PickerProps, PickerItemProps, PickerSectionProps} from './Picker';\nexport type {ProgressBarProps} from './ProgressBar';\nexport type {ProgressCircleProps} from './ProgressCircle';\nexport type {ProviderProps} from './Provider';\nexport type {RadioProps} from './Radio';\nexport type {RadioGroupProps} from './RadioGroup';\nexport type {SearchFieldProps} from './SearchField';\nexport type {SegmentedControlProps, SegmentedControlItemProps} from './SegmentedControl';\nexport type {SliderProps} from './Slider';\nexport type {RangeSliderProps} from './RangeSlider';\nexport type {SkeletonProps} from './Skeleton';\nexport type {SkeletonCollectionProps} from './SkeletonCollection';\nexport type {StatusLightProps} from './StatusLight';\nexport type {SwitchProps} from './Switch';\nexport type {TableViewProps, TableHeaderProps, TableBodyProps, RowProps, CellProps, ColumnProps} from './TableView';\nexport type {TabsProps, TabProps, TabListProps, TabPanelProps} from './Tabs';\nexport type {TagGroupProps, TagProps} from './TagGroup';\nexport type {TextFieldProps, TextAreaProps} from './TextField';\nexport type {ToggleButtonProps} from './ToggleButton';\nexport type {TooltipProps} from './Tooltip';\nexport type {FileTriggerProps, TooltipTriggerComponentProps as TooltipTriggerProps} from 'react-aria-components';\n"],"names":[],"version":3,"file":"module.mjs.map"}
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC","sources":["packages/@react-spectrum/s2/src/index.ts"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport {Accordion, AccordionContext} from './Accordion';\nexport {ActionButton, ActionButtonContext} from './ActionButton';\nexport {ActionMenu, ActionMenuContext} from './ActionMenu';\nexport {AlertDialog} from './AlertDialog';\nexport {Avatar, AvatarContext} from './Avatar';\nexport {AvatarGroup, AvatarGroupContext} from './AvatarGroup';\nexport {Badge, BadgeContext} from './Badge';\nexport {Breadcrumbs, Breadcrumb, BreadcrumbsContext} from './Breadcrumbs';\nexport {Button, LinkButton, ButtonContext, LinkButtonContext} from './Button';\nexport {ButtonGroup, ButtonGroupContext} from './ButtonGroup';\nexport {Card, CardPreview, CollectionCardPreview, AssetCard, UserCard, ProductCard, CardContext} from './Card';\nexport {CardView, CardViewContext} from './CardView';\nexport {Checkbox, CheckboxContext} from './Checkbox';\nexport {CheckboxGroup, CheckboxGroupContext} from './CheckboxGroup';\nexport {ColorArea, ColorAreaContext} from './ColorArea';\nexport {ColorField, ColorFieldContext} from './ColorField';\nexport {ColorSlider, ColorSliderContext} from './ColorSlider';\nexport {ColorSwatch, ColorSwatchContext} from './ColorSwatch';\nexport {ColorSwatchPicker, ColorSwatchPickerContext} from './ColorSwatchPicker';\nexport {ColorWheel, ColorWheelContext} from './ColorWheel';\nexport {ComboBox, ComboBoxItem, ComboBoxSection, ComboBoxContext} from './ComboBox';\nexport {ContextualHelp, ContextualHelpContext} from './ContextualHelp';\nexport {DisclosureHeader, Disclosure, DisclosurePanel, DisclosureContext} from './Disclosure';\nexport {Heading, HeadingContext, Header, HeaderContext, Content, ContentContext, Footer, FooterContext, Text, TextContext, Keyboard, KeyboardContext} from './Content';\nexport {Dialog} from './Dialog';\nexport {DialogTrigger} from './DialogTrigger';\nexport {DialogContainer, useDialogContainer} from './DialogContainer';\nexport {Divider, DividerContext} from './Divider';\nexport {DropZone, DropZoneContext} from './DropZone';\nexport {Form} from './Form';\nexport {createIcon, IconContext, IllustrationContext} from './Icon';\nexport {IllustratedMessage, IllustratedMessageContext} from './IllustratedMessage';\nexport {Image, ImageContext} from './Image';\nexport {ImageCoordinator} from './ImageCoordinator';\nexport {InlineAlert, InlineAlertContext} from './InlineAlert';\nexport {Link, LinkContext} from './Link';\nexport {MenuItem, MenuTrigger, Menu, MenuSection, SubmenuTrigger, MenuContext} from './Menu';\nexport {Meter, MeterContext} from './Meter';\nexport {NumberField, NumberFieldContext} from './NumberField';\nexport {Picker, PickerItem, PickerSection, PickerContext} from './Picker';\nexport {ProgressBar, ProgressBarContext} from './ProgressBar';\nexport {ProgressCircle, ProgressCircleContext} from './ProgressCircle';\nexport {Provider} from './Provider';\nexport {Radio} from './Radio';\nexport {RadioGroup, RadioGroupContext} from './RadioGroup';\nexport {RangeSlider, RangeSliderContext} from './RangeSlider';\nexport {SearchField, SearchFieldContext} from './SearchField';\nexport {SegmentedControl, SegmentedControlItem, SegmentedControlContext} from './SegmentedControl';\nexport {Slider, SliderContext} from './Slider';\nexport {Skeleton, useIsSkeleton} from './Skeleton';\nexport {SkeletonCollection} from './SkeletonCollection';\nexport {StatusLight, StatusLightContext} from './StatusLight';\nexport {Switch, SwitchContext} from './Switch';\nexport {TableView, TableHeader, TableBody, Row, Cell, Column, TableContext} from './TableView';\nexport {Tabs, TabList, Tab, TabPanel, TabsContext} from './Tabs';\nexport {TagGroup, Tag, TagGroupContext} from './TagGroup';\nexport {TextArea, TextField, TextAreaContext, TextFieldContext} from './TextField';\nexport {ToggleButton, ToggleButtonContext} from './ToggleButton';\nexport {Tooltip, TooltipTrigger} from './Tooltip';\n\nexport {pressScale} from './pressScale';\n\nexport {Collection} from 'react-aria-components';\nexport {FileTrigger} from 'react-aria-components';\n\nexport type {AccordionProps} from './Accordion';\nexport type {ActionButtonProps} from './ActionButton';\nexport type {ActionMenuProps} from './ActionMenu';\nexport type {AlertDialogProps} from './AlertDialog';\nexport type {AvatarProps} from './Avatar';\nexport type {AvatarGroupProps} from './AvatarGroup';\nexport type {BreadcrumbsProps, BreadcrumbProps} from './Breadcrumbs';\nexport type {BadgeProps} from './Badge';\nexport type {ButtonProps, LinkButtonProps} from './Button';\nexport type {ButtonGroupProps} from './ButtonGroup';\nexport type {CardProps, CardPreviewProps, AssetCardProps, ProductCardProps, UserCardProps} from './Card';\nexport type {CardViewProps} from './CardView';\nexport type {CheckboxProps} from './Checkbox';\nexport type {CheckboxGroupProps} from './CheckboxGroup';\nexport type {ColorAreaProps} from './ColorArea';\nexport type {ColorFieldProps} from './ColorField';\nexport type {ColorSliderProps} from './ColorSlider';\nexport type {ColorSwatchProps} from './ColorSwatch';\nexport type {ColorSwatchPickerProps} from './ColorSwatchPicker';\nexport type {ColorWheelProps} from './ColorWheel';\nexport type {ComboBoxProps, ComboBoxItemProps, ComboBoxSectionProps} from './ComboBox';\nexport type {DialogProps} from './Dialog';\nexport type {DialogContainerProps, DialogContainerValue} from './DialogContainer';\nexport type {DialogTriggerProps} from './DialogTrigger';\nexport type {DisclosureProps, DisclosurePanelProps} from './Disclosure';\nexport type {DividerProps} from './Divider';\nexport type {DropZoneProps} from './DropZone';\nexport type {FormProps} from './Form';\nexport type {IconProps, IconContextValue} from './Icon';\nexport type {InlineAlertProps} from './InlineAlert';\nexport type {ImageProps} from './Image';\nexport type {ImageCoordinatorProps} from './ImageCoordinator';\nexport type {LinkProps} from './Link';\nexport type {MenuTriggerProps, MenuProps, MenuItemProps, MenuSectionProps, SubmenuTriggerProps} from './Menu';\nexport type {MeterProps} from './Meter';\nexport type {PickerProps, PickerItemProps, PickerSectionProps} from './Picker';\nexport type {ProgressBarProps} from './ProgressBar';\nexport type {ProgressCircleProps} from './ProgressCircle';\nexport type {ProviderProps} from './Provider';\nexport type {RadioProps} from './Radio';\nexport type {RadioGroupProps} from './RadioGroup';\nexport type {SearchFieldProps} from './SearchField';\nexport type {SegmentedControlProps, SegmentedControlItemProps} from './SegmentedControl';\nexport type {SliderProps} from './Slider';\nexport type {RangeSliderProps} from './RangeSlider';\nexport type {SkeletonProps} from './Skeleton';\nexport type {SkeletonCollectionProps} from './SkeletonCollection';\nexport type {StatusLightProps} from './StatusLight';\nexport type {SwitchProps} from './Switch';\nexport type {TableViewProps, TableHeaderProps, TableBodyProps, RowProps, CellProps, ColumnProps} from './TableView';\nexport type {TabsProps, TabProps, TabListProps, TabPanelProps} from './Tabs';\nexport type {TagGroupProps, TagProps} from './TagGroup';\nexport type {TextFieldProps, TextAreaProps} from './TextField';\nexport type {ToggleButtonProps} from './ToggleButton';\nexport type {TooltipProps} from './Tooltip';\nexport type {FileTriggerProps, TooltipTriggerComponentProps as TooltipTriggerProps} from 'react-aria-components';\n"],"names":[],"version":3,"file":"module.mjs.map"}
package/dist/types.d.ts CHANGED
@@ -705,6 +705,7 @@ export interface CardViewProps<T> extends Omit<GridListProps<T>, 'layout' | 'key
705
705
  /** Spectrum-defined styles, returned by the `style()` macro. */
706
706
  styles?: StylesPropWithHeight;
707
707
  }
708
+ export const CardViewContext: Context<ContextValue<CardViewProps<any>, DOMRefValue<HTMLDivElement>>>;
708
709
  export const CardView: <T extends object>(props: CardViewProps<T> & RefAttributes<DOMRefValue<HTMLDivElement>>) => ReactElement | null;
709
710
  export interface DialogTriggerProps extends _DialogTriggerProps1, Pick<_PopoverProps1, 'placement' | 'shouldFlip' | 'isKeyboardDismissDisabled' | 'containerPadding' | 'offset' | 'crossOffset'> {
710
711
  /**
@@ -1067,8 +1068,15 @@ interface MeterStyleProps {
1067
1068
  * @default 'M'
1068
1069
  */
1069
1070
  size?: 'S' | 'M' | 'L' | 'XL';
1070
- /** The static color style to apply. Useful when the button appears over a color background. */
1071
+ /**
1072
+ * The static color style to apply. Useful when the button appears over a color background.
1073
+ */
1071
1074
  staticColor?: 'white' | 'black';
1075
+ /**
1076
+ * The label's overall position relative to the element it is labeling.
1077
+ * @default 'top'
1078
+ */
1079
+ labelPosition?: LabelPosition;
1072
1080
  }
1073
1081
  export interface MeterProps extends Omit<_MeterProps1, 'children' | 'className' | 'style'>, MeterStyleProps, StyleProps {
1074
1082
  /** The content to display as the label. */
@@ -1359,12 +1367,13 @@ export interface TableViewProps extends Omit<TableProps, 'style' | 'disabledBeha
1359
1367
  /** Spectrum-defined styles, returned by the `style()` macro. */
1360
1368
  styles?: StylesPropWithHeight;
1361
1369
  }
1370
+ export const TableContext: React.Context<ContextValue<TableViewProps, DOMRefValue<HTMLDivElement>>>;
1362
1371
  export interface TableBodyProps<T> extends Omit<_TableBodyProps1<T>, 'style' | 'className' | 'dependencies'> {
1363
1372
  }
1364
1373
  /**
1365
1374
  * The body of a `<Table>`, containing the table rows.
1366
1375
  */
1367
- export function TableBody<T extends object>(props: TableBodyProps<T>): React.JSX.Element;
1376
+ export let TableBody: <T extends object>(props: TableBodyProps<T> & React.RefAttributes<DOMRefValue<HTMLDivElement>>) => React.ReactElement | null;
1368
1377
  export interface ColumnProps extends _ColumnProps1 {
1369
1378
  /** Whether the column should render a divider between it and the next column. */
1370
1379
  showDivider?: boolean;
@@ -1381,13 +1390,13 @@ export interface ColumnProps extends _ColumnProps1 {
1381
1390
  /**
1382
1391
  * A column within a `<Table>`.
1383
1392
  */
1384
- export function Column(props: ColumnProps): React.JSX.Element;
1393
+ export const Column: React.ForwardRefExoticComponent<ColumnProps & React.RefAttributes<DOMRefValue<HTMLDivElement>>>;
1385
1394
  export interface TableHeaderProps<T> extends Omit<_TableHeaderProps1<T>, 'style' | 'className' | 'dependencies' | 'onHoverChange' | 'onHoverStart' | 'onHoverEnd'> {
1386
1395
  }
1387
1396
  /**
1388
1397
  * A header within a `<Table>`, containing the table columns.
1389
1398
  */
1390
- export function TableHeader<T extends object>({ columns, children }: TableHeaderProps<T>): React.JSX.Element;
1399
+ export let TableHeader: <T extends object>(props: TableHeaderProps<T> & React.RefAttributes<DOMRefValue<HTMLDivElement>>) => React.ReactElement | null;
1391
1400
  export interface CellProps extends _CellProps1, Pick<ColumnProps, 'align' | 'showDivider'> {
1392
1401
  /** @private */
1393
1402
  isSticky?: boolean;
@@ -1397,13 +1406,13 @@ export interface CellProps extends _CellProps1, Pick<ColumnProps, 'align' | 'sho
1397
1406
  /**
1398
1407
  * A cell within a table row.
1399
1408
  */
1400
- export function Cell(props: CellProps): React.JSX.Element;
1409
+ export const Cell: React.ForwardRefExoticComponent<CellProps & React.RefAttributes<DOMRefValue<HTMLDivElement>>>;
1401
1410
  export interface RowProps<T> extends Pick<_RowProps1<T>, 'id' | 'columns' | 'children' | 'textValue'> {
1402
1411
  }
1403
1412
  /**
1404
1413
  * A row within a `<Table>`.
1405
1414
  */
1406
- export function Row<T extends object>({ id, columns, children, ...otherProps }: RowProps<T>): React.JSX.Element;
1415
+ export let Row: <T extends object>(props: RowProps<T> & React.RefAttributes<DOMRefValue<HTMLDivElement>>) => React.ReactElement | null;
1407
1416
  /**
1408
1417
  * Tables are containers for displaying information. They allow users to quickly scan, sort, compare, and take action on large amounts of data.
1409
1418
  */