{"version":3,"file":"3576.7086de3f.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/date-fns/esm/addDays/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/addMonths/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/endOfDay/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/compareAsc/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInYears/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInCalendarYears/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/endOfMonth/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInMonths/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInDays/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/constants/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/intervalToDuration/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInHours/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInMinutes/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInSeconds/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/startOfDay/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/subMonths/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/sub/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/subDays/index.js","webpack://@finviz/website/../node_modules/events/events.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuBar.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/Menu.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuButton.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuItem.js","webpack://@finviz/website/../node_modules/reakit/es/Separator/Separator.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuSeparator.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuState.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuBarState.js","webpack://@finviz/website/../node_modules/reakit/es/Button/Button.js","webpack://@finviz/website/../node_modules/reakit/es/Disclosure/Disclosure.js","webpack://@finviz/website/../node_modules/reakit/es/Dialog/DialogDisclosure.js","webpack://@finviz/website/../node_modules/reakit/es/Popover/PopoverDisclosure.js","webpack://@finviz/website/../node_modules/reakit/es/__keys-f74df4e0.js","webpack://@finviz/website/../node_modules/reakit/es/findVisibleSubmenu-1553e354.js","webpack://@finviz/website/../node_modules/core-js/internals/array-from.js","webpack://@finviz/website/../node_modules/core-js/internals/array-set-length.js","webpack://@finviz/website/../node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@finviz/website/../node_modules/core-js/internals/create-property.js","webpack://@finviz/website/../node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://@finviz/website/../node_modules/core-js/internals/iterator-close.js","webpack://@finviz/website/../node_modules/core-js/internals/object-assign.js","webpack://@finviz/website/../node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://@finviz/website/../node_modules/core-js/modules/es.array.push.js","webpack://@finviz/website/../node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://@finviz/website/../node_modules/core-js/modules/es.string.iterator.js","webpack://@finviz/website/../node_modules/core-js/modules/web.url.constructor.js","webpack://@finviz/website/../node_modules/core-js/modules/web.url.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/URUD7X4C.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/2H5K47H4.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/7PRQYBBV.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/MFZZDIHG.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3D6OCOHF.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3IEDWLST.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3OMHZVJD.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3X3MDQGM.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/Y6GYTNQ2.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/7GBW5FLS.js","webpack://@finviz/website/../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://@finviz/website/../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://@finviz/website/../node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs","webpack://@finviz/website/../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/BYD75WXE.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/7YKLTEOQ.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/C6OBNQ4F.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/DMSZFK7W.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/FTNKYK65.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/MADQZZRL.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/NLT7LY5Y.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TE637IA7.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TKSBJDO3.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TWDHCE7Y.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UNDSQXBK.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/WL6TTPTB.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/XWCFCD3Q.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/Y3BYYHRY.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox-item.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/combobox/combobox-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/URCSOWGR.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TH2YTBRW.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/ED7XMMMU.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-group-label.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/CWDOOAGR.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/ZO6PSJHJ.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-group.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-item.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-label.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/PDRDZB4I.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-popover.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/select/select-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/SVBVYDIK.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UZMGSJE4.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UPJMZO6L.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-renderer.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/AFNONYRE.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/5SF76VVA.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/Z72LDQLY.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/HA4U57LH.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/6PC3IJNK.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/FWINX72I.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-anchor.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/QFL5V2DO.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UFM3D5TN.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-arrow.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/E5E7G32I.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/tooltip/tooltip-store.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/BRS7GKWU.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/WKII7I2E.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/YMV43K4F.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/6YZEXKNV.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip.js"],"sourcesContent":["import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarYears from \"../differenceInCalendarYears/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\n\nexport default function differenceInYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight)); // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n\n dateLeft.setFullYear(1584);\n dateRight.setFullYear(1584); // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - Number(isLastYearNotFull)); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\n\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\n\n\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInYears from \"../differenceInYears/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInDays from \"../differenceInDays/index.js\";\nimport differenceInHours from \"../differenceInHours/index.js\";\nimport differenceInMinutes from \"../differenceInMinutes/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport isValid from \"../isValid/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport sub from \"../sub/index.js\";\n/**\n * @name intervalToDuration\n * @category Common Helpers\n * @summary Convert interval to duration\n *\n * @description\n * Convert a interval object to a duration object.\n *\n * @param {Interval} interval - the interval to convert to duration\n *\n * @returns {Duration} The duration Object\n * @throws {TypeError} Requires 2 arguments\n * @throws {RangeError} `start` must not be Invalid Date\n * @throws {RangeError} `end` must not be Invalid Date\n *\n * @example\n * // Get the duration between January 15, 1929 and April 4, 1968.\n * intervalToDuration({\n * start: new Date(1929, 0, 15, 12, 0, 0),\n * end: new Date(1968, 3, 4, 19, 5, 0)\n * })\n * // => { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 }\n */\n\nexport default function intervalToDuration(_ref) {\n var start = _ref.start,\n end = _ref.end;\n requiredArgs(1, arguments);\n var dateLeft = toDate(start);\n var dateRight = toDate(end);\n\n if (!isValid(dateLeft)) {\n throw new RangeError('Start Date is invalid');\n }\n\n if (!isValid(dateRight)) {\n throw new RangeError('End Date is invalid');\n }\n\n var duration = {\n years: 0,\n months: 0,\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0\n };\n var sign = compareAsc(dateLeft, dateRight);\n duration.years = Math.abs(differenceInYears(dateLeft, dateRight));\n var remainingMonths = sub(dateLeft, {\n years: sign * duration.years\n });\n duration.months = Math.abs(differenceInMonths(remainingMonths, dateRight));\n var remainingDays = sub(remainingMonths, {\n months: sign * duration.months\n });\n duration.days = Math.abs(differenceInDays(remainingDays, dateRight));\n var remainingHours = sub(remainingDays, {\n days: sign * duration.days\n });\n duration.hours = Math.abs(differenceInHours(remainingHours, dateRight));\n var remainingMinutes = sub(remainingHours, {\n hours: sign * duration.hours\n });\n duration.minutes = Math.abs(differenceInMinutes(remainingMinutes, dateRight));\n var remainingSeconds = sub(remainingMinutes, {\n minutes: sign * duration.minutes\n });\n duration.seconds = Math.abs(differenceInSeconds(remainingSeconds, dateRight));\n return duration;\n}","import { millisecondsInHour } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import { millisecondsInMinute } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\n\nexport default function differenceInMinutes(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import subDays from \"../subDays/index.js\";\nimport subMonths from \"../subMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\n\nexport default function sub(date, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0; // Subtract years and months\n\n var dateWithoutMonths = subMonths(date, months + years * 12); // Subtract weeks and days\n\n var dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7); // Subtract hours, minutes and seconds\n\n var minutestoSub = minutes + hours * 60;\n var secondstoSub = seconds + minutestoSub * 60;\n var mstoSub = secondstoSub * 1000;\n var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);\n return finalDate;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport { useWarning } from 'reakit-warning';\nimport 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport { useCreateElement } from 'reakit-system/useCreateElement';\nimport 'reakit-utils/getDocument';\nimport 'reakit-utils/fireBlurEvent';\nimport 'reakit-utils/fireKeyboardEvent';\nimport 'reakit-utils/canUseDOM';\nimport 'reakit-utils/getNextActiveElementOnBlur';\nimport '../reverse-30eaa122.js';\nimport '../getCurrentId-5aa9849e.js';\nimport '../findEnabledItemById-8ddca752.js';\nimport '../__keys-6742f591.js';\nimport '../userFocus-e16425e3.js';\nimport { useComposite } from '../Composite/Composite.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { u as useMenuContext } from '../MenuContext-6af6cf92.js';\nimport { closest } from 'reakit-utils/closest';\nimport { b as MENU_BAR_KEYS } from '../__keys-f74df4e0.js';\n\nfunction useShortcuts(menuRef, _ref, timeout) {\n var _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items,\n move = _ref.move;\n\n if (timeout === void 0) {\n timeout = 500;\n }\n\n var _React$useState = useState(\"\"),\n keys = _React$useState[0],\n setKeys = _React$useState[1];\n\n useEffect(function () {\n if (!keys) return undefined;\n var timeoutId = setTimeout(function () {\n return setKeys(\"\");\n }, timeout);\n var stop = items.find(function (s) {\n return Boolean(s.ref.current && s.ref.current.textContent && s.ref.current.textContent.toLowerCase().startsWith(keys));\n });\n\n if (stop) {\n move(stop.id);\n }\n\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [keys, items, move, timeout]);\n useEffect(function () {\n var menu = menuRef.current;\n if (!menu) return undefined;\n\n var onKeyDown = function onKeyDown(event) {\n var _target$getAttribute;\n\n if (event.key.length > 1) return;\n if (event.shiftKey) return;\n if (event.metaKey) return;\n if (event.ctrlKey) return;\n if (event.altKey) return;\n var target = event.target;\n var role = (_target$getAttribute = target.getAttribute) === null || _target$getAttribute === void 0 ? void 0 : _target$getAttribute.call(target, \"role\");\n var targetIsMenu = target === menu;\n var targetIsMenuItem = role && role.indexOf(\"menuitem\") !== -1 && closest(target, \"[role=menu],[role=menubar]\") === menu;\n if (!targetIsMenu && !targetIsMenuItem) return;\n\n if (/^[a-z0-9_-]$/i.test(event.key)) {\n event.stopPropagation();\n event.preventDefault();\n setKeys(function (k) {\n return \"\" + k + event.key;\n });\n }\n }; // https://github.com/facebook/react/issues/11387#issuecomment-524113945\n\n\n menu.addEventListener(\"keydown\", onKeyDown);\n return function () {\n return menu.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [menuRef, setKeys]);\n}\n\nvar useMenuBar = createHook({\n name: \"MenuBar\",\n compose: useComposite,\n keys: MENU_BAR_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlWrapElement = _ref.wrapElement,\n _ref$role = _ref.role,\n role = _ref$role === void 0 ? \"menubar\" : _ref$role,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\", \"wrapElement\", \"role\"]);\n\n var ref = useRef(null);\n var wrap = useMenuContext(ref, role, options);\n useShortcuts(ref, options);\n var wrapElement = useCallback(function (element) {\n element = wrap(element);\n\n if (htmlWrapElement) {\n return htmlWrapElement(element);\n }\n\n return element;\n }, [wrap, htmlWrapElement]);\n return _objectSpread2({\n ref: useForkRef(ref, htmlRef),\n role: role,\n \"aria-orientation\": options.orientation,\n wrapElement: wrapElement\n }, htmlProps);\n }\n});\nvar MenuBar = createComponent({\n as: \"div\",\n useHook: useMenuBar,\n useCreateElement: function useCreateElement$1(type, props, children) {\n process.env.NODE_ENV !== \"production\" ? useWarning(!props[\"aria-label\"] && !props[\"aria-labelledby\"] && props.role !== \"menubar\", \"You should provide either `aria-label` or `aria-labelledby` props.\", \"See https://reakit.io/docs/menu\") : void 0;\n return useCreateElement(type, props, children);\n }\n});\n\nexport { MenuBar, useMenuBar };\n","import { a as _objectSpread2, _ as _objectWithoutPropertiesLoose } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useContext, useMemo, useCallback } from 'react';\nimport 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport { useWarning } from 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport { isPortalEvent } from 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport 'reakit-utils/useUpdateEffect';\nimport { useCreateElement } from 'reakit-system/useCreateElement';\nimport 'reakit-utils/getDocument';\nimport 'reakit-utils/fireBlurEvent';\nimport 'reakit-utils/fireKeyboardEvent';\nimport 'reakit-utils/canUseDOM';\nimport 'reakit-utils/getNextActiveElementOnBlur';\nimport '../reverse-30eaa122.js';\nimport '../getCurrentId-5aa9849e.js';\nimport '../findEnabledItemById-8ddca752.js';\nimport '../__keys-6742f591.js';\nimport '../userFocus-e16425e3.js';\nimport '../Composite/Composite.js';\nimport 'reakit-utils/ensureFocus';\nimport '../__keys-e6a5cfbe.js';\nimport '../Disclosure/DisclosureContent.js';\nimport 'react-dom';\nimport '../Portal/Portal.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport '../Dialog/Dialog.js';\nimport 'body-scroll-lock';\nimport 'reakit-utils/closest';\nimport 'reakit-utils/getActiveElement';\nimport 'reakit-utils/contains';\nimport '../DialogBackdropContext-8775f78b.js';\nimport 'reakit-utils/isEmpty';\nimport '../__keys-ed7b48af.js';\nimport '../__keys-26bb1730.js';\nimport { usePopover } from '../Popover/Popover.js';\nimport { useMenuBar } from './MenuBar.js';\nimport { M as MENU_KEYS } from '../__keys-f74df4e0.js';\n\nfunction usePlacementDir(placement) {\n return useMemo(function () {\n var _placement$split;\n\n return placement === null || placement === void 0 ? void 0 : (_placement$split = placement.split(\"-\")) === null || _placement$split === void 0 ? void 0 : _placement$split[0];\n }, [placement]);\n}\n\nvar useMenu = createHook({\n name: \"Menu\",\n compose: [useMenuBar, usePopover],\n keys: MENU_KEYS,\n useOptions: function useOptions(options) {\n var parent = useContext(MenuContext);\n var parentIsMenuBar = (parent === null || parent === void 0 ? void 0 : parent.role) === \"menubar\";\n return _objectSpread2(_objectSpread2({\n unstable_autoFocusOnHide: !parentIsMenuBar,\n modal: false\n }, options), {}, {\n // will be handled by MenuButton\n unstable_autoFocusOnShow: false,\n // will be handled differently from usePopover/useDialog\n hideOnEsc: false\n });\n },\n useProps: function useProps(options, _ref) {\n var htmlOnKeyDown = _ref.onKeyDown,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"onKeyDown\"]);\n\n var onKeyDownRef = useLiveRef(htmlOnKeyDown);\n var parent = useContext(MenuContext);\n var hasParent = !!parent;\n var ancestorMenuBar = parent;\n\n while (ancestorMenuBar && ancestorMenuBar.role !== \"menubar\") {\n ancestorMenuBar = ancestorMenuBar.parent;\n }\n\n var _ref2 = ancestorMenuBar || {},\n next = _ref2.next,\n previous = _ref2.previous,\n orientation = _ref2.orientation;\n\n var ancestorIsHorizontal = orientation === \"horizontal\";\n var dir = usePlacementDir(options.placement);\n var onKeyDown = useCallback(function (event) {\n var _onKeyDownRef$current;\n\n (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);\n if (event.defaultPrevented) return;\n\n if (event.key === \"Escape\") {\n var _options$hide;\n\n if (!hasParent) {\n // On Esc, only stop propagation if there's no parent menu.\n // Otherwise, pressing Esc should close all menus\n event.stopPropagation();\n }\n\n (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);\n } else if (hasParent && !isPortalEvent(event)) {\n // Moves to the next menu button in a horizontal menu bar or close\n // the menu if it's a sub menu\n var ArrowRight = ancestorIsHorizontal && dir !== \"left\" ? next : dir === \"left\" && options.hide;\n var ArrowLeft = ancestorIsHorizontal && dir !== \"right\" ? previous : dir === \"right\" && options.hide;\n var keyMap = {\n ArrowRight: ArrowRight,\n ArrowLeft: ArrowLeft\n };\n var action = keyMap[event.key];\n\n if (action) {\n event.preventDefault();\n\n if (hasParent) {\n event.stopPropagation();\n }\n\n action();\n }\n }\n }, [hasParent, ancestorIsHorizontal, next, previous, dir, options.hide]);\n return _objectSpread2({\n role: \"menu\",\n onKeyDown: onKeyDown\n }, htmlProps);\n }\n});\nvar Menu = createComponent({\n as: \"div\",\n useHook: useMenu,\n useCreateElement: function useCreateElement$1(type, props, children) {\n process.env.NODE_ENV !== \"production\" ? useWarning(!props[\"aria-label\"] && !props[\"aria-labelledby\"], \"You should provide either `aria-label` or `aria-labelledby` props.\", \"See https://reakit.io/docs/menu\") : void 0;\n return useCreateElement(type, props, children);\n }\n});\n\nexport { Menu, useMenu };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useContext, useRef, useCallback } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport { hasFocusWithin } from 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport '../Button/Button.js';\nimport '../__keys-e6a5cfbe.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport '../__keys-ed7b48af.js';\nimport '../__keys-26bb1730.js';\nimport '../Disclosure/Disclosure.js';\nimport '../Dialog/DialogDisclosure.js';\nimport { c as MENU_BUTTON_KEYS } from '../__keys-f74df4e0.js';\nimport { usePopoverDisclosure } from '../Popover/PopoverDisclosure.js';\nimport { f as findVisibleSubmenu } from '../findVisibleSubmenu-1553e354.js';\n\nvar noop = function noop() {};\n\nvar useMenuButton = createHook({\n name: \"MenuButton\",\n compose: usePopoverDisclosure,\n keys: MENU_BUTTON_KEYS,\n propsAreEqual: function propsAreEqual(prev, next) {\n var prevPopoverStyles = prev.unstable_popoverStyles,\n prevArrowStyles = prev.unstable_arrowStyles,\n prevCurrentId = prev.currentId,\n prevMoves = prev.unstable_moves,\n prevProps = _objectWithoutPropertiesLoose(prev, [\"unstable_popoverStyles\", \"unstable_arrowStyles\", \"currentId\", \"unstable_moves\"]);\n\n var nextPopoverStyles = next.unstable_popoverStyles,\n nextArrowStyles = next.unstable_arrowStyles,\n nextCurrentId = next.currentId,\n nextMoves = next.unstable_moves,\n nextProps = _objectWithoutPropertiesLoose(next, [\"unstable_popoverStyles\", \"unstable_arrowStyles\", \"currentId\", \"unstable_moves\"]);\n\n return usePopoverDisclosure.unstable_propsAreEqual(prevProps, nextProps);\n },\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlOnClick = _ref.onClick,\n htmlOnKeyDown = _ref.onKeyDown,\n htmlOnFocus = _ref.onFocus,\n htmlOnMouseEnter = _ref.onMouseEnter,\n htmlOnMouseDown = _ref.onMouseDown,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\", \"onClick\", \"onKeyDown\", \"onFocus\", \"onMouseEnter\", \"onMouseDown\"]);\n\n var parent = useContext(MenuContext);\n var ref = useRef(null);\n var hasPressedMouse = useRef(false);\n\n var _options$placement$sp = options.placement.split(\"-\"),\n dir = _options$placement$sp[0];\n\n var hasParent = !!parent;\n var parentIsMenuBar = (parent === null || parent === void 0 ? void 0 : parent.role) === \"menubar\";\n var disabled = options.disabled || htmlProps[\"aria-disabled\"];\n var onClickRef = useLiveRef(htmlOnClick);\n var onKeyDownRef = useLiveRef(htmlOnKeyDown);\n var onFocusRef = useLiveRef(htmlOnFocus);\n var onMouseEnterRef = useLiveRef(htmlOnMouseEnter);\n var onMouseDownRef = useLiveRef(htmlOnMouseDown);\n var onKeyDown = useCallback(function (event) {\n var _onKeyDownRef$current;\n\n if (event.key === \"Escape\") {\n var _options$hide;\n\n // Doesn't prevent default on Escape, otherwise we can't close\n // dialogs when MenuButton is focused\n (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);\n } else if (!disabled) {\n // setTimeout prevents scroll jump\n var first = options.first && function () {\n return setTimeout(options.first);\n };\n\n var last = options.last && function () {\n return setTimeout(options.last);\n };\n\n var keyMap = {\n Enter: first,\n \" \": first,\n ArrowUp: (dir === \"top\" || dir === \"bottom\") && last,\n ArrowRight: dir === \"right\" && first,\n ArrowDown: (dir === \"bottom\" || dir === \"top\") && first,\n ArrowLeft: dir === \"left\" && first\n };\n var action = keyMap[event.key];\n\n if (action) {\n var _options$show;\n\n event.preventDefault();\n event.stopPropagation();\n (_options$show = options.show) === null || _options$show === void 0 ? void 0 : _options$show.call(options);\n action();\n return;\n }\n }\n\n (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);\n }, [disabled, options.hide, options.first, options.last, dir, options.show]);\n var onMouseEnter = useCallback(function (event) {\n var _onMouseEnterRef$curr;\n\n (_onMouseEnterRef$curr = onMouseEnterRef.current) === null || _onMouseEnterRef$curr === void 0 ? void 0 : _onMouseEnterRef$curr.call(onMouseEnterRef, event);\n if (event.defaultPrevented) return; // MenuButton's don't do anything on mouse over when they aren't\n // cointained within a Menu/MenuBar\n\n if (!parent) return;\n var element = event.currentTarget;\n\n if (parentIsMenuBar) {\n // if MenuButton is an item inside a MenuBar, it'll only open\n // if there's already another sibling expanded MenuButton\n if (findVisibleSubmenu(parent.children)) {\n element.focus();\n }\n } else {\n // If it's in a Menu, open after a short delay\n // TODO: Make the delay a prop?\n setTimeout(function () {\n if (hasFocusWithin(element)) {\n var _options$show2;\n\n (_options$show2 = options.show) === null || _options$show2 === void 0 ? void 0 : _options$show2.call(options);\n }\n }, 200);\n }\n }, [parent, parentIsMenuBar, options.show]);\n var onMouseDown = useCallback(function (event) {\n var _onMouseDownRef$curre;\n\n // When in menu bar, the menu button can be activated either by focus\n // or click, but we don't want both to trigger sequentially.\n // Otherwise, onClick would toggle (hide) the menu right after it got\n // shown on focus.\n // This is also useful so we know if the menu button has been clicked\n // using mouse or keyboard. On mouse click, we don't automatically\n // focus the first menu item.\n hasPressedMouse.current = true;\n (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event);\n }, []);\n var onFocus = useCallback(function (event) {\n var _onFocusRef$current;\n\n (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);\n if (event.defaultPrevented) return;\n if (disabled) return;\n\n if (parentIsMenuBar && !hasPressedMouse.current) {\n var _options$show3;\n\n (_options$show3 = options.show) === null || _options$show3 === void 0 ? void 0 : _options$show3.call(options);\n }\n }, [parentIsMenuBar, disabled, options.show]); // If disclosure is rendered as a menu bar item, it's toggable\n // That is, you can click on the expanded disclosure to close its menu.\n\n var onClick = useCallback(function (event) {\n var _onClickRef$current;\n\n (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n if (event.defaultPrevented) return; // If menu button is a menu item inside a menu (not menu bar), you\n // can't close it by clicking on it again.\n\n if (hasParent && !parentIsMenuBar) {\n var _options$show4;\n\n (_options$show4 = options.show) === null || _options$show4 === void 0 ? void 0 : _options$show4.call(options);\n } else {\n var _options$toggle;\n\n // Otherwise, if menu button is a menu bar item or an orphan menu\n // button, it's toggable.\n (_options$toggle = options.toggle) === null || _options$toggle === void 0 ? void 0 : _options$toggle.call(options); // Focus the menu popover when it's opened with mouse click.\n\n if (hasPressedMouse.current && !parentIsMenuBar && !options.visible) {\n var _options$move;\n\n (_options$move = options.move) === null || _options$move === void 0 ? void 0 : _options$move.call(options, null);\n }\n }\n\n hasPressedMouse.current = false;\n }, [hasParent, parentIsMenuBar, options.show, options.toggle, options.visible, options.move]);\n return _objectSpread2({\n ref: useForkRef(ref, htmlRef),\n \"aria-haspopup\": \"menu\",\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseDown: onMouseDown,\n onFocus: onFocus,\n onClick: onClick\n }, htmlProps);\n },\n useComposeOptions: function useComposeOptions(options) {\n return _objectSpread2(_objectSpread2({}, options), {}, {\n // Toggling is handled by MenuButton\n toggle: noop\n });\n }\n});\nvar MenuButton = createComponent({\n as: \"button\",\n memo: true,\n useHook: useMenuButton\n});\n\nexport { MenuButton, useMenuButton };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRef, useCallback, useContext } from 'react';\nimport 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport { hasFocusWithin } from 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport 'reakit-utils/getDocument';\nimport '../getCurrentId-5aa9849e.js';\nimport '../__keys-6742f591.js';\nimport '../userFocus-e16425e3.js';\nimport 'reakit-utils/isTextField';\nimport 'reakit-utils/ensureFocus';\nimport '../Id/IdProvider.js';\nimport '../Id/Id.js';\nimport 'reakit-utils/fireEvent';\nimport '../setTextFieldValue-0a221f4e.js';\nimport { useCompositeItem } from '../Composite/CompositeItem.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport { contains } from 'reakit-utils/contains';\nimport { e as MENU_ITEM_KEYS } from '../__keys-f74df4e0.js';\nimport { f as findVisibleSubmenu } from '../findVisibleSubmenu-1553e354.js';\n\nfunction getTriangleArea(a, b, c) {\n return Math.abs((a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y)) / 2);\n}\n\nfunction isPointInTriangle(point, a, b, c) {\n var A = getTriangleArea(a, b, c);\n var A1 = getTriangleArea(point, b, c);\n var A2 = getTriangleArea(a, point, c);\n var A3 = getTriangleArea(a, b, point);\n return A === A1 + A2 + A3;\n}\n\nfunction getSubmenuAnchorPoints(event, visibleSubmenu) {\n var _visibleSubmenu$getBo = visibleSubmenu.getBoundingClientRect(),\n top = _visibleSubmenu$getBo.top,\n right = _visibleSubmenu$getBo.right,\n bottom = _visibleSubmenu$getBo.bottom,\n left = _visibleSubmenu$getBo.left; // If left is bigger than mouse's clientX, than the submenu is visible on\n // the left side\n\n\n var x = left > event.clientX ? left : right;\n return [{\n x: x,\n y: top\n }, {\n x: x,\n y: bottom\n }];\n}\n\nfunction useTransitToSubmenu(menu, htmlOnMouseEnter) {\n var onMouseEnterRef = useLiveRef(htmlOnMouseEnter);\n var enterPointRef = useRef(null);\n var submenuTopPointRef = useRef(null);\n var submenuBottomPointRef = useRef(null);\n var previousClientX = useRef(0);\n var previousClientY = useRef(0);\n var assignSubmenuAnchorPoints = useCallback(function (event) {\n if (!(menu !== null && menu !== void 0 && menu.children.length)) return;\n submenuTopPointRef.current = null;\n submenuBottomPointRef.current = null;\n var visibleSubmenu = findVisibleSubmenu(menu.children);\n if (!visibleSubmenu) return;\n\n var _getSubmenuAnchorPoin = getSubmenuAnchorPoints(event, visibleSubmenu);\n\n submenuTopPointRef.current = _getSubmenuAnchorPoin[0];\n submenuBottomPointRef.current = _getSubmenuAnchorPoin[1];\n }, [menu === null || menu === void 0 ? void 0 : menu.children]);\n var isMouseInTransitToSubmenu = useCallback(function (event) {\n var isMoving = previousClientX.current !== event.clientX || previousClientY.current !== event.clientY;\n\n if (event.isTrusted && !isMoving) {\n // Safari sometimes triggers mousemove without a mouse movement\n return true;\n }\n\n var movementX = Math.abs(previousClientX.current - event.clientX);\n previousClientX.current = event.clientX;\n previousClientY.current = event.clientY;\n\n var hasAnchorPoints = function hasAnchorPoints() {\n return submenuTopPointRef.current && submenuBottomPointRef.current;\n };\n\n if (event.type === \"mouseleave\" && !hasAnchorPoints()) {\n assignSubmenuAnchorPoints(event);\n }\n\n if (!hasAnchorPoints()) return false;\n return movementX && enterPointRef.current && isPointInTriangle({\n x: event.clientX,\n y: event.clientY\n }, enterPointRef.current, submenuTopPointRef.current, submenuBottomPointRef.current);\n }, [assignSubmenuAnchorPoints]);\n var onMouseEnter = useCallback(function (event) {\n var _onMouseEnterRef$curr;\n\n (_onMouseEnterRef$curr = onMouseEnterRef.current) === null || _onMouseEnterRef$curr === void 0 ? void 0 : _onMouseEnterRef$curr.call(onMouseEnterRef, event);\n if (event.defaultPrevented) return;\n if ((menu === null || menu === void 0 ? void 0 : menu.role) === \"menubar\") return;\n enterPointRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n assignSubmenuAnchorPoints(event);\n }, [menu === null || menu === void 0 ? void 0 : menu.role, assignSubmenuAnchorPoints]);\n return {\n onMouseEnter: onMouseEnter,\n isMouseInTransitToSubmenu: isMouseInTransitToSubmenu\n };\n}\n\nfunction getMouseDestination(event) {\n var relatedTarget = event.relatedTarget;\n\n if ((relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.nodeType) === Node.ELEMENT_NODE) {\n return event.relatedTarget;\n } // IE 11\n\n\n return event.toElement || null;\n}\n\nfunction hoveringInside(event) {\n var nextElement = getMouseDestination(event);\n if (!nextElement) return false;\n return contains(event.currentTarget, nextElement);\n}\n\nfunction hoveringExpandedMenu(event, children) {\n if (!(children !== null && children !== void 0 && children.length)) return false;\n var nextElement = getMouseDestination(event);\n if (!nextElement) return false;\n var visibleSubmenu = findVisibleSubmenu(children);\n return visibleSubmenu && contains(visibleSubmenu, nextElement);\n}\n\nfunction hoveringAnotherMenuItem(event, items) {\n var nextElement = getMouseDestination(event);\n if (!nextElement) return false;\n return items === null || items === void 0 ? void 0 : items.some(function (item) {\n return item.ref.current && contains(item.ref.current, nextElement);\n });\n}\n\nvar useMenuItem = createHook({\n name: \"MenuItem\",\n compose: useCompositeItem,\n keys: MENU_ITEM_KEYS,\n propsAreEqual: function propsAreEqual(prev, next) {\n var prevPopoverStyles = prev.unstable_popoverStyles,\n prevArrowStyles = prev.unstable_arrowStyles,\n prevVisible = prev.visible,\n prevProps = _objectWithoutPropertiesLoose(prev, [\"unstable_popoverStyles\", \"unstable_arrowStyles\", \"visible\"]);\n\n var nextPopoverStyles = next.unstable_popoverStyles,\n nextArrowStyles = next.unstable_arrowStyles,\n nextVisible = next.visible,\n nextProps = _objectWithoutPropertiesLoose(next, [\"unstable_popoverStyles\", \"unstable_arrowStyles\", \"visible\"]);\n\n return useCompositeItem.unstable_propsAreEqual(prevProps, nextProps);\n },\n useProps: function useProps(options, _ref) {\n var htmlOnMouseEnter = _ref.onMouseEnter,\n htmlOnMouseMove = _ref.onMouseMove,\n htmlOnMouseLeave = _ref.onMouseLeave,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"onMouseEnter\", \"onMouseMove\", \"onMouseLeave\"]);\n\n var menu = useContext(MenuContext);\n var onMouseMoveRef = useLiveRef(htmlOnMouseMove);\n var onMouseLeaveRef = useLiveRef(htmlOnMouseLeave);\n\n var _useTransitToSubmenu = useTransitToSubmenu(menu, htmlOnMouseEnter),\n onMouseEnter = _useTransitToSubmenu.onMouseEnter,\n isMouseInTransitToSubmenu = _useTransitToSubmenu.isMouseInTransitToSubmenu;\n\n var onMouseMove = useCallback(function (event) {\n var _onMouseMoveRef$curre, _options$move;\n\n (_onMouseMoveRef$curre = onMouseMoveRef.current) === null || _onMouseMoveRef$curre === void 0 ? void 0 : _onMouseMoveRef$curre.call(onMouseMoveRef, event);\n if (event.defaultPrevented) return;\n if ((menu === null || menu === void 0 ? void 0 : menu.role) === \"menubar\") return;\n if (isMouseInTransitToSubmenu(event)) return;\n if (hasFocusWithin(event.currentTarget)) return;\n (_options$move = options.move) === null || _options$move === void 0 ? void 0 : _options$move.call(options, event.currentTarget.id);\n }, [options.move]);\n var onMouseLeave = useCallback(function (event) {\n var _onMouseLeaveRef$curr;\n\n (_onMouseLeaveRef$curr = onMouseLeaveRef.current) === null || _onMouseLeaveRef$curr === void 0 ? void 0 : _onMouseLeaveRef$curr.call(onMouseLeaveRef, event);\n if (event.defaultPrevented) return;\n if ((menu === null || menu === void 0 ? void 0 : menu.role) === \"menubar\") return;\n if (hoveringInside(event)) return; // If this item is a menu disclosure and mouse is leaving it to focus\n // its respective submenu, we don't want to do anything.\n\n if (hoveringExpandedMenu(event, menu === null || menu === void 0 ? void 0 : menu.children)) return; // Move focus to menu after blurring\n\n if (!hoveringAnotherMenuItem(event, options.items)) {\n var _options$move2;\n\n if (isMouseInTransitToSubmenu(event)) return;\n (_options$move2 = options.move) === null || _options$move2 === void 0 ? void 0 : _options$move2.call(options, null);\n }\n }, [menu === null || menu === void 0 ? void 0 : menu.role, menu === null || menu === void 0 ? void 0 : menu.children, options.items, options.move]);\n return _objectSpread2({\n role: \"menuitem\",\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave\n }, htmlProps);\n }\n});\nvar MenuItem = createComponent({\n as: \"button\",\n memo: true,\n useHook: useMenuItem\n});\n\nexport { MenuItem, useMenuItem };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRole } from '../Role/Role.js';\n\n// Automatically generated\nvar SEPARATOR_KEYS = [\"orientation\"];\n\nvar useSeparator = createHook({\n name: \"Separator\",\n compose: useRole,\n keys: SEPARATOR_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$orientation = _ref.orientation,\n orientation = _ref$orientation === void 0 ? \"horizontal\" : _ref$orientation,\n options = _objectWithoutPropertiesLoose(_ref, [\"orientation\"]);\n\n return _objectSpread2({\n orientation: orientation\n }, options);\n },\n useProps: function useProps(options, htmlProps) {\n return _objectSpread2({\n role: \"separator\",\n \"aria-orientation\": options.orientation\n }, htmlProps);\n }\n});\nvar Separator = createComponent({\n as: \"hr\",\n memo: true,\n useHook: useSeparator\n});\n\nexport { Separator, useSeparator };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport '../Role/Role.js';\nimport { h as MENU_SEPARATOR_KEYS } from '../__keys-f74df4e0.js';\nimport { useSeparator } from '../Separator/Separator.js';\n\nvar useMenuSeparator = createHook({\n name: \"MenuSeparator\",\n compose: useSeparator,\n keys: MENU_SEPARATOR_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$orientation = _ref.orientation,\n orientation = _ref$orientation === void 0 ? \"vertical\" : _ref$orientation,\n options = _objectWithoutPropertiesLoose(_ref, [\"orientation\"]);\n\n return _objectSpread2({\n orientation: orientation === \"vertical\" ? \"horizontal\" : \"vertical\"\n }, options);\n }\n});\nvar MenuSeparator = createComponent({\n as: \"hr\",\n memo: true,\n useHook: useMenuSeparator\n});\n\nexport { MenuSeparator, useMenuSeparator };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport 'reakit-utils/shallowEqual';\nimport { useContext, useEffect } from 'react';\nimport 'reakit-warning';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/dom';\nimport { useSealedState } from 'reakit-utils/useSealedState';\nimport 'reakit-utils/getDocument';\nimport '../reverse-30eaa122.js';\nimport '../getCurrentId-5aa9849e.js';\nimport '../findEnabledItemById-8ddca752.js';\nimport '../Id/IdProvider.js';\nimport 'reakit-utils/applyState';\nimport '../Id/IdState.js';\nimport '../Composite/CompositeState.js';\nimport '@popperjs/core';\nimport '../Disclosure/DisclosureState.js';\nimport '../Dialog/DialogState.js';\nimport { usePopoverState } from '../Popover/PopoverState.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport { useMenuBarState } from './MenuBarState.js';\n\nfunction useMenuState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var parent = useContext(MenuContext);\n\n var _useSealedState = useSealedState(initialState),\n _useSealedState$orien = _useSealedState.orientation,\n orientation = _useSealedState$orien === void 0 ? \"vertical\" : _useSealedState$orien,\n _useSealedState$gutte = _useSealedState.gutter,\n gutter = _useSealedState$gutte === void 0 ? 0 : _useSealedState$gutte,\n sealed = _objectWithoutPropertiesLoose(_useSealedState, [\"orientation\", \"gutter\"]);\n\n var placement = sealed.placement || (parent && parent.orientation === \"vertical\" ? \"right-start\" : \"bottom-start\");\n var menuBar = useMenuBarState(_objectSpread2(_objectSpread2({}, sealed), {}, {\n orientation: orientation\n }));\n var popover = usePopoverState(_objectSpread2(_objectSpread2({}, sealed), {}, {\n placement: placement,\n gutter: gutter\n }));\n useEffect(function () {\n if (!popover.visible) {\n menuBar.reset();\n }\n }, [popover.visible, menuBar.reset]);\n return _objectSpread2(_objectSpread2({}, menuBar), popover);\n}\n\nexport { useMenuState };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { useState, useCallback } from 'react';\nimport 'reakit-utils/useIsomorphicEffect';\nimport { useSealedState } from 'reakit-utils/useSealedState';\nimport 'reakit-utils/getDocument';\nimport '../reverse-30eaa122.js';\nimport '../getCurrentId-5aa9849e.js';\nimport '../findEnabledItemById-8ddca752.js';\nimport '../Id/IdProvider.js';\nimport 'reakit-utils/applyState';\nimport '../Id/IdState.js';\nimport { useCompositeState } from '../Composite/CompositeState.js';\n\nfunction useMenuBarState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var _useSealedState = useSealedState(initialState),\n _useSealedState$orien = _useSealedState.orientation,\n orientation = _useSealedState$orien === void 0 ? \"horizontal\" : _useSealedState$orien,\n _useSealedState$unsta = _useSealedState.unstable_values,\n initialValues = _useSealedState$unsta === void 0 ? {} : _useSealedState$unsta,\n sealed = _objectWithoutPropertiesLoose(_useSealedState, [\"orientation\", \"unstable_values\"]);\n\n var _React$useState = useState(initialValues),\n values = _React$useState[0],\n setValues = _React$useState[1];\n\n var composite = useCompositeState(_objectSpread2(_objectSpread2({}, sealed), {}, {\n orientation: orientation\n }));\n return _objectSpread2(_objectSpread2({}, composite), {}, {\n unstable_values: values,\n unstable_setValue: useCallback(function (name, value) {\n setValues(function (vals) {\n var _objectSpread2$1;\n\n return _objectSpread2(_objectSpread2({}, vals), {}, (_objectSpread2$1 = {}, _objectSpread2$1[name] = typeof value === \"function\" ? value(vals) : value, _objectSpread2$1));\n });\n }, [])\n });\n}\n\nexport { useMenuBarState };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRef, useState, useEffect } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport { isButton } from 'reakit-utils/isButton';\nimport { warning } from 'reakit-warning';\nimport 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport { useClickable } from '../Clickable/Clickable.js';\n\n// Automatically generated\nvar BUTTON_KEYS = [];\n\nvar useButton = createHook({\n name: \"Button\",\n compose: useClickable,\n keys: BUTTON_KEYS,\n useProps: function useProps(_, _ref) {\n var htmlRef = _ref.ref,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\"]);\n\n var ref = useRef(null);\n\n var _React$useState = useState(undefined),\n role = _React$useState[0],\n setRole = _React$useState[1];\n\n var _React$useState2 = useState(\"button\"),\n type = _React$useState2[0],\n setType = _React$useState2[1];\n\n useEffect(function () {\n var element = ref.current;\n\n if (!element) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Can't determine whether the element is a native button because `ref` wasn't passed to the component\", \"See https://reakit.io/docs/button\") : void 0;\n return;\n }\n\n if (!isButton(element)) {\n if (element.tagName !== \"A\") {\n setRole(\"button\");\n }\n\n setType(undefined);\n }\n }, []);\n return _objectSpread2({\n ref: useForkRef(ref, htmlRef),\n role: role,\n type: type\n }, htmlProps);\n }\n});\nvar Button = createComponent({\n as: \"button\",\n memo: true,\n useHook: useButton\n});\n\nexport { Button, useButton };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useCallback } from 'react';\nimport 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport { useButton } from '../Button/Button.js';\nimport { D as DISCLOSURE_KEYS } from '../__keys-e6a5cfbe.js';\n\nvar useDisclosure = createHook({\n name: \"Disclosure\",\n compose: useButton,\n keys: DISCLOSURE_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlOnClick = _ref.onClick,\n ariaControls = _ref[\"aria-controls\"],\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"onClick\", \"aria-controls\"]);\n\n var onClickRef = useLiveRef(htmlOnClick);\n var controls = ariaControls ? ariaControls + \" \" + options.baseId : options.baseId;\n var onClick = useCallback(function (event) {\n var _onClickRef$current, _options$toggle;\n\n (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n if (event.defaultPrevented) return;\n (_options$toggle = options.toggle) === null || _options$toggle === void 0 ? void 0 : _options$toggle.call(options);\n }, [options.toggle]);\n return _objectSpread2({\n \"aria-expanded\": !!options.visible,\n \"aria-controls\": controls,\n onClick: onClick\n }, htmlProps);\n }\n});\nvar Disclosure = createComponent({\n as: \"button\",\n memo: true,\n useHook: useDisclosure\n});\n\nexport { Disclosure, useDisclosure };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRef, useState, useCallback } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport { warning } from 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport { useIsomorphicEffect } from 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport '../Button/Button.js';\nimport '../__keys-e6a5cfbe.js';\nimport { b as DIALOG_DISCLOSURE_KEYS } from '../__keys-ed7b48af.js';\nimport { useDisclosure } from '../Disclosure/Disclosure.js';\n\nvar useDialogDisclosure = createHook({\n name: \"DialogDisclosure\",\n compose: useDisclosure,\n keys: DIALOG_DISCLOSURE_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlOnClick = _ref.onClick,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\", \"onClick\"]);\n\n var ref = useRef(null);\n var onClickRef = useLiveRef(htmlOnClick);\n\n var _React$useState = useState(false),\n expanded = _React$useState[0],\n setExpanded = _React$useState[1];\n\n var disclosureRef = options.unstable_disclosureRef; // aria-expanded may be used for styling purposes, so we useLayoutEffect\n\n useIsomorphicEffect(function () {\n var element = ref.current;\n process.env.NODE_ENV !== \"production\" ? warning(!element, \"Can't determine whether the element is the current disclosure because `ref` wasn't passed to the component\", \"See https://reakit.io/docs/dialog\") : void 0;\n\n if (disclosureRef && !disclosureRef.current) {\n disclosureRef.current = element;\n }\n\n var isCurrentDisclosure = !(disclosureRef !== null && disclosureRef !== void 0 && disclosureRef.current) || disclosureRef.current === element;\n setExpanded(!!options.visible && isCurrentDisclosure);\n }, [options.visible, disclosureRef]);\n var onClick = useCallback(function (event) {\n var _onClickRef$current;\n\n (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n if (event.defaultPrevented) return;\n\n if (disclosureRef) {\n disclosureRef.current = event.currentTarget;\n }\n }, [disclosureRef]);\n return _objectSpread2({\n ref: useForkRef(ref, htmlRef),\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": expanded,\n onClick: onClick\n }, htmlProps);\n }\n});\nvar DialogDisclosure = createComponent({\n as: \"button\",\n memo: true,\n useHook: useDialogDisclosure\n});\n\nexport { DialogDisclosure, useDialogDisclosure };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport 'reakit-warning';\nimport 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport '../Button/Button.js';\nimport '../__keys-e6a5cfbe.js';\nimport '../__keys-ed7b48af.js';\nimport { c as POPOVER_DISCLOSURE_KEYS } from '../__keys-26bb1730.js';\nimport '../Disclosure/Disclosure.js';\nimport { useDialogDisclosure } from '../Dialog/DialogDisclosure.js';\n\nvar usePopoverDisclosure = createHook({\n name: \"PopoverDisclosure\",\n compose: useDialogDisclosure,\n keys: POPOVER_DISCLOSURE_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\"]);\n\n return _objectSpread2({\n ref: useForkRef(options.unstable_referenceRef, htmlRef)\n }, htmlProps);\n }\n});\nvar PopoverDisclosure = createComponent({\n as: \"button\",\n memo: true,\n useHook: usePopoverDisclosure\n});\n\nexport { PopoverDisclosure, usePopoverDisclosure };\n","// Automatically generated\nvar MENU_BAR_STATE_KEYS = [\"baseId\", \"unstable_idCountRef\", \"unstable_virtual\", \"rtl\", \"orientation\", \"items\", \"groups\", \"currentId\", \"loop\", \"wrap\", \"shift\", \"unstable_moves\", \"unstable_hasActiveWidget\", \"unstable_includesBaseElement\", \"unstable_values\", \"setBaseId\", \"registerItem\", \"unregisterItem\", \"registerGroup\", \"unregisterGroup\", \"move\", \"next\", \"previous\", \"up\", \"down\", \"first\", \"last\", \"sort\", \"unstable_setVirtual\", \"setRTL\", \"setOrientation\", \"setCurrentId\", \"setLoop\", \"setWrap\", \"setShift\", \"reset\", \"unstable_setIncludesBaseElement\", \"unstable_setHasActiveWidget\", \"unstable_setValue\"];\nvar MENU_STATE_KEYS = [].concat(MENU_BAR_STATE_KEYS, [\"visible\", \"animated\", \"animating\", \"show\", \"hide\", \"toggle\", \"setVisible\", \"setAnimated\", \"stopAnimation\", \"modal\", \"unstable_disclosureRef\", \"setModal\", \"unstable_referenceRef\", \"unstable_popoverRef\", \"unstable_arrowRef\", \"unstable_popoverStyles\", \"unstable_arrowStyles\", \"unstable_originalPlacement\", \"unstable_update\", \"placement\", \"place\"]);\nvar MENU_KEYS = MENU_STATE_KEYS;\nvar MENU_ARROW_KEYS = MENU_KEYS;\nvar MENU_BAR_KEYS = MENU_ARROW_KEYS;\nvar MENU_BUTTON_KEYS = MENU_BAR_KEYS;\nvar MENU_DISCLOSURE_KEYS = MENU_BUTTON_KEYS;\nvar MENU_GROUP_KEYS = MENU_DISCLOSURE_KEYS;\nvar MENU_ITEM_KEYS = MENU_GROUP_KEYS;\nvar MENU_ITEM_CHECKBOX_KEYS = [].concat(MENU_ITEM_KEYS, [\"name\"]);\nvar MENU_ITEM_RADIO_KEYS = MENU_ITEM_CHECKBOX_KEYS;\nvar MENU_SEPARATOR_KEYS = MENU_ITEM_KEYS;\n\nexport { MENU_KEYS as M, MENU_ARROW_KEYS as a, MENU_BAR_KEYS as b, MENU_BUTTON_KEYS as c, MENU_GROUP_KEYS as d, MENU_ITEM_KEYS as e, MENU_ITEM_CHECKBOX_KEYS as f, MENU_ITEM_RADIO_KEYS as g, MENU_SEPARATOR_KEYS as h };\n","function findVisibleSubmenu(submenus) {\n var visibleSubmenu = submenus === null || submenus === void 0 ? void 0 : submenus.find(function (submenu) {\n return submenu.current && !submenu.current.hidden;\n });\n return visibleSubmenu === null || visibleSubmenu === void 0 ? void 0 : visibleSubmenu.current;\n}\n\nexport { findVisibleSubmenu as f };\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","\"use client\";\nimport {\n batch,\n createStore,\n init,\n setup,\n throwOnConflictingProps\n} from \"./R676XYVY.js\";\nimport {\n chain,\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n getDocument\n} from \"./RRSZHCH6.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/collection/collection-store.ts\nfunction isElementPreceding(a, b) {\n return Boolean(\n b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING\n );\n}\nfunction sortBasedOnDOMPosition(items) {\n const pairs = items.map((item, index) => [index, item]);\n let isOrderDifferent = false;\n pairs.sort(([indexA, a], [indexB, b]) => {\n const elementA = a.element;\n const elementB = b.element;\n if (elementA === elementB)\n return 0;\n if (!elementA || !elementB)\n return 0;\n if (isElementPreceding(elementA, elementB)) {\n if (indexA > indexB) {\n isOrderDifferent = true;\n }\n return -1;\n }\n if (indexA < indexB) {\n isOrderDifferent = true;\n }\n return 1;\n });\n if (isOrderDifferent) {\n return pairs.map(([_, item]) => item);\n }\n return items;\n}\nfunction getCommonParent(items) {\n var _a;\n const firstItem = items.find((item) => !!item.element);\n const lastItem = [...items].reverse().find((item) => !!item.element);\n let parentElement = (_a = firstItem == null ? void 0 : firstItem.element) == null ? void 0 : _a.parentElement;\n while (parentElement && (lastItem == null ? void 0 : lastItem.element)) {\n const parent = parentElement;\n if (lastItem && parent.contains(lastItem.element)) {\n return parentElement;\n }\n parentElement = parentElement.parentElement;\n }\n return getDocument(parentElement).body;\n}\nfunction getPrivateStore(store) {\n return store == null ? void 0 : store.__unstablePrivateStore;\n}\nfunction createCollectionStore(props = {}) {\n var _a;\n throwOnConflictingProps(props, props.store);\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const items = defaultValue(\n props.items,\n syncState == null ? void 0 : syncState.items,\n props.defaultItems,\n []\n );\n const itemsMap = new Map(items.map((item) => [item.id, item]));\n const initialState = {\n items,\n renderedItems: defaultValue(syncState == null ? void 0 : syncState.renderedItems, [])\n };\n const syncPrivateStore = getPrivateStore(props.store);\n const privateStore = createStore(\n { items, renderedItems: initialState.renderedItems },\n syncPrivateStore\n );\n const collection = createStore(initialState, props.store);\n const sortItems = (renderedItems) => {\n const sortedItems = sortBasedOnDOMPosition(renderedItems);\n privateStore.setState(\"renderedItems\", sortedItems);\n collection.setState(\"renderedItems\", sortedItems);\n };\n setup(collection, () => init(privateStore));\n setup(privateStore, () => {\n return batch(privateStore, [\"items\"], (state) => {\n collection.setState(\"items\", state.items);\n });\n });\n setup(privateStore, () => {\n return batch(privateStore, [\"renderedItems\"], (state) => {\n let firstRun = true;\n let raf = requestAnimationFrame(() => {\n const { renderedItems } = collection.getState();\n if (state.renderedItems === renderedItems)\n return;\n sortItems(state.renderedItems);\n });\n if (typeof IntersectionObserver !== \"function\") {\n return () => cancelAnimationFrame(raf);\n }\n const ioCallback = () => {\n if (firstRun) {\n firstRun = false;\n return;\n }\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => sortItems(state.renderedItems));\n };\n const root = getCommonParent(state.renderedItems);\n const observer = new IntersectionObserver(ioCallback, { root });\n for (const item of state.renderedItems) {\n if (!item.element)\n continue;\n observer.observe(item.element);\n }\n return () => {\n cancelAnimationFrame(raf);\n observer.disconnect();\n };\n });\n });\n const mergeItem = (item, setItems, canDeleteFromMap = false) => {\n let prevItem;\n setItems((items2) => {\n const index = items2.findIndex(({ id }) => id === item.id);\n const nextItems = items2.slice();\n if (index !== -1) {\n prevItem = items2[index];\n const nextItem = __spreadValues(__spreadValues({}, prevItem), item);\n nextItems[index] = nextItem;\n itemsMap.set(item.id, nextItem);\n } else {\n nextItems.push(item);\n itemsMap.set(item.id, item);\n }\n return nextItems;\n });\n const unmergeItem = () => {\n setItems((items2) => {\n if (!prevItem) {\n if (canDeleteFromMap) {\n itemsMap.delete(item.id);\n }\n return items2.filter(({ id }) => id !== item.id);\n }\n const index = items2.findIndex(({ id }) => id === item.id);\n if (index === -1)\n return items2;\n const nextItems = items2.slice();\n nextItems[index] = prevItem;\n itemsMap.set(item.id, prevItem);\n return nextItems;\n });\n };\n return unmergeItem;\n };\n const registerItem = (item) => mergeItem(\n item,\n (getItems) => privateStore.setState(\"items\", getItems),\n true\n );\n return __spreadProps(__spreadValues({}, collection), {\n registerItem,\n renderItem: (item) => chain(\n registerItem(item),\n mergeItem(\n item,\n (getItems) => privateStore.setState(\"renderedItems\", getItems)\n )\n ),\n item: (id) => {\n if (!id)\n return null;\n let item = itemsMap.get(id);\n if (!item) {\n const { items: items2 } = collection.getState();\n item = items2.find((item2) => item2.id === id);\n if (item) {\n itemsMap.set(id, item);\n }\n }\n return item || null;\n },\n // @ts-expect-error Internal\n __unstablePrivateStore: privateStore\n });\n}\n\nexport {\n createCollectionStore\n};\n","\"use client\";\nimport {\n createCollectionStore\n} from \"./URUD7X4C.js\";\nimport {\n createStore,\n setup,\n sync\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n flatten2DArray,\n reverseArray\n} from \"./7PRQYBBV.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/composite/composite-store.ts\nvar NULL_ITEM = { id: null };\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItems(items, excludeId) {\n return items.filter((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getOppositeOrientation(orientation) {\n if (orientation === \"vertical\")\n return \"horizontal\";\n if (orientation === \"horizontal\")\n return \"vertical\";\n return;\n}\nfunction getItemsInRow(items, rowId) {\n return items.filter((item) => item.rowId === rowId);\n}\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction getMaxRowLength(array) {\n let maxLength = 0;\n for (const { length } of array) {\n if (length > maxLength) {\n maxLength = length;\n }\n }\n return maxLength;\n}\nfunction createEmptyItem(rowId) {\n return {\n id: \"__EMPTY_ITEM__\",\n disabled: true,\n rowId\n };\n}\nfunction normalizeRows(rows, activeId, focusShift) {\n const maxLength = getMaxRowLength(rows);\n for (const row of rows) {\n for (let i = 0; i < maxLength; i += 1) {\n const item = row[i];\n if (!item || focusShift && item.disabled) {\n const isFirst = i === 0;\n const previousItem = isFirst && focusShift ? findFirstEnabledItem(row) : row[i - 1];\n row[i] = previousItem && activeId !== previousItem.id && focusShift ? previousItem : createEmptyItem(previousItem == null ? void 0 : previousItem.rowId);\n }\n }\n }\n return rows;\n}\nfunction verticalizeItems(items) {\n const rows = groupItemsByRows(items);\n const maxLength = getMaxRowLength(rows);\n const verticalized = [];\n for (let i = 0; i < maxLength; i += 1) {\n for (const row of rows) {\n const item = row[i];\n if (item) {\n verticalized.push(__spreadProps(__spreadValues({}, item), {\n // If there's no rowId, it means that it's not a grid composite, but\n // a single row instead. So, instead of verticalizing it, that is,\n // assigning a different rowId based on the column index, we keep it\n // undefined so they will be part of the same row. This is useful\n // when using up/down on one-dimensional composites.\n rowId: item.rowId ? `${i}` : void 0\n }));\n }\n }\n }\n return verticalized;\n}\nfunction createCompositeStore(props = {}) {\n var _a;\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const collection = createCollectionStore(props);\n const activeId = defaultValue(\n props.activeId,\n syncState == null ? void 0 : syncState.activeId,\n props.defaultActiveId\n );\n const initialState = __spreadProps(__spreadValues({}, collection.getState()), {\n activeId,\n baseElement: defaultValue(syncState == null ? void 0 : syncState.baseElement, null),\n includesBaseElement: defaultValue(\n props.includesBaseElement,\n syncState == null ? void 0 : syncState.includesBaseElement,\n activeId === null\n ),\n moves: defaultValue(syncState == null ? void 0 : syncState.moves, 0),\n orientation: defaultValue(\n props.orientation,\n syncState == null ? void 0 : syncState.orientation,\n \"both\"\n ),\n rtl: defaultValue(props.rtl, syncState == null ? void 0 : syncState.rtl, false),\n virtualFocus: defaultValue(\n props.virtualFocus,\n syncState == null ? void 0 : syncState.virtualFocus,\n false\n ),\n focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, false),\n focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, false),\n focusShift: defaultValue(props.focusShift, syncState == null ? void 0 : syncState.focusShift, false)\n });\n const composite = createStore(initialState, collection, props.store);\n setup(\n composite,\n () => sync(composite, [\"renderedItems\", \"activeId\"], (state) => {\n composite.setState(\"activeId\", (activeId2) => {\n var _a2;\n if (activeId2 !== void 0)\n return activeId2;\n return (_a2 = findFirstEnabledItem(state.renderedItems)) == null ? void 0 : _a2.id;\n });\n })\n );\n const getNextId = (items, orientation, hasNullItem, skip) => {\n var _a2, _b;\n const { activeId: activeId2, rtl, focusLoop, focusWrap, includesBaseElement } = composite.getState();\n const isHorizontal = orientation !== \"vertical\";\n const isRTL = rtl && isHorizontal;\n const allItems = isRTL ? reverseArray(items) : items;\n if (activeId2 == null) {\n return (_a2 = findFirstEnabledItem(allItems)) == null ? void 0 : _a2.id;\n }\n const activeItem = allItems.find((item) => item.id === activeId2);\n if (!activeItem) {\n return (_b = findFirstEnabledItem(allItems)) == null ? void 0 : _b.id;\n }\n const isGrid = !!activeItem.rowId;\n const activeIndex = allItems.indexOf(activeItem);\n const nextItems = allItems.slice(activeIndex + 1);\n const nextItemsInRow = getItemsInRow(nextItems, activeItem.rowId);\n if (skip !== void 0) {\n const nextEnabledItemsInRow = getEnabledItems(nextItemsInRow, activeId2);\n const nextItem2 = nextEnabledItemsInRow.slice(skip)[0] || // If we can't find an item, just return the last one.\n nextEnabledItemsInRow[nextEnabledItemsInRow.length - 1];\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n const oppositeOrientation = getOppositeOrientation(\n // If it's a grid and orientation is not set, it's a next/previous call,\n // which is inherently horizontal. up/down will call next with orientation\n // set to vertical by default (see below on up/down methods).\n isGrid ? orientation || \"horizontal\" : orientation\n );\n const canLoop = focusLoop && focusLoop !== oppositeOrientation;\n const canWrap = isGrid && focusWrap && focusWrap !== oppositeOrientation;\n hasNullItem = hasNullItem || !isGrid && canLoop && includesBaseElement;\n if (canLoop) {\n const loopItems = canWrap && !hasNullItem ? allItems : getItemsInRow(allItems, activeItem.rowId);\n const sortedItems = flipItems(loopItems, activeId2, hasNullItem);\n const nextItem2 = findFirstEnabledItem(sortedItems, activeId2);\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n if (canWrap) {\n const nextItem2 = findFirstEnabledItem(\n // We can use nextItems, which contains all the next items, including\n // items from other rows, to wrap between rows. However, if there is a\n // null item (the composite container), we'll only use the next items in\n // the row. So moving next from the last item will focus on the\n // composite container. On grid composites, horizontal navigation never\n // focuses on the composite container, only vertical.\n hasNullItem ? nextItemsInRow : nextItems,\n activeId2\n );\n const nextId = hasNullItem ? (nextItem2 == null ? void 0 : nextItem2.id) || null : nextItem2 == null ? void 0 : nextItem2.id;\n return nextId;\n }\n const nextItem = findFirstEnabledItem(nextItemsInRow, activeId2);\n if (!nextItem && hasNullItem) {\n return null;\n }\n return nextItem == null ? void 0 : nextItem.id;\n };\n return __spreadProps(__spreadValues(__spreadValues({}, collection), composite), {\n setBaseElement: (element) => composite.setState(\"baseElement\", element),\n setActiveId: (id) => composite.setState(\"activeId\", id),\n move: (id) => {\n if (id === void 0)\n return;\n composite.setState(\"activeId\", id);\n composite.setState(\"moves\", (moves) => moves + 1);\n },\n first: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(composite.getState().renderedItems)) == null ? void 0 : _a2.id;\n },\n last: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(reverseArray(composite.getState().renderedItems))) == null ? void 0 : _a2.id;\n },\n next: (skip) => {\n const { renderedItems, orientation } = composite.getState();\n return getNextId(renderedItems, orientation, false, skip);\n },\n previous: (skip) => {\n var _a2;\n const { renderedItems, orientation, includesBaseElement } = composite.getState();\n const isGrid = !!((_a2 = findFirstEnabledItem(renderedItems)) == null ? void 0 : _a2.rowId);\n const hasNullItem = !isGrid && includesBaseElement;\n return getNextId(\n reverseArray(renderedItems),\n orientation,\n hasNullItem,\n skip\n );\n },\n down: (skip) => {\n const {\n activeId: activeId2,\n renderedItems,\n focusShift,\n focusLoop,\n includesBaseElement\n } = composite.getState();\n const shouldShift = focusShift && !skip;\n const verticalItems = verticalizeItems(\n flatten2DArray(\n normalizeRows(groupItemsByRows(renderedItems), activeId2, shouldShift)\n )\n );\n const canLoop = focusLoop && focusLoop !== \"horizontal\";\n const hasNullItem = canLoop && includesBaseElement;\n return getNextId(verticalItems, \"vertical\", hasNullItem, skip);\n },\n up: (skip) => {\n const { activeId: activeId2, renderedItems, focusShift, includesBaseElement } = composite.getState();\n const shouldShift = focusShift && !skip;\n const verticalItems = verticalizeItems(\n reverseArray(\n flatten2DArray(\n normalizeRows(\n groupItemsByRows(renderedItems),\n activeId2,\n shouldShift\n )\n )\n )\n );\n const hasNullItem = includesBaseElement;\n return getNextId(verticalItems, \"vertical\", hasNullItem, skip);\n }\n });\n}\n\nexport {\n createCompositeStore\n};\n","\"use client\";\n\n// src/utils/array.ts\nfunction toArray(arg) {\n if (Array.isArray(arg)) {\n return arg;\n }\n return typeof arg !== \"undefined\" ? [arg] : [];\n}\nfunction addItemToArray(array, item, index = -1) {\n if (!(index in array)) {\n return [...array, item];\n }\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction flatten2DArray(array) {\n const flattened = [];\n for (const row of array) {\n flattened.push(...row);\n }\n return flattened;\n}\nfunction reverseArray(array) {\n return array.slice().reverse();\n}\n\nexport {\n toArray,\n addItemToArray,\n flatten2DArray,\n reverseArray\n};\n","\"use client\";\nimport {\n createDialogStore\n} from \"./5RJNXXU2.js\";\nimport {\n createStore,\n mergeStore,\n omit,\n throwOnConflictingProps\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover-store.ts\nfunction createPopoverStore(_a = {}) {\n var _b = _a, {\n popover: otherPopover\n } = _b, props = __objRest(_b, [\n \"popover\"\n ]);\n const store = mergeStore(\n props.store,\n omit(otherPopover, [\n \"arrowElement\",\n \"anchorElement\",\n \"contentElement\",\n \"popoverElement\",\n \"disclosureElement\"\n ])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const dialog = createDialogStore(__spreadProps(__spreadValues({}, props), { store }));\n const placement = defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n );\n const initialState = __spreadProps(__spreadValues({}, dialog.getState()), {\n placement,\n currentPlacement: placement,\n anchorElement: defaultValue(syncState == null ? void 0 : syncState.anchorElement, null),\n popoverElement: defaultValue(syncState == null ? void 0 : syncState.popoverElement, null),\n arrowElement: defaultValue(syncState == null ? void 0 : syncState.arrowElement, null),\n rendered: Symbol(\"rendered\")\n });\n const popover = createStore(initialState, dialog, store);\n return __spreadProps(__spreadValues(__spreadValues({}, dialog), popover), {\n setAnchorElement: (element) => popover.setState(\"anchorElement\", element),\n setPopoverElement: (element) => popover.setState(\"popoverElement\", element),\n setArrowElement: (element) => popover.setState(\"arrowElement\", element),\n render: () => popover.setState(\"rendered\", Symbol(\"rendered\"))\n });\n}\n\nexport {\n createPopoverStore\n};\n","\"use client\";\nimport {\n CollectionContextProvider,\n CollectionScopedContextProvider\n} from \"./MADQZZRL.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/composite/composite-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [CollectionContextProvider],\n [CollectionScopedContextProvider]\n);\nvar useCompositeContext = ctx.useContext;\nvar useCompositeScopedContext = ctx.useScopedContext;\nvar useCompositeProviderContext = ctx.useProviderContext;\nvar CompositeContextProvider = ctx.ContextProvider;\nvar CompositeScopedContextProvider = ctx.ScopedContextProvider;\nvar CompositeItemContext = createContext(\n void 0\n);\nvar CompositeRowContext = createContext(\n void 0\n);\n\nexport {\n useCompositeContext,\n useCompositeScopedContext,\n useCompositeProviderContext,\n CompositeContextProvider,\n CompositeScopedContextProvider,\n CompositeItemContext,\n CompositeRowContext\n};\n","\"use client\";\n\n// src/composite/utils.ts\nimport { getDocument, isTextField } from \"@ariakit/core/utils/dom\";\nvar NULL_ITEM = { id: null };\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItem(store, id) {\n if (!id)\n return null;\n return store.item(id) || null;\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction selectTextField(element, collapseToEnd = false) {\n if (isTextField(element)) {\n element.setSelectionRange(\n collapseToEnd ? element.value.length : 0,\n element.value.length\n );\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n selection == null ? void 0 : selection.selectAllChildren(element);\n if (collapseToEnd) {\n selection == null ? void 0 : selection.collapseToEnd();\n }\n }\n}\nvar FOCUS_SILENTLY = Symbol(\"FOCUS_SILENTLY\");\nfunction focusSilently(element) {\n element[FOCUS_SILENTLY] = true;\n element.focus({ preventScroll: true });\n}\nfunction silentlyFocused(element) {\n const isSilentlyFocused = element[FOCUS_SILENTLY];\n delete element[FOCUS_SILENTLY];\n return isSilentlyFocused;\n}\nfunction isItem(store, element, exclude) {\n if (!element)\n return false;\n if (element === exclude)\n return false;\n const item = store.item(element.id);\n if (!item)\n return false;\n if (exclude && item.element === exclude)\n return false;\n return true;\n}\n\nexport {\n flipItems,\n findFirstEnabledItem,\n getEnabledItem,\n groupItemsByRows,\n selectTextField,\n focusSilently,\n silentlyFocused,\n isItem\n};\n","\"use client\";\nimport {\n HovercardContextProvider,\n HovercardScopedContextProvider\n} from \"./TWDHCE7Y.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/tooltip/tooltip-context.tsx\nvar ctx = createStoreContext(\n [HovercardContextProvider],\n [HovercardScopedContextProvider]\n);\nvar useTooltipContext = ctx.useContext;\nvar useTooltipScopedContext = ctx.useScopedContext;\nvar useTooltipProviderContext = ctx.useProviderContext;\nvar TooltipContextProvider = ctx.ContextProvider;\nvar TooltipScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useTooltipContext,\n useTooltipScopedContext,\n useTooltipProviderContext,\n TooltipContextProvider,\n TooltipScopedContextProvider\n};\n","\"use client\";\n\n// src/group/group-label-context.ts\nimport { createContext } from \"react\";\nvar GroupLabelContext = createContext(void 0);\n\nexport {\n GroupLabelContext\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\nimport {\n useUpdateEffect\n} from \"./6O5OEQGF.js\";\n\n// src/collection/collection-store.ts\nimport * as Core from \"@ariakit/core/collection/collection-store\";\nfunction useCollectionStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store]);\n useStoreProps(store, props, \"items\", \"setItems\");\n return store;\n}\nfunction useCollectionStore(props = {}) {\n const [store, update] = useStore(Core.createCollectionStore, props);\n return useCollectionStoreProps(store, update, props);\n}\n\nexport {\n useCollectionStoreProps,\n useCollectionStore\n};\n","\"use client\";\nimport {\n useCollectionStoreProps\n} from \"./Y6GYTNQ2.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\n\n// src/composite/composite-store.ts\nimport * as Core from \"@ariakit/core/composite/composite-store\";\nfunction useCompositeStoreProps(store, update, props) {\n store = useCollectionStoreProps(store, update, props);\n useStoreProps(store, props, \"activeId\", \"setActiveId\");\n useStoreProps(store, props, \"includesBaseElement\");\n useStoreProps(store, props, \"virtualFocus\");\n useStoreProps(store, props, \"orientation\");\n useStoreProps(store, props, \"rtl\");\n useStoreProps(store, props, \"focusLoop\");\n useStoreProps(store, props, \"focusWrap\");\n useStoreProps(store, props, \"focusShift\");\n return store;\n}\nfunction useCompositeStore(props = {}) {\n const [store, update] = useStore(Core.createCompositeStore, props);\n return useCompositeStoreProps(store, update, props);\n}\n\nexport {\n useCompositeStoreProps,\n useCompositeStore\n};\n","const sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle