) that have overflow css properties\n * set to auto, scroll, or overlay\n * @module getScrollParents\n *\n * @param { Node | Window | React.ReactElement | React.Component | function | null } el - component or DOM node\n * @returns {Array} scroll parents\n */","meta":{"filename":"6fckejijtsylnjvnm0l1i.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nRetrieves the scroll parents of a specified element.\nIncludes parents of nodeType 1 (Element nodes such\nas
) that have overflow css properties\nset to auto, scroll, or overlay","kind":"module","name":"getScrollParents","params":[{"type":{"names":["Node","Window","React.ReactElement","React.Component","function","null"]},"description":"component or DOM node","name":"el"}],"returns":[{"type":{"names":["Array"]},"description":"scroll parents"}],"longname":"module:getScrollParents","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/getScrollParents.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/getScrollParents.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/getScrollParents.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/getScrollParents","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/getScrollParents.ts').default","esPath":"@instructure/ui-dom-utils/es/getScrollParents","themePath":"packages/ui-dom-utils/src/getScrollParents.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/getScrollParents.ts","id":"getScrollParents","title":"getScrollParents"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/getShorthandPropValue.json b/pr-preview/pr-1812/docs/getShorthandPropValue.json
index b093d1c2c8..ff462e5e2d 100644
--- a/pr-preview/pr-1812/docs/getShorthandPropValue.json
+++ b/pr-preview/pr-1812/docs/getShorthandPropValue.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/themes\n * ---\n * Given a theme object, a string of space delimited prop values,\n * and a propName prefix, combines each prop value with the\n * propName prefix and replaces it with a corresponding value\n * from the theme object.\n * @module getShorthandPropValue\n *\n * @param {String} componentName - the name of the component (for error messages)\n * @param {Object} componentTheme - a theme object of keys and values\n * @param {String} propValue - a space delimited string of values\n * @param {String} propName - a prefix to combine with each propValue\n * @returns {String} a string with each value replaced with a value from the theme object\n */","meta":{"filename":"lmjb4rrtd4hedozh0ov0d.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Given a theme object, a string of space delimited prop values,\nand a propName prefix, combines each prop value with the\npropName prefix and replaces it with a corresponding value\nfrom the theme object.","kind":"module","name":"getShorthandPropValue","params":[{"type":{"names":["String"]},"description":"the name of the component (for error messages)","name":"componentName"},{"type":{"names":["Object"]},"description":"a theme object of keys and values","name":"componentTheme"},{"type":{"names":["String"]},"description":"a space delimited string of values","name":"propValue"},{"type":{"names":["String"]},"description":"a prefix to combine with each propValue","name":"propName"}],"returns":[{"type":{"names":["String"]},"description":"a string with each value replaced with a value from the theme object"}],"longname":"module:getShorthandPropValue","undocumented":false,"category":"utilities/themes","relativePath":"packages/emotion/src/styleUtils/getShorthandPropValue.ts","extension":".ts","srcPath":"packages/emotion/src/styleUtils/getShorthandPropValue.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/getShorthandPropValue.ts","packageName":"@instructure/emotion","requirePath":"@instructure/emotion/lib/styleUtils/getShorthandPropValue","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/emotion/src/styleUtils/getShorthandPropValue.ts').default","esPath":"@instructure/emotion/es/styleUtils/getShorthandPropValue","themePath":"packages/emotion/src/styleUtils/getShorthandPropValue.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/getShorthandPropValue.ts","id":"getShorthandPropValue","title":"getShorthandPropValue"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/themes\n * ---\n * Given a theme object, a string of space delimited prop values,\n * and a propName prefix, combines each prop value with the\n * propName prefix and replaces it with a corresponding value\n * from the theme object.\n * @module getShorthandPropValue\n *\n * @param {String} componentName - the name of the component (for error messages)\n * @param {Object} componentTheme - a theme object of keys and values\n * @param {String} propValue - a space delimited string of values\n * @param {String} propName - a prefix to combine with each propValue\n * @returns {String} a string with each value replaced with a value from the theme object\n */","meta":{"filename":"jk568ryk9e03636wk6vgv6.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Given a theme object, a string of space delimited prop values,\nand a propName prefix, combines each prop value with the\npropName prefix and replaces it with a corresponding value\nfrom the theme object.","kind":"module","name":"getShorthandPropValue","params":[{"type":{"names":["String"]},"description":"the name of the component (for error messages)","name":"componentName"},{"type":{"names":["Object"]},"description":"a theme object of keys and values","name":"componentTheme"},{"type":{"names":["String"]},"description":"a space delimited string of values","name":"propValue"},{"type":{"names":["String"]},"description":"a prefix to combine with each propValue","name":"propName"}],"returns":[{"type":{"names":["String"]},"description":"a string with each value replaced with a value from the theme object"}],"longname":"module:getShorthandPropValue","undocumented":false,"category":"utilities/themes","relativePath":"packages/emotion/src/styleUtils/getShorthandPropValue.ts","extension":".ts","srcPath":"packages/emotion/src/styleUtils/getShorthandPropValue.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/getShorthandPropValue.ts","packageName":"@instructure/emotion","requirePath":"@instructure/emotion/lib/styleUtils/getShorthandPropValue","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/emotion/src/styleUtils/getShorthandPropValue.ts').default","esPath":"@instructure/emotion/es/styleUtils/getShorthandPropValue","themePath":"packages/emotion/src/styleUtils/getShorthandPropValue.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/getShorthandPropValue.ts","id":"getShorthandPropValue","title":"getShorthandPropValue"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/getTextDirection.json b/pr-preview/pr-1812/docs/getTextDirection.json
index 6b993dff5c..203d507903 100644
--- a/pr-preview/pr-1812/docs/getTextDirection.json
+++ b/pr-preview/pr-1812/docs/getTextDirection.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/i18n\n * ---\n *\n * Return the direction ('ltr' or 'rtl' or 'auto') of an element. If no element\n * is given, it returns the document's 'dir' value.\n * @module getTextDirection\n * @param {Element} element will use the element by default\n * @returns {String} 'ltr' or 'rtl' or 'auto' (or `undefined` if no DOM is present)\n */","meta":{"filename":"2bdlgajpq189l9d040sh1.js","lineno":6,"columnno":0,"path":"/tmp","code":{}},"description":"\nReturn the direction ('ltr' or 'rtl' or 'auto') of an element. If no element\nis given, it returns the document's 'dir' value.","kind":"module","name":"getTextDirection","params":[{"type":{"names":["Element"]},"description":"will use the element by default","name":"element"}],"returns":[{"type":{"names":["String"]},"description":"'ltr' or 'rtl' or 'auto' (or `undefined` if no DOM is present)"}],"longname":"module:getTextDirection","undocumented":false,"category":"utilities/i18n","relativePath":"packages/ui-i18n/src/getTextDirection.ts","extension":".ts","srcPath":"packages/ui-i18n/src/getTextDirection.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-i18n/src/getTextDirection.ts","packageName":"@instructure/ui-i18n","requirePath":"@instructure/ui-i18n/lib/getTextDirection","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-i18n/src/getTextDirection.ts').default","esPath":"@instructure/ui-i18n/es/getTextDirection","themePath":"packages/ui-i18n/src/getTextDirection.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-i18n/src/getTextDirection.ts","id":"getTextDirection","title":"getTextDirection"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/i18n\n * ---\n *\n * Return the direction ('ltr' or 'rtl' or 'auto') of an element. If no element\n * is given, it returns the document's 'dir' value.\n * @module getTextDirection\n * @param {Element} element will use the element by default\n * @returns {String} 'ltr' or 'rtl' or 'auto' (or `undefined` if no DOM is present)\n */","meta":{"filename":"h900z9z5x6l9dfv0e1878.js","lineno":6,"columnno":0,"path":"/tmp","code":{}},"description":"\nReturn the direction ('ltr' or 'rtl' or 'auto') of an element. If no element\nis given, it returns the document's 'dir' value.","kind":"module","name":"getTextDirection","params":[{"type":{"names":["Element"]},"description":"will use the element by default","name":"element"}],"returns":[{"type":{"names":["String"]},"description":"'ltr' or 'rtl' or 'auto' (or `undefined` if no DOM is present)"}],"longname":"module:getTextDirection","undocumented":false,"category":"utilities/i18n","relativePath":"packages/ui-i18n/src/getTextDirection.ts","extension":".ts","srcPath":"packages/ui-i18n/src/getTextDirection.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-i18n/src/getTextDirection.ts","packageName":"@instructure/ui-i18n","requirePath":"@instructure/ui-i18n/lib/getTextDirection","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-i18n/src/getTextDirection.ts').default","esPath":"@instructure/ui-i18n/es/getTextDirection","themePath":"packages/ui-i18n/src/getTextDirection.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-i18n/src/getTextDirection.ts","id":"getTextDirection","title":"getTextDirection"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/hack.json b/pr-preview/pr-1812/docs/hack.json
index 5b6bb47092..f22c7315d3 100644
--- a/pr-preview/pr-1812/docs/hack.json
+++ b/pr-preview/pr-1812/docs/hack.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * Flag React component props as hack props.\n * Warnings will display in the console when hack props are used.\n *\n * ```js-code\n * class Example extends Component {\n * static propTypes = {\n * currentProp: PropTypes.func\n * }\n * }\n * export default hack(['hackProp'])(Example)\n * ```\n *\n * @module hack\n * @param {array} hackProps\n * @param {string} message\n * @return {function} React component flagged as having hack props\n */","meta":{"filename":"u5skg5pg0n9szggdi5l8lq.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Flag React component props as hack props.\nWarnings will display in the console when hack props are used.\n\n```js-code\n class Example extends Component {\n static propTypes = {\n currentProp: PropTypes.func\n }\n }\n export default hack(['hackProp'])(Example)\n```","kind":"module","name":"hack","params":[{"type":{"names":["array"]},"name":"hackProps"},{"type":{"names":["string"]},"name":"message"}],"returns":[{"type":{"names":["function"]},"description":"React component flagged as having hack props"}],"longname":"module:hack","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/hack.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/hack.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/hack.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/hack","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/hack.ts').default","esPath":"@instructure/ui-react-utils/es/hack","themePath":"packages/ui-react-utils/src/hack.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/hack.ts","id":"hack","title":"hack"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * Flag React component props as hack props.\n * Warnings will display in the console when hack props are used.\n *\n * ```js-code\n * class Example extends Component {\n * static propTypes = {\n * currentProp: PropTypes.func\n * }\n * }\n * export default hack(['hackProp'])(Example)\n * ```\n *\n * @module hack\n * @param {array} hackProps\n * @param {string} message\n * @return {function} React component flagged as having hack props\n */","meta":{"filename":"am3x6svz68hpnslj8jj24.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Flag React component props as hack props.\nWarnings will display in the console when hack props are used.\n\n```js-code\n class Example extends Component {\n static propTypes = {\n currentProp: PropTypes.func\n }\n }\n export default hack(['hackProp'])(Example)\n```","kind":"module","name":"hack","params":[{"type":{"names":["array"]},"name":"hackProps"},{"type":{"names":["string"]},"name":"message"}],"returns":[{"type":{"names":["function"]},"description":"React component flagged as having hack props"}],"longname":"module:hack","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/hack.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/hack.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/hack.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/hack","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/hack.ts').default","esPath":"@instructure/ui-react-utils/es/hack","themePath":"packages/ui-react-utils/src/hack.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/hack.ts","id":"hack","title":"hack"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/handleMouseOverOut.json b/pr-preview/pr-1812/docs/handleMouseOverOut.json
index 771fda2c18..6f7ee7c2dc 100644
--- a/pr-preview/pr-1812/docs/handleMouseOverOut.json
+++ b/pr-preview/pr-1812/docs/handleMouseOverOut.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Simple implementation of mouseEnter and mouseLeave.\n * React's built version is broken: https://github.com/facebook/react/issues/4251\n * for cases when the trigger is disabled and mouseOut/Over can cause flicker moving\n * from one child element to another.\n *\n * @module handleMouseOverOut\n * @param handler {function} Callback function for handling the event\n * @param event {Event} The DOM Event that was fired\n */","meta":{"filename":"dxx592wuwdbb8u5ci8wt6.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nSimple implementation of mouseEnter and mouseLeave.\nReact's built version is broken: https://github.com/facebook/react/issues/4251\nfor cases when the trigger is disabled and mouseOut/Over can cause flicker moving\nfrom one child element to another.","kind":"module","name":"handleMouseOverOut","params":[{"type":{"names":["function"]},"description":"Callback function for handling the event","name":"handler"},{"type":{"names":["Event"]},"description":"The DOM Event that was fired","name":"event"}],"longname":"module:handleMouseOverOut","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/handleMouseOverOut.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/handleMouseOverOut.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/handleMouseOverOut.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/handleMouseOverOut","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/handleMouseOverOut.ts').default","esPath":"@instructure/ui-dom-utils/es/handleMouseOverOut","themePath":"packages/ui-dom-utils/src/handleMouseOverOut.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/handleMouseOverOut.ts","id":"handleMouseOverOut","title":"handleMouseOverOut"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Simple implementation of mouseEnter and mouseLeave.\n * React's built version is broken: https://github.com/facebook/react/issues/4251\n * for cases when the trigger is disabled and mouseOut/Over can cause flicker moving\n * from one child element to another.\n *\n * @module handleMouseOverOut\n * @param handler {function} Callback function for handling the event\n * @param event {Event} The DOM Event that was fired\n */","meta":{"filename":"gq7t89ubn7w1dhhijgzwie.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nSimple implementation of mouseEnter and mouseLeave.\nReact's built version is broken: https://github.com/facebook/react/issues/4251\nfor cases when the trigger is disabled and mouseOut/Over can cause flicker moving\nfrom one child element to another.","kind":"module","name":"handleMouseOverOut","params":[{"type":{"names":["function"]},"description":"Callback function for handling the event","name":"handler"},{"type":{"names":["Event"]},"description":"The DOM Event that was fired","name":"event"}],"longname":"module:handleMouseOverOut","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/handleMouseOverOut.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/handleMouseOverOut.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/handleMouseOverOut.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/handleMouseOverOut","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/handleMouseOverOut.ts').default","esPath":"@instructure/ui-dom-utils/es/handleMouseOverOut","themePath":"packages/ui-dom-utils/src/handleMouseOverOut.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/handleMouseOverOut.ts","id":"handleMouseOverOut","title":"handleMouseOverOut"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/hasVisibleChildren.json b/pr-preview/pr-1812/docs/hasVisibleChildren.json
index d317d3b9e2..7c135f6940 100644
--- a/pr-preview/pr-1812/docs/hasVisibleChildren.json
+++ b/pr-preview/pr-1812/docs/hasVisibleChildren.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/a11y\n * ---\n * Returns `true` if any of the children are not wrapped with [ScreenReaderContent](#ScreenReaderContent).\n * @module hasVisibleChildren\n * @param {ReactChildren} children - A react component's children prop\n * @return {boolean} whether any of the children are visible\n */","meta":{"filename":"gero3uloaw9aypi4louad.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Returns `true` if any of the children are not wrapped with [ScreenReaderContent](#ScreenReaderContent).","kind":"module","name":"hasVisibleChildren","params":[{"type":{"names":["ReactChildren"]},"description":"A react component's children prop","name":"children"}],"returns":[{"type":{"names":["boolean"]},"description":"whether any of the children are visible"}],"longname":"module:hasVisibleChildren","undocumented":false,"category":"utilities/a11y","relativePath":"packages/ui-a11y-utils/src/hasVisibleChildren.ts","extension":".ts","srcPath":"packages/ui-a11y-utils/src/hasVisibleChildren.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-a11y-utils/src/hasVisibleChildren.ts","packageName":"@instructure/ui-a11y-utils","requirePath":"@instructure/ui-a11y-utils/lib/hasVisibleChildren","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-a11y-utils/src/hasVisibleChildren.ts').default","esPath":"@instructure/ui-a11y-utils/es/hasVisibleChildren","themePath":"packages/ui-a11y-utils/src/hasVisibleChildren.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-a11y-utils/src/hasVisibleChildren.ts","id":"hasVisibleChildren","title":"hasVisibleChildren"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/a11y\n * ---\n * Returns `true` if any of the children are not wrapped with [ScreenReaderContent](#ScreenReaderContent).\n * @module hasVisibleChildren\n * @param {ReactChildren} children - A react component's children prop\n * @return {boolean} whether any of the children are visible\n */","meta":{"filename":"pep21yj0dttpm5f3d6phs.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Returns `true` if any of the children are not wrapped with [ScreenReaderContent](#ScreenReaderContent).","kind":"module","name":"hasVisibleChildren","params":[{"type":{"names":["ReactChildren"]},"description":"A react component's children prop","name":"children"}],"returns":[{"type":{"names":["boolean"]},"description":"whether any of the children are visible"}],"longname":"module:hasVisibleChildren","undocumented":false,"category":"utilities/a11y","relativePath":"packages/ui-a11y-utils/src/hasVisibleChildren.ts","extension":".ts","srcPath":"packages/ui-a11y-utils/src/hasVisibleChildren.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-a11y-utils/src/hasVisibleChildren.ts","packageName":"@instructure/ui-a11y-utils","requirePath":"@instructure/ui-a11y-utils/lib/hasVisibleChildren","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-a11y-utils/src/hasVisibleChildren.ts').default","esPath":"@instructure/ui-a11y-utils/es/hasVisibleChildren","themePath":"packages/ui-a11y-utils/src/hasVisibleChildren.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-a11y-utils/src/hasVisibleChildren.ts","id":"hasVisibleChildren","title":"hasVisibleChildren"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/isActiveElement.json b/pr-preview/pr-1812/docs/isActiveElement.json
index 70928bb070..c7cc327458 100644
--- a/pr-preview/pr-1812/docs/isActiveElement.json
+++ b/pr-preview/pr-1812/docs/isActiveElement.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Determine if an element is the active element\n * @module isActiveElement\n * @param { Node | Window | React.ReactElement | React.Component | function | null } el - component or DOM node\n * @returns {boolean} if the element is the active element\n */","meta":{"filename":"fzux01v1esbdaod9y2yrm.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nDetermine if an element is the active element","kind":"module","name":"isActiveElement","params":[{"type":{"names":["Node","Window","React.ReactElement","React.Component","function","null"]},"description":"component or DOM node","name":"el"}],"returns":[{"type":{"names":["boolean"]},"description":"if the element is the active element"}],"longname":"module:isActiveElement","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/isActiveElement.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/isActiveElement.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isActiveElement.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/isActiveElement","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/isActiveElement.ts').default","esPath":"@instructure/ui-dom-utils/es/isActiveElement","themePath":"packages/ui-dom-utils/src/isActiveElement.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isActiveElement.ts","id":"isActiveElement","title":"isActiveElement"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Determine if an element is the active element\n * @module isActiveElement\n * @param { Node | Window | React.ReactElement | React.Component | function | null } el - component or DOM node\n * @returns {boolean} if the element is the active element\n */","meta":{"filename":"udf2t9xwshau3sn0rc0gn.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nDetermine if an element is the active element","kind":"module","name":"isActiveElement","params":[{"type":{"names":["Node","Window","React.ReactElement","React.Component","function","null"]},"description":"component or DOM node","name":"el"}],"returns":[{"type":{"names":["boolean"]},"description":"if the element is the active element"}],"longname":"module:isActiveElement","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/isActiveElement.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/isActiveElement.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isActiveElement.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/isActiveElement","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/isActiveElement.ts').default","esPath":"@instructure/ui-dom-utils/es/isActiveElement","themePath":"packages/ui-dom-utils/src/isActiveElement.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isActiveElement.ts","id":"isActiveElement","title":"isActiveElement"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/isDefinedCustomElement.json b/pr-preview/pr-1812/docs/isDefinedCustomElement.json
index 4fc488e19d..ab9e0b709e 100644
--- a/pr-preview/pr-1812/docs/isDefinedCustomElement.json
+++ b/pr-preview/pr-1812/docs/isDefinedCustomElement.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Check whether an element is a defined custom element. (if it was defined with `customElements.define`)\n * @module isDefinedCustomElement\n * @param { Element } el - the element to check\n * @return { Boolean } whether the element is a custom element or not\n */","meta":{"filename":"5p9ynzwwtknwqlrb9026b.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nCheck whether an element is a defined custom element. (if it was defined with `customElements.define`)","kind":"module","name":"isDefinedCustomElement","params":[{"type":{"names":["Element"]},"description":"the element to check","name":"el"}],"returns":[{"type":{"names":["Boolean"]},"description":"whether the element is a custom element or not"}],"longname":"module:isDefinedCustomElement","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/isDefinedCustomElement.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/isDefinedCustomElement.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isDefinedCustomElement.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/isDefinedCustomElement","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/isDefinedCustomElement.ts').default","esPath":"@instructure/ui-dom-utils/es/isDefinedCustomElement","themePath":"packages/ui-dom-utils/src/isDefinedCustomElement.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isDefinedCustomElement.ts","id":"isDefinedCustomElement","title":"isDefinedCustomElement"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Check whether an element is a defined custom element. (if it was defined with `customElements.define`)\n * @module isDefinedCustomElement\n * @param { Element } el - the element to check\n * @return { Boolean } whether the element is a custom element or not\n */","meta":{"filename":"fx0ch0e90rj6oh1evvrx78.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nCheck whether an element is a defined custom element. (if it was defined with `customElements.define`)","kind":"module","name":"isDefinedCustomElement","params":[{"type":{"names":["Element"]},"description":"the element to check","name":"el"}],"returns":[{"type":{"names":["Boolean"]},"description":"whether the element is a custom element or not"}],"longname":"module:isDefinedCustomElement","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/isDefinedCustomElement.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/isDefinedCustomElement.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isDefinedCustomElement.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/isDefinedCustomElement","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/isDefinedCustomElement.ts').default","esPath":"@instructure/ui-dom-utils/es/isDefinedCustomElement","themePath":"packages/ui-dom-utils/src/isDefinedCustomElement.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isDefinedCustomElement.ts","id":"isDefinedCustomElement","title":"isDefinedCustomElement"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/isValid.json b/pr-preview/pr-1812/docs/isValid.json
index 85e9bf4f72..8ed7df12d7 100644
--- a/pr-preview/pr-1812/docs/isValid.json
+++ b/pr-preview/pr-1812/docs/isValid.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * check if a string is a valid color\n * @module isValid\n * @param {String} color\n * @returns {Boolean} true if the string is a valid color\n */","meta":{"filename":"xvm1uitzt8lbqj5of745b5.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"check if a string is a valid color","kind":"module","name":"isValid","params":[{"type":{"names":["String"]},"name":"color"}],"returns":[{"type":{"names":["Boolean"]},"description":"true if the string is a valid color"}],"longname":"module:isValid","undocumented":false,"category":"utilities","relativePath":"packages/ui-color-utils/src/isValid.ts","extension":".ts","srcPath":"packages/ui-color-utils/src/isValid.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/isValid.ts","packageName":"@instructure/ui-color-utils","requirePath":"@instructure/ui-color-utils/lib/isValid","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-color-utils/src/isValid.ts').default","esPath":"@instructure/ui-color-utils/es/isValid","themePath":"packages/ui-color-utils/src/isValid.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/isValid.ts","id":"isValid","title":"isValid"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * check if a string is a valid color\n * @module isValid\n * @param {String} color\n * @returns {Boolean} true if the string is a valid color\n */","meta":{"filename":"mjpla4bigrrgraxaqf49dw.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"check if a string is a valid color","kind":"module","name":"isValid","params":[{"type":{"names":["String"]},"name":"color"}],"returns":[{"type":{"names":["Boolean"]},"description":"true if the string is a valid color"}],"longname":"module:isValid","undocumented":false,"category":"utilities","relativePath":"packages/ui-color-utils/src/isValid.ts","extension":".ts","srcPath":"packages/ui-color-utils/src/isValid.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/isValid.ts","packageName":"@instructure/ui-color-utils","requirePath":"@instructure/ui-color-utils/lib/isValid","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-color-utils/src/isValid.ts').default","esPath":"@instructure/ui-color-utils/es/isValid","themePath":"packages/ui-color-utils/src/isValid.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/isValid.ts","id":"isValid","title":"isValid"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/isVisible.json b/pr-preview/pr-1812/docs/isVisible.json
index 2961260125..8b365e705d 100644
--- a/pr-preview/pr-1812/docs/isVisible.json
+++ b/pr-preview/pr-1812/docs/isVisible.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Determine if an element is visible.\n *\n * @module isVisible\n * @param { Node | Window | React.ReactElement | React.Component | function | null } el - component or DOM node\n * @param {boolean} recursive - by default all parent elements are checked\n * recursively to accurately determine visibility. setting this to `false`\n * will determine visibility based only on the styles of the given node.\n * @returns {boolean} if the element is visible\n */","meta":{"filename":"7hzoufulwloegdrlqwd1p.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nDetermine if an element is visible.","kind":"module","name":"isVisible","params":[{"type":{"names":["Node","Window","React.ReactElement","React.Component","function","null"]},"description":"component or DOM node","name":"el"},{"type":{"names":["boolean"]},"description":"by default all parent elements are checked\nrecursively to accurately determine visibility. setting this to `false`\nwill determine visibility based only on the styles of the given node.","name":"recursive"}],"returns":[{"type":{"names":["boolean"]},"description":"if the element is visible"}],"longname":"module:isVisible","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/isVisible.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/isVisible.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isVisible.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/isVisible","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/isVisible.ts').default","esPath":"@instructure/ui-dom-utils/es/isVisible","themePath":"packages/ui-dom-utils/src/isVisible.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isVisible.ts","id":"isVisible","title":"isVisible"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Determine if an element is visible.\n *\n * @module isVisible\n * @param { Node | Window | React.ReactElement | React.Component | function | null } el - component or DOM node\n * @param {boolean} recursive - by default all parent elements are checked\n * recursively to accurately determine visibility. setting this to `false`\n * will determine visibility based only on the styles of the given node.\n * @returns {boolean} if the element is visible\n */","meta":{"filename":"nam6tpu6qcbfzcz6rhk5i.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nDetermine if an element is visible.","kind":"module","name":"isVisible","params":[{"type":{"names":["Node","Window","React.ReactElement","React.Component","function","null"]},"description":"component or DOM node","name":"el"},{"type":{"names":["boolean"]},"description":"by default all parent elements are checked\nrecursively to accurately determine visibility. setting this to `false`\nwill determine visibility based only on the styles of the given node.","name":"recursive"}],"returns":[{"type":{"names":["boolean"]},"description":"if the element is visible"}],"longname":"module:isVisible","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/isVisible.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/isVisible.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isVisible.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/isVisible","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/isVisible.ts').default","esPath":"@instructure/ui-dom-utils/es/isVisible","themePath":"packages/ui-dom-utils/src/isVisible.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/isVisible.ts","id":"isVisible","title":"isVisible"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/jsonToMediaQuery.json b/pr-preview/pr-1812/docs/jsonToMediaQuery.json
index ed79dc76ce..dfd61de623 100644
--- a/pr-preview/pr-1812/docs/jsonToMediaQuery.json
+++ b/pr-preview/pr-1812/docs/jsonToMediaQuery.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/layout\n * ---\n *\n * Given a valid json query object, converts it to a standard media query\n * string. Valid queries should be an object consisting of condition:breakpoint\n * pairs with the following condition types `minWidth`, `maxWidth`, `minHeight`,\n * or `maxHeight` where breakpoint value is either a string or a number.\n *\n * Example input\n * ```js-code\n * { minWidth: 350, maxWidth: 600 }\n * ```\n * Example output\n * ```js-code\n * '(min-width: 350px) and (max-Width: 600px)'\n * ```\n * @module jsonToMediaQuery\n * @param {Object} query - an object consisting of the query type and value\n * @param {Document | Window | Node | React.ReactElement | React.Component} el - component or DOM node which will be passed to the pixel conversion if the unit type is `em`\n * @returns {string} media query string\n */","meta":{"filename":"4g70vvuve11hzf397qzys.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nGiven a valid json query object, converts it to a standard media query\nstring. Valid queries should be an object consisting of condition:breakpoint\npairs with the following condition types `minWidth`, `maxWidth`, `minHeight`,\nor `maxHeight` where breakpoint value is either a string or a number.\n\nExample input\n```js-code\n{ minWidth: 350, maxWidth: 600 }\n```\nExample output\n```js-code\n'(min-width: 350px) and (max-Width: 600px)'\n```","kind":"module","name":"jsonToMediaQuery","params":[{"type":{"names":["Object"]},"description":"an object consisting of the query type and value","name":"query"},{"type":{"names":["Document","Window","Node","React.ReactElement","React.Component"]},"description":"component or DOM node which will be passed to the pixel conversion if the unit type is `em`","name":"el"}],"returns":[{"type":{"names":["string"]},"description":"media query string"}],"longname":"module:jsonToMediaQuery","undocumented":false,"category":"utilities/layout","relativePath":"packages/ui-responsive/src/jsonToMediaQuery.ts","extension":".ts","srcPath":"packages/ui-responsive/src/jsonToMediaQuery.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-responsive/src/jsonToMediaQuery.ts","packageName":"@instructure/ui-responsive","requirePath":"@instructure/ui-responsive/lib/jsonToMediaQuery","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-responsive/src/jsonToMediaQuery.ts').default","esPath":"@instructure/ui-responsive/es/jsonToMediaQuery","themePath":"packages/ui-responsive/src/jsonToMediaQuery.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-responsive/src/jsonToMediaQuery.ts","id":"jsonToMediaQuery","title":"jsonToMediaQuery"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/layout\n * ---\n *\n * Given a valid json query object, converts it to a standard media query\n * string. Valid queries should be an object consisting of condition:breakpoint\n * pairs with the following condition types `minWidth`, `maxWidth`, `minHeight`,\n * or `maxHeight` where breakpoint value is either a string or a number.\n *\n * Example input\n * ```js-code\n * { minWidth: 350, maxWidth: 600 }\n * ```\n * Example output\n * ```js-code\n * '(min-width: 350px) and (max-Width: 600px)'\n * ```\n * @module jsonToMediaQuery\n * @param {Object} query - an object consisting of the query type and value\n * @param {Document | Window | Node | React.ReactElement | React.Component} el - component or DOM node which will be passed to the pixel conversion if the unit type is `em`\n * @returns {string} media query string\n */","meta":{"filename":"9xfehetcm2sccli7fkfcoi.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nGiven a valid json query object, converts it to a standard media query\nstring. Valid queries should be an object consisting of condition:breakpoint\npairs with the following condition types `minWidth`, `maxWidth`, `minHeight`,\nor `maxHeight` where breakpoint value is either a string or a number.\n\nExample input\n```js-code\n{ minWidth: 350, maxWidth: 600 }\n```\nExample output\n```js-code\n'(min-width: 350px) and (max-Width: 600px)'\n```","kind":"module","name":"jsonToMediaQuery","params":[{"type":{"names":["Object"]},"description":"an object consisting of the query type and value","name":"query"},{"type":{"names":["Document","Window","Node","React.ReactElement","React.Component"]},"description":"component or DOM node which will be passed to the pixel conversion if the unit type is `em`","name":"el"}],"returns":[{"type":{"names":["string"]},"description":"media query string"}],"longname":"module:jsonToMediaQuery","undocumented":false,"category":"utilities/layout","relativePath":"packages/ui-responsive/src/jsonToMediaQuery.ts","extension":".ts","srcPath":"packages/ui-responsive/src/jsonToMediaQuery.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-responsive/src/jsonToMediaQuery.ts","packageName":"@instructure/ui-responsive","requirePath":"@instructure/ui-responsive/lib/jsonToMediaQuery","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-responsive/src/jsonToMediaQuery.ts').default","esPath":"@instructure/ui-responsive/es/jsonToMediaQuery","themePath":"packages/ui-responsive/src/jsonToMediaQuery.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-responsive/src/jsonToMediaQuery.ts","id":"jsonToMediaQuery","title":"jsonToMediaQuery"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/lighten.json b/pr-preview/pr-1812/docs/lighten.json
index e5aa533942..51b8b4910f 100644
--- a/pr-preview/pr-1812/docs/lighten.json
+++ b/pr-preview/pr-1812/docs/lighten.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * lighten a color\n * @module lighten\n * @param {String} color\n * @param {Number} percent\n * @returns {String} color as rgb string\n */","meta":{"filename":"vhqnbffyf78zu115shfkzf.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"lighten a color","kind":"module","name":"lighten","params":[{"type":{"names":["String"]},"name":"color"},{"type":{"names":["Number"]},"name":"percent"}],"returns":[{"type":{"names":["String"]},"description":"color as rgb string"}],"longname":"module:lighten","undocumented":false,"category":"utilities","relativePath":"packages/ui-color-utils/src/lighten.ts","extension":".ts","srcPath":"packages/ui-color-utils/src/lighten.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/lighten.ts","packageName":"@instructure/ui-color-utils","requirePath":"@instructure/ui-color-utils/lib/lighten","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-color-utils/src/lighten.ts').default","esPath":"@instructure/ui-color-utils/es/lighten","themePath":"packages/ui-color-utils/src/lighten.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/lighten.ts","id":"lighten","title":"lighten"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * lighten a color\n * @module lighten\n * @param {String} color\n * @param {Number} percent\n * @returns {String} color as rgb string\n */","meta":{"filename":"60f4y2ao2n7io2bjmyw2c.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"lighten a color","kind":"module","name":"lighten","params":[{"type":{"names":["String"]},"name":"color"},{"type":{"names":["Number"]},"name":"percent"}],"returns":[{"type":{"names":["String"]},"description":"color as rgb string"}],"longname":"module:lighten","undocumented":false,"category":"utilities","relativePath":"packages/ui-color-utils/src/lighten.ts","extension":".ts","srcPath":"packages/ui-color-utils/src/lighten.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/lighten.ts","packageName":"@instructure/ui-color-utils","requirePath":"@instructure/ui-color-utils/lib/lighten","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-color-utils/src/lighten.ts').default","esPath":"@instructure/ui-color-utils/es/lighten","themePath":"packages/ui-color-utils/src/lighten.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/lighten.ts","id":"lighten","title":"lighten"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/makeRequirable.json b/pr-preview/pr-1812/docs/makeRequirable.json
index 7a9ba753fb..4c06abccdb 100644
--- a/pr-preview/pr-1812/docs/makeRequirable.json
+++ b/pr-preview/pr-1812/docs/makeRequirable.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/PropTypes\n * ---\n * Given a validator function, extends the validator functionality to also\n * ensure that the prop has been provided if `.isRequired` is specified.\n *\n * ```js-code\n * function validator (props, propName, componentName) {\n * const propValue = props[propName]\n * if (propValue === 'purple') {\n * return new Error(`Purple is not accepted in ${componentName}!`)\n * }\n * }\n *\n * validator.isRequired = makeRequirable(validator)\n * ```\n * @module makeRequirable\n * @param {function} validator - a validator function\n * @returns {function} A function that returns Error if designated prop is not provided\n */","meta":{"filename":"93ck8fsefgdc7vttaiscmm.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Given a validator function, extends the validator functionality to also\nensure that the prop has been provided if `.isRequired` is specified.\n\n```js-code\nfunction validator (props, propName, componentName) {\n const propValue = props[propName]\n if (propValue === 'purple') {\n return new Error(`Purple is not accepted in ${componentName}!`)\n }\n}\n\nvalidator.isRequired = makeRequirable(validator)\n```","kind":"module","name":"makeRequirable","params":[{"type":{"names":["function"]},"description":"a validator function","name":"validator"}],"returns":[{"type":{"names":["function"]},"description":"A function that returns Error if designated prop is not provided"}],"longname":"module:makeRequirable","undocumented":false,"category":"utilities/PropTypes","relativePath":"packages/ui-prop-types/src/makeRequirable.ts","extension":".ts","srcPath":"packages/ui-prop-types/src/makeRequirable.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-prop-types/src/makeRequirable.ts","packageName":"@instructure/ui-prop-types","requirePath":"@instructure/ui-prop-types/lib/makeRequirable","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-prop-types/src/makeRequirable.ts').default","esPath":"@instructure/ui-prop-types/es/makeRequirable","themePath":"packages/ui-prop-types/src/makeRequirable.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-prop-types/src/makeRequirable.ts","id":"makeRequirable","title":"makeRequirable"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/PropTypes\n * ---\n * Given a validator function, extends the validator functionality to also\n * ensure that the prop has been provided if `.isRequired` is specified.\n *\n * ```js-code\n * function validator (props, propName, componentName) {\n * const propValue = props[propName]\n * if (propValue === 'purple') {\n * return new Error(`Purple is not accepted in ${componentName}!`)\n * }\n * }\n *\n * validator.isRequired = makeRequirable(validator)\n * ```\n * @module makeRequirable\n * @param {function} validator - a validator function\n * @returns {function} A function that returns Error if designated prop is not provided\n */","meta":{"filename":"le17sv9jiyvancy5eqqej.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Given a validator function, extends the validator functionality to also\nensure that the prop has been provided if `.isRequired` is specified.\n\n```js-code\nfunction validator (props, propName, componentName) {\n const propValue = props[propName]\n if (propValue === 'purple') {\n return new Error(`Purple is not accepted in ${componentName}!`)\n }\n}\n\nvalidator.isRequired = makeRequirable(validator)\n```","kind":"module","name":"makeRequirable","params":[{"type":{"names":["function"]},"description":"a validator function","name":"validator"}],"returns":[{"type":{"names":["function"]},"description":"A function that returns Error if designated prop is not provided"}],"longname":"module:makeRequirable","undocumented":false,"category":"utilities/PropTypes","relativePath":"packages/ui-prop-types/src/makeRequirable.ts","extension":".ts","srcPath":"packages/ui-prop-types/src/makeRequirable.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-prop-types/src/makeRequirable.ts","packageName":"@instructure/ui-prop-types","requirePath":"@instructure/ui-prop-types/lib/makeRequirable","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-prop-types/src/makeRequirable.ts').default","esPath":"@instructure/ui-prop-types/es/makeRequirable","themePath":"packages/ui-prop-types/src/makeRequirable.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-prop-types/src/makeRequirable.ts","id":"makeRequirable","title":"makeRequirable"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/makeThemeVars.json b/pr-preview/pr-1812/docs/makeThemeVars.json
index 76c5a57a39..aa71b75c7a 100644
--- a/pr-preview/pr-1812/docs/makeThemeVars.json
+++ b/pr-preview/pr-1812/docs/makeThemeVars.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/themes\n * ---\n * Given a prefix and a theme object, prepends the object keys with\n * the designated prefix and camel cases the concatenation.\n * @module makeThemeVars\n * @param {String} prefix - a string to prepend to object keys\n * @param {Object} vars - an object\n * @returns {Object} a modified object with prefixed keys\n */","meta":{"filename":"lllqcd9tpaiziet0t5x9n.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Given a prefix and a theme object, prepends the object keys with\nthe designated prefix and camel cases the concatenation.","kind":"module","name":"makeThemeVars","params":[{"type":{"names":["String"]},"description":"a string to prepend to object keys","name":"prefix"},{"type":{"names":["Object"]},"description":"an object","name":"vars"}],"returns":[{"type":{"names":["Object"]},"description":"a modified object with prefixed keys"}],"longname":"module:makeThemeVars","undocumented":false,"category":"utilities/themes","relativePath":"packages/emotion/src/styleUtils/makeThemeVars.ts","extension":".ts","srcPath":"packages/emotion/src/styleUtils/makeThemeVars.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/makeThemeVars.ts","packageName":"@instructure/emotion","requirePath":"@instructure/emotion/lib/styleUtils/makeThemeVars","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/emotion/src/styleUtils/makeThemeVars.ts').default","esPath":"@instructure/emotion/es/styleUtils/makeThemeVars","themePath":"packages/emotion/src/styleUtils/makeThemeVars.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/makeThemeVars.ts","id":"makeThemeVars","title":"makeThemeVars"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/themes\n * ---\n * Given a prefix and a theme object, prepends the object keys with\n * the designated prefix and camel cases the concatenation.\n * @module makeThemeVars\n * @param {String} prefix - a string to prepend to object keys\n * @param {Object} vars - an object\n * @returns {Object} a modified object with prefixed keys\n */","meta":{"filename":"m5vv25785c81y9cg2j7rji.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Given a prefix and a theme object, prepends the object keys with\nthe designated prefix and camel cases the concatenation.","kind":"module","name":"makeThemeVars","params":[{"type":{"names":["String"]},"description":"a string to prepend to object keys","name":"prefix"},{"type":{"names":["Object"]},"description":"an object","name":"vars"}],"returns":[{"type":{"names":["Object"]},"description":"a modified object with prefixed keys"}],"longname":"module:makeThemeVars","undocumented":false,"category":"utilities/themes","relativePath":"packages/emotion/src/styleUtils/makeThemeVars.ts","extension":".ts","srcPath":"packages/emotion/src/styleUtils/makeThemeVars.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/makeThemeVars.ts","packageName":"@instructure/emotion","requirePath":"@instructure/emotion/lib/styleUtils/makeThemeVars","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/emotion/src/styleUtils/makeThemeVars.ts').default","esPath":"@instructure/emotion/es/styleUtils/makeThemeVars","themePath":"packages/emotion/src/styleUtils/makeThemeVars.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/makeThemeVars.ts","id":"makeThemeVars","title":"makeThemeVars"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/matchComponentTypes.json b/pr-preview/pr-1812/docs/matchComponentTypes.json
index afa60e932a..868e042249 100644
--- a/pr-preview/pr-1812/docs/matchComponentTypes.json
+++ b/pr-preview/pr-1812/docs/matchComponentTypes.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * Check if a React component instance (React element) matches one of the\n * specified types.\n *\n * @module matchComponentTypes\n * @param {ReactElement|any} componentInstance\n * @param {Array} types an array of React components\n * @returns {Boolean} true if the component matches at least one of the types\n */","meta":{"filename":"wnffcf203m73m621i3bwp.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Check if a React component instance (React element) matches one of the\nspecified types.","kind":"module","name":"matchComponentTypes","params":[{"type":{"names":["ReactElement","any"]},"name":"componentInstance"},{"type":{"names":["Array"]},"description":"an array of React components","name":"types"}],"returns":[{"type":{"names":["Boolean"]},"description":"true if the component matches at least one of the types"}],"longname":"module:matchComponentTypes","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/matchComponentTypes.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/matchComponentTypes.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/matchComponentTypes.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/matchComponentTypes","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/matchComponentTypes.ts').default","esPath":"@instructure/ui-react-utils/es/matchComponentTypes","themePath":"packages/ui-react-utils/src/matchComponentTypes.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/matchComponentTypes.ts","id":"matchComponentTypes","title":"matchComponentTypes"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * Check if a React component instance (React element) matches one of the\n * specified types.\n *\n * @module matchComponentTypes\n * @param {ReactElement|any} componentInstance\n * @param {Array} types an array of React components\n * @returns {Boolean} true if the component matches at least one of the types\n */","meta":{"filename":"1pnpz2uhvvwj39gfrq0h4pn.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Check if a React component instance (React element) matches one of the\nspecified types.","kind":"module","name":"matchComponentTypes","params":[{"type":{"names":["ReactElement","any"]},"name":"componentInstance"},{"type":{"names":["Array"]},"description":"an array of React components","name":"types"}],"returns":[{"type":{"names":["Boolean"]},"description":"true if the component matches at least one of the types"}],"longname":"module:matchComponentTypes","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/matchComponentTypes.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/matchComponentTypes.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/matchComponentTypes.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/matchComponentTypes","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/matchComponentTypes.ts').default","esPath":"@instructure/ui-react-utils/es/matchComponentTypes","themePath":"packages/ui-react-utils/src/matchComponentTypes.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/matchComponentTypes.ts","id":"matchComponentTypes","title":"matchComponentTypes"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/matchMedia.json b/pr-preview/pr-1812/docs/matchMedia.json
index 7573739e74..9c2ad312f6 100644
--- a/pr-preview/pr-1812/docs/matchMedia.json
+++ b/pr-preview/pr-1812/docs/matchMedia.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Wrapper function for window.matchMedia\n *\n * see https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia\n * @module matchMedia\n * @param {string} query - media query string\n * @param { Node | Window | React.ReactElement | React.Component | function } el - component or DOM node\n * @returns {Object} a media query list object\n */","meta":{"filename":"8y9hcgipu7u9s7q9j8xy5n.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nWrapper function for window.matchMedia\n\nsee https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia","kind":"module","name":"matchMedia","params":[{"type":{"names":["string"]},"description":"media query string","name":"query"},{"type":{"names":["Node","Window","React.ReactElement","React.Component","function"]},"description":"component or DOM node","name":"el"}],"returns":[{"type":{"names":["Object"]},"description":"a media query list object"}],"longname":"module:matchMedia","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/matchMedia.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/matchMedia.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/matchMedia.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/matchMedia","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/matchMedia.ts').default","esPath":"@instructure/ui-dom-utils/es/matchMedia","themePath":"packages/ui-dom-utils/src/matchMedia.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/matchMedia.ts","id":"matchMedia","title":"matchMedia"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Wrapper function for window.matchMedia\n *\n * see https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia\n * @module matchMedia\n * @param {string} query - media query string\n * @param { Node | Window | React.ReactElement | React.Component | function } el - component or DOM node\n * @returns {Object} a media query list object\n */","meta":{"filename":"p98rq0yfeo77ndp895xci.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nWrapper function for window.matchMedia\n\nsee https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia","kind":"module","name":"matchMedia","params":[{"type":{"names":["string"]},"description":"media query string","name":"query"},{"type":{"names":["Node","Window","React.ReactElement","React.Component","function"]},"description":"component or DOM node","name":"el"}],"returns":[{"type":{"names":["Object"]},"description":"a media query list object"}],"longname":"module:matchMedia","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/matchMedia.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/matchMedia.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/matchMedia.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/matchMedia","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/matchMedia.ts').default","esPath":"@instructure/ui-dom-utils/es/matchMedia","themePath":"packages/ui-dom-utils/src/matchMedia.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/matchMedia.ts","id":"matchMedia","title":"matchMedia"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/mergeDeep.json b/pr-preview/pr-1812/docs/mergeDeep.json
index ad65702391..e472eaa010 100644
--- a/pr-preview/pr-1812/docs/mergeDeep.json
+++ b/pr-preview/pr-1812/docs/mergeDeep.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Deep merge N objects into a single result object.\n * Merging creates a new object, so that none of the arguments are modified.\n *\n * @module mergeDeep\n *\n * @param {Object} args objects to merge\n * @returns {Object} a new object with items from all arguments\n */","meta":{"filename":"fitqa6abdg9efdgdm972md.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Deep merge N objects into a single result object.\nMerging creates a new object, so that none of the arguments are modified.","kind":"module","name":"mergeDeep","params":[{"type":{"names":["Object"]},"description":"objects to merge","name":"args"}],"returns":[{"type":{"names":["Object"]},"description":"a new object with items from all arguments"}],"longname":"module:mergeDeep","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/mergeDeep.ts","extension":".ts","srcPath":"packages/ui-utils/src/mergeDeep.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/mergeDeep.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/mergeDeep","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/mergeDeep.ts').default","esPath":"@instructure/ui-utils/es/mergeDeep","themePath":"packages/ui-utils/src/mergeDeep.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/mergeDeep.ts","id":"mergeDeep","title":"mergeDeep"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Deep merge N objects into a single result object.\n * Merging creates a new object, so that none of the arguments are modified.\n *\n * @module mergeDeep\n *\n * @param {Object} args objects to merge\n * @returns {Object} a new object with items from all arguments\n */","meta":{"filename":"en66plztqians0ziej0jzg.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Deep merge N objects into a single result object.\nMerging creates a new object, so that none of the arguments are modified.","kind":"module","name":"mergeDeep","params":[{"type":{"names":["Object"]},"description":"objects to merge","name":"args"}],"returns":[{"type":{"names":["Object"]},"description":"a new object with items from all arguments"}],"longname":"module:mergeDeep","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/mergeDeep.ts","extension":".ts","srcPath":"packages/ui-utils/src/mergeDeep.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/mergeDeep.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/mergeDeep","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/mergeDeep.ts').default","esPath":"@instructure/ui-utils/es/mergeDeep","themePath":"packages/ui-utils/src/mergeDeep.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/mergeDeep.ts","id":"mergeDeep","title":"mergeDeep"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/mirrorPlacement.json b/pr-preview/pr-1812/docs/mirrorPlacement.json
index 8b532ea573..251b0d0b63 100644
--- a/pr-preview/pr-1812/docs/mirrorPlacement.json
+++ b/pr-preview/pr-1812/docs/mirrorPlacement.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/position\n * ---\n * Given a string or array of one or two placement values, mirrors the placement\n * vertically or horizontally based on the first value.\n *\n * Examples\n * ```js-code\n * mirrorPlacement('top start') // input\n * ['bottom', 'start'] // output\n *\n * mirrorPlacement('top start', ' ') // input\n * 'bottom start' //output\n * ```\n *\n * @param {string|Array} placement - a string of the form '`
` ``' or array [``, ``]\n * @param {string} delimiter - when provided, a value with which the result array will be joined\n * @returns {string|Array} - an array of values or, if the delimiter was supplied, a string of\n * delimiter separated values\n *\n * @module mirrorPlacement\n **/","meta":{"filename":"fl694lw5uampjs9ia0zsx8.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Given a string or array of one or two placement values, mirrors the placement\nvertically or horizontally based on the first value.\n\nExamples\n```js-code\nmirrorPlacement('top start') // input\n['bottom', 'start'] // output\n\nmirrorPlacement('top start', ' ') // input\n'bottom start' //output\n```","params":[{"type":{"names":["string","Array"]},"description":"a string of the form '`` ``' or array [``, ``]","name":"placement"},{"type":{"names":["string"]},"description":"when provided, a value with which the result array will be joined","name":"delimiter"}],"returns":[{"type":{"names":["string","Array"]},"description":"- an array of values or, if the delimiter was supplied, a string of\n delimiter separated values"}],"kind":"module","name":"mirrorPlacement","longname":"module:mirrorPlacement","undocumented":false,"category":"utilities/position","relativePath":"packages/ui-position/src/mirrorPlacement.ts","extension":".ts","srcPath":"packages/ui-position/src/mirrorPlacement.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-position/src/mirrorPlacement.ts","packageName":"@instructure/ui-position","requirePath":"@instructure/ui-position/lib/mirrorPlacement","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-position/src/mirrorPlacement.ts').default","esPath":"@instructure/ui-position/es/mirrorPlacement","themePath":"packages/ui-position/src/mirrorPlacement.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-position/src/mirrorPlacement.ts","id":"mirrorPlacement","title":"mirrorPlacement"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/position\n * ---\n * Given a string or array of one or two placement values, mirrors the placement\n * vertically or horizontally based on the first value.\n *\n * Examples\n * ```js-code\n * mirrorPlacement('top start') // input\n * ['bottom', 'start'] // output\n *\n * mirrorPlacement('top start', ' ') // input\n * 'bottom start' //output\n * ```\n *\n * @param {string|Array} placement - a string of the form '`` ``' or array [``, ``]\n * @param {string} delimiter - when provided, a value with which the result array will be joined\n * @returns {string|Array} - an array of values or, if the delimiter was supplied, a string of\n * delimiter separated values\n *\n * @module mirrorPlacement\n **/","meta":{"filename":"mn3eutpa0bm822kcgazxk.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Given a string or array of one or two placement values, mirrors the placement\nvertically or horizontally based on the first value.\n\nExamples\n```js-code\nmirrorPlacement('top start') // input\n['bottom', 'start'] // output\n\nmirrorPlacement('top start', ' ') // input\n'bottom start' //output\n```","params":[{"type":{"names":["string","Array"]},"description":"a string of the form '`` ``' or array [``, ``]","name":"placement"},{"type":{"names":["string"]},"description":"when provided, a value with which the result array will be joined","name":"delimiter"}],"returns":[{"type":{"names":["string","Array"]},"description":"- an array of values or, if the delimiter was supplied, a string of\n delimiter separated values"}],"kind":"module","name":"mirrorPlacement","longname":"module:mirrorPlacement","undocumented":false,"category":"utilities/position","relativePath":"packages/ui-position/src/mirrorPlacement.ts","extension":".ts","srcPath":"packages/ui-position/src/mirrorPlacement.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-position/src/mirrorPlacement.ts","packageName":"@instructure/ui-position","requirePath":"@instructure/ui-position/lib/mirrorPlacement","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-position/src/mirrorPlacement.ts').default","esPath":"@instructure/ui-position/es/mirrorPlacement","themePath":"packages/ui-position/src/mirrorPlacement.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-position/src/mirrorPlacement.ts","id":"mirrorPlacement","title":"mirrorPlacement"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/mirrorShorthand.json b/pr-preview/pr-1812/docs/mirrorShorthand.json
index dada9bc6df..f10acea660 100644
--- a/pr-preview/pr-1812/docs/mirrorShorthand.json
+++ b/pr-preview/pr-1812/docs/mirrorShorthand.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/themes\n * ---\n * @module mirrorShorthand\n */","meta":{"filename":"57sy9vk9yqa64qfk6y33cc.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"","kind":"module","name":"mirrorShorthand","longname":"module:mirrorShorthand","undocumented":false,"category":"utilities/themes","relativePath":"packages/emotion/src/styleUtils/mirrorShorthand.ts","extension":".ts","srcPath":"packages/emotion/src/styleUtils/mirrorShorthand.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/mirrorShorthand.ts","packageName":"@instructure/emotion","requirePath":"@instructure/emotion/lib/styleUtils/mirrorShorthand","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/emotion/src/styleUtils/mirrorShorthand.ts').default","esPath":"@instructure/emotion/es/styleUtils/mirrorShorthand","themePath":"packages/emotion/src/styleUtils/mirrorShorthand.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/mirrorShorthand.ts","id":"mirrorShorthand","title":"mirrorShorthand"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/themes\n * ---\n * @module mirrorShorthand\n */","meta":{"filename":"rogdkaq9jql04v1ny029d7a.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"","kind":"module","name":"mirrorShorthand","longname":"module:mirrorShorthand","undocumented":false,"category":"utilities/themes","relativePath":"packages/emotion/src/styleUtils/mirrorShorthand.ts","extension":".ts","srcPath":"packages/emotion/src/styleUtils/mirrorShorthand.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/mirrorShorthand.ts","packageName":"@instructure/emotion","requirePath":"@instructure/emotion/lib/styleUtils/mirrorShorthand","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/emotion/src/styleUtils/mirrorShorthand.ts').default","esPath":"@instructure/emotion/es/styleUtils/mirrorShorthand","themePath":"packages/emotion/src/styleUtils/mirrorShorthand.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/styleUtils/mirrorShorthand.ts","id":"mirrorShorthand","title":"mirrorShorthand"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/ms.json b/pr-preview/pr-1812/docs/ms.json
index 7f8b90e438..bb362195ef 100644
--- a/pr-preview/pr-1812/docs/ms.json
+++ b/pr-preview/pr-1812/docs/ms.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Converts a unit value time combination (s, ms) to a number representing ms\n *\n * @module ms\n *\n * Example inputs:\n * - '100s'\n * - '20ms'\n *\n * @param {String|Number} val\n * @returns {Number} Returns numerical representation of milliseconds\n */","meta":{"filename":"lpeox5nn2o6wt999nn74o.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Converts a unit value time combination (s, ms) to a number representing ms","kind":"module","name":"ms\n\nExample inputs:\n - '100s'\n - '20ms'","params":[{"type":{"names":["String","Number"]},"name":"val"}],"returns":[{"type":{"names":["Number"]},"description":"Returns numerical representation of milliseconds"}],"longname":"ms\n\nExample inputs:\n - '100s'\n - '20ms'module:","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/ms.ts","extension":".ts","srcPath":"packages/ui-utils/src/ms.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/ms.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/ms","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/ms.ts').default","esPath":"@instructure/ui-utils/es/ms","themePath":"packages/ui-utils/src/ms.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/ms.ts","id":"ms","title":"ms"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Converts a unit value time combination (s, ms) to a number representing ms\n *\n * @module ms\n *\n * Example inputs:\n * - '100s'\n * - '20ms'\n *\n * @param {String|Number} val\n * @returns {Number} Returns numerical representation of milliseconds\n */","meta":{"filename":"km4gnd3op5qylx6cy09d6i.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Converts a unit value time combination (s, ms) to a number representing ms","kind":"module","name":"ms\n\nExample inputs:\n - '100s'\n - '20ms'","params":[{"type":{"names":["String","Number"]},"name":"val"}],"returns":[{"type":{"names":["Number"]},"description":"Returns numerical representation of milliseconds"}],"longname":"ms\n\nExample inputs:\n - '100s'\n - '20ms'module:","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/ms.ts","extension":".ts","srcPath":"packages/ui-utils/src/ms.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/ms.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/ms","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/ms.ts').default","esPath":"@instructure/ui-utils/es/ms","themePath":"packages/ui-utils/src/ms.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/ms.ts","id":"ms","title":"ms"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/omitProps.json b/pr-preview/pr-1812/docs/omitProps.json
index 9cd250735c..846f3c02b0 100644
--- a/pr-preview/pr-1812/docs/omitProps.json
+++ b/pr-preview/pr-1812/docs/omitProps.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * Return an object with the remaining props after the given props are omitted.\n *\n * Automatically excludes the following props:\n * `theme`, `children`, `className`, `style`, `styles`, `makeStyles`,\n * `themeOverride`, `deterministicId`\n * @module omitProps\n * @param props The object to process\n * @param propsToOmit list disallowed prop keys or an object whose\n * keys will be omitted. If not specified the automatically excluded\n * props will be removed.\n * @param exclude an optional array of disallowed prop names to omit\n * @returns props object without the excluded props\n * @module omitProps\n */","meta":{"filename":"d8iu91iy6dn9y24m9u2qxs.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Return an object with the remaining props after the given props are omitted.\n\nAutomatically excludes the following props:\n`theme`, `children`, `className`, `style`, `styles`, `makeStyles`,\n`themeOverride`, `deterministicId`","kind":"module","name":"omitProps","params":[{"description":"The object to process","name":"props"},{"description":"list disallowed prop keys or an object whose\n keys will be omitted. If not specified the automatically excluded\n props will be removed.","name":"propsToOmit"},{"description":"an optional array of disallowed prop names to omit","name":"exclude"}],"returns":[{"description":"props object without the excluded props"}],"longname":"module:omitProps","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/omitProps.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/omitProps.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/omitProps.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/omitProps","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/omitProps.ts').default","esPath":"@instructure/ui-react-utils/es/omitProps","themePath":"packages/ui-react-utils/src/omitProps.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/omitProps.ts","id":"omitProps","title":"omitProps"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * Return an object with the remaining props after the given props are omitted.\n *\n * Automatically excludes the following props:\n * `theme`, `children`, `className`, `style`, `styles`, `makeStyles`,\n * `themeOverride`, `deterministicId`\n * @module omitProps\n * @param props The object to process\n * @param propsToOmit list disallowed prop keys or an object whose\n * keys will be omitted. If not specified the automatically excluded\n * props will be removed.\n * @param exclude an optional array of disallowed prop names to omit\n * @returns props object without the excluded props\n * @module omitProps\n */","meta":{"filename":"r1avh358f29hugh8bnaarw.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Return an object with the remaining props after the given props are omitted.\n\nAutomatically excludes the following props:\n`theme`, `children`, `className`, `style`, `styles`, `makeStyles`,\n`themeOverride`, `deterministicId`","kind":"module","name":"omitProps","params":[{"description":"The object to process","name":"props"},{"description":"list disallowed prop keys or an object whose\n keys will be omitted. If not specified the automatically excluded\n props will be removed.","name":"propsToOmit"},{"description":"an optional array of disallowed prop names to omit","name":"exclude"}],"returns":[{"description":"props object without the excluded props"}],"longname":"module:omitProps","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/omitProps.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/omitProps.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/omitProps.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/omitProps","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/omitProps.ts').default","esPath":"@instructure/ui-react-utils/es/omitProps","themePath":"packages/ui-react-utils/src/omitProps.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/omitProps.ts","id":"omitProps","title":"omitProps"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/overlayColors.json b/pr-preview/pr-1812/docs/overlayColors.json
index abb7a9918b..80812816ba 100644
--- a/pr-preview/pr-1812/docs/overlayColors.json
+++ b/pr-preview/pr-1812/docs/overlayColors.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Place two RGBA colors on top of each other. The second one (c2) goes on top.\n * The method calculates what color would be visible. If the second color (c2) is opaque, the result\n * will be c2, if fully transparent, c1. If anything in between, it calculates the real color.\n * Alpha is always set to 1 after the calculation\n * @module overlayColors\n * @param {RGBAType} c1\n * @param {RGBAType} c2\n * @returns {RGBAType} color as rgb string\n */","meta":{"filename":"i2ymuthrnwfplo3l4kcy3.js","lineno":9,"columnno":0,"path":"/tmp","code":{}},"description":"Place two RGBA colors on top of each other. The second one (c2) goes on top.\nThe method calculates what color would be visible. If the second color (c2) is opaque, the result\nwill be c2, if fully transparent, c1. If anything in between, it calculates the real color.\nAlpha is always set to 1 after the calculation","kind":"module","name":"overlayColors","params":[{"type":{"names":["RGBAType"]},"name":"c1"},{"type":{"names":["RGBAType"]},"name":"c2"}],"returns":[{"type":{"names":["RGBAType"]},"description":"color as rgb string"}],"longname":"module:overlayColors","undocumented":false,"category":"utilities","relativePath":"packages/ui-color-utils/src/overlayColors.ts","extension":".ts","srcPath":"packages/ui-color-utils/src/overlayColors.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/overlayColors.ts","packageName":"@instructure/ui-color-utils","requirePath":"@instructure/ui-color-utils/lib/overlayColors","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-color-utils/src/overlayColors.ts').default","esPath":"@instructure/ui-color-utils/es/overlayColors","themePath":"packages/ui-color-utils/src/overlayColors.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/overlayColors.ts","id":"overlayColors","title":"overlayColors"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Place two RGBA colors on top of each other. The second one (c2) goes on top.\n * The method calculates what color would be visible. If the second color (c2) is opaque, the result\n * will be c2, if fully transparent, c1. If anything in between, it calculates the real color.\n * Alpha is always set to 1 after the calculation\n * @module overlayColors\n * @param {RGBAType} c1\n * @param {RGBAType} c2\n * @returns {RGBAType} color as rgb string\n */","meta":{"filename":"9zfjkmycfkcpo8g9rpg58n.js","lineno":9,"columnno":0,"path":"/tmp","code":{}},"description":"Place two RGBA colors on top of each other. The second one (c2) goes on top.\nThe method calculates what color would be visible. If the second color (c2) is opaque, the result\nwill be c2, if fully transparent, c1. If anything in between, it calculates the real color.\nAlpha is always set to 1 after the calculation","kind":"module","name":"overlayColors","params":[{"type":{"names":["RGBAType"]},"name":"c1"},{"type":{"names":["RGBAType"]},"name":"c2"}],"returns":[{"type":{"names":["RGBAType"]},"description":"color as rgb string"}],"longname":"module:overlayColors","undocumented":false,"category":"utilities","relativePath":"packages/ui-color-utils/src/overlayColors.ts","extension":".ts","srcPath":"packages/ui-color-utils/src/overlayColors.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/overlayColors.ts","packageName":"@instructure/ui-color-utils","requirePath":"@instructure/ui-color-utils/lib/overlayColors","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-color-utils/src/overlayColors.ts').default","esPath":"@instructure/ui-color-utils/es/overlayColors","themePath":"packages/ui-color-utils/src/overlayColors.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/overlayColors.ts","id":"overlayColors","title":"overlayColors"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/ownerDocument.json b/pr-preview/pr-1812/docs/ownerDocument.json
index baba4a93ef..84cf7be1f3 100644
--- a/pr-preview/pr-1812/docs/ownerDocument.json
+++ b/pr-preview/pr-1812/docs/ownerDocument.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Retrieve the owner document of a specified element\n * @module ownerDocument\n * @param { Node | Window | React.ReactElement | function | null } el\n * @returns { Document | null} the owner document\n */","meta":{"filename":"9d7s5uvoxad4erelvaahg.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nRetrieve the owner document of a specified element","kind":"module","name":"ownerDocument","params":[{"type":{"names":["Node","Window","React.ReactElement","function","null"]},"name":"el"}],"returns":[{"type":{"names":["Document","null"]},"description":"the owner document"}],"longname":"module:ownerDocument","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/ownerDocument.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/ownerDocument.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/ownerDocument.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/ownerDocument","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/ownerDocument.ts').default","esPath":"@instructure/ui-dom-utils/es/ownerDocument","themePath":"packages/ui-dom-utils/src/ownerDocument.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/ownerDocument.ts","id":"ownerDocument","title":"ownerDocument"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * Retrieve the owner document of a specified element\n * @module ownerDocument\n * @param { Node | Window | React.ReactElement | function | null } el\n * @returns { Document | null} the owner document\n */","meta":{"filename":"bwo5rlpv29ph7m44plp24n.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nRetrieve the owner document of a specified element","kind":"module","name":"ownerDocument","params":[{"type":{"names":["Node","Window","React.ReactElement","function","null"]},"name":"el"}],"returns":[{"type":{"names":["Document","null"]},"description":"the owner document"}],"longname":"module:ownerDocument","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/ownerDocument.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/ownerDocument.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/ownerDocument.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/ownerDocument","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/ownerDocument.ts').default","esPath":"@instructure/ui-dom-utils/es/ownerDocument","themePath":"packages/ui-dom-utils/src/ownerDocument.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/ownerDocument.ts","id":"ownerDocument","title":"ownerDocument"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/ownerWindow.json b/pr-preview/pr-1812/docs/ownerWindow.json
index 6e7e6c54de..db7ea70adc 100644
--- a/pr-preview/pr-1812/docs/ownerWindow.json
+++ b/pr-preview/pr-1812/docs/ownerWindow.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n * Retrieve the owner window object associated with\n * the owner document of the specified element\n * @module ownerWindow\n * @param { Node | Window | React.ReactElement | function | null } el\n * @returns { Window | null } the owner window\n */","meta":{"filename":"wpvgiwc25gipo7rr6tuc1.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Retrieve the owner window object associated with\nthe owner document of the specified element","kind":"module","name":"ownerWindow","params":[{"type":{"names":["Node","Window","React.ReactElement","function","null"]},"name":"el"}],"returns":[{"type":{"names":["Window","null"]},"description":"the owner window"}],"longname":"module:ownerWindow","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/ownerWindow.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/ownerWindow.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/ownerWindow.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/ownerWindow","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/ownerWindow.ts').default","esPath":"@instructure/ui-dom-utils/es/ownerWindow","themePath":"packages/ui-dom-utils/src/ownerWindow.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/ownerWindow.ts","id":"ownerWindow","title":"ownerWindow"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n * Retrieve the owner window object associated with\n * the owner document of the specified element\n * @module ownerWindow\n * @param { Node | Window | React.ReactElement | function | null } el\n * @returns { Window | null } the owner window\n */","meta":{"filename":"evgh5dcyoh5393nz32p4rq.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Retrieve the owner window object associated with\nthe owner document of the specified element","kind":"module","name":"ownerWindow","params":[{"type":{"names":["Node","Window","React.ReactElement","function","null"]},"name":"el"}],"returns":[{"type":{"names":["Window","null"]},"description":"the owner window"}],"longname":"module:ownerWindow","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/ownerWindow.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/ownerWindow.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/ownerWindow.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/ownerWindow","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/ownerWindow.ts').default","esPath":"@instructure/ui-dom-utils/es/ownerWindow","themePath":"packages/ui-dom-utils/src/ownerWindow.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/ownerWindow.ts","id":"ownerWindow","title":"ownerWindow"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/parseQuery.json b/pr-preview/pr-1812/docs/parseQuery.json
index 8f9503160c..a66b9d59d1 100644
--- a/pr-preview/pr-1812/docs/parseQuery.json
+++ b/pr-preview/pr-1812/docs/parseQuery.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/layout\n * ---\n *\n * Given a query and an element, return a function that takes\n * size as an argument and returns an object consisting of\n * query names and a boolean true false if it matches.\n * @module parseQuery\n * @param {Object} query - an object consisting of query names\n * mapped to individual queries\n * @param {Document | Window | Node | null} el - component or DOM node\n * @returns {function} takes size {width, height} as an argument\n * and returns an object consisting of query names and boolean\n * true false if it matches\n */","meta":{"filename":"2i7wrk1q3kfe8q5k518l.js","lineno":5,"columnno":0,"path":"/tmp","code":{}},"description":"\nGiven a query and an element, return a function that takes\nsize as an argument and returns an object consisting of\nquery names and a boolean true false if it matches.","kind":"module","name":"parseQuery","params":[{"type":{"names":["Object"]},"description":"an object consisting of query names\n mapped to individual queries","name":"query"},{"type":{"names":["Document","Window","Node","null"]},"description":"component or DOM node","name":"el"}],"returns":[{"type":{"names":["function"]},"description":"takes size {width, height} as an argument\n and returns an object consisting of query names and boolean\n true false if it matches"}],"longname":"module:parseQuery","undocumented":false,"category":"utilities/layout","relativePath":"packages/ui-responsive/src/parseQuery.ts","extension":".ts","srcPath":"packages/ui-responsive/src/parseQuery.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-responsive/src/parseQuery.ts","packageName":"@instructure/ui-responsive","requirePath":"@instructure/ui-responsive/lib/parseQuery","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-responsive/src/parseQuery.ts').default","esPath":"@instructure/ui-responsive/es/parseQuery","themePath":"packages/ui-responsive/src/parseQuery.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-responsive/src/parseQuery.ts","id":"parseQuery","title":"parseQuery"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/layout\n * ---\n *\n * Given a query and an element, return a function that takes\n * size as an argument and returns an object consisting of\n * query names and a boolean true false if it matches.\n * @module parseQuery\n * @param {Object} query - an object consisting of query names\n * mapped to individual queries\n * @param {Document | Window | Node | null} el - component or DOM node\n * @returns {function} takes size {width, height} as an argument\n * and returns an object consisting of query names and boolean\n * true false if it matches\n */","meta":{"filename":"lc175tdb32o32capajhd.js","lineno":5,"columnno":0,"path":"/tmp","code":{}},"description":"\nGiven a query and an element, return a function that takes\nsize as an argument and returns an object consisting of\nquery names and a boolean true false if it matches.","kind":"module","name":"parseQuery","params":[{"type":{"names":["Object"]},"description":"an object consisting of query names\n mapped to individual queries","name":"query"},{"type":{"names":["Document","Window","Node","null"]},"description":"component or DOM node","name":"el"}],"returns":[{"type":{"names":["function"]},"description":"takes size {width, height} as an argument\n and returns an object consisting of query names and boolean\n true false if it matches"}],"longname":"module:parseQuery","undocumented":false,"category":"utilities/layout","relativePath":"packages/ui-responsive/src/parseQuery.ts","extension":".ts","srcPath":"packages/ui-responsive/src/parseQuery.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-responsive/src/parseQuery.ts","packageName":"@instructure/ui-responsive","requirePath":"@instructure/ui-responsive/lib/parseQuery","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-responsive/src/parseQuery.ts').default","esPath":"@instructure/ui-responsive/es/parseQuery","themePath":"packages/ui-responsive/src/parseQuery.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-responsive/src/parseQuery.ts","id":"parseQuery","title":"parseQuery"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/parseUnit.json b/pr-preview/pr-1812/docs/parseUnit.json
index 661edaa7fe..b05ee44281 100644
--- a/pr-preview/pr-1812/docs/parseUnit.json
+++ b/pr-preview/pr-1812/docs/parseUnit.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Converts a CSS unit value combination into an array of type [ value, unit ]\n *\n * @module parseUnit\n *\n * Example inputs:\n * - '100px'\n * - '20rem'\n * - '10vh'\n * - '400vmin'\n *\n * @param {string|number} str\n * @returns {Array} Returns array of shape [ value, unit ] Unit is '' if it could\n * not be parsed\n */","meta":{"filename":"k05bhmf4zfpelt6k7v790t.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Converts a CSS unit value combination into an array of type [ value, unit ]","kind":"module","name":"parseUnit\n\nExample inputs:\n - '100px'\n - '20rem'\n - '10vh'\n - '400vmin'","params":[{"type":{"names":["string","number"]},"name":"str"}],"returns":[{"type":{"names":["Array"]},"description":"Returns array of shape [ value, unit ] Unit is '' if it could\nnot be parsed"}],"longname":"parseUnit\n\nExample inputs:\n - '100px'\n - '20rem'\n - '10vh'\n - '400vmin'module:","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/parseUnit.ts","extension":".ts","srcPath":"packages/ui-utils/src/parseUnit.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/parseUnit.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/parseUnit","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/parseUnit.ts').default","esPath":"@instructure/ui-utils/es/parseUnit","themePath":"packages/ui-utils/src/parseUnit.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/parseUnit.ts","id":"parseUnit","title":"parseUnit"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Converts a CSS unit value combination into an array of type [ value, unit ]\n *\n * @module parseUnit\n *\n * Example inputs:\n * - '100px'\n * - '20rem'\n * - '10vh'\n * - '400vmin'\n *\n * @param {string|number} str\n * @returns {Array} Returns array of shape [ value, unit ] Unit is '' if it could\n * not be parsed\n */","meta":{"filename":"r5morbwwqbpwxgnlhzn5u.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Converts a CSS unit value combination into an array of type [ value, unit ]","kind":"module","name":"parseUnit\n\nExample inputs:\n - '100px'\n - '20rem'\n - '10vh'\n - '400vmin'","params":[{"type":{"names":["string","number"]},"name":"str"}],"returns":[{"type":{"names":["Array"]},"description":"Returns array of shape [ value, unit ] Unit is '' if it could\nnot be parsed"}],"longname":"parseUnit\n\nExample inputs:\n - '100px'\n - '20rem'\n - '10vh'\n - '400vmin'module:","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/parseUnit.ts","extension":".ts","srcPath":"packages/ui-utils/src/parseUnit.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/parseUnit.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/parseUnit","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/parseUnit.ts').default","esPath":"@instructure/ui-utils/es/parseUnit","themePath":"packages/ui-utils/src/parseUnit.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/parseUnit.ts","id":"parseUnit","title":"parseUnit"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/pascalize.json b/pr-preview/pr-1812/docs/pascalize.json
index a94540e76b..ce919ad14e 100644
--- a/pr-preview/pr-1812/docs/pascalize.json
+++ b/pr-preview/pr-1812/docs/pascalize.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Converts a hyphenated or camel cased string to pascal case\n *\n * Example inputs:\n * - 'foo-bar'\n * - 'baz-qux'\n *\n * Example outputs:\n * - 'FooBar'\n * - 'BazQux'\n *\n * @module pascalize\n * @param {String} str\n * @returns {String} Returns pascal cased string\n */","meta":{"filename":"kahi2fjp7e9ejkc0tmfa1v.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Converts a hyphenated or camel cased string to pascal case\n\nExample inputs:\n - 'foo-bar'\n - 'baz-qux'\n\nExample outputs:\n - 'FooBar'\n - 'BazQux'","kind":"module","name":"pascalize","params":[{"type":{"names":["String"]},"name":"str"}],"returns":[{"type":{"names":["String"]},"description":"Returns pascal cased string"}],"longname":"module:pascalize","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/pascalize.ts","extension":".ts","srcPath":"packages/ui-utils/src/pascalize.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/pascalize.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/pascalize","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/pascalize.ts').default","esPath":"@instructure/ui-utils/es/pascalize","themePath":"packages/ui-utils/src/pascalize.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/pascalize.ts","id":"pascalize","title":"pascalize"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Converts a hyphenated or camel cased string to pascal case\n *\n * Example inputs:\n * - 'foo-bar'\n * - 'baz-qux'\n *\n * Example outputs:\n * - 'FooBar'\n * - 'BazQux'\n *\n * @module pascalize\n * @param {String} str\n * @returns {String} Returns pascal cased string\n */","meta":{"filename":"9jq3bb5pvzqbhu642cnb6i.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Converts a hyphenated or camel cased string to pascal case\n\nExample inputs:\n - 'foo-bar'\n - 'baz-qux'\n\nExample outputs:\n - 'FooBar'\n - 'BazQux'","kind":"module","name":"pascalize","params":[{"type":{"names":["String"]},"name":"str"}],"returns":[{"type":{"names":["String"]},"description":"Returns pascal cased string"}],"longname":"module:pascalize","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/pascalize.ts","extension":".ts","srcPath":"packages/ui-utils/src/pascalize.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/pascalize.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/pascalize","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/pascalize.ts').default","esPath":"@instructure/ui-utils/es/pascalize","themePath":"packages/ui-utils/src/pascalize.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/pascalize.ts","id":"pascalize","title":"pascalize"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/pickProps.json b/pr-preview/pr-1812/docs/pickProps.json
index f9eeac69de..786ea3696c 100644
--- a/pr-preview/pr-1812/docs/pickProps.json
+++ b/pr-preview/pr-1812/docs/pickProps.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * Return a props object with only specified propTypes.\n * @module pickProps\n * @param {Object} props React component props\n * @param {Object|Array} propTypesOrAllowedPropList React component propTypes or the list of allowed prop keys\n * @param {Array} include an optional array of prop names to include\n * @returns {Object} props object with only the included props\n * @module pickProps\n */","meta":{"filename":"kz1lzt0ssf9qgngebf0rrn.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Return a props object with only specified propTypes.","kind":"module","name":"pickProps","params":[{"type":{"names":["Object"]},"description":"React component props","name":"props"},{"type":{"names":["Object","Array."]},"description":"React component propTypes or the list of allowed prop keys","name":"propTypesOrAllowedPropList"},{"type":{"names":["Array"]},"description":"an optional array of prop names to include","name":"include"}],"returns":[{"type":{"names":["Object"]},"description":"props object with only the included props"}],"longname":"module:pickProps","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/pickProps.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/pickProps.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/pickProps.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/pickProps","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/pickProps.ts').default","esPath":"@instructure/ui-react-utils/es/pickProps","themePath":"packages/ui-react-utils/src/pickProps.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/pickProps.ts","id":"pickProps","title":"pickProps"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * Return a props object with only specified propTypes.\n * @module pickProps\n * @param {Object} props React component props\n * @param {Object|Array} propTypesOrAllowedPropList React component propTypes or the list of allowed prop keys\n * @param {Array} include an optional array of prop names to include\n * @returns {Object} props object with only the included props\n * @module pickProps\n */","meta":{"filename":"py5kn5v768jlr1hdbsjkt.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Return a props object with only specified propTypes.","kind":"module","name":"pickProps","params":[{"type":{"names":["Object"]},"description":"React component props","name":"props"},{"type":{"names":["Object","Array."]},"description":"React component propTypes or the list of allowed prop keys","name":"propTypesOrAllowedPropList"},{"type":{"names":["Array"]},"description":"an optional array of prop names to include","name":"include"}],"returns":[{"type":{"names":["Object"]},"description":"props object with only the included props"}],"longname":"module:pickProps","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/pickProps.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/pickProps.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/pickProps.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/pickProps","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/pickProps.ts').default","esPath":"@instructure/ui-react-utils/es/pickProps","themePath":"packages/ui-react-utils/src/pickProps.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/pickProps.ts","id":"pickProps","title":"pickProps"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/px.json b/pr-preview/pr-1812/docs/px.json
index 312a2bdc53..ae582edf25 100644
--- a/pr-preview/pr-1812/docs/px.json
+++ b/pr-preview/pr-1812/docs/px.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Converts a unit value size combination (em, rem, px) to a number representing px\n *\n * Example inputs:\n * - '100rem'\n * - '20em'\n * - '40px'\n *\n * @module px\n *\n * @param {String|number} val The value to look up. If it's a number its just returned as is.\n * @param {Document|Window|Node|React.ReactElement |React.Component|null} el - containing element, for context measure is em (defaults to `document.body`)\n * @returns {Number} Returns numerical representation of pixels\n */","meta":{"filename":"qhxynxumjeki7881bgozvq.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Converts a unit value size combination (em, rem, px) to a number representing px\n\nExample inputs:\n - '100rem'\n - '20em'\n - '40px'","kind":"module","name":"px","params":[{"type":{"names":["String","number"]},"description":"The value to look up. If it's a number its just returned as is.","name":"val"},{"type":{"names":["Document","Window","Node","React.ReactElement","React.Component","null"]},"description":"containing element, for context measure is em (defaults to `document.body`)","name":"el"}],"returns":[{"type":{"names":["Number"]},"description":"Returns numerical representation of pixels"}],"longname":"module:px","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/px.ts","extension":".ts","srcPath":"packages/ui-utils/src/px.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/px.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/px","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/px.ts').default","esPath":"@instructure/ui-utils/es/px","themePath":"packages/ui-utils/src/px.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/px.ts","id":"px","title":"px"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Converts a unit value size combination (em, rem, px) to a number representing px\n *\n * Example inputs:\n * - '100rem'\n * - '20em'\n * - '40px'\n *\n * @module px\n *\n * @param {String|number} val The value to look up. If it's a number its just returned as is.\n * @param {Document|Window|Node|React.ReactElement |React.Component|null} el - containing element, for context measure is em (defaults to `document.body`)\n * @returns {Number} Returns numerical representation of pixels\n */","meta":{"filename":"anq1khzes3q6id8806o53.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Converts a unit value size combination (em, rem, px) to a number representing px\n\nExample inputs:\n - '100rem'\n - '20em'\n - '40px'","kind":"module","name":"px","params":[{"type":{"names":["String","number"]},"description":"The value to look up. If it's a number its just returned as is.","name":"val"},{"type":{"names":["Document","Window","Node","React.ReactElement","React.Component","null"]},"description":"containing element, for context measure is em (defaults to `document.body`)","name":"el"}],"returns":[{"type":{"names":["Number"]},"description":"Returns numerical representation of pixels"}],"longname":"module:px","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/px.ts","extension":".ts","srcPath":"packages/ui-utils/src/px.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/px.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/px","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/px.ts').default","esPath":"@instructure/ui-utils/es/px","themePath":"packages/ui-utils/src/px.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/px.ts","id":"px","title":"px"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/requestAnimationFrame.json b/pr-preview/pr-1812/docs/requestAnimationFrame.json
index f73184de37..865d2ae01a 100644
--- a/pr-preview/pr-1812/docs/requestAnimationFrame.json
+++ b/pr-preview/pr-1812/docs/requestAnimationFrame.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * If DOM is usable, returns a function wrapper for\n * window.requestAnimationFrame. Otherwise sets\n * a manual timeout.\n * @module requestAnimationFrame\n *\n * @returns {function} requestAnimationFrame takes a callback function as an argument and returns a cancel method\n */","meta":{"filename":"yd48go9tp6lnexuxfb5j5.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nIf DOM is usable, returns a function wrapper for\nwindow.requestAnimationFrame. Otherwise sets\na manual timeout.","kind":"module","name":"requestAnimationFrame","returns":[{"type":{"names":["function"]},"description":"requestAnimationFrame takes a callback function as an argument and returns a cancel method"}],"longname":"module:requestAnimationFrame","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/requestAnimationFrame.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/requestAnimationFrame.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/requestAnimationFrame.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/requestAnimationFrame","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/requestAnimationFrame.ts').default","esPath":"@instructure/ui-dom-utils/es/requestAnimationFrame","themePath":"packages/ui-dom-utils/src/requestAnimationFrame.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/requestAnimationFrame.ts","id":"requestAnimationFrame","title":"requestAnimationFrame"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * If DOM is usable, returns a function wrapper for\n * window.requestAnimationFrame. Otherwise sets\n * a manual timeout.\n * @module requestAnimationFrame\n *\n * @returns {function} requestAnimationFrame takes a callback function as an argument and returns a cancel method\n */","meta":{"filename":"i75tv9ix5utqdzngoz3ug.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nIf DOM is usable, returns a function wrapper for\nwindow.requestAnimationFrame. Otherwise sets\na manual timeout.","kind":"module","name":"requestAnimationFrame","returns":[{"type":{"names":["function"]},"description":"requestAnimationFrame takes a callback function as an argument and returns a cancel method"}],"longname":"module:requestAnimationFrame","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/requestAnimationFrame.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/requestAnimationFrame.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/requestAnimationFrame.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/requestAnimationFrame","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/requestAnimationFrame.ts').default","esPath":"@instructure/ui-dom-utils/es/requestAnimationFrame","themePath":"packages/ui-dom-utils/src/requestAnimationFrame.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/requestAnimationFrame.ts","id":"requestAnimationFrame","title":"requestAnimationFrame"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/scopeTab.json b/pr-preview/pr-1812/docs/scopeTab.json
index 545cc144a3..dfac4d4eac 100644
--- a/pr-preview/pr-1812/docs/scopeTab.json
+++ b/pr-preview/pr-1812/docs/scopeTab.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/a11y\n * ---\n *\n * Scope tab in order to trap focus within a specified\n * element.\n * @module scopeTab\n * @param {ReactElement|DOMNode} element\n * @param {Event} event the DOM Event that was fired\n * @param {function} function executed when leaving final tabbable instead of the default behavior\n */","meta":{"filename":"yrb68jcub6sida6gju1n6.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nScope tab in order to trap focus within a specified\nelement.","kind":"module","name":"scopeTab","params":[{"type":{"names":["ReactElement","DOMNode"]},"name":"element"},{"type":{"names":["Event"]},"description":"the DOM Event that was fired","name":"event"},{"type":{"names":["function"]},"description":"executed when leaving final tabbable instead of the default behavior","name":"function"}],"longname":"module:scopeTab","undocumented":false,"category":"utilities/a11y","relativePath":"packages/ui-a11y-utils/src/scopeTab.ts","extension":".ts","srcPath":"packages/ui-a11y-utils/src/scopeTab.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-a11y-utils/src/scopeTab.ts","packageName":"@instructure/ui-a11y-utils","requirePath":"@instructure/ui-a11y-utils/lib/scopeTab","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-a11y-utils/src/scopeTab.ts').default","esPath":"@instructure/ui-a11y-utils/es/scopeTab","themePath":"packages/ui-a11y-utils/src/scopeTab.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-a11y-utils/src/scopeTab.ts","id":"scopeTab","title":"scopeTab"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/a11y\n * ---\n *\n * Scope tab in order to trap focus within a specified\n * element.\n * @module scopeTab\n * @param {ReactElement|DOMNode} element\n * @param {Event} event the DOM Event that was fired\n * @param {function} function executed when leaving final tabbable instead of the default behavior\n */","meta":{"filename":"tk19w6chb0kuza5s7naqua.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nScope tab in order to trap focus within a specified\nelement.","kind":"module","name":"scopeTab","params":[{"type":{"names":["ReactElement","DOMNode"]},"name":"element"},{"type":{"names":["Event"]},"description":"the DOM Event that was fired","name":"event"},{"type":{"names":["function"]},"description":"executed when leaving final tabbable instead of the default behavior","name":"function"}],"longname":"module:scopeTab","undocumented":false,"category":"utilities/a11y","relativePath":"packages/ui-a11y-utils/src/scopeTab.ts","extension":".ts","srcPath":"packages/ui-a11y-utils/src/scopeTab.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-a11y-utils/src/scopeTab.ts","packageName":"@instructure/ui-a11y-utils","requirePath":"@instructure/ui-a11y-utils/lib/scopeTab","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-a11y-utils/src/scopeTab.ts').default","esPath":"@instructure/ui-a11y-utils/es/scopeTab","themePath":"packages/ui-a11y-utils/src/scopeTab.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-a11y-utils/src/scopeTab.ts","id":"scopeTab","title":"scopeTab"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/shallowEqual.json b/pr-preview/pr-1812/docs/shallowEqual.json
index 470a4d71db..eeb61d360b 100644
--- a/pr-preview/pr-1812/docs/shallowEqual.json
+++ b/pr-preview/pr-1812/docs/shallowEqual.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n *\n * @module shallowEqual\n *\n * @param {Object} objA\n * @param {Object} objB\n * @returns {Boolean} Returns true when the values of all keys are strictly equal\n */","meta":{"filename":"bsh45k3dyk7kzve4w19xba.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Performs equality by iterating through keys on an object and returning false\nwhen any key has values which are not strictly equal between the arguments.","kind":"module","name":"shallowEqual","params":[{"type":{"names":["Object"]},"name":"objA"},{"type":{"names":["Object"]},"name":"objB"}],"returns":[{"type":{"names":["Boolean"]},"description":"Returns true when the values of all keys are strictly equal"}],"longname":"module:shallowEqual","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/shallowEqual.ts","extension":".ts","srcPath":"packages/ui-utils/src/shallowEqual.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/shallowEqual.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/shallowEqual","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/shallowEqual.ts').default","esPath":"@instructure/ui-utils/es/shallowEqual","themePath":"packages/ui-utils/src/shallowEqual.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/shallowEqual.ts","id":"shallowEqual","title":"shallowEqual"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n *\n * @module shallowEqual\n *\n * @param {Object} objA\n * @param {Object} objB\n * @returns {Boolean} Returns true when the values of all keys are strictly equal\n */","meta":{"filename":"tpvfemwzhsnwnofjf24n6.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Performs equality by iterating through keys on an object and returning false\nwhen any key has values which are not strictly equal between the arguments.","kind":"module","name":"shallowEqual","params":[{"type":{"names":["Object"]},"name":"objA"},{"type":{"names":["Object"]},"name":"objB"}],"returns":[{"type":{"names":["Boolean"]},"description":"Returns true when the values of all keys are strictly equal"}],"longname":"module:shallowEqual","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/shallowEqual.ts","extension":".ts","srcPath":"packages/ui-utils/src/shallowEqual.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/shallowEqual.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/shallowEqual","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/shallowEqual.ts').default","esPath":"@instructure/ui-utils/es/shallowEqual","themePath":"packages/ui-utils/src/shallowEqual.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/shallowEqual.ts","id":"shallowEqual","title":"shallowEqual"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/textDirectionContextConsumer.json b/pr-preview/pr-1812/docs/textDirectionContextConsumer.json
index c985e9000d..9558cd6455 100644
--- a/pr-preview/pr-1812/docs/textDirectionContextConsumer.json
+++ b/pr-preview/pr-1812/docs/textDirectionContextConsumer.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/i18n\n * ---\n *\n * A decorator or higher order component that supplies the text direction to\n * components.\n *\n * As a HOC:\n *\n * ```js-code\n * import { textDirectionContextConsumer } from '@instructure/ui-i18n'\n *\n * class Example extends React.Component {\n * render () {\n * return this.props.dir === textDirectionContextConsumer.DIRECTION.rtl ? rtl
: ltr
\n * }\n * }\n *\n * export default textDirectionContextConsumer()(Example)\n * ```\n *\n * When used as a child of [InstUISettingsProvider](#InstUISettingsProvider), textDirectionContextConsumer components use\n * the direction provided in `TextDirectionContext`. When used without [InstUISettingsProvider](#InstUISettingsProvider),\n * the direction can be supplied explicitly via the `dir` prop. If no `dir` prop is provided,\n * textDirectionContextConsumer components query the documentElement for the `dir` attribute, defaulting to `ltr`\n * if it is not present.\n *\n * @module textDirectionContextConsumer\n * @return The decorator that composes the textDirectionContextConsumer component.\n */","meta":{"filename":"evmustt2dzw7zucspy8y.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nA decorator or higher order component that supplies the text direction to\ncomponents.\n\nAs a HOC:\n\n```js-code\nimport { textDirectionContextConsumer } from '@instructure/ui-i18n'\n\nclass Example extends React.Component {\n render () {\n return this.props.dir === textDirectionContextConsumer.DIRECTION.rtl ? rtl
: ltr
\n }\n}\n\nexport default textDirectionContextConsumer()(Example)\n```\n\nWhen used as a child of [InstUISettingsProvider](#InstUISettingsProvider), textDirectionContextConsumer components use\nthe direction provided in `TextDirectionContext`. When used without [InstUISettingsProvider](#InstUISettingsProvider),\nthe direction can be supplied explicitly via the `dir` prop. If no `dir` prop is provided,\ntextDirectionContextConsumer components query the documentElement for the `dir` attribute, defaulting to `ltr`\nif it is not present.","kind":"module","name":"textDirectionContextConsumer","returns":[{"description":"The decorator that composes the textDirectionContextConsumer component."}],"longname":"module:textDirectionContextConsumer","undocumented":false,"category":"utilities/i18n","relativePath":"packages/ui-i18n/src/textDirectionContextConsumer.tsx","extension":".tsx","srcPath":"packages/ui-i18n/src/textDirectionContextConsumer.tsx","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-i18n/src/textDirectionContextConsumer.tsx","packageName":"@instructure/ui-i18n","requirePath":"@instructure/ui-i18n/lib/textDirectionContextConsumer","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-i18n/src/textDirectionContextConsumer.tsx').default","esPath":"@instructure/ui-i18n/es/textDirectionContextConsumer","themePath":"packages/ui-i18n/src/textDirectionContextConsumer.tsx","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-i18n/src/textDirectionContextConsumer.tsx","id":"textDirectionContextConsumer","title":"textDirectionContextConsumer"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/i18n\n * ---\n *\n * A decorator or higher order component that supplies the text direction to\n * components.\n *\n * As a HOC:\n *\n * ```js-code\n * import { textDirectionContextConsumer } from '@instructure/ui-i18n'\n *\n * class Example extends React.Component {\n * render () {\n * return this.props.dir === textDirectionContextConsumer.DIRECTION.rtl ? rtl
: ltr
\n * }\n * }\n *\n * export default textDirectionContextConsumer()(Example)\n * ```\n *\n * When used as a child of [InstUISettingsProvider](#InstUISettingsProvider), textDirectionContextConsumer components use\n * the direction provided in `TextDirectionContext`. When used without [InstUISettingsProvider](#InstUISettingsProvider),\n * the direction can be supplied explicitly via the `dir` prop. If no `dir` prop is provided,\n * textDirectionContextConsumer components query the documentElement for the `dir` attribute, defaulting to `ltr`\n * if it is not present.\n *\n * @module textDirectionContextConsumer\n * @return The decorator that composes the textDirectionContextConsumer component.\n */","meta":{"filename":"t1fokj3slrbifd6p5t6kh.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nA decorator or higher order component that supplies the text direction to\ncomponents.\n\nAs a HOC:\n\n```js-code\nimport { textDirectionContextConsumer } from '@instructure/ui-i18n'\n\nclass Example extends React.Component {\n render () {\n return this.props.dir === textDirectionContextConsumer.DIRECTION.rtl ? rtl
: ltr
\n }\n}\n\nexport default textDirectionContextConsumer()(Example)\n```\n\nWhen used as a child of [InstUISettingsProvider](#InstUISettingsProvider), textDirectionContextConsumer components use\nthe direction provided in `TextDirectionContext`. When used without [InstUISettingsProvider](#InstUISettingsProvider),\nthe direction can be supplied explicitly via the `dir` prop. If no `dir` prop is provided,\ntextDirectionContextConsumer components query the documentElement for the `dir` attribute, defaulting to `ltr`\nif it is not present.","kind":"module","name":"textDirectionContextConsumer","returns":[{"description":"The decorator that composes the textDirectionContextConsumer component."}],"longname":"module:textDirectionContextConsumer","undocumented":false,"category":"utilities/i18n","relativePath":"packages/ui-i18n/src/textDirectionContextConsumer.tsx","extension":".tsx","srcPath":"packages/ui-i18n/src/textDirectionContextConsumer.tsx","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-i18n/src/textDirectionContextConsumer.tsx","packageName":"@instructure/ui-i18n","requirePath":"@instructure/ui-i18n/lib/textDirectionContextConsumer","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-i18n/src/textDirectionContextConsumer.tsx').default","esPath":"@instructure/ui-i18n/es/textDirectionContextConsumer","themePath":"packages/ui-i18n/src/textDirectionContextConsumer.tsx","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-i18n/src/textDirectionContextConsumer.tsx","id":"textDirectionContextConsumer","title":"textDirectionContextConsumer"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/transformSelection.json b/pr-preview/pr-1812/docs/transformSelection.json
index 2f261cfa53..8591ae43c5 100644
--- a/pr-preview/pr-1812/docs/transformSelection.json
+++ b/pr-preview/pr-1812/docs/transformSelection.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * transformSelection - Calculate the resulting text selection\n * of a changing text-containing HTML element\n * @module transformSelection\n * @param {HTMLElement} element - HTML element with selection capabilities\n * @param {string} cleanedValue - new value that will be given to the HTML element\n * @return {Object} resulting selection values\n */","meta":{"filename":"ec870zw6epsdcbg0mmne4j.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\ntransformSelection - Calculate the resulting text selection\nof a changing text-containing HTML element","kind":"module","name":"transformSelection","params":[{"type":{"names":["HTMLElement"]},"description":"HTML element with selection capabilities","name":"element"},{"type":{"names":["string"]},"description":"new value that will be given to the HTML element","name":"cleanedValue"}],"returns":[{"type":{"names":["Object"]},"description":"resulting selection values"}],"longname":"module:transformSelection","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/transformSelection.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/transformSelection.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/transformSelection.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/transformSelection","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/transformSelection.ts').default","esPath":"@instructure/ui-dom-utils/es/transformSelection","themePath":"packages/ui-dom-utils/src/transformSelection.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/transformSelection.ts","id":"transformSelection","title":"transformSelection"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/DOM\n * ---\n *\n * transformSelection - Calculate the resulting text selection\n * of a changing text-containing HTML element\n * @module transformSelection\n * @param {HTMLElement} element - HTML element with selection capabilities\n * @param {string} cleanedValue - new value that will be given to the HTML element\n * @return {Object} resulting selection values\n */","meta":{"filename":"sr9ovi52nnflg5f27hjnca.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\ntransformSelection - Calculate the resulting text selection\nof a changing text-containing HTML element","kind":"module","name":"transformSelection","params":[{"type":{"names":["HTMLElement"]},"description":"HTML element with selection capabilities","name":"element"},{"type":{"names":["string"]},"description":"new value that will be given to the HTML element","name":"cleanedValue"}],"returns":[{"type":{"names":["Object"]},"description":"resulting selection values"}],"longname":"module:transformSelection","undocumented":false,"category":"utilities/DOM","relativePath":"packages/ui-dom-utils/src/transformSelection.ts","extension":".ts","srcPath":"packages/ui-dom-utils/src/transformSelection.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/transformSelection.ts","packageName":"@instructure/ui-dom-utils","requirePath":"@instructure/ui-dom-utils/lib/transformSelection","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-dom-utils/src/transformSelection.ts').default","esPath":"@instructure/ui-dom-utils/es/transformSelection","themePath":"packages/ui-dom-utils/src/transformSelection.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-dom-utils/src/transformSelection.ts","id":"transformSelection","title":"transformSelection"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/uid.json b/pr-preview/pr-1812/docs/uid.json
index 71fb0992a8..04ccb3037c 100644
--- a/pr-preview/pr-1812/docs/uid.json
+++ b/pr-preview/pr-1812/docs/uid.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Generate a unique (CSS-safe) id string\n *\n * @module uid\n * @param {String} prefix a string to prefix the id for debugging in non-production env\n * @param {Number} length id length (in characters, minus the prefix). Default is 12\n * @returns {String} a unique id\n */","meta":{"filename":"dz24tvxuehvplubwqlj4jm.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Generate a unique (CSS-safe) id string","kind":"module","name":"uid","params":[{"type":{"names":["String"]},"description":"a string to prefix the id for debugging in non-production env","name":"prefix"},{"type":{"names":["Number"]},"description":"id length (in characters, minus the prefix). Default is 12","name":"length"}],"returns":[{"type":{"names":["String"]},"description":"a unique id"}],"longname":"module:uid","undocumented":false,"category":"utilities","relativePath":"packages/uid/src/uid.ts","extension":".ts","srcPath":"packages/uid/src/uid.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/uid/src/uid.ts","packageName":"@instructure/uid","requirePath":"@instructure/uid/lib/uid","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/uid/src/uid.ts').default","esPath":"@instructure/uid/es/uid","themePath":"packages/uid/src/uid.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/uid/src/uid.ts","id":"uid","title":"uid"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Generate a unique (CSS-safe) id string\n *\n * @module uid\n * @param {String} prefix a string to prefix the id for debugging in non-production env\n * @param {Number} length id length (in characters, minus the prefix). Default is 12\n * @returns {String} a unique id\n */","meta":{"filename":"w6w09btzv6f33iqqwba7h9.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Generate a unique (CSS-safe) id string","kind":"module","name":"uid","params":[{"type":{"names":["String"]},"description":"a string to prefix the id for debugging in non-production env","name":"prefix"},{"type":{"names":["Number"]},"description":"id length (in characters, minus the prefix). Default is 12","name":"length"}],"returns":[{"type":{"names":["String"]},"description":"a unique id"}],"longname":"module:uid","undocumented":false,"category":"utilities","relativePath":"packages/uid/src/uid.ts","extension":".ts","srcPath":"packages/uid/src/uid.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/uid/src/uid.ts","packageName":"@instructure/uid","requirePath":"@instructure/uid/lib/uid","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/uid/src/uid.ts').default","esPath":"@instructure/uid/es/uid","themePath":"packages/uid/src/uid.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/uid/src/uid.ts","id":"uid","title":"uid"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/validateContrast.json b/pr-preview/pr-1812/docs/validateContrast.json
index fbb80abcbc..63f304c4bb 100644
--- a/pr-preview/pr-1812/docs/validateContrast.json
+++ b/pr-preview/pr-1812/docs/validateContrast.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Decides if the given contrast is sufficient for different text sizes and situations.\n *\n * According to WCAG 2.2\n *\n * AA level (https://www.w3.org/TR/WCAG22/#contrast-minimum)\n *\n * text: 4.5:1\n *\n * large text: 3:1\n *\n * non-text: 3:1 (https://www.w3.org/TR/WCAG22/#non-text-contrast)\n *\n *\n * AAA level (https://www.w3.org/TR/WCAG22/#contrast-enhanced)\n *\n * text: 7:1\n *\n * large text: 4.5:1\n *\n * non-text: 3:1 (https://www.w3.org/TR/WCAG22/#non-text-contrast)\n * @module validateContrast\n * @param {Number} contrast\n * @returns {ValidatedContrasts} validation object\n */","meta":{"filename":"s5brt2z2veyjqubs6z0v.js","lineno":8,"columnno":0,"path":"/tmp","code":{}},"description":"Decides if the given contrast is sufficient for different text sizes and situations.\n\nAccording to WCAG 2.2\n\nAA level (https://www.w3.org/TR/WCAG22/#contrast-minimum)\n\ntext: 4.5:1\n\nlarge text: 3:1\n\nnon-text: 3:1 (https://www.w3.org/TR/WCAG22/#non-text-contrast)\n\n\nAAA level (https://www.w3.org/TR/WCAG22/#contrast-enhanced)\n\ntext: 7:1\n\nlarge text: 4.5:1\n\nnon-text: 3:1 (https://www.w3.org/TR/WCAG22/#non-text-contrast)","kind":"module","name":"validateContrast","params":[{"type":{"names":["Number"]},"name":"contrast"}],"returns":[{"type":{"names":["ValidatedContrasts"]},"description":"validation object"}],"longname":"module:validateContrast","undocumented":false,"category":"utilities","relativePath":"packages/ui-color-utils/src/validateContrast.ts","extension":".ts","srcPath":"packages/ui-color-utils/src/validateContrast.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/validateContrast.ts","packageName":"@instructure/ui-color-utils","requirePath":"@instructure/ui-color-utils/lib/validateContrast","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-color-utils/src/validateContrast.ts').default","esPath":"@instructure/ui-color-utils/es/validateContrast","themePath":"packages/ui-color-utils/src/validateContrast.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/validateContrast.ts","id":"validateContrast","title":"validateContrast"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Decides if the given contrast is sufficient for different text sizes and situations.\n *\n * According to WCAG 2.2\n *\n * AA level (https://www.w3.org/TR/WCAG22/#contrast-minimum)\n *\n * text: 4.5:1\n *\n * large text: 3:1\n *\n * non-text: 3:1 (https://www.w3.org/TR/WCAG22/#non-text-contrast)\n *\n *\n * AAA level (https://www.w3.org/TR/WCAG22/#contrast-enhanced)\n *\n * text: 7:1\n *\n * large text: 4.5:1\n *\n * non-text: 3:1 (https://www.w3.org/TR/WCAG22/#non-text-contrast)\n * @module validateContrast\n * @param {Number} contrast\n * @returns {ValidatedContrasts} validation object\n */","meta":{"filename":"e5iuwgmef6gsw3vdndpmg.js","lineno":8,"columnno":0,"path":"/tmp","code":{}},"description":"Decides if the given contrast is sufficient for different text sizes and situations.\n\nAccording to WCAG 2.2\n\nAA level (https://www.w3.org/TR/WCAG22/#contrast-minimum)\n\ntext: 4.5:1\n\nlarge text: 3:1\n\nnon-text: 3:1 (https://www.w3.org/TR/WCAG22/#non-text-contrast)\n\n\nAAA level (https://www.w3.org/TR/WCAG22/#contrast-enhanced)\n\ntext: 7:1\n\nlarge text: 4.5:1\n\nnon-text: 3:1 (https://www.w3.org/TR/WCAG22/#non-text-contrast)","kind":"module","name":"validateContrast","params":[{"type":{"names":["Number"]},"name":"contrast"}],"returns":[{"type":{"names":["ValidatedContrasts"]},"description":"validation object"}],"longname":"module:validateContrast","undocumented":false,"category":"utilities","relativePath":"packages/ui-color-utils/src/validateContrast.ts","extension":".ts","srcPath":"packages/ui-color-utils/src/validateContrast.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/validateContrast.ts","packageName":"@instructure/ui-color-utils","requirePath":"@instructure/ui-color-utils/lib/validateContrast","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-color-utils/src/validateContrast.ts').default","esPath":"@instructure/ui-color-utils/es/validateContrast","themePath":"packages/ui-color-utils/src/validateContrast.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-color-utils/src/validateContrast.ts","id":"validateContrast","title":"validateContrast"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/windowMessageListener.json b/pr-preview/pr-1812/docs/windowMessageListener.json
index 3dc80fd8c4..354fedeb5e 100644
--- a/pr-preview/pr-1812/docs/windowMessageListener.json
+++ b/pr-preview/pr-1812/docs/windowMessageListener.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * A decorator or higher order component that provides methods\n * for cross-origin communication (between iframes/windows).\n *\n * see https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage\n * @module windowMessageListener\n * @param {Function} messageHandler a handler for messages receieved by the component\n * @param {Function} validSource an optional function that would restrict message handling to a specified source.\n * @returns {Function} a function that decorates a React component with the behavior\n */","meta":{"filename":"lfjcgon097m8kejmec09bg.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"A decorator or higher order component that provides methods\nfor cross-origin communication (between iframes/windows).\n\nsee https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage","kind":"module","name":"windowMessageListener","params":[{"type":{"names":["function"]},"description":"a handler for messages receieved by the component","name":"messageHandler"},{"type":{"names":["function"]},"description":"an optional function that would restrict message handling to a specified source.","name":"validSource"}],"returns":[{"type":{"names":["function"]},"description":"a function that decorates a React component with the behavior"}],"longname":"module:windowMessageListener","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/windowMessageListener.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/windowMessageListener.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/windowMessageListener.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/windowMessageListener","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/windowMessageListener.ts').default","esPath":"@instructure/ui-react-utils/es/windowMessageListener","themePath":"packages/ui-react-utils/src/windowMessageListener.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/windowMessageListener.ts","id":"windowMessageListener","title":"windowMessageListener"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/react\n * ---\n * A decorator or higher order component that provides methods\n * for cross-origin communication (between iframes/windows).\n *\n * see https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage\n * @module windowMessageListener\n * @param {Function} messageHandler a handler for messages receieved by the component\n * @param {Function} validSource an optional function that would restrict message handling to a specified source.\n * @returns {Function} a function that decorates a React component with the behavior\n */","meta":{"filename":"skpr8mpkip10421ywz38e.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"A decorator or higher order component that provides methods\nfor cross-origin communication (between iframes/windows).\n\nsee https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage","kind":"module","name":"windowMessageListener","params":[{"type":{"names":["function"]},"description":"a handler for messages receieved by the component","name":"messageHandler"},{"type":{"names":["function"]},"description":"an optional function that would restrict message handling to a specified source.","name":"validSource"}],"returns":[{"type":{"names":["function"]},"description":"a function that decorates a React component with the behavior"}],"longname":"module:windowMessageListener","undocumented":false,"category":"utilities/react","relativePath":"packages/ui-react-utils/src/windowMessageListener.ts","extension":".ts","srcPath":"packages/ui-react-utils/src/windowMessageListener.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/windowMessageListener.ts","packageName":"@instructure/ui-react-utils","requirePath":"@instructure/ui-react-utils/lib/windowMessageListener","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-react-utils/src/windowMessageListener.ts').default","esPath":"@instructure/ui-react-utils/es/windowMessageListener","themePath":"packages/ui-react-utils/src/windowMessageListener.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-react-utils/src/windowMessageListener.ts","id":"windowMessageListener","title":"windowMessageListener"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/withStyle.json b/pr-preview/pr-1812/docs/withStyle.json
index 2c7261a43d..299edb1dd8 100644
--- a/pr-preview/pr-1812/docs/withStyle.json
+++ b/pr-preview/pr-1812/docs/withStyle.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/themes\n * ---\n *\n * A decorator or higher order component that makes a component themeable.\n *\n * It adds a `makeStyles` function and the generated `styles` object to the decorated Component's props. If it has an own theme, it also adds the `themeOverride` prop to the component.\n *\n * As a HOC:\n *\n * ```js-code\n * import { withStyle, jsx } from '@instructure/emotion'\n * import generateStyle from './styles'\n * import generateComponentTheme from './theme'\n *\n * export default withStyle(generateStyle, generateComponentTheme)(ExampleComponent)\n * ```\n *\n * Themeable components inject their themed styles into the document\n * when they are mounted.\n *\n * ### Applying themes\n *\n * A themeable component’s theme can be configured via wrapping it in an\n * [InstUISettingsProvider](#InstUISettingsProvider) component, and/or set\n * explicitly via its `themeOverride` prop.\n *\n * InstUISettingsProvider provides a theme object with global theme variables (e.g. the [canvas theme](/#canvas)).\n * These variables are mapped to the component's own variables in `theme.js` (see [@instructure/emotion](#emotion) package documentation for more info).\n *\n * With the `themeOverride` prop you can directly set/override the component theme variables declared in theme.js. It accepts an object or a function. The function has the component's theme and the currently active main theme as its parameter.\n *\n * See more about the overrides on the [Using theme overrides](/#using-theme-overrides) docs page.\n *\n * ```js-code\n * // ExampleComponent/theme.js\n * const generateComponentTheme = (theme) => {\n * const { colors } = theme\n *\n * const componentVariables = {\n * background: colors?.backgroundMedium,\n * color: colors?.textDarkest,\n *\n * hoverColor: colors?.textLightest,\n * hoverBackground: colors?.backgroundDarkest\n * }\n *\n * return componentVariables\n * }\n * export default generateComponentTheme\n * ```\n *\n * ```jsx-code\n * {// global theme override}\n * \n * {// component theme override}\n * \n *\n * {// component theme override with function}\n * ({\n * hoverBackground: componentTheme.background,\n * activeBackground: currentTheme.colors.backgroundBrand\n * })} />\n * \n * ```\n *\n * @module withStyle\n *\n * @param {function} generateStyle - The function that returns the component's style object\n * @param {function} generateComponentTheme - The function that returns the component's theme variables object\n * @returns {ReactElement} The decorated WithStyle Component\n */","meta":{"filename":"a316y5b139d3tgtqca0pi4.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nA decorator or higher order component that makes a component themeable.\n\nIt adds a `makeStyles` function and the generated `styles` object to the decorated Component's props. If it has an own theme, it also adds the `themeOverride` prop to the component.\n\nAs a HOC:\n\n```js-code\nimport { withStyle, jsx } from '@instructure/emotion'\nimport generateStyle from './styles'\nimport generateComponentTheme from './theme'\n\nexport default withStyle(generateStyle, generateComponentTheme)(ExampleComponent)\n```\n\nThemeable components inject their themed styles into the document\nwhen they are mounted.\n\n### Applying themes\n\nA themeable component’s theme can be configured via wrapping it in an\n[InstUISettingsProvider](#InstUISettingsProvider) component, and/or set\nexplicitly via its `themeOverride` prop.\n\nInstUISettingsProvider provides a theme object with global theme variables (e.g. the [canvas theme](/#canvas)).\nThese variables are mapped to the component's own variables in `theme.js` (see [@instructure/emotion](#emotion) package documentation for more info).\n\nWith the `themeOverride` prop you can directly set/override the component theme variables declared in theme.js. It accepts an object or a function. The function has the component's theme and the currently active main theme as its parameter.\n\nSee more about the overrides on the [Using theme overrides](/#using-theme-overrides) docs page.\n\n```js-code\n// ExampleComponent/theme.js\nconst generateComponentTheme = (theme) => {\n const { colors } = theme\n\n const componentVariables = {\n background: colors?.backgroundMedium,\n color: colors?.textDarkest,\n\n hoverColor: colors?.textLightest,\n hoverBackground: colors?.backgroundDarkest\n }\n\n return componentVariables\n}\nexport default generateComponentTheme\n```\n\n```jsx-code\n{// global theme override}\n\n {// component theme override}\n \n\n {// component theme override with function}\n ({\n hoverBackground: componentTheme.background,\n activeBackground: currentTheme.colors.backgroundBrand\n })} />\n\n```","kind":"module","name":"withStyle","params":[{"type":{"names":["function"]},"description":"The function that returns the component's style object","name":"generateStyle"},{"type":{"names":["function"]},"description":"The function that returns the component's theme variables object","name":"generateComponentTheme"}],"returns":[{"type":{"names":["ReactElement"]},"description":"The decorated WithStyle Component"}],"longname":"module:withStyle","undocumented":false,"category":"utilities/themes","relativePath":"packages/emotion/src/withStyle.tsx","extension":".tsx","srcPath":"packages/emotion/src/withStyle.tsx","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/withStyle.tsx","packageName":"@instructure/emotion","requirePath":"@instructure/emotion/lib/withStyle","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/emotion/src/withStyle.tsx').default","esPath":"@instructure/emotion/es/withStyle","themePath":"packages/emotion/src/withStyle.tsx","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/withStyle.tsx","id":"withStyle","title":"withStyle"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/themes\n * ---\n *\n * A decorator or higher order component that makes a component themeable.\n *\n * It adds a `makeStyles` function and the generated `styles` object to the decorated Component's props. If it has an own theme, it also adds the `themeOverride` prop to the component.\n *\n * As a HOC:\n *\n * ```js-code\n * import { withStyle, jsx } from '@instructure/emotion'\n * import generateStyle from './styles'\n * import generateComponentTheme from './theme'\n *\n * export default withStyle(generateStyle, generateComponentTheme)(ExampleComponent)\n * ```\n *\n * Themeable components inject their themed styles into the document\n * when they are mounted.\n *\n * ### Applying themes\n *\n * A themeable component’s theme can be configured via wrapping it in an\n * [InstUISettingsProvider](#InstUISettingsProvider) component, and/or set\n * explicitly via its `themeOverride` prop.\n *\n * InstUISettingsProvider provides a theme object with global theme variables (e.g. the [canvas theme](/#canvas)).\n * These variables are mapped to the component's own variables in `theme.js` (see [@instructure/emotion](#emotion) package documentation for more info).\n *\n * With the `themeOverride` prop you can directly set/override the component theme variables declared in theme.js. It accepts an object or a function. The function has the component's theme and the currently active main theme as its parameter.\n *\n * See more about the overrides on the [Using theme overrides](/#using-theme-overrides) docs page.\n *\n * ```js-code\n * // ExampleComponent/theme.js\n * const generateComponentTheme = (theme) => {\n * const { colors } = theme\n *\n * const componentVariables = {\n * background: colors?.backgroundMedium,\n * color: colors?.textDarkest,\n *\n * hoverColor: colors?.textLightest,\n * hoverBackground: colors?.backgroundDarkest\n * }\n *\n * return componentVariables\n * }\n * export default generateComponentTheme\n * ```\n *\n * ```jsx-code\n * {// global theme override}\n * \n * {// component theme override}\n * \n *\n * {// component theme override with function}\n * ({\n * hoverBackground: componentTheme.background,\n * activeBackground: currentTheme.colors.backgroundBrand\n * })} />\n * \n * ```\n *\n * @module withStyle\n *\n * @param {function} generateStyle - The function that returns the component's style object\n * @param {function} generateComponentTheme - The function that returns the component's theme variables object\n * @returns {ReactElement} The decorated WithStyle Component\n */","meta":{"filename":"atptmhbtjr54hb8xphnbwa.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"\nA decorator or higher order component that makes a component themeable.\n\nIt adds a `makeStyles` function and the generated `styles` object to the decorated Component's props. If it has an own theme, it also adds the `themeOverride` prop to the component.\n\nAs a HOC:\n\n```js-code\nimport { withStyle, jsx } from '@instructure/emotion'\nimport generateStyle from './styles'\nimport generateComponentTheme from './theme'\n\nexport default withStyle(generateStyle, generateComponentTheme)(ExampleComponent)\n```\n\nThemeable components inject their themed styles into the document\nwhen they are mounted.\n\n### Applying themes\n\nA themeable component’s theme can be configured via wrapping it in an\n[InstUISettingsProvider](#InstUISettingsProvider) component, and/or set\nexplicitly via its `themeOverride` prop.\n\nInstUISettingsProvider provides a theme object with global theme variables (e.g. the [canvas theme](/#canvas)).\nThese variables are mapped to the component's own variables in `theme.js` (see [@instructure/emotion](#emotion) package documentation for more info).\n\nWith the `themeOverride` prop you can directly set/override the component theme variables declared in theme.js. It accepts an object or a function. The function has the component's theme and the currently active main theme as its parameter.\n\nSee more about the overrides on the [Using theme overrides](/#using-theme-overrides) docs page.\n\n```js-code\n// ExampleComponent/theme.js\nconst generateComponentTheme = (theme) => {\n const { colors } = theme\n\n const componentVariables = {\n background: colors?.backgroundMedium,\n color: colors?.textDarkest,\n\n hoverColor: colors?.textLightest,\n hoverBackground: colors?.backgroundDarkest\n }\n\n return componentVariables\n}\nexport default generateComponentTheme\n```\n\n```jsx-code\n{// global theme override}\n\n {// component theme override}\n \n\n {// component theme override with function}\n ({\n hoverBackground: componentTheme.background,\n activeBackground: currentTheme.colors.backgroundBrand\n })} />\n\n```","kind":"module","name":"withStyle","params":[{"type":{"names":["function"]},"description":"The function that returns the component's style object","name":"generateStyle"},{"type":{"names":["function"]},"description":"The function that returns the component's theme variables object","name":"generateComponentTheme"}],"returns":[{"type":{"names":["ReactElement"]},"description":"The decorated WithStyle Component"}],"longname":"module:withStyle","undocumented":false,"category":"utilities/themes","relativePath":"packages/emotion/src/withStyle.tsx","extension":".tsx","srcPath":"packages/emotion/src/withStyle.tsx","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/withStyle.tsx","packageName":"@instructure/emotion","requirePath":"@instructure/emotion/lib/withStyle","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/emotion/src/withStyle.tsx').default","esPath":"@instructure/emotion/es/withStyle","themePath":"packages/emotion/src/withStyle.tsx","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/emotion/src/withStyle.tsx","id":"withStyle","title":"withStyle"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/within.json b/pr-preview/pr-1812/docs/within.json
index daf8fe3a0c..dfc4358fd3 100644
--- a/pr-preview/pr-1812/docs/within.json
+++ b/pr-preview/pr-1812/docs/within.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Determines if one numerical value (a) is within a designated range (diff) of another (b)\n *\n * @module within\n *\n * @param {number} a\n * @param {number} b\n * @param {number} [diff=1]\n * @returns {Boolean} Returns true if a is within the diff range of b\n */","meta":{"filename":"xqbyutzrvjybeiqh9q128.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Determines if one numerical value (a) is within a designated range (diff) of another (b)","kind":"module","name":"within","params":[{"type":{"names":["number"]},"name":"a"},{"type":{"names":["number"]},"name":"b"},{"type":{"names":["number"]},"optional":true,"defaultvalue":1,"name":"diff"}],"returns":[{"type":{"names":["Boolean"]},"description":"Returns true if a is within the diff range of b"}],"longname":"module:within","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/within.ts","extension":".ts","srcPath":"packages/ui-utils/src/within.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/within.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/within","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/within.ts').default","esPath":"@instructure/ui-utils/es/within","themePath":"packages/ui-utils/src/within.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/within.ts","id":"within","title":"within"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities\n * ---\n * Determines if one numerical value (a) is within a designated range (diff) of another (b)\n *\n * @module within\n *\n * @param {number} a\n * @param {number} b\n * @param {number} [diff=1]\n * @returns {Boolean} Returns true if a is within the diff range of b\n */","meta":{"filename":"v92kbsqx8tcjl06gbmz6.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Determines if one numerical value (a) is within a designated range (diff) of another (b)","kind":"module","name":"within","params":[{"type":{"names":["number"]},"name":"a"},{"type":{"names":["number"]},"name":"b"},{"type":{"names":["number"]},"optional":true,"defaultvalue":1,"name":"diff"}],"returns":[{"type":{"names":["Boolean"]},"description":"Returns true if a is within the diff range of b"}],"longname":"module:within","undocumented":false,"category":"utilities","relativePath":"packages/ui-utils/src/within.ts","extension":".ts","srcPath":"packages/ui-utils/src/within.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/within.ts","packageName":"@instructure/ui-utils","requirePath":"@instructure/ui-utils/lib/within","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-utils/src/within.ts').default","esPath":"@instructure/ui-utils/es/within","themePath":"packages/ui-utils/src/within.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-utils/src/within.ts","id":"within","title":"within"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/docs/xor.json b/pr-preview/pr-1812/docs/xor.json
index 64cdda6645..6aba73c55e 100644
--- a/pr-preview/pr-1812/docs/xor.json
+++ b/pr-preview/pr-1812/docs/xor.json
@@ -1 +1 @@
-{"comment":"/**\n * ---\n * category: utilities/PropTypes\n * ---\n * Verify that a prop cannot be given if one or more other props are also\n * given.\n *\n * ```js-code\n * import { xor } from '@instructure/ui-prop-types'\n *\n * class Foo extends Component {\n * static propTypes = {\n * decimalPrecision: xor(PropTypes.number, 'significantDigits'),\n * significantDigits: xor(PropTypes.number, 'decimalPrecision')\n * }\n * ...\n * ```\n *\n * This will throw an error if both the `decimalPrecision` and\n * `significantDigits` props are provided.\n * @module xor\n * @param {function} propType - validates the prop type. Returns null if valid, error otherwise\n * @param {...string} otherPropNames - reject if any of these other props are also given\n * @returns {function} A function that returns Error if any of the other props\n * are also given, null otherwise\n */","meta":{"filename":"gtzn2hx41mpq96cignvzi.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Verify that a prop cannot be given if one or more other props are also\ngiven.\n\n```js-code\n import { xor } from '@instructure/ui-prop-types'\n\n class Foo extends Component {\n static propTypes = {\n decimalPrecision: xor(PropTypes.number, 'significantDigits'),\n significantDigits: xor(PropTypes.number, 'decimalPrecision')\n }\n ...\n```\n\nThis will throw an error if both the `decimalPrecision` and\n`significantDigits` props are provided.","kind":"module","name":"xor","params":[{"type":{"names":["function"]},"description":"validates the prop type. Returns null if valid, error otherwise","name":"propType"},{"type":{"names":["string"]},"variable":true,"description":"reject if any of these other props are also given","name":"otherPropNames"}],"returns":[{"type":{"names":["function"]},"description":"A function that returns Error if any of the other props\nare also given, null otherwise"}],"longname":"module:xor","undocumented":false,"category":"utilities/PropTypes","relativePath":"packages/ui-prop-types/src/xor.ts","extension":".ts","srcPath":"packages/ui-prop-types/src/xor.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-prop-types/src/xor.ts","packageName":"@instructure/ui-prop-types","requirePath":"@instructure/ui-prop-types/lib/xor","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-prop-types/src/xor.ts').default","esPath":"@instructure/ui-prop-types/es/xor","themePath":"packages/ui-prop-types/src/xor.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-prop-types/src/xor.ts","id":"xor","title":"xor"}
\ No newline at end of file
+{"comment":"/**\n * ---\n * category: utilities/PropTypes\n * ---\n * Verify that a prop cannot be given if one or more other props are also\n * given.\n *\n * ```js-code\n * import { xor } from '@instructure/ui-prop-types'\n *\n * class Foo extends Component {\n * static propTypes = {\n * decimalPrecision: xor(PropTypes.number, 'significantDigits'),\n * significantDigits: xor(PropTypes.number, 'decimalPrecision')\n * }\n * ...\n * ```\n *\n * This will throw an error if both the `decimalPrecision` and\n * `significantDigits` props are provided.\n * @module xor\n * @param {function} propType - validates the prop type. Returns null if valid, error otherwise\n * @param {...string} otherPropNames - reject if any of these other props are also given\n * @returns {function} A function that returns Error if any of the other props\n * are also given, null otherwise\n */","meta":{"filename":"46uacz4773kmb9iuw241a.js","lineno":1,"columnno":0,"path":"/tmp","code":{}},"description":"Verify that a prop cannot be given if one or more other props are also\ngiven.\n\n```js-code\n import { xor } from '@instructure/ui-prop-types'\n\n class Foo extends Component {\n static propTypes = {\n decimalPrecision: xor(PropTypes.number, 'significantDigits'),\n significantDigits: xor(PropTypes.number, 'decimalPrecision')\n }\n ...\n```\n\nThis will throw an error if both the `decimalPrecision` and\n`significantDigits` props are provided.","kind":"module","name":"xor","params":[{"type":{"names":["function"]},"description":"validates the prop type. Returns null if valid, error otherwise","name":"propType"},{"type":{"names":["string"]},"variable":true,"description":"reject if any of these other props are also given","name":"otherPropNames"}],"returns":[{"type":{"names":["function"]},"description":"A function that returns Error if any of the other props\nare also given, null otherwise"}],"longname":"module:xor","undocumented":false,"category":"utilities/PropTypes","relativePath":"packages/ui-prop-types/src/xor.ts","extension":".ts","srcPath":"packages/ui-prop-types/src/xor.ts","srcUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-prop-types/src/xor.ts","packageName":"@instructure/ui-prop-types","requirePath":"@instructure/ui-prop-types/lib/xor","requireStr":"require('/home/runner/work/instructure-ui/instructure-ui/packages/ui-prop-types/src/xor.ts').default","esPath":"@instructure/ui-prop-types/es/xor","themePath":"packages/ui-prop-types/src/xor.ts","themeUrl":"https://github.com/instructure/instructure-ui/tree/master/packages/ui-prop-types/src/xor.ts","id":"xor","title":"xor"}
\ No newline at end of file
diff --git a/pr-preview/pr-1812/main.js b/pr-preview/pr-1812/main.js
index 8cf7978df5..cb2e2461f5 100644
--- a/pr-preview/pr-1812/main.js
+++ b/pr-preview/pr-1812/main.js
@@ -1283,7 +1283,7 @@ this.ref=el,"function"==typeof elementRef&&elementRef(el)},this.onMenuItemSelect
return(0,emotion_react_browser_esm.Y)(Popover.A,{renderTrigger:(0,emotion_react_browser_esm.Y)("div",{css:null===(_this$props2=this.props)||void 0===_this$props2||null===(_this$props2$styles=_this$props2.styles)||void 0===_this$props2$styles?void 0:_this$props2$styles.addNewPresetButton},(0,emotion_react_browser_esm.Y)(IconButton.K,{disabled:this.props.disabled,screenReaderLabel:this.props.colorMixerSettings.addNewPresetButtonScreenReaderLabel},_IconAddLine||(_IconAddLine=(0,emotion_react_browser_esm.Y)(IconAddLine.p,null)))),isShowingContent:this.state.openAddNew,onShowContent:()=>{this.props.disabled||this.setState({openAddNew:!0})},onHideContent:()=>{this.setState({openAddNew:!1})},on:"click",screenReaderLabel:this.props.popoverScreenReaderLabel,shouldContainFocus:!0,shouldReturnFocus:!0,shouldCloseOnDocumentClick:!0,offsetY:16,mountNode:()=>document.getElementById("main")},(0,emotion_react_browser_esm.Y)("div",{css:null===(_this$props$styles=this.props.styles)||void 0===_this$props$styles?void 0:_this$props$styles.popoverContent},(0,emotion_react_browser_esm.Y)(ColorMixer,{value:ui_color_utils_es.default.colorToHex8(this.state.newColor),onChange:newColor=>this.setState({newColor:ui_color_utils_es.default.colorToRGB(newColor)}),withAlpha:null===(_this$props3=this.props)||void 0===_this$props3||null===(_this$props3$colorMix=_this$props3.colorMixerSettings)||void 0===_this$props3$colorMix||null===(_this$props3$colorMix2=_this$props3$colorMix.colorMixer)||void 0===_this$props3$colorMix2?void 0:_this$props3$colorMix2.withAlpha,rgbRedInputScreenReaderLabel:this.props.colorMixerSettings.colorMixer.rgbRedInputScreenReaderLabel,rgbGreenInputScreenReaderLabel:this.props.colorMixerSettings.colorMixer.rgbGreenInputScreenReaderLabel,rgbBlueInputScreenReaderLabel:this.props.colorMixerSettings.colorMixer.rgbBlueInputScreenReaderLabel,rgbAlphaInputScreenReaderLabel:this.props.colorMixerSettings.colorMixer.rgbAlphaInputScreenReaderLabel,colorSliderNavigationExplanationScreenReaderLabel:this.props.colorMixerSettings.colorMixer.colorSliderNavigationExplanationScreenReaderLabel,alphaSliderNavigationExplanationScreenReaderLabel:this.props.colorMixerSettings.colorMixer.alphaSliderNavigationExplanationScreenReaderLabel,colorPaletteNavigationExplanationScreenReaderLabel:this.props.colorMixerSettings.colorMixer.colorPaletteNavigationExplanationScreenReaderLabel}),(null===(_this$props4=this.props)||void 0===_this$props4||null===(_this$props4$colorMix=_this$props4.colorMixerSettings)||void 0===_this$props4$colorMix?void 0:_this$props4$colorMix.colorContrast)&&(0,emotion_react_browser_esm.Y)("div",{css:null===(_this$props$styles2=this.props.styles)||void 0===_this$props$styles2?void 0:_this$props$styles2.popoverContrastBlock},(0,emotion_react_browser_esm.Y)(ColorContrast,{firstColor:this.props.colorMixerSettings.colorContrast.firstColor,secondColor:ui_color_utils_es.default.colorToHex8(this.state.newColor),label:this.props.colorMixerSettings.colorContrast.label,successLabel:this.props.colorMixerSettings.colorContrast.successLabel,failureLabel:this.props.colorMixerSettings.colorContrast.failureLabel,normalTextLabel:this.props.colorMixerSettings.colorContrast.normalTextLabel,largeTextLabel:this.props.colorMixerSettings.colorContrast.largeTextLabel,graphicsTextLabel:this.props.colorMixerSettings.colorContrast.graphicsTextLabel,firstColorLabel:this.props.colorMixerSettings.colorContrast.firstColorLabel,secondColorLabel:this.props.colorMixerSettings.colorContrast.secondColorLabel}))),(0,emotion_react_browser_esm.Y)("div",{css:null===(_this$props$styles3=this.props.styles)||void 0===_this$props$styles3?void 0:_this$props$styles3.popoverFooter},(0,emotion_react_browser_esm.Y)(Button.$,{onClick:()=>{var _this$props5,_this$props5$colorMix
null===(_this$props5=this.props)||void 0===_this$props5||null===(_this$props5$colorMix=_this$props5.colorMixerSettings)||void 0===_this$props5$colorMix||_this$props5$colorMix.onPresetChange([ui_color_utils_es.default.colorToHex8(this.state.newColor),...this.props.colors]),this.setState({openAddNew:!1})},color:"primary",margin:"0 xx-small 0 xx-small"},null===(_this$props$colorMixe2=this.props.colorMixerSettings)||void 0===_this$props$colorMixe2?void 0:_this$props$colorMixe2.popoverAddButtonLabel),(0,emotion_react_browser_esm.Y)(Button.$,{onClick:()=>this.setState({openAddNew:!1}),color:"secondary",margin:"0 xx-small 0 xx-small"},null===(_this$props$colorMixe3=this.props.colorMixerSettings)||void 0===_this$props$colorMixe3?void 0:_this$props$colorMixe3.popoverCloseButtonLabel)))},this.renderColorIndicator=(color,selectOnClick)=>{const indicatorBase=this.renderIndicatorBase(color,selectOnClick)
return this.props.disabled?indicatorBase:this.renderIndicatorTooltip(indicatorBase,color)},this.renderIndicatorBase=(color,selectOnClick)=>{var _this$props6,_this$props6$styles
-return(0,emotion_react_browser_esm.Y)(View.S,Object.assign({disabled:this.props.disabled,position:"relative",width:"2.375rem",height:"2.375rem",background:"transparent",margin:"xx-small",display:"inline-block",borderRadius:"medium",borderWidth:"0",padding:"0",cursor:this.props.disabled?"not-allowed":"auto",as:"button"},selectOnClick?{onClick:()=>this.props.onSelect(color)}:{},this.isSelectedColor(color)?{"aria-label":"selected"}:{}),(0,emotion_react_browser_esm.Y)("div",null,(0,emotion_react_browser_esm.Y)(ColorIndicator,{color,shape:"rectangle",role:"presentation"}),this.isSelectedColor(color)&&(0,emotion_react_browser_esm.Y)("div",{css:null===(_this$props6=this.props)||void 0===_this$props6||null===(_this$props6$styles=_this$props6.styles)||void 0===_this$props6$styles?void 0:_this$props6$styles.selectedIndicator},(0,emotion_react_browser_esm.Y)(IconCheckDarkSolid.b,{themeOverride:{sizeXSmall:"0.8rem"},size:"x-small"}))))},this.renderIndicatorTooltip=(child,color)=>(0,emotion_react_browser_esm.Y)(Tooltip.m,{renderTip:(0,emotion_react_browser_esm.Y)("div",null,color)},child),this.renderSettingsMenu=(color,index)=>(0,emotion_react_browser_esm.Y)(Drilldown.c,{onSelect:this.onMenuItemSelected(color),trigger:this.renderColorIndicator(color),key:`color-preset-color-${index}`,rootPageId:"root",width:"10rem",offsetY:"15rem"},(0,emotion_react_browser_esm.Y)(Drilldown.c.Page,{withoutHeaderSeparator:!0,id:"root",renderTitle:color},(0,emotion_react_browser_esm.Y)(Drilldown.c.Option,{value:"select",id:"select"},this.props.colorMixerSettings.selectColorLabel),(0,emotion_react_browser_esm.Y)(Drilldown.c.Option,{value:"remove",id:"remove"},this.props.colorMixerSettings.removeColorLabel))),this.state={openEditor:!1,openAddNew:!1,newColor:{r:51,g:99,b:42,a:1}}}componentDidMount(){var _this$props$makeStyle,_this$props7
+return(0,emotion_react_browser_esm.Y)(View.S,Object.assign({disabled:this.props.disabled,position:"relative",width:"2.375rem",height:"2.375rem",background:"transparent",margin:"xx-small",display:"inline-block",borderRadius:"medium",borderWidth:"0",padding:"0",cursor:this.props.disabled?"not-allowed":"auto",as:"button"},selectOnClick?{onClick:()=>this.props.onSelect(color)}:{},{"aria-label":`${color}${this.isSelectedColor(color)?" selected":""}`}),(0,emotion_react_browser_esm.Y)("div",null,(0,emotion_react_browser_esm.Y)(ColorIndicator,{color,shape:"rectangle",role:"presentation"}),this.isSelectedColor(color)&&(0,emotion_react_browser_esm.Y)("div",{css:null===(_this$props6=this.props)||void 0===_this$props6||null===(_this$props6$styles=_this$props6.styles)||void 0===_this$props6$styles?void 0:_this$props6$styles.selectedIndicator},(0,emotion_react_browser_esm.Y)(IconCheckDarkSolid.b,{themeOverride:{sizeXSmall:"0.8rem"},size:"x-small"}))))},this.renderIndicatorTooltip=(child,color)=>(0,emotion_react_browser_esm.Y)(Tooltip.m,{renderTip:(0,emotion_react_browser_esm.Y)("div",null,color),elementRef:element=>{element&&element.firstElementChild instanceof HTMLButtonElement&&element.firstElementChild.removeAttribute("aria-describedby")}},child),this.renderSettingsMenu=(color,index)=>(0,emotion_react_browser_esm.Y)(Drilldown.c,{onSelect:this.onMenuItemSelected(color),trigger:this.renderColorIndicator(color),key:`color-preset-color-${index}`,rootPageId:"root",width:"10rem",offsetY:"15rem"},(0,emotion_react_browser_esm.Y)(Drilldown.c.Page,{withoutHeaderSeparator:!0,id:"root",renderTitle:color},(0,emotion_react_browser_esm.Y)(Drilldown.c.Option,{value:"select",id:"select"},this.props.colorMixerSettings.selectColorLabel),(0,emotion_react_browser_esm.Y)(Drilldown.c.Option,{value:"remove",id:"remove"},this.props.colorMixerSettings.removeColorLabel))),this.state={openEditor:!1,openAddNew:!1,newColor:{r:51,g:99,b:42,a:1}}}componentDidMount(){var _this$props$makeStyle,_this$props7
null===(_this$props$makeStyle=(_this$props7=this.props).makeStyles)||void 0===_this$props$makeStyle||_this$props$makeStyle.call(_this$props7)}componentDidUpdate(){var _this$props$makeStyle2,_this$props8
null===(_this$props$makeStyle2=(_this$props8=this.props).makeStyles)||void 0===_this$props$makeStyle2||_this$props$makeStyle2.call(_this$props8)}get isModifiable(){var _this$props$colorMixe4
return"function"==typeof(null===(_this$props$colorMixe4=this.props.colorMixerSettings)||void 0===_this$props$colorMixe4?void 0:_this$props$colorMixe4.onPresetChange)}isSelectedColor(color){const selected=this.props.selected
@@ -4884,7 +4884,7 @@ let visiblePages=allPages
if(this.compactView){const firstIndex=0,lastIndex=allPages.length-1,sliceStart=Math.min(lastIndex-3,Math.max(currentPageIndex-1,firstIndex)),sliceEnd=Math.min(currentPageIndex+4,lastIndex)
visiblePages=allPages.slice(sliceStart,sliceEnd)
const firstPage=allPages[firstIndex],lastPage=allPages[lastIndex]
-sliceStart-firstIndex>1&&visiblePages.unshift((0,emotion_react_browser_esm.Y)("li",{style:{all:"unset"},key:"first","aria-hidden":"true"},this.props.ellipsis)),sliceStart-firstIndex>0&&visiblePages.unshift(firstPage),lastIndex-sliceEnd+1>1&&visiblePages.push((0,emotion_react_browser_esm.Y)("li",{style:{all:"unset"},key:"last","aria-hidden":"true"},this.props.ellipsis)),lastIndex-sliceEnd+1>0&&visiblePages.push(lastPage)}return(0,emotion_react_browser_esm.Y)(View.S,{display:"inline-block",as:"ul"},this.transferDisabledPropToChildren(visiblePages))}getArrowVariant(direction,currentPageIndex,pagesCount){switch(direction){case"first":return{pageIndex:0,label:this.props.labelFirst||"First Page",shouldEnableIcon:currentPageIndex>1,handleButtonRef:el=>{this._firstButton=el}}
+sliceStart-firstIndex>1&&visiblePages.unshift((0,emotion_react_browser_esm.Y)("li",{style:{all:"unset"},key:"first","aria-hidden":"true"},this.props.ellipsis)),sliceStart-firstIndex>0&&visiblePages.unshift(firstPage),lastIndex-sliceEnd+1>1&&visiblePages.push((0,emotion_react_browser_esm.Y)("li",{style:{all:"unset"},key:"last","aria-hidden":"true"},this.props.ellipsis)),lastIndex-sliceEnd+1>0&&visiblePages.push(lastPage)}return(0,emotion_react_browser_esm.Y)(View.S,{display:"inline-block",as:"ul",margin:"0"},this.transferDisabledPropToChildren(visiblePages))}getArrowVariant(direction,currentPageIndex,pagesCount){switch(direction){case"first":return{pageIndex:0,label:this.props.labelFirst||"First Page",shouldEnableIcon:currentPageIndex>1,handleButtonRef:el=>{this._firstButton=el}}
case"prev":return{pageIndex:currentPageIndex-1,label:this.props.labelPrev||"Previous Page",shouldEnableIcon:currentPageIndex>0,handleButtonRef:el=>{this._prevButton=el}}
case"next":return{pageIndex:currentPageIndex+1,label:this.props.labelNext||"Next Page",shouldEnableIcon:currentPageIndex{this._nextButton=el}}
case"last":return{pageIndex:pagesCount-1,label:this.props.labelLast||"Last Page",shouldEnableIcon:currentPageIndex{this._lastButton=el}}}}renderArrowButton(direction,currentPageIndex){var _page$props,_page$props2
@@ -5450,11 +5450,12 @@ this.dispatchViewSelection({anchor:0,head:null===(_this$currentDocValue=this.cur
null===(_this$_editorView3=this._editorView)||void 0===_this$_editorView3||_this$_editorView3.update([transaction])}})}))}indentAll(){this.addAnimationFrame((()=>{this._editorView&&this.currentDocValue&&this.indentCodeRange(0,this.currentDocValue.length)}))}indentCodeRange(from,to){this.addAnimationFrame((()=>{this._editorView&&this.currentDocValue&&this.dispatchViewChanges({changes:(0,language_dist.wF)(this._editorView.state,from,to)})}))}dispatchViewEffects(effects){this._editorView&&effects&&this._editorView.dispatch({effects})}dispatchViewChanges({changes,selection,userEvent}){this._editorView&&changes&&this._editorView.dispatch({changes,...selection?{selection}:void 0,...userEvent?{userEvent}:void 0})}dispatchViewSelection(selection){this._editorView&&selection&&this._editorView.dispatch({selection})}get currentDocValue(){var _this$_editorView4
return null===(_this$_editorView4=this._editorView)||void 0===_this$_editorView4?void 0:_this$_editorView4.state.doc}get isControlled(){return"string"==typeof this.props.value}constructor(props){super(props),this._id=void 0,this.ref=null,this._containerRef=void 0,this._editorView=void 0,this._raf=[],this._newSelectionAfterValueChange=void 0,this.handleRef=el=>{const elementRef=this.props.elementRef
this.ref=el,"function"==typeof elementRef&&elementRef(el)},this.handleContainerRef=el=>{const containerRef=this.props.containerRef
-this._containerRef=el||void 0,"function"==typeof containerRef&&containerRef(el)},this._id=props.deterministicId()}componentDidMount(){var _this$props$makeStyle,_this$props2
+this._containerRef=el||void 0,"function"==typeof containerRef&&containerRef(el)},this.assignAriaLabel=()=>{if(this._containerRef){const editorDiv=this._containerRef.querySelector('[role="textbox"]')
+editorDiv&&editorDiv.setAttribute("aria-labelledby",`${this._id}`)}},this._id=props.deterministicId()}componentDidMount(){var _this$props$makeStyle,_this$props2
const _this$props=this.props,value=_this$props.value,defaultValue=_this$props.defaultValue,autofocus=_this$props.autofocus,indentOnLoad=_this$props.indentOnLoad
null===(_this$props$makeStyle=(_this$props2=this.props).makeStyles)||void 0===_this$props$makeStyle||_this$props$makeStyle.call(_this$props2)
const state=dist.$t.create({doc:value||defaultValue,extensions:this.extensions})
-this._editorView=new view_dist.Lz({state,parent:this._containerRef}),autofocus&&this.focus(),indentOnLoad&&this.indentAll()}componentWillUnmount(){var _this$_editorView5
+this._editorView=new view_dist.Lz({state,parent:this._containerRef}),autofocus&&this.focus(),indentOnLoad&&this.indentAll(),this.assignAriaLabel()}componentWillUnmount(){var _this$_editorView5
null===(_this$_editorView5=this._editorView)||void 0===_this$_editorView5||_this$_editorView5.destroy(),this.cancelAnimationFrames()}componentDidUpdate(prevProps){var _this$props$makeStyle2,_this$props3
null===(_this$props$makeStyle2=(_this$props3=this.props).makeStyles)||void 0===_this$props$makeStyle2||_this$props$makeStyle2.call(_this$props3),this._editorView&&(this.props.value!==prevProps.value&&this.refreshEditorValue(),this.shouldUpdateExtensions(prevProps)&&this.refreshExtensions())}shouldUpdateExtensions(prevProps){const propsToObserve=["styles","themeOverride","language","readOnly","editable","lineNumbers","highlightActiveLineGutter","foldGutter","lineWrapping","autofocus","spellcheck","direction","dir","rtlMoveVisually","indentOnLoad","indentWithTab","indentUnit","highlightActiveLine","attachment"]
for(const prop of propsToObserve)if(!fast_deep_equal_default()(this.props[prop],prevProps[prop]))return!0
@@ -5485,7 +5486,7 @@ const value=this.props.value,currentValue=this._editorView.state.doc.toString()
if(void 0!==value&¤tValue!==value){let userEvent
const lengthDiff=value.length-currentValue.length
1===lengthDiff?userEvent="input.type":-1===lengthDiff&&(userEvent="delete.backward"),this.dispatchViewChanges({changes:{from:0,to:currentValue.length,insert:value||""},selection:this._newSelectionAfterValueChange,userEvent}),this._newSelectionAfterValueChange=void 0}this.props.indentOnLoad&&this.indentAll()}render(){const _this$props6=this.props,label=_this$props6.label,styles=_this$props6.styles,restProps=(0,objectWithoutProperties.A)(_this$props6,_excluded)
-return(0,emotion_react_browser_esm.Y)("div",Object.assign({ref:this.handleRef,css:null==styles?void 0:styles.codeEditor},(0,passthroughProps.V)((0,omitProps.k)(restProps,SourceCodeEditor.allowedProps))),(0,emotion_react_browser_esm.Y)("label",{css:null==styles?void 0:styles.label,htmlFor:this._id},(0,emotion_react_browser_esm.Y)(ScreenReaderContent.h,null,label),(0,emotion_react_browser_esm.Y)("div",{ref:this.handleContainerRef,css:null==styles?void 0:styles.codeEditorContainer})))}},_SourceCodeEditor.displayName="SourceCodeEditor",_SourceCodeEditor.componentId="SourceCodeEditor",_SourceCodeEditor.propTypes=propTypes,_SourceCodeEditor.allowedProps=["label","language","readOnly","editable","lineNumbers","foldGutter","highlightActiveLineGutter","highlightActiveLine","lineWrapping","autofocus","spellcheck","direction","rtlMoveVisually","indentOnLoad","indentWithTab","indentUnit","defaultValue","value","onChange","onFocus","onBlur","attachment","height","width","elementRef","containerRef","searchConfig"],_SourceCodeEditor.defaultProps={language:"jsx",readOnly:!1,editable:!0,lineNumbers:!1,foldGutter:!1,highlightActiveLine:!1,highlightActiveLineGutter:!1,lineWrapping:!1,autofocus:!1,spellcheck:!1,rtlMoveVisually:!0,indentOnLoad:!1,indentWithTab:!1,defaultValue:"",height:"auto"},_class=_SourceCodeEditor))||_class)||_class)||_class)||_class},61549:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict"
+return(0,emotion_react_browser_esm.Y)("div",Object.assign({ref:this.handleRef,css:null==styles?void 0:styles.codeEditor},(0,passthroughProps.V)((0,omitProps.k)(restProps,SourceCodeEditor.allowedProps))),(0,emotion_react_browser_esm.Y)("label",{css:null==styles?void 0:styles.label,id:this._id},(0,emotion_react_browser_esm.Y)(ScreenReaderContent.h,null,label),(0,emotion_react_browser_esm.Y)("div",{ref:this.handleContainerRef,css:null==styles?void 0:styles.codeEditorContainer})))}},_SourceCodeEditor.displayName="SourceCodeEditor",_SourceCodeEditor.componentId="SourceCodeEditor",_SourceCodeEditor.propTypes=propTypes,_SourceCodeEditor.allowedProps=["label","language","readOnly","editable","lineNumbers","foldGutter","highlightActiveLineGutter","highlightActiveLine","lineWrapping","autofocus","spellcheck","direction","rtlMoveVisually","indentOnLoad","indentWithTab","indentUnit","defaultValue","value","onChange","onFocus","onBlur","attachment","height","width","elementRef","containerRef","searchConfig"],_SourceCodeEditor.defaultProps={language:"jsx",readOnly:!1,editable:!0,lineNumbers:!1,foldGutter:!1,highlightActiveLine:!1,highlightActiveLineGutter:!1,lineWrapping:!1,autofocus:!1,spellcheck:!1,rtlMoveVisually:!0,indentOnLoad:!1,indentWithTab:!1,defaultValue:"",height:"auto"},_class=_SourceCodeEditor))||_class)||_class)||_class)||_class},61549:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict"
__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Spinner:()=>Spinner})
var react=__webpack_require__(14041),View=__webpack_require__(37792),withDeterministicId=__webpack_require__(54733),omitProps=__webpack_require__(39282),callRenderProp=__webpack_require__(54058),testable=__webpack_require__(95982),es=__webpack_require__(6950),withStyle=__webpack_require__(10605),emotion_react_browser_esm=__webpack_require__(15428)
const rotate=emotion_react_browser_esm.i7`