@react-spectrum/utils 3.9.2 → 3.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/import.mjs CHANGED
@@ -15,7 +15,6 @@ import {useLocale as $5lsDl$useLocale} from "@react-aria/i18n";
15
15
  * OF ANY KIND, either express or implied. See the License for the specific language
16
16
  * governing permissions and limitations under the License.
17
17
  */ /// <reference types="css-module-types" />
18
- /// <reference path="./ResizeObserver.d.ts" />
19
18
  /*
20
19
  * Copyright 2020 Adobe. All rights reserved.
21
20
  * This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -615,8 +614,8 @@ function $380ed8f3903c3931$export$f3c39bb9534218d0(props, handlers, direction, m
615
614
  if (Array.isArray(name)) for (let k of name)style[k] = value;
616
615
  else style[name] = value;
617
616
  }
618
- for(let prop1 in $380ed8f3903c3931$var$borderStyleProps)if (style[prop1]) {
619
- style[$380ed8f3903c3931$var$borderStyleProps[prop1]] = "solid";
617
+ for(let prop in $380ed8f3903c3931$var$borderStyleProps)if (style[prop]) {
618
+ style[$380ed8f3903c3931$var$borderStyleProps[prop]] = "solid";
620
619
  style.boxSizing = "border-box";
621
620
  }
622
621
  return style;
@@ -765,6 +764,5 @@ function $fdbe26a36ce1c672$export$736bf165441b18c7() {
765
764
 
766
765
 
767
766
 
768
-
769
767
  export {$fd933927dbac1f15$export$46d604dce8bf8724 as shouldKeepSpectrumClassNames, $fd933927dbac1f15$export$f9d3bfd10703eb31 as keepSpectrumClassNames, $fd933927dbac1f15$export$ce4ab0c55987d1ff as classNames, $bde65b0159e7c06e$export$a5f5a6912b18861c as getWrappedElement, $3df547e395c4522f$export$32d5543ab307c01 as useMediaQuery, $98e5a8ae0e6415af$export$a5795cc979dfae80 as createDOMRef, $98e5a8ae0e6415af$export$79d69eee6ae4b329 as createFocusableRef, $98e5a8ae0e6415af$export$c2c55ef9111cafd8 as useDOMRef, $98e5a8ae0e6415af$export$96a734597687c040 as useFocusableRef, $98e5a8ae0e6415af$export$c7e28c72a4823176 as unwrapDOMRef, $98e5a8ae0e6415af$export$1d5cc31d9d8df817 as useUnwrapDOMRef, $380ed8f3903c3931$export$fe9c6e915565b4e8 as baseStyleProps, $380ed8f3903c3931$export$e0705d1a55f297c as viewStyleProps, $380ed8f3903c3931$export$abc24f5b99744ea6 as dimensionValue, $380ed8f3903c3931$export$f348bec194f2e6b5 as responsiveDimensionValue, $380ed8f3903c3931$export$f3c39bb9534218d0 as convertStyleProps, $380ed8f3903c3931$export$b8e6fb9d2dff3f41 as useStyleProps, $380ed8f3903c3931$export$46b6c81d11d2c30a as passthroughStyle, $380ed8f3903c3931$export$52dbfdbe1b2c3541 as getResponsiveProp, $59d09bcc83651bf9$export$1e5c9e6e4e15efe3 as useSlotProps, $59d09bcc83651bf9$export$365cf34cda9978e2 as cssModuleToSlots, $59d09bcc83651bf9$export$8107b24b91795686 as SlotProvider, $59d09bcc83651bf9$export$ceb145244332b7a2 as ClearSlots, $54cda195bd4173fb$export$e52e2242b6d0f1d4 as useHasChild, $fdbe26a36ce1c672$export$736bf165441b18c7 as useIsMobileDevice, $857d64dbfd73d664$re_export$useValueEffect as useValueEffect, $1051245f87c5981d$export$8214320346cf5104 as BreakpointProvider, $1051245f87c5981d$export$140ae7baa51cca23 as useMatchedBreakpoints, $1051245f87c5981d$export$199d6754bdf4e1e3 as useBreakpoint, $857d64dbfd73d664$re_export$useResizeObserver as useResizeObserver};
770
768
  //# sourceMappingURL=module.js.map
package/dist/main.js CHANGED
@@ -52,7 +52,6 @@ $parcel$export(module.exports, "useResizeObserver", () => $cRUfp$reactariautils.
52
52
  * OF ANY KIND, either express or implied. See the License for the specific language
53
53
  * governing permissions and limitations under the License.
54
54
  */ /// <reference types="css-module-types" />
55
- /// <reference path="./ResizeObserver.d.ts" />
56
55
  /*
57
56
  * Copyright 2020 Adobe. All rights reserved.
58
57
  * This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -652,8 +651,8 @@ function $d3b73be57066120b$export$f3c39bb9534218d0(props, handlers, direction, m
652
651
  if (Array.isArray(name)) for (let k of name)style[k] = value;
653
652
  else style[name] = value;
654
653
  }
655
- for(let prop1 in $d3b73be57066120b$var$borderStyleProps)if (style[prop1]) {
656
- style[$d3b73be57066120b$var$borderStyleProps[prop1]] = "solid";
654
+ for(let prop in $d3b73be57066120b$var$borderStyleProps)if (style[prop]) {
655
+ style[$d3b73be57066120b$var$borderStyleProps[prop]] = "solid";
657
656
  style.boxSizing = "border-box";
658
657
  }
659
658
  return style;
@@ -802,5 +801,4 @@ function $e9c08f6fb6c823d1$export$736bf165441b18c7() {
802
801
 
803
802
 
804
803
 
805
-
806
804
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/utils/src/index.ts","packages/@react-spectrum/utils/src/classNames.ts","packages/@react-spectrum/utils/src/getWrappedElement.tsx","packages/@react-spectrum/utils/src/useMediaQuery.ts","packages/@react-spectrum/utils/src/useDOMRef.ts","packages/@react-spectrum/utils/src/styleProps.ts","packages/@react-spectrum/utils/src/BreakpointProvider.tsx","packages/@react-spectrum/utils/src/Slots.tsx","packages/@react-spectrum/utils/src/useHasChild.ts","packages/@react-spectrum/utils/src/useIsMobileDevice.ts"],"sourcesContent":["/*\n * Copyright 2020 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\n/// <reference types=\"css-module-types\" />\n/// <reference path=\"./ResizeObserver.d.ts\" />\n\nexport type {StyleHandlers} from './styleProps';\nexport {shouldKeepSpectrumClassNames, keepSpectrumClassNames, classNames} from './classNames';\nexport {getWrappedElement} from './getWrappedElement';\nexport {useMediaQuery} from './useMediaQuery';\nexport {createDOMRef, createFocusableRef, useDOMRef, useFocusableRef, unwrapDOMRef, useUnwrapDOMRef} from './useDOMRef';\nexport {\n baseStyleProps,\n viewStyleProps,\n dimensionValue,\n responsiveDimensionValue,\n convertStyleProps,\n useStyleProps,\n passthroughStyle,\n getResponsiveProp\n} from './styleProps';\nexport {useSlotProps, cssModuleToSlots, SlotProvider, ClearSlots} from './Slots';\nexport {useHasChild} from './useHasChild';\nexport {useIsMobileDevice} from './useIsMobileDevice';\nexport {useValueEffect} from '@react-aria/utils';\nexport {BreakpointProvider, useMatchedBreakpoints, useBreakpoint} from './BreakpointProvider';\nexport {useResizeObserver} from '@react-aria/utils';\n","/*\n * Copyright 2020 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 _clsx from 'clsx';\n\nexport let shouldKeepSpectrumClassNames = false;\n\nexport function keepSpectrumClassNames() {\n shouldKeepSpectrumClassNames = true;\n console.warn(\n 'Legacy spectrum-prefixed class names enabled for backward compatibility. ' +\n 'We recommend replacing instances of CSS overrides targeting spectrum selectors ' +\n 'in your app with custom class names of your own, and disabling this flag.'\n );\n}\n\nexport function classNames(cssModule: {[key: string]: string}, ...values: Array<string | Object | undefined>): string {\n let classes = [];\n for (let value of values) {\n if (typeof value === 'object' && value) {\n let mapped = {};\n for (let key in value) {\n if (cssModule[key]) {\n mapped[cssModule[key]] = value[key];\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[key]) {\n mapped[key] = value[key];\n }\n }\n\n classes.push(mapped);\n } else if (typeof value === 'string') {\n if (cssModule[value]) {\n classes.push(cssModule[value]);\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[value]) {\n classes.push(value);\n }\n } else {\n classes.push(value);\n }\n }\n\n return _clsx(...classes);\n}\n","/*\n * Copyright 2020 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 React, {JSXElementConstructor, ReactElement, ReactNode} from 'react';\n\nexport function getWrappedElement(children: string | ReactElement | ReactNode): ReactElement<any, JSXElementConstructor<any>> {\n let element;\n if (typeof children === 'string') {\n element = <span>{children}</span>;\n } else {\n element = React.Children.only(children);\n }\n return element;\n}\n","/*\n * Copyright 2020 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 {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport function useMediaQuery(query: string) {\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let [matches, setMatches] = useState(() =>\n supportsMatchMedia\n ? window.matchMedia(query).matches\n : false\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let mq = window.matchMedia(query);\n let onChange = (evt) => {\n setMatches(evt.matches);\n };\n\n mq.addListener(onChange);\n return () => {\n mq.removeListener(onChange);\n };\n }, [supportsMatchMedia, query]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? false : matches;\n}\n","/*\n * Copyright 2020 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 {DOMRef, DOMRefValue, FocusableElement, FocusableRef, FocusableRefValue} from '@react-types/shared';\nimport {RefObject, useImperativeHandle, useMemo, useRef} from 'react';\n\nexport function createDOMRef<T extends HTMLElement = HTMLElement>(ref: RefObject<T>): DOMRefValue<T> {\n return {\n UNSAFE_getDOMNode() {\n return ref.current;\n }\n };\n}\n\nexport function createFocusableRef<T extends HTMLElement = HTMLElement>(domRef: RefObject<T>, focusableRef: RefObject<FocusableElement> = domRef): FocusableRefValue<T> {\n return {\n ...createDOMRef(domRef),\n focus() {\n if (focusableRef.current) {\n focusableRef.current.focus();\n }\n }\n };\n}\n\nexport function useDOMRef<T extends HTMLElement = HTMLElement>(ref: DOMRef<T>): RefObject<T> {\n let domRef = useRef<T>(null);\n useImperativeHandle(ref, () => createDOMRef(domRef));\n return domRef;\n}\n\nexport function useFocusableRef<T extends HTMLElement = HTMLElement>(ref: FocusableRef<T>, focusableRef?: RefObject<FocusableElement>): RefObject<T> {\n let domRef = useRef<T>(null);\n useImperativeHandle(ref, () => createFocusableRef(domRef, focusableRef));\n return domRef;\n}\n\nexport function unwrapDOMRef<T extends HTMLElement>(ref: RefObject<DOMRefValue<T>>): RefObject<T> {\n return {\n get current() {\n return ref.current && ref.current.UNSAFE_getDOMNode();\n }\n };\n}\n\nexport function useUnwrapDOMRef<T extends HTMLElement>(ref: RefObject<DOMRefValue<T>>) : RefObject<T> {\n return useMemo(() => unwrapDOMRef(ref), [ref]);\n}\n","/*\n * Copyright 2020 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 {BackgroundColorValue, BorderColorValue, BorderRadiusValue, BorderSizeValue, ColorValue, ColorVersion, DimensionValue, Direction, Responsive, ResponsiveProp, StyleProps, ViewStyleProps} from '@react-types/shared';\nimport {CSSProperties, HTMLAttributes} from 'react';\nimport {useBreakpoint} from './BreakpointProvider';\nimport {useLocale} from '@react-aria/i18n';\n\ntype Breakpoint = 'base' | 'S' | 'M' | 'L' | string;\ntype StyleName = string | string[] | ((dir: Direction) => string);\ntype StyleHandler = (value: any, colorVersion?: number) => string;\nexport interface StyleHandlers {\n [key: string]: [StyleName, StyleHandler]\n}\n\nexport const baseStyleProps: StyleHandlers = {\n margin: ['margin', dimensionValue],\n marginStart: [rtl('marginLeft', 'marginRight'), dimensionValue],\n marginEnd: [rtl('marginRight', 'marginLeft'), dimensionValue],\n // marginLeft: ['marginLeft', dimensionValue],\n // marginRight: ['marginRight', dimensionValue],\n marginTop: ['marginTop', dimensionValue],\n marginBottom: ['marginBottom', dimensionValue],\n marginX: [['marginLeft', 'marginRight'], dimensionValue],\n marginY: [['marginTop', 'marginBottom'], dimensionValue],\n width: ['width', dimensionValue],\n height: ['height', dimensionValue],\n minWidth: ['minWidth', dimensionValue],\n minHeight: ['minHeight', dimensionValue],\n maxWidth: ['maxWidth', dimensionValue],\n maxHeight: ['maxHeight', dimensionValue],\n isHidden: ['display', hiddenValue],\n alignSelf: ['alignSelf', passthroughStyle],\n justifySelf: ['justifySelf', passthroughStyle],\n position: ['position', anyValue],\n zIndex: ['zIndex', anyValue],\n top: ['top', dimensionValue],\n bottom: ['bottom', dimensionValue],\n start: [rtl('left', 'right'), dimensionValue],\n end: [rtl('right', 'left'), dimensionValue],\n left: ['left', dimensionValue],\n right: ['right', dimensionValue],\n order: ['order', anyValue],\n flex: ['flex', flexValue],\n flexGrow: ['flexGrow', passthroughStyle],\n flexShrink: ['flexShrink', passthroughStyle],\n flexBasis: ['flexBasis', passthroughStyle],\n gridArea: ['gridArea', passthroughStyle],\n gridColumn: ['gridColumn', passthroughStyle],\n gridColumnEnd: ['gridColumnEnd', passthroughStyle],\n gridColumnStart: ['gridColumnStart', passthroughStyle],\n gridRow: ['gridRow', passthroughStyle],\n gridRowEnd: ['gridRowEnd', passthroughStyle],\n gridRowStart: ['gridRowStart', passthroughStyle]\n};\n\nexport const viewStyleProps: StyleHandlers = {\n ...baseStyleProps,\n backgroundColor: ['backgroundColor', backgroundColorValue],\n borderWidth: ['borderWidth', borderSizeValue],\n borderStartWidth: [rtl('borderLeftWidth', 'borderRightWidth'), borderSizeValue],\n borderEndWidth: [rtl('borderRightWidth', 'borderLeftWidth'), borderSizeValue],\n borderLeftWidth: ['borderLeftWidth', borderSizeValue],\n borderRightWidth: ['borderRightWidth', borderSizeValue],\n borderTopWidth: ['borderTopWidth', borderSizeValue],\n borderBottomWidth: ['borderBottomWidth', borderSizeValue],\n borderXWidth: [['borderLeftWidth', 'borderRightWidth'], borderSizeValue],\n borderYWidth: [['borderTopWidth', 'borderBottomWidth'], borderSizeValue],\n borderColor: ['borderColor', borderColorValue],\n borderStartColor: [rtl('borderLeftColor', 'borderRightColor'), borderColorValue],\n borderEndColor: [rtl('borderRightColor', 'borderLeftColor'), borderColorValue],\n borderLeftColor: ['borderLeftColor', borderColorValue],\n borderRightColor: ['borderRightColor', borderColorValue],\n borderTopColor: ['borderTopColor', borderColorValue],\n borderBottomColor: ['borderBottomColor', borderColorValue],\n borderXColor: [['borderLeftColor', 'borderRightColor'], borderColorValue],\n borderYColor: [['borderTopColor', 'borderBottomColor'], borderColorValue],\n borderRadius: ['borderRadius', borderRadiusValue],\n borderTopStartRadius: [rtl('borderTopLeftRadius', 'borderTopRightRadius'), borderRadiusValue],\n borderTopEndRadius: [rtl('borderTopRightRadius', 'borderTopLeftRadius'), borderRadiusValue],\n borderBottomStartRadius: [rtl('borderBottomLeftRadius', 'borderBottomRightRadius'), borderRadiusValue],\n borderBottomEndRadius: [rtl('borderBottomRightRadius', 'borderBottomLeftRadius'), borderRadiusValue],\n borderTopLeftRadius: ['borderTopLeftRadius', borderRadiusValue],\n borderTopRightRadius: ['borderTopRightRadius', borderRadiusValue],\n borderBottomLeftRadius: ['borderBottomLeftRadius', borderRadiusValue],\n borderBottomRightRadius: ['borderBottomRightRadius', borderRadiusValue],\n padding: ['padding', dimensionValue],\n paddingStart: [rtl('paddingLeft', 'paddingRight'), dimensionValue],\n paddingEnd: [rtl('paddingRight', 'paddingLeft'), dimensionValue],\n paddingLeft: ['paddingLeft', dimensionValue],\n paddingRight: ['paddingRight', dimensionValue],\n paddingTop: ['paddingTop', dimensionValue],\n paddingBottom: ['paddingBottom', dimensionValue],\n paddingX: [['paddingLeft', 'paddingRight'], dimensionValue],\n paddingY: [['paddingTop', 'paddingBottom'], dimensionValue],\n overflow: ['overflow', passthroughStyle]\n};\n\nconst borderStyleProps = {\n borderWidth: 'borderStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n borderTopWidth: 'borderTopStyle',\n borderBottomWidth: 'borderBottomStyle'\n};\n\nfunction rtl(ltr: string, rtl: string) {\n return (direction: Direction) => (\n direction === 'rtl' ? rtl : ltr\n );\n}\n\nconst UNIT_RE = /(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/;\nconst FUNC_RE = /^\\s*\\w+\\(/;\nconst SPECTRUM_VARIABLE_RE = /(static-)?size-\\d+|single-line-(height|width)/g;\n\nexport function dimensionValue(value: DimensionValue) {\n if (typeof value === 'number') {\n return value + 'px';\n }\n\n if (UNIT_RE.test(value)) {\n return value;\n }\n\n if (FUNC_RE.test(value)) {\n return value.replace(SPECTRUM_VARIABLE_RE, 'var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))');\n }\n\n return `var(--spectrum-global-dimension-${value}, var(--spectrum-alias-${value}))`;\n}\n\nexport function responsiveDimensionValue(value: Responsive<DimensionValue>, matchedBreakpoints: Breakpoint[]) {\n value = getResponsiveProp(value, matchedBreakpoints);\n return dimensionValue(value);\n}\n\ntype ColorType = 'default' | 'background' | 'border' | 'icon' | 'status';\nfunction colorValue(value: ColorValue, type: ColorType = 'default', version = 5) {\n if (version > 5) {\n return `var(--spectrum-${value}, var(--spectrum-semantic-${value}-color-${type}))`;\n }\n\n return `var(--spectrum-legacy-color-${value}, var(--spectrum-global-color-${value}, var(--spectrum-semantic-${value}-color-${type})))`;\n}\n\nfunction backgroundColorValue(value: BackgroundColorValue, version = 5) {\n return `var(--spectrum-alias-background-color-${value}, ${colorValue(value as ColorValue, 'background', version)})`;\n}\n\nfunction borderColorValue(value: BorderColorValue, version = 5) {\n if (value === 'default') {\n return 'var(--spectrum-alias-border-color)';\n }\n\n return `var(--spectrum-alias-border-color-${value}, ${colorValue(value as ColorValue, 'border', version)})`;\n}\n\nfunction borderSizeValue(value: BorderSizeValue) {\n return `var(--spectrum-alias-border-size-${value})`;\n}\n\nfunction borderRadiusValue(value: BorderRadiusValue) {\n return `var(--spectrum-alias-border-radius-${value})`;\n}\n\nfunction hiddenValue(value: boolean) {\n return value ? 'none' : undefined;\n}\n\nfunction anyValue(value: any) {\n return value;\n}\n\nfunction flexValue(value: boolean | number | string) {\n if (typeof value === 'boolean') {\n return value ? '1' : undefined;\n }\n\n return '' + value;\n}\n\nexport function convertStyleProps<C extends ColorVersion>(props: ViewStyleProps<C>, handlers: StyleHandlers, direction: Direction, matchedBreakpoints: Breakpoint[]) {\n let style: CSSProperties = {};\n for (let key in props) {\n let styleProp = handlers[key];\n if (!styleProp || props[key] == null) {\n continue;\n }\n\n let [name, convert] = styleProp;\n if (typeof name === 'function') {\n name = name(direction);\n }\n\n let prop = getResponsiveProp(props[key], matchedBreakpoints);\n let value = convert(prop, props.colorVersion);\n if (Array.isArray(name)) {\n for (let k of name) {\n style[k] = value;\n }\n } else {\n style[name] = value;\n }\n }\n\n for (let prop in borderStyleProps) {\n if (style[prop]) {\n style[borderStyleProps[prop]] = 'solid';\n style.boxSizing = 'border-box';\n }\n }\n\n return style;\n}\n\ntype StylePropsOptions = {\n matchedBreakpoints?: Breakpoint[]\n};\n\nexport function useStyleProps<T extends StyleProps>(\n props: T,\n handlers: StyleHandlers = baseStyleProps,\n options: StylePropsOptions = {}\n) {\n let {\n UNSAFE_className,\n UNSAFE_style,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let {direction} = useLocale();\n let {\n matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base']\n } = options;\n let styles = convertStyleProps(props, handlers, direction, matchedBreakpoints);\n let style = {...UNSAFE_style, ...styles};\n\n // @ts-ignore\n if (otherProps.className) {\n console.warn(\n 'The className prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n // @ts-ignore\n if (otherProps.style) {\n console.warn(\n 'The style prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n let styleProps: HTMLAttributes<HTMLElement> = {\n style,\n className: UNSAFE_className\n };\n\n if (getResponsiveProp(props.isHidden, matchedBreakpoints)) {\n styleProps.hidden = true;\n }\n\n return {\n styleProps\n };\n}\n\nexport function passthroughStyle(value) {\n return value;\n}\n\nexport function getResponsiveProp<T>(prop: Responsive<T>, matchedBreakpoints: Breakpoint[]): T {\n if (prop && typeof prop === 'object' && !Array.isArray(prop)) {\n for (let i = 0; i < matchedBreakpoints.length; i++) {\n let breakpoint = matchedBreakpoints[i];\n if (prop[breakpoint] != null) {\n return prop[breakpoint];\n }\n }\n return (prop as ResponsiveProp<T>).base;\n }\n return prop as T;\n}\n","import React, {ReactNode, useContext, useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface Breakpoints {\n S?: number,\n M?: number,\n L?: number,\n [custom: string]: number | undefined\n}\n\ninterface BreakpointContext {\n matchedBreakpoints: string[]\n}\n\nconst Context = React.createContext<BreakpointContext>(null);\nContext.displayName = 'BreakpointContext';\n\ninterface BreakpointProviderProps {\n children?: ReactNode,\n matchedBreakpoints: string[]\n}\n\nexport function BreakpointProvider(props: BreakpointProviderProps) {\n let {\n children,\n matchedBreakpoints\n } = props;\n return (\n <Context.Provider\n value={{matchedBreakpoints}} >\n {children}\n </Context.Provider>\n );\n}\n\nexport function useMatchedBreakpoints(breakpoints: Breakpoints): string[] {\n let entries = Object.entries(breakpoints).sort(([, valueA], [, valueB]) => valueB - valueA);\n let breakpointQueries = entries.map(([, value]) => `(min-width: ${value}px)`);\n\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let getBreakpointHandler = () => {\n let matched = [];\n for (let i in breakpointQueries) {\n let query = breakpointQueries[i];\n if (window.matchMedia(query).matches) {\n matched.push(entries[i][0]);\n }\n }\n matched.push('base');\n return matched;\n };\n\n let [breakpoint, setBreakpoint] = useState(() =>\n supportsMatchMedia\n ? getBreakpointHandler()\n : ['base']\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let onResize = () => {\n const breakpointHandler = getBreakpointHandler();\n\n setBreakpoint(previousBreakpointHandler => {\n if (previousBreakpointHandler.length !== breakpointHandler.length ||\n previousBreakpointHandler.some((breakpoint, idx) => breakpoint !== breakpointHandler[idx])) {\n return [...breakpointHandler]; // Return a new array to force state change\n }\n\n return previousBreakpointHandler;\n });\n };\n\n window.addEventListener('resize', onResize);\n return () => {\n window.removeEventListener('resize', onResize);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supportsMatchMedia]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? ['base'] : breakpoint;\n}\n\nexport function useBreakpoint(): BreakpointContext {\n return useContext(Context);\n}\n","/*\n * Copyright 2020 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 {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useMemo} from 'react';\n\ninterface SlotProps {\n slot?: string\n}\n\nlet SlotContext = React.createContext(null);\n\nexport function useSlotProps<T>(props: T & {id?: string}, defaultSlot?: string): T {\n let slot = (props as SlotProps).slot || defaultSlot;\n let {[slot]: slotProps = {}} = useContext(SlotContext) || {};\n\n return mergeProps(props, mergeProps(slotProps, {id: props.id}));\n}\n\nexport function cssModuleToSlots(cssModule) {\n return Object.keys(cssModule).reduce((acc, slot) => {\n acc[slot] = {UNSAFE_className: cssModule[slot]};\n return acc;\n }, {});\n}\n\nexport function SlotProvider(props) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let parentSlots = useContext(SlotContext) || {};\n let {slots = {}, children} = props;\n\n // Merge props for each slot from parent context and props\n let value = useMemo(() =>\n Object.keys(parentSlots)\n .concat(Object.keys(slots))\n .reduce((o, p) => ({\n ...o,\n [p]: mergeProps(parentSlots[p] || {}, slots[p] || {})}), {})\n , [parentSlots, slots]);\n\n return (\n <SlotContext.Provider value={value}>\n {children}\n </SlotContext.Provider>\n );\n}\n\nexport function ClearSlots(props) {\n let {children, ...otherProps} = props;\n let content = children;\n if (React.Children.toArray(children).length <= 1) {\n if (typeof children === 'function') { // need to know if the node is a string or something else that react can render that doesn't get props\n content = React.cloneElement(React.Children.only(children), otherProps);\n }\n }\n return (\n <SlotContext.Provider value={{}}>\n {content}\n </SlotContext.Provider>\n );\n}\n","/*\n * Copyright 2020 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 {RefObject, useState} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport function useHasChild(query: string, ref: RefObject<HTMLElement>) {\n let [hasChild, setHasChild] = useState(true);\n useLayoutEffect(() => {\n setHasChild(!!(ref.current && ref.current.querySelector(query)));\n }, [setHasChild, query, ref]);\n return hasChild;\n}\n","/*\n * Copyright 2020 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 {useIsSSR} from '@react-aria/ssr';\n\nconst MOBILE_SCREEN_WIDTH = 700;\n\nexport function useIsMobileDevice(): boolean {\n let isSSR = useIsSSR();\n if (isSSR || typeof window === 'undefined') {\n return false;\n }\n\n return window.screen.width <= MOBILE_SCREEN_WIDTH;\n}\n"],"names":[],"version":3,"file":"main.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/utils/src/index.ts","packages/@react-spectrum/utils/src/classNames.ts","packages/@react-spectrum/utils/src/getWrappedElement.tsx","packages/@react-spectrum/utils/src/useMediaQuery.ts","packages/@react-spectrum/utils/src/useDOMRef.ts","packages/@react-spectrum/utils/src/styleProps.ts","packages/@react-spectrum/utils/src/BreakpointProvider.tsx","packages/@react-spectrum/utils/src/Slots.tsx","packages/@react-spectrum/utils/src/useHasChild.ts","packages/@react-spectrum/utils/src/useIsMobileDevice.ts"],"sourcesContent":["/*\n * Copyright 2020 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\n/// <reference types=\"css-module-types\" />\n\nexport type {StyleHandlers} from './styleProps';\nexport {shouldKeepSpectrumClassNames, keepSpectrumClassNames, classNames} from './classNames';\nexport {getWrappedElement} from './getWrappedElement';\nexport {useMediaQuery} from './useMediaQuery';\nexport {createDOMRef, createFocusableRef, useDOMRef, useFocusableRef, unwrapDOMRef, useUnwrapDOMRef} from './useDOMRef';\nexport {\n baseStyleProps,\n viewStyleProps,\n dimensionValue,\n responsiveDimensionValue,\n convertStyleProps,\n useStyleProps,\n passthroughStyle,\n getResponsiveProp\n} from './styleProps';\nexport {useSlotProps, cssModuleToSlots, SlotProvider, ClearSlots} from './Slots';\nexport {useHasChild} from './useHasChild';\nexport {useIsMobileDevice} from './useIsMobileDevice';\nexport {useValueEffect} from '@react-aria/utils';\nexport {BreakpointProvider, useMatchedBreakpoints, useBreakpoint} from './BreakpointProvider';\nexport {useResizeObserver} from '@react-aria/utils';\n","/*\n * Copyright 2020 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 _clsx from 'clsx';\n\nexport let shouldKeepSpectrumClassNames = false;\n\nexport function keepSpectrumClassNames() {\n shouldKeepSpectrumClassNames = true;\n console.warn(\n 'Legacy spectrum-prefixed class names enabled for backward compatibility. ' +\n 'We recommend replacing instances of CSS overrides targeting spectrum selectors ' +\n 'in your app with custom class names of your own, and disabling this flag.'\n );\n}\n\nexport function classNames(cssModule: {[key: string]: string}, ...values: Array<string | Object | undefined>): string {\n let classes = [];\n for (let value of values) {\n if (typeof value === 'object' && value) {\n let mapped = {};\n for (let key in value) {\n if (cssModule[key]) {\n mapped[cssModule[key]] = value[key];\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[key]) {\n mapped[key] = value[key];\n }\n }\n\n classes.push(mapped);\n } else if (typeof value === 'string') {\n if (cssModule[value]) {\n classes.push(cssModule[value]);\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[value]) {\n classes.push(value);\n }\n } else {\n classes.push(value);\n }\n }\n\n return _clsx(...classes);\n}\n","/*\n * Copyright 2020 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 React, {JSXElementConstructor, ReactElement, ReactNode} from 'react';\n\nexport function getWrappedElement(children: string | ReactElement | ReactNode): ReactElement<any, JSXElementConstructor<any>> {\n let element;\n if (typeof children === 'string') {\n element = <span>{children}</span>;\n } else {\n element = React.Children.only(children);\n }\n return element;\n}\n","/*\n * Copyright 2020 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 {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport function useMediaQuery(query: string) {\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let [matches, setMatches] = useState(() =>\n supportsMatchMedia\n ? window.matchMedia(query).matches\n : false\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let mq = window.matchMedia(query);\n let onChange = (evt) => {\n setMatches(evt.matches);\n };\n\n mq.addListener(onChange);\n return () => {\n mq.removeListener(onChange);\n };\n }, [supportsMatchMedia, query]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? false : matches;\n}\n","/*\n * Copyright 2020 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 {DOMRef, DOMRefValue, FocusableElement, FocusableRef, FocusableRefValue} from '@react-types/shared';\nimport {RefObject, useImperativeHandle, useMemo, useRef} from 'react';\n\nexport function createDOMRef<T extends HTMLElement = HTMLElement>(ref: RefObject<T>): DOMRefValue<T> {\n return {\n UNSAFE_getDOMNode() {\n return ref.current;\n }\n };\n}\n\nexport function createFocusableRef<T extends HTMLElement = HTMLElement>(domRef: RefObject<T>, focusableRef: RefObject<FocusableElement> = domRef): FocusableRefValue<T> {\n return {\n ...createDOMRef(domRef),\n focus() {\n if (focusableRef.current) {\n focusableRef.current.focus();\n }\n }\n };\n}\n\nexport function useDOMRef<T extends HTMLElement = HTMLElement>(ref: DOMRef<T>): RefObject<T> {\n let domRef = useRef<T>(null);\n useImperativeHandle(ref, () => createDOMRef(domRef));\n return domRef;\n}\n\nexport function useFocusableRef<T extends HTMLElement = HTMLElement>(ref: FocusableRef<T>, focusableRef?: RefObject<FocusableElement>): RefObject<T> {\n let domRef = useRef<T>(null);\n useImperativeHandle(ref, () => createFocusableRef(domRef, focusableRef));\n return domRef;\n}\n\nexport function unwrapDOMRef<T extends HTMLElement>(ref: RefObject<DOMRefValue<T>>): RefObject<T> {\n return {\n get current() {\n return ref.current && ref.current.UNSAFE_getDOMNode();\n }\n };\n}\n\nexport function useUnwrapDOMRef<T extends HTMLElement>(ref: RefObject<DOMRefValue<T>>) : RefObject<T> {\n return useMemo(() => unwrapDOMRef(ref), [ref]);\n}\n","/*\n * Copyright 2020 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 {BackgroundColorValue, BorderColorValue, BorderRadiusValue, BorderSizeValue, ColorValue, ColorVersion, DimensionValue, Direction, Responsive, ResponsiveProp, StyleProps, ViewStyleProps} from '@react-types/shared';\nimport {CSSProperties, HTMLAttributes} from 'react';\nimport {useBreakpoint} from './BreakpointProvider';\nimport {useLocale} from '@react-aria/i18n';\n\ntype Breakpoint = 'base' | 'S' | 'M' | 'L' | string;\ntype StyleName = string | string[] | ((dir: Direction) => string);\ntype StyleHandler = (value: any, colorVersion?: number) => string;\nexport interface StyleHandlers {\n [key: string]: [StyleName, StyleHandler]\n}\n\nexport const baseStyleProps: StyleHandlers = {\n margin: ['margin', dimensionValue],\n marginStart: [rtl('marginLeft', 'marginRight'), dimensionValue],\n marginEnd: [rtl('marginRight', 'marginLeft'), dimensionValue],\n // marginLeft: ['marginLeft', dimensionValue],\n // marginRight: ['marginRight', dimensionValue],\n marginTop: ['marginTop', dimensionValue],\n marginBottom: ['marginBottom', dimensionValue],\n marginX: [['marginLeft', 'marginRight'], dimensionValue],\n marginY: [['marginTop', 'marginBottom'], dimensionValue],\n width: ['width', dimensionValue],\n height: ['height', dimensionValue],\n minWidth: ['minWidth', dimensionValue],\n minHeight: ['minHeight', dimensionValue],\n maxWidth: ['maxWidth', dimensionValue],\n maxHeight: ['maxHeight', dimensionValue],\n isHidden: ['display', hiddenValue],\n alignSelf: ['alignSelf', passthroughStyle],\n justifySelf: ['justifySelf', passthroughStyle],\n position: ['position', anyValue],\n zIndex: ['zIndex', anyValue],\n top: ['top', dimensionValue],\n bottom: ['bottom', dimensionValue],\n start: [rtl('left', 'right'), dimensionValue],\n end: [rtl('right', 'left'), dimensionValue],\n left: ['left', dimensionValue],\n right: ['right', dimensionValue],\n order: ['order', anyValue],\n flex: ['flex', flexValue],\n flexGrow: ['flexGrow', passthroughStyle],\n flexShrink: ['flexShrink', passthroughStyle],\n flexBasis: ['flexBasis', passthroughStyle],\n gridArea: ['gridArea', passthroughStyle],\n gridColumn: ['gridColumn', passthroughStyle],\n gridColumnEnd: ['gridColumnEnd', passthroughStyle],\n gridColumnStart: ['gridColumnStart', passthroughStyle],\n gridRow: ['gridRow', passthroughStyle],\n gridRowEnd: ['gridRowEnd', passthroughStyle],\n gridRowStart: ['gridRowStart', passthroughStyle]\n};\n\nexport const viewStyleProps: StyleHandlers = {\n ...baseStyleProps,\n backgroundColor: ['backgroundColor', backgroundColorValue],\n borderWidth: ['borderWidth', borderSizeValue],\n borderStartWidth: [rtl('borderLeftWidth', 'borderRightWidth'), borderSizeValue],\n borderEndWidth: [rtl('borderRightWidth', 'borderLeftWidth'), borderSizeValue],\n borderLeftWidth: ['borderLeftWidth', borderSizeValue],\n borderRightWidth: ['borderRightWidth', borderSizeValue],\n borderTopWidth: ['borderTopWidth', borderSizeValue],\n borderBottomWidth: ['borderBottomWidth', borderSizeValue],\n borderXWidth: [['borderLeftWidth', 'borderRightWidth'], borderSizeValue],\n borderYWidth: [['borderTopWidth', 'borderBottomWidth'], borderSizeValue],\n borderColor: ['borderColor', borderColorValue],\n borderStartColor: [rtl('borderLeftColor', 'borderRightColor'), borderColorValue],\n borderEndColor: [rtl('borderRightColor', 'borderLeftColor'), borderColorValue],\n borderLeftColor: ['borderLeftColor', borderColorValue],\n borderRightColor: ['borderRightColor', borderColorValue],\n borderTopColor: ['borderTopColor', borderColorValue],\n borderBottomColor: ['borderBottomColor', borderColorValue],\n borderXColor: [['borderLeftColor', 'borderRightColor'], borderColorValue],\n borderYColor: [['borderTopColor', 'borderBottomColor'], borderColorValue],\n borderRadius: ['borderRadius', borderRadiusValue],\n borderTopStartRadius: [rtl('borderTopLeftRadius', 'borderTopRightRadius'), borderRadiusValue],\n borderTopEndRadius: [rtl('borderTopRightRadius', 'borderTopLeftRadius'), borderRadiusValue],\n borderBottomStartRadius: [rtl('borderBottomLeftRadius', 'borderBottomRightRadius'), borderRadiusValue],\n borderBottomEndRadius: [rtl('borderBottomRightRadius', 'borderBottomLeftRadius'), borderRadiusValue],\n borderTopLeftRadius: ['borderTopLeftRadius', borderRadiusValue],\n borderTopRightRadius: ['borderTopRightRadius', borderRadiusValue],\n borderBottomLeftRadius: ['borderBottomLeftRadius', borderRadiusValue],\n borderBottomRightRadius: ['borderBottomRightRadius', borderRadiusValue],\n padding: ['padding', dimensionValue],\n paddingStart: [rtl('paddingLeft', 'paddingRight'), dimensionValue],\n paddingEnd: [rtl('paddingRight', 'paddingLeft'), dimensionValue],\n paddingLeft: ['paddingLeft', dimensionValue],\n paddingRight: ['paddingRight', dimensionValue],\n paddingTop: ['paddingTop', dimensionValue],\n paddingBottom: ['paddingBottom', dimensionValue],\n paddingX: [['paddingLeft', 'paddingRight'], dimensionValue],\n paddingY: [['paddingTop', 'paddingBottom'], dimensionValue],\n overflow: ['overflow', passthroughStyle]\n};\n\nconst borderStyleProps = {\n borderWidth: 'borderStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n borderTopWidth: 'borderTopStyle',\n borderBottomWidth: 'borderBottomStyle'\n};\n\nfunction rtl(ltr: string, rtl: string) {\n return (direction: Direction) => (\n direction === 'rtl' ? rtl : ltr\n );\n}\n\nconst UNIT_RE = /(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/;\nconst FUNC_RE = /^\\s*\\w+\\(/;\nconst SPECTRUM_VARIABLE_RE = /(static-)?size-\\d+|single-line-(height|width)/g;\n\nexport function dimensionValue(value: DimensionValue) {\n if (typeof value === 'number') {\n return value + 'px';\n }\n\n if (UNIT_RE.test(value)) {\n return value;\n }\n\n if (FUNC_RE.test(value)) {\n return value.replace(SPECTRUM_VARIABLE_RE, 'var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))');\n }\n\n return `var(--spectrum-global-dimension-${value}, var(--spectrum-alias-${value}))`;\n}\n\nexport function responsiveDimensionValue(value: Responsive<DimensionValue>, matchedBreakpoints: Breakpoint[]) {\n value = getResponsiveProp(value, matchedBreakpoints);\n return dimensionValue(value);\n}\n\ntype ColorType = 'default' | 'background' | 'border' | 'icon' | 'status';\nfunction colorValue(value: ColorValue, type: ColorType = 'default', version = 5) {\n if (version > 5) {\n return `var(--spectrum-${value}, var(--spectrum-semantic-${value}-color-${type}))`;\n }\n\n return `var(--spectrum-legacy-color-${value}, var(--spectrum-global-color-${value}, var(--spectrum-semantic-${value}-color-${type})))`;\n}\n\nfunction backgroundColorValue(value: BackgroundColorValue, version = 5) {\n return `var(--spectrum-alias-background-color-${value}, ${colorValue(value as ColorValue, 'background', version)})`;\n}\n\nfunction borderColorValue(value: BorderColorValue, version = 5) {\n if (value === 'default') {\n return 'var(--spectrum-alias-border-color)';\n }\n\n return `var(--spectrum-alias-border-color-${value}, ${colorValue(value as ColorValue, 'border', version)})`;\n}\n\nfunction borderSizeValue(value: BorderSizeValue) {\n return `var(--spectrum-alias-border-size-${value})`;\n}\n\nfunction borderRadiusValue(value: BorderRadiusValue) {\n return `var(--spectrum-alias-border-radius-${value})`;\n}\n\nfunction hiddenValue(value: boolean) {\n return value ? 'none' : undefined;\n}\n\nfunction anyValue(value: any) {\n return value;\n}\n\nfunction flexValue(value: boolean | number | string) {\n if (typeof value === 'boolean') {\n return value ? '1' : undefined;\n }\n\n return '' + value;\n}\n\nexport function convertStyleProps<C extends ColorVersion>(props: ViewStyleProps<C>, handlers: StyleHandlers, direction: Direction, matchedBreakpoints: Breakpoint[]) {\n let style: CSSProperties = {};\n for (let key in props) {\n let styleProp = handlers[key];\n if (!styleProp || props[key] == null) {\n continue;\n }\n\n let [name, convert] = styleProp;\n if (typeof name === 'function') {\n name = name(direction);\n }\n\n let prop = getResponsiveProp(props[key], matchedBreakpoints);\n let value = convert(prop, props.colorVersion);\n if (Array.isArray(name)) {\n for (let k of name) {\n style[k] = value;\n }\n } else {\n style[name] = value;\n }\n }\n\n for (let prop in borderStyleProps) {\n if (style[prop]) {\n style[borderStyleProps[prop]] = 'solid';\n style.boxSizing = 'border-box';\n }\n }\n\n return style;\n}\n\ntype StylePropsOptions = {\n matchedBreakpoints?: Breakpoint[]\n};\n\nexport function useStyleProps<T extends StyleProps>(\n props: T,\n handlers: StyleHandlers = baseStyleProps,\n options: StylePropsOptions = {}\n) {\n let {\n UNSAFE_className,\n UNSAFE_style,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let {direction} = useLocale();\n let {\n matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base']\n } = options;\n let styles = convertStyleProps(props, handlers, direction, matchedBreakpoints);\n let style = {...UNSAFE_style, ...styles};\n\n // @ts-ignore\n if (otherProps.className) {\n console.warn(\n 'The className prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n // @ts-ignore\n if (otherProps.style) {\n console.warn(\n 'The style prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n let styleProps: HTMLAttributes<HTMLElement> = {\n style,\n className: UNSAFE_className\n };\n\n if (getResponsiveProp(props.isHidden, matchedBreakpoints)) {\n styleProps.hidden = true;\n }\n\n return {\n styleProps\n };\n}\n\nexport function passthroughStyle(value) {\n return value;\n}\n\nexport function getResponsiveProp<T>(prop: Responsive<T>, matchedBreakpoints: Breakpoint[]): T {\n if (prop && typeof prop === 'object' && !Array.isArray(prop)) {\n for (let i = 0; i < matchedBreakpoints.length; i++) {\n let breakpoint = matchedBreakpoints[i];\n if (prop[breakpoint] != null) {\n return prop[breakpoint];\n }\n }\n return (prop as ResponsiveProp<T>).base;\n }\n return prop as T;\n}\n","import React, {ReactNode, useContext, useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface Breakpoints {\n S?: number,\n M?: number,\n L?: number,\n [custom: string]: number | undefined\n}\n\ninterface BreakpointContext {\n matchedBreakpoints: string[]\n}\n\nconst Context = React.createContext<BreakpointContext>(null);\nContext.displayName = 'BreakpointContext';\n\ninterface BreakpointProviderProps {\n children?: ReactNode,\n matchedBreakpoints: string[]\n}\n\nexport function BreakpointProvider(props: BreakpointProviderProps) {\n let {\n children,\n matchedBreakpoints\n } = props;\n return (\n <Context.Provider\n value={{matchedBreakpoints}} >\n {children}\n </Context.Provider>\n );\n}\n\nexport function useMatchedBreakpoints(breakpoints: Breakpoints): string[] {\n let entries = Object.entries(breakpoints).sort(([, valueA], [, valueB]) => valueB - valueA);\n let breakpointQueries = entries.map(([, value]) => `(min-width: ${value}px)`);\n\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let getBreakpointHandler = () => {\n let matched = [];\n for (let i in breakpointQueries) {\n let query = breakpointQueries[i];\n if (window.matchMedia(query).matches) {\n matched.push(entries[i][0]);\n }\n }\n matched.push('base');\n return matched;\n };\n\n let [breakpoint, setBreakpoint] = useState(() =>\n supportsMatchMedia\n ? getBreakpointHandler()\n : ['base']\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let onResize = () => {\n const breakpointHandler = getBreakpointHandler();\n\n setBreakpoint(previousBreakpointHandler => {\n if (previousBreakpointHandler.length !== breakpointHandler.length ||\n previousBreakpointHandler.some((breakpoint, idx) => breakpoint !== breakpointHandler[idx])) {\n return [...breakpointHandler]; // Return a new array to force state change\n }\n\n return previousBreakpointHandler;\n });\n };\n\n window.addEventListener('resize', onResize);\n return () => {\n window.removeEventListener('resize', onResize);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supportsMatchMedia]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? ['base'] : breakpoint;\n}\n\nexport function useBreakpoint(): BreakpointContext {\n return useContext(Context);\n}\n","/*\n * Copyright 2020 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 {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useMemo} from 'react';\n\ninterface SlotProps {\n slot?: string\n}\n\nlet SlotContext = React.createContext(null);\n\nexport function useSlotProps<T>(props: T & {id?: string}, defaultSlot?: string): T {\n let slot = (props as SlotProps).slot || defaultSlot;\n let {[slot]: slotProps = {}} = useContext(SlotContext) || {};\n\n return mergeProps(props, mergeProps(slotProps, {id: props.id}));\n}\n\nexport function cssModuleToSlots(cssModule) {\n return Object.keys(cssModule).reduce((acc, slot) => {\n acc[slot] = {UNSAFE_className: cssModule[slot]};\n return acc;\n }, {});\n}\n\nexport function SlotProvider(props) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let parentSlots = useContext(SlotContext) || {};\n let {slots = {}, children} = props;\n\n // Merge props for each slot from parent context and props\n let value = useMemo(() =>\n Object.keys(parentSlots)\n .concat(Object.keys(slots))\n .reduce((o, p) => ({\n ...o,\n [p]: mergeProps(parentSlots[p] || {}, slots[p] || {})}), {})\n , [parentSlots, slots]);\n\n return (\n <SlotContext.Provider value={value}>\n {children}\n </SlotContext.Provider>\n );\n}\n\nexport function ClearSlots(props) {\n let {children, ...otherProps} = props;\n let content = children;\n if (React.Children.toArray(children).length <= 1) {\n if (typeof children === 'function') { // need to know if the node is a string or something else that react can render that doesn't get props\n content = React.cloneElement(React.Children.only(children), otherProps);\n }\n }\n return (\n <SlotContext.Provider value={{}}>\n {content}\n </SlotContext.Provider>\n );\n}\n","/*\n * Copyright 2020 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 {RefObject, useState} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport function useHasChild(query: string, ref: RefObject<HTMLElement>) {\n let [hasChild, setHasChild] = useState(true);\n useLayoutEffect(() => {\n setHasChild(!!(ref.current && ref.current.querySelector(query)));\n }, [setHasChild, query, ref]);\n return hasChild;\n}\n","/*\n * Copyright 2020 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 {useIsSSR} from '@react-aria/ssr';\n\nconst MOBILE_SCREEN_WIDTH = 700;\n\nexport function useIsMobileDevice(): boolean {\n let isSSR = useIsSSR();\n if (isSSR || typeof window === 'undefined') {\n return false;\n }\n\n return window.screen.width <= MOBILE_SCREEN_WIDTH;\n}\n"],"names":[],"version":3,"file":"main.js.map"}
package/dist/module.js CHANGED
@@ -15,7 +15,6 @@ import {useLocale as $5lsDl$useLocale} from "@react-aria/i18n";
15
15
  * OF ANY KIND, either express or implied. See the License for the specific language
16
16
  * governing permissions and limitations under the License.
17
17
  */ /// <reference types="css-module-types" />
18
- /// <reference path="./ResizeObserver.d.ts" />
19
18
  /*
20
19
  * Copyright 2020 Adobe. All rights reserved.
21
20
  * This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -615,8 +614,8 @@ function $380ed8f3903c3931$export$f3c39bb9534218d0(props, handlers, direction, m
615
614
  if (Array.isArray(name)) for (let k of name)style[k] = value;
616
615
  else style[name] = value;
617
616
  }
618
- for(let prop1 in $380ed8f3903c3931$var$borderStyleProps)if (style[prop1]) {
619
- style[$380ed8f3903c3931$var$borderStyleProps[prop1]] = "solid";
617
+ for(let prop in $380ed8f3903c3931$var$borderStyleProps)if (style[prop]) {
618
+ style[$380ed8f3903c3931$var$borderStyleProps[prop]] = "solid";
620
619
  style.boxSizing = "border-box";
621
620
  }
622
621
  return style;
@@ -765,6 +764,5 @@ function $fdbe26a36ce1c672$export$736bf165441b18c7() {
765
764
 
766
765
 
767
766
 
768
-
769
767
  export {$fd933927dbac1f15$export$46d604dce8bf8724 as shouldKeepSpectrumClassNames, $fd933927dbac1f15$export$f9d3bfd10703eb31 as keepSpectrumClassNames, $fd933927dbac1f15$export$ce4ab0c55987d1ff as classNames, $bde65b0159e7c06e$export$a5f5a6912b18861c as getWrappedElement, $3df547e395c4522f$export$32d5543ab307c01 as useMediaQuery, $98e5a8ae0e6415af$export$a5795cc979dfae80 as createDOMRef, $98e5a8ae0e6415af$export$79d69eee6ae4b329 as createFocusableRef, $98e5a8ae0e6415af$export$c2c55ef9111cafd8 as useDOMRef, $98e5a8ae0e6415af$export$96a734597687c040 as useFocusableRef, $98e5a8ae0e6415af$export$c7e28c72a4823176 as unwrapDOMRef, $98e5a8ae0e6415af$export$1d5cc31d9d8df817 as useUnwrapDOMRef, $380ed8f3903c3931$export$fe9c6e915565b4e8 as baseStyleProps, $380ed8f3903c3931$export$e0705d1a55f297c as viewStyleProps, $380ed8f3903c3931$export$abc24f5b99744ea6 as dimensionValue, $380ed8f3903c3931$export$f348bec194f2e6b5 as responsiveDimensionValue, $380ed8f3903c3931$export$f3c39bb9534218d0 as convertStyleProps, $380ed8f3903c3931$export$b8e6fb9d2dff3f41 as useStyleProps, $380ed8f3903c3931$export$46b6c81d11d2c30a as passthroughStyle, $380ed8f3903c3931$export$52dbfdbe1b2c3541 as getResponsiveProp, $59d09bcc83651bf9$export$1e5c9e6e4e15efe3 as useSlotProps, $59d09bcc83651bf9$export$365cf34cda9978e2 as cssModuleToSlots, $59d09bcc83651bf9$export$8107b24b91795686 as SlotProvider, $59d09bcc83651bf9$export$ceb145244332b7a2 as ClearSlots, $54cda195bd4173fb$export$e52e2242b6d0f1d4 as useHasChild, $fdbe26a36ce1c672$export$736bf165441b18c7 as useIsMobileDevice, $857d64dbfd73d664$re_export$useValueEffect as useValueEffect, $1051245f87c5981d$export$8214320346cf5104 as BreakpointProvider, $1051245f87c5981d$export$140ae7baa51cca23 as useMatchedBreakpoints, $1051245f87c5981d$export$199d6754bdf4e1e3 as useBreakpoint, $857d64dbfd73d664$re_export$useResizeObserver as useResizeObserver};
770
768
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/utils/src/index.ts","packages/@react-spectrum/utils/src/classNames.ts","packages/@react-spectrum/utils/src/getWrappedElement.tsx","packages/@react-spectrum/utils/src/useMediaQuery.ts","packages/@react-spectrum/utils/src/useDOMRef.ts","packages/@react-spectrum/utils/src/styleProps.ts","packages/@react-spectrum/utils/src/BreakpointProvider.tsx","packages/@react-spectrum/utils/src/Slots.tsx","packages/@react-spectrum/utils/src/useHasChild.ts","packages/@react-spectrum/utils/src/useIsMobileDevice.ts"],"sourcesContent":["/*\n * Copyright 2020 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\n/// <reference types=\"css-module-types\" />\n/// <reference path=\"./ResizeObserver.d.ts\" />\n\nexport type {StyleHandlers} from './styleProps';\nexport {shouldKeepSpectrumClassNames, keepSpectrumClassNames, classNames} from './classNames';\nexport {getWrappedElement} from './getWrappedElement';\nexport {useMediaQuery} from './useMediaQuery';\nexport {createDOMRef, createFocusableRef, useDOMRef, useFocusableRef, unwrapDOMRef, useUnwrapDOMRef} from './useDOMRef';\nexport {\n baseStyleProps,\n viewStyleProps,\n dimensionValue,\n responsiveDimensionValue,\n convertStyleProps,\n useStyleProps,\n passthroughStyle,\n getResponsiveProp\n} from './styleProps';\nexport {useSlotProps, cssModuleToSlots, SlotProvider, ClearSlots} from './Slots';\nexport {useHasChild} from './useHasChild';\nexport {useIsMobileDevice} from './useIsMobileDevice';\nexport {useValueEffect} from '@react-aria/utils';\nexport {BreakpointProvider, useMatchedBreakpoints, useBreakpoint} from './BreakpointProvider';\nexport {useResizeObserver} from '@react-aria/utils';\n","/*\n * Copyright 2020 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 _clsx from 'clsx';\n\nexport let shouldKeepSpectrumClassNames = false;\n\nexport function keepSpectrumClassNames() {\n shouldKeepSpectrumClassNames = true;\n console.warn(\n 'Legacy spectrum-prefixed class names enabled for backward compatibility. ' +\n 'We recommend replacing instances of CSS overrides targeting spectrum selectors ' +\n 'in your app with custom class names of your own, and disabling this flag.'\n );\n}\n\nexport function classNames(cssModule: {[key: string]: string}, ...values: Array<string | Object | undefined>): string {\n let classes = [];\n for (let value of values) {\n if (typeof value === 'object' && value) {\n let mapped = {};\n for (let key in value) {\n if (cssModule[key]) {\n mapped[cssModule[key]] = value[key];\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[key]) {\n mapped[key] = value[key];\n }\n }\n\n classes.push(mapped);\n } else if (typeof value === 'string') {\n if (cssModule[value]) {\n classes.push(cssModule[value]);\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[value]) {\n classes.push(value);\n }\n } else {\n classes.push(value);\n }\n }\n\n return _clsx(...classes);\n}\n","/*\n * Copyright 2020 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 React, {JSXElementConstructor, ReactElement, ReactNode} from 'react';\n\nexport function getWrappedElement(children: string | ReactElement | ReactNode): ReactElement<any, JSXElementConstructor<any>> {\n let element;\n if (typeof children === 'string') {\n element = <span>{children}</span>;\n } else {\n element = React.Children.only(children);\n }\n return element;\n}\n","/*\n * Copyright 2020 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 {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport function useMediaQuery(query: string) {\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let [matches, setMatches] = useState(() =>\n supportsMatchMedia\n ? window.matchMedia(query).matches\n : false\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let mq = window.matchMedia(query);\n let onChange = (evt) => {\n setMatches(evt.matches);\n };\n\n mq.addListener(onChange);\n return () => {\n mq.removeListener(onChange);\n };\n }, [supportsMatchMedia, query]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? false : matches;\n}\n","/*\n * Copyright 2020 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 {DOMRef, DOMRefValue, FocusableElement, FocusableRef, FocusableRefValue} from '@react-types/shared';\nimport {RefObject, useImperativeHandle, useMemo, useRef} from 'react';\n\nexport function createDOMRef<T extends HTMLElement = HTMLElement>(ref: RefObject<T>): DOMRefValue<T> {\n return {\n UNSAFE_getDOMNode() {\n return ref.current;\n }\n };\n}\n\nexport function createFocusableRef<T extends HTMLElement = HTMLElement>(domRef: RefObject<T>, focusableRef: RefObject<FocusableElement> = domRef): FocusableRefValue<T> {\n return {\n ...createDOMRef(domRef),\n focus() {\n if (focusableRef.current) {\n focusableRef.current.focus();\n }\n }\n };\n}\n\nexport function useDOMRef<T extends HTMLElement = HTMLElement>(ref: DOMRef<T>): RefObject<T> {\n let domRef = useRef<T>(null);\n useImperativeHandle(ref, () => createDOMRef(domRef));\n return domRef;\n}\n\nexport function useFocusableRef<T extends HTMLElement = HTMLElement>(ref: FocusableRef<T>, focusableRef?: RefObject<FocusableElement>): RefObject<T> {\n let domRef = useRef<T>(null);\n useImperativeHandle(ref, () => createFocusableRef(domRef, focusableRef));\n return domRef;\n}\n\nexport function unwrapDOMRef<T extends HTMLElement>(ref: RefObject<DOMRefValue<T>>): RefObject<T> {\n return {\n get current() {\n return ref.current && ref.current.UNSAFE_getDOMNode();\n }\n };\n}\n\nexport function useUnwrapDOMRef<T extends HTMLElement>(ref: RefObject<DOMRefValue<T>>) : RefObject<T> {\n return useMemo(() => unwrapDOMRef(ref), [ref]);\n}\n","/*\n * Copyright 2020 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 {BackgroundColorValue, BorderColorValue, BorderRadiusValue, BorderSizeValue, ColorValue, ColorVersion, DimensionValue, Direction, Responsive, ResponsiveProp, StyleProps, ViewStyleProps} from '@react-types/shared';\nimport {CSSProperties, HTMLAttributes} from 'react';\nimport {useBreakpoint} from './BreakpointProvider';\nimport {useLocale} from '@react-aria/i18n';\n\ntype Breakpoint = 'base' | 'S' | 'M' | 'L' | string;\ntype StyleName = string | string[] | ((dir: Direction) => string);\ntype StyleHandler = (value: any, colorVersion?: number) => string;\nexport interface StyleHandlers {\n [key: string]: [StyleName, StyleHandler]\n}\n\nexport const baseStyleProps: StyleHandlers = {\n margin: ['margin', dimensionValue],\n marginStart: [rtl('marginLeft', 'marginRight'), dimensionValue],\n marginEnd: [rtl('marginRight', 'marginLeft'), dimensionValue],\n // marginLeft: ['marginLeft', dimensionValue],\n // marginRight: ['marginRight', dimensionValue],\n marginTop: ['marginTop', dimensionValue],\n marginBottom: ['marginBottom', dimensionValue],\n marginX: [['marginLeft', 'marginRight'], dimensionValue],\n marginY: [['marginTop', 'marginBottom'], dimensionValue],\n width: ['width', dimensionValue],\n height: ['height', dimensionValue],\n minWidth: ['minWidth', dimensionValue],\n minHeight: ['minHeight', dimensionValue],\n maxWidth: ['maxWidth', dimensionValue],\n maxHeight: ['maxHeight', dimensionValue],\n isHidden: ['display', hiddenValue],\n alignSelf: ['alignSelf', passthroughStyle],\n justifySelf: ['justifySelf', passthroughStyle],\n position: ['position', anyValue],\n zIndex: ['zIndex', anyValue],\n top: ['top', dimensionValue],\n bottom: ['bottom', dimensionValue],\n start: [rtl('left', 'right'), dimensionValue],\n end: [rtl('right', 'left'), dimensionValue],\n left: ['left', dimensionValue],\n right: ['right', dimensionValue],\n order: ['order', anyValue],\n flex: ['flex', flexValue],\n flexGrow: ['flexGrow', passthroughStyle],\n flexShrink: ['flexShrink', passthroughStyle],\n flexBasis: ['flexBasis', passthroughStyle],\n gridArea: ['gridArea', passthroughStyle],\n gridColumn: ['gridColumn', passthroughStyle],\n gridColumnEnd: ['gridColumnEnd', passthroughStyle],\n gridColumnStart: ['gridColumnStart', passthroughStyle],\n gridRow: ['gridRow', passthroughStyle],\n gridRowEnd: ['gridRowEnd', passthroughStyle],\n gridRowStart: ['gridRowStart', passthroughStyle]\n};\n\nexport const viewStyleProps: StyleHandlers = {\n ...baseStyleProps,\n backgroundColor: ['backgroundColor', backgroundColorValue],\n borderWidth: ['borderWidth', borderSizeValue],\n borderStartWidth: [rtl('borderLeftWidth', 'borderRightWidth'), borderSizeValue],\n borderEndWidth: [rtl('borderRightWidth', 'borderLeftWidth'), borderSizeValue],\n borderLeftWidth: ['borderLeftWidth', borderSizeValue],\n borderRightWidth: ['borderRightWidth', borderSizeValue],\n borderTopWidth: ['borderTopWidth', borderSizeValue],\n borderBottomWidth: ['borderBottomWidth', borderSizeValue],\n borderXWidth: [['borderLeftWidth', 'borderRightWidth'], borderSizeValue],\n borderYWidth: [['borderTopWidth', 'borderBottomWidth'], borderSizeValue],\n borderColor: ['borderColor', borderColorValue],\n borderStartColor: [rtl('borderLeftColor', 'borderRightColor'), borderColorValue],\n borderEndColor: [rtl('borderRightColor', 'borderLeftColor'), borderColorValue],\n borderLeftColor: ['borderLeftColor', borderColorValue],\n borderRightColor: ['borderRightColor', borderColorValue],\n borderTopColor: ['borderTopColor', borderColorValue],\n borderBottomColor: ['borderBottomColor', borderColorValue],\n borderXColor: [['borderLeftColor', 'borderRightColor'], borderColorValue],\n borderYColor: [['borderTopColor', 'borderBottomColor'], borderColorValue],\n borderRadius: ['borderRadius', borderRadiusValue],\n borderTopStartRadius: [rtl('borderTopLeftRadius', 'borderTopRightRadius'), borderRadiusValue],\n borderTopEndRadius: [rtl('borderTopRightRadius', 'borderTopLeftRadius'), borderRadiusValue],\n borderBottomStartRadius: [rtl('borderBottomLeftRadius', 'borderBottomRightRadius'), borderRadiusValue],\n borderBottomEndRadius: [rtl('borderBottomRightRadius', 'borderBottomLeftRadius'), borderRadiusValue],\n borderTopLeftRadius: ['borderTopLeftRadius', borderRadiusValue],\n borderTopRightRadius: ['borderTopRightRadius', borderRadiusValue],\n borderBottomLeftRadius: ['borderBottomLeftRadius', borderRadiusValue],\n borderBottomRightRadius: ['borderBottomRightRadius', borderRadiusValue],\n padding: ['padding', dimensionValue],\n paddingStart: [rtl('paddingLeft', 'paddingRight'), dimensionValue],\n paddingEnd: [rtl('paddingRight', 'paddingLeft'), dimensionValue],\n paddingLeft: ['paddingLeft', dimensionValue],\n paddingRight: ['paddingRight', dimensionValue],\n paddingTop: ['paddingTop', dimensionValue],\n paddingBottom: ['paddingBottom', dimensionValue],\n paddingX: [['paddingLeft', 'paddingRight'], dimensionValue],\n paddingY: [['paddingTop', 'paddingBottom'], dimensionValue],\n overflow: ['overflow', passthroughStyle]\n};\n\nconst borderStyleProps = {\n borderWidth: 'borderStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n borderTopWidth: 'borderTopStyle',\n borderBottomWidth: 'borderBottomStyle'\n};\n\nfunction rtl(ltr: string, rtl: string) {\n return (direction: Direction) => (\n direction === 'rtl' ? rtl : ltr\n );\n}\n\nconst UNIT_RE = /(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/;\nconst FUNC_RE = /^\\s*\\w+\\(/;\nconst SPECTRUM_VARIABLE_RE = /(static-)?size-\\d+|single-line-(height|width)/g;\n\nexport function dimensionValue(value: DimensionValue) {\n if (typeof value === 'number') {\n return value + 'px';\n }\n\n if (UNIT_RE.test(value)) {\n return value;\n }\n\n if (FUNC_RE.test(value)) {\n return value.replace(SPECTRUM_VARIABLE_RE, 'var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))');\n }\n\n return `var(--spectrum-global-dimension-${value}, var(--spectrum-alias-${value}))`;\n}\n\nexport function responsiveDimensionValue(value: Responsive<DimensionValue>, matchedBreakpoints: Breakpoint[]) {\n value = getResponsiveProp(value, matchedBreakpoints);\n return dimensionValue(value);\n}\n\ntype ColorType = 'default' | 'background' | 'border' | 'icon' | 'status';\nfunction colorValue(value: ColorValue, type: ColorType = 'default', version = 5) {\n if (version > 5) {\n return `var(--spectrum-${value}, var(--spectrum-semantic-${value}-color-${type}))`;\n }\n\n return `var(--spectrum-legacy-color-${value}, var(--spectrum-global-color-${value}, var(--spectrum-semantic-${value}-color-${type})))`;\n}\n\nfunction backgroundColorValue(value: BackgroundColorValue, version = 5) {\n return `var(--spectrum-alias-background-color-${value}, ${colorValue(value as ColorValue, 'background', version)})`;\n}\n\nfunction borderColorValue(value: BorderColorValue, version = 5) {\n if (value === 'default') {\n return 'var(--spectrum-alias-border-color)';\n }\n\n return `var(--spectrum-alias-border-color-${value}, ${colorValue(value as ColorValue, 'border', version)})`;\n}\n\nfunction borderSizeValue(value: BorderSizeValue) {\n return `var(--spectrum-alias-border-size-${value})`;\n}\n\nfunction borderRadiusValue(value: BorderRadiusValue) {\n return `var(--spectrum-alias-border-radius-${value})`;\n}\n\nfunction hiddenValue(value: boolean) {\n return value ? 'none' : undefined;\n}\n\nfunction anyValue(value: any) {\n return value;\n}\n\nfunction flexValue(value: boolean | number | string) {\n if (typeof value === 'boolean') {\n return value ? '1' : undefined;\n }\n\n return '' + value;\n}\n\nexport function convertStyleProps<C extends ColorVersion>(props: ViewStyleProps<C>, handlers: StyleHandlers, direction: Direction, matchedBreakpoints: Breakpoint[]) {\n let style: CSSProperties = {};\n for (let key in props) {\n let styleProp = handlers[key];\n if (!styleProp || props[key] == null) {\n continue;\n }\n\n let [name, convert] = styleProp;\n if (typeof name === 'function') {\n name = name(direction);\n }\n\n let prop = getResponsiveProp(props[key], matchedBreakpoints);\n let value = convert(prop, props.colorVersion);\n if (Array.isArray(name)) {\n for (let k of name) {\n style[k] = value;\n }\n } else {\n style[name] = value;\n }\n }\n\n for (let prop in borderStyleProps) {\n if (style[prop]) {\n style[borderStyleProps[prop]] = 'solid';\n style.boxSizing = 'border-box';\n }\n }\n\n return style;\n}\n\ntype StylePropsOptions = {\n matchedBreakpoints?: Breakpoint[]\n};\n\nexport function useStyleProps<T extends StyleProps>(\n props: T,\n handlers: StyleHandlers = baseStyleProps,\n options: StylePropsOptions = {}\n) {\n let {\n UNSAFE_className,\n UNSAFE_style,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let {direction} = useLocale();\n let {\n matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base']\n } = options;\n let styles = convertStyleProps(props, handlers, direction, matchedBreakpoints);\n let style = {...UNSAFE_style, ...styles};\n\n // @ts-ignore\n if (otherProps.className) {\n console.warn(\n 'The className prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n // @ts-ignore\n if (otherProps.style) {\n console.warn(\n 'The style prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n let styleProps: HTMLAttributes<HTMLElement> = {\n style,\n className: UNSAFE_className\n };\n\n if (getResponsiveProp(props.isHidden, matchedBreakpoints)) {\n styleProps.hidden = true;\n }\n\n return {\n styleProps\n };\n}\n\nexport function passthroughStyle(value) {\n return value;\n}\n\nexport function getResponsiveProp<T>(prop: Responsive<T>, matchedBreakpoints: Breakpoint[]): T {\n if (prop && typeof prop === 'object' && !Array.isArray(prop)) {\n for (let i = 0; i < matchedBreakpoints.length; i++) {\n let breakpoint = matchedBreakpoints[i];\n if (prop[breakpoint] != null) {\n return prop[breakpoint];\n }\n }\n return (prop as ResponsiveProp<T>).base;\n }\n return prop as T;\n}\n","import React, {ReactNode, useContext, useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface Breakpoints {\n S?: number,\n M?: number,\n L?: number,\n [custom: string]: number | undefined\n}\n\ninterface BreakpointContext {\n matchedBreakpoints: string[]\n}\n\nconst Context = React.createContext<BreakpointContext>(null);\nContext.displayName = 'BreakpointContext';\n\ninterface BreakpointProviderProps {\n children?: ReactNode,\n matchedBreakpoints: string[]\n}\n\nexport function BreakpointProvider(props: BreakpointProviderProps) {\n let {\n children,\n matchedBreakpoints\n } = props;\n return (\n <Context.Provider\n value={{matchedBreakpoints}} >\n {children}\n </Context.Provider>\n );\n}\n\nexport function useMatchedBreakpoints(breakpoints: Breakpoints): string[] {\n let entries = Object.entries(breakpoints).sort(([, valueA], [, valueB]) => valueB - valueA);\n let breakpointQueries = entries.map(([, value]) => `(min-width: ${value}px)`);\n\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let getBreakpointHandler = () => {\n let matched = [];\n for (let i in breakpointQueries) {\n let query = breakpointQueries[i];\n if (window.matchMedia(query).matches) {\n matched.push(entries[i][0]);\n }\n }\n matched.push('base');\n return matched;\n };\n\n let [breakpoint, setBreakpoint] = useState(() =>\n supportsMatchMedia\n ? getBreakpointHandler()\n : ['base']\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let onResize = () => {\n const breakpointHandler = getBreakpointHandler();\n\n setBreakpoint(previousBreakpointHandler => {\n if (previousBreakpointHandler.length !== breakpointHandler.length ||\n previousBreakpointHandler.some((breakpoint, idx) => breakpoint !== breakpointHandler[idx])) {\n return [...breakpointHandler]; // Return a new array to force state change\n }\n\n return previousBreakpointHandler;\n });\n };\n\n window.addEventListener('resize', onResize);\n return () => {\n window.removeEventListener('resize', onResize);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supportsMatchMedia]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? ['base'] : breakpoint;\n}\n\nexport function useBreakpoint(): BreakpointContext {\n return useContext(Context);\n}\n","/*\n * Copyright 2020 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 {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useMemo} from 'react';\n\ninterface SlotProps {\n slot?: string\n}\n\nlet SlotContext = React.createContext(null);\n\nexport function useSlotProps<T>(props: T & {id?: string}, defaultSlot?: string): T {\n let slot = (props as SlotProps).slot || defaultSlot;\n let {[slot]: slotProps = {}} = useContext(SlotContext) || {};\n\n return mergeProps(props, mergeProps(slotProps, {id: props.id}));\n}\n\nexport function cssModuleToSlots(cssModule) {\n return Object.keys(cssModule).reduce((acc, slot) => {\n acc[slot] = {UNSAFE_className: cssModule[slot]};\n return acc;\n }, {});\n}\n\nexport function SlotProvider(props) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let parentSlots = useContext(SlotContext) || {};\n let {slots = {}, children} = props;\n\n // Merge props for each slot from parent context and props\n let value = useMemo(() =>\n Object.keys(parentSlots)\n .concat(Object.keys(slots))\n .reduce((o, p) => ({\n ...o,\n [p]: mergeProps(parentSlots[p] || {}, slots[p] || {})}), {})\n , [parentSlots, slots]);\n\n return (\n <SlotContext.Provider value={value}>\n {children}\n </SlotContext.Provider>\n );\n}\n\nexport function ClearSlots(props) {\n let {children, ...otherProps} = props;\n let content = children;\n if (React.Children.toArray(children).length <= 1) {\n if (typeof children === 'function') { // need to know if the node is a string or something else that react can render that doesn't get props\n content = React.cloneElement(React.Children.only(children), otherProps);\n }\n }\n return (\n <SlotContext.Provider value={{}}>\n {content}\n </SlotContext.Provider>\n );\n}\n","/*\n * Copyright 2020 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 {RefObject, useState} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport function useHasChild(query: string, ref: RefObject<HTMLElement>) {\n let [hasChild, setHasChild] = useState(true);\n useLayoutEffect(() => {\n setHasChild(!!(ref.current && ref.current.querySelector(query)));\n }, [setHasChild, query, ref]);\n return hasChild;\n}\n","/*\n * Copyright 2020 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 {useIsSSR} from '@react-aria/ssr';\n\nconst MOBILE_SCREEN_WIDTH = 700;\n\nexport function useIsMobileDevice(): boolean {\n let isSSR = useIsSSR();\n if (isSSR || typeof window === 'undefined') {\n return false;\n }\n\n return window.screen.width <= MOBILE_SCREEN_WIDTH;\n}\n"],"names":[],"version":3,"file":"module.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/utils/src/index.ts","packages/@react-spectrum/utils/src/classNames.ts","packages/@react-spectrum/utils/src/getWrappedElement.tsx","packages/@react-spectrum/utils/src/useMediaQuery.ts","packages/@react-spectrum/utils/src/useDOMRef.ts","packages/@react-spectrum/utils/src/styleProps.ts","packages/@react-spectrum/utils/src/BreakpointProvider.tsx","packages/@react-spectrum/utils/src/Slots.tsx","packages/@react-spectrum/utils/src/useHasChild.ts","packages/@react-spectrum/utils/src/useIsMobileDevice.ts"],"sourcesContent":["/*\n * Copyright 2020 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\n/// <reference types=\"css-module-types\" />\n\nexport type {StyleHandlers} from './styleProps';\nexport {shouldKeepSpectrumClassNames, keepSpectrumClassNames, classNames} from './classNames';\nexport {getWrappedElement} from './getWrappedElement';\nexport {useMediaQuery} from './useMediaQuery';\nexport {createDOMRef, createFocusableRef, useDOMRef, useFocusableRef, unwrapDOMRef, useUnwrapDOMRef} from './useDOMRef';\nexport {\n baseStyleProps,\n viewStyleProps,\n dimensionValue,\n responsiveDimensionValue,\n convertStyleProps,\n useStyleProps,\n passthroughStyle,\n getResponsiveProp\n} from './styleProps';\nexport {useSlotProps, cssModuleToSlots, SlotProvider, ClearSlots} from './Slots';\nexport {useHasChild} from './useHasChild';\nexport {useIsMobileDevice} from './useIsMobileDevice';\nexport {useValueEffect} from '@react-aria/utils';\nexport {BreakpointProvider, useMatchedBreakpoints, useBreakpoint} from './BreakpointProvider';\nexport {useResizeObserver} from '@react-aria/utils';\n","/*\n * Copyright 2020 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 _clsx from 'clsx';\n\nexport let shouldKeepSpectrumClassNames = false;\n\nexport function keepSpectrumClassNames() {\n shouldKeepSpectrumClassNames = true;\n console.warn(\n 'Legacy spectrum-prefixed class names enabled for backward compatibility. ' +\n 'We recommend replacing instances of CSS overrides targeting spectrum selectors ' +\n 'in your app with custom class names of your own, and disabling this flag.'\n );\n}\n\nexport function classNames(cssModule: {[key: string]: string}, ...values: Array<string | Object | undefined>): string {\n let classes = [];\n for (let value of values) {\n if (typeof value === 'object' && value) {\n let mapped = {};\n for (let key in value) {\n if (cssModule[key]) {\n mapped[cssModule[key]] = value[key];\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[key]) {\n mapped[key] = value[key];\n }\n }\n\n classes.push(mapped);\n } else if (typeof value === 'string') {\n if (cssModule[value]) {\n classes.push(cssModule[value]);\n }\n\n if (shouldKeepSpectrumClassNames || !cssModule[value]) {\n classes.push(value);\n }\n } else {\n classes.push(value);\n }\n }\n\n return _clsx(...classes);\n}\n","/*\n * Copyright 2020 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 React, {JSXElementConstructor, ReactElement, ReactNode} from 'react';\n\nexport function getWrappedElement(children: string | ReactElement | ReactNode): ReactElement<any, JSXElementConstructor<any>> {\n let element;\n if (typeof children === 'string') {\n element = <span>{children}</span>;\n } else {\n element = React.Children.only(children);\n }\n return element;\n}\n","/*\n * Copyright 2020 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 {useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\nexport function useMediaQuery(query: string) {\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let [matches, setMatches] = useState(() =>\n supportsMatchMedia\n ? window.matchMedia(query).matches\n : false\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let mq = window.matchMedia(query);\n let onChange = (evt) => {\n setMatches(evt.matches);\n };\n\n mq.addListener(onChange);\n return () => {\n mq.removeListener(onChange);\n };\n }, [supportsMatchMedia, query]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? false : matches;\n}\n","/*\n * Copyright 2020 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 {DOMRef, DOMRefValue, FocusableElement, FocusableRef, FocusableRefValue} from '@react-types/shared';\nimport {RefObject, useImperativeHandle, useMemo, useRef} from 'react';\n\nexport function createDOMRef<T extends HTMLElement = HTMLElement>(ref: RefObject<T>): DOMRefValue<T> {\n return {\n UNSAFE_getDOMNode() {\n return ref.current;\n }\n };\n}\n\nexport function createFocusableRef<T extends HTMLElement = HTMLElement>(domRef: RefObject<T>, focusableRef: RefObject<FocusableElement> = domRef): FocusableRefValue<T> {\n return {\n ...createDOMRef(domRef),\n focus() {\n if (focusableRef.current) {\n focusableRef.current.focus();\n }\n }\n };\n}\n\nexport function useDOMRef<T extends HTMLElement = HTMLElement>(ref: DOMRef<T>): RefObject<T> {\n let domRef = useRef<T>(null);\n useImperativeHandle(ref, () => createDOMRef(domRef));\n return domRef;\n}\n\nexport function useFocusableRef<T extends HTMLElement = HTMLElement>(ref: FocusableRef<T>, focusableRef?: RefObject<FocusableElement>): RefObject<T> {\n let domRef = useRef<T>(null);\n useImperativeHandle(ref, () => createFocusableRef(domRef, focusableRef));\n return domRef;\n}\n\nexport function unwrapDOMRef<T extends HTMLElement>(ref: RefObject<DOMRefValue<T>>): RefObject<T> {\n return {\n get current() {\n return ref.current && ref.current.UNSAFE_getDOMNode();\n }\n };\n}\n\nexport function useUnwrapDOMRef<T extends HTMLElement>(ref: RefObject<DOMRefValue<T>>) : RefObject<T> {\n return useMemo(() => unwrapDOMRef(ref), [ref]);\n}\n","/*\n * Copyright 2020 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 {BackgroundColorValue, BorderColorValue, BorderRadiusValue, BorderSizeValue, ColorValue, ColorVersion, DimensionValue, Direction, Responsive, ResponsiveProp, StyleProps, ViewStyleProps} from '@react-types/shared';\nimport {CSSProperties, HTMLAttributes} from 'react';\nimport {useBreakpoint} from './BreakpointProvider';\nimport {useLocale} from '@react-aria/i18n';\n\ntype Breakpoint = 'base' | 'S' | 'M' | 'L' | string;\ntype StyleName = string | string[] | ((dir: Direction) => string);\ntype StyleHandler = (value: any, colorVersion?: number) => string;\nexport interface StyleHandlers {\n [key: string]: [StyleName, StyleHandler]\n}\n\nexport const baseStyleProps: StyleHandlers = {\n margin: ['margin', dimensionValue],\n marginStart: [rtl('marginLeft', 'marginRight'), dimensionValue],\n marginEnd: [rtl('marginRight', 'marginLeft'), dimensionValue],\n // marginLeft: ['marginLeft', dimensionValue],\n // marginRight: ['marginRight', dimensionValue],\n marginTop: ['marginTop', dimensionValue],\n marginBottom: ['marginBottom', dimensionValue],\n marginX: [['marginLeft', 'marginRight'], dimensionValue],\n marginY: [['marginTop', 'marginBottom'], dimensionValue],\n width: ['width', dimensionValue],\n height: ['height', dimensionValue],\n minWidth: ['minWidth', dimensionValue],\n minHeight: ['minHeight', dimensionValue],\n maxWidth: ['maxWidth', dimensionValue],\n maxHeight: ['maxHeight', dimensionValue],\n isHidden: ['display', hiddenValue],\n alignSelf: ['alignSelf', passthroughStyle],\n justifySelf: ['justifySelf', passthroughStyle],\n position: ['position', anyValue],\n zIndex: ['zIndex', anyValue],\n top: ['top', dimensionValue],\n bottom: ['bottom', dimensionValue],\n start: [rtl('left', 'right'), dimensionValue],\n end: [rtl('right', 'left'), dimensionValue],\n left: ['left', dimensionValue],\n right: ['right', dimensionValue],\n order: ['order', anyValue],\n flex: ['flex', flexValue],\n flexGrow: ['flexGrow', passthroughStyle],\n flexShrink: ['flexShrink', passthroughStyle],\n flexBasis: ['flexBasis', passthroughStyle],\n gridArea: ['gridArea', passthroughStyle],\n gridColumn: ['gridColumn', passthroughStyle],\n gridColumnEnd: ['gridColumnEnd', passthroughStyle],\n gridColumnStart: ['gridColumnStart', passthroughStyle],\n gridRow: ['gridRow', passthroughStyle],\n gridRowEnd: ['gridRowEnd', passthroughStyle],\n gridRowStart: ['gridRowStart', passthroughStyle]\n};\n\nexport const viewStyleProps: StyleHandlers = {\n ...baseStyleProps,\n backgroundColor: ['backgroundColor', backgroundColorValue],\n borderWidth: ['borderWidth', borderSizeValue],\n borderStartWidth: [rtl('borderLeftWidth', 'borderRightWidth'), borderSizeValue],\n borderEndWidth: [rtl('borderRightWidth', 'borderLeftWidth'), borderSizeValue],\n borderLeftWidth: ['borderLeftWidth', borderSizeValue],\n borderRightWidth: ['borderRightWidth', borderSizeValue],\n borderTopWidth: ['borderTopWidth', borderSizeValue],\n borderBottomWidth: ['borderBottomWidth', borderSizeValue],\n borderXWidth: [['borderLeftWidth', 'borderRightWidth'], borderSizeValue],\n borderYWidth: [['borderTopWidth', 'borderBottomWidth'], borderSizeValue],\n borderColor: ['borderColor', borderColorValue],\n borderStartColor: [rtl('borderLeftColor', 'borderRightColor'), borderColorValue],\n borderEndColor: [rtl('borderRightColor', 'borderLeftColor'), borderColorValue],\n borderLeftColor: ['borderLeftColor', borderColorValue],\n borderRightColor: ['borderRightColor', borderColorValue],\n borderTopColor: ['borderTopColor', borderColorValue],\n borderBottomColor: ['borderBottomColor', borderColorValue],\n borderXColor: [['borderLeftColor', 'borderRightColor'], borderColorValue],\n borderYColor: [['borderTopColor', 'borderBottomColor'], borderColorValue],\n borderRadius: ['borderRadius', borderRadiusValue],\n borderTopStartRadius: [rtl('borderTopLeftRadius', 'borderTopRightRadius'), borderRadiusValue],\n borderTopEndRadius: [rtl('borderTopRightRadius', 'borderTopLeftRadius'), borderRadiusValue],\n borderBottomStartRadius: [rtl('borderBottomLeftRadius', 'borderBottomRightRadius'), borderRadiusValue],\n borderBottomEndRadius: [rtl('borderBottomRightRadius', 'borderBottomLeftRadius'), borderRadiusValue],\n borderTopLeftRadius: ['borderTopLeftRadius', borderRadiusValue],\n borderTopRightRadius: ['borderTopRightRadius', borderRadiusValue],\n borderBottomLeftRadius: ['borderBottomLeftRadius', borderRadiusValue],\n borderBottomRightRadius: ['borderBottomRightRadius', borderRadiusValue],\n padding: ['padding', dimensionValue],\n paddingStart: [rtl('paddingLeft', 'paddingRight'), dimensionValue],\n paddingEnd: [rtl('paddingRight', 'paddingLeft'), dimensionValue],\n paddingLeft: ['paddingLeft', dimensionValue],\n paddingRight: ['paddingRight', dimensionValue],\n paddingTop: ['paddingTop', dimensionValue],\n paddingBottom: ['paddingBottom', dimensionValue],\n paddingX: [['paddingLeft', 'paddingRight'], dimensionValue],\n paddingY: [['paddingTop', 'paddingBottom'], dimensionValue],\n overflow: ['overflow', passthroughStyle]\n};\n\nconst borderStyleProps = {\n borderWidth: 'borderStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n borderTopWidth: 'borderTopStyle',\n borderBottomWidth: 'borderBottomStyle'\n};\n\nfunction rtl(ltr: string, rtl: string) {\n return (direction: Direction) => (\n direction === 'rtl' ? rtl : ltr\n );\n}\n\nconst UNIT_RE = /(%|px|em|rem|vw|vh|auto|cm|mm|in|pt|pc|ex|ch|rem|vmin|vmax|fr)$/;\nconst FUNC_RE = /^\\s*\\w+\\(/;\nconst SPECTRUM_VARIABLE_RE = /(static-)?size-\\d+|single-line-(height|width)/g;\n\nexport function dimensionValue(value: DimensionValue) {\n if (typeof value === 'number') {\n return value + 'px';\n }\n\n if (UNIT_RE.test(value)) {\n return value;\n }\n\n if (FUNC_RE.test(value)) {\n return value.replace(SPECTRUM_VARIABLE_RE, 'var(--spectrum-global-dimension-$&, var(--spectrum-alias-$&))');\n }\n\n return `var(--spectrum-global-dimension-${value}, var(--spectrum-alias-${value}))`;\n}\n\nexport function responsiveDimensionValue(value: Responsive<DimensionValue>, matchedBreakpoints: Breakpoint[]) {\n value = getResponsiveProp(value, matchedBreakpoints);\n return dimensionValue(value);\n}\n\ntype ColorType = 'default' | 'background' | 'border' | 'icon' | 'status';\nfunction colorValue(value: ColorValue, type: ColorType = 'default', version = 5) {\n if (version > 5) {\n return `var(--spectrum-${value}, var(--spectrum-semantic-${value}-color-${type}))`;\n }\n\n return `var(--spectrum-legacy-color-${value}, var(--spectrum-global-color-${value}, var(--spectrum-semantic-${value}-color-${type})))`;\n}\n\nfunction backgroundColorValue(value: BackgroundColorValue, version = 5) {\n return `var(--spectrum-alias-background-color-${value}, ${colorValue(value as ColorValue, 'background', version)})`;\n}\n\nfunction borderColorValue(value: BorderColorValue, version = 5) {\n if (value === 'default') {\n return 'var(--spectrum-alias-border-color)';\n }\n\n return `var(--spectrum-alias-border-color-${value}, ${colorValue(value as ColorValue, 'border', version)})`;\n}\n\nfunction borderSizeValue(value: BorderSizeValue) {\n return `var(--spectrum-alias-border-size-${value})`;\n}\n\nfunction borderRadiusValue(value: BorderRadiusValue) {\n return `var(--spectrum-alias-border-radius-${value})`;\n}\n\nfunction hiddenValue(value: boolean) {\n return value ? 'none' : undefined;\n}\n\nfunction anyValue(value: any) {\n return value;\n}\n\nfunction flexValue(value: boolean | number | string) {\n if (typeof value === 'boolean') {\n return value ? '1' : undefined;\n }\n\n return '' + value;\n}\n\nexport function convertStyleProps<C extends ColorVersion>(props: ViewStyleProps<C>, handlers: StyleHandlers, direction: Direction, matchedBreakpoints: Breakpoint[]) {\n let style: CSSProperties = {};\n for (let key in props) {\n let styleProp = handlers[key];\n if (!styleProp || props[key] == null) {\n continue;\n }\n\n let [name, convert] = styleProp;\n if (typeof name === 'function') {\n name = name(direction);\n }\n\n let prop = getResponsiveProp(props[key], matchedBreakpoints);\n let value = convert(prop, props.colorVersion);\n if (Array.isArray(name)) {\n for (let k of name) {\n style[k] = value;\n }\n } else {\n style[name] = value;\n }\n }\n\n for (let prop in borderStyleProps) {\n if (style[prop]) {\n style[borderStyleProps[prop]] = 'solid';\n style.boxSizing = 'border-box';\n }\n }\n\n return style;\n}\n\ntype StylePropsOptions = {\n matchedBreakpoints?: Breakpoint[]\n};\n\nexport function useStyleProps<T extends StyleProps>(\n props: T,\n handlers: StyleHandlers = baseStyleProps,\n options: StylePropsOptions = {}\n) {\n let {\n UNSAFE_className,\n UNSAFE_style,\n ...otherProps\n } = props;\n let breakpointProvider = useBreakpoint();\n let {direction} = useLocale();\n let {\n matchedBreakpoints = breakpointProvider?.matchedBreakpoints || ['base']\n } = options;\n let styles = convertStyleProps(props, handlers, direction, matchedBreakpoints);\n let style = {...UNSAFE_style, ...styles};\n\n // @ts-ignore\n if (otherProps.className) {\n console.warn(\n 'The className prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_className if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n // @ts-ignore\n if (otherProps.style) {\n console.warn(\n 'The style prop is unsafe and is unsupported in React Spectrum v3. ' +\n 'Please use style props with Spectrum variables, or UNSAFE_style if you absolutely must do something custom. ' +\n 'Note that this may break in future versions due to DOM structure changes.'\n );\n }\n\n let styleProps: HTMLAttributes<HTMLElement> = {\n style,\n className: UNSAFE_className\n };\n\n if (getResponsiveProp(props.isHidden, matchedBreakpoints)) {\n styleProps.hidden = true;\n }\n\n return {\n styleProps\n };\n}\n\nexport function passthroughStyle(value) {\n return value;\n}\n\nexport function getResponsiveProp<T>(prop: Responsive<T>, matchedBreakpoints: Breakpoint[]): T {\n if (prop && typeof prop === 'object' && !Array.isArray(prop)) {\n for (let i = 0; i < matchedBreakpoints.length; i++) {\n let breakpoint = matchedBreakpoints[i];\n if (prop[breakpoint] != null) {\n return prop[breakpoint];\n }\n }\n return (prop as ResponsiveProp<T>).base;\n }\n return prop as T;\n}\n","import React, {ReactNode, useContext, useEffect, useState} from 'react';\nimport {useIsSSR} from '@react-aria/ssr';\n\ninterface Breakpoints {\n S?: number,\n M?: number,\n L?: number,\n [custom: string]: number | undefined\n}\n\ninterface BreakpointContext {\n matchedBreakpoints: string[]\n}\n\nconst Context = React.createContext<BreakpointContext>(null);\nContext.displayName = 'BreakpointContext';\n\ninterface BreakpointProviderProps {\n children?: ReactNode,\n matchedBreakpoints: string[]\n}\n\nexport function BreakpointProvider(props: BreakpointProviderProps) {\n let {\n children,\n matchedBreakpoints\n } = props;\n return (\n <Context.Provider\n value={{matchedBreakpoints}} >\n {children}\n </Context.Provider>\n );\n}\n\nexport function useMatchedBreakpoints(breakpoints: Breakpoints): string[] {\n let entries = Object.entries(breakpoints).sort(([, valueA], [, valueB]) => valueB - valueA);\n let breakpointQueries = entries.map(([, value]) => `(min-width: ${value}px)`);\n\n let supportsMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n let getBreakpointHandler = () => {\n let matched = [];\n for (let i in breakpointQueries) {\n let query = breakpointQueries[i];\n if (window.matchMedia(query).matches) {\n matched.push(entries[i][0]);\n }\n }\n matched.push('base');\n return matched;\n };\n\n let [breakpoint, setBreakpoint] = useState(() =>\n supportsMatchMedia\n ? getBreakpointHandler()\n : ['base']\n );\n\n useEffect(() => {\n if (!supportsMatchMedia) {\n return;\n }\n\n let onResize = () => {\n const breakpointHandler = getBreakpointHandler();\n\n setBreakpoint(previousBreakpointHandler => {\n if (previousBreakpointHandler.length !== breakpointHandler.length ||\n previousBreakpointHandler.some((breakpoint, idx) => breakpoint !== breakpointHandler[idx])) {\n return [...breakpointHandler]; // Return a new array to force state change\n }\n\n return previousBreakpointHandler;\n });\n };\n\n window.addEventListener('resize', onResize);\n return () => {\n window.removeEventListener('resize', onResize);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [supportsMatchMedia]);\n\n // If in SSR, the media query should never match. Once the page hydrates,\n // this will update and the real value will be returned.\n let isSSR = useIsSSR();\n return isSSR ? ['base'] : breakpoint;\n}\n\nexport function useBreakpoint(): BreakpointContext {\n return useContext(Context);\n}\n","/*\n * Copyright 2020 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 {mergeProps} from '@react-aria/utils';\nimport React, {useContext, useMemo} from 'react';\n\ninterface SlotProps {\n slot?: string\n}\n\nlet SlotContext = React.createContext(null);\n\nexport function useSlotProps<T>(props: T & {id?: string}, defaultSlot?: string): T {\n let slot = (props as SlotProps).slot || defaultSlot;\n let {[slot]: slotProps = {}} = useContext(SlotContext) || {};\n\n return mergeProps(props, mergeProps(slotProps, {id: props.id}));\n}\n\nexport function cssModuleToSlots(cssModule) {\n return Object.keys(cssModule).reduce((acc, slot) => {\n acc[slot] = {UNSAFE_className: cssModule[slot]};\n return acc;\n }, {});\n}\n\nexport function SlotProvider(props) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n let parentSlots = useContext(SlotContext) || {};\n let {slots = {}, children} = props;\n\n // Merge props for each slot from parent context and props\n let value = useMemo(() =>\n Object.keys(parentSlots)\n .concat(Object.keys(slots))\n .reduce((o, p) => ({\n ...o,\n [p]: mergeProps(parentSlots[p] || {}, slots[p] || {})}), {})\n , [parentSlots, slots]);\n\n return (\n <SlotContext.Provider value={value}>\n {children}\n </SlotContext.Provider>\n );\n}\n\nexport function ClearSlots(props) {\n let {children, ...otherProps} = props;\n let content = children;\n if (React.Children.toArray(children).length <= 1) {\n if (typeof children === 'function') { // need to know if the node is a string or something else that react can render that doesn't get props\n content = React.cloneElement(React.Children.only(children), otherProps);\n }\n }\n return (\n <SlotContext.Provider value={{}}>\n {content}\n </SlotContext.Provider>\n );\n}\n","/*\n * Copyright 2020 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 {RefObject, useState} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\nexport function useHasChild(query: string, ref: RefObject<HTMLElement>) {\n let [hasChild, setHasChild] = useState(true);\n useLayoutEffect(() => {\n setHasChild(!!(ref.current && ref.current.querySelector(query)));\n }, [setHasChild, query, ref]);\n return hasChild;\n}\n","/*\n * Copyright 2020 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 {useIsSSR} from '@react-aria/ssr';\n\nconst MOBILE_SCREEN_WIDTH = 700;\n\nexport function useIsMobileDevice(): boolean {\n let isSSR = useIsSSR();\n if (isSSR || typeof window === 'undefined') {\n return false;\n }\n\n return window.screen.width <= MOBILE_SCREEN_WIDTH;\n}\n"],"names":[],"version":3,"file":"module.js.map"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ReactNode, CSSProperties, HTMLAttributes, JSXElementConstructor, ReactElement, RefObject } from "react";
1
+ import React, { ReactNode, CSSProperties, HTMLAttributes, JSXElementConstructor, ReactElement, RefObject } from "react";
2
2
  import { ColorVersion, DimensionValue, Direction, Responsive, StyleProps, ViewStyleProps, DOMRef, DOMRefValue, FocusableElement, FocusableRef, FocusableRefValue } from "@react-types/shared";
3
3
  interface Breakpoints {
4
4
  S?: number;
@@ -13,7 +13,7 @@ interface BreakpointProviderProps {
13
13
  children?: ReactNode;
14
14
  matchedBreakpoints: string[];
15
15
  }
16
- export function BreakpointProvider(props: BreakpointProviderProps): JSX.Element;
16
+ export function BreakpointProvider(props: BreakpointProviderProps): React.JSX.Element;
17
17
  export function useMatchedBreakpoints(breakpoints: Breakpoints): string[];
18
18
  export function useBreakpoint(): BreakpointContext;
19
19
  type Breakpoint = 'base' | 'S' | 'M' | 'L' | string;
@@ -52,8 +52,8 @@ export function useSlotProps<T>(props: T & {
52
52
  id?: string;
53
53
  }, defaultSlot?: string): T;
54
54
  export function cssModuleToSlots(cssModule: any): {};
55
- export function SlotProvider(props: any): JSX.Element;
56
- export function ClearSlots(props: any): JSX.Element;
55
+ export function SlotProvider(props: any): React.JSX.Element;
56
+ export function ClearSlots(props: any): React.JSX.Element;
57
57
  export function useHasChild(query: string, ref: RefObject<HTMLElement>): boolean;
58
58
  export function useIsMobileDevice(): boolean;
59
59
  export { useValueEffect } from '@react-aria/utils';
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/BreakpointProvider.tsx","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/styleProps.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/classNames.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/getWrappedElement.tsx","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/useMediaQuery.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/useDOMRef.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/Slots.tsx","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/useHasChild.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/useIsMobileDevice.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/index.ts","packages/@react-spectrum/utils/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright 2020 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\n/// <reference types=\"css-module-types\" />\n/// <reference path=\"./ResizeObserver.d.ts\" />\n\nexport type {StyleHandlers} from './styleProps';\nexport {shouldKeepSpectrumClassNames, keepSpectrumClassNames, classNames} from './classNames';\nexport {getWrappedElement} from './getWrappedElement';\nexport {useMediaQuery} from './useMediaQuery';\nexport {createDOMRef, createFocusableRef, useDOMRef, useFocusableRef, unwrapDOMRef, useUnwrapDOMRef} from './useDOMRef';\nexport {\n baseStyleProps,\n viewStyleProps,\n dimensionValue,\n responsiveDimensionValue,\n convertStyleProps,\n useStyleProps,\n passthroughStyle,\n getResponsiveProp\n} from './styleProps';\nexport {useSlotProps, cssModuleToSlots, SlotProvider, ClearSlots} from './Slots';\nexport {useHasChild} from './useHasChild';\nexport {useIsMobileDevice} from './useIsMobileDevice';\nexport {useValueEffect} from '@react-aria/utils';\nexport {BreakpointProvider, useMatchedBreakpoints, useBreakpoint} from './BreakpointProvider';\nexport {useResizeObserver} from '@react-aria/utils';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/BreakpointProvider.tsx","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/styleProps.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/classNames.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/getWrappedElement.tsx","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/useMediaQuery.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/useDOMRef.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/Slots.tsx","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/useHasChild.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/useIsMobileDevice.ts","packages/@react-spectrum/utils/src/packages/@react-spectrum/utils/src/index.ts","packages/@react-spectrum/utils/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright 2020 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\n/// <reference types=\"css-module-types\" />\n\nexport type {StyleHandlers} from './styleProps';\nexport {shouldKeepSpectrumClassNames, keepSpectrumClassNames, classNames} from './classNames';\nexport {getWrappedElement} from './getWrappedElement';\nexport {useMediaQuery} from './useMediaQuery';\nexport {createDOMRef, createFocusableRef, useDOMRef, useFocusableRef, unwrapDOMRef, useUnwrapDOMRef} from './useDOMRef';\nexport {\n baseStyleProps,\n viewStyleProps,\n dimensionValue,\n responsiveDimensionValue,\n convertStyleProps,\n useStyleProps,\n passthroughStyle,\n getResponsiveProp\n} from './styleProps';\nexport {useSlotProps, cssModuleToSlots, SlotProvider, ClearSlots} from './Slots';\nexport {useHasChild} from './useHasChild';\nexport {useIsMobileDevice} from './useIsMobileDevice';\nexport {useValueEffect} from '@react-aria/utils';\nexport {BreakpointProvider, useMatchedBreakpoints, useBreakpoint} from './BreakpointProvider';\nexport {useResizeObserver} from '@react-aria/utils';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-spectrum/utils",
3
- "version": "3.9.2",
3
+ "version": "3.10.1",
4
4
  "description": "Spectrum UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/main.js",
@@ -24,11 +24,11 @@
24
24
  "url": "https://github.com/adobe/react-spectrum"
25
25
  },
26
26
  "dependencies": {
27
- "@react-aria/i18n": "^3.7.2",
28
- "@react-aria/ssr": "^3.6.0",
29
- "@react-aria/utils": "^3.17.0",
30
- "@react-types/shared": "^3.18.1",
31
- "@swc/helpers": "^0.4.14",
27
+ "@react-aria/i18n": "^3.8.1",
28
+ "@react-aria/ssr": "^3.7.1",
29
+ "@react-aria/utils": "^3.19.0",
30
+ "@react-types/shared": "^3.19.0",
31
+ "@swc/helpers": "^0.5.0",
32
32
  "clsx": "^1.1.1"
33
33
  },
34
34
  "peerDependencies": {
@@ -37,5 +37,5 @@
37
37
  "publishConfig": {
38
38
  "access": "public"
39
39
  },
40
- "gitHead": "5911ed21de4b76d66f6254c02302519e02d50e16"
40
+ "gitHead": "d4dfe4bb842a914f10045ee63fc6b92f034c5b30"
41
41
  }
package/src/index.ts CHANGED
@@ -11,7 +11,6 @@
11
11
  */
12
12
 
13
13
  /// <reference types="css-module-types" />
14
- /// <reference path="./ResizeObserver.d.ts" />
15
14
 
16
15
  export type {StyleHandlers} from './styleProps';
17
16
  export {shouldKeepSpectrumClassNames, keepSpectrumClassNames, classNames} from './classNames';
@@ -1,250 +0,0 @@
1
- /**
2
- * Flicked from https://gist.github.com/strothj/708afcf4f01dd04de8f49c92e88093c3
3
- * as its missing from TS API declaration https://github.com/microsoft/TypeScript/issues/37861.
4
- */
5
-
6
- /**
7
- * The **ResizeObserver** interface reports changes to the dimensions of an
8
- * [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element)'s content
9
- * or border box, or the bounding box of an
10
- * [SVGElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGElement).
11
- *
12
- * > **Note**: The content box is the box in which content can be placed,
13
- * > meaning the border box minus the padding and border width. The border box
14
- * > encompasses the content, padding, and border. See
15
- * > [The box model](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model)
16
- * > for further explanation.
17
- *
18
- * `ResizeObserver` avoids infinite callback loops and cyclic dependencies that
19
- * are often created when resizing via a callback function. It does this by only
20
- * processing elements deeper in the DOM in subsequent frames. Implementations
21
- * should, if they follow the specification, invoke resize events before paint
22
- * and after layout.
23
- *
24
- * @see https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver
25
- */
26
- declare class ResizeObserver {
27
- /**
28
- * The **ResizeObserver** constructor creates a new `ResizeObserver` object,
29
- * which can be used to report changes to the content or border box of an
30
- * `Element` or the bounding box of an `SVGElement`.
31
- *
32
- * @example
33
- * var ResizeObserver = new ResizeObserver(callback)
34
- *
35
- * @param callback
36
- * The function called whenever an observed resize occurs. The function is
37
- * called with two parameters:
38
- * * **entries**
39
- * An array of
40
- * [ResizeObserverEntry](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry)
41
- * objects that can be used to access the new dimensions of the element
42
- * after each change.
43
- * * **observer**
44
- * A reference to the `ResizeObserver` itself, so it will definitely be
45
- * accessible from inside the callback, should you need it. This could be
46
- * used for example to automatically unobserve the observer when a certain
47
- * condition is reached, but you can omit it if you don't need it.
48
- *
49
- * The callback will generally follow a pattern along the lines of:.
50
- * ```js
51
- * function(entries, observer) {
52
- * for (let entry of entries) {
53
- * // Do something to each entry
54
- * // and possibly something to the observer itself
55
- * }
56
- * }
57
- * ```.
58
- *
59
- * The following snippet is taken from the
60
- * [resize-observer-text.html](https://mdn.github.io/dom-examples/resize-observer/resize-observer-text.html)
61
- * ([see source](https://github.com/mdn/dom-examples/blob/master/resize-observer/resize-observer-text.html))
62
- * example:.
63
- * @example
64
- * const resizeObserver = new ResizeObserver(entries => {
65
- * for (let entry of entries) {
66
- * if(entry.contentBoxSize) {
67
- * h1Elem.style.fontSize = Math.max(1.5, entry.contentBoxSize.inlineSize/200) + 'rem';
68
- * pElem.style.fontSize = Math.max(1, entry.contentBoxSize.inlineSize/600) + 'rem';
69
- * } else {
70
- * h1Elem.style.fontSize = Math.max(1.5, entry.contentRect.width/200) + 'rem';
71
- * pElem.style.fontSize = Math.max(1, entry.contentRect.width/600) + 'rem';
72
- * }
73
- * }
74
- * });
75
- *
76
- * resizeObserver.observe(divElem);
77
- */
78
- constructor(callback: ResizeObserverCallback);
79
-
80
- /**
81
- * The **disconnect()** method of the
82
- * [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)
83
- * interface unobserves all observed
84
- * [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) or
85
- * [SVGElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGElement)
86
- * targets.
87
- */
88
- disconnect: () => void;
89
-
90
- /**
91
- * The `observe()` method of the
92
- * [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)
93
- * interface starts observing the specified
94
- * [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) or
95
- * [SVGElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGElement).
96
- *
97
- * @example
98
- * resizeObserver.observe(target, options);
99
- *
100
- * @param target
101
- * A reference to an
102
- * [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) or
103
- * [SVGElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGElement)
104
- * to be observed.
105
- *
106
- * @param options
107
- * An options object allowing you to set options for the observation.
108
- * Currently this only has one possible option that can be set.
109
- */
110
- observe: (target: Element, options?: ResizeObserverObserveOptions) => void;
111
-
112
- /**
113
- * The **unobserve()** method of the
114
- * [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)
115
- * interface ends the observing of a specified
116
- * [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) or
117
- * [SVGElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGElement).
118
- */
119
- unobserve: (target: Element) => void;
120
- }
121
-
122
- interface ResizeObserverObserveOptions {
123
- /**
124
- * Sets which box model the observer will observe changes to. Possible values
125
- * are `content-box` (the default), and `border-box`.
126
- *
127
- * @default "content-box"
128
- */
129
- box?: 'content-box' | 'border-box'
130
- }
131
-
132
- /**
133
- * The function called whenever an observed resize occurs.
134
- * The function is called with two parameters.
135
- *
136
- * @param entries
137
- * An array of
138
- * [ResizeObserverEntry](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry)
139
- * objects that can be used to access the new dimensions of the element after
140
- * each change.
141
- *
142
- * @param observer
143
- * A reference to the `ResizeObserver` itself, so it will definitely be
144
- * accessible from inside the callback, should you need it. This could be used
145
- * for example to automatically unobserve the observer when a certain condition
146
- * is reached, but you can omit it if you don't need it.
147
- *
148
- * The callback will generally follow a pattern along the lines of:.
149
- * @example
150
- * function(entries, observer) {
151
- * for (let entry of entries) {
152
- * // Do something to each entry
153
- * // and possibly something to the observer itself
154
- * }
155
- * }
156
- *
157
- * @example
158
- * const resizeObserver = new ResizeObserver(entries => {
159
- * for (let entry of entries) {
160
- * if(entry.contentBoxSize) {
161
- * h1Elem.style.fontSize = Math.max(1.5, entry.contentBoxSize.inlineSize/200) + 'rem';
162
- * pElem.style.fontSize = Math.max(1, entry.contentBoxSize.inlineSize/600) + 'rem';
163
- * } else {
164
- * h1Elem.style.fontSize = Math.max(1.5, entry.contentRect.width/200) + 'rem';
165
- * pElem.style.fontSize = Math.max(1, entry.contentRect.width/600) + 'rem';
166
- * }
167
- * }
168
- * });
169
- *
170
- * resizeObserver.observe(divElem);
171
- */
172
- type ResizeObserverCallback = (
173
- entries: ResizeObserverEntry[],
174
- observer: ResizeObserver,
175
- ) => void;
176
-
177
- /**
178
- * The **ResizeObserverEntry** interface represents the object passed to the
179
- * [ResizeObserver()](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/ResizeObserver)
180
- * constructor's callback function, which allows you to access the new
181
- * dimensions of the
182
- * [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) or
183
- * [SVGElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGElement)
184
- * being observed.
185
- */
186
- interface ResizeObserverEntry {
187
- /**
188
- * An object containing the new border box size of the observed element when
189
- * the callback is run.
190
- */
191
- readonly borderBoxSize: ResizeObserverEntryBoxSize,
192
-
193
- /**
194
- * An object containing the new content box size of the observed element when
195
- * the callback is run.
196
- */
197
- readonly contentBoxSize: ResizeObserverEntryBoxSize,
198
-
199
- /**
200
- * A [DOMRectReadOnly](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly)
201
- * object containing the new size of the observed element when the callback is
202
- * run. Note that this is better supported than the above two properties, but
203
- * it is left over from an earlier implementation of the Resize Observer API,
204
- * is still included in the spec for web compat reasons, and may be deprecated
205
- * in future versions.
206
- */
207
- // node_modules/typescript/lib/lib.dom.d.ts
208
- readonly contentRect: DOMRectReadOnly,
209
-
210
- /**
211
- * A reference to the
212
- * [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) or
213
- * [SVGElement](https://developer.mozilla.org/en-US/docs/Web/API/SVGElement)
214
- * being observed.
215
- */
216
- readonly target: Element
217
- }
218
-
219
- /**
220
- * The **borderBoxSize** read-only property of the
221
- * [ResizeObserverEntry](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry)
222
- * interface returns an object containing the new border box size of the
223
- * observed element when the callback is run.
224
- */
225
- interface ResizeObserverEntryBoxSize {
226
- /**
227
- * The length of the observed element's border box in the block dimension. For
228
- * boxes with a horizontal
229
- * [writing-mode](https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode),
230
- * this is the vertical dimension, or height; if the writing-mode is vertical,
231
- * this is the horizontal dimension, or width.
232
- */
233
- blockSize: number,
234
-
235
- /**
236
- * The length of the observed element's border box in the inline dimension.
237
- * For boxes with a horizontal
238
- * [writing-mode](https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode),
239
- * this is the horizontal dimension, or width; if the writing-mode is
240
- * vertical, this is the vertical dimension, or height.
241
- */
242
- inlineSize: number
243
- }
244
- declare global {
245
- interface Window {
246
- ResizeObserver: typeof ResizeObserver
247
- }
248
- }
249
-
250
- export {};