diff --git a/app/javascript/Authentication/PasswordInputWithStrengthCheck.tsx b/app/javascript/Authentication/PasswordInputWithStrengthCheck.tsx index 066cc026715..f137a756905 100644 --- a/app/javascript/Authentication/PasswordInputWithStrengthCheck.tsx +++ b/app/javascript/Authentication/PasswordInputWithStrengthCheck.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import zxcvbn, { ZXCVBNResult } from 'zxcvbn'; import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; -import { useLitformPopperWithAutoClosing, useToggleOpen } from '@neinteractiveliterature/litform'; +import { useLitformFloatingWithAutoClosing, useToggleOpen } from '@neinteractiveliterature/litform'; type PasswordFeedbackProps = { result?: ZXCVBNResult | null; @@ -101,7 +101,7 @@ function PasswordInputWithStrengthCheck({ const [arrow, setArrow] = useState(null); const [dropdownOpen, setDropdownOpen] = useState(false); - const { styles, attributes, state, update } = useLitformPopperWithAutoClosing( + const { styles, attributes, state, update } = useLitformFloatingWithAutoClosing( dropdownMenu, dropdownButton, arrow, @@ -157,8 +157,8 @@ function PasswordInputWithStrengthCheck({ 'd-none': !dropdownOpen || !hasFeedback, })} ref={setDropdownMenu} - style={styles.popper} - {...attributes.popper} + style={styles.floating} + {...attributes.floating} >
diff --git a/app/javascript/EventAdmin/index.tsx b/app/javascript/EventAdmin/index.tsx index d1bd7564fd7..e5a6b1b8747 100644 --- a/app/javascript/EventAdmin/index.tsx +++ b/app/javascript/EventAdmin/index.tsx @@ -1,7 +1,7 @@ import { useMemo, useState } from 'react'; import { NavLink, useLocation, Outlet } from 'react-router'; import classNames from 'classnames'; -import { useLitformPopperWithAutoClosing } from '@neinteractiveliterature/litform'; +import { useLitformFloatingWithAutoClosing } from '@neinteractiveliterature/litform'; import sortEventCategories from './sortEventCategories'; import buildEventCategoryUrl from './buildEventCategoryUrl'; @@ -22,9 +22,9 @@ function EventAdmin() { const [menu, setMenu] = useState(null); const [menuDropdown, setMenuDropdown] = useState(null); - const { styles, attributes } = useLitformPopperWithAutoClosing(menu, menuDropdown, undefined, setMenuOpen, { + const { styles, attributes } = useLitformFloatingWithAutoClosing(menu, menuDropdown, undefined, setMenuOpen, { placement: 'bottom-start', - modifiers: [{ name: 'offset', options: { offset: [0, 2] } }], + offset: 2, }); if (authorizationWarning) return authorizationWarning; @@ -45,9 +45,9 @@ function EventAdmin() {
{eventCategories.map((eventCategory) => ( (null); const [visible, setVisible] = useState(false); - const { styles, attributes, state, update } = useLitformPopperWithAutoClosing( + const { styles, attributes, state, update } = useLitformFloatingWithAutoClosing( tooltip, dropdownButton, arrow, @@ -96,8 +96,8 @@ function EventColorPicker({ variant, eventRunProps, eventCategory, color, setCol 'd-none': !visible, })} ref={setTooltip} - style={styles.popper} - {...attributes.popper} + style={styles.floating} + {...attributes.floating} >
diff --git a/app/javascript/EventsApp/MySignupQueue/UserSignupQueueItem.tsx b/app/javascript/EventsApp/MySignupQueue/UserSignupQueueItem.tsx index 819b17058f6..27b4869a17e 100644 --- a/app/javascript/EventsApp/MySignupQueue/UserSignupQueueItem.tsx +++ b/app/javascript/EventsApp/MySignupQueue/UserSignupQueueItem.tsx @@ -200,7 +200,6 @@ export default function UserSignupQueueItem({ } popperOptions={{ placement: 'bottom-end', - modifiers: [], }} >
diff --git a/app/javascript/EventsApp/RunList/RunListEventRun.tsx b/app/javascript/EventsApp/RunList/RunListEventRun.tsx index 1773a7646e7..de9a9d11baa 100644 --- a/app/javascript/EventsApp/RunList/RunListEventRun.tsx +++ b/app/javascript/EventsApp/RunList/RunListEventRun.tsx @@ -1,4 +1,4 @@ -import { useLitformPopperWithAutoClosing } from '@neinteractiveliterature/litform'; +import { useLitformFloatingWithAutoClosing } from '@neinteractiveliterature/litform'; import { useCallback, useMemo, useState } from 'react'; import { FiniteTimespan } from '../../Timespan'; @@ -31,7 +31,7 @@ export default function RunListEventRun({ const [runDetailsElement, setRunDetailsElement] = useState(null); const [arrow, setArrow] = useState(null); - const { styles, attributes, state } = useLitformPopperWithAutoClosing( + const { styles, attributes, state } = useLitformFloatingWithAutoClosing( runDetailsElement, runDisplayElement, arrow, diff --git a/app/javascript/EventsApp/ScheduleGrid/RunDetails.tsx b/app/javascript/EventsApp/ScheduleGrid/RunDetails.tsx index 7180283d1c9..5bd78304cac 100644 --- a/app/javascript/EventsApp/ScheduleGrid/RunDetails.tsx +++ b/app/javascript/EventsApp/ScheduleGrid/RunDetails.tsx @@ -1,8 +1,7 @@ import { useContext, useMemo } from 'react'; import * as React from 'react'; import { Link } from 'react-router'; -import { Placement } from '@popperjs/core'; -import { usePopper } from 'react-popper'; +import type { LitformFloatingResult, Placement } from '@neinteractiveliterature/litform'; import { useTranslation } from 'react-i18next'; import { describeAvailability, calculateAvailability, describeWaitlist } from './AvailabilityUtils'; @@ -23,8 +22,8 @@ import scheduleGridStyles from 'styles/schedule_grid.module.scss'; export type RunDetailsProps = { placement?: Placement; - styles: ReturnType['styles']; - attributes: ReturnType['attributes']; + styles: LitformFloatingResult['styles']; + attributes: LitformFloatingResult['attributes']; toggle: () => void; event: ScheduleEvent; run: ScheduleRun; @@ -92,9 +91,9 @@ const RunDetails = React.forwardRef(function Ru
diff --git a/app/javascript/EventsApp/ScheduleGrid/ScheduleGridEventRun.tsx b/app/javascript/EventsApp/ScheduleGrid/ScheduleGridEventRun.tsx index 04a27480c8d..8f5632e654c 100644 --- a/app/javascript/EventsApp/ScheduleGrid/ScheduleGridEventRun.tsx +++ b/app/javascript/EventsApp/ScheduleGrid/ScheduleGridEventRun.tsx @@ -1,5 +1,5 @@ import { useContext, useMemo, useCallback, Ref, useState } from 'react'; -import { useLitformPopper } from '@neinteractiveliterature/litform'; +import { useLitformFloating } from '@neinteractiveliterature/litform'; import { ScheduleGridContext } from './ScheduleGridContext'; import SignupCountData from '../SignupCountData'; @@ -29,7 +29,7 @@ function ScheduleGridEventRun({ const [runDetailsElement, setRunDetailsElement] = useState(null); const [arrow, setArrow] = useState(null); - const { styles, attributes, state, update } = useLitformPopper(runDetailsElement, runDisplayElement, arrow); + const { styles, attributes, state, update } = useLitformFloating(runDetailsElement, runDisplayElement, arrow); const run = useMemo(() => schedule.getRun(runDimensions.runId), [schedule, runDimensions.runId]); const event = useMemo(() => schedule.getEventForRun(runDimensions.runId), [schedule, runDimensions.runId]); diff --git a/app/javascript/NavigationBar/NavigationSection.tsx b/app/javascript/NavigationBar/NavigationSection.tsx index d52b5874285..549af7b2dc0 100644 --- a/app/javascript/NavigationBar/NavigationSection.tsx +++ b/app/javascript/NavigationBar/NavigationSection.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames'; import { ReactNode, useState } from 'react'; -import { useLitformPopperWithAutoClosing, useToggleOpen } from '@neinteractiveliterature/litform'; +import { useLitformFloatingWithAutoClosing, useToggleOpen } from '@neinteractiveliterature/litform'; import useAutoCloseOnNavigate from './useAutoCloseOnNavigate'; @@ -14,13 +14,13 @@ function NavigationSection({ children, label }: NavigationSectionProps): React.J const [dropdownMenu, setDropdownMenu] = useState(null); const [dropdownOpen, setDropdownOpen] = useState(false); - const { styles, attributes, update } = useLitformPopperWithAutoClosing( + const { styles, attributes, update } = useLitformFloatingWithAutoClosing( dropdownMenu, dropdownLi, undefined, setDropdownOpen, { - modifiers: [{ name: 'offset', options: { offset: [0, 2] } }], + offset: 2, placement: 'bottom-start', }, ); @@ -40,9 +40,9 @@ function NavigationSection({ children, label }: NavigationSectionProps): React.J ref={setDropdownMenu} style={{ zIndex: 1100, - ...styles.popper, + ...styles.floating, }} - {...attributes.popper} + {...attributes.floating} > {children}
diff --git a/app/javascript/NavigationBar/UserNavigationSection.tsx b/app/javascript/NavigationBar/UserNavigationSection.tsx index a4435f4479b..553a73f2e23 100644 --- a/app/javascript/NavigationBar/UserNavigationSection.tsx +++ b/app/javascript/NavigationBar/UserNavigationSection.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import { Link } from 'react-router'; import { useTranslation, Trans } from 'react-i18next'; import classNames from 'classnames'; -import { useLitformPopperWithAutoClosing, useToggleOpen } from '@neinteractiveliterature/litform'; +import { useLitformFloatingWithAutoClosing, useToggleOpen } from '@neinteractiveliterature/litform'; import htmlFetch from './htmlFetch'; import SignInButton from '../Authentication/SignInButton'; @@ -154,13 +154,13 @@ function UserNavigationSection(): React.JSX.Element { const [dropdownMenu, setDropdownMenu] = useState(null); const [dropdownOpen, setDropdownOpen] = useState(false); - const { styles, attributes, update } = useLitformPopperWithAutoClosing( + const { styles, attributes, update } = useLitformFloatingWithAutoClosing( dropdownMenu, referenceElement, undefined, setDropdownOpen, { - modifiers: [{ name: 'offset', options: { offset: [0, 2] } }], + offset: 2, placement: 'bottom-end', }, ); @@ -180,9 +180,9 @@ function UserNavigationSection(): React.JSX.Element { ref={setDropdownMenu} style={{ zIndex: 1100, - ...styles.popper, + ...styles.floating, }} - {...attributes.popper} + {...attributes.floating} > {currentUser && ( @@ -245,9 +245,9 @@ function UserNavigationSection(): React.JSX.Element { ref={setDropdownMenu} style={{ zIndex: 1100, - ...styles.popper, + ...styles.floating, }} - {...attributes.popper} + {...attributes.floating} >
  • , }; export type ChoiceSetFilterProps, TValue> = - | ChoiceSetFilterSingleProps - | ChoiceSetFilterMultipleProps; + ChoiceSetFilterSingleProps | ChoiceSetFilterMultipleProps; function ChoiceSetFilter, TValue>( props: ChoiceSetFilterProps, @@ -72,40 +70,24 @@ function ChoiceSetFilter, TValue>( const [dropdownMenu, setDropdownMenu] = useState(null); const [dropdownOpen, setDropdownOpen] = useState(false); - const modifiers: Modifier[] = useMemo( - () => [ - { - name: 'sameWidth', - enabled: true, - fn: ({ state }) => ({ - ...state, - styles: { - ...state.styles, - popper: { - ...state.styles.popper, - width: `${max([state.rects.reference.width, state.rects.popper.width])}px`, - }, - }, - }), - phase: 'beforeWrite', - requires: ['computeStyles'], + const middleware = useMemo(() => { + const sizeOptions: SizeOptions = { + apply({ rects, elements }) { + Object.assign(elements.floating.style, { minWidth: `${rects.reference.width}px` }); }, - { - name: 'offset', - options: { offset: [0, -3] }, - }, - ], - [], - ); + }; + return [size(sizeOptions)]; + }, []); - const { styles, attributes, update } = useLitformPopperWithAutoClosing( + const { styles, attributes, update } = useLitformFloatingWithAutoClosing( dropdownMenu, dropdownButton, undefined, setDropdownOpen, { placement: 'bottom-start', - modifiers, + offset: -3, + middleware, }, ); @@ -222,11 +204,11 @@ function ChoiceSetFilter, TValue>( className={classNames('card align-items-stretch', { invisible: !dropdownOpen })} ref={setDropdownMenu} style={{ - ...styles.popper, + ...styles.floating, borderTop: 'none', zIndex: 1100, }} - {...attributes.popper} + {...attributes.floating} >
    {props.multiple ? ( diff --git a/app/javascript/UIComponents/DropdownMenu.tsx b/app/javascript/UIComponents/DropdownMenu.tsx index b6c6b74c594..a62dd51eb62 100644 --- a/app/javascript/UIComponents/DropdownMenu.tsx +++ b/app/javascript/UIComponents/DropdownMenu.tsx @@ -1,6 +1,6 @@ import React, { CSSProperties, forwardRef, ReactNode, useImperativeHandle, useState } from 'react'; import classNames from 'classnames'; -import { useLitformPopperWithAutoClosing, useToggleOpen } from '@neinteractiveliterature/litform'; +import { useLitformFloatingWithAutoClosing, useToggleOpen } from '@neinteractiveliterature/litform'; import useAutoCloseOnNavigate from '../NavigationBar/useAutoCloseOnNavigate'; import { createPortal } from 'react-dom'; @@ -17,7 +17,7 @@ export type DropdownMenuProps = { children: ReactNode; dropdownClassName?: string; dropdownStyle?: CSSProperties; - popperOptions?: Parameters[4]; + popperOptions?: Parameters[4]; shouldAutoCloseOnNavigate?: Parameters[1]; }; @@ -40,14 +40,14 @@ export const DropdownMenu = forwardRef(function DropdownMenuInner( useImperativeHandle(ref, () => ({ dropdownOpen, setDropdownOpen }) satisfies DropdownMenuRef); - const { styles, attributes, update } = useLitformPopperWithAutoClosing( + const { styles, attributes, update } = useLitformFloatingWithAutoClosing( dropdownMenu, dropdownButton, undefined, setDropdownOpen, { placement: 'bottom-start', - modifiers: [{ name: 'offset', options: { offset: [0, 2] } }, ...(popperOptions?.modifiers ?? [])], + offset: 2, ...popperOptions, }, ); @@ -59,8 +59,8 @@ export const DropdownMenu = forwardRef(function DropdownMenuInner(
    {children}
    diff --git a/app/javascript/UIComponents/ScheduledValuePreview.tsx b/app/javascript/UIComponents/ScheduledValuePreview.tsx index 8a77c5e9f56..584969c83a8 100644 --- a/app/javascript/UIComponents/ScheduledValuePreview.tsx +++ b/app/javascript/UIComponents/ScheduledValuePreview.tsx @@ -2,7 +2,7 @@ import { memo, ReactNode, RefObject, useCallback, useMemo, useRef, useState } fr import minBy from 'lodash/minBy'; import maxBy from 'lodash/maxBy'; import { DateTime, WeekdayNumbers } from 'luxon'; -import { notEmpty, Tooltip, useLitformPopper } from '@neinteractiveliterature/litform'; +import { notEmpty, Tooltip, useLitformFloating } from '@neinteractiveliterature/litform'; import { EditingScheduledValue } from '../BuiltInFormControls/ScheduledValueEditor'; import { findTimespanAt, findValueAt } from '../ScheduledValueUtils'; @@ -267,7 +267,7 @@ function ScheduledValuePreview({ // eslint-disable-next-line react-hooks/refs const focusedDateElement = focusedDate ? (dateElementMapRef.current.get(focusedDate.valueOf()) ?? null) : null; - const { styles, attributes, state } = useLitformPopper(tooltip, focusedDateElement, arrow); + const { styles, attributes, state } = useLitformFloating(tooltip, focusedDateElement, arrow); const focusDate = useCallback((value: DateTime) => setFocusedDate(value), []); @@ -297,7 +297,7 @@ function ScheduledValuePreview({ dateElementMapRef={dateElementMapRef} /> =16.8.0" + react-dom: ">=16.8.0" + checksum: 10c0/9fa9851069738cb9591a1ab2da16e257f193eae5fd2d6d48ad0b1e73f3c049929b6805c5ad43d4af3c1da63c60b215b0ee4651a1fe5caeb80e66d9d423744348 + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.2.12": + version: 0.2.12 + resolution: "@floating-ui/utils@npm:0.2.12" + checksum: 10c0/bb910b90d56991a62011afaf5f8e0c4b7fb6dab69403f4dd17fbd6eb25560b28d533dff9791f270b4f459852e9006a1077b5d73cbedb5e34d9424afc6a828314 languageName: node linkType: hard @@ -5606,9 +5618,9 @@ __metadata: languageName: node linkType: hard -"@neinteractiveliterature/litform-codemirror@npm:^0.35.2": - version: 0.35.2 - resolution: "@neinteractiveliterature/litform-codemirror@npm:0.35.2" +"@neinteractiveliterature/litform-codemirror@npm:^0.36.1": + version: 0.36.1 + resolution: "@neinteractiveliterature/litform-codemirror@npm:0.36.1" dependencies: "@codemirror/commands": "npm:^6.8.0" "@codemirror/lang-html": "npm:^6.4.9" @@ -5618,20 +5630,20 @@ __metadata: "@lezer/common": "npm:^1.2.3" "@lezer/highlight": "npm:^1.2.1" "@lezer/lr": "npm:^1.4.2" - "@neinteractiveliterature/litform-core": "npm:^0.35.2" + "@neinteractiveliterature/litform-core": "npm:^0.36.1" classnames: "npm:^2.5.1" codemirror: "npm:^6.0.1" peerDependencies: react: ">= 18" - checksum: 10c0/afc3869e3a4e96d19ac790ba9e5b4082d2cccc9e17bfaacd8748765af43a34ac55bef5c4e7c82a32f861f5d311e58d1c4f4c08e8ca8ef073d3b9cd37bab44180 + checksum: 10c0/804660442c56c0abb7caeaab4e1e584658df8e98fbca7f8f0beb24ebe7705a15a9673585059e7fd23d402fb77c8e895c375faf38edc66b00f931e9f302d008a6 languageName: node linkType: hard -"@neinteractiveliterature/litform-controls@npm:^0.35.2": - version: 0.35.2 - resolution: "@neinteractiveliterature/litform-controls@npm:0.35.2" +"@neinteractiveliterature/litform-controls@npm:^0.36.1": + version: 0.36.1 + resolution: "@neinteractiveliterature/litform-controls@npm:0.36.1" dependencies: - "@neinteractiveliterature/litform-core": "npm:^0.35.2" + "@neinteractiveliterature/litform-core": "npm:^0.36.1" classnames: "npm:^2.5.1" copy-to-clipboard: "npm:^3.3.3" graphql: "npm:^16.10.0" @@ -5639,13 +5651,13 @@ __metadata: temporal-polyfill: "npm:^0.3.0" peerDependencies: react: ">= 18" - checksum: 10c0/91a06e16742d1626df4ad2adbe65c6458569c944f0ee248e0f8883342f0e1eae1a6bd2b082d36bbb798f259185da12750daaf00ce96be595ed1bf4a3b5bf2647 + checksum: 10c0/8802f423af5eeca458bb7c5a4ccc60fcccd647036535446c1dfc47defc6d92b93ff3f765a46ac70e4b72ff806d9005b7127b329a58158ae9ac15f7903d7f7d70 languageName: node linkType: hard -"@neinteractiveliterature/litform-core@npm:^0.35.2": - version: 0.35.2 - resolution: "@neinteractiveliterature/litform-core@npm:0.35.2" +"@neinteractiveliterature/litform-core@npm:^0.36.1": + version: 0.36.1 + resolution: "@neinteractiveliterature/litform-core@npm:0.36.1" dependencies: classnames: "npm:^2.5.1" graphql: "npm:^16.10.0" @@ -5654,48 +5666,51 @@ __metadata: uuid: "npm:^11.1.0" peerDependencies: react: ">= 18" - checksum: 10c0/90957b3462ceff19c395c18890683a27b01f9039eef0677b7c38584b946ef0486380c11d538861de9b55ca0442a41e1f5c9505faec9cf8e71300362ee7a0bf44 + checksum: 10c0/29bb61734ca72864b19a067ed72db855bea207789797ea3643d16a835370c80c9d671c484921902385ee680cccc3d1aac7faab79c2397ce2b4a7ae3c21116fc9 languageName: node linkType: hard -"@neinteractiveliterature/litform-modals@npm:^0.35.2": - version: 0.35.2 - resolution: "@neinteractiveliterature/litform-modals@npm:0.35.2" +"@neinteractiveliterature/litform-modals@npm:^0.36.1": + version: 0.36.1 + resolution: "@neinteractiveliterature/litform-modals@npm:0.36.1" dependencies: - "@neinteractiveliterature/litform-core": "npm:^0.35.2" + "@neinteractiveliterature/litform-core": "npm:^0.36.1" react-bootstrap4-modal: "npm:^3.0.10" peerDependencies: react: ">= 18" - checksum: 10c0/4b6982d9f52b1e3ebe9b817d378d7c378b0b51dd2d8602f7d3b71ef1dc100ca3b18c14b435b1813527b80055f2ebb736265ddb6c040a2a07463b8e521c63e024 + react-dom: ">= 18" + checksum: 10c0/b8b8c9db8cff7d67a2f77df38045631dc02acf94ffba633c9fafcd4819577174e2d9328477a782567478be60554019cf53bdf93e7bd9d09c738dc31d03c16323 languageName: node linkType: hard -"@neinteractiveliterature/litform-popovers@npm:^0.35.2": - version: 0.35.2 - resolution: "@neinteractiveliterature/litform-popovers@npm:0.35.2" +"@neinteractiveliterature/litform-popovers@npm:^0.36.1": + version: 0.36.1 + resolution: "@neinteractiveliterature/litform-popovers@npm:0.36.1" dependencies: - "@neinteractiveliterature/litform-core": "npm:^0.35.2" - "@popperjs/core": "npm:^2.11.8" + "@floating-ui/react-dom": "npm:^2.1.9" + "@neinteractiveliterature/litform-core": "npm:^0.36.1" classnames: "npm:^2.5.1" react-cool-onclickoutside: "npm:^1.7.0" - react-popper: "npm:^2.3.0" peerDependencies: react: ">= 18" react-dom: ">= 18" - checksum: 10c0/6e60ae96228e67ac6683cd388c32e86489107928e45942acab10168e6885613b9982505ab4e160d2ff9583ec7b0230508b249d9ebd3b71d2b6805ec28ee63688 + checksum: 10c0/5ec7f44d2e8038bd4671948b0fcab7d9d2e49c720d78f398185b838092d6df770c3a512a8851eadada1ad54f8a5660fe4f33c2a686f32728e5000f1c529e5871 languageName: node linkType: hard -"@neinteractiveliterature/litform@npm:0.35.2": - version: 0.35.2 - resolution: "@neinteractiveliterature/litform@npm:0.35.2" +"@neinteractiveliterature/litform@npm:0.36.1": + version: 0.36.1 + resolution: "@neinteractiveliterature/litform@npm:0.36.1" dependencies: - "@neinteractiveliterature/litform-codemirror": "npm:^0.35.2" - "@neinteractiveliterature/litform-controls": "npm:^0.35.2" - "@neinteractiveliterature/litform-core": "npm:^0.35.2" - "@neinteractiveliterature/litform-modals": "npm:^0.35.2" - "@neinteractiveliterature/litform-popovers": "npm:^0.35.2" - checksum: 10c0/32fbdd6ffeccfc8f4ee5fd8c6f40eb7d1fe64e77a87cbcbb7d5f90ba8baa9226a9487ec1d9ad55280968678a5ce6946851a71b0730c9f52cee60f9da17d04f56 + "@neinteractiveliterature/litform-codemirror": "npm:^0.36.1" + "@neinteractiveliterature/litform-controls": "npm:^0.36.1" + "@neinteractiveliterature/litform-core": "npm:^0.36.1" + "@neinteractiveliterature/litform-modals": "npm:^0.36.1" + "@neinteractiveliterature/litform-popovers": "npm:^0.36.1" + peerDependencies: + react: ">= 18" + react-dom: ">= 18" + checksum: 10c0/89ef986b8db8f83e2f305fa103c95f346b9bccb2076896d1c032de038fb52aee47019f66486bf9dbbccb382c94afacf3bd529b0c39645723f14a5330c7d747c6 languageName: node linkType: hard @@ -18797,7 +18812,7 @@ __metadata: languageName: node linkType: hard -"react-fast-compare@npm:^3.0.1, react-fast-compare@npm:^3.2.0": +"react-fast-compare@npm:^3.2.0": version: 3.2.2 resolution: "react-fast-compare@npm:3.2.2" checksum: 10c0/0bbd2f3eb41ab2ff7380daaa55105db698d965c396df73e6874831dbafec8c4b5b08ba36ff09df01526caa3c61595247e3269558c284e37646241cba2b90a367 @@ -18919,20 +18934,6 @@ __metadata: languageName: node linkType: hard -"react-popper@npm:2.3.0, react-popper@npm:^2.3.0": - version: 2.3.0 - resolution: "react-popper@npm:2.3.0" - dependencies: - react-fast-compare: "npm:^3.0.1" - warning: "npm:^4.0.2" - peerDependencies: - "@popperjs/core": ^2.0.0 - react: ^16.8.0 || ^17 || ^18 - react-dom: ^16.8.0 || ^17 || ^18 - checksum: 10c0/23f93540537ca4c035425bb8d5e51b11131fbc921d7ac1d041d0ae557feac8c877f3a012d36b94df8787803f52ed81e6df9257ac9e58719875f7805518d6db3f - languageName: node - linkType: hard - "react-refresh@npm:^0.14.0": version: 0.14.2 resolution: "react-refresh@npm:0.14.2" @@ -19798,6 +19799,7 @@ __metadata: "@dnd-kit/sortable": "npm:10.0.0" "@dnd-kit/utilities": "npm:3.2.2" "@emotion/serialize": "npm:1.3.3" + "@floating-ui/react-dom": "npm:2.1.9" "@graphql-codegen/add": "npm:7.1.1" "@graphql-codegen/cli": "npm:7.4.6" "@graphql-codegen/fragment-matcher": "npm:7.1.0" @@ -19814,7 +19816,7 @@ __metadata: "@lezer/highlight": "npm:^1.2.1" "@lezer/lr": "npm:^1.4.2" "@marsidev/react-turnstile": "npm:^1.6.1" - "@neinteractiveliterature/litform": "npm:0.35.2" + "@neinteractiveliterature/litform": "npm:0.36.1" "@playwright/test": "npm:^1.58.1" "@popperjs/core": "npm:^2.11.8" "@prettier/plugin-ruby": "npm:4.0.4" @@ -19935,7 +19937,6 @@ __metadata: react-html-id: "npm:0.1.5" react-i18next: "npm:17.1.13" react-onclickoutside: "npm:6.13.2" - react-popper: "npm:2.3.0" react-router: "npm:7.18.5" react-select: "npm:5.10.2" react-test-renderer: "npm:19.3.1" @@ -22335,15 +22336,6 @@ __metadata: languageName: node linkType: hard -"warning@npm:^4.0.2": - version: 4.0.3 - resolution: "warning@npm:4.0.3" - dependencies: - loose-envify: "npm:^1.0.0" - checksum: 10c0/aebab445129f3e104c271f1637fa38e55eb25f968593e3825bd2f7a12bd58dc3738bb70dc8ec85826621d80b4acfed5a29ebc9da17397c6125864d72301b937e - languageName: node - linkType: hard - "watchpack@npm:^2.5.1": version: 2.5.1 resolution: "watchpack@npm:2.5.1"