{"version":3,"file":"room-layout-map.umd.cjs","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/jsx-runtime.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","../node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/unitlessNumbers.js","../node_modules/react-native-web/dist/modules/isWebColor/index.js","../node_modules/react-native-web/node_modules/@react-native/normalize-colors/index.js","../node_modules/react-native-web/dist/exports/processColor/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeColor.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/normalizeValueWithProperty.js","../node_modules/react-native-web/dist/modules/canUseDom/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/hash.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/hyphenateStyleName.js","../node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","../node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","../node_modules/inline-style-prefixer/lib/utils/prefixValue.js","../node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","../node_modules/inline-style-prefixer/lib/utils/isObject.js","../node_modules/inline-style-prefixer/lib/createPrefixer.js","../node_modules/css-in-js-utils/es/assignStyle.js","../node_modules/css-in-js-utils/es/camelCaseProperty.js","../node_modules/hyphenate-style-name/index.js","../node_modules/css-in-js-utils/es/hyphenateProperty.js","../node_modules/css-in-js-utils/es/cssifyDeclaration.js","../node_modules/css-in-js-utils/es/cssifyObject.js","../node_modules/css-in-js-utils/es/isPrefixedProperty.js","../node_modules/css-in-js-utils/es/isPrefixedValue.js","../node_modules/css-in-js-utils/es/isUnitlessProperty.js","../node_modules/css-in-js-utils/es/unprefixProperty.js","../node_modules/css-in-js-utils/es/normalizeProperty.js","../node_modules/css-in-js-utils/es/resolveArrayValue.js","../node_modules/css-in-js-utils/es/unprefixValue.js","../node_modules/inline-style-prefixer/lib/plugins/crossFade.js","../node_modules/css-in-js-utils/lib/isPrefixedValue.js","../node_modules/inline-style-prefixer/lib/plugins/imageSet.js","../node_modules/inline-style-prefixer/lib/plugins/logical.js","../node_modules/inline-style-prefixer/lib/plugins/position.js","../node_modules/inline-style-prefixer/lib/plugins/sizing.js","../node_modules/css-in-js-utils/lib/hyphenateProperty.js","../node_modules/inline-style-prefixer/lib/plugins/transition.js","../node_modules/react-native-web/dist/modules/prefixStyles/static.js","../node_modules/react-native-web/dist/modules/prefixStyles/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/compiler/index.js","../node_modules/react-native-web/dist/exports/StyleSheet/dom/createCSSStyleSheet.js","../node_modules/react-native-web/dist/exports/StyleSheet/dom/createOrderedCSSStyleSheet.js","../node_modules/react-native-web/dist/exports/StyleSheet/dom/index.js","../node_modules/styleq/dist/transform-localize-style.js","../node_modules/styleq/transform-localize-style.js","../node_modules/react-native-web/dist/exports/StyleSheet/preprocess.js","../node_modules/styleq/dist/styleq.js","../node_modules/react-native-web/dist/exports/StyleSheet/index.js","../node_modules/react-native-web/dist/modules/createDOMProps/index.js","../node_modules/react-native-web/dist/modules/useLocale/isLocaleRTL.js","../node_modules/react-native-web/dist/modules/useLocale/index.js","../node_modules/react-native-web/dist/exports/createElement/index.js","../node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","../node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","../node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","../node_modules/react-native-web/dist/modules/setValueForStyles/index.js","../node_modules/react-native-web/dist/exports/UIManager/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-native-web/dist/modules/forwardedProps/index.js","../node_modules/react-native-web/dist/modules/pick/index.js","../node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","../node_modules/react-native-web/dist/modules/useElementLayout/index.js","../node_modules/react-native-web/dist/modules/mergeRefs/index.js","../node_modules/react-native-web/dist/modules/useMergeRefs/index.js","../node_modules/react-native-web/dist/modules/useStable/index.js","../node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","../node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","../node_modules/react-native-web/dist/modules/isSelectionValid/index.js","../node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","../node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","../node_modules/react-native-web/dist/modules/useResponderEvents/index.js","../node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","../node_modules/react-native-web/dist/exports/View/index.js","../node_modules/react-native-web/dist/exports/Text/index.js","../node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","../node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","../node_modules/react-native-web/dist/modules/usePressEvents/index.js","../node_modules/react-native-web/dist/modules/addEventListener/index.js","../node_modules/react-native-web/dist/modules/modality/index.js","../node_modules/react-native-web/dist/modules/useEvent/index.js","../node_modules/react-native-web/dist/modules/useHover/index.js","../node_modules/react-native-web/dist/exports/Pressable/index.js","../src/colors.ts","../src/components/ReactPocCard/ReactPocCard.styles.ts","../src/components/ReactPocCard/ReactPocCard.tsx","../src/components/StudioSpotsCard/StudioSpotsCard.styles.ts","../src/components/StudioSpotsCard/useStudioSpotsCard.ts","../src/components/StudioSpotsCard/StudioSpotsCard.tsx","../src/web-umd.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n  REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n  var key = null;\n  void 0 !== maybeKey && (key = \"\" + maybeKey);\n  void 0 !== config.key && (key = \"\" + config.key);\n  if (\"key\" in config) {\n    maybeKey = {};\n    for (var propName in config)\n      \"key\" !== propName && (maybeKey[propName] = config[propName]);\n  } else maybeKey = config;\n  config = maybeKey.ref;\n  return {\n    $$typeof: REACT_ELEMENT_TYPE,\n    type: type,\n    key: key,\n    ref: void 0 !== config ? config : null,\n    props: maybeKey\n  };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isDisabled = props => props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar accessibilityRoleToWebRole = {\n  adjustable: 'slider',\n  button: 'button',\n  header: 'heading',\n  image: 'img',\n  imagebutton: null,\n  keyboardkey: null,\n  label: null,\n  link: 'link',\n  none: 'presentation',\n  search: 'search',\n  summary: 'region',\n  text: null\n};\nvar propsToAriaRole = _ref => {\n  var accessibilityRole = _ref.accessibilityRole,\n    role = _ref.role;\n  var _role = role || accessibilityRole;\n  if (_role) {\n    var inferredRole = accessibilityRoleToWebRole[_role];\n    if (inferredRole !== null) {\n      // ignore roles that don't map to web\n      return inferredRole || _role;\n    }\n  }\n};\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n  article: 'article',\n  banner: 'header',\n  blockquote: 'blockquote',\n  button: 'button',\n  code: 'code',\n  complementary: 'aside',\n  contentinfo: 'footer',\n  deletion: 'del',\n  emphasis: 'em',\n  figure: 'figure',\n  insertion: 'ins',\n  form: 'form',\n  list: 'ul',\n  listitem: 'li',\n  main: 'main',\n  navigation: 'nav',\n  paragraph: 'p',\n  region: 'section',\n  strong: 'strong'\n};\nvar emptyObject = {};\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n  if (props === void 0) {\n    props = emptyObject;\n  }\n  var roleProp = props.role || props.accessibilityRole;\n  // special-case for \"label\" role which doesn't map to an ARIA role\n  if (roleProp === 'label') {\n    return 'label';\n  }\n  var role = propsToAriaRole(props);\n  if (role) {\n    if (role === 'heading') {\n      var level = props.accessibilityLevel || props['aria-level'];\n      if (level != null) {\n        return \"h\" + level;\n      }\n      return 'h1';\n    }\n    return roleComponents[role];\n  }\n};\nexport default propsToAccessibilityComponent;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n  isDisabled,\n  propsToAccessibilityComponent,\n  propsToAriaRole\n};\nexport default AccessibilityUtil;","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nexport { _objectSpread2 as default };","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (-1 !== e.indexOf(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar unitlessNumbers = {\n  animationIterationCount: true,\n  aspectRatio: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexOrder: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  fontWeight: true,\n  gridRow: true,\n  gridRowEnd: true,\n  gridRowGap: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnGap: true,\n  gridColumnStart: true,\n  lineClamp: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // SVG-related\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true,\n  // transform types\n  scale: true,\n  scaleX: true,\n  scaleY: true,\n  scaleZ: true,\n  // RN properties\n  shadowOpacity: true\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach(prop => {\n  prefixes.forEach(prefix => {\n    unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n  });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isWebColor = color => color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\nexport default isWebColor;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * @noflow\n */\n\n/* eslint no-bitwise: 0 */\n\n'use strict';\n\nfunction normalizeColor(color) {\n  if (typeof color === 'number') {\n    if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n      return color;\n    }\n    return null;\n  }\n\n  if (typeof color !== 'string') {\n    return null;\n  }\n\n  const matchers = getMatchers();\n  let match;\n\n  // Ordered based on occurrences on Facebook codebase\n  if ((match = matchers.hex6.exec(color))) {\n    return parseInt(match[1] + 'ff', 16) >>> 0;\n  }\n\n  const colorFromKeyword = normalizeKeyword(color);\n  if (colorFromKeyword != null) {\n    return colorFromKeyword;\n  }\n\n  if ((match = matchers.rgb.exec(color))) {\n    return (\n      ((parse255(match[1]) << 24) | // r\n        (parse255(match[2]) << 16) | // g\n        (parse255(match[3]) << 8) | // b\n        0x000000ff) >>> // a\n      0\n    );\n  }\n\n  if ((match = matchers.rgba.exec(color))) {\n    // rgba(R G B / A) notation\n    if (match[6] !== undefined) {\n      return (\n        ((parse255(match[6]) << 24) | // r\n          (parse255(match[7]) << 16) | // g\n          (parse255(match[8]) << 8) | // b\n          parse1(match[9])) >>> // a\n        0\n      );\n    }\n\n    // rgba(R, G, B, A) notation\n    return (\n      ((parse255(match[2]) << 24) | // r\n        (parse255(match[3]) << 16) | // g\n        (parse255(match[4]) << 8) | // b\n        parse1(match[5])) >>> // a\n      0\n    );\n  }\n\n  if ((match = matchers.hex3.exec(color))) {\n    return (\n      parseInt(\n        match[1] +\n          match[1] + // r\n          match[2] +\n          match[2] + // g\n          match[3] +\n          match[3] + // b\n          'ff', // a\n        16,\n      ) >>> 0\n    );\n  }\n\n  // https://drafts.csswg.org/css-color-4/#hex-notation\n  if ((match = matchers.hex8.exec(color))) {\n    return parseInt(match[1], 16) >>> 0;\n  }\n\n  if ((match = matchers.hex4.exec(color))) {\n    return (\n      parseInt(\n        match[1] +\n          match[1] + // r\n          match[2] +\n          match[2] + // g\n          match[3] +\n          match[3] + // b\n          match[4] +\n          match[4], // a\n        16,\n      ) >>> 0\n    );\n  }\n\n  if ((match = matchers.hsl.exec(color))) {\n    return (\n      (hslToRgb(\n        parse360(match[1]), // h\n        parsePercentage(match[2]), // s\n        parsePercentage(match[3]), // l\n      ) |\n        0x000000ff) >>> // a\n      0\n    );\n  }\n\n  if ((match = matchers.hsla.exec(color))) {\n    // hsla(H S L / A) notation\n    if (match[6] !== undefined) {\n      return (\n        (hslToRgb(\n          parse360(match[6]), // h\n          parsePercentage(match[7]), // s\n          parsePercentage(match[8]), // l\n        ) |\n          parse1(match[9])) >>> // a\n        0\n      );\n    }\n\n    // hsla(H, S, L, A) notation\n    return (\n      (hslToRgb(\n        parse360(match[2]), // h\n        parsePercentage(match[3]), // s\n        parsePercentage(match[4]), // l\n      ) |\n        parse1(match[5])) >>> // a\n      0\n    );\n  }\n\n  if ((match = matchers.hwb.exec(color))) {\n    return (\n      (hwbToRgb(\n        parse360(match[1]), // h\n        parsePercentage(match[2]), // w\n        parsePercentage(match[3]), // b\n      ) |\n        0x000000ff) >>> // a\n      0\n    );\n  }\n\n  return null;\n}\n\nfunction hue2rgb(p, q, t) {\n  if (t < 0) {\n    t += 1;\n  }\n  if (t > 1) {\n    t -= 1;\n  }\n  if (t < 1 / 6) {\n    return p + (q - p) * 6 * t;\n  }\n  if (t < 1 / 2) {\n    return q;\n  }\n  if (t < 2 / 3) {\n    return p + (q - p) * (2 / 3 - t) * 6;\n  }\n  return p;\n}\n\nfunction hslToRgb(h, s, l) {\n  const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n  const p = 2 * l - q;\n  const r = hue2rgb(p, q, h + 1 / 3);\n  const g = hue2rgb(p, q, h);\n  const b = hue2rgb(p, q, h - 1 / 3);\n\n  return (\n    (Math.round(r * 255) << 24) |\n    (Math.round(g * 255) << 16) |\n    (Math.round(b * 255) << 8)\n  );\n}\n\nfunction hwbToRgb(h, w, b) {\n  if (w + b >= 1) {\n    const gray = Math.round((w * 255) / (w + b));\n\n    return (gray << 24) | (gray << 16) | (gray << 8);\n  }\n\n  const red = hue2rgb(0, 1, h + 1 / 3) * (1 - w - b) + w;\n  const green = hue2rgb(0, 1, h) * (1 - w - b) + w;\n  const blue = hue2rgb(0, 1, h - 1 / 3) * (1 - w - b) + w;\n\n  return (\n    (Math.round(red * 255) << 24) |\n    (Math.round(green * 255) << 16) |\n    (Math.round(blue * 255) << 8)\n  );\n}\n\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args) {\n  return '\\\\(\\\\s*(' + args.join(')\\\\s*,?\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nfunction callWithSlashSeparator(...args) {\n  return (\n    '\\\\(\\\\s*(' +\n    args.slice(0, args.length - 1).join(')\\\\s*,?\\\\s*(') +\n    ')\\\\s*/\\\\s*(' +\n    args[args.length - 1] +\n    ')\\\\s*\\\\)'\n  );\n}\n\nfunction commaSeparatedCall(...args) {\n  return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nlet cachedMatchers;\n\nfunction getMatchers() {\n  if (cachedMatchers === undefined) {\n    cachedMatchers = {\n      rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n      rgba: new RegExp(\n        'rgba(' +\n          commaSeparatedCall(NUMBER, NUMBER, NUMBER, NUMBER) +\n          '|' +\n          callWithSlashSeparator(NUMBER, NUMBER, NUMBER, NUMBER) +\n          ')',\n      ),\n      hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n      hsla: new RegExp(\n        'hsla(' +\n          commaSeparatedCall(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n          '|' +\n          callWithSlashSeparator(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER) +\n          ')',\n      ),\n      hwb: new RegExp('hwb' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n      hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n      hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n      hex6: /^#([0-9a-fA-F]{6})$/,\n      hex8: /^#([0-9a-fA-F]{8})$/,\n    };\n  }\n  return cachedMatchers;\n}\n\nfunction parse255(str) {\n  const int = parseInt(str, 10);\n  if (int < 0) {\n    return 0;\n  }\n  if (int > 255) {\n    return 255;\n  }\n  return int;\n}\n\nfunction parse360(str) {\n  const int = parseFloat(str);\n  return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n  const num = parseFloat(str);\n  if (num < 0) {\n    return 0;\n  }\n  if (num > 1) {\n    return 255;\n  }\n  return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n  // parseFloat conveniently ignores the final %\n  const int = parseFloat(str);\n  if (int < 0) {\n    return 0;\n  }\n  if (int > 100) {\n    return 1;\n  }\n  return int / 100;\n}\n\nfunction normalizeKeyword(name) {\n  // prettier-ignore\n  switch (name) {\n    case 'transparent': return 0x00000000;\n    // http://www.w3.org/TR/css3-color/#svg-color\n    case 'aliceblue': return 0xf0f8ffff;\n    case 'antiquewhite': return 0xfaebd7ff;\n    case 'aqua': return 0x00ffffff;\n    case 'aquamarine': return 0x7fffd4ff;\n    case 'azure': return 0xf0ffffff;\n    case 'beige': return 0xf5f5dcff;\n    case 'bisque': return 0xffe4c4ff;\n    case 'black': return 0x000000ff;\n    case 'blanchedalmond': return 0xffebcdff;\n    case 'blue': return 0x0000ffff;\n    case 'blueviolet': return 0x8a2be2ff;\n    case 'brown': return 0xa52a2aff;\n    case 'burlywood': return 0xdeb887ff;\n    case 'burntsienna': return 0xea7e5dff;\n    case 'cadetblue': return 0x5f9ea0ff;\n    case 'chartreuse': return 0x7fff00ff;\n    case 'chocolate': return 0xd2691eff;\n    case 'coral': return 0xff7f50ff;\n    case 'cornflowerblue': return 0x6495edff;\n    case 'cornsilk': return 0xfff8dcff;\n    case 'crimson': return 0xdc143cff;\n    case 'cyan': return 0x00ffffff;\n    case 'darkblue': return 0x00008bff;\n    case 'darkcyan': return 0x008b8bff;\n    case 'darkgoldenrod': return 0xb8860bff;\n    case 'darkgray': return 0xa9a9a9ff;\n    case 'darkgreen': return 0x006400ff;\n    case 'darkgrey': return 0xa9a9a9ff;\n    case 'darkkhaki': return 0xbdb76bff;\n    case 'darkmagenta': return 0x8b008bff;\n    case 'darkolivegreen': return 0x556b2fff;\n    case 'darkorange': return 0xff8c00ff;\n    case 'darkorchid': return 0x9932ccff;\n    case 'darkred': return 0x8b0000ff;\n    case 'darksalmon': return 0xe9967aff;\n    case 'darkseagreen': return 0x8fbc8fff;\n    case 'darkslateblue': return 0x483d8bff;\n    case 'darkslategray': return 0x2f4f4fff;\n    case 'darkslategrey': return 0x2f4f4fff;\n    case 'darkturquoise': return 0x00ced1ff;\n    case 'darkviolet': return 0x9400d3ff;\n    case 'deeppink': return 0xff1493ff;\n    case 'deepskyblue': return 0x00bfffff;\n    case 'dimgray': return 0x696969ff;\n    case 'dimgrey': return 0x696969ff;\n    case 'dodgerblue': return 0x1e90ffff;\n    case 'firebrick': return 0xb22222ff;\n    case 'floralwhite': return 0xfffaf0ff;\n    case 'forestgreen': return 0x228b22ff;\n    case 'fuchsia': return 0xff00ffff;\n    case 'gainsboro': return 0xdcdcdcff;\n    case 'ghostwhite': return 0xf8f8ffff;\n    case 'gold': return 0xffd700ff;\n    case 'goldenrod': return 0xdaa520ff;\n    case 'gray': return 0x808080ff;\n    case 'green': return 0x008000ff;\n    case 'greenyellow': return 0xadff2fff;\n    case 'grey': return 0x808080ff;\n    case 'honeydew': return 0xf0fff0ff;\n    case 'hotpink': return 0xff69b4ff;\n    case 'indianred': return 0xcd5c5cff;\n    case 'indigo': return 0x4b0082ff;\n    case 'ivory': return 0xfffff0ff;\n    case 'khaki': return 0xf0e68cff;\n    case 'lavender': return 0xe6e6faff;\n    case 'lavenderblush': return 0xfff0f5ff;\n    case 'lawngreen': return 0x7cfc00ff;\n    case 'lemonchiffon': return 0xfffacdff;\n    case 'lightblue': return 0xadd8e6ff;\n    case 'lightcoral': return 0xf08080ff;\n    case 'lightcyan': return 0xe0ffffff;\n    case 'lightgoldenrodyellow': return 0xfafad2ff;\n    case 'lightgray': return 0xd3d3d3ff;\n    case 'lightgreen': return 0x90ee90ff;\n    case 'lightgrey': return 0xd3d3d3ff;\n    case 'lightpink': return 0xffb6c1ff;\n    case 'lightsalmon': return 0xffa07aff;\n    case 'lightseagreen': return 0x20b2aaff;\n    case 'lightskyblue': return 0x87cefaff;\n    case 'lightslategray': return 0x778899ff;\n    case 'lightslategrey': return 0x778899ff;\n    case 'lightsteelblue': return 0xb0c4deff;\n    case 'lightyellow': return 0xffffe0ff;\n    case 'lime': return 0x00ff00ff;\n    case 'limegreen': return 0x32cd32ff;\n    case 'linen': return 0xfaf0e6ff;\n    case 'magenta': return 0xff00ffff;\n    case 'maroon': return 0x800000ff;\n    case 'mediumaquamarine': return 0x66cdaaff;\n    case 'mediumblue': return 0x0000cdff;\n    case 'mediumorchid': return 0xba55d3ff;\n    case 'mediumpurple': return 0x9370dbff;\n    case 'mediumseagreen': return 0x3cb371ff;\n    case 'mediumslateblue': return 0x7b68eeff;\n    case 'mediumspringgreen': return 0x00fa9aff;\n    case 'mediumturquoise': return 0x48d1ccff;\n    case 'mediumvioletred': return 0xc71585ff;\n    case 'midnightblue': return 0x191970ff;\n    case 'mintcream': return 0xf5fffaff;\n    case 'mistyrose': return 0xffe4e1ff;\n    case 'moccasin': return 0xffe4b5ff;\n    case 'navajowhite': return 0xffdeadff;\n    case 'navy': return 0x000080ff;\n    case 'oldlace': return 0xfdf5e6ff;\n    case 'olive': return 0x808000ff;\n    case 'olivedrab': return 0x6b8e23ff;\n    case 'orange': return 0xffa500ff;\n    case 'orangered': return 0xff4500ff;\n    case 'orchid': return 0xda70d6ff;\n    case 'palegoldenrod': return 0xeee8aaff;\n    case 'palegreen': return 0x98fb98ff;\n    case 'paleturquoise': return 0xafeeeeff;\n    case 'palevioletred': return 0xdb7093ff;\n    case 'papayawhip': return 0xffefd5ff;\n    case 'peachpuff': return 0xffdab9ff;\n    case 'peru': return 0xcd853fff;\n    case 'pink': return 0xffc0cbff;\n    case 'plum': return 0xdda0ddff;\n    case 'powderblue': return 0xb0e0e6ff;\n    case 'purple': return 0x800080ff;\n    case 'rebeccapurple': return 0x663399ff;\n    case 'red': return 0xff0000ff;\n    case 'rosybrown': return 0xbc8f8fff;\n    case 'royalblue': return 0x4169e1ff;\n    case 'saddlebrown': return 0x8b4513ff;\n    case 'salmon': return 0xfa8072ff;\n    case 'sandybrown': return 0xf4a460ff;\n    case 'seagreen': return 0x2e8b57ff;\n    case 'seashell': return 0xfff5eeff;\n    case 'sienna': return 0xa0522dff;\n    case 'silver': return 0xc0c0c0ff;\n    case 'skyblue': return 0x87ceebff;\n    case 'slateblue': return 0x6a5acdff;\n    case 'slategray': return 0x708090ff;\n    case 'slategrey': return 0x708090ff;\n    case 'snow': return 0xfffafaff;\n    case 'springgreen': return 0x00ff7fff;\n    case 'steelblue': return 0x4682b4ff;\n    case 'tan': return 0xd2b48cff;\n    case 'teal': return 0x008080ff;\n    case 'thistle': return 0xd8bfd8ff;\n    case 'tomato': return 0xff6347ff;\n    case 'turquoise': return 0x40e0d0ff;\n    case 'violet': return 0xee82eeff;\n    case 'wheat': return 0xf5deb3ff;\n    case 'white': return 0xffffffff;\n    case 'whitesmoke': return 0xf5f5f5ff;\n    case 'yellow': return 0xffff00ff;\n    case 'yellowgreen': return 0x9acd32ff;\n  }\n  return null;\n}\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport normalizeColor from '@react-native/normalize-colors';\nvar processColor = color => {\n  if (color === undefined || color === null) {\n    return color;\n  }\n\n  // convert number and hex\n  var int32Color = normalizeColor(color);\n  if (int32Color === undefined || int32Color === null) {\n    return undefined;\n  }\n  int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n  return int32Color;\n};\nexport default processColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport isWebColor from '../../../modules/isWebColor';\nimport processColor from '../../../exports/processColor';\nvar normalizeColor = function normalizeColor(color, opacity) {\n  if (opacity === void 0) {\n    opacity = 1;\n  }\n  if (color == null) return;\n  if (typeof color === 'string' && isWebColor(color)) {\n    return color;\n  }\n  var colorInt = processColor(color);\n  if (colorInt != null) {\n    var r = colorInt >> 16 & 255;\n    var g = colorInt >> 8 & 255;\n    var b = colorInt & 255;\n    var a = (colorInt >> 24 & 255) / 255;\n    var alpha = (a * opacity).toFixed(2);\n    return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n  }\n};\nexport default normalizeColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport unitlessNumbers from './unitlessNumbers';\nimport normalizeColor from './normalizeColor';\nvar colorProps = {\n  backgroundColor: true,\n  borderColor: true,\n  borderTopColor: true,\n  borderRightColor: true,\n  borderBottomColor: true,\n  borderLeftColor: true,\n  color: true,\n  shadowColor: true,\n  textDecorationColor: true,\n  textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n  var returnValue = value;\n  if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n    returnValue = value + \"px\";\n  } else if (property != null && colorProps[property]) {\n    returnValue = normalizeColor(value);\n  }\n  return returnValue;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport canUseDOM from '../../../modules/canUseDom';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\nvar MONOSPACE_FONT_STACK = 'monospace,monospace';\nvar SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';\nvar STYLE_SHORT_FORM_EXPANSIONS = {\n  borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n  borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n  borderInlineColor: ['borderRightColor', 'borderLeftColor'],\n  borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n  borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n  borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n  borderInlineStyle: ['borderRightStyle', 'borderLeftStyle'],\n  borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n  borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n  borderInlineWidth: ['borderRightWidth', 'borderLeftWidth'],\n  insetBlock: ['top', 'bottom'],\n  insetInline: ['left', 'right'],\n  marginBlock: ['marginTop', 'marginBottom'],\n  marginInline: ['marginRight', 'marginLeft'],\n  paddingBlock: ['paddingTop', 'paddingBottom'],\n  paddingInline: ['paddingRight', 'paddingLeft'],\n  overflow: ['overflowX', 'overflowY'],\n  overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n  borderBlockStartColor: ['borderTopColor'],\n  borderBlockStartStyle: ['borderTopStyle'],\n  borderBlockStartWidth: ['borderTopWidth'],\n  borderBlockEndColor: ['borderBottomColor'],\n  borderBlockEndStyle: ['borderBottomStyle'],\n  borderBlockEndWidth: ['borderBottomWidth'],\n  //borderInlineStartColor: ['borderLeftColor'],\n  //borderInlineStartStyle: ['borderLeftStyle'],\n  //borderInlineStartWidth: ['borderLeftWidth'],\n  //borderInlineEndColor: ['borderRightColor'],\n  //borderInlineEndStyle: ['borderRightStyle'],\n  //borderInlineEndWidth: ['borderRightWidth'],\n  borderEndStartRadius: ['borderBottomLeftRadius'],\n  borderEndEndRadius: ['borderBottomRightRadius'],\n  borderStartStartRadius: ['borderTopLeftRadius'],\n  borderStartEndRadius: ['borderTopRightRadius'],\n  insetBlockEnd: ['bottom'],\n  insetBlockStart: ['top'],\n  //insetInlineEnd: ['right'],\n  //insetInlineStart: ['left'],\n  marginBlockStart: ['marginTop'],\n  marginBlockEnd: ['marginBottom'],\n  //marginInlineStart: ['marginLeft'],\n  //marginInlineEnd: ['marginRight'],\n  paddingBlockStart: ['paddingTop'],\n  paddingBlockEnd: ['paddingBottom']\n  //paddingInlineStart: ['marginLeft'],\n  //paddingInlineEnd: ['marginRight'],\n};\n\n/**\n * Reducer\n */\n\nvar createReactDOMStyle = (style, isInline) => {\n  if (!style) {\n    return emptyObject;\n  }\n  var resolvedStyle = {};\n  var _loop = function _loop() {\n    var value = style[prop];\n    if (\n    // Ignore everything with a null value\n    value == null) {\n      return \"continue\";\n    }\n    if (prop === 'backgroundClip') {\n      // TODO: remove once this issue is fixed\n      // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n      if (value === 'text') {\n        resolvedStyle.backgroundClip = value;\n        resolvedStyle.WebkitBackgroundClip = value;\n      }\n    } else if (prop === 'flex') {\n      if (value === -1) {\n        resolvedStyle.flexGrow = 0;\n        resolvedStyle.flexShrink = 1;\n        resolvedStyle.flexBasis = 'auto';\n      } else {\n        resolvedStyle.flex = value;\n      }\n    } else if (prop === 'font') {\n      resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n    } else if (prop === 'fontFamily') {\n      if (value.indexOf('System') > -1) {\n        var stack = value.split(/,\\s*/);\n        stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n        resolvedStyle[prop] = stack.join(',');\n      } else if (value === 'monospace') {\n        resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n      } else {\n        resolvedStyle[prop] = value;\n      }\n    } else if (prop === 'textDecorationLine') {\n      // use 'text-decoration' for browsers that only support CSS2\n      // text-decoration (e.g., IE, Edge)\n      if (!supportsCSS3TextDecoration) {\n        resolvedStyle.textDecoration = value;\n      } else {\n        resolvedStyle.textDecorationLine = value;\n      }\n    } else if (prop === 'writingDirection') {\n      resolvedStyle.direction = value;\n    } else {\n      var _value = normalizeValueWithProperty(style[prop], prop);\n      var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n      if (isInline && prop === 'inset') {\n        if (style.insetInline == null) {\n          resolvedStyle.left = _value;\n          resolvedStyle.right = _value;\n        }\n        if (style.insetBlock == null) {\n          resolvedStyle.top = _value;\n          resolvedStyle.bottom = _value;\n        }\n      } else if (isInline && prop === 'margin') {\n        if (style.marginInline == null) {\n          resolvedStyle.marginLeft = _value;\n          resolvedStyle.marginRight = _value;\n        }\n        if (style.marginBlock == null) {\n          resolvedStyle.marginTop = _value;\n          resolvedStyle.marginBottom = _value;\n        }\n      } else if (isInline && prop === 'padding') {\n        if (style.paddingInline == null) {\n          resolvedStyle.paddingLeft = _value;\n          resolvedStyle.paddingRight = _value;\n        }\n        if (style.paddingBlock == null) {\n          resolvedStyle.paddingTop = _value;\n          resolvedStyle.paddingBottom = _value;\n        }\n      } else if (longFormProperties) {\n        longFormProperties.forEach((longForm, i) => {\n          // The value of any longform property in the original styles takes\n          // precedence over the shortform's value.\n          if (style[longForm] == null) {\n            resolvedStyle[longForm] = _value;\n          }\n        });\n      } else {\n        resolvedStyle[prop] = _value;\n      }\n    }\n  };\n  for (var prop in style) {\n    var _ret = _loop();\n    if (_ret === \"continue\") continue;\n  }\n  return resolvedStyle;\n};\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/murmurhash-js\n * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\n\nfunction murmurhash2_32_gc(str, seed) {\n  var l = str.length,\n    h = seed ^ l,\n    i = 0,\n    k;\n  while (l >= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n    k ^= k >>> 24;\n    k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n    h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n    l -= 4;\n    ++i;\n  }\n  switch (l) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n  }\n  h ^= h >>> 13;\n  h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n  h ^= h >>> 15;\n  return h >>> 0;\n}\nvar hash = str => murmurhash2_32_gc(str, 1).toString(36);\nexport default hash;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\nfunction toHyphenLower(match) {\n  return '-' + match.toLowerCase();\n}\nfunction hyphenateStyleName(name) {\n  if (name in cache) {\n    return cache[name];\n  }\n  var hName = name.replace(uppercasePattern, toHyphenLower);\n  return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\nexport default hyphenateStyleName;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = capitalizeString;\nfunction capitalizeString(str) {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n  var requiredPrefixes = prefixProperties[property];\n\n  if (requiredPrefixes && style.hasOwnProperty(property)) {\n    var capitalizedProperty = (0, _capitalizeString2.default)(property);\n\n    for (var i = 0; i < requiredPrefixes.length; ++i) {\n      var prefixedProperty = requiredPrefixes[i] + capitalizedProperty;\n\n      if (!style[prefixedProperty]) {\n        style[prefixedProperty] = style[property];\n      }\n    }\n  }\n\n  return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n  for (var i = 0, len = plugins.length; i < len; ++i) {\n    var processedValue = plugins[i](property, value, style, metaData);\n\n    // we can stop processing if a value is returned\n    // as all plugin criteria are unique\n    if (processedValue) {\n      return processedValue;\n    }\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n  if (list.indexOf(value) === -1) {\n    list.push(value);\n  }\n}\n\nfunction addNewValuesOnly(list, values) {\n  if (Array.isArray(values)) {\n    for (var i = 0, len = values.length; i < len; ++i) {\n      addIfNew(list, values[i]);\n    }\n  } else {\n    addIfNew(list, values);\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = isObject;\nfunction isObject(value) {\n  return value instanceof Object && !Array.isArray(value);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createPrefixer;\n\nvar _prefixProperty = require('./utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('./utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _addNewValuesOnly = require('./utils/addNewValuesOnly');\n\nvar _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n\nvar _isObject = require('./utils/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createPrefixer(_ref) {\n  var prefixMap = _ref.prefixMap,\n      plugins = _ref.plugins;\n\n  return function prefix(style) {\n    for (var property in style) {\n      var value = style[property];\n\n      // handle nested objects\n      if ((0, _isObject2.default)(value)) {\n        style[property] = prefix(value);\n        // handle array values\n      } else if (Array.isArray(value)) {\n        var combinedValue = [];\n\n        for (var i = 0, len = value.length; i < len; ++i) {\n          var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n\n          (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n        }\n\n        // only modify the value if it was touched\n        // by any plugin to prevent unnecessary mutations\n        if (combinedValue.length > 0) {\n          style[property] = combinedValue;\n        }\n      } else {\n        var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n\n        // only modify the value if it was touched\n        // by any plugin to prevent unnecessary mutations\n        if (_processedValue) {\n          style[property] = _processedValue;\n        }\n\n        style = (0, _prefixProperty2.default)(prefixMap, property, style);\n      }\n    }\n\n    return style;\n  };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction filterUniqueArray(arr) {\n  return arr.filter(function (val, index) {\n    return arr.lastIndexOf(val) === index;\n  });\n}\n\nexport default function assignStyle(base) {\n  for (var i = 0, len = arguments.length <= 1 ? 0 : arguments.length - 1; i < len; ++i) {\n    var style = i + 1 < 1 || arguments.length <= i + 1 ? undefined : arguments[i + 1];\n\n    for (var property in style) {\n      var value = style[property];\n      var baseValue = base[property];\n\n      if (baseValue && value) {\n        if (Array.isArray(baseValue)) {\n          base[property] = filterUniqueArray(baseValue.concat(value));\n          continue;\n        }\n\n        if (Array.isArray(value)) {\n          base[property] = filterUniqueArray([baseValue].concat(_toConsumableArray(value)));\n          continue;\n        }\n\n        if (_typeof(value) === 'object') {\n          base[property] = assignStyle({}, baseValue, value);\n          continue;\n        }\n      }\n\n      base[property] = value;\n    }\n  }\n\n  return base;\n}","var DASH = /-([a-z])/g;\nvar MS = /^Ms/g;\nvar cache = {};\n\nfunction toUpper(match) {\n  return match[1].toUpperCase();\n}\n\nexport default function camelCaseProperty(property) {\n  if (cache.hasOwnProperty(property)) {\n    return cache[property];\n  }\n\n  var camelProp = property.replace(DASH, toUpper).replace(MS, 'ms');\n  cache[property] = camelProp;\n  return camelProp;\n}","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n  return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n  if (cache.hasOwnProperty(name)) {\n    return cache[name]\n  }\n\n  var hName = name.replace(uppercasePattern, toHyphenLower)\n  return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import hyphenateStyleName from 'hyphenate-style-name';\nexport default function hyphenateProperty(property) {\n  return hyphenateStyleName(property);\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function cssifyDeclaration(property, value) {\n  return hyphenateProperty(property) + ':' + value;\n}","import cssifyDeclaration from './cssifyDeclaration';\nexport default function cssifyObject(style) {\n  var css = '';\n\n  for (var property in style) {\n    var value = style[property];\n\n    if (typeof value !== 'string' && typeof value !== 'number') {\n      continue;\n    } // prevents the semicolon after\n    // the last rule declaration\n\n\n    if (css) {\n      css += ';';\n    }\n\n    css += cssifyDeclaration(property, value);\n  }\n\n  return css;\n}","var RE = /^(Webkit|Moz|O|ms)/;\nexport default function isPrefixedProperty(property) {\n  return RE.test(property);\n}","var RE = /-webkit-|-moz-|-ms-/;\nexport default function isPrefixedValue(value) {\n  return typeof value === 'string' && RE.test(value);\n}","import hyphenateProperty from './hyphenateProperty';\nvar unitlessProperties = {\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  fontWeight: true,\n  lineHeight: true,\n  opacity: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // SVG-related properties\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\nvar prefixedUnitlessProperties = ['animationIterationCount', 'boxFlex', 'boxFlexGroup', 'boxOrdinalGroup', 'columnCount', 'flex', 'flexGrow', 'flexPositive', 'flexShrink', 'flexNegative', 'flexOrder', 'gridColumn', 'gridColumnEnd', 'gridColumnStart', 'gridRow', 'gridRowEnd', 'gridRowStart', 'lineClamp', 'order'];\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\nfunction getPrefixedProperty(prefix, property) {\n  return prefix + property.charAt(0).toUpperCase() + property.slice(1);\n} // add all prefixed properties to the unitless properties\n\n\nfor (var i = 0, len = prefixedUnitlessProperties.length; i < len; ++i) {\n  var property = prefixedUnitlessProperties[i];\n  unitlessProperties[property] = true;\n\n  for (var j = 0, jLen = prefixes.length; j < jLen; ++j) {\n    unitlessProperties[getPrefixedProperty(prefixes[j], property)] = true;\n  }\n} // add all hypenated properties as well\n\n\nfor (var _property in unitlessProperties) {\n  unitlessProperties[hyphenateProperty(_property)] = true;\n}\n\nexport default function isUnitlessProperty(property) {\n  return unitlessProperties.hasOwnProperty(property);\n}","var RE = /^(ms|Webkit|Moz|O)/;\nexport default function unprefixProperty(property) {\n  var propertyWithoutPrefix = property.replace(RE, '');\n  return propertyWithoutPrefix.charAt(0).toLowerCase() + propertyWithoutPrefix.slice(1);\n}","import camelCaseProperty from './camelCaseProperty';\nimport unprefixProperty from './unprefixProperty';\nexport default function normalizeProperty(property) {\n  return unprefixProperty(camelCaseProperty(property));\n}","import hyphenateProperty from './hyphenateProperty';\nexport default function resolveArrayValue(property, value) {\n  return value.join(';' + hyphenateProperty(property) + ':');\n}","var RE = /(-ms-|-webkit-|-moz-|-o-)/g;\nexport default function unprefixValue(value) {\n  if (typeof value === 'string') {\n    return value.replace(RE, '');\n  }\n\n  return value;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = crossFade;\n\nvar _cssInJsUtils = require('css-in-js-utils');\n\nvar CROSS_FADE_REGEX = /cross-fade\\(/g;\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n  if (typeof value === 'string' && !(0, _cssInJsUtils.isPrefixedValue)(value) && value.indexOf('cross-fade(') !== -1) {\n    return prefixes.map(function (prefix) {\n      return value.replace(CROSS_FADE_REGEX, prefix + 'cross-fade(');\n    });\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = isPrefixedValue;\nvar RE = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n  return typeof value === 'string' && RE.test(value);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\n\nfunction imageSet(property, value) {\n  if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n    return prefixes.map(function (prefix) {\n      return value.replace(/image-set\\(/g, prefix + 'image-set(');\n    });\n  }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = logical;\nvar alternativeProps = {\n  marginBlockStart: ['WebkitMarginBefore'],\n  marginBlockEnd: ['WebkitMarginAfter'],\n  marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n  marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n  paddingBlockStart: ['WebkitPaddingBefore'],\n  paddingBlockEnd: ['WebkitPaddingAfter'],\n  paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n  paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n  borderBlockStart: ['WebkitBorderBefore'],\n  borderBlockStartColor: ['WebkitBorderBeforeColor'],\n  borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n  borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n  borderBlockEnd: ['WebkitBorderAfter'],\n  borderBlockEndColor: ['WebkitBorderAfterColor'],\n  borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n  borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n  borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n  borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n  borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n  borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n  borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n  borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n  borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n  borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n  if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n    var alternativePropList = alternativeProps[property];\n    for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n      style[alternativePropList[i]] = value;\n    }\n  }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = position;\nfunction position(property, value) {\n  if (property === 'position' && value === 'sticky') {\n    return ['-webkit-sticky', 'sticky'];\n  }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n  maxHeight: true,\n  maxWidth: true,\n  width: true,\n  height: true,\n  columnWidth: true,\n  minWidth: true,\n  minHeight: true\n};\nvar values = {\n  'min-content': true,\n  'max-content': true,\n  'fill-available': true,\n  'fit-content': true,\n  'contain-floats': true\n};\n\nfunction sizing(property, value) {\n  if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n    return prefixes.map(function (prefix) {\n      return prefix + value;\n    });\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = hyphenateProperty;\n\nvar _hyphenateStyleName = require(\"hyphenate-style-name\");\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction hyphenateProperty(property) {\n  return (0, _hyphenateStyleName2[\"default\"])(property);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n  transition: true,\n  transitionProperty: true,\n  WebkitTransition: true,\n  WebkitTransitionProperty: true,\n  MozTransition: true,\n  MozTransitionProperty: true\n};\n\nvar prefixMapping = {\n  Webkit: '-webkit-',\n  Moz: '-moz-',\n  ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n  if ((0, _isPrefixedValue2.default)(value)) {\n    return value;\n  }\n\n  // only split multi values, not cubic beziers\n  var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n  for (var i = 0, len = multipleValues.length; i < len; ++i) {\n    var singleValue = multipleValues[i];\n    var values = [singleValue];\n    for (var property in propertyPrefixMap) {\n      var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n      if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n        var prefixes = propertyPrefixMap[property];\n        for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n          // join all prefixes and create a new value\n          values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n        }\n      }\n    }\n\n    multipleValues[i] = values.join(',');\n  }\n\n  return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n  // also check for already prefixed transitions\n  if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n    var outputValue = prefixValue(value, propertyPrefixMap);\n    // if the property is already prefixed\n    var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n      return !/-moz-|-ms-/.test(val);\n    }).join(',');\n\n    if (property.indexOf('Webkit') > -1) {\n      return webkitOutput;\n    }\n\n    var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n      return !/-webkit-|-ms-/.test(val);\n    }).join(',');\n\n    if (property.indexOf('Moz') > -1) {\n      return mozOutput;\n    }\n\n    style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n    style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n    return outputValue;\n  }\n}","import crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n  plugins: [crossFade, imageSet, logical, position, sizing, transition],\n  prefixMap: {\n    appearance: wmms,\n    userSelect: wm,\n    textEmphasisPosition: wms,\n    textEmphasis: wms,\n    textEmphasisStyle: wms,\n    textEmphasisColor: wms,\n    boxDecorationBreak: wms,\n    clipPath: w,\n    maskImage: wms,\n    maskMode: wms,\n    maskRepeat: wms,\n    maskPosition: wms,\n    maskClip: wms,\n    maskOrigin: wms,\n    maskSize: wms,\n    maskComposite: wms,\n    mask: wms,\n    maskBorderSource: wms,\n    maskBorderMode: wms,\n    maskBorderSlice: wms,\n    maskBorderWidth: wms,\n    maskBorderOutset: wms,\n    maskBorderRepeat: wms,\n    maskBorder: wms,\n    maskType: wms,\n    textDecorationStyle: w,\n    textDecorationSkip: w,\n    textDecorationLine: w,\n    textDecorationColor: w,\n    filter: w,\n    breakAfter: w,\n    breakBefore: w,\n    breakInside: w,\n    columnCount: w,\n    columnFill: w,\n    columnGap: w,\n    columnRule: w,\n    columnRuleColor: w,\n    columnRuleStyle: w,\n    columnRuleWidth: w,\n    columns: w,\n    columnSpan: w,\n    columnWidth: w,\n    backdropFilter: w,\n    hyphens: w,\n    flowInto: w,\n    flowFrom: w,\n    regionFragment: w,\n    textOrientation: w,\n    tabSize: m,\n    fontKerning: w,\n    textSizeAdjust: w\n  }\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animationKeyframes\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from './hash';\nimport hyphenateStyleName from './hyphenateStyleName';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles from '../../../modules/prefixStyles';\nvar cache = new Map();\nvar emptyObject = {};\nvar classicGroup = 1;\nvar atomicGroup = 3;\nvar customGroup = {\n  borderColor: 2,\n  borderRadius: 2,\n  borderStyle: 2,\n  borderWidth: 2,\n  display: 2,\n  flex: 2,\n  inset: 2,\n  margin: 2,\n  overflow: 2,\n  overscrollBehavior: 2,\n  padding: 2,\n  insetBlock: 2.1,\n  insetInline: 2.1,\n  marginInline: 2.1,\n  marginBlock: 2.1,\n  paddingInline: 2.1,\n  paddingBlock: 2.1,\n  borderBlockStartColor: 2.2,\n  borderBlockStartStyle: 2.2,\n  borderBlockStartWidth: 2.2,\n  borderBlockEndColor: 2.2,\n  borderBlockEndStyle: 2.2,\n  borderBlockEndWidth: 2.2,\n  borderInlineStartColor: 2.2,\n  borderInlineStartStyle: 2.2,\n  borderInlineStartWidth: 2.2,\n  borderInlineEndColor: 2.2,\n  borderInlineEndStyle: 2.2,\n  borderInlineEndWidth: 2.2,\n  borderEndStartRadius: 2.2,\n  borderEndEndRadius: 2.2,\n  borderStartStartRadius: 2.2,\n  borderStartEndRadius: 2.2,\n  insetBlockEnd: 2.2,\n  insetBlockStart: 2.2,\n  insetInlineEnd: 2.2,\n  insetInlineStart: 2.2,\n  marginBlockStart: 2.2,\n  marginBlockEnd: 2.2,\n  marginInlineStart: 2.2,\n  marginInlineEnd: 2.2,\n  paddingBlockStart: 2.2,\n  paddingBlockEnd: 2.2,\n  paddingInlineStart: 2.2,\n  paddingInlineEnd: 2.2\n};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left';\n\n// Map of LTR property names to their BiDi equivalent.\nvar PROPERTIES_FLIP = {\n  [borderTopLeftRadius]: borderTopRightRadius,\n  [borderTopRightRadius]: borderTopLeftRadius,\n  [borderBottomLeftRadius]: borderBottomRightRadius,\n  [borderBottomRightRadius]: borderBottomLeftRadius,\n  [borderLeftColor]: borderRightColor,\n  [borderLeftStyle]: borderRightStyle,\n  [borderLeftWidth]: borderRightWidth,\n  [borderRightColor]: borderLeftColor,\n  [borderRightStyle]: borderLeftStyle,\n  [borderRightWidth]: borderLeftWidth,\n  [left]: right,\n  [marginLeft]: marginRight,\n  [marginRight]: marginLeft,\n  [paddingLeft]: paddingRight,\n  [paddingRight]: paddingLeft,\n  [right]: left\n};\n\n// Map of I18N property names to their LTR equivalent.\nvar PROPERTIES_I18N = {\n  borderStartStartRadius: borderTopLeftRadius,\n  borderStartEndRadius: borderTopRightRadius,\n  borderEndStartRadius: borderBottomLeftRadius,\n  borderEndEndRadius: borderBottomRightRadius,\n  borderInlineStartColor: borderLeftColor,\n  borderInlineStartStyle: borderLeftStyle,\n  borderInlineStartWidth: borderLeftWidth,\n  borderInlineEndColor: borderRightColor,\n  borderInlineEndStyle: borderRightStyle,\n  borderInlineEndWidth: borderRightWidth,\n  insetInlineEnd: right,\n  insetInlineStart: left,\n  marginInlineStart: marginLeft,\n  marginInlineEnd: marginRight,\n  paddingInlineStart: paddingLeft,\n  paddingInlineEnd: paddingRight\n};\nvar PROPERTIES_VALUE = ['clear', 'float', 'textAlign'];\nexport function atomic(style) {\n  var compiledStyle = {\n    $$css: true\n  };\n  var compiledRules = [];\n  function atomicCompile(srcProp, prop, value) {\n    var valueString = stringifyValueWithProperty(value, prop);\n    var cacheKey = prop + valueString;\n    var cachedResult = cache.get(cacheKey);\n    var identifier;\n    if (cachedResult != null) {\n      identifier = cachedResult[0];\n      compiledRules.push(cachedResult[1]);\n    } else {\n      var v = srcProp !== prop ? cacheKey : valueString;\n      identifier = createIdentifier('r', srcProp, v);\n      var order = customGroup[srcProp] || atomicGroup;\n      var rules = createAtomicRules(identifier, prop, value);\n      var orderedRules = [rules, order];\n      compiledRules.push(orderedRules);\n      cache.set(cacheKey, [identifier, orderedRules]);\n    }\n    return identifier;\n  }\n  Object.keys(style).sort().forEach(srcProp => {\n    var value = style[srcProp];\n    if (value != null) {\n      var localizeableValue;\n      // BiDi flip values\n      if (PROPERTIES_VALUE.indexOf(srcProp) > -1) {\n        var _left = atomicCompile(srcProp, srcProp, 'left');\n        var _right = atomicCompile(srcProp, srcProp, 'right');\n        if (value === 'start') {\n          localizeableValue = [_left, _right];\n        } else if (value === 'end') {\n          localizeableValue = [_right, _left];\n        }\n      }\n      // BiDi flip properties\n      var propPolyfill = PROPERTIES_I18N[srcProp];\n      if (propPolyfill != null) {\n        var ltr = atomicCompile(srcProp, propPolyfill, value);\n        var rtl = atomicCompile(srcProp, PROPERTIES_FLIP[propPolyfill], value);\n        localizeableValue = [ltr, rtl];\n      }\n      // BiDi flip transitionProperty value\n      if (srcProp === 'transitionProperty') {\n        var values = Array.isArray(value) ? value : [value];\n        var polyfillIndices = [];\n        for (var i = 0; i < values.length; i++) {\n          var val = values[i];\n          if (typeof val === 'string' && PROPERTIES_I18N[val] != null) {\n            polyfillIndices.push(i);\n          }\n        }\n        if (polyfillIndices.length > 0) {\n          var ltrPolyfillValues = [...values];\n          var rtlPolyfillValues = [...values];\n          polyfillIndices.forEach(i => {\n            var ltrVal = ltrPolyfillValues[i];\n            if (typeof ltrVal === 'string') {\n              var ltrPolyfill = PROPERTIES_I18N[ltrVal];\n              var rtlPolyfill = PROPERTIES_FLIP[ltrPolyfill];\n              ltrPolyfillValues[i] = ltrPolyfill;\n              rtlPolyfillValues[i] = rtlPolyfill;\n              var _ltr = atomicCompile(srcProp, srcProp, ltrPolyfillValues);\n              var _rtl = atomicCompile(srcProp, srcProp, rtlPolyfillValues);\n              localizeableValue = [_ltr, _rtl];\n            }\n          });\n        }\n      }\n      if (localizeableValue == null) {\n        localizeableValue = atomicCompile(srcProp, srcProp, value);\n      } else {\n        compiledStyle['$$css$localize'] = true;\n      }\n      compiledStyle[srcProp] = localizeableValue;\n    }\n  });\n  return [compiledStyle, compiledRules];\n}\n\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function classic(style, name) {\n  var compiledStyle = {\n    $$css: true\n  };\n  var compiledRules = [];\n  var animationKeyframes = style.animationKeyframes,\n    rest = _objectWithoutPropertiesLoose(style, _excluded);\n  var identifier = createIdentifier('css', name, JSON.stringify(style));\n  var selector = \".\" + identifier;\n  var animationName;\n  if (animationKeyframes != null) {\n    var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n      animationNames = _processKeyframesValu[0],\n      keyframesRules = _processKeyframesValu[1];\n    animationName = animationNames.join(',');\n    compiledRules.push(...keyframesRules);\n  }\n  var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n    animationName\n  }));\n  compiledRules.push(\"\" + selector + block);\n  compiledStyle[identifier] = identifier;\n  return [compiledStyle, [[compiledRules, classicGroup]]];\n}\n\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\nexport function inline(originalStyle, isRTL) {\n  var style = originalStyle || emptyObject;\n  var frozenProps = {};\n  var nextStyle = {};\n  var _loop = function _loop() {\n    var originalValue = style[originalProp];\n    var prop = originalProp;\n    var value = originalValue;\n    if (!Object.prototype.hasOwnProperty.call(style, originalProp) || originalValue == null) {\n      return \"continue\";\n    }\n\n    // BiDi flip values\n    if (PROPERTIES_VALUE.indexOf(originalProp) > -1) {\n      if (originalValue === 'start') {\n        value = isRTL ? 'right' : 'left';\n      } else if (originalValue === 'end') {\n        value = isRTL ? 'left' : 'right';\n      }\n    }\n    // BiDi flip properties\n    var propPolyfill = PROPERTIES_I18N[originalProp];\n    if (propPolyfill != null) {\n      prop = isRTL ? PROPERTIES_FLIP[propPolyfill] : propPolyfill;\n    }\n    // BiDi flip transitionProperty value\n    if (originalProp === 'transitionProperty') {\n      // $FlowFixMe\n      var originalValues = Array.isArray(originalValue) ? originalValue : [originalValue];\n      originalValues.forEach((val, i) => {\n        if (typeof val === 'string') {\n          var valuePolyfill = PROPERTIES_I18N[val];\n          if (valuePolyfill != null) {\n            originalValues[i] = isRTL ? PROPERTIES_FLIP[valuePolyfill] : valuePolyfill;\n            value = originalValues.join(' ');\n          }\n        }\n      });\n    }\n\n    // Create finalized style\n    if (!frozenProps[prop]) {\n      nextStyle[prop] = value;\n    }\n    if (prop === originalProp) {\n      frozenProps[prop] = true;\n    }\n\n    //    if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n    //    frozenProps[prop] = true;\n    //}\n  };\n  for (var originalProp in style) {\n    var _ret = _loop();\n    if (_ret === \"continue\") continue;\n  }\n  return createReactDOMStyle(nextStyle, true);\n}\n\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\nexport function stringifyValueWithProperty(value, property) {\n  // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n  var normalizedValue = normalizeValueWithProperty(value, property);\n  return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\nfunction createAtomicRules(identifier, property, value) {\n  var rules = [];\n  var selector = \".\" + identifier;\n\n  // Handle non-standard properties and object values that require multiple\n  // CSS rules to be created.\n  switch (property) {\n    case 'animationKeyframes':\n      {\n        var _processKeyframesValu2 = processKeyframesValue(value),\n          animationNames = _processKeyframesValu2[0],\n          keyframesRules = _processKeyframesValu2[1];\n        var block = createDeclarationBlock({\n          animationName: animationNames.join(',')\n        });\n        rules.push(\"\" + selector + block, ...keyframesRules);\n        break;\n      }\n\n    // Equivalent to using '::placeholder'\n    case 'placeholderTextColor':\n      {\n        var _block = createDeclarationBlock({\n          color: value,\n          opacity: 1\n        });\n        rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n        break;\n      }\n\n    // Polyfill for additional 'pointer-events' values\n    // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n    case 'pointerEvents':\n      {\n        var finalValue = value;\n        if (value === 'auto' || value === 'box-only') {\n          finalValue = 'auto!important';\n          if (value === 'box-only') {\n            var _block2 = createDeclarationBlock({\n              pointerEvents: 'none'\n            });\n            rules.push(selector + \">*\" + _block2);\n          }\n        } else if (value === 'none' || value === 'box-none') {\n          finalValue = 'none!important';\n          if (value === 'box-none') {\n            var _block3 = createDeclarationBlock({\n              pointerEvents: 'auto'\n            });\n            rules.push(selector + \">*\" + _block3);\n          }\n        }\n        var _block4 = createDeclarationBlock({\n          pointerEvents: finalValue\n        });\n        rules.push(\"\" + selector + _block4);\n        break;\n      }\n\n    // Polyfill for draft spec\n    // https://drafts.csswg.org/css-scrollbars-1/\n    case 'scrollbarWidth':\n      {\n        if (value === 'none') {\n          rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n        }\n        var _block5 = createDeclarationBlock({\n          scrollbarWidth: value\n        });\n        rules.push(\"\" + selector + _block5);\n        break;\n      }\n    default:\n      {\n        var _block6 = createDeclarationBlock({\n          [property]: value\n        });\n        rules.push(\"\" + selector + _block6);\n        break;\n      }\n  }\n  return rules;\n}\n\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\nfunction createDeclarationBlock(style) {\n  var domStyle = prefixStyles(createReactDOMStyle(style));\n  var declarationsString = Object.keys(domStyle).map(property => {\n    var value = domStyle[property];\n    var prop = hyphenateStyleName(property);\n    // The prefixer may return an array of values:\n    // { display: [ '-webkit-flex', 'flex' ] }\n    // to represent \"fallback\" declarations\n    // { display: -webkit-flex; display: flex; }\n    if (Array.isArray(value)) {\n      return value.map(v => prop + \":\" + v).join(';');\n    } else {\n      return prop + \":\" + value;\n    }\n  })\n  // Once properties are hyphenated, this will put the vendor\n  // prefixed and short-form properties first in the list.\n  .sort().join(';');\n  return \"{\" + declarationsString + \";}\";\n}\n\n/**\n * An identifier is associated with a unique set of styles.\n */\nfunction createIdentifier(prefix, name, key) {\n  var hashedString = hash(name + key);\n  return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n\n/**\n * Create individual CSS keyframes rules.\n */\nfunction createKeyframes(keyframes) {\n  var prefixes = ['-webkit-', ''];\n  var identifier = createIdentifier('r', 'animation', JSON.stringify(keyframes));\n  var steps = '{' + Object.keys(keyframes).map(stepName => {\n    var rule = keyframes[stepName];\n    var block = createDeclarationBlock(rule);\n    return \"\" + stepName + block;\n  }).join('') + '}';\n  var rules = prefixes.map(prefix => {\n    return \"@\" + prefix + \"keyframes \" + identifier + steps;\n  });\n  return [identifier, rules];\n}\n\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\nfunction processKeyframesValue(keyframesValue) {\n  if (typeof keyframesValue === 'number') {\n    throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n  }\n  var animationNames = [];\n  var rules = [];\n  var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n  value.forEach(keyframes => {\n    if (typeof keyframes === 'string') {\n      // Support external animation libraries (identifiers only)\n      animationNames.push(keyframes);\n    } else {\n      // Create rules for each of the keyframes\n      var _createKeyframes = createKeyframes(keyframes),\n        identifier = _createKeyframes[0],\n        keyframesRules = _createKeyframes[1];\n      animationNames.push(identifier);\n      rules.push(...keyframesRules);\n    }\n  });\n  return [animationNames, rules];\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport canUseDOM from '../../../modules/canUseDom';\n\n// $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\nexport default function createCSSStyleSheet(id, rootNode, textContent) {\n  if (canUseDOM) {\n    var root = rootNode != null ? rootNode : document;\n    var element = root.getElementById(id);\n    if (element == null) {\n      element = document.createElement('style');\n      element.setAttribute('id', id);\n      if (typeof textContent === 'string') {\n        element.appendChild(document.createTextNode(textContent));\n      }\n      if (root instanceof ShadowRoot) {\n        root.insertBefore(element, root.firstChild);\n      } else {\n        var head = root.head;\n        if (head) {\n          head.insertBefore(element, head.firstChild);\n        }\n      }\n    }\n    // $FlowFixMe: HTMLElement is incorrectly typed\n    return element.sheet;\n  } else {\n    return null;\n  }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar slice = Array.prototype.slice;\n\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\nexport default function createOrderedCSSStyleSheet(sheet) {\n  var groups = {};\n  var selectors = {};\n\n  /**\n   * Hydrate approximate record from any existing rules in the sheet.\n   */\n  if (sheet != null) {\n    var group;\n    slice.call(sheet.cssRules).forEach((cssRule, i) => {\n      var cssText = cssRule.cssText;\n      // Create record of existing selectors and rules\n      if (cssText.indexOf('stylesheet-group') > -1) {\n        group = decodeGroupRule(cssRule);\n        groups[group] = {\n          start: i,\n          rules: [cssText]\n        };\n      } else {\n        var selectorText = getSelectorText(cssText);\n        if (selectorText != null) {\n          selectors[selectorText] = true;\n          groups[group].rules.push(cssText);\n        }\n      }\n    });\n  }\n  function sheetInsert(sheet, group, text) {\n    var orderedGroups = getOrderedGroups(groups);\n    var groupIndex = orderedGroups.indexOf(group);\n    var nextGroupIndex = groupIndex + 1;\n    var nextGroup = orderedGroups[nextGroupIndex];\n    // Insert rule before the next group, or at the end of the stylesheet\n    var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n    var isInserted = insertRuleAt(sheet, text, position);\n    if (isInserted) {\n      // Set the starting index of the new group\n      if (groups[group].start == null) {\n        groups[group].start = position;\n      }\n      // Increment the starting index of all subsequent groups\n      for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n        var groupNumber = orderedGroups[i];\n        var previousStart = groups[groupNumber].start || 0;\n        groups[groupNumber].start = previousStart + 1;\n      }\n    }\n    return isInserted;\n  }\n  var OrderedCSSStyleSheet = {\n    /**\n     * The textContent of the style sheet.\n     */\n    getTextContent() {\n      return getOrderedGroups(groups).map(group => {\n        var rules = groups[group].rules;\n        // Sorting provides deterministic order of styles in group for\n        // build-time extraction of the style sheet.\n        var marker = rules.shift();\n        rules.sort();\n        rules.unshift(marker);\n        return rules.join('\\n');\n      }).join('\\n');\n    },\n    /**\n     * Insert a rule into the style sheet\n     */\n    insert(cssText, groupValue) {\n      var group = Number(groupValue);\n\n      // Create a new group.\n      if (groups[group] == null) {\n        var markerRule = encodeGroupRule(group);\n        // Create the internal record.\n        groups[group] = {\n          start: null,\n          rules: [markerRule]\n        };\n        // Update CSSOM.\n        if (sheet != null) {\n          sheetInsert(sheet, group, markerRule);\n        }\n      }\n\n      // selectorText is more reliable than cssText for insertion checks. The\n      // browser excludes vendor-prefixed properties and rewrites certain values\n      // making cssText more likely to be different from what was inserted.\n      var selectorText = getSelectorText(cssText);\n      if (selectorText != null && selectors[selectorText] == null) {\n        // Update the internal records.\n        selectors[selectorText] = true;\n        groups[group].rules.push(cssText);\n        // Update CSSOM.\n        if (sheet != null) {\n          var isInserted = sheetInsert(sheet, group, cssText);\n          if (!isInserted) {\n            // Revert internal record change if a rule was rejected (e.g.,\n            // unrecognized pseudo-selector)\n            groups[group].rules.pop();\n          }\n        }\n      }\n    }\n  };\n  return OrderedCSSStyleSheet;\n}\n\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n  return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\nvar groupPattern = /[\"']/g;\nfunction decodeGroupRule(cssRule) {\n  return Number(cssRule.selectorText.split(groupPattern)[1]);\n}\nfunction getOrderedGroups(obj) {\n  return Object.keys(obj).map(Number).sort((a, b) => a > b ? 1 : -1);\n}\nvar selectorPattern = /\\s*([,])\\s*/g;\nfunction getSelectorText(cssText) {\n  var selector = cssText.split('{')[0].trim();\n  return selector !== '' ? selector.replace(selectorPattern, '$1') : null;\n}\nfunction insertRuleAt(root, cssText, position) {\n  try {\n    // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n    root.insertRule(cssText, position);\n    return true;\n  } catch (e) {\n    // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n    // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n    return false;\n  }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport canUseDOM from '../../../modules/canUseDom';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nvar defaultId = 'react-native-stylesheet';\nvar roots = new WeakMap();\nvar sheets = [];\nvar initialRules = [\n// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}',\n// minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport function createSheet(root, id) {\n  if (id === void 0) {\n    id = defaultId;\n  }\n  var sheet;\n  if (canUseDOM) {\n    var rootNode = root != null ? root.getRootNode() : document;\n    // Create the initial style sheet\n    if (sheets.length === 0) {\n      sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n      initialRules.forEach(rule => {\n        sheet.insert(rule, 0);\n      });\n      roots.set(rootNode, sheets.length);\n      sheets.push(sheet);\n    } else {\n      var index = roots.get(rootNode);\n      if (index == null) {\n        var initialSheet = sheets[0];\n        // If we're creating a new sheet, populate it with existing styles\n        var textContent = initialSheet != null ? initialSheet.getTextContent() : '';\n        // Cast rootNode to 'any' because Flow types for getRootNode are wrong\n        sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id, rootNode, textContent));\n        roots.set(rootNode, sheets.length);\n        sheets.push(sheet);\n      } else {\n        sheet = sheets[index];\n      }\n    }\n  } else {\n    // Create the initial style sheet\n    if (sheets.length === 0) {\n      sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(id));\n      initialRules.forEach(rule => {\n        sheet.insert(rule, 0);\n      });\n      sheets.push(sheet);\n    } else {\n      sheet = sheets[0];\n    }\n  }\n  return {\n    getTextContent() {\n      return sheet.getTextContent();\n    },\n    id,\n    insert(cssText, groupValue) {\n      sheets.forEach(s => {\n        s.insert(cssText, groupValue);\n      });\n    }\n  };\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.localizeStyle = localizeStyle;\nvar cache = new WeakMap();\nvar markerProp = '$$css$localize';\n/**\n * The compiler polyfills logical properties and values, generating a class\n * name for both writing directions. The style objects are annotated by\n * the compiler as needing this runtime transform. The results are memoized.\n *\n * { '$$css$localize': true, float: [ 'float-left', 'float-right' ] }\n * => { float: 'float-left' }\n */\n\nfunction compileStyle(style, isRTL) {\n  // Create a new compiled style for styleq\n  var compiledStyle = {};\n\n  for (var prop in style) {\n    if (prop !== markerProp) {\n      var value = style[prop];\n\n      if (Array.isArray(value)) {\n        compiledStyle[prop] = isRTL ? value[1] : value[0];\n      } else {\n        compiledStyle[prop] = value;\n      }\n    }\n  }\n\n  return compiledStyle;\n}\n\nfunction localizeStyle(style, isRTL) {\n  if (style[markerProp] != null) {\n    var compiledStyleIndex = isRTL ? 1 : 0; // Check the cache in case we've already seen this object\n\n    if (cache.has(style)) {\n      var _cachedStyles = cache.get(style);\n\n      var _compiledStyle = _cachedStyles[compiledStyleIndex];\n\n      if (_compiledStyle == null) {\n        // Update the missing cache entry\n        _compiledStyle = compileStyle(style, isRTL);\n        _cachedStyles[compiledStyleIndex] = _compiledStyle;\n        cache.set(style, _cachedStyles);\n      }\n\n      return _compiledStyle;\n    } // Create a new compiled style for styleq\n\n\n    var compiledStyle = compileStyle(style, isRTL);\n    var cachedStyles = new Array(2);\n    cachedStyles[compiledStyleIndex] = compiledStyle;\n    cache.set(style, cachedStyles);\n    return compiledStyle;\n  }\n\n  return style;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nmodule.exports = require('./dist/transform-localize-style');\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport normalizeColor from './compiler/normalizeColor';\nimport normalizeValueWithProperty from './compiler/normalizeValueWithProperty';\nimport { warnOnce } from '../../modules/warnOnce';\nvar emptyObject = {};\n\n/**\n * Shadows\n */\n\nvar defaultOffset = {\n  height: 0,\n  width: 0\n};\nexport var createBoxShadowValue = style => {\n  var shadowColor = style.shadowColor,\n    shadowOffset = style.shadowOffset,\n    shadowOpacity = style.shadowOpacity,\n    shadowRadius = style.shadowRadius;\n  var _ref = shadowOffset || defaultOffset,\n    height = _ref.height,\n    width = _ref.width;\n  var offsetX = normalizeValueWithProperty(width);\n  var offsetY = normalizeValueWithProperty(height);\n  var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n  var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n  if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n    return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n  }\n};\nexport var createTextShadowValue = style => {\n  var textShadowColor = style.textShadowColor,\n    textShadowOffset = style.textShadowOffset,\n    textShadowRadius = style.textShadowRadius;\n  var _ref2 = textShadowOffset || defaultOffset,\n    height = _ref2.height,\n    width = _ref2.width;\n  var radius = textShadowRadius || 0;\n  var offsetX = normalizeValueWithProperty(width);\n  var offsetY = normalizeValueWithProperty(height);\n  var blurRadius = normalizeValueWithProperty(radius);\n  var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n  if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n    return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n  }\n};\n\n// { offsetX: 1, offsetY: 2, blurRadius: 3, spreadDistance: 4, color: 'rgba(255, 0, 0)', inset: true }\n// => 'rgba(255, 0, 0) 1px 2px 3px 4px inset'\nvar mapBoxShadow = boxShadow => {\n  if (typeof boxShadow === 'string') {\n    return boxShadow;\n  }\n  var offsetX = normalizeValueWithProperty(boxShadow.offsetX) || 0;\n  var offsetY = normalizeValueWithProperty(boxShadow.offsetY) || 0;\n  var blurRadius = normalizeValueWithProperty(boxShadow.blurRadius) || 0;\n  var spreadDistance = normalizeValueWithProperty(boxShadow.spreadDistance) || 0;\n  var color = normalizeColor(boxShadow.color) || 'black';\n  var position = boxShadow.inset ? 'inset ' : '';\n  return \"\" + position + offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + spreadDistance + \" \" + color;\n};\nexport var createBoxShadowArrayValue = value => {\n  return value.map(mapBoxShadow).join(', ');\n};\n\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\nvar mapTransform = transform => {\n  var type = Object.keys(transform)[0];\n  var value = transform[type];\n  if (type === 'matrix' || type === 'matrix3d') {\n    return type + \"(\" + value.join(',') + \")\";\n  } else {\n    var normalizedValue = normalizeValueWithProperty(value, type);\n    return type + \"(\" + normalizedValue + \")\";\n  }\n};\nexport var createTransformValue = value => {\n  return value.map(mapTransform).join(' ');\n};\n\n// [2, '30%', 10] => '2px 30% 10px'\nexport var createTransformOriginValue = value => {\n  return value.map(v => normalizeValueWithProperty(v)).join(' ');\n};\nvar PROPERTIES_STANDARD = {\n  borderBottomEndRadius: 'borderEndEndRadius',\n  borderBottomStartRadius: 'borderEndStartRadius',\n  borderTopEndRadius: 'borderStartEndRadius',\n  borderTopStartRadius: 'borderStartStartRadius',\n  borderEndColor: 'borderInlineEndColor',\n  borderEndStyle: 'borderInlineEndStyle',\n  borderEndWidth: 'borderInlineEndWidth',\n  borderStartColor: 'borderInlineStartColor',\n  borderStartStyle: 'borderInlineStartStyle',\n  borderStartWidth: 'borderInlineStartWidth',\n  end: 'insetInlineEnd',\n  marginEnd: 'marginInlineEnd',\n  marginHorizontal: 'marginInline',\n  marginStart: 'marginInlineStart',\n  marginVertical: 'marginBlock',\n  paddingEnd: 'paddingInlineEnd',\n  paddingHorizontal: 'paddingInline',\n  paddingStart: 'paddingInlineStart',\n  paddingVertical: 'paddingBlock',\n  start: 'insetInlineStart'\n};\nvar ignoredProps = {\n  elevation: true,\n  overlayColor: true,\n  resizeMode: true,\n  tintColor: true\n};\n\n/**\n * Preprocess styles\n */\nexport var preprocess = function preprocess(originalStyle, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  var style = originalStyle || emptyObject;\n  var nextStyle = {};\n\n  // Convert shadow styles\n  if (options.shadow === true, style.shadowColor != null || style.shadowOffset != null || style.shadowOpacity != null || style.shadowRadius != null) {\n    warnOnce('shadowStyles', \"\\\"shadow*\\\" style props are deprecated. Use \\\"boxShadow\\\".\");\n    var boxShadowValue = createBoxShadowValue(style);\n    if (boxShadowValue != null) {\n      nextStyle.boxShadow = boxShadowValue;\n    }\n  }\n\n  // Convert text shadow styles\n  if (options.textShadow === true, style.textShadowColor != null || style.textShadowOffset != null || style.textShadowRadius != null) {\n    warnOnce('textShadowStyles', \"\\\"textShadow*\\\" style props are deprecated. Use \\\"textShadow\\\".\");\n    var textShadowValue = createTextShadowValue(style);\n    if (textShadowValue != null && nextStyle.textShadow == null) {\n      var textShadow = style.textShadow;\n      var value = textShadow ? textShadow + \", \" + textShadowValue : textShadowValue;\n      nextStyle.textShadow = value;\n    }\n  }\n  for (var originalProp in style) {\n    if (\n    // Ignore some React Native styles\n    ignoredProps[originalProp] != null || originalProp === 'shadowColor' || originalProp === 'shadowOffset' || originalProp === 'shadowOpacity' || originalProp === 'shadowRadius' || originalProp === 'textShadowColor' || originalProp === 'textShadowOffset' || originalProp === 'textShadowRadius') {\n      continue;\n    }\n    var originalValue = style[originalProp];\n    var prop = PROPERTIES_STANDARD[originalProp] || originalProp;\n    var _value = originalValue;\n    if (!Object.prototype.hasOwnProperty.call(style, originalProp) || prop !== originalProp && style[prop] != null) {\n      continue;\n    }\n    if (prop === 'aspectRatio' && typeof _value === 'number') {\n      nextStyle[prop] = _value.toString();\n    } else if (prop === 'boxShadow') {\n      if (Array.isArray(_value)) {\n        _value = createBoxShadowArrayValue(_value);\n      }\n      var boxShadow = nextStyle.boxShadow;\n      nextStyle.boxShadow = boxShadow ? _value + \", \" + boxShadow : _value;\n    } else if (prop === 'fontVariant') {\n      if (Array.isArray(_value) && _value.length > 0) {\n        /*\n        warnOnce(\n          'fontVariant',\n          '\"fontVariant\" style array value is deprecated. Use space-separated values.'\n        );\n        */\n        _value = _value.join(' ');\n      }\n      nextStyle[prop] = _value;\n    } else if (prop === 'textAlignVertical') {\n      /*\n      warnOnce(\n        'textAlignVertical',\n        '\"textAlignVertical\" style is deprecated. Use \"verticalAlign\".'\n      );\n      */\n      if (style.verticalAlign == null) {\n        nextStyle.verticalAlign = _value === 'center' ? 'middle' : _value;\n      }\n    } else if (prop === 'transform') {\n      if (Array.isArray(_value)) {\n        _value = createTransformValue(_value);\n      }\n      nextStyle.transform = _value;\n    } else if (prop === 'transformOrigin') {\n      if (Array.isArray(_value)) {\n        _value = createTransformOriginValue(_value);\n      }\n      nextStyle.transformOrigin = _value;\n    } else {\n      nextStyle[prop] = _value;\n    }\n  }\n\n  // $FlowIgnore\n  return nextStyle;\n};\nexport default preprocess;","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.styleq = void 0;\nvar cache = new WeakMap();\nvar compiledKey = '$$css';\n\nfunction createStyleq(options) {\n  var disableCache;\n  var disableMix;\n  var transform;\n\n  if (options != null) {\n    disableCache = options.disableCache === true;\n    disableMix = options.disableMix === true;\n    transform = options.transform;\n  }\n\n  return function styleq() {\n    // Keep track of property commits to the className\n    var definedProperties = []; // The className and inline style to build up\n\n    var className = '';\n    var inlineStyle = null; // The current position in the cache graph\n\n    var nextCache = disableCache ? null : cache; // This way of creating an array from arguments is fastest\n\n    var styles = new Array(arguments.length);\n\n    for (var i = 0; i < arguments.length; i++) {\n      styles[i] = arguments[i];\n    } // Iterate over styles from last to first\n\n\n    while (styles.length > 0) {\n      var possibleStyle = styles.pop(); // Skip empty items\n\n      if (possibleStyle == null || possibleStyle === false) {\n        continue;\n      } // Push nested styles back onto the stack to be processed\n\n\n      if (Array.isArray(possibleStyle)) {\n        for (var _i = 0; _i < possibleStyle.length; _i++) {\n          styles.push(possibleStyle[_i]);\n        }\n\n        continue;\n      } // Process an individual style object\n\n\n      var style = transform != null ? transform(possibleStyle) : possibleStyle;\n\n      if (style.$$css) {\n        // Build up the class names defined by this object\n        var classNameChunk = ''; // Check the cache to see if we've already done this work\n\n        if (nextCache != null && nextCache.has(style)) {\n          // Cache: read\n          var cacheEntry = nextCache.get(style);\n\n          if (cacheEntry != null) {\n            classNameChunk = cacheEntry[0]; // $FlowIgnore\n\n            definedProperties.push.apply(definedProperties, cacheEntry[1]);\n            nextCache = cacheEntry[2];\n          }\n        } // Update the chunks with data from this object\n        else {\n          // The properties defined by this object\n          var definedPropertiesChunk = [];\n\n          for (var prop in style) {\n            var value = style[prop];\n            if (prop === compiledKey) continue; // Each property value is used as an HTML class name\n            // { 'debug.string': 'debug.string', opacity: 's-jskmnoqp' }\n\n            if (typeof value === 'string' || value === null) {\n              // Only add to chunks if this property hasn't already been seen\n              if (!definedProperties.includes(prop)) {\n                definedProperties.push(prop);\n\n                if (nextCache != null) {\n                  definedPropertiesChunk.push(prop);\n                }\n\n                if (typeof value === 'string') {\n                  classNameChunk += classNameChunk ? ' ' + value : value;\n                }\n              }\n            } // If we encounter a value that isn't a string or `null`\n            else {\n              console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n            }\n          } // Cache: write\n\n\n          if (nextCache != null) {\n            // Create the next WeakMap for this sequence of styles\n            var weakMap = new WeakMap();\n            nextCache.set(style, [classNameChunk, definedPropertiesChunk, weakMap]);\n            nextCache = weakMap;\n          }\n        } // Order of classes in chunks matches property-iteration order of style\n        // object. Order of chunks matches passed order of styles from first to\n        // last (which we iterate over in reverse).\n\n\n        if (classNameChunk) {\n          className = className ? classNameChunk + ' ' + className : classNameChunk;\n        }\n      } // ----- DYNAMIC: Process inline style object -----\n      else {\n        if (disableMix) {\n          if (inlineStyle == null) {\n            inlineStyle = {};\n          }\n\n          inlineStyle = Object.assign({}, style, inlineStyle);\n        } else {\n          var subStyle = null;\n\n          for (var _prop in style) {\n            var _value = style[_prop];\n\n            if (_value !== undefined) {\n              if (!definedProperties.includes(_prop)) {\n                if (_value != null) {\n                  if (inlineStyle == null) {\n                    inlineStyle = {};\n                  }\n\n                  if (subStyle == null) {\n                    subStyle = {};\n                  }\n\n                  subStyle[_prop] = _value;\n                }\n\n                definedProperties.push(_prop); // Cache is unnecessary overhead if results can't be reused.\n\n                nextCache = null;\n              }\n            }\n          }\n\n          if (subStyle != null) {\n            inlineStyle = Object.assign(subStyle, inlineStyle);\n          }\n        }\n      }\n    }\n\n    var styleProps = [className, inlineStyle];\n    return styleProps;\n  };\n}\n\nvar styleq = createStyleq();\nexports.styleq = styleq;\nstyleq.factory = createStyleq;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"writingDirection\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { atomic, classic, inline } from './compiler';\nimport { createSheet } from './dom';\nimport { localizeStyle } from 'styleq/transform-localize-style';\nimport { preprocess } from './preprocess';\nimport { styleq } from 'styleq';\nimport { validate } from './validate';\nimport canUseDOM from '../../modules/canUseDom';\nvar staticStyleMap = new WeakMap();\nvar sheet = createSheet();\nvar defaultPreprocessOptions = {\n  shadow: true,\n  textShadow: true\n};\nfunction customStyleq(styles, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  var _options = options,\n    writingDirection = _options.writingDirection,\n    preprocessOptions = _objectWithoutPropertiesLoose(_options, _excluded);\n  var isRTL = writingDirection === 'rtl';\n  return styleq.factory({\n    transform(style) {\n      var compiledStyle = staticStyleMap.get(style);\n      if (compiledStyle != null) {\n        return localizeStyle(compiledStyle, isRTL);\n      }\n      return preprocess(style, _objectSpread(_objectSpread({}, defaultPreprocessOptions), preprocessOptions));\n    }\n  })(styles);\n}\nfunction insertRules(compiledOrderedRules) {\n  compiledOrderedRules.forEach(_ref => {\n    var rules = _ref[0],\n      order = _ref[1];\n    if (sheet != null) {\n      rules.forEach(rule => {\n        sheet.insert(rule, order);\n      });\n    }\n  });\n}\nfunction compileAndInsertAtomic(style) {\n  var _atomic = atomic(preprocess(style, defaultPreprocessOptions)),\n    compiledStyle = _atomic[0],\n    compiledOrderedRules = _atomic[1];\n  insertRules(compiledOrderedRules);\n  return compiledStyle;\n}\nfunction compileAndInsertReset(style, key) {\n  var _classic = classic(style, key),\n    compiledStyle = _classic[0],\n    compiledOrderedRules = _classic[1];\n  insertRules(compiledOrderedRules);\n  return compiledStyle;\n}\n\n/* ----- API ----- */\n\nvar absoluteFillObject = {\n  position: 'absolute',\n  left: 0,\n  right: 0,\n  top: 0,\n  bottom: 0\n};\nvar absoluteFill = create({\n  x: _objectSpread({}, absoluteFillObject)\n}).x;\n\n/**\n * create\n */\nfunction create(styles) {\n  Object.keys(styles).forEach(key => {\n    var styleObj = styles[key];\n    // Only compile at runtime if the style is not already compiled\n    if (styleObj != null && styleObj.$$css !== true) {\n      var compiledStyles;\n      if (key.indexOf('$raw') > -1) {\n        compiledStyles = compileAndInsertReset(styleObj, key.split('$raw')[0]);\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          validate(styleObj);\n          styles[key] = Object.freeze(styleObj);\n        }\n        compiledStyles = compileAndInsertAtomic(styleObj);\n      }\n      staticStyleMap.set(styleObj, compiledStyles);\n    }\n  });\n  return styles;\n}\n\n/**\n * compose\n */\nfunction compose(style1, style2) {\n  if (process.env.NODE_ENV !== 'production') {\n    /* eslint-disable prefer-rest-params */\n    var len = arguments.length;\n    if (len > 2) {\n      var readableStyles = [...arguments].map(a => flatten(a));\n      throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n    }\n    /* eslint-enable prefer-rest-params */\n    /*\n    console.warn(\n      'StyleSheet.compose(a, b) is deprecated; use array syntax, i.e., [a,b].'\n    );\n    */\n  }\n  return [style1, style2];\n}\n\n/**\n * flatten\n */\nfunction flatten() {\n  for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n    styles[_key] = arguments[_key];\n  }\n  var flatArray = styles.flat(Infinity);\n  var result = {};\n  for (var i = 0; i < flatArray.length; i++) {\n    var style = flatArray[i];\n    if (style != null && typeof style === 'object') {\n      // $FlowFixMe\n      Object.assign(result, style);\n    }\n  }\n  return result;\n}\n\n/**\n * getSheet\n */\nfunction getSheet() {\n  return {\n    id: sheet.id,\n    textContent: sheet.getTextContent()\n  };\n}\n\n/**\n * resolve\n */\n\nfunction StyleSheet(styles, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  var isRTL = options.writingDirection === 'rtl';\n  var styleProps = customStyleq(styles, options);\n  if (Array.isArray(styleProps) && styleProps[1] != null) {\n    styleProps[1] = inline(styleProps[1], isRTL);\n  }\n  return styleProps;\n}\nStyleSheet.absoluteFill = absoluteFill;\nStyleSheet.absoluteFillObject = absoluteFillObject;\nStyleSheet.create = create;\nStyleSheet.compose = compose;\nStyleSheet.flatten = flatten;\nStyleSheet.getSheet = getSheet;\n// `hairlineWidth` is not implemented using screen density as browsers may\n// round sub-pixel values down to `0`, causing the line not to be rendered.\nStyleSheet.hairlineWidth = 1;\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n  window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\nvar stylesheet = StyleSheet;\nexport default stylesheet;","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"aria-activedescendant\", \"accessibilityActiveDescendant\", \"aria-atomic\", \"accessibilityAtomic\", \"aria-autocomplete\", \"accessibilityAutoComplete\", \"aria-busy\", \"accessibilityBusy\", \"aria-checked\", \"accessibilityChecked\", \"aria-colcount\", \"accessibilityColumnCount\", \"aria-colindex\", \"accessibilityColumnIndex\", \"aria-colspan\", \"accessibilityColumnSpan\", \"aria-controls\", \"accessibilityControls\", \"aria-current\", \"accessibilityCurrent\", \"aria-describedby\", \"accessibilityDescribedBy\", \"aria-details\", \"accessibilityDetails\", \"aria-disabled\", \"accessibilityDisabled\", \"aria-errormessage\", \"accessibilityErrorMessage\", \"aria-expanded\", \"accessibilityExpanded\", \"aria-flowto\", \"accessibilityFlowTo\", \"aria-haspopup\", \"accessibilityHasPopup\", \"aria-hidden\", \"accessibilityHidden\", \"aria-invalid\", \"accessibilityInvalid\", \"aria-keyshortcuts\", \"accessibilityKeyShortcuts\", \"aria-label\", \"accessibilityLabel\", \"aria-labelledby\", \"accessibilityLabelledBy\", \"aria-level\", \"accessibilityLevel\", \"aria-live\", \"accessibilityLiveRegion\", \"aria-modal\", \"accessibilityModal\", \"aria-multiline\", \"accessibilityMultiline\", \"aria-multiselectable\", \"accessibilityMultiSelectable\", \"aria-orientation\", \"accessibilityOrientation\", \"aria-owns\", \"accessibilityOwns\", \"aria-placeholder\", \"accessibilityPlaceholder\", \"aria-posinset\", \"accessibilityPosInSet\", \"aria-pressed\", \"accessibilityPressed\", \"aria-readonly\", \"accessibilityReadOnly\", \"aria-required\", \"accessibilityRequired\", \"role\", \"accessibilityRole\", \"aria-roledescription\", \"accessibilityRoleDescription\", \"aria-rowcount\", \"accessibilityRowCount\", \"aria-rowindex\", \"accessibilityRowIndex\", \"aria-rowspan\", \"accessibilityRowSpan\", \"aria-selected\", \"accessibilitySelected\", \"aria-setsize\", \"accessibilitySetSize\", \"aria-sort\", \"accessibilitySort\", \"aria-valuemax\", \"accessibilityValueMax\", \"aria-valuemin\", \"accessibilityValueMin\", \"aria-valuenow\", \"accessibilityValueNow\", \"aria-valuetext\", \"accessibilityValueText\", \"dataSet\", \"focusable\", \"id\", \"nativeID\", \"pointerEvents\", \"style\", \"tabIndex\", \"testID\"];\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport StyleSheet from '../../exports/StyleSheet';\nimport { warnOnce } from '../warnOnce';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\nfunction toHyphenLower(match) {\n  return '-' + match.toLowerCase();\n}\nfunction hyphenateString(str) {\n  return str.replace(uppercasePattern, toHyphenLower);\n}\nfunction processIDRefList(idRefList) {\n  return isArray(idRefList) ? idRefList.join(' ') : idRefList;\n}\nvar pointerEventsStyles = StyleSheet.create({\n  auto: {\n    pointerEvents: 'auto'\n  },\n  'box-none': {\n    pointerEvents: 'box-none'\n  },\n  'box-only': {\n    pointerEvents: 'box-only'\n  },\n  none: {\n    pointerEvents: 'none'\n  }\n});\nvar createDOMProps = (elementType, props, options) => {\n  if (!props) {\n    props = emptyObject;\n  }\n  var _props = props,\n    ariaActiveDescendant = _props['aria-activedescendant'],\n    accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n    ariaAtomic = _props['aria-atomic'],\n    accessibilityAtomic = _props.accessibilityAtomic,\n    ariaAutoComplete = _props['aria-autocomplete'],\n    accessibilityAutoComplete = _props.accessibilityAutoComplete,\n    ariaBusy = _props['aria-busy'],\n    accessibilityBusy = _props.accessibilityBusy,\n    ariaChecked = _props['aria-checked'],\n    accessibilityChecked = _props.accessibilityChecked,\n    ariaColumnCount = _props['aria-colcount'],\n    accessibilityColumnCount = _props.accessibilityColumnCount,\n    ariaColumnIndex = _props['aria-colindex'],\n    accessibilityColumnIndex = _props.accessibilityColumnIndex,\n    ariaColumnSpan = _props['aria-colspan'],\n    accessibilityColumnSpan = _props.accessibilityColumnSpan,\n    ariaControls = _props['aria-controls'],\n    accessibilityControls = _props.accessibilityControls,\n    ariaCurrent = _props['aria-current'],\n    accessibilityCurrent = _props.accessibilityCurrent,\n    ariaDescribedBy = _props['aria-describedby'],\n    accessibilityDescribedBy = _props.accessibilityDescribedBy,\n    ariaDetails = _props['aria-details'],\n    accessibilityDetails = _props.accessibilityDetails,\n    ariaDisabled = _props['aria-disabled'],\n    accessibilityDisabled = _props.accessibilityDisabled,\n    ariaErrorMessage = _props['aria-errormessage'],\n    accessibilityErrorMessage = _props.accessibilityErrorMessage,\n    ariaExpanded = _props['aria-expanded'],\n    accessibilityExpanded = _props.accessibilityExpanded,\n    ariaFlowTo = _props['aria-flowto'],\n    accessibilityFlowTo = _props.accessibilityFlowTo,\n    ariaHasPopup = _props['aria-haspopup'],\n    accessibilityHasPopup = _props.accessibilityHasPopup,\n    ariaHidden = _props['aria-hidden'],\n    accessibilityHidden = _props.accessibilityHidden,\n    ariaInvalid = _props['aria-invalid'],\n    accessibilityInvalid = _props.accessibilityInvalid,\n    ariaKeyShortcuts = _props['aria-keyshortcuts'],\n    accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n    ariaLabel = _props['aria-label'],\n    accessibilityLabel = _props.accessibilityLabel,\n    ariaLabelledBy = _props['aria-labelledby'],\n    accessibilityLabelledBy = _props.accessibilityLabelledBy,\n    ariaLevel = _props['aria-level'],\n    accessibilityLevel = _props.accessibilityLevel,\n    ariaLive = _props['aria-live'],\n    accessibilityLiveRegion = _props.accessibilityLiveRegion,\n    ariaModal = _props['aria-modal'],\n    accessibilityModal = _props.accessibilityModal,\n    ariaMultiline = _props['aria-multiline'],\n    accessibilityMultiline = _props.accessibilityMultiline,\n    ariaMultiSelectable = _props['aria-multiselectable'],\n    accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n    ariaOrientation = _props['aria-orientation'],\n    accessibilityOrientation = _props.accessibilityOrientation,\n    ariaOwns = _props['aria-owns'],\n    accessibilityOwns = _props.accessibilityOwns,\n    ariaPlaceholder = _props['aria-placeholder'],\n    accessibilityPlaceholder = _props.accessibilityPlaceholder,\n    ariaPosInSet = _props['aria-posinset'],\n    accessibilityPosInSet = _props.accessibilityPosInSet,\n    ariaPressed = _props['aria-pressed'],\n    accessibilityPressed = _props.accessibilityPressed,\n    ariaReadOnly = _props['aria-readonly'],\n    accessibilityReadOnly = _props.accessibilityReadOnly,\n    ariaRequired = _props['aria-required'],\n    accessibilityRequired = _props.accessibilityRequired,\n    ariaRole = _props.role,\n    accessibilityRole = _props.accessibilityRole,\n    ariaRoleDescription = _props['aria-roledescription'],\n    accessibilityRoleDescription = _props.accessibilityRoleDescription,\n    ariaRowCount = _props['aria-rowcount'],\n    accessibilityRowCount = _props.accessibilityRowCount,\n    ariaRowIndex = _props['aria-rowindex'],\n    accessibilityRowIndex = _props.accessibilityRowIndex,\n    ariaRowSpan = _props['aria-rowspan'],\n    accessibilityRowSpan = _props.accessibilityRowSpan,\n    ariaSelected = _props['aria-selected'],\n    accessibilitySelected = _props.accessibilitySelected,\n    ariaSetSize = _props['aria-setsize'],\n    accessibilitySetSize = _props.accessibilitySetSize,\n    ariaSort = _props['aria-sort'],\n    accessibilitySort = _props.accessibilitySort,\n    ariaValueMax = _props['aria-valuemax'],\n    accessibilityValueMax = _props.accessibilityValueMax,\n    ariaValueMin = _props['aria-valuemin'],\n    accessibilityValueMin = _props.accessibilityValueMin,\n    ariaValueNow = _props['aria-valuenow'],\n    accessibilityValueNow = _props.accessibilityValueNow,\n    ariaValueText = _props['aria-valuetext'],\n    accessibilityValueText = _props.accessibilityValueText,\n    dataSet = _props.dataSet,\n    focusable = _props.focusable,\n    id = _props.id,\n    nativeID = _props.nativeID,\n    pointerEvents = _props.pointerEvents,\n    style = _props.style,\n    tabIndex = _props.tabIndex,\n    testID = _props.testID,\n    domProps = _objectWithoutPropertiesLoose(_props, _excluded);\n\n  /*\n  if (accessibilityDisabled != null) {\n    warnOnce('accessibilityDisabled', `accessibilityDisabled is deprecated.`);\n  }\n  */\n  var disabled = ariaDisabled || accessibilityDisabled;\n  var role = AccessibilityUtil.propsToAriaRole(props);\n\n  // ACCESSIBILITY\n  /*\n  if (accessibilityActiveDescendant != null) {\n    warnOnce(\n      'accessibilityActiveDescendant',\n      `accessibilityActiveDescendant is deprecated. Use aria-activedescendant.`\n    );\n  }\n  */\n  var _ariaActiveDescendant = ariaActiveDescendant != null ? ariaActiveDescendant : accessibilityActiveDescendant;\n  if (_ariaActiveDescendant != null) {\n    domProps['aria-activedescendant'] = _ariaActiveDescendant;\n  }\n\n  /*\n  if (accessibilityAtomic != null) {\n    warnOnce(\n      'accessibilityAtomic',\n      `accessibilityAtomic is deprecated. Use aria-atomic.`\n    );\n  }\n  */\n  var _ariaAtomic = ariaAtomic != null ? ariaActiveDescendant : accessibilityAtomic;\n  if (_ariaAtomic != null) {\n    domProps['aria-atomic'] = _ariaAtomic;\n  }\n\n  /*\n  if (accessibilityAutoComplete != null) {\n    warnOnce(\n      'accessibilityAutoComplete',\n      `accessibilityAutoComplete is deprecated. Use aria-autocomplete.`\n    );\n  }\n  */\n  var _ariaAutoComplete = ariaAutoComplete != null ? ariaAutoComplete : accessibilityAutoComplete;\n  if (_ariaAutoComplete != null) {\n    domProps['aria-autocomplete'] = _ariaAutoComplete;\n  }\n\n  /*\n  if (accessibilityBusy != null) {\n    warnOnce(\n      'accessibilityBusy',\n      `accessibilityBusy is deprecated. Use aria-busy.`\n    );\n  }\n  */\n  var _ariaBusy = ariaBusy != null ? ariaBusy : accessibilityBusy;\n  if (_ariaBusy != null) {\n    domProps['aria-busy'] = _ariaBusy;\n  }\n\n  /*\n  if (accessibilityChecked != null) {\n    warnOnce(\n      'accessibilityChecked',\n      `accessibilityChecked is deprecated. Use aria-checked.`\n    );\n  }\n  */\n  var _ariaChecked = ariaChecked != null ? ariaChecked : accessibilityChecked;\n  if (_ariaChecked != null) {\n    domProps['aria-checked'] = _ariaChecked;\n  }\n\n  /*\n  if (accessibilityColumnCount != null) {\n    warnOnce(\n      'accessibilityColumnCount',\n      `accessibilityColumnCount is deprecated. Use aria-colcount.`\n    );\n  }\n  */\n  var _ariaColumnCount = ariaColumnCount != null ? ariaColumnCount : accessibilityColumnCount;\n  if (_ariaColumnCount != null) {\n    domProps['aria-colcount'] = _ariaColumnCount;\n  }\n\n  /*\n  if (accessibilityColumnIndex != null) {\n    warnOnce(\n      'accessibilityColumnIndex',\n      `accessibilityColumnIndex is deprecated. Use aria-colindex.`\n    );\n  }\n  */\n  var _ariaColumnIndex = ariaColumnIndex != null ? ariaColumnIndex : accessibilityColumnIndex;\n  if (_ariaColumnIndex != null) {\n    domProps['aria-colindex'] = _ariaColumnIndex;\n  }\n\n  /*\n  if (accessibilityColumnSpan != null) {\n    warnOnce(\n      'accessibilityColumnSpan',\n      `accessibilityColumnSpan is deprecated. Use aria-colspan.`\n    );\n  }\n  */\n  var _ariaColumnSpan = ariaColumnSpan != null ? ariaColumnSpan : accessibilityColumnSpan;\n  if (_ariaColumnSpan != null) {\n    domProps['aria-colspan'] = _ariaColumnSpan;\n  }\n\n  /*\n  if (accessibilityControls != null) {\n    warnOnce(\n      'accessibilityControls',\n      `accessibilityControls is deprecated. Use aria-controls.`\n    );\n  }\n  */\n  var _ariaControls = ariaControls != null ? ariaControls : accessibilityControls;\n  if (_ariaControls != null) {\n    domProps['aria-controls'] = processIDRefList(_ariaControls);\n  }\n\n  /*\n  if (accessibilityCurrent != null) {\n    warnOnce(\n      'accessibilityCurrent',\n      `accessibilityCurrent is deprecated. Use aria-current.`\n    );\n  }\n  */\n  var _ariaCurrent = ariaCurrent != null ? ariaCurrent : accessibilityCurrent;\n  if (_ariaCurrent != null) {\n    domProps['aria-current'] = _ariaCurrent;\n  }\n\n  /*\n  if (accessibilityDescribedBy != null) {\n    warnOnce(\n      'accessibilityDescribedBy',\n      `accessibilityDescribedBy is deprecated. Use aria-describedby.`\n    );\n  }\n  */\n  var _ariaDescribedBy = ariaDescribedBy != null ? ariaDescribedBy : accessibilityDescribedBy;\n  if (_ariaDescribedBy != null) {\n    domProps['aria-describedby'] = processIDRefList(_ariaDescribedBy);\n  }\n\n  /*\n  if (accessibilityDetails != null) {\n    warnOnce(\n      'accessibilityDetails',\n      `accessibilityDetails is deprecated. Use aria-details.`\n    );\n  }\n  */\n  var _ariaDetails = ariaDetails != null ? ariaDetails : accessibilityDetails;\n  if (_ariaDetails != null) {\n    domProps['aria-details'] = _ariaDetails;\n  }\n  if (disabled === true) {\n    domProps['aria-disabled'] = true;\n    // Enhance with native semantics\n    if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n      domProps.disabled = true;\n    }\n  }\n\n  /*\n  if (accessibilityErrorMessage != null) {\n    warnOnce(\n      'accessibilityErrorMessage',\n      `accessibilityErrorMessage is deprecated. Use aria-errormessage.`\n    );\n  }\n  */\n  var _ariaErrorMessage = ariaErrorMessage != null ? ariaErrorMessage : accessibilityErrorMessage;\n  if (_ariaErrorMessage != null) {\n    domProps['aria-errormessage'] = _ariaErrorMessage;\n  }\n\n  /*\n  if (accessibilityExpanded != null) {\n    warnOnce(\n      'accessibilityExpanded',\n      `accessibilityExpanded is deprecated. Use aria-expanded.`\n    );\n  }\n  */\n  var _ariaExpanded = ariaExpanded != null ? ariaExpanded : accessibilityExpanded;\n  if (_ariaExpanded != null) {\n    domProps['aria-expanded'] = _ariaExpanded;\n  }\n\n  /*\n  if (accessibilityFlowTo != null) {\n    warnOnce(\n      'accessibilityFlowTo',\n      `accessibilityFlowTo is deprecated. Use aria-flowto.`\n    );\n  }\n  */\n  var _ariaFlowTo = ariaFlowTo != null ? ariaFlowTo : accessibilityFlowTo;\n  if (_ariaFlowTo != null) {\n    domProps['aria-flowto'] = processIDRefList(_ariaFlowTo);\n  }\n\n  /*\n  if (accessibilityHasPopup != null) {\n    warnOnce(\n      'accessibilityHasPopup',\n      `accessibilityHasPopup is deprecated. Use aria-haspopup.`\n    );\n  }\n  */\n  var _ariaHasPopup = ariaHasPopup != null ? ariaHasPopup : accessibilityHasPopup;\n  if (_ariaHasPopup != null) {\n    domProps['aria-haspopup'] = _ariaHasPopup;\n  }\n\n  /*\n  if (accessibilityHidden != null) {\n    warnOnce(\n      'accessibilityHidden',\n      `accessibilityHidden is deprecated. Use aria-hidden.`\n    );\n  }\n  */\n  var _ariaHidden = ariaHidden != null ? ariaHidden : accessibilityHidden;\n  if (_ariaHidden === true) {\n    domProps['aria-hidden'] = _ariaHidden;\n  }\n\n  /*\n  if (accessibilityInvalid != null) {\n    warnOnce(\n      'accessibilityInvalid',\n      `accessibilityInvalid is deprecated. Use aria-invalid.`\n    );\n  }\n  */\n  var _ariaInvalid = ariaInvalid != null ? ariaInvalid : accessibilityInvalid;\n  if (_ariaInvalid != null) {\n    domProps['aria-invalid'] = _ariaInvalid;\n  }\n\n  /*\n  if (accessibilityKeyShortcuts != null) {\n    warnOnce(\n      'accessibilityKeyShortcuts',\n      `accessibilityKeyShortcuts is deprecated. Use aria-keyshortcuts.`\n    );\n  }\n  */\n  var _ariaKeyShortcuts = ariaKeyShortcuts != null ? ariaKeyShortcuts : accessibilityKeyShortcuts;\n  if (_ariaKeyShortcuts != null) {\n    domProps['aria-keyshortcuts'] = processIDRefList(_ariaKeyShortcuts);\n  }\n\n  /*\n  if (accessibilityLabel != null) {\n    warnOnce(\n      'accessibilityLabel',\n      `accessibilityLabel is deprecated. Use aria-label.`\n    );\n  }\n  */\n  var _ariaLabel = ariaLabel != null ? ariaLabel : accessibilityLabel;\n  if (_ariaLabel != null) {\n    domProps['aria-label'] = _ariaLabel;\n  }\n\n  /*\n  if (accessibilityLabelledBy != null) {\n    warnOnce(\n      'accessibilityLabelledBy',\n      `accessibilityLabelledBy is deprecated. Use aria-labelledby.`\n    );\n  }\n  */\n  var _ariaLabelledBy = ariaLabelledBy != null ? ariaLabelledBy : accessibilityLabelledBy;\n  if (_ariaLabelledBy != null) {\n    domProps['aria-labelledby'] = processIDRefList(_ariaLabelledBy);\n  }\n\n  /*\n  if (accessibilityLevel != null) {\n    warnOnce(\n      'accessibilityLevel',\n      `accessibilityLevel is deprecated. Use aria-level.`\n    );\n  }\n  */\n  var _ariaLevel = ariaLevel != null ? ariaLevel : accessibilityLevel;\n  if (_ariaLevel != null) {\n    domProps['aria-level'] = _ariaLevel;\n  }\n\n  /*\n  if (accessibilityLiveRegion != null) {\n    warnOnce(\n      'accessibilityLiveRegion',\n      `accessibilityLiveRegion is deprecated. Use aria-live.`\n    );\n  }\n  */\n  var _ariaLive = ariaLive != null ? ariaLive : accessibilityLiveRegion;\n  if (_ariaLive != null) {\n    domProps['aria-live'] = _ariaLive === 'none' ? 'off' : _ariaLive;\n  }\n\n  /*\n  if (accessibilityModal != null) {\n    warnOnce(\n      'accessibilityModal',\n      `accessibilityModal is deprecated. Use aria-modal.`\n    );\n  }\n  */\n  var _ariaModal = ariaModal != null ? ariaModal : accessibilityModal;\n  if (_ariaModal != null) {\n    domProps['aria-modal'] = _ariaModal;\n  }\n\n  /*\n  if (accessibilityMultiline != null) {\n    warnOnce(\n      'accessibilityMultiline',\n      `accessibilityMultiline is deprecated. Use aria-multiline.`\n    );\n  }\n  */\n  var _ariaMultiline = ariaMultiline != null ? ariaMultiline : accessibilityMultiline;\n  if (_ariaMultiline != null) {\n    domProps['aria-multiline'] = _ariaMultiline;\n  }\n\n  /*\n  if (accessibilityMultiSelectable != null) {\n    warnOnce(\n      'accessibilityMultiSelectable',\n      `accessibilityMultiSelectable is deprecated. Use aria-multiselectable.`\n    );\n  }\n  */\n  var _ariaMultiSelectable = ariaMultiSelectable != null ? ariaMultiSelectable : accessibilityMultiSelectable;\n  if (_ariaMultiSelectable != null) {\n    domProps['aria-multiselectable'] = _ariaMultiSelectable;\n  }\n\n  /*\n  if (accessibilityOrientation != null) {\n    warnOnce(\n      'accessibilityOrientation',\n      `accessibilityOrientation is deprecated. Use aria-orientation.`\n    );\n  }\n  */\n  var _ariaOrientation = ariaOrientation != null ? ariaOrientation : accessibilityOrientation;\n  if (_ariaOrientation != null) {\n    domProps['aria-orientation'] = _ariaOrientation;\n  }\n\n  /*\n  if (accessibilityOwns != null) {\n    warnOnce(\n      'accessibilityOwns',\n      `accessibilityOwns is deprecated. Use aria-owns.`\n    );\n  }\n  */\n  var _ariaOwns = ariaOwns != null ? ariaOwns : accessibilityOwns;\n  if (_ariaOwns != null) {\n    domProps['aria-owns'] = processIDRefList(_ariaOwns);\n  }\n\n  /*\n  if (accessibilityPlaceholder != null) {\n    warnOnce(\n      'accessibilityPlaceholder',\n      `accessibilityPlaceholder is deprecated. Use aria-placeholder.`\n    );\n  }\n  */\n  var _ariaPlaceholder = ariaPlaceholder != null ? ariaPlaceholder : accessibilityPlaceholder;\n  if (_ariaPlaceholder != null) {\n    domProps['aria-placeholder'] = _ariaPlaceholder;\n  }\n\n  /*\n  if (accessibilityPosInSet != null) {\n    warnOnce(\n      'accessibilityPosInSet',\n      `accessibilityPosInSet is deprecated. Use aria-posinset.`\n    );\n  }\n  */\n  var _ariaPosInSet = ariaPosInSet != null ? ariaPosInSet : accessibilityPosInSet;\n  if (_ariaPosInSet != null) {\n    domProps['aria-posinset'] = _ariaPosInSet;\n  }\n\n  /*\n  if (accessibilityPressed != null) {\n    warnOnce(\n      'accessibilityPressed',\n      `accessibilityPressed is deprecated. Use aria-pressed.`\n    );\n  }\n  */\n  var _ariaPressed = ariaPressed != null ? ariaPressed : accessibilityPressed;\n  if (_ariaPressed != null) {\n    domProps['aria-pressed'] = _ariaPressed;\n  }\n\n  /*\n  if (accessibilityReadOnly != null) {\n    warnOnce(\n      'accessibilityReadOnly',\n      `accessibilityReadOnly is deprecated. Use aria-readonly.`\n    );\n  }\n  */\n  var _ariaReadOnly = ariaReadOnly != null ? ariaReadOnly : accessibilityReadOnly;\n  if (_ariaReadOnly != null) {\n    domProps['aria-readonly'] = _ariaReadOnly;\n    // Enhance with native semantics\n    if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n      domProps.readOnly = true;\n    }\n  }\n\n  /*\n  if (accessibilityRequired != null) {\n    warnOnce(\n      'accessibilityRequired',\n      `accessibilityRequired is deprecated. Use aria-required.`\n    );\n  }\n  */\n  var _ariaRequired = ariaRequired != null ? ariaRequired : accessibilityRequired;\n  if (_ariaRequired != null) {\n    domProps['aria-required'] = _ariaRequired;\n    // Enhance with native semantics\n    if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n      domProps.required = accessibilityRequired;\n    }\n  }\n\n  /*\n  if (accessibilityRole != null) {\n    warnOnce('accessibilityRole', `accessibilityRole is deprecated. Use role.`);\n  }\n  */\n  if (role != null) {\n    // 'presentation' synonym has wider browser support\n    domProps['role'] = role === 'none' ? 'presentation' : role;\n  }\n\n  /*\n  if (accessibilityRoleDescription != null) {\n    warnOnce(\n      'accessibilityRoleDescription',\n      `accessibilityRoleDescription is deprecated. Use aria-roledescription.`\n    );\n  }\n  */\n  var _ariaRoleDescription = ariaRoleDescription != null ? ariaRoleDescription : accessibilityRoleDescription;\n  if (_ariaRoleDescription != null) {\n    domProps['aria-roledescription'] = _ariaRoleDescription;\n  }\n\n  /*\n  if (accessibilityRowCount != null) {\n    warnOnce(\n      'accessibilityRowCount',\n      `accessibilityRowCount is deprecated. Use aria-rowcount.`\n    );\n  }\n  */\n  var _ariaRowCount = ariaRowCount != null ? ariaRowCount : accessibilityRowCount;\n  if (_ariaRowCount != null) {\n    domProps['aria-rowcount'] = _ariaRowCount;\n  }\n\n  /*\n  if (accessibilityRowIndex != null) {\n    warnOnce(\n      'accessibilityRowIndex',\n      `accessibilityRowIndex is deprecated. Use aria-rowindex.`\n    );\n  }\n  */\n  var _ariaRowIndex = ariaRowIndex != null ? ariaRowIndex : accessibilityRowIndex;\n  if (_ariaRowIndex != null) {\n    domProps['aria-rowindex'] = _ariaRowIndex;\n  }\n\n  /*\n  if (accessibilityRowSpan != null) {\n    warnOnce(\n      'accessibilityRowSpan',\n      `accessibilityRowSpan is deprecated. Use aria-rowspan.`\n    );\n  }\n  */\n  var _ariaRowSpan = ariaRowSpan != null ? ariaRowSpan : accessibilityRowSpan;\n  if (_ariaRowSpan != null) {\n    domProps['aria-rowspan'] = _ariaRowSpan;\n  }\n\n  /*\n  if (accessibilitySelected != null) {\n    warnOnce(\n      'accessibilitySelected',\n      `accessibilitySelected is deprecated. Use aria-selected.`\n    );\n  }\n  */\n  var _ariaSelected = ariaSelected != null ? ariaSelected : accessibilitySelected;\n  if (_ariaSelected != null) {\n    domProps['aria-selected'] = _ariaSelected;\n  }\n\n  /*\n  if (accessibilitySetSize != null) {\n    warnOnce(\n      'accessibilitySetSize',\n      `accessibilitySetSize is deprecated. Use aria-setsize.`\n    );\n  }\n  */\n  var _ariaSetSize = ariaSetSize != null ? ariaSetSize : accessibilitySetSize;\n  if (_ariaSetSize != null) {\n    domProps['aria-setsize'] = _ariaSetSize;\n  }\n\n  /*\n  if (accessibilitySort != null) {\n    warnOnce(\n      'accessibilitySort',\n      `accessibilitySort is deprecated. Use aria-sort.`\n    );\n  }\n  */\n  var _ariaSort = ariaSort != null ? ariaSort : accessibilitySort;\n  if (_ariaSort != null) {\n    domProps['aria-sort'] = _ariaSort;\n  }\n\n  /*\n  if (accessibilityValueMax != null) {\n    warnOnce(\n      'accessibilityValueMax',\n      `accessibilityValueMax is deprecated. Use aria-valuemax.`\n    );\n  }\n  */\n  var _ariaValueMax = ariaValueMax != null ? ariaValueMax : accessibilityValueMax;\n  if (_ariaValueMax != null) {\n    domProps['aria-valuemax'] = _ariaValueMax;\n  }\n\n  /*\n  if (accessibilityValueMin != null) {\n    warnOnce(\n      'accessibilityValueMin',\n      `accessibilityValueMin is deprecated. Use aria-valuemin.`\n    );\n  }\n  */\n  var _ariaValueMin = ariaValueMin != null ? ariaValueMin : accessibilityValueMin;\n  if (_ariaValueMin != null) {\n    domProps['aria-valuemin'] = _ariaValueMin;\n  }\n\n  /*\n  if (accessibilityValueNow != null) {\n    warnOnce(\n      'accessibilityValueNow',\n      `accessibilityValueNow is deprecated. Use aria-valuenow.`\n    );\n  }\n  */\n  var _ariaValueNow = ariaValueNow != null ? ariaValueNow : accessibilityValueNow;\n  if (_ariaValueNow != null) {\n    domProps['aria-valuenow'] = _ariaValueNow;\n  }\n\n  /*\n  if (accessibilityValueText != null) {\n    warnOnce(\n      'accessibilityValueText',\n      `accessibilityValueText is deprecated. Use aria-valuetext.`\n    );\n  }\n  */\n  var _ariaValueText = ariaValueText != null ? ariaValueText : accessibilityValueText;\n  if (_ariaValueText != null) {\n    domProps['aria-valuetext'] = _ariaValueText;\n  }\n\n  // \"dataSet\" replaced with \"data-*\"\n  if (dataSet != null) {\n    for (var dataProp in dataSet) {\n      if (hasOwnProperty.call(dataSet, dataProp)) {\n        var dataName = hyphenateString(dataProp);\n        var dataValue = dataSet[dataProp];\n        if (dataValue != null) {\n          domProps[\"data-\" + dataName] = dataValue;\n        }\n      }\n    }\n  }\n\n  // FOCUS\n  if (tabIndex === 0 || tabIndex === '0' || tabIndex === -1 || tabIndex === '-1') {\n    domProps.tabIndex = tabIndex;\n  } else {\n    /*\n    if (focusable != null) {\n      warnOnce('focusable', `focusable is deprecated.`);\n    }\n    */\n\n    // \"focusable\" indicates that an element may be a keyboard tab-stop.\n    if (focusable === false) {\n      domProps.tabIndex = '-1';\n    }\n    if (\n    // These native elements are keyboard focusable by default\n    elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n      if (focusable === false || accessibilityDisabled === true) {\n        domProps.tabIndex = '-1';\n      }\n    } else if (\n    // These roles are made keyboard focusable by default\n    role === 'button' || role === 'checkbox' || role === 'link' || role === 'radio' || role === 'textbox' || role === 'switch') {\n      if (focusable !== false) {\n        domProps.tabIndex = '0';\n      }\n    } else {\n      // Everything else must explicitly set the prop\n      if (focusable === true) {\n        domProps.tabIndex = '0';\n      }\n    }\n  }\n\n  // Resolve styles\n  if (pointerEvents != null) {\n    warnOnce('pointerEvents', \"props.pointerEvents is deprecated. Use style.pointerEvents\");\n  }\n  var _StyleSheet = StyleSheet([style, pointerEvents && pointerEventsStyles[pointerEvents]], _objectSpread({\n      writingDirection: 'ltr'\n    }, options)),\n    className = _StyleSheet[0],\n    inlineStyle = _StyleSheet[1];\n  if (className) {\n    domProps.className = className;\n  }\n  if (inlineStyle) {\n    domProps.style = inlineStyle;\n  }\n\n  // OTHER\n  // Native element ID\n  /*\n  if (nativeID != null) {\n    warnOnce('nativeID', `nativeID is deprecated. Use id.`);\n  }\n  */\n  var _id = id != null ? id : nativeID;\n  if (_id != null) {\n    domProps.id = _id;\n  }\n  // Automated test IDs\n  if (testID != null) {\n    domProps['data-testid'] = testID;\n  }\n  if (domProps.type == null && elementType === 'button') {\n    domProps.type = 'button';\n  }\n  return domProps;\n};\nexport default createDOMProps;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar rtlScripts = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar rtlLangs = new Set(['ae',\n// Avestan\n'ar',\n// Arabic\n'arc',\n// Aramaic\n'bcc',\n// Southern Balochi\n'bqi',\n// Bakthiari\n'ckb',\n// Sorani\n'dv',\n// Dhivehi\n'fa', 'far',\n// Persian\n'glk',\n// Gilaki\n'he', 'iw',\n// Hebrew\n'khw',\n// Khowar\n'ks',\n// Kashmiri\n'ku',\n// Kurdish\n'mzn',\n// Mazanderani\n'nqo',\n// N'Ko\n'pnb',\n// Western Punjabi\n'ps',\n// Pashto\n'sd',\n// Sindhi\n'ug',\n// Uyghur\n'ur',\n// Urdu\n'yi' // Yiddish\n]);\nvar cache = new Map();\n\n/**\n * Determine the writing direction of a locale\n */\nexport function isLocaleRTL(locale) {\n  var cachedRTL = cache.get(locale);\n  if (cachedRTL) {\n    return cachedRTL;\n  }\n  var isRTL = false;\n  // $FlowFixMe\n  if (Intl.Locale) {\n    try {\n      // $FlowFixMe\n      var script = new Intl.Locale(locale).maximize().script;\n      isRTL = rtlScripts.has(script);\n    } catch (_unused) {\n      // RangeError: Incorrect locale information provided\n      // Fallback to inferring from language\n      var lang = locale.split('-')[0];\n      isRTL = rtlLangs.has(lang);\n    }\n  } else {\n    // Fallback to inferring from language\n    var _lang = locale.split('-')[0];\n    isRTL = rtlLangs.has(_lang);\n  }\n  cache.set(locale, isRTL);\n  return isRTL;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport React, { createContext, useContext } from 'react';\nimport { isLocaleRTL } from './isLocaleRTL';\nvar defaultLocale = {\n  direction: 'ltr',\n  locale: 'en-US'\n};\nvar LocaleContext = /*#__PURE__*/createContext(defaultLocale);\nexport function getLocaleDirection(locale) {\n  return isLocaleRTL(locale) ? 'rtl' : 'ltr';\n}\nexport function LocaleProvider(props) {\n  var direction = props.direction,\n    locale = props.locale,\n    children = props.children;\n  var needsContext = direction || locale;\n  return needsContext ? /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n    children: children,\n    value: {\n      direction: locale ? getLocaleDirection(locale) : direction,\n      locale\n    }\n  }) : children;\n}\nexport function useLocaleContext() {\n  return useContext(LocaleContext);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use client';\n\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\nimport { LocaleProvider } from '../../modules/useLocale';\nvar createElement = (component, props, options) => {\n  // Use equivalent platform elements where possible.\n  var accessibilityComponent;\n  if (component && component.constructor === String) {\n    accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n  }\n  var Component = accessibilityComponent || component;\n  var domProps = createDOMProps(Component, props, options);\n  var element = /*#__PURE__*/React.createElement(Component, domProps);\n\n  // Update locale context if element's writing direction prop changes\n  var elementWithLocaleProvider = domProps.dir ? /*#__PURE__*/React.createElement(LocaleProvider, {\n    children: element,\n    direction: domProps.dir,\n    locale: domProps.lang\n  }) : element;\n  return elementWithLocaleProvider;\n};\nexport default createElement;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar getBoundingClientRect = node => {\n  if (node != null) {\n    var isElement = node.nodeType === 1; /* Node.ELEMENT_NODE */\n    if (isElement && typeof node.getBoundingClientRect === 'function') {\n      return node.getBoundingClientRect();\n    }\n  }\n};\nexport default getBoundingClientRect;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar unitlessNumbers = {\n  animationIterationCount: true,\n  aspectRatio: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexOrder: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  fontWeight: true,\n  gridRow: true,\n  gridRowEnd: true,\n  gridRowGap: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnGap: true,\n  gridColumnStart: true,\n  lineClamp: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // SVG-related\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true,\n  // transform types\n  scale: true,\n  scaleX: true,\n  scaleY: true,\n  scaleZ: true,\n  // RN properties\n  shadowOpacity: true\n};\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\nvar prefixKey = (prefix, key) => {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\nObject.keys(unitlessNumbers).forEach(prop => {\n  prefixes.forEach(prefix => {\n    unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n  });\n});\nexport default unitlessNumbers;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n * \n */\n\nimport isUnitlessNumber from '../unitlessNumbers';\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n  if (isEmpty) {\n    return '';\n  }\n  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n    return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n  }\n  return ('' + value).trim();\n}\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.3.0\n * \n */\n\nimport dangerousStyleValue from './dangerousStyleValue';\n\n/**\n * Sets the value for multiple styles on a node.  If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\nfunction setValueForStyles(node, styles) {\n  var style = node.style;\n  for (var styleName in styles) {\n    if (!styles.hasOwnProperty(styleName)) {\n      continue;\n    }\n    var isCustomProperty = styleName.indexOf('--') === 0;\n    var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n    if (styleName === 'float') {\n      styleName = 'cssFloat';\n    }\n    if (isCustomProperty) {\n      style.setProperty(styleName, styleValue);\n    } else {\n      style[styleName] = styleValue;\n    }\n  }\n}\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\nvar getRect = node => {\n  var height = node.offsetHeight;\n  var width = node.offsetWidth;\n  var left = node.offsetLeft;\n  var top = node.offsetTop;\n  node = node.offsetParent;\n  while (node && node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n    left += node.offsetLeft + node.clientLeft - node.scrollLeft;\n    top += node.offsetTop + node.clientTop - node.scrollTop;\n    node = node.offsetParent;\n  }\n  top -= window.scrollY;\n  left -= window.scrollX;\n  return {\n    width,\n    height,\n    top,\n    left\n  };\n};\nvar measureLayout = (node, relativeToNativeNode, callback) => {\n  var relativeNode = relativeToNativeNode || node && node.parentNode;\n  if (node && relativeNode) {\n    setTimeout(() => {\n      if (node.isConnected && relativeNode.isConnected) {\n        var relativeRect = getRect(relativeNode);\n        var _getRect = getRect(node),\n          height = _getRect.height,\n          left = _getRect.left,\n          top = _getRect.top,\n          width = _getRect.width;\n        var x = left - relativeRect.left;\n        var y = top - relativeRect.top;\n        callback(x, y, width, height, left, top);\n      }\n    }, 0);\n  }\n};\nvar elementsToIgnore = {\n  A: true,\n  BODY: true,\n  INPUT: true,\n  SELECT: true,\n  TEXTAREA: true\n};\nvar UIManager = {\n  blur(node) {\n    try {\n      node.blur();\n    } catch (err) {}\n  },\n  focus(node) {\n    try {\n      var name = node.nodeName;\n      // A tabIndex of -1 allows element to be programmatically focused but\n      // prevents keyboard focus. We don't want to set the tabindex value on\n      // elements that should not prevent keyboard focus.\n      if (node.getAttribute('tabIndex') == null && node.isContentEditable !== true && elementsToIgnore[name] == null) {\n        node.setAttribute('tabIndex', '-1');\n      }\n      node.focus();\n    } catch (err) {}\n  },\n  measure(node, callback) {\n    measureLayout(node, null, callback);\n  },\n  measureInWindow(node, callback) {\n    if (node) {\n      setTimeout(() => {\n        var _getBoundingClientRec = getBoundingClientRect(node),\n          height = _getBoundingClientRec.height,\n          left = _getBoundingClientRec.left,\n          top = _getBoundingClientRec.top,\n          width = _getBoundingClientRec.width;\n        callback(left, top, width, height);\n      }, 0);\n    }\n  },\n  measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n    measureLayout(node, relativeToNativeNode, onSuccess);\n  },\n  updateView(node, props) {\n    for (var prop in props) {\n      if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n        continue;\n      }\n      var value = props[prop];\n      switch (prop) {\n        case 'style':\n          {\n            setValueForStyles(node, value);\n            break;\n          }\n        case 'class':\n        case 'className':\n          {\n            node.setAttribute('class', value);\n            break;\n          }\n        case 'text':\n        case 'value':\n          // native platforms use `text` prop to replace text input value\n          node.value = value;\n          break;\n        default:\n          node.setAttribute(prop, value);\n      }\n    }\n  },\n  configureNextLayoutAnimation(config, onAnimationDidEnd) {\n    onAnimationDidEnd();\n  },\n  // mocks\n  setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nexport var defaultProps = {\n  children: true,\n  dataSet: true,\n  dir: true,\n  id: true,\n  ref: true,\n  suppressHydrationWarning: true,\n  tabIndex: true,\n  testID: true,\n  // @deprecated\n  focusable: true,\n  nativeID: true\n};\nexport var accessibilityProps = {\n  'aria-activedescendant': true,\n  'aria-atomic': true,\n  'aria-autocomplete': true,\n  'aria-busy': true,\n  'aria-checked': true,\n  'aria-colcount': true,\n  'aria-colindex': true,\n  'aria-colspan': true,\n  'aria-controls': true,\n  'aria-current': true,\n  'aria-describedby': true,\n  'aria-details': true,\n  'aria-disabled': true,\n  'aria-errormessage': true,\n  'aria-expanded': true,\n  'aria-flowto': true,\n  'aria-haspopup': true,\n  'aria-hidden': true,\n  'aria-invalid': true,\n  'aria-keyshortcuts': true,\n  'aria-label': true,\n  'aria-labelledby': true,\n  'aria-level': true,\n  'aria-live': true,\n  'aria-modal': true,\n  'aria-multiline': true,\n  'aria-multiselectable': true,\n  'aria-orientation': true,\n  'aria-owns': true,\n  'aria-placeholder': true,\n  'aria-posinset': true,\n  'aria-pressed': true,\n  'aria-readonly': true,\n  'aria-required': true,\n  role: true,\n  'aria-roledescription': true,\n  'aria-rowcount': true,\n  'aria-rowindex': true,\n  'aria-rowspan': true,\n  'aria-selected': true,\n  'aria-setsize': true,\n  'aria-sort': true,\n  'aria-valuemax': true,\n  'aria-valuemin': true,\n  'aria-valuenow': true,\n  'aria-valuetext': true,\n  // @deprecated\n  accessibilityActiveDescendant: true,\n  accessibilityAtomic: true,\n  accessibilityAutoComplete: true,\n  accessibilityBusy: true,\n  accessibilityChecked: true,\n  accessibilityColumnCount: true,\n  accessibilityColumnIndex: true,\n  accessibilityColumnSpan: true,\n  accessibilityControls: true,\n  accessibilityCurrent: true,\n  accessibilityDescribedBy: true,\n  accessibilityDetails: true,\n  accessibilityDisabled: true,\n  accessibilityErrorMessage: true,\n  accessibilityExpanded: true,\n  accessibilityFlowTo: true,\n  accessibilityHasPopup: true,\n  accessibilityHidden: true,\n  accessibilityInvalid: true,\n  accessibilityKeyShortcuts: true,\n  accessibilityLabel: true,\n  accessibilityLabelledBy: true,\n  accessibilityLevel: true,\n  accessibilityLiveRegion: true,\n  accessibilityModal: true,\n  accessibilityMultiline: true,\n  accessibilityMultiSelectable: true,\n  accessibilityOrientation: true,\n  accessibilityOwns: true,\n  accessibilityPlaceholder: true,\n  accessibilityPosInSet: true,\n  accessibilityPressed: true,\n  accessibilityReadOnly: true,\n  accessibilityRequired: true,\n  accessibilityRole: true,\n  accessibilityRoleDescription: true,\n  accessibilityRowCount: true,\n  accessibilityRowIndex: true,\n  accessibilityRowSpan: true,\n  accessibilitySelected: true,\n  accessibilitySetSize: true,\n  accessibilitySort: true,\n  accessibilityValueMax: true,\n  accessibilityValueMin: true,\n  accessibilityValueNow: true,\n  accessibilityValueText: true\n};\nexport var clickProps = {\n  onClick: true,\n  onAuxClick: true,\n  onContextMenu: true,\n  onGotPointerCapture: true,\n  onLostPointerCapture: true,\n  onPointerCancel: true,\n  onPointerDown: true,\n  onPointerEnter: true,\n  onPointerMove: true,\n  onPointerLeave: true,\n  onPointerOut: true,\n  onPointerOver: true,\n  onPointerUp: true\n};\nexport var focusProps = {\n  onBlur: true,\n  onFocus: true\n};\nexport var keyboardProps = {\n  onKeyDown: true,\n  onKeyDownCapture: true,\n  onKeyUp: true,\n  onKeyUpCapture: true\n};\nexport var mouseProps = {\n  onMouseDown: true,\n  onMouseEnter: true,\n  onMouseLeave: true,\n  onMouseMove: true,\n  onMouseOver: true,\n  onMouseOut: true,\n  onMouseUp: true\n};\nexport var touchProps = {\n  onTouchCancel: true,\n  onTouchCancelCapture: true,\n  onTouchEnd: true,\n  onTouchEndCapture: true,\n  onTouchMove: true,\n  onTouchMoveCapture: true,\n  onTouchStart: true,\n  onTouchStartCapture: true\n};\nexport var styleProps = {\n  style: true\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nexport default function pick(obj, list) {\n  var nextObj = {};\n  for (var key in obj) {\n    if (obj.hasOwnProperty(key)) {\n      if (list[key] === true) {\n        nextObj[key] = obj[key];\n      }\n    }\n  }\n  return nextObj;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\n\nimport { useEffect, useLayoutEffect } from 'react';\nimport canUseDOM from '../canUseDom';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nimport canUseDOM from '../canUseDom';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\nfunction getResizeObserver() {\n  if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n    if (resizeObserver == null) {\n      resizeObserver = new window.ResizeObserver(function (entries) {\n        entries.forEach(entry => {\n          var node = entry.target;\n          var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n          if (typeof onLayout === 'function') {\n            // We still need to measure the view because browsers don't yet provide\n            // border-box dimensions in the entry\n            UIManager.measure(node, (x, y, width, height, left, top) => {\n              var event = {\n                // $FlowFixMe\n                nativeEvent: {\n                  layout: {\n                    x,\n                    y,\n                    width,\n                    height,\n                    left,\n                    top\n                  }\n                },\n                timeStamp: Date.now()\n              };\n              Object.defineProperty(event.nativeEvent, 'target', {\n                enumerable: true,\n                get: () => entry.target\n              });\n              onLayout(event);\n            });\n          }\n        });\n      });\n    }\n  } else if (!didWarn) {\n    if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n      console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n      didWarn = true;\n    }\n  }\n  return resizeObserver;\n}\nexport default function useElementLayout(ref, onLayout) {\n  var observer = getResizeObserver();\n  useLayoutEffect(() => {\n    var node = ref.current;\n    if (node != null) {\n      node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n    }\n  }, [ref, onLayout]);\n\n  // Observing is done in a separate effect to avoid this effect running\n  // when 'onLayout' changes.\n  useLayoutEffect(() => {\n    var node = ref.current;\n    if (node != null && observer != null) {\n      if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n        observer.observe(node);\n      } else {\n        observer.unobserve(node);\n      }\n    }\n    return () => {\n      if (node != null && observer != null) {\n        observer.unobserve(node);\n      }\n    };\n  }, [ref, observer]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nexport default function mergeRefs() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  return function forwardRef(node) {\n    args.forEach(ref => {\n      if (ref == null) {\n        return;\n      }\n      if (typeof ref === 'function') {\n        ref(node);\n        return;\n      }\n      if (typeof ref === 'object') {\n        ref.current = node;\n        return;\n      }\n      console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n    });\n  };\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  return React.useMemo(() => mergeRefs(...args),\n  // eslint-disable-next-line\n  [...args]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport * as React from 'react';\nvar UNINITIALIZED = typeof Symbol === 'function' && typeof Symbol() === 'symbol' ? Symbol() : Object.freeze({});\nexport default function useStable(getInitialValue) {\n  var ref = React.useRef(UNINITIALIZED);\n  if (ref.current === UNINITIALIZED) {\n    ref.current = getInitialValue();\n  }\n  // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n  return ref.current;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport UIManager from '../../exports/UIManager';\nimport useStable from '../useStable';\n\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\nexport default function usePlatformMethods(_ref) {\n  var pointerEvents = _ref.pointerEvents,\n    style = _ref.style;\n  // Avoid creating a new ref on every render.\n  var ref = useStable(() => hostNode => {\n    if (hostNode != null) {\n      hostNode.measure = callback => UIManager.measure(hostNode, callback);\n      hostNode.measureLayout = (relativeToNode, success, failure) => UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n      hostNode.measureInWindow = callback => UIManager.measureInWindow(hostNode, callback);\n    }\n  });\n  return ref;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nvar emptyFunction = () => {};\nvar emptyObject = {};\nvar emptyArray = [];\n\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\nfunction normalizeIdentifier(identifier) {\n  return identifier > 20 ? identifier % 20 : identifier;\n}\n\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\nexport default function createResponderEvent(domEvent, responderTouchHistoryStore) {\n  var rect;\n  var propagationWasStopped = false;\n  var changedTouches;\n  var touches;\n  var domEventChangedTouches = domEvent.changedTouches;\n  var domEventType = domEvent.type;\n  var metaKey = domEvent.metaKey === true;\n  var shiftKey = domEvent.shiftKey === true;\n  var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n  var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n  var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n  var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n  var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n  var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n  var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n  var timestamp = domEvent.timeStamp;\n  function normalizeTouches(touches) {\n    return Array.prototype.slice.call(touches).map(touch => {\n      return {\n        force: touch.force,\n        identifier: normalizeIdentifier(touch.identifier),\n        get locationX() {\n          return locationX(touch.clientX);\n        },\n        get locationY() {\n          return locationY(touch.clientY);\n        },\n        pageX: touch.pageX,\n        pageY: touch.pageY,\n        target: touch.target,\n        timestamp\n      };\n    });\n  }\n  if (domEventChangedTouches != null) {\n    changedTouches = normalizeTouches(domEventChangedTouches);\n    touches = normalizeTouches(domEvent.touches);\n  } else {\n    var emulatedTouches = [{\n      force,\n      identifier,\n      get locationX() {\n        return locationX(clientX);\n      },\n      get locationY() {\n        return locationY(clientY);\n      },\n      pageX,\n      pageY,\n      target: domEvent.target,\n      timestamp\n    }];\n    changedTouches = emulatedTouches;\n    touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n  }\n  var responderEvent = {\n    bubbles: true,\n    cancelable: true,\n    // `currentTarget` is set before dispatch\n    currentTarget: null,\n    defaultPrevented: domEvent.defaultPrevented,\n    dispatchConfig: emptyObject,\n    eventPhase: domEvent.eventPhase,\n    isDefaultPrevented() {\n      return domEvent.defaultPrevented;\n    },\n    isPropagationStopped() {\n      return propagationWasStopped;\n    },\n    isTrusted: domEvent.isTrusted,\n    nativeEvent: {\n      altKey: false,\n      ctrlKey: false,\n      metaKey,\n      shiftKey,\n      changedTouches,\n      force,\n      identifier,\n      get locationX() {\n        return locationX(clientX);\n      },\n      get locationY() {\n        return locationY(clientY);\n      },\n      pageX,\n      pageY,\n      target: domEvent.target,\n      timestamp,\n      touches,\n      type: domEventType\n    },\n    persist: emptyFunction,\n    preventDefault,\n    stopPropagation() {\n      propagationWasStopped = true;\n    },\n    target: domEvent.target,\n    timeStamp: timestamp,\n    touchHistory: responderTouchHistoryStore.touchHistory\n  };\n\n  // Using getters and functions serves two purposes:\n  // 1) The value of `currentTarget` is not initially available.\n  // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n  function locationX(x) {\n    rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n    if (rect) {\n      return x - rect.left;\n    }\n  }\n  function locationY(y) {\n    rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n    if (rect) {\n      return y - rect.top;\n    }\n  }\n  return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n  return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n  return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n  return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n  return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n  return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n  return eventType === SELECT || eventType === SELECTION_CHANGE;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nexport default function isSelectionValid() {\n  var selection = window.getSelection();\n  var string = selection.toString();\n  var anchorNode = selection.anchorNode;\n  var focusNode = selection.focusNode;\n  var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n  return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\nfunction getEventPath(domEvent) {\n  // The 'selectionchange' event always has the 'document' as the target.\n  // Use the anchor node as the initial target to reconstruct a path.\n  // (We actually only need the first \"responder\" node in practice.)\n  if (domEvent.type === 'selectionchange') {\n    var target = window.getSelection().anchorNode;\n    return composedPathFallback(target);\n  } else {\n    var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n    return path;\n  }\n}\nfunction composedPathFallback(target) {\n  var path = [];\n  while (target != null && target !== document.body) {\n    path.push(target);\n    target = target.parentNode;\n  }\n  return path;\n}\n\n/**\n * Retrieve the responderId from a host node\n */\nfunction getResponderId(node) {\n  if (node != null) {\n    return node[keyName];\n  }\n  return null;\n}\n\n/**\n * Store the responderId on a host node\n */\nexport function setResponderId(node, id) {\n  if (node != null) {\n    node[keyName] = id;\n  }\n}\n\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\nexport function getResponderPaths(domEvent) {\n  var idPath = [];\n  var nodePath = [];\n  var eventPath = getEventPath(domEvent);\n  for (var i = 0; i < eventPath.length; i++) {\n    var node = eventPath[i];\n    var id = getResponderId(node);\n    if (id != null) {\n      idPath.push(id);\n      nodePath.push(node);\n    }\n  }\n  return {\n    idPath,\n    nodePath\n  };\n}\n\n/**\n * Walk the paths and find the first common ancestor\n */\nexport function getLowestCommonAncestor(pathA, pathB) {\n  var pathALength = pathA.length;\n  var pathBLength = pathB.length;\n  if (\n  // If either path is empty\n  pathALength === 0 || pathBLength === 0 ||\n  // If the last elements aren't the same there can't be a common ancestor\n  // that is connected to the responder system\n  pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n    return null;\n  }\n  var itemA = pathA[0];\n  var indexA = 0;\n  var itemB = pathB[0];\n  var indexB = 0;\n\n  // If A is deeper, skip indices that can't match.\n  if (pathALength - pathBLength > 0) {\n    indexA = pathALength - pathBLength;\n    itemA = pathA[indexA];\n    pathALength = pathBLength;\n  }\n\n  // If B is deeper, skip indices that can't match\n  if (pathBLength - pathALength > 0) {\n    indexB = pathBLength - pathALength;\n    itemB = pathB[indexB];\n    pathBLength = pathALength;\n  }\n\n  // Walk in lockstep until a match is found\n  var depth = pathALength;\n  while (depth--) {\n    if (itemA === itemB) {\n      return itemA;\n    }\n    itemA = pathA[indexA++];\n    itemB = pathB[indexB++];\n  }\n  return null;\n}\n\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\nexport function hasTargetTouches(target, touches) {\n  if (!touches || touches.length === 0) {\n    return false;\n  }\n  for (var i = 0; i < touches.length; i++) {\n    var node = touches[i].target;\n    if (node != null) {\n      if (target.contains(node)) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\n\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\nexport function hasValidSelection(domEvent) {\n  if (domEvent.type === 'selectionchange') {\n    return isSelectionValid();\n  }\n  return domEvent.type === 'select';\n}\n\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\nexport function isPrimaryPointerDown(domEvent) {\n  var altKey = domEvent.altKey,\n    button = domEvent.button,\n    buttons = domEvent.buttons,\n    ctrlKey = domEvent.ctrlKey,\n    type = domEvent.type;\n  var isTouch = type === 'touchstart' || type === 'touchmove';\n  var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n  var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n  var noModifiers = altKey === false && ctrlKey === false;\n  if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n    return true;\n  }\n  return false;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar MAX_TOUCH_BANK = 20;\nfunction timestampForTouch(touch) {\n  // The legacy internal implementation provides \"timeStamp\", which has been\n  // renamed to \"timestamp\".\n  return touch.timeStamp || touch.timestamp;\n}\n\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\nfunction createTouchRecord(touch) {\n  return {\n    touchActive: true,\n    startPageX: touch.pageX,\n    startPageY: touch.pageY,\n    startTimeStamp: timestampForTouch(touch),\n    currentPageX: touch.pageX,\n    currentPageY: touch.pageY,\n    currentTimeStamp: timestampForTouch(touch),\n    previousPageX: touch.pageX,\n    previousPageY: touch.pageY,\n    previousTimeStamp: timestampForTouch(touch)\n  };\n}\nfunction resetTouchRecord(touchRecord, touch) {\n  touchRecord.touchActive = true;\n  touchRecord.startPageX = touch.pageX;\n  touchRecord.startPageY = touch.pageY;\n  touchRecord.startTimeStamp = timestampForTouch(touch);\n  touchRecord.currentPageX = touch.pageX;\n  touchRecord.currentPageY = touch.pageY;\n  touchRecord.currentTimeStamp = timestampForTouch(touch);\n  touchRecord.previousPageX = touch.pageX;\n  touchRecord.previousPageY = touch.pageY;\n  touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\nfunction getTouchIdentifier(_ref) {\n  var identifier = _ref.identifier;\n  if (identifier == null) {\n    console.error('Touch object is missing identifier.');\n  }\n  if (__DEV__) {\n    if (identifier > MAX_TOUCH_BANK) {\n      console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n    }\n  }\n  return identifier;\n}\nfunction recordTouchStart(touch, touchHistory) {\n  var identifier = getTouchIdentifier(touch);\n  var touchRecord = touchHistory.touchBank[identifier];\n  if (touchRecord) {\n    resetTouchRecord(touchRecord, touch);\n  } else {\n    touchHistory.touchBank[identifier] = createTouchRecord(touch);\n  }\n  touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch, touchHistory) {\n  var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n  if (touchRecord) {\n    touchRecord.touchActive = true;\n    touchRecord.previousPageX = touchRecord.currentPageX;\n    touchRecord.previousPageY = touchRecord.currentPageY;\n    touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n    touchRecord.currentPageX = touch.pageX;\n    touchRecord.currentPageY = touch.pageY;\n    touchRecord.currentTimeStamp = timestampForTouch(touch);\n    touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n  } else {\n    console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n  }\n}\nfunction recordTouchEnd(touch, touchHistory) {\n  var touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n  if (touchRecord) {\n    touchRecord.touchActive = false;\n    touchRecord.previousPageX = touchRecord.currentPageX;\n    touchRecord.previousPageY = touchRecord.currentPageY;\n    touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n    touchRecord.currentPageX = touch.pageX;\n    touchRecord.currentPageY = touch.pageY;\n    touchRecord.currentTimeStamp = timestampForTouch(touch);\n    touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n  } else {\n    console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank(touchHistory));\n  }\n}\nfunction printTouch(touch) {\n  return JSON.stringify({\n    identifier: touch.identifier,\n    pageX: touch.pageX,\n    pageY: touch.pageY,\n    timestamp: timestampForTouch(touch)\n  });\n}\nfunction printTouchBank(touchHistory) {\n  var touchBank = touchHistory.touchBank;\n  var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n  if (touchBank.length > MAX_TOUCH_BANK) {\n    printed += ' (original size: ' + touchBank.length + ')';\n  }\n  return printed;\n}\nexport class ResponderTouchHistoryStore {\n  constructor() {\n    this._touchHistory = {\n      touchBank: [],\n      //Array<TouchRecord>\n      numberActiveTouches: 0,\n      // If there is only one active touch, we remember its location. This prevents\n      // us having to loop through all of the touches all the time in the most\n      // common case.\n      indexOfSingleActiveTouch: -1,\n      mostRecentTimeStamp: 0\n    };\n  }\n  recordTouchTrack(topLevelType, nativeEvent) {\n    var touchHistory = this._touchHistory;\n    if (isMoveish(topLevelType)) {\n      nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));\n    } else if (isStartish(topLevelType)) {\n      nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));\n      touchHistory.numberActiveTouches = nativeEvent.touches.length;\n      if (touchHistory.numberActiveTouches === 1) {\n        touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n      }\n    } else if (isEndish(topLevelType)) {\n      nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));\n      touchHistory.numberActiveTouches = nativeEvent.touches.length;\n      if (touchHistory.numberActiveTouches === 1) {\n        var touchBank = touchHistory.touchBank;\n        for (var i = 0; i < touchBank.length; i++) {\n          var touchTrackToCheck = touchBank[i];\n          if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n            touchHistory.indexOfSingleActiveTouch = i;\n            break;\n          }\n        }\n        if (__DEV__) {\n          var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n          if (!(activeRecord != null && activeRecord.touchActive)) {\n            console.error('Cannot find single active touch.');\n          }\n        }\n      }\n    }\n  }\n  get touchHistory() {\n    return this._touchHistory;\n  }\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n *  * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n *  * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n *  * \"scroll\" (while a pointer is down)\n *  * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n *  * startShouldSetResponder\n *  * responderGrant/Reject\n *  * responderStart\n *  * responderMove\n *  * responderEnd\n *  * responderRelease\n */\n\n/*                                             Negotiation Performed\n                                             +-----------------------+\n                                            /                         \\\nProcess low level events to    +     Current Responder      +   wantsResponderID\ndetermine who to perform negot-|   (if any exists at all)   |\niation/transition              | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID        |                            |\nto return true:wantsResponderID|                            |\n                               |                            |\n     +--------------+          |                            |\n     | onTouchStart |          |                            |\n     +------+-------+    none  |                            |\n            |            return|                            |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+    | +------------------------+ |          |\n            |                  |                            | +--------+-------+\n            | returned true for|       false:REJECT +-------->|onResponderReject\n            | wantsResponderID |                    |       | +----------------+\n            | (now attempt     | +------------------+-----+ |\n            |  handoff)        | | onResponder            | |\n            +------------------->|    TerminationRequest  | |\n                               | +------------------+-----+ |\n                               |                    |       | +----------------+\n                               |         true:GRANT +-------->|onResponderGrant|\n                               |                            | +--------+-------+\n                               | +------------------------+ |          |\n                               | | onResponderTerminate   |<-----------+\n                               | +------------------+-----+ |\n                               |                    |       | +----------------+\n                               |                    +-------->|onResponderStart|\n                               |                            | +----------------+\nBubble to find first ID        |                            |\nto return true:wantsResponderID|                            |\n                               |                            |\n     +-------------+           |                            |\n     | onTouchMove |           |                            |\n     +------+------+     none  |                            |\n            |            return|                            |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur)  |<-----------+\n+-----------+-------------+    | +------------------------+ |          |\n            |                  |                            | +--------+-------+\n            | returned true for|       false:REJECT +-------->|onResponderReject\n            | wantsResponderID |                    |       | +----------------+\n            | (now attempt     | +------------------+-----+ |\n            |  handoff)        | |   onResponder          | |\n            +------------------->|      TerminationRequest| |\n                               | +------------------+-----+ |\n                               |                    |       | +----------------+\n                               |         true:GRANT +-------->|onResponderGrant|\n                               |                            | +--------+-------+\n                               | +------------------------+ |          |\n                               | |   onResponderTerminate |<-----------+\n                               | +------------------+-----+ |\n                               |                    |       | +----------------+\n                               |                    +-------->|onResponderMove |\n                               |                            | +----------------+\n                               |                            |\n                               |                            |\n      Some active touch started|                            |\n      inside current responder | +------------------------+ |\n      +------------------------->|      onResponderEnd    | |\n      |                        | +------------------------+ |\n  +---+---------+              |                            |\n  | onTouchEnd  |              |                            |\n  +---+---------+              |                            |\n      |                        | +------------------------+ |\n      +------------------------->|     onResponderEnd     | |\n      No active touches started| +-----------+------------+ |\n      inside current responder |             |              |\n                               |             v              |\n                               | +------------------------+ |\n                               | |    onResponderRelease  | |\n                               | +------------------------+ |\n                               |                            |\n                               +                            + */\n\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport { ResponderTouchHistoryStore } from './ResponderTouchHistoryStore';\nimport canUseDOM from '../canUseDom';\n\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n  bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n  bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n  bubbles: false\n}];\nvar shouldSetResponderEvents = {\n  touchstart: startRegistration,\n  mousedown: startRegistration,\n  touchmove: moveRegistration,\n  mousemove: moveRegistration,\n  scroll: scrollRegistration\n};\nvar emptyResponder = {\n  id: null,\n  idPath: null,\n  node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n  id: null,\n  node: null,\n  idPath: null\n};\nvar responderTouchHistoryStore = new ResponderTouchHistoryStore();\nfunction changeCurrentResponder(responder) {\n  currentResponder = responder;\n}\nfunction getResponderConfig(id) {\n  var config = responderListenersMap.get(id);\n  return config != null ? config : emptyObject;\n}\n\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\nfunction eventListener(domEvent) {\n  var eventType = domEvent.type;\n  var eventTarget = domEvent.target;\n\n  /**\n   * Manage emulated events and early bailout.\n   * Since PointerEvent is not used yet (lack of support in older Safari), it's\n   * necessary to manually manage the mess of browser touch/mouse events.\n   * And bailout early for termination events when there is no active responder.\n   */\n\n  // Flag when browser may produce emulated events\n  if (eventType === 'touchstart') {\n    isEmulatingMouseEvents = true;\n  }\n  // Remove flag when browser will not produce emulated events\n  if (eventType === 'touchmove' || trackedTouchCount > 1) {\n    isEmulatingMouseEvents = false;\n  }\n  // Ignore various events in particular circumstances\n  if (\n  // Ignore browser emulated mouse events\n  eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents ||\n  // Ignore mousemove if a mousedown didn't occur first\n  eventType === 'mousemove' && trackedTouchCount < 1) {\n    return;\n  }\n  // Remove flag after emulated events are finished\n  if (isEmulatingMouseEvents && eventType === 'mouseup') {\n    if (trackedTouchCount === 0) {\n      isEmulatingMouseEvents = false;\n    }\n    return;\n  }\n  var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n  var isMoveEvent = isMoveish(eventType);\n  var isEndEvent = isEndish(eventType);\n  var isScrollEvent = isScroll(eventType);\n  var isSelectionChangeEvent = isSelectionChange(eventType);\n  var responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);\n\n  /**\n   * Record the state of active pointers\n   */\n\n  if (isStartEvent || isMoveEvent || isEndEvent) {\n    if (domEvent.touches) {\n      trackedTouchCount = domEvent.touches.length;\n    } else {\n      if (isStartEvent) {\n        trackedTouchCount = 1;\n      } else if (isEndEvent) {\n        trackedTouchCount = 0;\n      }\n    }\n    responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n  }\n\n  /**\n   * Responder System logic\n   */\n\n  var eventPaths = getResponderPaths(domEvent);\n  var wasNegotiated = false;\n  var wantsResponder;\n\n  // If an event occured that might change the current responder...\n  if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n    // If there is already a responder, prune the event paths to the lowest common ancestor\n    // of the existing responder and deepest target of the event.\n    var currentResponderIdPath = currentResponder.idPath;\n    var eventIdPath = eventPaths.idPath;\n    if (currentResponderIdPath != null && eventIdPath != null) {\n      var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n      if (lowestCommonAncestor != null) {\n        var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);\n        // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n        var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n        eventPaths = {\n          idPath: eventIdPath.slice(index),\n          nodePath: eventPaths.nodePath.slice(index)\n        };\n      } else {\n        eventPaths = null;\n      }\n    }\n    if (eventPaths != null) {\n      // If a node wants to become the responder, attempt to transfer.\n      wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n      if (wantsResponder != null) {\n        // Sets responder if none exists, or negotates with existing responder.\n        attemptTransfer(responderEvent, wantsResponder);\n        wasNegotiated = true;\n      }\n    }\n  }\n\n  // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n  if (currentResponder.id != null && currentResponder.node != null) {\n    var _currentResponder = currentResponder,\n      id = _currentResponder.id,\n      node = _currentResponder.node;\n    var _getResponderConfig = getResponderConfig(id),\n      onResponderStart = _getResponderConfig.onResponderStart,\n      onResponderMove = _getResponderConfig.onResponderMove,\n      onResponderEnd = _getResponderConfig.onResponderEnd,\n      onResponderRelease = _getResponderConfig.onResponderRelease,\n      onResponderTerminate = _getResponderConfig.onResponderTerminate,\n      onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n    responderEvent.bubbles = false;\n    responderEvent.cancelable = false;\n    responderEvent.currentTarget = node;\n\n    // Start\n    if (isStartEvent) {\n      if (onResponderStart != null) {\n        responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n        onResponderStart(responderEvent);\n      }\n    }\n    // Move\n    else if (isMoveEvent) {\n      if (onResponderMove != null) {\n        responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n        onResponderMove(responderEvent);\n      }\n    } else {\n      var isTerminateEvent = isCancelish(eventType) ||\n      // native context menu\n      eventType === 'contextmenu' ||\n      // window blur\n      eventType === 'blur' && eventTarget === window ||\n      // responder (or ancestors) blur\n      eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node ||\n      // native scroll without using a pointer\n      isScrollEvent && trackedTouchCount === 0 ||\n      // native scroll on node that is parent of the responder (allow siblings to scroll)\n      isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||\n      // native select/selectionchange on node\n      isSelectionChangeEvent && hasValidSelection(domEvent);\n      var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);\n\n      // End\n      if (isEndEvent) {\n        if (onResponderEnd != null) {\n          responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n          onResponderEnd(responderEvent);\n        }\n      }\n      // Release\n      if (isReleaseEvent) {\n        if (onResponderRelease != null) {\n          responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n          onResponderRelease(responderEvent);\n        }\n        changeCurrentResponder(emptyResponder);\n      }\n      // Terminate\n      if (isTerminateEvent) {\n        var shouldTerminate = true;\n\n        // Responders can still avoid termination but only for these events.\n        if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n          // Only call this function is it wasn't already called during negotiation.\n          if (wasNegotiated) {\n            shouldTerminate = false;\n          } else if (onResponderTerminationRequest != null) {\n            responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n            if (onResponderTerminationRequest(responderEvent) === false) {\n              shouldTerminate = false;\n            }\n          }\n        }\n        if (shouldTerminate) {\n          if (onResponderTerminate != null) {\n            responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n            onResponderTerminate(responderEvent);\n          }\n          changeCurrentResponder(emptyResponder);\n          isEmulatingMouseEvents = false;\n          trackedTouchCount = 0;\n        }\n      }\n    }\n  }\n}\n\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n  var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n  if (shouldSetCallbacks != null) {\n    var idPath = eventPaths.idPath,\n      nodePath = eventPaths.nodePath;\n    var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n    var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n    var bubbles = shouldSetCallbacks[2].bubbles;\n    var check = function check(id, node, callbackName) {\n      var config = getResponderConfig(id);\n      var shouldSetCallback = config[callbackName];\n      if (shouldSetCallback != null) {\n        responderEvent.currentTarget = node;\n        if (shouldSetCallback(responderEvent) === true) {\n          // Start the path from the potential responder\n          var prunedIdPath = idPath.slice(idPath.indexOf(id));\n          return {\n            id,\n            node,\n            idPath: prunedIdPath\n          };\n        }\n      }\n    };\n\n    // capture\n    for (var i = idPath.length - 1; i >= 0; i--) {\n      var id = idPath[i];\n      var node = nodePath[i];\n      var result = check(id, node, shouldSetCallbackCaptureName);\n      if (result != null) {\n        return result;\n      }\n      if (responderEvent.isPropagationStopped() === true) {\n        return;\n      }\n    }\n\n    // bubble\n    if (bubbles) {\n      for (var _i = 0; _i < idPath.length; _i++) {\n        var _id = idPath[_i];\n        var _node = nodePath[_i];\n        var _result = check(_id, _node, shouldSetCallbackBubbleName);\n        if (_result != null) {\n          return _result;\n        }\n        if (responderEvent.isPropagationStopped() === true) {\n          return;\n        }\n      }\n    } else {\n      var _id2 = idPath[0];\n      var _node2 = nodePath[0];\n      var target = domEvent.target;\n      if (target === _node2) {\n        return check(_id2, _node2, shouldSetCallbackBubbleName);\n      }\n    }\n  }\n}\n\n/**\n * Attempt to transfer the responder.\n */\nfunction attemptTransfer(responderEvent, wantsResponder) {\n  var _currentResponder2 = currentResponder,\n    currentId = _currentResponder2.id,\n    currentNode = _currentResponder2.node;\n  var id = wantsResponder.id,\n    node = wantsResponder.node;\n  var _getResponderConfig2 = getResponderConfig(id),\n    onResponderGrant = _getResponderConfig2.onResponderGrant,\n    onResponderReject = _getResponderConfig2.onResponderReject;\n  responderEvent.bubbles = false;\n  responderEvent.cancelable = false;\n  responderEvent.currentTarget = node;\n\n  // Set responder\n  if (currentId == null) {\n    if (onResponderGrant != null) {\n      responderEvent.currentTarget = node;\n      responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n      onResponderGrant(responderEvent);\n    }\n    changeCurrentResponder(wantsResponder);\n  }\n  // Negotiate with current responder\n  else {\n    var _getResponderConfig3 = getResponderConfig(currentId),\n      onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n      onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n    var allowTransfer = true;\n    if (onResponderTerminationRequest != null) {\n      responderEvent.currentTarget = currentNode;\n      responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n      if (onResponderTerminationRequest(responderEvent) === false) {\n        allowTransfer = false;\n      }\n    }\n    if (allowTransfer) {\n      // Terminate existing responder\n      if (onResponderTerminate != null) {\n        responderEvent.currentTarget = currentNode;\n        responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n        onResponderTerminate(responderEvent);\n      }\n      // Grant next responder\n      if (onResponderGrant != null) {\n        responderEvent.currentTarget = node;\n        responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n        onResponderGrant(responderEvent);\n      }\n      changeCurrentResponder(wantsResponder);\n    } else {\n      // Reject responder request\n      if (onResponderReject != null) {\n        responderEvent.currentTarget = node;\n        responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n        onResponderReject(responderEvent);\n      }\n    }\n  }\n}\n\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [\n// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart',\n// touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel',\n// other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n  if (canUseDOM && window.__reactResponderSystemActive == null) {\n    window.addEventListener('blur', eventListener);\n    documentEventsBubblePhase.forEach(eventType => {\n      document.addEventListener(eventType, eventListener);\n    });\n    documentEventsCapturePhase.forEach(eventType => {\n      document.addEventListener(eventType, eventListener, true);\n    });\n    window.__reactResponderSystemActive = true;\n  }\n}\n\n/**\n * Register a node with the ResponderSystem.\n */\nexport function addNode(id, node, config) {\n  setResponderId(node, id);\n  responderListenersMap.set(id, config);\n}\n\n/**\n * Unregister a node with the ResponderSystem.\n */\nexport function removeNode(id) {\n  if (currentResponder.id === id) {\n    terminateResponder();\n  }\n  if (responderListenersMap.has(id)) {\n    responderListenersMap.delete(id);\n  }\n}\n\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\nexport function terminateResponder() {\n  var _currentResponder3 = currentResponder,\n    id = _currentResponder3.id,\n    node = _currentResponder3.node;\n  if (id != null && node != null) {\n    var _getResponderConfig4 = getResponderConfig(id),\n      onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n    if (onResponderTerminate != null) {\n      var event = createResponderEvent({}, responderTouchHistoryStore);\n      event.currentTarget = node;\n      onResponderTerminate(event);\n    }\n    changeCurrentResponder(emptyResponder);\n  }\n  isEmulatingMouseEvents = false;\n  trackedTouchCount = 0;\n}\n\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\nexport function getResponderNode() {\n  return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * Hook for integrating the Responder System into React\n *\n *   function SomeComponent({ onStartShouldSetResponder }) {\n *     const ref = useRef(null);\n *     useResponderEvents(ref, { onStartShouldSetResponder });\n *     return <div ref={ref} />\n *   }\n */\n\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\nfunction useStable(getInitialValue) {\n  var ref = React.useRef(null);\n  if (ref.current == null) {\n    ref.current = getInitialValue();\n  }\n  return ref.current;\n}\nexport default function useResponderEvents(hostRef, config) {\n  if (config === void 0) {\n    config = emptyObject;\n  }\n  var id = useStable(() => idCounter++);\n  var isAttachedRef = React.useRef(false);\n\n  // This is a separate effects so it doesn't run when the config changes.\n  // On initial mount, attach global listeners if needed.\n  // On unmount, remove node potentially attached to the Responder System.\n  React.useEffect(() => {\n    ResponderSystem.attachListeners();\n    return () => {\n      ResponderSystem.removeNode(id);\n    };\n  }, [id]);\n\n  // Register and unregister with the Responder System as necessary\n  React.useEffect(() => {\n    var _config = config,\n      onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n      onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n      onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n      onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n      onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n      onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n      onStartShouldSetResponder = _config.onStartShouldSetResponder,\n      onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n    var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n    var node = hostRef.current;\n    if (requiresResponderSystem) {\n      ResponderSystem.addNode(id, node, config);\n      isAttachedRef.current = true;\n    } else if (isAttachedRef.current) {\n      ResponderSystem.removeNode(id);\n      isAttachedRef.current = false;\n    }\n  }, [config, hostRef, id]);\n  React.useDebugValue({\n    isResponder: hostRef.current === ResponderSystem.getResponderNode()\n  });\n  React.useDebugValue(config);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use client';\n\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"onLayout\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\"];\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n  href: true,\n  lang: true,\n  onScroll: true,\n  onWheel: true,\n  pointerEvents: true\n});\nvar pickProps = props => pick(props, forwardPropsList);\nvar View = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n  var hrefAttrs = props.hrefAttrs,\n    onLayout = props.onLayout,\n    onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n    onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n    onResponderEnd = props.onResponderEnd,\n    onResponderGrant = props.onResponderGrant,\n    onResponderMove = props.onResponderMove,\n    onResponderReject = props.onResponderReject,\n    onResponderRelease = props.onResponderRelease,\n    onResponderStart = props.onResponderStart,\n    onResponderTerminate = props.onResponderTerminate,\n    onResponderTerminationRequest = props.onResponderTerminationRequest,\n    onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n    onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n    onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n    onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n    onStartShouldSetResponder = props.onStartShouldSetResponder,\n    onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n    rest = _objectWithoutPropertiesLoose(props, _excluded);\n  if (process.env.NODE_ENV !== 'production') {\n    React.Children.toArray(props.children).forEach(item => {\n      if (typeof item === 'string') {\n        console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a <View>.\");\n      }\n    });\n  }\n  var hasTextAncestor = React.useContext(TextAncestorContext);\n  var hostRef = React.useRef(null);\n  var _useLocaleContext = useLocaleContext(),\n    contextDirection = _useLocaleContext.direction;\n  useElementLayout(hostRef, onLayout);\n  useResponderEvents(hostRef, {\n    onMoveShouldSetResponder,\n    onMoveShouldSetResponderCapture,\n    onResponderEnd,\n    onResponderGrant,\n    onResponderMove,\n    onResponderReject,\n    onResponderRelease,\n    onResponderStart,\n    onResponderTerminate,\n    onResponderTerminationRequest,\n    onScrollShouldSetResponder,\n    onScrollShouldSetResponderCapture,\n    onSelectionChangeShouldSetResponder,\n    onSelectionChangeShouldSetResponderCapture,\n    onStartShouldSetResponder,\n    onStartShouldSetResponderCapture\n  });\n  var component = 'div';\n  var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n  var componentDirection = props.dir || langDirection;\n  var writingDirection = componentDirection || contextDirection;\n  var supportedProps = pickProps(rest);\n  supportedProps.dir = componentDirection;\n  supportedProps.style = [styles.view$raw, hasTextAncestor && styles.inline, props.style];\n  if (props.href != null) {\n    component = 'a';\n    if (hrefAttrs != null) {\n      var download = hrefAttrs.download,\n        rel = hrefAttrs.rel,\n        target = hrefAttrs.target;\n      if (download != null) {\n        supportedProps.download = download;\n      }\n      if (rel != null) {\n        supportedProps.rel = rel;\n      }\n      if (typeof target === 'string') {\n        supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n      }\n    }\n  }\n  var platformMethodsRef = usePlatformMethods(supportedProps);\n  var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n  supportedProps.ref = setRef;\n  return createElement(component, supportedProps, {\n    writingDirection\n  });\n});\nView.displayName = 'View';\nvar styles = StyleSheet.create({\n  view$raw: {\n    alignContent: 'flex-start',\n    alignItems: 'stretch',\n    backgroundColor: 'transparent',\n    border: '0 solid black',\n    boxSizing: 'border-box',\n    display: 'flex',\n    flexBasis: 'auto',\n    flexDirection: 'column',\n    flexShrink: 0,\n    listStyle: 'none',\n    margin: 0,\n    minHeight: 0,\n    minWidth: 0,\n    padding: 0,\n    position: 'relative',\n    textDecoration: 'none',\n    zIndex: 0\n  },\n  inline: {\n    display: 'inline-flex'\n  }\n});\nexport default View;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use client';\n\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"hrefAttrs\", \"numberOfLines\", \"onClick\", \"onLayout\", \"onPress\", \"onMoveShouldSetResponder\", \"onMoveShouldSetResponderCapture\", \"onResponderEnd\", \"onResponderGrant\", \"onResponderMove\", \"onResponderReject\", \"onResponderRelease\", \"onResponderStart\", \"onResponderTerminate\", \"onResponderTerminationRequest\", \"onScrollShouldSetResponder\", \"onScrollShouldSetResponderCapture\", \"onSelectionChangeShouldSetResponder\", \"onSelectionChangeShouldSetResponderCapture\", \"onStartShouldSetResponder\", \"onStartShouldSetResponderCapture\", \"selectable\"];\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\nimport { useLocaleContext, getLocaleDirection } from '../../modules/useLocale';\n//import { warnOnce } from '../../modules/warnOnce';\n\nvar forwardPropsList = Object.assign({}, forwardedProps.defaultProps, forwardedProps.accessibilityProps, forwardedProps.clickProps, forwardedProps.focusProps, forwardedProps.keyboardProps, forwardedProps.mouseProps, forwardedProps.touchProps, forwardedProps.styleProps, {\n  href: true,\n  lang: true,\n  pointerEvents: true\n});\nvar pickProps = props => pick(props, forwardPropsList);\nvar Text = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n  var hrefAttrs = props.hrefAttrs,\n    numberOfLines = props.numberOfLines,\n    onClick = props.onClick,\n    onLayout = props.onLayout,\n    onPress = props.onPress,\n    onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n    onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n    onResponderEnd = props.onResponderEnd,\n    onResponderGrant = props.onResponderGrant,\n    onResponderMove = props.onResponderMove,\n    onResponderReject = props.onResponderReject,\n    onResponderRelease = props.onResponderRelease,\n    onResponderStart = props.onResponderStart,\n    onResponderTerminate = props.onResponderTerminate,\n    onResponderTerminationRequest = props.onResponderTerminationRequest,\n    onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n    onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n    onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n    onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n    onStartShouldSetResponder = props.onStartShouldSetResponder,\n    onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n    selectable = props.selectable,\n    rest = _objectWithoutPropertiesLoose(props, _excluded);\n\n  /*\n  if (selectable != null) {\n    warnOnce(\n      'selectable',\n      'selectable prop is deprecated. Use styles.userSelect.'\n    );\n  }\n  */\n\n  var hasTextAncestor = React.useContext(TextAncestorContext);\n  var hostRef = React.useRef(null);\n  var _useLocaleContext = useLocaleContext(),\n    contextDirection = _useLocaleContext.direction;\n  useElementLayout(hostRef, onLayout);\n  useResponderEvents(hostRef, {\n    onMoveShouldSetResponder,\n    onMoveShouldSetResponderCapture,\n    onResponderEnd,\n    onResponderGrant,\n    onResponderMove,\n    onResponderReject,\n    onResponderRelease,\n    onResponderStart,\n    onResponderTerminate,\n    onResponderTerminationRequest,\n    onScrollShouldSetResponder,\n    onScrollShouldSetResponderCapture,\n    onSelectionChangeShouldSetResponder,\n    onSelectionChangeShouldSetResponderCapture,\n    onStartShouldSetResponder,\n    onStartShouldSetResponderCapture\n  });\n  var handleClick = React.useCallback(e => {\n    if (onClick != null) {\n      onClick(e);\n    } else if (onPress != null) {\n      e.stopPropagation();\n      onPress(e);\n    }\n  }, [onClick, onPress]);\n  var component = hasTextAncestor ? 'span' : 'div';\n  var langDirection = props.lang != null ? getLocaleDirection(props.lang) : null;\n  var componentDirection = props.dir || langDirection;\n  var writingDirection = componentDirection || contextDirection;\n  var supportedProps = pickProps(rest);\n  supportedProps.dir = componentDirection;\n  // 'auto' by default allows browsers to infer writing direction (root elements only)\n  if (!hasTextAncestor) {\n    supportedProps.dir = componentDirection != null ? componentDirection : 'auto';\n  }\n  if (onClick || onPress) {\n    supportedProps.onClick = handleClick;\n  }\n  supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {\n    WebkitLineClamp: numberOfLines\n  }, hasTextAncestor === true ? styles.textHasAncestor$raw : styles.text$raw, numberOfLines === 1 && styles.textOneLine, numberOfLines != null && numberOfLines > 1 && styles.textMultiLine, props.style, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n  if (props.href != null) {\n    component = 'a';\n    if (hrefAttrs != null) {\n      var download = hrefAttrs.download,\n        rel = hrefAttrs.rel,\n        target = hrefAttrs.target;\n      if (download != null) {\n        supportedProps.download = download;\n      }\n      if (rel != null) {\n        supportedProps.rel = rel;\n      }\n      if (typeof target === 'string') {\n        supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n      }\n    }\n  }\n  var platformMethodsRef = usePlatformMethods(supportedProps);\n  var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n  supportedProps.ref = setRef;\n  var element = createElement(component, supportedProps, {\n    writingDirection\n  });\n  return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n    value: true\n  }, element);\n});\nText.displayName = 'Text';\nvar textStyle = {\n  backgroundColor: 'transparent',\n  border: '0 solid black',\n  boxSizing: 'border-box',\n  color: 'black',\n  display: 'inline',\n  font: '14px System',\n  listStyle: 'none',\n  margin: 0,\n  padding: 0,\n  position: 'relative',\n  textAlign: 'start',\n  textDecoration: 'none',\n  whiteSpace: 'pre-wrap',\n  wordWrap: 'break-word'\n};\nvar styles = StyleSheet.create({\n  text$raw: textStyle,\n  textHasAncestor$raw: _objectSpread(_objectSpread({}, textStyle), {}, {\n    color: 'inherit',\n    font: 'inherit',\n    textAlign: 'inherit',\n    whiteSpace: 'inherit'\n  }),\n  textOneLine: {\n    maxWidth: '100%',\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap',\n    wordWrap: 'normal'\n  },\n  // See #13\n  textMultiLine: {\n    display: '-webkit-box',\n    maxWidth: '100%',\n    overflow: 'clip',\n    textOverflow: 'ellipsis',\n    WebkitBoxOrient: 'vertical'\n  },\n  notSelectable: {\n    userSelect: 'none'\n  },\n  selectable: {\n    userSelect: 'text'\n  },\n  pressable: {\n    cursor: 'pointer'\n  }\n});\nexport default Text;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use client';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"];\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar createSvgCircle = style => /*#__PURE__*/React.createElement(\"circle\", {\n  cx: \"16\",\n  cy: \"16\",\n  fill: \"none\",\n  r: \"14\",\n  strokeWidth: \"4\",\n  style: style\n});\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n  var _props$animating = props.animating,\n    animating = _props$animating === void 0 ? true : _props$animating,\n    _props$color = props.color,\n    color = _props$color === void 0 ? '#1976D2' : _props$color,\n    _props$hidesWhenStopp = props.hidesWhenStopped,\n    hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n    _props$size = props.size,\n    size = _props$size === void 0 ? 'small' : _props$size,\n    style = props.style,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  var svg = /*#__PURE__*/React.createElement(\"svg\", {\n    height: \"100%\",\n    viewBox: \"0 0 32 32\",\n    width: \"100%\"\n  }, createSvgCircle({\n    stroke: color,\n    opacity: 0.2\n  }), createSvgCircle({\n    stroke: color,\n    strokeDasharray: 80,\n    strokeDashoffset: 60\n  }));\n  return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n    \"aria-valuemax\": 1,\n    \"aria-valuemin\": 0,\n    ref: forwardedRef,\n    role: \"progressbar\",\n    style: [styles.container, style]\n  }), /*#__PURE__*/React.createElement(View, {\n    children: svg,\n    style: [typeof size === 'number' ? {\n      height: size,\n      width: size\n    } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n  }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n  container: {\n    alignItems: 'center',\n    justifyContent: 'center'\n  },\n  hidesWhenStopped: {\n    visibility: 'hidden'\n  },\n  animation: {\n    animationDuration: '0.75s',\n    animationKeyframes: [{\n      '0%': {\n        transform: 'rotate(0deg)'\n      },\n      '100%': {\n        transform: 'rotate(360deg)'\n      }\n    }],\n    animationTimingFunction: 'linear',\n    animationIterationCount: 'infinite'\n  },\n  animationPause: {\n    animationPlayState: 'paused'\n  }\n});\nvar indicatorSizes = StyleSheet.create({\n  small: {\n    width: 20,\n    height: 20\n  },\n  large: {\n    width: 36,\n    height: 36\n  }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n  NOT_RESPONDER: {\n    DELAY: ERROR,\n    RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n    RESPONDER_RELEASE: ERROR,\n    RESPONDER_TERMINATED: ERROR,\n    LONG_PRESS_DETECTED: ERROR\n  },\n  RESPONDER_INACTIVE_PRESS_START: {\n    DELAY: RESPONDER_ACTIVE_PRESS_START,\n    RESPONDER_GRANT: ERROR,\n    RESPONDER_RELEASE: NOT_RESPONDER,\n    RESPONDER_TERMINATED: NOT_RESPONDER,\n    LONG_PRESS_DETECTED: ERROR\n  },\n  RESPONDER_ACTIVE_PRESS_START: {\n    DELAY: ERROR,\n    RESPONDER_GRANT: ERROR,\n    RESPONDER_RELEASE: NOT_RESPONDER,\n    RESPONDER_TERMINATED: NOT_RESPONDER,\n    LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n  },\n  RESPONDER_ACTIVE_LONG_PRESS_START: {\n    DELAY: ERROR,\n    RESPONDER_GRANT: ERROR,\n    RESPONDER_RELEASE: NOT_RESPONDER,\n    RESPONDER_TERMINATED: NOT_RESPONDER,\n    LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n  },\n  ERROR: {\n    DELAY: NOT_RESPONDER,\n    RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n    RESPONDER_RELEASE: NOT_RESPONDER,\n    RESPONDER_TERMINATED: NOT_RESPONDER,\n    LONG_PRESS_DETECTED: NOT_RESPONDER\n  }\n});\nvar getElementRole = element => element.getAttribute('role');\nvar getElementType = element => element.tagName.toLowerCase();\nvar isActiveSignal = signal => signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isButtonRole = element => getElementRole(element) === 'button';\nvar isPressStartSignal = signal => signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\nvar isTerminalSignal = signal => signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\nvar isValidKeyPress = event => {\n  var key = event.key,\n    target = event.target;\n  var isSpacebar = key === ' ' || key === 'Spacebar';\n  var isButtonish = getElementType(target) === 'button' || isButtonRole(target);\n  return key === 'Enter' || isSpacebar && isButtonish;\n};\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\nvar DEFAULT_PRESS_DELAY_MS = 50;\n\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n *   while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n *     const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n *    element, spread `pressability.getEventHandlers()` into its props.\n *\n *    return (\n *      <View {...this.state.pressResponder.getEventHandlers()} />\n *    );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n *    componentWillUnmount() {\n *      this.state.pressResponder.reset();\n *    }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n *  ┌────────────────────────┐\n *  │  ┌──────────────────┐  │ - Presses start anywhere within `HitRect`.\n *  │  │  ┌────────────┐  │  │\n *  │  │  │ VisualRect │  │  │\n *  │  │  └────────────┘  │  │ - When pressed down for sufficient amount of time\n *  │  │    HitRect       │  │   before letting up, `VisualRect` activates.\n *  │  └──────────────────┘  │\n *  │       Out Region   o   │\n *  └────────────────────│───┘\n *                       └────── When the press is released outside the `HitRect`,\n *                               the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n *     │\n *     │ RESPONDER_GRANT (HitRect)\n *     │\n *     ▼\n * ┌─────────────────────┐          ┌───────────────────┐              ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │  DELAY   │ RESPONDER_ACTIVE_ │  T + DELAY   │ RESPONDER_ACTIVE_ │\n * │ PRESS_START         ├────────▶ │ PRESS_START       ├────────────▶ │ LONG_PRESS_START  │\n * └─────────────────────┘          └───────────────────┘              └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\nexport default class PressResponder {\n  constructor(config) {\n    this._eventHandlers = null;\n    this._isPointerTouch = false;\n    this._longPressDelayTimeout = null;\n    this._longPressDispatched = false;\n    this._pressDelayTimeout = null;\n    this._pressOutDelayTimeout = null;\n    this._touchState = NOT_RESPONDER;\n    this._responderElement = null;\n    this.configure(config);\n  }\n  configure(config) {\n    this._config = config;\n  }\n\n  /**\n   * Resets any pending timers. This should be called on unmount.\n   */\n  reset() {\n    this._cancelLongPressDelayTimeout();\n    this._cancelPressDelayTimeout();\n    this._cancelPressOutDelayTimeout();\n  }\n\n  /**\n   * Returns a set of props to spread into the interactive element.\n   */\n  getEventHandlers() {\n    if (this._eventHandlers == null) {\n      this._eventHandlers = this._createEventHandlers();\n    }\n    return this._eventHandlers;\n  }\n  _createEventHandlers() {\n    var start = (event, shouldDelay) => {\n      event.persist();\n      this._cancelPressOutDelayTimeout();\n      this._longPressDispatched = false;\n      this._selectionTerminated = false;\n      this._touchState = NOT_RESPONDER;\n      this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n      this._receiveSignal(RESPONDER_GRANT, event);\n      var delayPressStart = normalizeDelay(this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n      if (shouldDelay !== false && delayPressStart > 0) {\n        this._pressDelayTimeout = setTimeout(() => {\n          this._receiveSignal(DELAY, event);\n        }, delayPressStart);\n      } else {\n        this._receiveSignal(DELAY, event);\n      }\n      var delayLongPress = normalizeDelay(this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n      this._longPressDelayTimeout = setTimeout(() => {\n        this._handleLongPress(event);\n      }, delayLongPress + delayPressStart);\n    };\n    var end = event => {\n      this._receiveSignal(RESPONDER_RELEASE, event);\n    };\n    var keyupHandler = event => {\n      var onPress = this._config.onPress;\n      var target = event.target;\n      if (this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n        end(event);\n        document.removeEventListener('keyup', keyupHandler);\n        var role = target.getAttribute('role');\n        var elementType = getElementType(target);\n        var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n        var isActiveElement = this._responderElement === target;\n        if (onPress != null && !isNativeInteractiveElement && isActiveElement) {\n          onPress(event);\n        }\n        this._responderElement = null;\n      }\n    };\n    return {\n      onStartShouldSetResponder: event => {\n        var disabled = this._config.disabled;\n        if (disabled && isButtonRole(event.currentTarget)) {\n          event.stopPropagation();\n        }\n        if (disabled == null) {\n          return true;\n        }\n        return !disabled;\n      },\n      onKeyDown: event => {\n        var disabled = this._config.disabled;\n        var key = event.key,\n          target = event.target;\n        if (!disabled && isValidKeyPress(event)) {\n          if (this._touchState === NOT_RESPONDER) {\n            start(event, false);\n            this._responderElement = target;\n            // Listen to 'keyup' on document to account for situations where\n            // focus is moved to another element during 'keydown'.\n            document.addEventListener('keyup', keyupHandler);\n          }\n          var isSpacebarKey = key === ' ' || key === 'Spacebar';\n          var role = getElementRole(target);\n          var isButtonLikeRole = role === 'button' || role === 'menuitem';\n          if (isSpacebarKey && isButtonLikeRole && getElementType(target) !== 'button') {\n            // Prevent spacebar scrolling the window if using non-native button\n            event.preventDefault();\n          }\n          event.stopPropagation();\n        }\n      },\n      onResponderGrant: event => start(event),\n      onResponderMove: event => {\n        if (this._config.onPressMove != null) {\n          this._config.onPressMove(event);\n        }\n        var touch = getTouchFromResponderEvent(event);\n        if (this._touchActivatePosition != null) {\n          var deltaX = this._touchActivatePosition.pageX - touch.pageX;\n          var deltaY = this._touchActivatePosition.pageY - touch.pageY;\n          if (Math.hypot(deltaX, deltaY) > 10) {\n            this._cancelLongPressDelayTimeout();\n          }\n        }\n      },\n      onResponderRelease: event => end(event),\n      onResponderTerminate: event => {\n        if (event.nativeEvent.type === 'selectionchange') {\n          this._selectionTerminated = true;\n        }\n        this._receiveSignal(RESPONDER_TERMINATED, event);\n      },\n      onResponderTerminationRequest: event => {\n        var _this$_config = this._config,\n          cancelable = _this$_config.cancelable,\n          disabled = _this$_config.disabled,\n          onLongPress = _this$_config.onLongPress;\n        // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n        // behavior will be prevented for non-mouse pointers.\n        if (!disabled && onLongPress != null && this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n          return false;\n        }\n        if (cancelable == null) {\n          return true;\n        }\n        return cancelable;\n      },\n      // NOTE: this diverges from react-native in 3 significant ways:\n      // * The `onPress` callback is not connected to the responder system (the native\n      //  `click` event must be used but is dispatched in many scenarios where no pointers\n      //   are on the screen.) Therefore, it's possible for `onPress` to be called without\n      //   `onPress{Start,End}` being called first.\n      // * The `onPress` callback is only be called on the first ancestor of the native\n      //   `click` target that is using the PressResponder.\n      // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n      onClick: event => {\n        var _this$_config2 = this._config,\n          disabled = _this$_config2.disabled,\n          onPress = _this$_config2.onPress;\n        if (!disabled) {\n          // If long press dispatched, cancel default click behavior.\n          // If the responder terminated because text was selected during the gesture,\n          // cancel the default click behavior.\n          event.stopPropagation();\n          if (this._longPressDispatched || this._selectionTerminated) {\n            event.preventDefault();\n          } else if (onPress != null && event.altKey === false) {\n            onPress(event);\n          }\n        } else {\n          if (isButtonRole(event.currentTarget)) {\n            event.stopPropagation();\n          }\n        }\n      },\n      // If `onLongPress` is provided and a touch pointer is being used, prevent the\n      // default context menu from opening.\n      onContextMenu: event => {\n        var _this$_config3 = this._config,\n          disabled = _this$_config3.disabled,\n          onLongPress = _this$_config3.onLongPress;\n        if (!disabled) {\n          if (onLongPress != null && this._isPointerTouch && !event.defaultPrevented) {\n            event.preventDefault();\n            event.stopPropagation();\n          }\n        } else {\n          if (isButtonRole(event.currentTarget)) {\n            event.stopPropagation();\n          }\n        }\n      }\n    };\n  }\n\n  /**\n   * Receives a state machine signal, performs side effects of the transition\n   * and stores the new state. Validates the transition as well.\n   */\n  _receiveSignal(signal, event) {\n    var prevState = this._touchState;\n    var nextState = null;\n    if (Transitions[prevState] != null) {\n      nextState = Transitions[prevState][signal];\n    }\n    if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n      return;\n    }\n    if (nextState == null || nextState === ERROR) {\n      console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n    } else if (prevState !== nextState) {\n      this._performTransitionSideEffects(prevState, nextState, signal, event);\n      this._touchState = nextState;\n    }\n  }\n\n  /**\n   * Performs a transition between touchable states and identify any activations\n   * or deactivations (and callback invocations).\n   */\n  _performTransitionSideEffects(prevState, nextState, signal, event) {\n    if (isTerminalSignal(signal)) {\n      // Pressable suppression of contextmenu on windows.\n      // On Windows, the contextmenu is displayed after pointerup.\n      // https://github.com/necolas/react-native-web/issues/2296\n      setTimeout(() => {\n        this._isPointerTouch = false;\n      }, 0);\n      this._touchActivatePosition = null;\n      this._cancelLongPressDelayTimeout();\n    }\n    if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n      var onLongPress = this._config.onLongPress;\n      // Long press is not supported for keyboards because 'click' can be dispatched\n      // immediately (and multiple times) after 'keydown'.\n      if (onLongPress != null && event.nativeEvent.key == null) {\n        onLongPress(event);\n        this._longPressDispatched = true;\n      }\n    }\n    var isPrevActive = isActiveSignal(prevState);\n    var isNextActive = isActiveSignal(nextState);\n    if (!isPrevActive && isNextActive) {\n      this._activate(event);\n    } else if (isPrevActive && !isNextActive) {\n      this._deactivate(event);\n    }\n    if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n      var _this$_config4 = this._config,\n        _onLongPress = _this$_config4.onLongPress,\n        onPress = _this$_config4.onPress;\n      if (onPress != null) {\n        var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n        if (!isPressCanceledByLongPress) {\n          // If we never activated (due to delays), activate and deactivate now.\n          if (!isNextActive && !isPrevActive) {\n            this._activate(event);\n            this._deactivate(event);\n          }\n        }\n      }\n    }\n    this._cancelPressDelayTimeout();\n  }\n  _activate(event) {\n    var _this$_config5 = this._config,\n      onPressChange = _this$_config5.onPressChange,\n      onPressStart = _this$_config5.onPressStart;\n    var touch = getTouchFromResponderEvent(event);\n    this._touchActivatePosition = {\n      pageX: touch.pageX,\n      pageY: touch.pageY\n    };\n    if (onPressStart != null) {\n      onPressStart(event);\n    }\n    if (onPressChange != null) {\n      onPressChange(true);\n    }\n  }\n  _deactivate(event) {\n    var _this$_config6 = this._config,\n      onPressChange = _this$_config6.onPressChange,\n      onPressEnd = _this$_config6.onPressEnd;\n    function end() {\n      if (onPressEnd != null) {\n        onPressEnd(event);\n      }\n      if (onPressChange != null) {\n        onPressChange(false);\n      }\n    }\n    var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n    if (delayPressEnd > 0) {\n      this._pressOutDelayTimeout = setTimeout(() => {\n        end();\n      }, delayPressEnd);\n    } else {\n      end();\n    }\n  }\n  _handleLongPress(event) {\n    if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n      this._receiveSignal(LONG_PRESS_DETECTED, event);\n    }\n  }\n  _cancelLongPressDelayTimeout() {\n    if (this._longPressDelayTimeout != null) {\n      clearTimeout(this._longPressDelayTimeout);\n      this._longPressDelayTimeout = null;\n    }\n  }\n  _cancelPressDelayTimeout() {\n    if (this._pressDelayTimeout != null) {\n      clearTimeout(this._pressDelayTimeout);\n      this._pressDelayTimeout = null;\n    }\n  }\n  _cancelPressOutDelayTimeout() {\n    if (this._pressOutDelayTimeout != null) {\n      clearTimeout(this._pressOutDelayTimeout);\n      this._pressOutDelayTimeout = null;\n    }\n  }\n}\nfunction normalizeDelay(delay, min, fallback) {\n  if (min === void 0) {\n    min = 0;\n  }\n  if (fallback === void 0) {\n    fallback = 0;\n  }\n  return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\nfunction getTouchFromResponderEvent(event) {\n  var _event$nativeEvent = event.nativeEvent,\n    changedTouches = _event$nativeEvent.changedTouches,\n    touches = _event$nativeEvent.touches;\n  if (touches != null && touches.length > 0) {\n    return touches[0];\n  }\n  if (changedTouches != null && changedTouches.length > 0) {\n    return changedTouches[0];\n  }\n  return event.nativeEvent;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n  var pressResponderRef = useRef(null);\n  if (pressResponderRef.current == null) {\n    pressResponderRef.current = new PressResponder(config);\n  }\n  var pressResponder = pressResponderRef.current;\n\n  // Re-configure to use the current node and configuration.\n  useEffect(() => {\n    pressResponder.configure(config);\n  }, [config, pressResponder]);\n\n  // Reset the `pressResponder` when cleanup needs to occur. This is\n  // a separate effect because we do not want to rest the responder when `config` changes.\n  useEffect(() => {\n    return () => {\n      pressResponder.reset();\n    };\n  }, [pressResponder]);\n  useDebugValue(config);\n  return pressResponder.getEventHandlers();\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use strict';\n\nimport canUseDOM from '../canUseDom';\nvar emptyFunction = () => {};\nfunction supportsPassiveEvents() {\n  var supported = false;\n  // Check if browser supports event with passive listeners\n  // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n  if (canUseDOM) {\n    try {\n      var options = {};\n      Object.defineProperty(options, 'passive', {\n        get() {\n          supported = true;\n          return false;\n        }\n      });\n      window.addEventListener('test', null, options);\n      window.removeEventListener('test', null, options);\n    } catch (e) {}\n  }\n  return supported;\n}\nvar canUsePassiveEvents = supportsPassiveEvents();\nfunction getOptions(options) {\n  if (options == null) {\n    return false;\n  }\n  return canUsePassiveEvents ? options : Boolean(options.capture);\n}\n\n/**\n * Shim generic API compatibility with ReactDOM's synthetic events, without needing the\n * large amount of code ReactDOM uses to do this. Ideally we wouldn't use a synthetic\n * event wrapper at all.\n */\nfunction isPropagationStopped() {\n  return this.cancelBubble;\n}\nfunction isDefaultPrevented() {\n  return this.defaultPrevented;\n}\nfunction normalizeEvent(event) {\n  event.nativeEvent = event;\n  event.persist = emptyFunction;\n  event.isDefaultPrevented = isDefaultPrevented;\n  event.isPropagationStopped = isPropagationStopped;\n  return event;\n}\n\n/**\n *\n */\nexport function addEventListener(target, type, listener, options) {\n  var opts = getOptions(options);\n  var compatListener = e => listener(normalizeEvent(e));\n  target.addEventListener(type, compatListener, opts);\n  return function removeEventListener() {\n    if (target != null) {\n      target.removeEventListener(type, compatListener, opts);\n    }\n  };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { addEventListener } from '../addEventListener';\nimport canUseDOM from '../canUseDom';\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\nvar activeModality = 'keyboard';\nvar modality = 'keyboard';\nvar previousModality;\nvar previousActiveModality;\nvar isEmulatingMouseEvents = false;\nvar listeners = new Set();\nvar KEYBOARD = 'keyboard';\nvar MOUSE = 'mouse';\nvar TOUCH = 'touch';\nvar BLUR = 'blur';\nvar CONTEXTMENU = 'contextmenu';\nvar FOCUS = 'focus';\nvar KEYDOWN = 'keydown';\nvar MOUSEDOWN = 'mousedown';\nvar MOUSEMOVE = 'mousemove';\nvar MOUSEUP = 'mouseup';\nvar POINTERDOWN = 'pointerdown';\nvar POINTERMOVE = 'pointermove';\nvar SCROLL = 'scroll';\nvar SELECTIONCHANGE = 'selectionchange';\nvar TOUCHCANCEL = 'touchcancel';\nvar TOUCHMOVE = 'touchmove';\nvar TOUCHSTART = 'touchstart';\nvar VISIBILITYCHANGE = 'visibilitychange';\nvar bubbleOptions = {\n  passive: true\n};\nvar captureOptions = {\n  capture: true,\n  passive: true\n};\nfunction restoreModality() {\n  if (previousModality != null || previousActiveModality != null) {\n    if (previousModality != null) {\n      modality = previousModality;\n      previousModality = null;\n    }\n    if (previousActiveModality != null) {\n      activeModality = previousActiveModality;\n      previousActiveModality = null;\n    }\n    callListeners();\n  }\n}\nfunction onBlurWindow() {\n  previousModality = modality;\n  previousActiveModality = activeModality;\n  activeModality = KEYBOARD;\n  modality = KEYBOARD;\n  callListeners();\n  // for fallback events\n  isEmulatingMouseEvents = false;\n}\nfunction onFocusWindow() {\n  restoreModality();\n}\nfunction onKeyDown(event) {\n  if (event.metaKey || event.altKey || event.ctrlKey) {\n    return;\n  }\n  if (modality !== KEYBOARD) {\n    modality = KEYBOARD;\n    activeModality = KEYBOARD;\n    callListeners();\n  }\n}\nfunction onVisibilityChange() {\n  if (document.visibilityState !== 'hidden') {\n    restoreModality();\n  }\n}\nfunction onPointerish(event) {\n  var eventType = event.type;\n  if (supportsPointerEvent()) {\n    if (eventType === POINTERDOWN) {\n      if (activeModality !== event.pointerType) {\n        modality = event.pointerType;\n        activeModality = event.pointerType;\n        callListeners();\n      }\n      return;\n    }\n    if (eventType === POINTERMOVE) {\n      if (modality !== event.pointerType) {\n        modality = event.pointerType;\n        callListeners();\n      }\n      return;\n    }\n  }\n  // Fallback for non-PointerEvent environment\n  else {\n    if (!isEmulatingMouseEvents) {\n      if (eventType === MOUSEDOWN) {\n        if (activeModality !== MOUSE) {\n          modality = MOUSE;\n          activeModality = MOUSE;\n          callListeners();\n        }\n      }\n      if (eventType === MOUSEMOVE) {\n        if (modality !== MOUSE) {\n          modality = MOUSE;\n          callListeners();\n        }\n      }\n    }\n\n    // Flag when browser may produce emulated events\n    if (eventType === TOUCHSTART) {\n      isEmulatingMouseEvents = true;\n      if (event.touches && event.touches.length > 1) {\n        isEmulatingMouseEvents = false;\n      }\n      if (activeModality !== TOUCH) {\n        modality = TOUCH;\n        activeModality = TOUCH;\n        callListeners();\n      }\n      return;\n    }\n\n    // Remove flag after emulated events are finished or cancelled, and if an\n    // event occurs that cuts short a touch event sequence.\n    if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {\n      isEmulatingMouseEvents = false;\n    }\n  }\n}\nif (canUseDOM) {\n  // Window events\n  addEventListener(window, BLUR, onBlurWindow, bubbleOptions);\n  addEventListener(window, FOCUS, onFocusWindow, bubbleOptions);\n  // Must be capture phase because 'stopPropagation' might prevent these\n  // events bubbling to the document.\n  addEventListener(document, KEYDOWN, onKeyDown, captureOptions);\n  addEventListener(document, VISIBILITYCHANGE, onVisibilityChange, captureOptions);\n  addEventListener(document, POINTERDOWN, onPointerish, captureOptions);\n  addEventListener(document, POINTERMOVE, onPointerish, captureOptions);\n  // Fallback events\n  addEventListener(document, CONTEXTMENU, onPointerish, captureOptions);\n  addEventListener(document, MOUSEDOWN, onPointerish, captureOptions);\n  addEventListener(document, MOUSEMOVE, onPointerish, captureOptions);\n  addEventListener(document, MOUSEUP, onPointerish, captureOptions);\n  addEventListener(document, TOUCHCANCEL, onPointerish, captureOptions);\n  addEventListener(document, TOUCHMOVE, onPointerish, captureOptions);\n  addEventListener(document, TOUCHSTART, onPointerish, captureOptions);\n  addEventListener(document, SELECTIONCHANGE, onPointerish, captureOptions);\n  addEventListener(document, SCROLL, onPointerish, captureOptions);\n}\nfunction callListeners() {\n  var value = {\n    activeModality,\n    modality\n  };\n  listeners.forEach(listener => {\n    listener(value);\n  });\n}\nexport function getActiveModality() {\n  return activeModality;\n}\nexport function getModality() {\n  return modality;\n}\nexport function addModalityListener(listener) {\n  listeners.add(listener);\n  return () => {\n    listeners.delete(listener);\n  };\n}\nexport function testOnly_resetActiveModality() {\n  isEmulatingMouseEvents = false;\n  activeModality = KEYBOARD;\n  modality = KEYBOARD;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { addEventListener } from '../addEventListener';\nimport useLayoutEffect from '../useLayoutEffect';\nimport useStable from '../useStable';\n/**\n * This can be used with any event type include custom events.\n *\n * const click = useEvent('click', options);\n * useEffect(() => {\n *   click.setListener(target, onClick);\n *   return () => click.clear();\n * }).\n */\nexport default function useEvent(eventType, options) {\n  var targetListeners = useStable(() => new Map());\n  var addListener = useStable(() => {\n    return (target, callback) => {\n      var removeTargetListener = targetListeners.get(target);\n      if (removeTargetListener != null) {\n        removeTargetListener();\n      }\n      if (callback == null) {\n        targetListeners.delete(target);\n        callback = () => {};\n      }\n      var removeEventListener = addEventListener(target, eventType, callback, options);\n      targetListeners.set(target, removeEventListener);\n      return removeEventListener;\n    };\n  });\n  useLayoutEffect(() => {\n    return () => {\n      targetListeners.forEach(removeListener => {\n        removeListener();\n      });\n      targetListeners.clear();\n    };\n  }, [targetListeners]);\n  return addListener;\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nimport { getModality } from '../modality';\nimport useEvent from '../useEvent';\nimport useLayoutEffect from '../useLayoutEffect';\n\n/**\n * Types\n */\n\n/**\n * Implementation\n */\n\nvar emptyObject = {};\nvar opts = {\n  passive: true\n};\nvar lockEventType = 'react-gui:hover:lock';\nvar unlockEventType = 'react-gui:hover:unlock';\nvar supportsPointerEvent = () => !!(typeof window !== 'undefined' && window.PointerEvent != null);\nfunction dispatchCustomEvent(target, type, payload) {\n  var event = document.createEvent('CustomEvent');\n  var _ref = payload || emptyObject,\n    _ref$bubbles = _ref.bubbles,\n    bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles,\n    _ref$cancelable = _ref.cancelable,\n    cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable,\n    detail = _ref.detail;\n  event.initCustomEvent(type, bubbles, cancelable, detail);\n  target.dispatchEvent(event);\n}\n\n// This accounts for the non-PointerEvent fallback events.\nfunction getPointerType(event) {\n  var pointerType = event.pointerType;\n  return pointerType != null ? pointerType : getModality();\n}\nexport default function useHover(targetRef, config) {\n  var contain = config.contain,\n    disabled = config.disabled,\n    onHoverStart = config.onHoverStart,\n    onHoverChange = config.onHoverChange,\n    onHoverUpdate = config.onHoverUpdate,\n    onHoverEnd = config.onHoverEnd;\n  var canUsePE = supportsPointerEvent();\n  var addMoveListener = useEvent(canUsePE ? 'pointermove' : 'mousemove', opts);\n  var addEnterListener = useEvent(canUsePE ? 'pointerenter' : 'mouseenter', opts);\n  var addLeaveListener = useEvent(canUsePE ? 'pointerleave' : 'mouseleave', opts);\n  // These custom events are used to implement the \"contain\" prop.\n  var addLockListener = useEvent(lockEventType, opts);\n  var addUnlockListener = useEvent(unlockEventType, opts);\n  useLayoutEffect(() => {\n    var target = targetRef.current;\n    if (target !== null) {\n      /**\n       * End the hover gesture\n       */\n      var hoverEnd = function hoverEnd(e) {\n        if (onHoverEnd != null) {\n          onHoverEnd(e);\n        }\n        if (onHoverChange != null) {\n          onHoverChange(false);\n        }\n        // Remove the listeners once finished.\n        addMoveListener(target, null);\n        addLeaveListener(target, null);\n      };\n\n      /**\n       * Leave element\n       */\n      var leaveListener = function leaveListener(e) {\n        var target = targetRef.current;\n        if (target != null && getPointerType(e) !== 'touch') {\n          if (contain) {\n            dispatchCustomEvent(target, unlockEventType);\n          }\n          hoverEnd(e);\n        }\n      };\n\n      /**\n       * Move within element\n       */\n      var moveListener = function moveListener(e) {\n        if (getPointerType(e) !== 'touch') {\n          if (onHoverUpdate != null) {\n            // Not all browsers have these properties\n            if (e.x == null) {\n              e.x = e.clientX;\n            }\n            if (e.y == null) {\n              e.y = e.clientY;\n            }\n            onHoverUpdate(e);\n          }\n        }\n      };\n\n      /**\n       * Start the hover gesture\n       */\n      var hoverStart = function hoverStart(e) {\n        if (onHoverStart != null) {\n          onHoverStart(e);\n        }\n        if (onHoverChange != null) {\n          onHoverChange(true);\n        }\n        // Set the listeners needed for the rest of the hover gesture.\n        if (onHoverUpdate != null) {\n          addMoveListener(target, !disabled ? moveListener : null);\n        }\n        addLeaveListener(target, !disabled ? leaveListener : null);\n      };\n\n      /**\n       * Enter element\n       */\n      var enterListener = function enterListener(e) {\n        var target = targetRef.current;\n        if (target != null && getPointerType(e) !== 'touch') {\n          if (contain) {\n            dispatchCustomEvent(target, lockEventType);\n          }\n          hoverStart(e);\n          var lockListener = function lockListener(lockEvent) {\n            if (lockEvent.target !== target) {\n              hoverEnd(e);\n            }\n          };\n          var unlockListener = function unlockListener(lockEvent) {\n            if (lockEvent.target !== target) {\n              hoverStart(e);\n            }\n          };\n          addLockListener(target, !disabled ? lockListener : null);\n          addUnlockListener(target, !disabled ? unlockListener : null);\n        }\n      };\n      addEnterListener(target, !disabled ? enterListener : null);\n    }\n  }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n}","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n'use client';\n\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"tabIndex\", \"testOnly_hovered\", \"testOnly_pressed\"];\nimport * as React from 'react';\nimport { forwardRef, memo, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport useHover from '../../modules/useHover';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\nfunction Pressable(props, forwardedRef) {\n  var children = props.children,\n    delayLongPress = props.delayLongPress,\n    delayPressIn = props.delayPressIn,\n    delayPressOut = props.delayPressOut,\n    disabled = props.disabled,\n    onBlur = props.onBlur,\n    onContextMenu = props.onContextMenu,\n    onFocus = props.onFocus,\n    onHoverIn = props.onHoverIn,\n    onHoverOut = props.onHoverOut,\n    onKeyDown = props.onKeyDown,\n    onLongPress = props.onLongPress,\n    onPress = props.onPress,\n    onPressMove = props.onPressMove,\n    onPressIn = props.onPressIn,\n    onPressOut = props.onPressOut,\n    style = props.style,\n    tabIndex = props.tabIndex,\n    testOnly_hovered = props.testOnly_hovered,\n    testOnly_pressed = props.testOnly_pressed,\n    rest = _objectWithoutPropertiesLoose(props, _excluded);\n  var _useForceableState = useForceableState(testOnly_hovered === true),\n    hovered = _useForceableState[0],\n    setHovered = _useForceableState[1];\n  var _useForceableState2 = useForceableState(false),\n    focused = _useForceableState2[0],\n    setFocused = _useForceableState2[1];\n  var _useForceableState3 = useForceableState(testOnly_pressed === true),\n    pressed = _useForceableState3[0],\n    setPressed = _useForceableState3[1];\n  var hostRef = useRef(null);\n  var setRef = useMergeRefs(forwardedRef, hostRef);\n  var pressConfig = useMemo(() => ({\n    delayLongPress,\n    delayPressStart: delayPressIn,\n    delayPressEnd: delayPressOut,\n    disabled,\n    onLongPress,\n    onPress,\n    onPressChange: setPressed,\n    onPressStart: onPressIn,\n    onPressMove,\n    onPressEnd: onPressOut\n  }), [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n  var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n  var onContextMenuPress = pressEventHandlers.onContextMenu,\n    onKeyDownPress = pressEventHandlers.onKeyDown;\n  useHover(hostRef, {\n    contain: true,\n    disabled,\n    onHoverChange: setHovered,\n    onHoverStart: onHoverIn,\n    onHoverEnd: onHoverOut\n  });\n  var interactionState = {\n    hovered,\n    focused,\n    pressed\n  };\n  var blurHandler = React.useCallback(e => {\n    if (e.nativeEvent.target === hostRef.current) {\n      setFocused(false);\n      if (onBlur != null) {\n        onBlur(e);\n      }\n    }\n  }, [hostRef, setFocused, onBlur]);\n  var focusHandler = React.useCallback(e => {\n    if (e.nativeEvent.target === hostRef.current) {\n      setFocused(true);\n      if (onFocus != null) {\n        onFocus(e);\n      }\n    }\n  }, [hostRef, setFocused, onFocus]);\n  var contextMenuHandler = React.useCallback(e => {\n    if (onContextMenuPress != null) {\n      onContextMenuPress(e);\n    }\n    if (onContextMenu != null) {\n      onContextMenu(e);\n    }\n  }, [onContextMenu, onContextMenuPress]);\n  var keyDownHandler = React.useCallback(e => {\n    if (onKeyDownPress != null) {\n      onKeyDownPress(e);\n    }\n    if (onKeyDown != null) {\n      onKeyDown(e);\n    }\n  }, [onKeyDown, onKeyDownPress]);\n  var _tabIndex;\n  if (tabIndex !== undefined) {\n    _tabIndex = tabIndex;\n  } else {\n    _tabIndex = disabled ? -1 : 0;\n  }\n  return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n    \"aria-disabled\": disabled,\n    onBlur: blurHandler,\n    onContextMenu: contextMenuHandler,\n    onFocus: focusHandler,\n    onKeyDown: keyDownHandler,\n    ref: setRef,\n    style: [disabled ? styles.disabled : styles.active, typeof style === 'function' ? style(interactionState) : style],\n    tabIndex: _tabIndex\n  }), typeof children === 'function' ? children(interactionState) : children);\n}\nfunction useForceableState(forced) {\n  var _useState = useState(false),\n    bool = _useState[0],\n    setBool = _useState[1];\n  return [bool || forced, setBool];\n}\nvar styles = StyleSheet.create({\n  active: {\n    cursor: 'pointer',\n    touchAction: 'manipulation'\n  },\n  disabled: {\n    pointerEvents: 'box-none'\n  }\n});\nvar MemoedPressable = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\nexport default MemoedPressable;","export const colors = {\n  actionBackground: '#FEA715',\n  actionText: '#101820',\n  cardBackgroundDark: '#101820',\n  cardSurface: '#F8F5F1',\n  cardBorder: '#E5E0D8',\n  textMuted: '#D6D6D6',\n  textSubtle: '#F2F4F7',\n  textTimestamp: '#9CA3AF',\n  textError: '#B91C1C',\n  textLabel: '#4B5563',\n  textValue: '#111827',\n  textStatus: '#9A3412',\n  textSubtitle: '#6B7280',\n  textTitle: '#1F2937'\n};\n","import { StyleSheet } from 'react-native';\n\nimport { colors } from '../../colors';\n\nexport const styles = StyleSheet.create({\n  button: {\n    alignItems: 'center',\n    backgroundColor: colors.actionBackground,\n    borderRadius: 8,\n    paddingVertical: 10\n  },\n  buttonPressed: {\n    opacity: 0.8\n  },\n  buttonText: {\n    color: colors.actionText,\n    fontWeight: '600'\n  },\n  card: {\n    backgroundColor: colors.cardBackgroundDark,\n    borderRadius: 12,\n    gap: 8,\n    padding: 16\n  },\n  metaRow: {\n    flexDirection: 'row',\n    justifyContent: 'space-between'\n  },\n  metaText: {\n    color: colors.textMuted,\n    fontSize: 12\n  },\n  subtitle: {\n    color: colors.textSubtle,\n    fontSize: 14\n  },\n  timestamp: {\n    color: colors.textTimestamp,\n    fontSize: 11\n  },\n  title: {\n    color: colors.actionBackground,\n    fontSize: 20,\n    fontWeight: '700'\n  }\n});\n","import { Pressable, Text, View } from 'react-native';\nimport { styles } from './ReactPocCard.styles';\n\ntype ReactPocData = {\n  title?: string;\n  subtitle?: string;\n  branchId?: string;\n  count?: number;\n  updatedAt?: string;\n  onIncrement?: () => void;\n};\n\ntype ReactPocCardProps = {\n  data?: ReactPocData;\n};\n\nexport default function ReactPocCard({ data = {} }: ReactPocCardProps) {\n  const title = data.title ?? 'Expo React POC';\n  const subtitle = data.subtitle ?? 'React Native Web component rendered in Angular';\n  const branchId = data.branchId ?? 'unknown';\n  const count = data.count ?? 0;\n  const updatedAt = data.updatedAt ?? 'n/a';\n\n  return (\n    <View style={styles.card} testID=\"room-layout-map-card\">\n      <Text style={styles.title} testID=\"room-layout-map-title\">\n        {title}\n      </Text>\n      <Text style={styles.subtitle} testID=\"room-layout-map-subtitle\">\n        {subtitle}\n      </Text>\n      <View style={styles.metaRow} testID=\"room-layout-map-meta\">\n        <Text style={styles.metaText} testID=\"room-layout-map-branch\">\n          Branch: {branchId}\n        </Text>\n        <Text style={styles.metaText} testID=\"room-layout-map-count\">\n          Count: {count}\n        </Text>\n      </View>\n      <Pressable\n        onPress={() => {\n          if (data.onIncrement) {\n            data.onIncrement();\n          }\n        }}\n        style={({ pressed }) => [styles.button, pressed && styles.buttonPressed]}\n        testID=\"room-layout-map-increment\"\n      >\n        <Text style={styles.buttonText}>Increment</Text>\n      </Pressable>\n      <Text style={styles.timestamp} testID=\"room-layout-map-updated\">\n        Updated: {updatedAt}\n      </Text>\n    </View>\n  );\n}\n","import { StyleSheet } from 'react-native';\n\nimport { colors } from '../../colors';\n\nexport const styles = StyleSheet.create({\n  card: {\n    backgroundColor: colors.cardSurface,\n    borderColor: colors.cardBorder,\n    borderRadius: 12,\n    borderWidth: 1,\n    gap: 8,\n    padding: 16\n  },\n  error: {\n    color: colors.textError,\n    fontSize: 12\n  },\n  metricLabel: {\n    color: colors.textLabel,\n    fontSize: 12\n  },\n  metricRow: {\n    flexDirection: 'row',\n    justifyContent: 'space-between'\n  },\n  metricValue: {\n    color: colors.textValue,\n    fontWeight: '600'\n  },\n  status: {\n    color: colors.textStatus,\n    fontSize: 12\n  },\n  subtitle: {\n    color: colors.textSubtitle,\n    fontSize: 12\n  },\n  title: {\n    color: colors.textTitle,\n    fontSize: 18,\n    fontWeight: '700'\n  }\n});\n","import { useEffect, useState } from 'react';\n\nconst STUDIO_SPOTS_URL = 'https://mockfast.io/backend/apitemplate/get/46NX13RYMI';\n\ntype BackendSpot = {\n  id?: string;\n  y?: number;\n  x?: number;\n  type?: string;\n  bookable?: boolean;\n};\n\ntype BackendResponse = {\n  id?: string;\n  name?: string;\n  spots?: BackendSpot[];\n};\n\nexport type StudioSpot = {\n  id: string;\n  y: number;\n  x: number;\n  type: string;\n  bookable: boolean;\n};\n\nexport type StudioSpotsData = {\n  id: string;\n  name: string;\n  spots: StudioSpot[];\n};\n\nconst mapSpot = (spot: BackendSpot): StudioSpot => ({\n  id: typeof spot.id === 'string' ? spot.id : 'unknown',\n  y: typeof spot.y === 'number' ? spot.y : 0,\n  x: typeof spot.x === 'number' ? spot.x : 0,\n  type: typeof spot.type === 'string' ? spot.type : 'unknown',\n  bookable: Boolean(spot.bookable)\n});\n\nconst mapResponse = (response: BackendResponse): StudioSpotsData => ({\n  id: typeof response.id === 'string' ? response.id : 'unknown',\n  name: typeof response.name === 'string' ? response.name : 'Unnamed studio',\n  spots: Array.isArray(response.spots) ? response.spots.map(mapSpot) : []\n});\n\nconst isAbortError = (error: unknown): boolean => {\n  if (!error || typeof error !== 'object') {\n    return false;\n  }\n\n  return 'name' in error && (error as { name?: string }).name === 'AbortError';\n};\n\nexport function useStudioSpotsCard() {\n  const [data, setData] = useState<StudioSpotsData | null>(null);\n  const [isLoading, setIsLoading] = useState(false);\n  const [isError, setIsError] = useState(false);\n\n  useEffect(() => {\n    const controller = new AbortController();\n    let isMounted = true;\n\n    const fetchData = async () => {\n      setIsLoading(true);\n      setIsError(false);\n\n      try {\n        const response = await fetch(STUDIO_SPOTS_URL, {\n          signal: controller.signal\n        });\n\n        if (!response.ok) {\n          throw new Error(`Request failed with status ${String(response.status)}`);\n        }\n\n        const raw = (await response.json()) as BackendResponse;\n        const mapped = mapResponse(raw);\n\n        if (isMounted) {\n          setData(mapped);\n        }\n      } catch (error) {\n        if (isMounted && !isAbortError(error)) {\n          setIsError(true);\n        }\n      } finally {\n        if (isMounted) {\n          setIsLoading(false);\n        }\n      }\n    };\n\n    void fetchData();\n\n    return () => {\n      isMounted = false;\n      controller.abort();\n    };\n  }, []);\n\n  return {\n    isError,\n    isLoading,\n    data\n  };\n}\n","import { ActivityIndicator, Text, View } from 'react-native';\nimport { styles } from './StudioSpotsCard.styles';\nimport { useStudioSpotsCard } from './useStudioSpotsCard';\n\nexport default function StudioSpotsCard() {\n  const { data, isLoading, isError } = useStudioSpotsCard();\n  const totalSpots = data ? data.spots.length : 0;\n  const bookableSpots = data ? data.spots.filter((spot) => spot.bookable).length : 0;\n  const firstSpot = data?.spots[0];\n\n  return (\n    <View style={styles.card} testID=\"studio-spots-card\">\n      <Text style={styles.title} testID=\"studio-spots-title\">\n        Studio Spots\n      </Text>\n      <Text style={styles.subtitle} testID=\"studio-spots-subtitle\">\n        Live availability snapshot\n      </Text>\n      {isLoading && (\n        <View testID=\"studio-spots-loading\">\n          <ActivityIndicator />\n        </View>\n      )}\n      {isError && !isLoading && (\n        <Text style={styles.error} testID=\"studio-spots-error\">\n          Failed to load studio data.\n        </Text>\n      )}\n      {!isLoading && !isError && data && (\n        <View testID=\"studio-spots-data\">\n          <Text style={styles.metricLabel} testID=\"studio-spots-name\">\n            {data.name}\n          </Text>\n          <View style={styles.metricRow} testID=\"studio-spots-metrics\">\n            <Text style={styles.metricValue}>Total: {totalSpots}</Text>\n            <Text style={styles.metricValue}>Bookable: {bookableSpots}</Text>\n          </View>\n          {firstSpot && (\n            <Text style={styles.status} testID=\"studio-spots-first\">\n              First spot: {firstSpot.type} ({firstSpot.x},{firstSpot.y})\n            </Text>\n          )}\n        </View>\n      )}\n    </View>\n  );\n}\n","import React from 'react';\nimport * as ReactDOMClient from 'react-dom/client';\nimport ReactPocCard from './components/ReactPocCard';\nimport StudioSpotsCard from './components/StudioSpotsCard';\n\nexport type WebReactRegistry = {\n  ReactPocCard?: typeof ReactPocCard;\n  StudioSpotsCard?: typeof StudioSpotsCard;\n  __React?: typeof React;\n  __ReactDOM?: typeof ReactDOMClient;\n};\n\nexport type WebReactWindow = Omit<Window, 'WebReactComponents'> & {\n  WebReactComponents?: WebReactRegistry;\n};\n\nfunction registerGlobals() {\n  if (typeof window === 'undefined') {\n    return;\n  }\n\n  const webWindow = window as WebReactWindow;\n  const registry: WebReactRegistry = webWindow.WebReactComponents ?? {};\n  webWindow.WebReactComponents = registry;\n  registry.ReactPocCard = ReactPocCard;\n  registry.StudioSpotsCard = StudioSpotsCard;\n  registry.__React = React;\n  registry.__ReactDOM = ReactDOMClient;\n}\n\nregisterGlobals();\n\nexport { ReactPocCard, StudioSpotsCard };\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","jsxRuntimeModule","require$$0","isDisabled","props","accessibilityRoleToWebRole","propsToAriaRole","_ref","accessibilityRole","role","_role","inferredRole","roleComponents","emptyObject","propsToAccessibilityComponent","roleProp","level","AccessibilityUtil","_typeof","o","toPrimitive","t","e","i","toPropertyKey","_defineProperty","ownKeys","r","_objectSpread2","defineProperty","_objectWithoutPropertiesLoose","n","unitlessNumbers","prefixes","prefixKey","prefix","prop","isWebColor","color","normalizeColor","matchers","getMatchers","match","colorFromKeyword","normalizeKeyword","parse255","parse1","hslToRgb","parse360","parsePercentage","hwbToRgb","hue2rgb","p","q","h","s","l","g","b","w","gray","red","green","blue","NUMBER","PERCENTAGE","call","args","callWithSlashSeparator","commaSeparatedCall","cachedMatchers","str","int","num","name","normalizeColors","processColor","int32Color","opacity","colorInt","a","alpha","colorProps","normalizeValueWithProperty","value","property","returnValue","canUseDOM","supportsCSS3TextDecoration","MONOSPACE_FONT_STACK","SYSTEM_FONT_STACK","STYLE_SHORT_FORM_EXPANSIONS","createReactDOMStyle","style","isInline","resolvedStyle","_loop","stack","_value","longFormProperties","longForm","_ret","murmurhash2_32_gc","seed","k","hash","uppercasePattern","msPattern","cache","toHyphenLower","hyphenateStyleName","hName","capitalizeString_1","capitalizeString","prefixProperty_1","prefixProperty","_capitalizeString","_capitalizeString2","_interopRequireDefault","obj","prefixProperties","requiredPrefixes","capitalizedProperty","prefixedProperty","prefixValue_1","prefixValue","plugins","metaData","len","processedValue","addNewValuesOnly_1","addNewValuesOnly","addIfNew","list","values","isObject_1","isObject","createPrefixer_1","_default","createPrefixer","_prefixProperty","_prefixProperty2","_prefixValue","require$$1","_prefixValue2","_addNewValuesOnly","require$$2","_addNewValuesOnly2","_isObject","require$$3","_isObject2","prefixMap","combinedValue","_processedValue","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","iter","arr2","filterUniqueArray","val","index","assignStyle","base","baseValue","DASH","MS","toUpper","camelCaseProperty","camelProp","hyphenateProperty","cssifyDeclaration","cssifyObject","css","RE","isPrefixedProperty","isPrefixedValue","unitlessProperties","prefixedUnitlessProperties","getPrefixedProperty","j","jLen","_property","isUnitlessProperty","unprefixProperty","propertyWithoutPrefix","normalizeProperty","resolveArrayValue","unprefixValue","crossFade_1","crossFade","_cssInJsUtils","CROSS_FADE_REGEX","exports","imageSet_1","imageSet","_isPrefixedValue","_isPrefixedValue2","logical_1","logical","alternativeProps","alternativePropList","position_1","position","sizing_1","sizing","properties","_hyphenateStyleName","_hyphenateStyleName2","transition_1","transition","_hyphenateProperty","_hyphenateProperty2","prefixMapping","propertyPrefixMap","multipleValues","singleValue","dashCaseProperty","pLen","outputValue","webkitOutput","mozOutput","m","wm","wms","wmms","prefixAll","_excluded","classicGroup","atomicGroup","customGroup","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRightColor","borderRightStyle","borderRightWidth","right","marginLeft","marginRight","paddingLeft","paddingRight","left","PROPERTIES_FLIP","PROPERTIES_I18N","PROPERTIES_VALUE","atomic","compiledStyle","compiledRules","atomicCompile","srcProp","valueString","stringifyValueWithProperty","cacheKey","cachedResult","identifier","v","createIdentifier","order","rules","createAtomicRules","orderedRules","localizeableValue","_left","_right","propPolyfill","ltr","rtl","polyfillIndices","ltrPolyfillValues","rtlPolyfillValues","ltrVal","ltrPolyfill","rtlPolyfill","_ltr","_rtl","classic","animationKeyframes","rest","selector","animationName","_processKeyframesValu","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","_objectSpread","inline","originalStyle","isRTL","frozenProps","nextStyle","originalValue","originalProp","originalValues","valuePolyfill","normalizedValue","_processKeyframesValu2","_block","finalValue","_block2","_block3","_block4","_block5","_block6","domStyle","prefixStyles","declarationsString","hashedString","createKeyframes","keyframes","steps","stepName","rule","keyframesValue","_createKeyframes","createCSSStyleSheet","id","rootNode","textContent","root","element","head","slice","createOrderedCSSStyleSheet","sheet","groups","selectors","group","cssRule","cssText","decodeGroupRule","selectorText","getSelectorText","sheetInsert","text","orderedGroups","getOrderedGroups","groupIndex","nextGroupIndex","nextGroup","isInserted","insertRuleAt","groupNumber","previousStart","OrderedCSSStyleSheet","marker","groupValue","markerRule","encodeGroupRule","groupPattern","selectorPattern","defaultId","roots","sheets","initialRules","createSheet","initialSheet","transformLocalizeStyle","localizeStyle","markerProp","compileStyle","compiledStyleIndex","_cachedStyles","_compiledStyle","cachedStyles","defaultOffset","createBoxShadowValue","shadowColor","shadowOffset","shadowOpacity","shadowRadius","height","width","offsetX","offsetY","blurRadius","createTextShadowValue","textShadowColor","textShadowOffset","textShadowRadius","_ref2","radius","mapBoxShadow","boxShadow","spreadDistance","createBoxShadowArrayValue","mapTransform","transform","createTransformValue","createTransformOriginValue","PROPERTIES_STANDARD","ignoredProps","preprocess","options","boxShadowValue","textShadowValue","textShadow","styleq_1","styleq_2","compiledKey","createStyleq","disableCache","disableMix","definedProperties","className","inlineStyle","nextCache","styles","possibleStyle","_i","classNameChunk","cacheEntry","definedPropertiesChunk","weakMap","subStyle","_prop","styleProps","styleq","staticStyleMap","defaultPreprocessOptions","customStyleq","_options","writingDirection","preprocessOptions","insertRules","compiledOrderedRules","compileAndInsertAtomic","_atomic","compileAndInsertReset","_classic","absoluteFillObject","absoluteFill","create","styleObj","compiledStyles","compose","style1","style2","flatten","_len","_key","flatArray","result","getSheet","StyleSheet","stylesheet","hasOwnProperty","isArray","hyphenateString","processIDRefList","idRefList","pointerEventsStyles","createDOMProps","elementType","_props","ariaActiveDescendant","accessibilityActiveDescendant","ariaAtomic","accessibilityAtomic","ariaAutoComplete","accessibilityAutoComplete","ariaBusy","accessibilityBusy","ariaChecked","accessibilityChecked","ariaColumnCount","accessibilityColumnCount","ariaColumnIndex","accessibilityColumnIndex","ariaColumnSpan","accessibilityColumnSpan","ariaControls","accessibilityControls","ariaCurrent","accessibilityCurrent","ariaDescribedBy","accessibilityDescribedBy","ariaDetails","accessibilityDetails","ariaDisabled","accessibilityDisabled","ariaErrorMessage","accessibilityErrorMessage","ariaExpanded","accessibilityExpanded","ariaFlowTo","accessibilityFlowTo","ariaHasPopup","accessibilityHasPopup","ariaHidden","accessibilityHidden","ariaInvalid","accessibilityInvalid","ariaKeyShortcuts","accessibilityKeyShortcuts","ariaLabel","accessibilityLabel","ariaLabelledBy","accessibilityLabelledBy","ariaLevel","accessibilityLevel","ariaLive","accessibilityLiveRegion","ariaModal","accessibilityModal","ariaMultiline","accessibilityMultiline","ariaMultiSelectable","accessibilityMultiSelectable","ariaOrientation","accessibilityOrientation","ariaOwns","accessibilityOwns","ariaPlaceholder","accessibilityPlaceholder","ariaPosInSet","accessibilityPosInSet","ariaPressed","accessibilityPressed","ariaReadOnly","accessibilityReadOnly","ariaRequired","accessibilityRequired","ariaRoleDescription","accessibilityRoleDescription","ariaRowCount","accessibilityRowCount","ariaRowIndex","accessibilityRowIndex","ariaRowSpan","accessibilityRowSpan","ariaSelected","accessibilitySelected","ariaSetSize","accessibilitySetSize","ariaSort","accessibilitySort","ariaValueMax","accessibilityValueMax","ariaValueMin","accessibilityValueMin","ariaValueNow","accessibilityValueNow","ariaValueText","accessibilityValueText","dataSet","focusable","nativeID","pointerEvents","tabIndex","testID","domProps","disabled","_ariaActiveDescendant","_ariaAtomic","_ariaAutoComplete","_ariaBusy","_ariaChecked","_ariaColumnCount","_ariaColumnIndex","_ariaColumnSpan","_ariaControls","_ariaCurrent","_ariaDescribedBy","_ariaDetails","_ariaErrorMessage","_ariaExpanded","_ariaFlowTo","_ariaHasPopup","_ariaHidden","_ariaInvalid","_ariaKeyShortcuts","_ariaLabel","_ariaLabelledBy","_ariaLevel","_ariaLive","_ariaModal","_ariaMultiline","_ariaMultiSelectable","_ariaOrientation","_ariaOwns","_ariaPlaceholder","_ariaPosInSet","_ariaPressed","_ariaReadOnly","_ariaRequired","_ariaRoleDescription","_ariaRowCount","_ariaRowIndex","_ariaRowSpan","_ariaSelected","_ariaSetSize","_ariaSort","_ariaValueMax","_ariaValueMin","_ariaValueNow","_ariaValueText","dataProp","dataName","dataValue","_StyleSheet","_id","rtlScripts","rtlLangs","isLocaleRTL","locale","cachedRTL","script","_unused","lang","_lang","defaultLocale","LocaleContext","createContext","getLocaleDirection","LocaleProvider","direction","children","needsContext","React","useLocaleContext","useContext","createElement","component","accessibilityComponent","Component","elementWithLocaleProvider","getBoundingClientRect","node","isElement","dangerousStyleValue","isCustomProperty","isEmpty","isUnitlessNumber","setValueForStyles","styleName","styleValue","getRect","top","measureLayout","relativeToNativeNode","callback","relativeNode","relativeRect","_getRect","x","y","elementsToIgnore","UIManager","err","_getBoundingClientRec","onFail","onSuccess","onAnimationDidEnd","_extends","defaultProps","accessibilityProps","clickProps","focusProps","keyboardProps","mouseProps","touchProps","pick","nextObj","useLayoutEffectImpl","useLayoutEffect","useEffect","DOM_LAYOUT_HANDLER_NAME","resizeObserver","getResizeObserver","entries","entry","onLayout","event","useElementLayout","ref","observer","mergeRefs","useMergeRefs","UNINITIALIZED","useStable","getInitialValue","usePlatformMethods","hostNode","relativeToNode","success","failure","emptyFunction","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","responderTouchHistoryStore","rect","propagationWasStopped","changedTouches","touches","domEventChangedTouches","domEventType","metaKey","shiftKey","force","clientX","clientY","pageX","pageY","preventDefault","timestamp","normalizeTouches","touch","locationX","locationY","emulatedTouches","responderEvent","MOUSE_DOWN","MOUSE_MOVE","MOUSE_UP","MOUSE_CANCEL","TOUCH_START","TOUCH_MOVE","TOUCH_END","TOUCH_CANCEL","SCROLL","SELECT","SELECTION_CHANGE","isStartish","eventType","isMoveish","isEndish","isCancelish","isScroll","isSelectionChange","isSelectionValid","selection","string","anchorNode","focusNode","isTextNode","keyName","getEventPath","target","composedPathFallback","path","getResponderId","setResponderId","getResponderPaths","idPath","nodePath","eventPath","getLowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","hasTargetTouches","hasValidSelection","isPrimaryPointerDown","altKey","button","buttons","ctrlKey","isTouch","isPrimaryMouseDown","isPrimaryMouseMove","noModifiers","MAX_TOUCH_BANK","timestampForTouch","createTouchRecord","resetTouchRecord","touchRecord","getTouchIdentifier","recordTouchStart","touchHistory","recordTouchMove","printTouch","printTouchBank","recordTouchEnd","touchBank","printed","ResponderTouchHistoryStore","topLevelType","nativeEvent","touchTrackToCheck","startRegistration","moveRegistration","scrollRegistration","shouldSetResponderEvents","emptyResponder","responderListenersMap","isEmulatingMouseEvents","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","eventTarget","isStartEvent","isMoveEvent","isEndEvent","isScrollEvent","isSelectionChangeEvent","eventPaths","wasNegotiated","wantsResponder","currentResponderIdPath","eventIdPath","lowestCommonAncestor","indexOfLowestCommonAncestor","findWantsResponder","attemptTransfer","_currentResponder","_getResponderConfig","onResponderStart","onResponderMove","onResponderEnd","onResponderRelease","onResponderTerminate","onResponderTerminationRequest","isTerminateEvent","isReleaseEvent","shouldTerminate","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","bubbles","check","callbackName","shouldSetCallback","prunedIdPath","_node","_result","_id2","_node2","_currentResponder2","currentId","currentNode","_getResponderConfig2","onResponderGrant","onResponderReject","_getResponderConfig3","allowTransfer","documentEventsCapturePhase","documentEventsBubblePhase","attachListeners","addNode","removeNode","terminateResponder","_currentResponder3","_getResponderConfig4","getResponderNode","idCounter","useResponderEvents","hostRef","isAttachedRef","ResponderSystem.attachListeners","ResponderSystem.removeNode","_config","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","requiresResponderSystem","ResponderSystem.addNode","ResponderSystem.getResponderNode","TextAncestorContext","forwardPropsList","forwardedProps.defaultProps","forwardedProps.accessibilityProps","forwardedProps.clickProps","forwardedProps.focusProps","forwardedProps.keyboardProps","forwardedProps.mouseProps","forwardedProps.touchProps","forwardedProps.styleProps","pickProps","View","forwardedRef","hrefAttrs","hasTextAncestor","_useLocaleContext","contextDirection","langDirection","componentDirection","supportedProps","download","rel","platformMethodsRef","setRef","Text","numberOfLines","onClick","onPress","selectable","handleClick","textStyle","createSvgCircle","ActivityIndicator","_props$animating","animating","_props$color","_props$hidesWhenStopp","hidesWhenStopped","_props$size","size","other","svg","indicatorSizes","DELAY","ERROR","LONG_PRESS_DETECTED","NOT_RESPONDER","RESPONDER_ACTIVE_LONG_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_INACTIVE_PRESS_START","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","Transitions","getElementRole","getElementType","isActiveSignal","signal","isButtonRole","isPressStartSignal","isTerminalSignal","isValidKeyPress","isSpacebar","isButtonish","DEFAULT_LONG_PRESS_DELAY_MS","DEFAULT_PRESS_DELAY_MS","PressResponder","start","shouldDelay","delayPressStart","normalizeDelay","delayLongPress","end","keyupHandler","isNativeInteractiveElement","isActiveElement","isSpacebarKey","isButtonLikeRole","getTouchFromResponderEvent","deltaX","deltaY","_this$_config","cancelable","onLongPress","_this$_config2","_this$_config3","prevState","nextState","isPrevActive","isNextActive","_this$_config4","_onLongPress","isPressCanceledByLongPress","_this$_config5","onPressChange","onPressStart","_this$_config6","onPressEnd","delayPressEnd","delay","min","fallback","_event$nativeEvent","usePressEvents","pressResponderRef","useRef","pressResponder","useDebugValue","supportsPassiveEvents","supported","canUsePassiveEvents","getOptions","isPropagationStopped","isDefaultPrevented","normalizeEvent","addEventListener","listener","opts","compatListener","supportsPointerEvent","activeModality","modality","previousModality","previousActiveModality","listeners","KEYBOARD","MOUSE","TOUCH","BLUR","CONTEXTMENU","FOCUS","KEYDOWN","MOUSEDOWN","MOUSEMOVE","MOUSEUP","POINTERDOWN","POINTERMOVE","SELECTIONCHANGE","TOUCHCANCEL","TOUCHMOVE","TOUCHSTART","VISIBILITYCHANGE","bubbleOptions","captureOptions","restoreModality","callListeners","onBlurWindow","onFocusWindow","onKeyDown","onVisibilityChange","onPointerish","getModality","useEvent","targetListeners","addListener","removeTargetListener","removeEventListener","removeListener","lockEventType","unlockEventType","dispatchCustomEvent","payload","_ref$bubbles","_ref$cancelable","detail","getPointerType","pointerType","useHover","targetRef","contain","onHoverStart","onHoverChange","onHoverUpdate","onHoverEnd","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","hoverStart","enterListener","lockListener","lockEvent","unlockListener","Pressable","delayPressIn","delayPressOut","onBlur","onContextMenu","onFocus","onHoverIn","onHoverOut","onPressMove","onPressIn","onPressOut","testOnly_hovered","testOnly_pressed","_useForceableState","useForceableState","hovered","setHovered","_useForceableState2","focused","setFocused","_useForceableState3","pressed","setPressed","pressConfig","useMemo","pressEventHandlers","onContextMenuPress","onKeyDownPress","interactionState","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","_tabIndex","forced","_useState","useState","bool","setBool","MemoedPressable","memo","forwardRef","colors","ReactPocCard","data","title","_a","subtitle","_b","branchId","_c","count","_d","updatedAt","_e","jsx","jsxs","STUDIO_SPOTS_URL","mapSpot","spot","mapResponse","response","isAbortError","error","useStudioSpotsCard","setData","isLoading","setIsLoading","isError","setIsError","controller","isMounted","raw","mapped","StudioSpotsCard","totalSpots","bookableSpots","firstSpot","registerGlobals","webWindow","registry","ReactDOMClient"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95]}