@react-spectrum/table 3.12.9-nightly.4567 → 3.12.9-nightly.4578

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.
@@ -9,6 +9,7 @@ var $hxFQC$react = require("react");
9
9
  var $hxFQC$reactdom = require("react-dom");
10
10
  var $hxFQC$reactariai18n = require("@react-aria/i18n");
11
11
  var $hxFQC$reactariatable = require("@react-aria/table");
12
+ var $hxFQC$reactariaoverlays = require("@react-aria/overlays");
12
13
 
13
14
 
14
15
  function $parcel$interopDefault(a) {
@@ -38,6 +39,7 @@ $3f4aefa9145f889b$exports = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xm
38
39
 
39
40
 
40
41
 
42
+
41
43
  var $955f540cbcd8d857$exports = {};
42
44
  $955f540cbcd8d857$exports = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"-1 0 31 32\">\n <filter id=\"shadow\">\n <feDropShadow dx=\"0\" dy=\"0.5\" stdDeviation=\"1.2\" flood-opacity=\"0.7\"></feDropShadow>\n </filter>\n <g filter=\"url('#shadow')\" transform=\"translate(.5 0)\">\n <path d=\"M9.5,2c.27614,0,.5,.22388,.5,.5v14c0,.27612-.22386,.5-.5,.5h-1c-.27614,0-.5-.22388-.5-.5v-6.5h-3v1.74951c0,.14893-.12215,.25049-.2513,.25049-.05457,0-.1104-.01819-.15875-.05847l-2.58995-2.44153,2.58995-2.44153c.04837-.04028,.10419-.05847,.15875-.05847,.12914,0,.2513,.10156,.2513,.25049v1.74951h3V2.5c0-.27612,.22386-.5,.5-.5h1Zm0-1h-1c-.82843,0-1.5,.67157-1.5,1.5v5.5h-1v-.67611c0-.40436-.1629-.80555-.48159-1.05444-.4961-.38744-1.14015-.33635-1.56876,.02095l-.02344,.01953-.0222,.02087L.92811,9.13618c-.20937,.19737-.20937,.53028,0,.72765l2.97589,2.80537,.0222,.02087,.02345,.01965c.42839,.35694,1.07208,.40833,1.56837,.02116,.31886-.24875,.48198-.64994,.48198-1.05435v-.67652s.99999,0,.99999,0v5.5c0,.82843,.67157,1.5,1.5,1.5h1c.82843,0,1.5-.67157,1.5-1.5V2.5c0-.82843-.67157-1.5-1.5-1.5Z\" fill=\"#fff\"></path>\n <path d=\"M10,16.5V2.5c0-.27614-.22386-.5-.5-.5h-1c-.27614,0-.5,.22386-.5,.5v6.5h-3v-1.74952c0-.21196-.24721-.32775-.41005-.19206l-2.58995,2.44158,2.58995,2.44158c.16283,.13569,.41005,.0199,.41005-.19206v-1.74952h3v6.5c0,.27614,.22386,.5,.5,.5h1c.27614,0,.5-.22386,.5-.5Z\"></path>\n </g>\n</svg>\n";
43
45
 
@@ -135,7 +137,9 @@ function $2877766f94c67a67$var$Resizer(props, ref) {
135
137
  }
136
138
  function $2877766f94c67a67$var$CursorOverlay(props) {
137
139
  let { show: show, children: children } = props;
138
- return show ? /*#__PURE__*/ (0, ($parcel$interopDefault($hxFQC$reactdom))).createPortal(children, document.body) : null;
140
+ let { getContainer: getContainer } = (0, $hxFQC$reactariaoverlays.useUNSTABLE_PortalContext)();
141
+ var _getContainer;
142
+ return show ? /*#__PURE__*/ (0, ($parcel$interopDefault($hxFQC$reactdom))).createPortal(children, (_getContainer = getContainer === null || getContainer === void 0 ? void 0 : getContainer()) !== null && _getContainer !== void 0 ? _getContainer : document.body) : null;
139
143
  }
140
144
  const $2877766f94c67a67$export$48a76196cafe3b93 = /*#__PURE__*/ (0, ($parcel$interopDefault($hxFQC$react))).forwardRef($2877766f94c67a67$var$Resizer);
141
145
 
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/table/src/Resizer.tsx","node_modules/@parcel/runtime-js/lib/bundles/runtime-041bd783ad0660b4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8e8d37d2cf10eebe.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-cba9561fd7f119d5.js"],"sourcesContent":["/* eslint-disable jsx-a11y/role-supports-aria-props */\nimport {classNames} from '@react-spectrum/utils';\nimport {ColumnSize} from '@react-types/table';\n// @ts-ignore\nimport eCursor from 'bundle-text:./cursors/Cur_MoveToRight_9_9.svg';\n// @ts-ignore\nimport ewCursor from 'bundle-text:./cursors/Cur_MoveHorizontal_9_9.svg';\nimport {FocusRing} from '@react-aria/focus';\nimport {GridNode} from '@react-types/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {isWebKit, mergeProps} from '@react-aria/utils';\nimport {Key} from '@react-types/shared';\nimport React, {RefObject, useEffect, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport styles from '@adobe/spectrum-css-temp/components/table/vars.css';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useTableColumnResize} from '@react-aria/table';\nimport {useTableContext, useVirtualizerContext} from './TableViewBase';\n// @ts-ignore\nimport wCursor from 'bundle-text:./cursors/Cur_MoveToLeft_9_9.svg';\n\nfunction getCursor(svg: string, fallback: string) {\n // WebKit renders SVG cursors blurry on 2x screens: https://bugs.webkit.org/show_bug.cgi?id=160657\n // To work around this, we generate two SVGs at different sizes and use image-set to pick between them.\n // Only do this in WebKit to avoid Firefox rendering the cursor at twice the size.\n if (isWebKit()) {\n return `image-set(url(\"data:image/svg+xml,${encodeURIComponent(svg)}\") 1x, url(\"data:image/svg+xml,${encodeURIComponent(svg.replace('width=\"32\" height=\"32\"', 'width=\"64\" height=\"64\"'))}\") 2x) 8 8, ${fallback}`;\n } else {\n return `url(\"data:image/svg+xml,${encodeURIComponent(svg)}\") 8 8, ${fallback}`;\n }\n}\n\ninterface ResizerProps<T> {\n column: GridNode<T>,\n showResizer: boolean,\n triggerRef: RefObject<HTMLDivElement>,\n onResizeStart: (widths: Map<Key, ColumnSize>) => void,\n onResize: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd: (widths: Map<Key, ColumnSize>) => void\n}\n\nconst CURSORS = {\n ew: getCursor(ewCursor, 'ew-resize'),\n w: getCursor(wCursor, 'w-resize'),\n e: getCursor(eCursor, 'e-resize')\n};\n\nfunction Resizer<T>(props: ResizerProps<T>, ref: RefObject<HTMLInputElement>) {\n let {column, showResizer} = props;\n let {isEmpty, layout, onFocusedResizer} = useTableContext();\n // Virtualizer re-renders, but these components are all cached\n // in order to get around that and cause a rerender here, we use context\n // but we don't actually need any value, they are available on the layout object\n useVirtualizerContext();\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n let {direction} = useLocale();\n\n let [isPointerDown, setIsPointerDown] = useState(false);\n useEffect(() => {\n let setDown = (e) => {\n if (e.pointerType === 'mouse') {\n setIsPointerDown(true);\n }\n };\n let setUp = (e) => {\n if (e.pointerType === 'mouse') {\n setIsPointerDown(false);\n }\n };\n document.addEventListener('pointerdown', setDown, {capture: true});\n document.addEventListener('pointerup', setUp, {capture: true});\n return () => {\n document.removeEventListener('pointerdown', setDown, {capture: true});\n document.removeEventListener('pointerup', setUp, {capture: true});\n };\n }, []);\n\n let {inputProps, resizerProps} = useTableColumnResize<unknown>(\n mergeProps(props, {\n 'aria-label': stringFormatter.format('columnResizer'),\n isDisabled: isEmpty\n }), layout, ref);\n\n let isEResizable = layout.getColumnMinWidth(column.key) >= layout.getColumnWidth(column.key);\n let isWResizable = layout.getColumnMaxWidth(column.key) <= layout.getColumnWidth(column.key);\n let isResizing = layout.resizingColumn === column.key;\n let cursor = '';\n if (isEResizable) {\n cursor = direction === 'rtl' ? CURSORS.w : CURSORS.e;\n } else if (isWResizable) {\n cursor = direction === 'rtl' ? CURSORS.e : CURSORS.w;\n } else {\n cursor = CURSORS.ew;\n }\n\n let style = {\n ...resizerProps.style,\n height: '100%',\n display: showResizer ? undefined : 'none',\n cursor\n };\n\n return (\n <>\n <FocusRing within focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...resizerProps}\n role=\"presentation\"\n style={style}\n className={classNames(styles, 'spectrum-Table-columnResizer')}>\n <input\n ref={ref}\n {...mergeProps(inputProps, {onFocus: onFocusedResizer})} />\n </div>\n </FocusRing>\n {/* Placeholder so that the title doesn't intersect with space reserved by the resizer when it appears. */}\n <div\n aria-hidden\n role=\"presentation\"\n className={classNames(styles, 'spectrum-Table-columnResizerPlaceholder')} />\n <CursorOverlay show={isResizing && isPointerDown}>\n <div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />\n </CursorOverlay>\n </>\n );\n}\n\nfunction CursorOverlay(props) {\n let {show, children} = props;\n return show ? ReactDOM.createPortal(children, document.body) : null;\n}\n\nconst _Resizer = React.forwardRef(Resizer);\nexport {_Resizer as Resizer};\n","module.exports = \"fd8e59d99cf6255b\";","module.exports = \"c65a0be4a6d17c91\";","module.exports = \"d9395620b1a0eaaa\";"],"names":[],"version":3,"file":"Resizer.main.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/table/src/Resizer.tsx","node_modules/@parcel/runtime-js/lib/bundles/runtime-041bd783ad0660b4.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-8e8d37d2cf10eebe.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-cba9561fd7f119d5.js"],"sourcesContent":["/* eslint-disable jsx-a11y/role-supports-aria-props */\nimport {classNames} from '@react-spectrum/utils';\nimport {ColumnSize} from '@react-types/table';\n// @ts-ignore\nimport eCursor from 'bundle-text:./cursors/Cur_MoveToRight_9_9.svg';\n// @ts-ignore\nimport ewCursor from 'bundle-text:./cursors/Cur_MoveHorizontal_9_9.svg';\nimport {FocusRing} from '@react-aria/focus';\nimport {GridNode} from '@react-types/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {isWebKit, mergeProps} from '@react-aria/utils';\nimport {Key} from '@react-types/shared';\nimport React, {RefObject, useEffect, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport styles from '@adobe/spectrum-css-temp/components/table/vars.css';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useTableColumnResize} from '@react-aria/table';\nimport {useTableContext, useVirtualizerContext} from './TableViewBase';\nimport {useUNSTABLE_PortalContext} from '@react-aria/overlays';\n// @ts-ignore\nimport wCursor from 'bundle-text:./cursors/Cur_MoveToLeft_9_9.svg';\n\nfunction getCursor(svg: string, fallback: string) {\n // WebKit renders SVG cursors blurry on 2x screens: https://bugs.webkit.org/show_bug.cgi?id=160657\n // To work around this, we generate two SVGs at different sizes and use image-set to pick between them.\n // Only do this in WebKit to avoid Firefox rendering the cursor at twice the size.\n if (isWebKit()) {\n return `image-set(url(\"data:image/svg+xml,${encodeURIComponent(svg)}\") 1x, url(\"data:image/svg+xml,${encodeURIComponent(svg.replace('width=\"32\" height=\"32\"', 'width=\"64\" height=\"64\"'))}\") 2x) 8 8, ${fallback}`;\n } else {\n return `url(\"data:image/svg+xml,${encodeURIComponent(svg)}\") 8 8, ${fallback}`;\n }\n}\n\ninterface ResizerProps<T> {\n column: GridNode<T>,\n showResizer: boolean,\n triggerRef: RefObject<HTMLDivElement>,\n onResizeStart: (widths: Map<Key, ColumnSize>) => void,\n onResize: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd: (widths: Map<Key, ColumnSize>) => void\n}\n\nconst CURSORS = {\n ew: getCursor(ewCursor, 'ew-resize'),\n w: getCursor(wCursor, 'w-resize'),\n e: getCursor(eCursor, 'e-resize')\n};\n\nfunction Resizer<T>(props: ResizerProps<T>, ref: RefObject<HTMLInputElement>) {\n let {column, showResizer} = props;\n let {isEmpty, layout, onFocusedResizer} = useTableContext();\n // Virtualizer re-renders, but these components are all cached\n // in order to get around that and cause a rerender here, we use context\n // but we don't actually need any value, they are available on the layout object\n useVirtualizerContext();\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n let {direction} = useLocale();\n\n let [isPointerDown, setIsPointerDown] = useState(false);\n useEffect(() => {\n let setDown = (e) => {\n if (e.pointerType === 'mouse') {\n setIsPointerDown(true);\n }\n };\n let setUp = (e) => {\n if (e.pointerType === 'mouse') {\n setIsPointerDown(false);\n }\n };\n document.addEventListener('pointerdown', setDown, {capture: true});\n document.addEventListener('pointerup', setUp, {capture: true});\n return () => {\n document.removeEventListener('pointerdown', setDown, {capture: true});\n document.removeEventListener('pointerup', setUp, {capture: true});\n };\n }, []);\n\n let {inputProps, resizerProps} = useTableColumnResize<unknown>(\n mergeProps(props, {\n 'aria-label': stringFormatter.format('columnResizer'),\n isDisabled: isEmpty\n }), layout, ref);\n\n let isEResizable = layout.getColumnMinWidth(column.key) >= layout.getColumnWidth(column.key);\n let isWResizable = layout.getColumnMaxWidth(column.key) <= layout.getColumnWidth(column.key);\n let isResizing = layout.resizingColumn === column.key;\n let cursor = '';\n if (isEResizable) {\n cursor = direction === 'rtl' ? CURSORS.w : CURSORS.e;\n } else if (isWResizable) {\n cursor = direction === 'rtl' ? CURSORS.e : CURSORS.w;\n } else {\n cursor = CURSORS.ew;\n }\n\n let style = {\n ...resizerProps.style,\n height: '100%',\n display: showResizer ? undefined : 'none',\n cursor\n };\n\n return (\n <>\n <FocusRing within focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...resizerProps}\n role=\"presentation\"\n style={style}\n className={classNames(styles, 'spectrum-Table-columnResizer')}>\n <input\n ref={ref}\n {...mergeProps(inputProps, {onFocus: onFocusedResizer})} />\n </div>\n </FocusRing>\n {/* Placeholder so that the title doesn't intersect with space reserved by the resizer when it appears. */}\n <div\n aria-hidden\n role=\"presentation\"\n className={classNames(styles, 'spectrum-Table-columnResizerPlaceholder')} />\n <CursorOverlay show={isResizing && isPointerDown}>\n <div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />\n </CursorOverlay>\n </>\n );\n}\n\nfunction CursorOverlay(props) {\n let {show, children} = props;\n let {getContainer} = useUNSTABLE_PortalContext();\n return show ? ReactDOM.createPortal(children, getContainer?.() ?? document.body) : null;\n}\n\nconst _Resizer = React.forwardRef(Resizer);\nexport {_Resizer as Resizer};\n","module.exports = \"fd8e59d99cf6255b\";","module.exports = \"c65a0be4a6d17c91\";","module.exports = \"d9395620b1a0eaaa\";"],"names":[],"version":3,"file":"Resizer.main.js.map"}
package/dist/Resizer.mjs CHANGED
@@ -9,6 +9,7 @@ import $dIfdp$react, {useState as $dIfdp$useState, useEffect as $dIfdp$useEffect
9
9
  import $dIfdp$reactdom from "react-dom";
10
10
  import {useLocalizedStringFormatter as $dIfdp$useLocalizedStringFormatter, useLocale as $dIfdp$useLocale} from "@react-aria/i18n";
11
11
  import {useTableColumnResize as $dIfdp$useTableColumnResize} from "@react-aria/table";
12
+ import {useUNSTABLE_PortalContext as $dIfdp$useUNSTABLE_PortalContext} from "@react-aria/overlays";
12
13
 
13
14
 
14
15
  function $parcel$interopDefault(a) {
@@ -32,6 +33,7 @@ $ff1f3562a1be2216$exports = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xm
32
33
 
33
34
 
34
35
 
36
+
35
37
  var $58407c2d4eb33511$exports = {};
36
38
  $58407c2d4eb33511$exports = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"-1 0 31 32\">\n <filter id=\"shadow\">\n <feDropShadow dx=\"0\" dy=\"0.5\" stdDeviation=\"1.2\" flood-opacity=\"0.7\"></feDropShadow>\n </filter>\n <g filter=\"url('#shadow')\" transform=\"translate(.5 0)\">\n <path d=\"M9.5,2c.27614,0,.5,.22388,.5,.5v14c0,.27612-.22386,.5-.5,.5h-1c-.27614,0-.5-.22388-.5-.5v-6.5h-3v1.74951c0,.14893-.12215,.25049-.2513,.25049-.05457,0-.1104-.01819-.15875-.05847l-2.58995-2.44153,2.58995-2.44153c.04837-.04028,.10419-.05847,.15875-.05847,.12914,0,.2513,.10156,.2513,.25049v1.74951h3V2.5c0-.27612,.22386-.5,.5-.5h1Zm0-1h-1c-.82843,0-1.5,.67157-1.5,1.5v5.5h-1v-.67611c0-.40436-.1629-.80555-.48159-1.05444-.4961-.38744-1.14015-.33635-1.56876,.02095l-.02344,.01953-.0222,.02087L.92811,9.13618c-.20937,.19737-.20937,.53028,0,.72765l2.97589,2.80537,.0222,.02087,.02345,.01965c.42839,.35694,1.07208,.40833,1.56837,.02116,.31886-.24875,.48198-.64994,.48198-1.05435v-.67652s.99999,0,.99999,0v5.5c0,.82843,.67157,1.5,1.5,1.5h1c.82843,0,1.5-.67157,1.5-1.5V2.5c0-.82843-.67157-1.5-1.5-1.5Z\" fill=\"#fff\"></path>\n <path d=\"M10,16.5V2.5c0-.27614-.22386-.5-.5-.5h-1c-.27614,0-.5,.22386-.5,.5v6.5h-3v-1.74952c0-.21196-.24721-.32775-.41005-.19206l-2.58995,2.44158,2.58995,2.44158c.16283,.13569,.41005,.0199,.41005-.19206v-1.74952h3v6.5c0,.27614,.22386,.5,.5,.5h1c.27614,0,.5-.22386,.5-.5Z\"></path>\n </g>\n</svg>\n";
37
39
 
@@ -129,7 +131,9 @@ function $fc695d2eafc2b351$var$Resizer(props, ref) {
129
131
  }
130
132
  function $fc695d2eafc2b351$var$CursorOverlay(props) {
131
133
  let { show: show, children: children } = props;
132
- return show ? /*#__PURE__*/ (0, $dIfdp$reactdom).createPortal(children, document.body) : null;
134
+ let { getContainer: getContainer } = (0, $dIfdp$useUNSTABLE_PortalContext)();
135
+ var _getContainer;
136
+ return show ? /*#__PURE__*/ (0, $dIfdp$reactdom).createPortal(children, (_getContainer = getContainer === null || getContainer === void 0 ? void 0 : getContainer()) !== null && _getContainer !== void 0 ? _getContainer : document.body) : null;
133
137
  }
134
138
  const $fc695d2eafc2b351$export$48a76196cafe3b93 = /*#__PURE__*/ (0, $dIfdp$react).forwardRef($fc695d2eafc2b351$var$Resizer);
135
139
 
@@ -9,6 +9,7 @@ import $dIfdp$react, {useState as $dIfdp$useState, useEffect as $dIfdp$useEffect
9
9
  import $dIfdp$reactdom from "react-dom";
10
10
  import {useLocalizedStringFormatter as $dIfdp$useLocalizedStringFormatter, useLocale as $dIfdp$useLocale} from "@react-aria/i18n";
11
11
  import {useTableColumnResize as $dIfdp$useTableColumnResize} from "@react-aria/table";
12
+ import {useUNSTABLE_PortalContext as $dIfdp$useUNSTABLE_PortalContext} from "@react-aria/overlays";
12
13
 
13
14
 
14
15
  function $parcel$interopDefault(a) {
@@ -32,6 +33,7 @@ $ff1f3562a1be2216$exports = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xm
32
33
 
33
34
 
34
35
 
36
+
35
37
  var $58407c2d4eb33511$exports = {};
36
38
  $58407c2d4eb33511$exports = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"-1 0 31 32\">\n <filter id=\"shadow\">\n <feDropShadow dx=\"0\" dy=\"0.5\" stdDeviation=\"1.2\" flood-opacity=\"0.7\"></feDropShadow>\n </filter>\n <g filter=\"url('#shadow')\" transform=\"translate(.5 0)\">\n <path d=\"M9.5,2c.27614,0,.5,.22388,.5,.5v14c0,.27612-.22386,.5-.5,.5h-1c-.27614,0-.5-.22388-.5-.5v-6.5h-3v1.74951c0,.14893-.12215,.25049-.2513,.25049-.05457,0-.1104-.01819-.15875-.05847l-2.58995-2.44153,2.58995-2.44153c.04837-.04028,.10419-.05847,.15875-.05847,.12914,0,.2513,.10156,.2513,.25049v1.74951h3V2.5c0-.27612,.22386-.5,.5-.5h1Zm0-1h-1c-.82843,0-1.5,.67157-1.5,1.5v5.5h-1v-.67611c0-.40436-.1629-.80555-.48159-1.05444-.4961-.38744-1.14015-.33635-1.56876,.02095l-.02344,.01953-.0222,.02087L.92811,9.13618c-.20937,.19737-.20937,.53028,0,.72765l2.97589,2.80537,.0222,.02087,.02345,.01965c.42839,.35694,1.07208,.40833,1.56837,.02116,.31886-.24875,.48198-.64994,.48198-1.05435v-.67652s.99999,0,.99999,0v5.5c0,.82843,.67157,1.5,1.5,1.5h1c.82843,0,1.5-.67157,1.5-1.5V2.5c0-.82843-.67157-1.5-1.5-1.5Z\" fill=\"#fff\"></path>\n <path d=\"M10,16.5V2.5c0-.27614-.22386-.5-.5-.5h-1c-.27614,0-.5,.22386-.5,.5v6.5h-3v-1.74952c0-.21196-.24721-.32775-.41005-.19206l-2.58995,2.44158,2.58995,2.44158c.16283,.13569,.41005,.0199,.41005-.19206v-1.74952h3v6.5c0,.27614,.22386,.5,.5,.5h1c.27614,0,.5-.22386,.5-.5Z\"></path>\n </g>\n</svg>\n";
37
39
 
@@ -129,7 +131,9 @@ function $fc695d2eafc2b351$var$Resizer(props, ref) {
129
131
  }
130
132
  function $fc695d2eafc2b351$var$CursorOverlay(props) {
131
133
  let { show: show, children: children } = props;
132
- return show ? /*#__PURE__*/ (0, $dIfdp$reactdom).createPortal(children, document.body) : null;
134
+ let { getContainer: getContainer } = (0, $dIfdp$useUNSTABLE_PortalContext)();
135
+ var _getContainer;
136
+ return show ? /*#__PURE__*/ (0, $dIfdp$reactdom).createPortal(children, (_getContainer = getContainer === null || getContainer === void 0 ? void 0 : getContainer()) !== null && _getContainer !== void 0 ? _getContainer : document.body) : null;
133
137
  }
134
138
  const $fc695d2eafc2b351$export$48a76196cafe3b93 = /*#__PURE__*/ (0, $dIfdp$react).forwardRef($fc695d2eafc2b351$var$Resizer);
135
139
 
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/table/src/Resizer.tsx","node_modules/@parcel/runtime-js/lib/bundles/runtime-a4d2d5b24236251c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3b74b2254c084d90.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-363f6d14626169ea.js"],"sourcesContent":["/* eslint-disable jsx-a11y/role-supports-aria-props */\nimport {classNames} from '@react-spectrum/utils';\nimport {ColumnSize} from '@react-types/table';\n// @ts-ignore\nimport eCursor from 'bundle-text:./cursors/Cur_MoveToRight_9_9.svg';\n// @ts-ignore\nimport ewCursor from 'bundle-text:./cursors/Cur_MoveHorizontal_9_9.svg';\nimport {FocusRing} from '@react-aria/focus';\nimport {GridNode} from '@react-types/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {isWebKit, mergeProps} from '@react-aria/utils';\nimport {Key} from '@react-types/shared';\nimport React, {RefObject, useEffect, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport styles from '@adobe/spectrum-css-temp/components/table/vars.css';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useTableColumnResize} from '@react-aria/table';\nimport {useTableContext, useVirtualizerContext} from './TableViewBase';\n// @ts-ignore\nimport wCursor from 'bundle-text:./cursors/Cur_MoveToLeft_9_9.svg';\n\nfunction getCursor(svg: string, fallback: string) {\n // WebKit renders SVG cursors blurry on 2x screens: https://bugs.webkit.org/show_bug.cgi?id=160657\n // To work around this, we generate two SVGs at different sizes and use image-set to pick between them.\n // Only do this in WebKit to avoid Firefox rendering the cursor at twice the size.\n if (isWebKit()) {\n return `image-set(url(\"data:image/svg+xml,${encodeURIComponent(svg)}\") 1x, url(\"data:image/svg+xml,${encodeURIComponent(svg.replace('width=\"32\" height=\"32\"', 'width=\"64\" height=\"64\"'))}\") 2x) 8 8, ${fallback}`;\n } else {\n return `url(\"data:image/svg+xml,${encodeURIComponent(svg)}\") 8 8, ${fallback}`;\n }\n}\n\ninterface ResizerProps<T> {\n column: GridNode<T>,\n showResizer: boolean,\n triggerRef: RefObject<HTMLDivElement>,\n onResizeStart: (widths: Map<Key, ColumnSize>) => void,\n onResize: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd: (widths: Map<Key, ColumnSize>) => void\n}\n\nconst CURSORS = {\n ew: getCursor(ewCursor, 'ew-resize'),\n w: getCursor(wCursor, 'w-resize'),\n e: getCursor(eCursor, 'e-resize')\n};\n\nfunction Resizer<T>(props: ResizerProps<T>, ref: RefObject<HTMLInputElement>) {\n let {column, showResizer} = props;\n let {isEmpty, layout, onFocusedResizer} = useTableContext();\n // Virtualizer re-renders, but these components are all cached\n // in order to get around that and cause a rerender here, we use context\n // but we don't actually need any value, they are available on the layout object\n useVirtualizerContext();\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n let {direction} = useLocale();\n\n let [isPointerDown, setIsPointerDown] = useState(false);\n useEffect(() => {\n let setDown = (e) => {\n if (e.pointerType === 'mouse') {\n setIsPointerDown(true);\n }\n };\n let setUp = (e) => {\n if (e.pointerType === 'mouse') {\n setIsPointerDown(false);\n }\n };\n document.addEventListener('pointerdown', setDown, {capture: true});\n document.addEventListener('pointerup', setUp, {capture: true});\n return () => {\n document.removeEventListener('pointerdown', setDown, {capture: true});\n document.removeEventListener('pointerup', setUp, {capture: true});\n };\n }, []);\n\n let {inputProps, resizerProps} = useTableColumnResize<unknown>(\n mergeProps(props, {\n 'aria-label': stringFormatter.format('columnResizer'),\n isDisabled: isEmpty\n }), layout, ref);\n\n let isEResizable = layout.getColumnMinWidth(column.key) >= layout.getColumnWidth(column.key);\n let isWResizable = layout.getColumnMaxWidth(column.key) <= layout.getColumnWidth(column.key);\n let isResizing = layout.resizingColumn === column.key;\n let cursor = '';\n if (isEResizable) {\n cursor = direction === 'rtl' ? CURSORS.w : CURSORS.e;\n } else if (isWResizable) {\n cursor = direction === 'rtl' ? CURSORS.e : CURSORS.w;\n } else {\n cursor = CURSORS.ew;\n }\n\n let style = {\n ...resizerProps.style,\n height: '100%',\n display: showResizer ? undefined : 'none',\n cursor\n };\n\n return (\n <>\n <FocusRing within focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...resizerProps}\n role=\"presentation\"\n style={style}\n className={classNames(styles, 'spectrum-Table-columnResizer')}>\n <input\n ref={ref}\n {...mergeProps(inputProps, {onFocus: onFocusedResizer})} />\n </div>\n </FocusRing>\n {/* Placeholder so that the title doesn't intersect with space reserved by the resizer when it appears. */}\n <div\n aria-hidden\n role=\"presentation\"\n className={classNames(styles, 'spectrum-Table-columnResizerPlaceholder')} />\n <CursorOverlay show={isResizing && isPointerDown}>\n <div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />\n </CursorOverlay>\n </>\n );\n}\n\nfunction CursorOverlay(props) {\n let {show, children} = props;\n return show ? ReactDOM.createPortal(children, document.body) : null;\n}\n\nconst _Resizer = React.forwardRef(Resizer);\nexport {_Resizer as Resizer};\n","module.exports = \"fb5e0424109df74c\";","module.exports = \"b243267b2524b67c\";","module.exports = \"1fd435371c71f5bc\";"],"names":[],"version":3,"file":"Resizer.module.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/table/src/Resizer.tsx","node_modules/@parcel/runtime-js/lib/bundles/runtime-a4d2d5b24236251c.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3b74b2254c084d90.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-363f6d14626169ea.js"],"sourcesContent":["/* eslint-disable jsx-a11y/role-supports-aria-props */\nimport {classNames} from '@react-spectrum/utils';\nimport {ColumnSize} from '@react-types/table';\n// @ts-ignore\nimport eCursor from 'bundle-text:./cursors/Cur_MoveToRight_9_9.svg';\n// @ts-ignore\nimport ewCursor from 'bundle-text:./cursors/Cur_MoveHorizontal_9_9.svg';\nimport {FocusRing} from '@react-aria/focus';\nimport {GridNode} from '@react-types/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {isWebKit, mergeProps} from '@react-aria/utils';\nimport {Key} from '@react-types/shared';\nimport React, {RefObject, useEffect, useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport styles from '@adobe/spectrum-css-temp/components/table/vars.css';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useTableColumnResize} from '@react-aria/table';\nimport {useTableContext, useVirtualizerContext} from './TableViewBase';\nimport {useUNSTABLE_PortalContext} from '@react-aria/overlays';\n// @ts-ignore\nimport wCursor from 'bundle-text:./cursors/Cur_MoveToLeft_9_9.svg';\n\nfunction getCursor(svg: string, fallback: string) {\n // WebKit renders SVG cursors blurry on 2x screens: https://bugs.webkit.org/show_bug.cgi?id=160657\n // To work around this, we generate two SVGs at different sizes and use image-set to pick between them.\n // Only do this in WebKit to avoid Firefox rendering the cursor at twice the size.\n if (isWebKit()) {\n return `image-set(url(\"data:image/svg+xml,${encodeURIComponent(svg)}\") 1x, url(\"data:image/svg+xml,${encodeURIComponent(svg.replace('width=\"32\" height=\"32\"', 'width=\"64\" height=\"64\"'))}\") 2x) 8 8, ${fallback}`;\n } else {\n return `url(\"data:image/svg+xml,${encodeURIComponent(svg)}\") 8 8, ${fallback}`;\n }\n}\n\ninterface ResizerProps<T> {\n column: GridNode<T>,\n showResizer: boolean,\n triggerRef: RefObject<HTMLDivElement>,\n onResizeStart: (widths: Map<Key, ColumnSize>) => void,\n onResize: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd: (widths: Map<Key, ColumnSize>) => void\n}\n\nconst CURSORS = {\n ew: getCursor(ewCursor, 'ew-resize'),\n w: getCursor(wCursor, 'w-resize'),\n e: getCursor(eCursor, 'e-resize')\n};\n\nfunction Resizer<T>(props: ResizerProps<T>, ref: RefObject<HTMLInputElement>) {\n let {column, showResizer} = props;\n let {isEmpty, layout, onFocusedResizer} = useTableContext();\n // Virtualizer re-renders, but these components are all cached\n // in order to get around that and cause a rerender here, we use context\n // but we don't actually need any value, they are available on the layout object\n useVirtualizerContext();\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/table');\n let {direction} = useLocale();\n\n let [isPointerDown, setIsPointerDown] = useState(false);\n useEffect(() => {\n let setDown = (e) => {\n if (e.pointerType === 'mouse') {\n setIsPointerDown(true);\n }\n };\n let setUp = (e) => {\n if (e.pointerType === 'mouse') {\n setIsPointerDown(false);\n }\n };\n document.addEventListener('pointerdown', setDown, {capture: true});\n document.addEventListener('pointerup', setUp, {capture: true});\n return () => {\n document.removeEventListener('pointerdown', setDown, {capture: true});\n document.removeEventListener('pointerup', setUp, {capture: true});\n };\n }, []);\n\n let {inputProps, resizerProps} = useTableColumnResize<unknown>(\n mergeProps(props, {\n 'aria-label': stringFormatter.format('columnResizer'),\n isDisabled: isEmpty\n }), layout, ref);\n\n let isEResizable = layout.getColumnMinWidth(column.key) >= layout.getColumnWidth(column.key);\n let isWResizable = layout.getColumnMaxWidth(column.key) <= layout.getColumnWidth(column.key);\n let isResizing = layout.resizingColumn === column.key;\n let cursor = '';\n if (isEResizable) {\n cursor = direction === 'rtl' ? CURSORS.w : CURSORS.e;\n } else if (isWResizable) {\n cursor = direction === 'rtl' ? CURSORS.e : CURSORS.w;\n } else {\n cursor = CURSORS.ew;\n }\n\n let style = {\n ...resizerProps.style,\n height: '100%',\n display: showResizer ? undefined : 'none',\n cursor\n };\n\n return (\n <>\n <FocusRing within focusRingClass={classNames(styles, 'focus-ring')}>\n <div\n {...resizerProps}\n role=\"presentation\"\n style={style}\n className={classNames(styles, 'spectrum-Table-columnResizer')}>\n <input\n ref={ref}\n {...mergeProps(inputProps, {onFocus: onFocusedResizer})} />\n </div>\n </FocusRing>\n {/* Placeholder so that the title doesn't intersect with space reserved by the resizer when it appears. */}\n <div\n aria-hidden\n role=\"presentation\"\n className={classNames(styles, 'spectrum-Table-columnResizerPlaceholder')} />\n <CursorOverlay show={isResizing && isPointerDown}>\n <div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />\n </CursorOverlay>\n </>\n );\n}\n\nfunction CursorOverlay(props) {\n let {show, children} = props;\n let {getContainer} = useUNSTABLE_PortalContext();\n return show ? ReactDOM.createPortal(children, getContainer?.() ?? document.body) : null;\n}\n\nconst _Resizer = React.forwardRef(Resizer);\nexport {_Resizer as Resizer};\n","module.exports = \"fb5e0424109df74c\";","module.exports = \"b243267b2524b67c\";","module.exports = \"1fd435371c71f5bc\";"],"names":[],"version":3,"file":"Resizer.module.js.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-spectrum/table",
3
- "version": "3.12.9-nightly.4567+a597a0ce5",
3
+ "version": "3.12.9-nightly.4578+b09a14eb1",
4
4
  "description": "Spectrum UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/main.js",
@@ -36,35 +36,36 @@
36
36
  "url": "https://github.com/adobe/react-spectrum"
37
37
  },
38
38
  "dependencies": {
39
- "@react-aria/button": "3.0.0-nightly.2855+a597a0ce5",
40
- "@react-aria/focus": "3.0.0-nightly.2855+a597a0ce5",
41
- "@react-aria/i18n": "3.0.0-nightly.2855+a597a0ce5",
42
- "@react-aria/interactions": "3.0.0-nightly.2855+a597a0ce5",
43
- "@react-aria/table": "3.13.6-nightly.4567+a597a0ce5",
44
- "@react-aria/utils": "3.0.0-nightly.2855+a597a0ce5",
45
- "@react-aria/virtualizer": "3.9.11-nightly.4567+a597a0ce5",
46
- "@react-aria/visually-hidden": "3.0.0-nightly.2855+a597a0ce5",
47
- "@react-spectrum/checkbox": "3.0.0-nightly.2855+a597a0ce5",
48
- "@react-spectrum/dnd": "3.3.9-nightly.4567+a597a0ce5",
49
- "@react-spectrum/layout": "3.6.4-nightly.4567+a597a0ce5",
50
- "@react-spectrum/menu": "3.18.2-nightly.4567+a597a0ce5",
51
- "@react-spectrum/progress": "3.0.0-nightly.2855+a597a0ce5",
52
- "@react-spectrum/tooltip": "3.0.0-nightly.2855+a597a0ce5",
53
- "@react-spectrum/utils": "3.0.0-nightly.2855+a597a0ce5",
54
- "@react-stately/flags": "3.0.2-nightly.4567+a597a0ce5",
55
- "@react-stately/layout": "3.13.8-nightly.4567+a597a0ce5",
56
- "@react-stately/table": "3.11.7-nightly.4567+a597a0ce5",
57
- "@react-stately/virtualizer": "3.6.9-nightly.4567+a597a0ce5",
58
- "@react-types/grid": "3.2.5-nightly.4567+a597a0ce5",
59
- "@react-types/shared": "3.0.0-nightly.2855+a597a0ce5",
60
- "@react-types/table": "3.9.4-nightly.4567+a597a0ce5",
61
- "@spectrum-icons/ui": "3.0.0-nightly.2855+a597a0ce5",
39
+ "@react-aria/button": "3.0.0-nightly.2866+b09a14eb1",
40
+ "@react-aria/focus": "3.0.0-nightly.2866+b09a14eb1",
41
+ "@react-aria/i18n": "3.0.0-nightly.2866+b09a14eb1",
42
+ "@react-aria/interactions": "3.0.0-nightly.2866+b09a14eb1",
43
+ "@react-aria/overlays": "3.0.0-nightly.2866+b09a14eb1",
44
+ "@react-aria/table": "3.13.6-nightly.4578+b09a14eb1",
45
+ "@react-aria/utils": "3.0.0-nightly.2866+b09a14eb1",
46
+ "@react-aria/virtualizer": "3.9.11-nightly.4578+b09a14eb1",
47
+ "@react-aria/visually-hidden": "3.0.0-nightly.2866+b09a14eb1",
48
+ "@react-spectrum/checkbox": "3.0.0-nightly.2866+b09a14eb1",
49
+ "@react-spectrum/dnd": "3.3.9-nightly.4578+b09a14eb1",
50
+ "@react-spectrum/layout": "3.6.4-nightly.4578+b09a14eb1",
51
+ "@react-spectrum/menu": "3.18.2-nightly.4578+b09a14eb1",
52
+ "@react-spectrum/progress": "3.0.0-nightly.2866+b09a14eb1",
53
+ "@react-spectrum/tooltip": "3.0.0-nightly.2866+b09a14eb1",
54
+ "@react-spectrum/utils": "3.0.0-nightly.2866+b09a14eb1",
55
+ "@react-stately/flags": "3.0.2-nightly.4578+b09a14eb1",
56
+ "@react-stately/layout": "3.13.8-nightly.4578+b09a14eb1",
57
+ "@react-stately/table": "3.11.7-nightly.4578+b09a14eb1",
58
+ "@react-stately/virtualizer": "3.6.9-nightly.4578+b09a14eb1",
59
+ "@react-types/grid": "3.2.5-nightly.4578+b09a14eb1",
60
+ "@react-types/shared": "3.0.0-nightly.2866+b09a14eb1",
61
+ "@react-types/table": "3.9.4-nightly.4578+b09a14eb1",
62
+ "@spectrum-icons/ui": "3.0.0-nightly.2866+b09a14eb1",
62
63
  "@swc/helpers": "^0.5.0"
63
64
  },
64
65
  "devDependencies": {
65
- "@adobe/spectrum-css-temp": "3.0.0-nightly.2855+a597a0ce5",
66
- "@react-aria/dnd": "3.5.4-nightly.4567+a597a0ce5",
67
- "@react-stately/dnd": "3.2.9-nightly.4567+a597a0ce5"
66
+ "@adobe/spectrum-css-temp": "3.0.0-nightly.2866+b09a14eb1",
67
+ "@react-aria/dnd": "3.5.4-nightly.4578+b09a14eb1",
68
+ "@react-stately/dnd": "3.2.9-nightly.4578+b09a14eb1"
68
69
  },
69
70
  "peerDependencies": {
70
71
  "@react-spectrum/provider": "^3.0.0",
@@ -74,5 +75,5 @@
74
75
  "publishConfig": {
75
76
  "access": "public"
76
77
  },
77
- "gitHead": "a597a0ce5f345a7c5968939d120eafbe6f02ac2a"
78
+ "gitHead": "b09a14eb1854d9d52e08739e30aa8fae51f1595a"
78
79
  }
package/src/Resizer.tsx CHANGED
@@ -17,6 +17,7 @@ import styles from '@adobe/spectrum-css-temp/components/table/vars.css';
17
17
  import {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';
18
18
  import {useTableColumnResize} from '@react-aria/table';
19
19
  import {useTableContext, useVirtualizerContext} from './TableViewBase';
20
+ import {useUNSTABLE_PortalContext} from '@react-aria/overlays';
20
21
  // @ts-ignore
21
22
  import wCursor from 'bundle-text:./cursors/Cur_MoveToLeft_9_9.svg';
22
23
 
@@ -128,7 +129,8 @@ function Resizer<T>(props: ResizerProps<T>, ref: RefObject<HTMLInputElement>) {
128
129
 
129
130
  function CursorOverlay(props) {
130
131
  let {show, children} = props;
131
- return show ? ReactDOM.createPortal(children, document.body) : null;
132
+ let {getContainer} = useUNSTABLE_PortalContext();
133
+ return show ? ReactDOM.createPortal(children, getContainer?.() ?? document.body) : null;
132
134
  }
133
135
 
134
136
  const _Resizer = React.forwardRef(Resizer);