{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,I,C,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,C,E,C,Q,C,S,C,C,C,C,C,ECUC,IAAA,EAAA,EAAA,kD,E,iB,C,GAuBY,EAAA,MAAA,CAAA,EAAA,cAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,sBAAA,IAAA,GAEb,EAAA,MAAA,CAAA,EAAA,aAAA,IAAgB,G,I,E,E,qBAvBhB,EAAA,EAAA,SAEA,EAAA,EAAA,cAGA,EAAA,EAAA,6BAeO,IAAM,EAAc,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAA0D,CAAC,GACzE,EAAsB,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAkE,CAAC,GAE/F,SAAS,EAAW,CAAiD,CAAE,EAA+D,CAAW,EACtJ,OAAO,AAAC,IACN,IACI,EADA,EAAM,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAmB,KAG7B,EAAC,EAAK,EAAI,CAAG,AAAA,CAAA,EAAA,EAAA,uBAAsB,AAAtB,EAAwB,CAAC,KAAM,EAAM,IAAI,EAAI,MAAM,EAAuB,E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","sources":["<anon>","packages/@react-spectrum/s2/src/Icon.tsx","packages/@react-spectrum/s2/src/Skeleton.tsx"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (modules, entry, mainEntry, parcelRequireName, globalName) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n this\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n\n // <script>\n } else if (globalName) {\n this[globalName] = mainExports;\n }\n }\n})({\"1OC2a\":[function(require,module,exports) {\n/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"IconContext\", ()=>IconContext);\nparcelHelpers.export(exports, \"IllustrationContext\", ()=>IllustrationContext);\nparcelHelpers.export(exports, \"createIcon\", ()=>createIcon);\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _react = require(\"react\");\nvar _skeleton = require(\"./Skeleton\");\nvar _useSpectrumContextProps = require(\"./useSpectrumContextProps\");\nconst IconContext = /*#__PURE__*/ (0, _react.createContext)({});\nconst IllustrationContext = /*#__PURE__*/ (0, _react.createContext)({});\nfunction createIcon(Component, context = IconContext) {\n return (props)=>{\n let ref = (0, _react.useRef)(null);\n let ctx;\n // TODO: remove this default once we release RAC and use DEFAULT_SLOT.\n [ctx, ref] = (0, _useSpectrumContextProps.useSpectrumContextProps)({\n slot: props.slot || 'icon'\n }, ref, context);\n let { render, styles } = ctx;\n let { UNSAFE_className, UNSAFE_style, slot, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, ...otherProps } = props;\n if (!ariaHidden) ariaHidden = undefined;\n let svg = /*#__PURE__*/ (0, _jsxRuntime.jsx)((0, _skeleton.SkeletonWrapper), {\n children: /*#__PURE__*/ (0, _jsxRuntime.jsx)(Component, {\n ...otherProps,\n focusable: false,\n \"aria-label\": ariaLabel,\n \"aria-hidden\": ariaLabel ? ariaHidden || undefined : true,\n role: \"img\",\n \"data-slot\": slot,\n className: (UNSAFE_className ?? '') + ' ' + (0, _skeleton.useSkeletonIcon)(styles),\n style: UNSAFE_style\n })\n });\n if (render) return render(svg);\n return svg;\n };\n}\ntry {\n // @ts-ignore\n IconContext.displayName = \"IconContext\";\n // @ts-ignore\n IconContext.__docgenInfo = {\n \"description\": \"\",\n \"displayName\": \"IconContext\",\n \"props\": {\n \"value\": {\n \"defaultValue\": null,\n \"description\": \"\",\n \"name\": \"value\",\n \"required\": true,\n \"type\": {\n \"name\": \"ContextValue<IconContextValue, SVGElement>\"\n }\n }\n }\n };\n // @ts-ignore\n if (typeof STORYBOOK_REACT_CLASSES !== \"undefined\") // @ts-ignore\n STORYBOOK_REACT_CLASSES[\"packages/@react-spectrum/s2/src/Icon.tsx#IconContext\"] = {\n docgenInfo: IconContext.__docgenInfo,\n name: \"IconContext\",\n path: \"packages/@react-spectrum/s2/src/Icon.tsx#IconContext\"\n };\n} catch (__react_docgen_typescript_loader_error) {}\ntry {\n // @ts-ignore\n IllustrationContext.displayName = \"IllustrationContext\";\n // @ts-ignore\n IllustrationContext.__docgenInfo = {\n \"description\": \"\",\n \"displayName\": \"IllustrationContext\",\n \"props\": {\n \"value\": {\n \"defaultValue\": null,\n \"description\": \"\",\n \"name\": \"value\",\n \"required\": true,\n \"type\": {\n \"name\": \"ContextValue<IllustrationContextValue, SVGElement>\"\n }\n }\n }\n };\n // @ts-ignore\n if (typeof STORYBOOK_REACT_CLASSES !== \"undefined\") // @ts-ignore\n STORYBOOK_REACT_CLASSES[\"packages/@react-spectrum/s2/src/Icon.tsx#IllustrationContext\"] = {\n docgenInfo: IllustrationContext.__docgenInfo,\n name: \"IllustrationContext\",\n path: \"packages/@react-spectrum/s2/src/Icon.tsx#IllustrationContext\"\n };\n} catch (__react_docgen_typescript_loader_error) {}\n\n},{\"react/jsx-runtime\":\"2JzhG\",\"react\":\"jEiK2\",\"./Skeleton\":\"2hWWB\",\"./useSpectrumContextProps\":\"ileU6\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"2hWWB\":[function(require,module,exports) {\n/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ var parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"useLoadingAnimation\", ()=>useLoadingAnimation);\nparcelHelpers.export(exports, \"SkeletonContext\", ()=>SkeletonContext);\nparcelHelpers.export(exports, \"useIsSkeleton\", ()=>useIsSkeleton);\n/**\n * A Skeleton wraps around content to render it as a placeholder.\n */ parcelHelpers.export(exports, \"Skeleton\", ()=>Skeleton);\nparcelHelpers.export(exports, \"loadingStyle\", ()=>loadingStyle);\nparcelHelpers.export(exports, \"useSkeletonText\", ()=>useSkeletonText);\n// Rendered inside <Text> to create skeleton line boxes via box-decoration-break.\nparcelHelpers.export(exports, \"SkeletonText\", ()=>SkeletonText);\n// Clones the child element and displays it with skeleton styling.\nparcelHelpers.export(exports, \"SkeletonWrapper\", ()=>SkeletonWrapper);\n// Adds default border radius around icons when displayed in a skeleton.\nparcelHelpers.export(exports, \"useSkeletonIcon\", ()=>useSkeletonIcon);\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _react = require(\"react\");\nvar _utils = require(\"@react-aria/utils\");\nvar _runtime = require(\"../style/runtime\");\nlet reduceMotion = typeof window?.matchMedia === 'function' ? window.matchMedia('(prefers-reduced-motion: reduce)').matches : false;\nfunction useLoadingAnimation(isAnimating) {\n let animationRef = (0, _react.useRef)(null);\n return (0, _react.useCallback)((element)=>{\n if (isAnimating && !animationRef.current && element && !reduceMotion) {\n // Use web animation API instead of CSS animations so that we can\n // synchronize it between all loading elements on the page (via startTime).\n animationRef.current = element.animate([\n {\n backgroundPosition: '100%'\n },\n {\n backgroundPosition: '0%'\n }\n ], {\n duration: 2000,\n iterations: Infinity,\n easing: 'ease-in-out'\n });\n animationRef.current.startTime = 0;\n } else if (!isAnimating && animationRef.current) {\n animationRef.current.cancel();\n animationRef.current = null;\n }\n }, [\n isAnimating\n ]);\n}\nconst SkeletonContext = /*#__PURE__*/ (0, _react.createContext)(null);\nfunction useIsSkeleton() {\n return (0, _react.useContext)(SkeletonContext) || false;\n}\nfunction Skeleton({ children, isLoading }) {\n // Disable all form components inside a skeleton.\n return /*#__PURE__*/ (0, _jsxRuntime.jsx)(SkeletonContext.Provider, {\n value: isLoading,\n children: children\n });\n}\nconst loadingStyle = \"-my2ngj\";\nfunction useSkeletonText(children, style) {\n let isSkeleton = (0, _react.useContext)(SkeletonContext);\n if (isSkeleton) {\n children = /*#__PURE__*/ (0, _jsxRuntime.jsx)(SkeletonText, {\n children: children\n });\n style = {\n ...style,\n // This ensures the ellipsis on truncated text is also hidden.\n // -webkit-text-fill-color overrides any `color` property that is also set.\n WebkitTextFillColor: 'transparent'\n };\n }\n return [\n children,\n style\n ];\n}\nfunction SkeletonText({ children }) {\n return /*#__PURE__*/ (0, _jsxRuntime.jsx)(\"span\", {\n // @ts-ignore - compatibility with React < 19\n inert: \"true\",\n ref: useLoadingAnimation(true),\n className: loadingStyle + \" . aa _sb _vb _wb _xb _yb\",\n children: children\n });\n}\nfunction SkeletonWrapper({ children }) {\n let isLoading = (0, _react.useContext)(SkeletonContext);\n let animation = useLoadingAnimation(isLoading || false);\n if (isLoading == null) return children;\n let childRef = 'ref' in children ? children.ref : children.props.ref;\n return /*#__PURE__*/ (0, _jsxRuntime.jsx)(SkeletonContext.Provider, {\n value: null,\n children: isLoading ? /*#__PURE__*/ (0, _react.cloneElement)(children, {\n ref: (0, _utils.mergeRefs)(childRef, animation),\n className: (children.props.className || '') + ' ' + loadingStyle,\n inert: 'true'\n }) : children\n });\n}\nfunction useSkeletonIcon(styles) {\n let isSkeleton = (0, _react.useContext)(SkeletonContext);\n if (isSkeleton) return (0, _runtime.mergeStyles)(\" . _vb _wb _xb _yb\", styles);\n return styles || '';\n}\ntry {\n // @ts-ignore\n useLoadingAnimation.displayName = \"useLoadingAnimation\";\n // @ts-ignore\n useLoadingAnimation.__docgenInfo = {\n \"description\": \"\",\n \"displayName\": \"useLoadingAnimation\",\n \"props\": {\n \"valueOf\": {\n \"defaultValue\": null,\n \"description\": \"Returns the primitive value of the specified object.\",\n \"name\": \"valueOf\",\n \"required\": false,\n \"type\": {\n \"name\": \"() => boolean\"\n }\n }\n }\n };\n // @ts-ignore\n if (typeof STORYBOOK_REACT_CLASSES !== \"undefined\") // @ts-ignore\n STORYBOOK_REACT_CLASSES[\"packages/@react-spectrum/s2/src/Skeleton.tsx#useLoadingAnimation\"] = {\n docgenInfo: useLoadingAnimation.__docgenInfo,\n name: \"useLoadingAnimation\",\n path: \"packages/@react-spectrum/s2/src/Skeleton.tsx#useLoadingAnimation\"\n };\n} catch (__react_docgen_typescript_loader_error) {}\ntry {\n // @ts-ignore\n Skeleton.displayName = \"Skeleton\";\n // @ts-ignore\n Skeleton.__docgenInfo = {\n \"description\": \"A Skeleton wraps around content to render it as a placeholder.\",\n \"displayName\": \"Skeleton\",\n \"props\": {\n \"isLoading\": {\n \"defaultValue\": null,\n \"description\": \"\",\n \"name\": \"isLoading\",\n \"required\": true,\n \"type\": {\n \"name\": \"boolean\"\n }\n }\n }\n };\n // @ts-ignore\n if (typeof STORYBOOK_REACT_CLASSES !== \"undefined\") // @ts-ignore\n STORYBOOK_REACT_CLASSES[\"packages/@react-spectrum/s2/src/Skeleton.tsx#Skeleton\"] = {\n docgenInfo: Skeleton.__docgenInfo,\n name: \"Skeleton\",\n path: \"packages/@react-spectrum/s2/src/Skeleton.tsx#Skeleton\"\n };\n} catch (__react_docgen_typescript_loader_error) {}\ntry {\n // @ts-ignore\n SkeletonText.displayName = \"SkeletonText\";\n // @ts-ignore\n SkeletonText.__docgenInfo = {\n \"description\": \"\",\n \"displayName\": \"SkeletonText\",\n \"props\": {}\n };\n // @ts-ignore\n if (typeof STORYBOOK_REACT_CLASSES !== \"undefined\") // @ts-ignore\n STORYBOOK_REACT_CLASSES[\"packages/@react-spectrum/s2/src/Skeleton.tsx#SkeletonText\"] = {\n docgenInfo: SkeletonText.__docgenInfo,\n name: \"SkeletonText\",\n path: \"packages/@react-spectrum/s2/src/Skeleton.tsx#SkeletonText\"\n };\n} catch (__react_docgen_typescript_loader_error) {}\ntry {\n // @ts-ignore\n SkeletonWrapper.displayName = \"SkeletonWrapper\";\n // @ts-ignore\n SkeletonWrapper.__docgenInfo = {\n \"description\": \"\",\n \"displayName\": \"SkeletonWrapper\",\n \"props\": {}\n };\n // @ts-ignore\n if (typeof STORYBOOK_REACT_CLASSES !== \"undefined\") // @ts-ignore\n STORYBOOK_REACT_CLASSES[\"packages/@react-spectrum/s2/src/Skeleton.tsx#SkeletonWrapper\"] = {\n docgenInfo: SkeletonWrapper.__docgenInfo,\n name: \"SkeletonWrapper\",\n path: \"packages/@react-spectrum/s2/src/Skeleton.tsx#SkeletonWrapper\"\n };\n} catch (__react_docgen_typescript_loader_error) {}\ntry {\n // @ts-ignore\n useSkeletonIcon.displayName = \"useSkeletonIcon\";\n // @ts-ignore\n useSkeletonIcon.__docgenInfo = {\n \"description\": \"\",\n \"displayName\": \"useSkeletonIcon\",\n \"props\": {\n \"properties\": {\n \"defaultValue\": null,\n \"description\": \"\",\n \"name\": \"properties\",\n \"required\": true,\n \"type\": {\n \"name\": \"string\"\n }\n },\n \"__@iterator@95\": {\n \"defaultValue\": null,\n \"description\": \"Iterator\",\n \"name\": \"__@iterator@95\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => IterableIterator<string>\"\n }\n },\n \"anchor\": {\n \"defaultValue\": null,\n \"description\": \"Returns an `<a>` HTML anchor element and sets the name attribute to the text value\\n@deprecated A legacy feature for browser compatibility\\n@param name\",\n \"name\": \"anchor\",\n \"required\": true,\n \"type\": {\n \"name\": \"(name: string) => string\"\n }\n },\n \"at\": {\n \"defaultValue\": null,\n \"description\": \"Returns a new String consisting of the single UTF-16 code unit located at the specified index.\\n@param index The zero-based index of the desired code unit. A negative index will count back from the last item.\",\n \"name\": \"at\",\n \"required\": true,\n \"type\": {\n \"name\": \"(index: number) => string\"\n }\n },\n \"big\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<big>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"big\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"blink\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<blink>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"blink\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"bold\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<b>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"bold\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"charAt\": {\n \"defaultValue\": null,\n \"description\": \"Returns the character at the specified index.\\n@param pos The zero-based index of the desired character.\",\n \"name\": \"charAt\",\n \"required\": true,\n \"type\": {\n \"name\": \"(pos: number) => string\"\n }\n },\n \"charCodeAt\": {\n \"defaultValue\": null,\n \"description\": \"Returns the Unicode value of the character at the specified location.\\n@param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\",\n \"name\": \"charCodeAt\",\n \"required\": true,\n \"type\": {\n \"name\": \"(index: number) => number\"\n }\n },\n \"codePointAt\": {\n \"defaultValue\": null,\n \"description\": \"Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point\\nvalue of the UTF-16 encoded code point starting at the string element at position pos in\\nthe String resulting from converting this object to a String.\\nIf there is no element at that position, the result is undefined.\\nIf a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.\",\n \"name\": \"codePointAt\",\n \"required\": true,\n \"type\": {\n \"name\": \"(pos: number) => number\"\n }\n },\n \"concat\": {\n \"defaultValue\": null,\n \"description\": \"Returns a string that contains the concatenation of two or more strings.\\n@param strings The strings to append to the end of the string.\",\n \"name\": \"concat\",\n \"required\": true,\n \"type\": {\n \"name\": \"(...strings: string[]) => string\"\n }\n },\n \"endsWith\": {\n \"defaultValue\": null,\n \"description\": \"Returns true if the sequence of elements of searchString converted to a String is the\\nsame as the corresponding elements of this object (converted to a String) starting at\\nendPosition \\u2013 length(this). Otherwise returns false.\",\n \"name\": \"endsWith\",\n \"required\": true,\n \"type\": {\n \"name\": \"(searchString: string, endPosition?: number) => boolean\"\n }\n },\n \"fixed\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<tt>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"fixed\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"fontcolor\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<font>` HTML element and sets the color attribute value\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"fontcolor\",\n \"required\": true,\n \"type\": {\n \"name\": \"(color: string) => string\"\n }\n },\n \"fontsize\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<font>` HTML element and sets the size attribute value\\n@deprecated A legacy feature for browser compatibility\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"fontsize\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (size: number): string; (size: string): string; }\"\n }\n },\n \"includes\": {\n \"defaultValue\": null,\n \"description\": \"Returns true if searchString appears as a substring of the result of converting this\\nobject to a String, at one or more positions that are\\ngreater than or equal to position; otherwise, returns false.\\n@param searchString search string\\n@param position If position is undefined, 0 is assumed, so as to search all of the String.\",\n \"name\": \"includes\",\n \"required\": true,\n \"type\": {\n \"name\": \"(searchString: string, position?: number) => boolean\"\n }\n },\n \"indexOf\": {\n \"defaultValue\": null,\n \"description\": \"Returns the position of the first occurrence of a substring.\\n@param searchString The substring to search for in the string\\n@param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\",\n \"name\": \"indexOf\",\n \"required\": true,\n \"type\": {\n \"name\": \"(searchString: string, position?: number) => number\"\n }\n },\n \"isWellFormed\": {\n \"defaultValue\": null,\n \"description\": \"Returns true if all leading surrogates and trailing surrogates appear paired and in order.\",\n \"name\": \"isWellFormed\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => boolean\"\n }\n },\n \"italics\": {\n \"defaultValue\": null,\n \"description\": \"Returns an `<i>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"italics\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"lastIndexOf\": {\n \"defaultValue\": null,\n \"description\": \"Returns the last occurrence of a substring in the string.\\n@param searchString The substring to search for.\\n@param position The index at which to begin searching. If omitted, the search begins at the end of the string.\",\n \"name\": \"lastIndexOf\",\n \"required\": true,\n \"type\": {\n \"name\": \"(searchString: string, position?: number) => number\"\n }\n },\n \"length\": {\n \"defaultValue\": null,\n \"description\": \"Returns the length of a String object.\",\n \"name\": \"length\",\n \"required\": true,\n \"type\": {\n \"name\": \"number\"\n }\n },\n \"link\": {\n \"defaultValue\": null,\n \"description\": \"Returns an `<a>` HTML element and sets the href attribute value\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"link\",\n \"required\": true,\n \"type\": {\n \"name\": \"(url: string) => string\"\n }\n },\n \"localeCompare\": {\n \"defaultValue\": null,\n \"description\": \"Determines whether two strings are equivalent in the current locale.\\nDetermines whether two strings are equivalent in the current or specified locale.\\n@param that String to compare to target string\\n@param that String to compare to target string\\n@param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\\n@param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\\n@param that String to compare to target string\\n@param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\\n@param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\",\n \"name\": \"localeCompare\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (that: string): number; (that: string, locales?: string | string[], options?: CollatorOptions): number; (that: string, locales?: LocalesArgument, options?: CollatorOptions): number; }\"\n }\n },\n \"match\": {\n \"defaultValue\": null,\n \"description\": \"Matches a string with a regular expression, and returns an array containing the results of that search.\\nMatches a string or an object that supports being matched against, and returns an array\\ncontaining the results of that search, or null if no matches are found.\\n@param regexp A variable name or string literal containing the regular expression pattern and flags.\\n@param matcher An object that supports being matched against.\",\n \"name\": \"match\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (regexp: string | RegExp): RegExpMatchArray; (matcher: { [Symbol.match](string: string): RegExpMatchArray; }): RegExpMatchArray; }\"\n }\n },\n \"matchAll\": {\n \"defaultValue\": null,\n \"description\": \"Matches a string with a regular expression, and returns an iterable of matches\\ncontaining the results of that search.\\n@param regexp A variable name or string literal containing the regular expression pattern and flags.\",\n \"name\": \"matchAll\",\n \"required\": true,\n \"type\": {\n \"name\": \"(regexp: RegExp) => IterableIterator<RegExpExecArray>\"\n }\n },\n \"normalize\": {\n \"defaultValue\": null,\n \"description\": \"Returns the String value result of normalizing the string into the normalization form\\nnamed by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\\n@param form Applicable values: \\\"NFC\\\", \\\"NFD\\\", \\\"NFKC\\\", or \\\"NFKD\\\", If not specified default\\nis \\\"NFC\\\"\\n@param form Applicable values: \\\"NFC\\\", \\\"NFD\\\", \\\"NFKC\\\", or \\\"NFKD\\\", If not specified default\\nis \\\"NFC\\\"\",\n \"name\": \"normalize\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (form: \\\"NFC\\\" | \\\"NFD\\\" | \\\"NFKC\\\" | \\\"NFKD\\\"): string; (form?: string): string; }\"\n }\n },\n \"padEnd\": {\n \"defaultValue\": null,\n \"description\": \"Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\\nThe padding is applied from the end (right) of the current string.\\n@param maxLength The length of the resulting string once the current string has been padded.\\nIf this parameter is smaller than the current string's length, the current string will be returned as it is.\\n@param fillString The string to pad the current string with.\\nIf this string is too long, it will be truncated and the left-most part will be applied.\\nThe default value for this parameter is \\\" \\\" (U+0020).\",\n \"name\": \"padEnd\",\n \"required\": true,\n \"type\": {\n \"name\": \"(maxLength: number, fillString?: string) => string\"\n }\n },\n \"padStart\": {\n \"defaultValue\": null,\n \"description\": \"Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\\nThe padding is applied from the start (left) of the current string.\\n@param maxLength The length of the resulting string once the current string has been padded.\\nIf this parameter is smaller than the current string's length, the current string will be returned as it is.\\n@param fillString The string to pad the current string with.\\nIf this string is too long, it will be truncated and the left-most part will be applied.\\nThe default value for this parameter is \\\" \\\" (U+0020).\",\n \"name\": \"padStart\",\n \"required\": true,\n \"type\": {\n \"name\": \"(maxLength: number, fillString?: string) => string\"\n }\n },\n \"repeat\": {\n \"defaultValue\": null,\n \"description\": \"Returns a String value that is made from count copies appended together. If count is 0,\\nthe empty string is returned.\\n@param count number of copies to append\",\n \"name\": \"repeat\",\n \"required\": true,\n \"type\": {\n \"name\": \"(count: number) => string\"\n }\n },\n \"replace\": {\n \"defaultValue\": null,\n \"description\": \"Replaces text in a string, using a regular expression or search string.\\nPasses a string and {@linkcode replaceValue} to the `[Symbol.replace]` method on {@linkcode searchValue}. This method is expected to implement its own replacement algorithm.\\nReplaces text in a string, using an object that supports replacement within a string.\\n@param searchValue A string or regular expression to search for.\\n@param replaceValue A string containing the text to replace. When the {@linkcode searchValue } is a `RegExp`, all matches are replaced if the `g` flag is set (or only those matches at the beginning, if the `y` flag is also present). Otherwise, only the first match of {@linkcode searchValue } is replaced.\\n@param searchValue A string to search for.\\n@param replacer A function that returns the replacement text.\\n@param searchValue An object that supports searching for and replacing matches within a string.\\n@param replaceValue The replacement text.\\n@param searchValue A object can search for and replace matches within a string.\\n@param replacer A function that returns the replacement text.\",\n \"name\": \"replace\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (searchValue: string | RegExp, replaceValue: string): string; (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string; (searchValue: { ...; }, replaceValue: string): string; (searchValue: { ...; }, replacer: (substring: string, ...args: any[]) => string): string; }\"\n }\n },\n \"replaceAll\": {\n \"defaultValue\": null,\n \"description\": \"Replace all instances of a substring in a string, using a regular expression or search string.\\n@param searchValue A string to search for.\\n@param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\\n@param searchValue A string to search for.\\n@param replacer A function that returns the replacement text.\",\n \"name\": \"replaceAll\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (searchValue: string | RegExp, replaceValue: string): string; (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string; }\"\n }\n },\n \"search\": {\n \"defaultValue\": null,\n \"description\": \"Finds the first substring match in a regular expression search.\\n@param regexp The regular expression pattern and applicable flags.\\n@param searcher An object which supports searching within a string.\",\n \"name\": \"search\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (regexp: string | RegExp): number; (searcher: { [Symbol.search](string: string): number; }): number; }\"\n }\n },\n \"slice\": {\n \"defaultValue\": null,\n \"description\": \"Returns a section of a string.\\n@param start The index to the beginning of the specified portion of stringObj.\\n@param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\\nIf this value is not specified, the substring continues to the end of stringObj.\",\n \"name\": \"slice\",\n \"required\": true,\n \"type\": {\n \"name\": \"(start?: number, end?: number) => string\"\n }\n },\n \"small\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<small>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"small\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"split\": {\n \"defaultValue\": null,\n \"description\": \"Split a string into substrings using the specified separator and return them as an array.\\n@param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\\n@param limit A value used to limit the number of elements returned in the array.\\n@param splitter An object that can split a string.\\n@param limit A value used to limit the number of elements returned in the array.\",\n \"name\": \"split\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (separator: string | RegExp, limit?: number): string[]; (splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[]; }\"\n }\n },\n \"startsWith\": {\n \"defaultValue\": null,\n \"description\": \"Returns true if the sequence of elements of searchString converted to a String is the\\nsame as the corresponding elements of this object (converted to a String) starting at\\nposition. Otherwise returns false.\",\n \"name\": \"startsWith\",\n \"required\": true,\n \"type\": {\n \"name\": \"(searchString: string, position?: number) => boolean\"\n }\n },\n \"strike\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<strike>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"strike\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"sub\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<sub>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"sub\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"substr\": {\n \"defaultValue\": null,\n \"description\": \"Gets a substring beginning at the specified location and having the specified length.\\n@deprecated A legacy feature for browser compatibility\\n@param from The starting position of the desired substring. The index of the first character in the string is zero.\\n@param length The number of characters to include in the returned substring.\",\n \"name\": \"substr\",\n \"required\": true,\n \"type\": {\n \"name\": \"(from: number, length?: number) => string\"\n }\n },\n \"substring\": {\n \"defaultValue\": null,\n \"description\": \"Returns the substring at the specified location within a String object.\\n@param start The zero-based index number indicating the beginning of the substring.\\n@param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\\nIf end is omitted, the characters from start through the end of the original string are returned.\",\n \"name\": \"substring\",\n \"required\": true,\n \"type\": {\n \"name\": \"(start: number, end?: number) => string\"\n }\n },\n \"sup\": {\n \"defaultValue\": null,\n \"description\": \"Returns a `<sup>` HTML element\\n@deprecated A legacy feature for browser compatibility\",\n \"name\": \"sup\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"toLocaleLowerCase\": {\n \"defaultValue\": null,\n \"description\": \"Converts all alphabetic characters to lowercase, taking into account the host environment's current locale.\",\n \"name\": \"toLocaleLowerCase\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (locales?: string | string[]): string; (locales?: LocalesArgument): string; }\"\n }\n },\n \"toLocaleUpperCase\": {\n \"defaultValue\": null,\n \"description\": \"Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale.\",\n \"name\": \"toLocaleUpperCase\",\n \"required\": true,\n \"type\": {\n \"name\": \"{ (locales?: string | string[]): string; (locales?: LocalesArgument): string; }\"\n }\n },\n \"toLowerCase\": {\n \"defaultValue\": null,\n \"description\": \"Converts all the alphabetic characters in a string to lowercase.\",\n \"name\": \"toLowerCase\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"toUpperCase\": {\n \"defaultValue\": null,\n \"description\": \"Converts all the alphabetic characters in a string to uppercase.\",\n \"name\": \"toUpperCase\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"toWellFormed\": {\n \"defaultValue\": null,\n \"description\": \"Returns a string where all lone or out-of-order surrogates have been replaced by the Unicode replacement character (U+FFFD).\",\n \"name\": \"toWellFormed\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"trim\": {\n \"defaultValue\": null,\n \"description\": \"Removes the leading and trailing white space and line terminator characters from a string.\",\n \"name\": \"trim\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"trimEnd\": {\n \"defaultValue\": null,\n \"description\": \"Removes the trailing white space and line terminator characters from a string.\",\n \"name\": \"trimEnd\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"trimLeft\": {\n \"defaultValue\": null,\n \"description\": \"Removes the leading white space and line terminator characters from a string.\\n@deprecated A legacy feature for browser compatibility. Use `trimStart` instead\",\n \"name\": \"trimLeft\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"trimRight\": {\n \"defaultValue\": null,\n \"description\": \"Removes the trailing white space and line terminator characters from a string.\\n@deprecated A legacy feature for browser compatibility. Use `trimEnd` instead\",\n \"name\": \"trimRight\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"trimStart\": {\n \"defaultValue\": null,\n \"description\": \"Removes the leading white space and line terminator characters from a string.\",\n \"name\": \"trimStart\",\n \"required\": true,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"toString\": {\n \"defaultValue\": null,\n \"description\": \"Returns a string representation of a string.\",\n \"name\": \"toString\",\n \"required\": false,\n \"type\": {\n \"name\": \"() => string\"\n }\n },\n \"valueOf\": {\n \"defaultValue\": null,\n \"description\": \"Returns the primitive value of the specified object.\",\n \"name\": \"valueOf\",\n \"required\": false,\n \"type\": {\n \"name\": \"() => string\"\n }\n }\n }\n };\n // @ts-ignore\n if (typeof STORYBOOK_REACT_CLASSES !== \"undefined\") // @ts-ignore\n STORYBOOK_REACT_CLASSES[\"packages/@react-spectrum/s2/src/Skeleton.tsx#useSkeletonIcon\"] = {\n docgenInfo: useSkeletonIcon.__docgenInfo,\n name: \"useSkeletonIcon\",\n path: \"packages/@react-spectrum/s2/src/Skeleton.tsx#useSkeletonIcon\"\n };\n} catch (__react_docgen_typescript_loader_error) {}\ntry {\n // @ts-ignore\n SkeletonContext.displayName = \"SkeletonContext\";\n // @ts-ignore\n SkeletonContext.__docgenInfo = {\n \"description\": \"\",\n \"displayName\": \"SkeletonContext\",\n \"props\": {\n \"value\": {\n \"defaultValue\": null,\n \"description\": \"\",\n \"name\": \"value\",\n \"required\": true,\n \"type\": {\n \"name\": \"boolean\"\n }\n }\n }\n };\n // @ts-ignore\n if (typeof STORYBOOK_REACT_CLASSES !== \"undefined\") // @ts-ignore\n STORYBOOK_REACT_CLASSES[\"packages/@react-spectrum/s2/src/Skeleton.tsx#SkeletonContext\"] = {\n docgenInfo: SkeletonContext.__docgenInfo,\n name: \"SkeletonContext\",\n path: \"packages/@react-spectrum/s2/src/Skeleton.tsx#SkeletonContext\"\n };\n} catch (__react_docgen_typescript_loader_error) {}\n\n},{\"0\":\"kNryF\",\"1\":\"kWtWN\",\"2\":\"6YBwW\",\"react/jsx-runtime\":\"2JzhG\",\"react\":\"jEiK2\",\"@react-aria/utils\":\"e9Yvo\",\"../style/runtime\":\"dzhKB\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"diccK\"}],\"kNryF\":[function() {},{}],\"kWtWN\":[function() {},{}],\"6YBwW\":[function() {},{}]},[], null, \"parcelRequire94c2\")\n\n//# sourceMappingURL=Illustrations.fda9b2b9.js.map\n","/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {ComponentType, Context, createContext, FunctionComponent, ReactNode, SVGProps, useRef} from 'react';\nimport {ContextValue, SlotProps} from 'react-aria-components';\nimport {SkeletonWrapper, useSkeletonIcon} from './Skeleton';\nimport {StyleString} from '../style/types';\nimport {UnsafeStyles} from './style-utils' with {type: 'macro'};\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface IconProps extends UnsafeStyles, SlotProps, AriaLabelingProps, DOMProps {\n 'aria-hidden'?: boolean | 'false' | 'true'\n}\n\nexport interface IconContextValue extends UnsafeStyles, SlotProps {\n styles?: StyleString,\n render?: (icon: ReactNode) => ReactNode\n}\n\nexport interface IllustrationContextValue extends IconContextValue {\n size?: 'S' | 'M' | 'L'\n}\n\nexport const IconContext = createContext<ContextValue<IconContextValue, SVGElement>>({});\nexport const IllustrationContext = createContext<ContextValue<IllustrationContextValue, SVGElement>>({});\n\nexport function createIcon(Component: ComponentType<SVGProps<SVGSVGElement>>, context: Context<ContextValue<IconContextValue, SVGElement>> = IconContext): FunctionComponent<IconProps> {\n return (props: IconProps) => {\n let ref = useRef<SVGElement>(null);\n let ctx;\n // TODO: remove this default once we release RAC and use DEFAULT_SLOT.\n [ctx, ref] = useSpectrumContextProps({slot: props.slot || 'icon'} as IconContextValue, ref, context);\n let {render, styles} = ctx;\n let {\n UNSAFE_className,\n UNSAFE_style,\n slot,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n ...otherProps\n } = props;\n\n if (!ariaHidden) {\n ariaHidden = undefined;\n }\n\n let svg = (\n <SkeletonWrapper>\n <Component\n {...otherProps}\n focusable={false}\n aria-label={ariaLabel}\n aria-hidden={ariaLabel ? (ariaHidden || undefined) : true}\n role=\"img\"\n data-slot={slot}\n className={(UNSAFE_className ?? '') + ' ' + useSkeletonIcon(styles)}\n style={UNSAFE_style} />\n </SkeletonWrapper>\n );\n\n if (render) {\n return render(svg);\n }\n\n return svg;\n };\n}\n","/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {cloneElement, createContext, CSSProperties, ReactElement, ReactNode, Ref, useCallback, useContext, useRef} from 'react';\nimport {colorToken} from '../style/tokens' with {type: 'macro'};\nimport {mergeRefs} from '@react-aria/utils';\nimport {mergeStyles} from '../style/runtime';\nimport {raw} from '../style/style-macro' with {type: 'macro'};\nimport {style} from '../style' with {type: 'macro'};\nimport {StyleString} from '../style/types';\n\nlet reduceMotion = typeof window?.matchMedia === 'function'\n ? window.matchMedia('(prefers-reduced-motion: reduce)').matches\n : false;\n\nexport function useLoadingAnimation(isAnimating: boolean) {\n let animationRef = useRef<Animation | null>(null);\n return useCallback((element: HTMLElement | null) => {\n if (isAnimating && !animationRef.current && element && !reduceMotion) {\n // Use web animation API instead of CSS animations so that we can\n // synchronize it between all loading elements on the page (via startTime).\n animationRef.current = element.animate(\n [\n {backgroundPosition: '100%'},\n {backgroundPosition: '0%'}\n ],\n {\n duration: 2000,\n iterations: Infinity,\n easing: 'ease-in-out'\n }\n );\n animationRef.current.startTime = 0;\n } else if (!isAnimating && animationRef.current) {\n animationRef.current.cancel();\n animationRef.current = null;\n }\n }, [isAnimating]);\n}\n\nexport type SkeletonElement = ReactElement<{\n children?: ReactNode,\n className?: string,\n ref?: Ref<HTMLElement>,\n inert?: boolean | 'true'\n}>;\n\nexport const SkeletonContext = createContext<boolean | null>(null);\nexport function useIsSkeleton(): boolean {\n return useContext(SkeletonContext) || false;\n}\n\nexport interface SkeletonProps {\n children: ReactNode,\n isLoading: boolean\n}\n\n/**\n * A Skeleton wraps around content to render it as a placeholder.\n */\nexport function Skeleton({children, isLoading}: SkeletonProps) {\n // Disable all form components inside a skeleton.\n return (\n <SkeletonContext.Provider value={isLoading}>\n {children}\n </SkeletonContext.Provider>\n );\n}\n\nexport const loadingStyle = raw(`\n background-image: linear-gradient(to right, ${colorToken('gray-100')} 33%, light-dark(${colorToken('gray-25')}, ${colorToken('gray-300')}), ${colorToken('gray-100')} 66%);\n background-size: 300%;\n * {\n visibility: hidden;\n }\n`, 'UNSAFE_overrides');\n\nexport function useSkeletonText(children: ReactNode, style: CSSProperties | undefined): [ReactNode, CSSProperties | undefined] {\n let isSkeleton = useContext(SkeletonContext);\n if (isSkeleton) {\n children = <SkeletonText>{children}</SkeletonText>;\n style = {\n ...style,\n // This ensures the ellipsis on truncated text is also hidden.\n // -webkit-text-fill-color overrides any `color` property that is also set.\n WebkitTextFillColor: 'transparent'\n };\n }\n return [children, style];\n}\n\n// Rendered inside <Text> to create skeleton line boxes via box-decoration-break.\nexport function SkeletonText({children}) {\n return (\n <span\n // @ts-ignore - compatibility with React < 19\n inert=\"true\"\n ref={useLoadingAnimation(true)}\n className={loadingStyle + style({\n color: 'transparent',\n boxDecorationBreak: 'clone',\n borderRadius: 'sm'\n })}>\n {children}\n </span>\n );\n}\n\n// Clones the child element and displays it with skeleton styling.\nexport function SkeletonWrapper({children}: {children: SkeletonElement}) {\n let isLoading = useContext(SkeletonContext);\n let animation = useLoadingAnimation(isLoading || false);\n if (isLoading == null) {\n return children;\n }\n\n let childRef = 'ref' in children ? children.ref as any : children.props.ref;\n return (\n <SkeletonContext.Provider value={null}>\n {isLoading ? cloneElement(children, {\n ref: mergeRefs(childRef, animation),\n className: (children.props.className || '') + ' ' + loadingStyle,\n inert: 'true'\n }) : children}\n </SkeletonContext.Provider>\n );\n}\n\n// Adds default border radius around icons when displayed in a skeleton.\nexport function useSkeletonIcon(styles: StyleString): StyleString {\n let isSkeleton = useContext(SkeletonContext);\n if (isSkeleton) {\n return mergeStyles(style({borderRadius: 'sm'}), styles);\n }\n return styles || '' as StyleString;\n}\n"],"names":["modules","entry","mainEntry","parcelRequireName","globalName","globalObject","globalThis","self","window","global","previousRequire","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","i","length","parcelHelpers","defineInteropFlag","export","IconContext","IllustrationContext","createIcon","_jsxRuntime","_react","_skeleton","_useSpectrumContextProps","createContext","Component","context","props","ctx","ref","useRef","useSpectrumContextProps","slot","render","styles","UNSAFE_className","UNSAFE_style","ariaLabel","ariaHidden","otherProps","undefined","svg","jsx","SkeletonWrapper","children","focusable","role","className","useSkeletonIcon","style","displayName","__docgenInfo","STORYBOOK_REACT_CLASSES","docgenInfo","path","__react_docgen_typescript_loader_error","useLoadingAnimation","SkeletonContext","useIsSkeleton","Skeleton","loadingStyle","useSkeletonText","SkeletonText","_utils","_runtime","reduceMotion","matchMedia","matches","isAnimating","animationRef","useCallback","element","current","animate","backgroundPosition","duration","iterations","Infinity","easing","startTime","cancel","useContext","isLoading","Provider","value","WebkitTextFillColor","inert","animation","childRef","cloneElement","mergeRefs","mergeStyles"],"version":3,"file":"Illustrations.fda9b2b9.js.map"}