diff --git a/components/Alert/Alert.stories.tsx b/components/Alert/Alert.stories.tsx index ebabd25a..8524e5ab 100644 --- a/components/Alert/Alert.stories.tsx +++ b/components/Alert/Alert.stories.tsx @@ -6,13 +6,13 @@ import { H2 } from '../Heading'; import { Text } from '../Text'; import { Alert, AlertProps, AlertVariants } from './Alert'; -const BaseAlert = (props: AlertProps): JSX.Element => ; -const AlertForStory = modifyVariantsForStory(BaseAlert); +const AlertWrapper = (props: AlertProps): JSX.Element => ; + +const AlertForStory = modifyVariantsForStory(AlertWrapper); const Component: Meta = { title: 'Components/Alert', - // @ts-expect-error - component: Alert, + component: AlertForStory, }; export const Variants: StoryFn = (args) => ( diff --git a/components/DateTimePicker/DateTimePicker.stories.tsx b/components/DateTimePicker/DateTimePicker.stories.tsx index 230746d3..38eaaa83 100644 --- a/components/DateTimePicker/DateTimePicker.stories.tsx +++ b/components/DateTimePicker/DateTimePicker.stories.tsx @@ -2,52 +2,99 @@ import { Meta, StoryFn } from '@storybook/react'; import React, { useState } from 'react'; import { modifyVariantsForStory } from '../../utils/modifyVariantsForStory'; -import { Box } from '../Box'; import { Flex } from '../Flex'; import { Label } from '../Label'; import { Text } from '../Text'; import { DateTimePicker, DateTimePickerProps, DateTimePickerVariants } from './DateTimePicker'; -const BaseDateTimePicker = (props: DateTimePickerProps): JSX.Element => ( +const DateTimePickerWrapper = (props: DateTimePickerProps): JSX.Element => ( ); -const DateTimePickerForStory = modifyVariantsForStory( - BaseDateTimePicker, -); +const DateTimePickerForStory = modifyVariantsForStory< + DateTimePickerVariants, + DateTimePickerProps & { + calendarMode?: 'fluid' | 'static' | undefined; + maxDate?: Date; + minDate?: Date; + } +>(DateTimePickerWrapper); const Component: Meta = { title: 'Components/DateTimePicker', component: DateTimePickerForStory, + argTypes: { + calendarMode: { + control: 'inline-radio', + options: ['fluid', 'static'], + }, + minDate: { + control: 'date', + }, + showDatePresets: { + control: 'boolean', + }, + showTimePicker: { + control: 'boolean', + }, + }, }; -const Template: StoryFn = (args) => { - const [date, setDate] = useState(new Date()); +const DateTimePickerTemplate: StoryFn = (args) => { + const [selectedDates, onDatesChange] = useState([]); return ( -
- - - - setDate(date)} - popperPlacement="bottom-start" - selected={date} - showIcon - /> - - - - {date.toISOString()} - + + + + + + {selectedDates.length + ? selectedDates.map((date) => date.toISOString()).join(', ') + : 'None.'} + - + ); }; -export const Basic: StoryFn = Template.bind({}); +export const Base: StoryFn = DateTimePickerTemplate.bind({}); + +Base.args = { + calendarMode: 'static', + minDate: new Date(), + showDatePresets: false, + showTimePicker: false, +}; + +export const WithDatePresets: StoryFn = DateTimePickerTemplate.bind( + {}, +); + +WithDatePresets.args = { + calendarMode: 'static', + minDate: new Date(), + showDatePresets: true, + showTimePicker: false, +}; + +export const WithTimePicker: StoryFn = DateTimePickerTemplate.bind( + {}, +); + +WithTimePicker.args = { + calendarMode: 'static', + minDate: new Date(), + showDatePresets: false, + showTimePicker: true, +}; export default Component; diff --git a/components/DateTimePicker/DateTimePicker.tsx b/components/DateTimePicker/DateTimePicker.tsx index 97d57b2d..25947723 100644 --- a/components/DateTimePicker/DateTimePicker.tsx +++ b/components/DateTimePicker/DateTimePicker.tsx @@ -1,268 +1,315 @@ -import 'react-datepicker/dist/react-datepicker.css'; - -import { CalendarIcon } from '@radix-ui/react-icons'; +import { ChevronLeftIcon, ChevronRightIcon } from '@radix-ui/react-icons'; +import { DPDatesConfig, DPPropGetter, DPUserConfig, useDatePicker } from '@rehookify/datepicker'; import { addMonths, addYears } from 'date-fns'; -import React, { useEffect, useRef, useState } from 'react'; -import DatePicker, { CalendarContainer, DatePickerProps } from 'react-datepicker'; +import React, { useState } from 'react'; import { CSS, styled, VariantProps } from '../../stitches.config'; +import { Box } from '../Box'; import { Button } from '../Button'; -import { Card } from '../Card'; import { Flex } from '../Flex'; -import { Input } from '../Input'; - -const StyledWrapper = styled('div', { - display: 'flex', - width: '100%', - - // Reset - outline: 'none', - lineHeight: 0, - - position: 'relative', - backgroundColor: '$inputBg', - color: '$inputPlaceholder', - - '&::before': { - boxSizing: 'border-box', - content: '""', - position: 'absolute', - inset: 0, - pointerEvents: 'none', - }, - '&::after': { - boxSizing: 'border-box', - content: '""', - position: 'absolute', - inset: 0, - pointerEvents: 'none', - }, - - '&:focus-visible': { - '&::before': { - backgroundColor: '$inputFocusBg', - }, - '&::after': { - backgroundColor: '$primary', - opacity: 0.15, - }, - }, - - '@hover': { - '&:hover': { - '&::before': { - backgroundColor: '$inputHoverBg', - }, - '&::after': { - backgroundColor: '$primary', - opacity: 0.05, - }, - }, - }, - - '> .react-datepicker-wrapper': { - width: '100%', - }, - - '.react-datepicker': { - backgroundColor: 'transparent', - border: '2px solid $colors$buttonSecondaryBorder', - borderRadius: '$3', - // border: 'none', - // boxShadow: 'inset 0 0 0 2px $colors$buttonSecondaryBorder', - color: '$textDefault', - fontFamily: '$rubik', - - '.react-datepicker__header': { - backgroundColor: 'transparent', - - '&::before': { - boxSizing: 'border-box', - content: '""', - position: 'absolute', - top: 0, - right: 0, - bottom: 0, - left: 0, - borderRadius: '$3', - backgroundColor: '$navButtonActiveBg', - }, - - '&::after': { - boxSizing: 'border-box', - content: '""', - position: 'absolute', - top: 0, - right: 0, - bottom: 0, - left: 0, - borderRadius: '$3', - backgroundColor: '$navButtonActiveBg2', - opacity: 0.05, - }, - - '.react-datepicker__current-month, .react-datepicker-time__header': { - color: '$textDefault', - }, - }, - - '.react-datepicker__navigation': { - '.react-datepicker__navigation-icon::before': { - borderColor: '$gray11', - }, - }, - - '.react-datepicker__month-container': { - '.react-datepicker__day': { - border: '1px solid transparent', - borderRadius: '$3', - boxSizing: 'border-box', - color: '$textDefault', - - '&--outside-month': { - color: '$textSubtle', - }, - - '&--today': { - border: '1px solid $buttonSecondaryBorder', - borderRadius: '$3', - fontWeight: 'normal', - }, - - '&:hover': { - backgroundColor: '$gray6', - }, - - '&--keyboard-selected': { - backgroundColor: 'inherit', - border: '1px solid $primary', - borderRadius: '$3', - }, - - '&--selected': { - backgroundColor: '$primary', - borderRadius: '$3', - color: '$buttonPrimaryText', +import { Text } from '../Text'; + +const CalendarGrid = styled('div', { + display: 'grid', + alignItems: 'center', + gap: '$1', + px: '$2', + borderLeft: '2px solid $buttonSecondaryBorder', + borderRight: '2px solid $buttonSecondaryBorder', +}); - '&:hover': { - backgroundColor: '$primary', - }, - }, - }, +const SevenColGrid = styled(CalendarGrid, { + gridTemplateColumns: 'repeat(7, 1fr)', +}); - '.react-datepicker__day-name': { - color: '$textDefault', - }, - }, +const ThreeColGrid = styled(CalendarGrid, { + gridTemplateColumns: 'repeat(3, 1fr)', + height: '100%', +}); - '.react-datepicker__time-container': { - '.react-datepicker__time': { - backgroundColor: 'transparent', - color: '$textDefault', +const StyledDiv = styled('div'); - '.react-datepicker__time-box': { - scrollbarColor: 'var(--colors-gray7) var(--colors-gray2)', - }, +type HeaderProps = { + centerButtonLabel: string; + centerButtonOnClick: () => void; + leftButtonProps: DPPropGetter; + rightButtonProps: DPPropGetter; +}; - '.react-datepicker__time-list .react-datepicker__time-list-item': { - '&:hover': { - backgroundColor: '$gray6', - }, +function Header({ + centerButtonLabel, + centerButtonOnClick, + leftButtonProps, + rightButtonProps, +}: HeaderProps) { + return ( + + + + + + ); +} - '&.react-datepicker__time-list-item--selected, &.react-datepicker__time-list-item--selected:hover': - { - backgroundColor: '$primary', - color: '$buttonPrimaryText', - fontWeight: 'normal', - }, - }, - }, - }, - }, +type CustomDPDatesConfig = Omit; - '.react-datepicker-popper[data-placement] .react-datepicker__triangle': { - left: '50% !important', - transform: 'rotate(180deg) translateY(-1px) translateX(50%) !important', - color: '$01dp', - fill: '$01dp', - stroke: '$01dp', - }, -}); +type CustomDPUserConfig = Omit & { + dates?: Partial; +}; -export type DateTimePickerProps = DatePickerProps & { +export type DateTimePickerProps = CustomDPUserConfig & { css?: CSS; + onFastTravelClick?: () => void; + onTimeButtonClick?: () => void; + showDatePresets?: boolean; + showTimePicker?: boolean; }; -export type DateTimePickerVariants = VariantProps; +export type DateTimePickerVariants = VariantProps; export const DateTimePicker = React.forwardRef< - React.ElementRef, + React.ElementRef, DateTimePickerProps ->(({ css, onChange, selected, showIcon, ...props }, fowardedRef) => { - const datePickerRef = useRef(null); +>( + ( + { css, onFastTravelClick, onTimeButtonClick, showDatePresets, showTimePicker, ...config }, + fowardedRef, + ) => { + const { + data: { calendars, months, time, weekDays, years }, + propGetters: { + addOffset, + dayButton, + monthButton, + nextYearsButton, + previousYearsButton, + subtractOffset, + timeButton, + yearButton, + }, + } = useDatePicker(config); + + const [page, setPage] = useState(0); - const [selectedDate, setSelectedDate] = useState(selected || new Date()); + const { days, month, year } = calendars[0]; - const CalendarContainerWrapper = ({ className, children }) => { return ( - - -
{children}
-
- - - - + + + + + +
setPage(1)} + leftButtonProps={subtractOffset({ months: 1 })} + rightButtonProps={addOffset({ months: 1 })} + /> + + {weekDays.map((weekDay, index) => ( + + {weekDay} + + ))} + {days.map((d) => ( + + ))} + + + + +
setPage(2)} + leftButtonProps={subtractOffset({ years: 1 })} + rightButtonProps={addOffset({ years: 1 })} + /> + + {months.map((m) => ( + + ))} + + + + +
setPage(0)} + leftButtonProps={previousYearsButton()} + rightButtonProps={nextYearsButton()} + /> + + {years.map((y) => ( + + ))} + + + + + {showTimePicker ? ( + + + Time + + {time.map((t) => ( + + ))} + + + + ) : undefined} + + + {showDatePresets ? ( + + + + {showTimePicker ? ( + + ) : undefined} + + ) : undefined} - + ); - }; - - useEffect(() => { - if (onChange) onChange(selectedDate as Date & [Date | null, Date | null] & Date[]); - }, [onChange, selectedDate]); - - return ( - - : undefined} />} - ref={datePickerRef} - showTimeSelect - {...props} - selected={selectedDate} - onChange={(date: any) => setSelectedDate(date)} - /> - - ); -}); + }, +); diff --git a/components/DateTimePickerInput/DateTimePickerInput.stories.tsx b/components/DateTimePickerInput/DateTimePickerInput.stories.tsx new file mode 100644 index 00000000..02a20bdc --- /dev/null +++ b/components/DateTimePickerInput/DateTimePickerInput.stories.tsx @@ -0,0 +1,88 @@ +import { Meta, StoryFn } from '@storybook/react'; +import React, { useState } from 'react'; + +import { modifyVariantsForStory } from '../../utils/modifyVariantsForStory'; +import { Flex } from '../Flex'; +import { Label } from '../Label'; +import { Text } from '../Text'; +import { + DateTimePickerInput, + DateTimePickerInputProps, + DateTimePickerInputVariants, +} from './DateTimePickerInput'; + +const DateTimePickerInputWrapper = (props: DateTimePickerInputProps): JSX.Element => ( + +); + +const DateTimePickerInputForStory = modifyVariantsForStory< + DateTimePickerInputVariants, + DateTimePickerInputProps +>(DateTimePickerInputWrapper); + +const Component: Meta = { + title: 'Components/DateTimePickerInput', + component: DateTimePickerInputForStory, + argTypes: { + pickerPlacement: { + control: 'inline-radio', + options: [ + 'top-start', + 'right-start', + 'bottom-start', + 'left-start', + 'top', + 'right', + 'bottom', + 'left', + 'top-end', + 'right-end', + 'bottom-end', + 'left-end', + ], + }, + showDatePresets: { + control: 'boolean', + }, + showTimePicker: { + control: 'boolean', + }, + }, +}; + +const DateTimePickerTemplate: StoryFn = (args) => { + const [selectedDates, onDatesChange] = useState([]); + + return ( +
+ + + + + + {selectedDates.length + ? selectedDates + .map((date) => (!isNaN(date.getTime()) ? date.toISOString() : 'Invalid date')) + .join(', ') + : 'None.'} + + + +
+ ); +}; + +export const Base: StoryFn = DateTimePickerTemplate.bind({}); + +Base.args = { + showDatePresets: true, + showTimePicker: true, +}; + +export default Component; diff --git a/components/DateTimePickerInput/DateTimePickerInput.tsx b/components/DateTimePickerInput/DateTimePickerInput.tsx new file mode 100644 index 00000000..bc8c7c9e --- /dev/null +++ b/components/DateTimePickerInput/DateTimePickerInput.tsx @@ -0,0 +1,199 @@ +import { + arrow, + autoUpdate, + flip, + FloatingArrow, + FloatingFocusManager, + offset, + Placement, + shift, + useClick, + useDismiss, + useFloating, + useInteractions, + useRole, +} from '@floating-ui/react'; +import { CalendarIcon } from '@radix-ui/react-icons'; +import { DPUserConfig } from '@rehookify/datepicker'; +import { format, parse } from 'date-fns'; +import React, { MouseEventHandler, Ref, useRef, useState } from 'react'; + +import { CSS, styled, VariantProps } from '../../stitches.config'; +import { Card } from '../Card'; +import { DateTimePicker } from '../DateTimePicker'; +import { Input, InputHandle } from '../Input'; + +const StyledWrapper = styled('div', { + display: 'flex', + position: 'relative', + width: '100%', + + '& .firefox-patch': { + display: 'none', + }, + + '@supports (-moz-appearance: none)': { + '& .firefox-patch': { + display: 'block', + width: '20px', + height: '20px', + position: 'absolute', + right: '17px', + top: '6px', + background: '$inputBg', + + '&::before': { + boxSizing: 'border-box', + content: '""', + position: 'absolute', + inset: 0, + pointerEvents: 'none', + }, + '&::after': { + boxSizing: 'border-box', + content: '""', + position: 'absolute', + inset: 0, + pointerEvents: 'none', + }, + + '&:focus-visible': { + '&::before': { + backgroundColor: '$inputFocusBg', + }, + '&::after': { + backgroundColor: '$primary', + opacity: 0.15, + }, + }, + }, + + '@hover': { + '&:hover .firefox-patch': { + '&::before': { + backgroundColor: '$inputHoverBg', + }, + '&::after': { + backgroundColor: '$primary', + opacity: 0.05, + }, + }, + }, + }, +}); + +export type DateTimePickerInputProps = Omit & { + inputCSS?: CSS; + inputProps?: Omit; + onChange?: (d: Date[]) => void; + pickerCSS?: CSS; + pickerPlacement?: Placement; + showDatePresets?: boolean; + showTimePicker?: boolean; +}; + +export type DateTimePickerInputVariants = VariantProps; + +export const DateTimePickerInput = React.forwardRef< + React.ElementRef, + DateTimePickerInputProps +>( + ( + { + inputCSS, + inputProps, + onChange, + pickerCSS, + pickerPlacement, + showDatePresets, + showTimePicker, + ...pickerProps + }, + fowardedRef, + ) => { + const formatStr = "yyyy-MM-dd'T'HH:mm"; + + const arrowRef = useRef(null); + + const [inputValue, setInputValue] = useState(''); + const [selectedDates, onDatesChange] = useState([]); + const [isPickerOpen, setIsPickerOpen] = useState(false); + + const { refs, floatingStyles, context } = useFloating({ + open: isPickerOpen, + onOpenChange: setIsPickerOpen, + placement: pickerPlacement, + middleware: [ + offset(10), + flip(), + shift(), + arrow({ + element: arrowRef, + }), + ], + whileElementsMounted: autoUpdate, + }); + + const click = useClick(context); + const dismiss = useDismiss(context); + const role = useRole(context); + + const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]); + const { onClick: onFirefoxPatchClick } = getReferenceProps(); + + return ( + + } + {...getReferenceProps()} + {...inputProps} + css={{ '& input::-webkit-calendar-picker-indicator': { display: 'none' }, ...inputCSS }} + onChange={(evt) => { + const value = evt.currentTarget.value; + setInputValue(value); + try { + const newDates = (value as string) + .split(',') + .map((d) => parse(d.trim(), formatStr, new Date())); + onDatesChange(newDates); + if (onChange) onChange(newDates); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + } catch (err) { + // empty + } + }} + ref={refs.setReference as Ref} + type="datetime-local" + value={inputValue} + /> +
} + /> + {isPickerOpen && ( + +
+ + { + onDatesChange(d); + setInputValue(d.map((date) => format(date, formatStr)).join(', ')); + if (onChange) onChange(d); + }} + onFastTravelClick={() => setIsPickerOpen(false)} + onTimeButtonClick={() => setIsPickerOpen(false)} + selectedDates={selectedDates} + showDatePresets={showDatePresets} + showTimePicker={showTimePicker} + /> + + +
+
+ )} + + ); + }, +); diff --git a/components/DateTimePickerInput/index.ts b/components/DateTimePickerInput/index.ts new file mode 100644 index 00000000..3eba06c1 --- /dev/null +++ b/components/DateTimePickerInput/index.ts @@ -0,0 +1 @@ +export * from './DateTimePickerInput'; diff --git a/eslint.config.js b/eslint.config.js index 2f25473a..42102e62 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -27,6 +27,7 @@ export default [ rules: { ...eslintPluginReactHooks.configs.recommended.rules, '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/no-empty-object-type': 'off', '@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-namespace': 'off', 'simple-import-sort/imports': 'error', diff --git a/index.ts b/index.ts index 44c084c2..43c56065 100644 --- a/index.ts +++ b/index.ts @@ -27,6 +27,7 @@ export { Card } from './components/Card'; export { Checkbox } from './components/Checkbox'; export { Container } from './components/Container'; export { DateTimePicker } from './components/DateTimePicker'; +export { DateTimePickerInput } from './components/DateTimePickerInput'; export { Dialog, DialogCloseIconButton, diff --git a/package.json b/package.json index 9682e13f..ef8d1e78 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "@babel/preset-env": "^7.16.11", "@babel/preset-react": "^7.16.7", "@babel/preset-typescript": "^7.16.7", + "@floating-ui/react": "^0.26.25", "@mdx-js/react": "^2.1.5", "@radix-ui/colors": "^2.1.0", "@radix-ui/react-accessible-icon": "^1.0.3", @@ -69,7 +70,7 @@ "@radix-ui/react-id": "^1.0.0", "@radix-ui/react-label": "^2.0.0", "@radix-ui/react-navigation-menu": "^1.2.0", - "@radix-ui/react-popover": "^1.0.2", + "@radix-ui/react-popover": "^1.1.2", "@radix-ui/react-portal": "^1.0.1", "@radix-ui/react-progress": "^1.0.1", "@radix-ui/react-radio-group": "^1.1.0", @@ -83,6 +84,7 @@ "@radix-ui/react-tooltip": "^1.0.7", "@radix-ui/react-use-layout-effect": "^1.0.0", "@radix-ui/react-visually-hidden": "^1.0.1", + "@rehookify/datepicker": "^6.6.7", "@rollup/plugin-babel": "^5.3.1", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/github": "^8.0.2", @@ -117,7 +119,6 @@ "patch-package": "^8.0.0", "prettier": "^3.3.3", "react": "18.2.0", - "react-datepicker": "^7.3.0", "react-dom": "18.2.0", "rollup": "^2.70.1", "rollup-plugin-typescript2": "^0.36.0", @@ -138,15 +139,15 @@ "babel-jest": "^27.5.1", "eslint": "9.x", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-jsx-a11y": "^6.9.0", + "eslint-plugin-jsx-a11y": "^6.10.1", "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react": "^7.34.4", - "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react": "^7.37.1", + "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-simple-import-sort": "^12.1.1", "globals": "^15.8.0", "jest": "^27.5.1", "jest-axe": "^6.0.0", - "typescript-eslint": "^7.16.0", + "typescript-eslint": "^8.11.0", "webpack": "^5.94.0" }, "publishConfig": { diff --git a/vite.config.ts b/vite.config.ts index ed1f779d..6566ad1b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vite'; export default defineConfig({ optimizeDeps: { - exclude: ['react-datepicker', 'storybook'], + exclude: ['storybook'], }, plugins: [react()], }); diff --git a/yarn.lock b/yarn.lock index fae31cfd..8bbe7576 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3095,29 +3095,29 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react-dom@npm:^2.1.1": - version: 2.1.1 - resolution: "@floating-ui/react-dom@npm:2.1.1" +"@floating-ui/react-dom@npm:^2.1.2": + version: 2.1.2 + resolution: "@floating-ui/react-dom@npm:2.1.2" dependencies: "@floating-ui/dom": "npm:^1.0.0" peerDependencies: react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 10c0/732ab64600c511ceb0563b87bc557aa61789fec4f416a3f092bab89e508fa1d3ee5ade0f42051cc56eb5e4db867b87ab7fd48ce82db9fd4c01d94ffa08f60115 + checksum: 10c0/e855131c74e68cab505f7f44f92cd4e2efab1c125796db3116c54c0859323adae4bf697bf292ee83ac77b9335a41ad67852193d7aeace90aa2e1c4a640cafa60 languageName: node linkType: hard -"@floating-ui/react@npm:^0.26.2": - version: 0.26.20 - resolution: "@floating-ui/react@npm:0.26.20" +"@floating-ui/react@npm:^0.26.25": + version: 0.26.25 + resolution: "@floating-ui/react@npm:0.26.25" dependencies: - "@floating-ui/react-dom": "npm:^2.1.1" - "@floating-ui/utils": "npm:^0.2.5" + "@floating-ui/react-dom": "npm:^2.1.2" + "@floating-ui/utils": "npm:^0.2.8" tabbable: "npm:^6.0.0" peerDependencies: react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 10c0/2fe96b8123734a9facb560b235bbb9a21849890f7a84a48c4e1d496dde045aafecb4575c3e035413f2d88a8324651c85b018bfbf8d57eb1fb9e469cdd211ca86 + checksum: 10c0/5206b06a5963e795af2f0b0a6ac39230012263ffa38dd60158e0f0b82d43a24e6a1c005fc8556ee5fe26e6353546ffb72e54716f6bd584fdab516dc128a78995 languageName: node linkType: hard @@ -3128,10 +3128,10 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.5": - version: 0.2.5 - resolution: "@floating-ui/utils@npm:0.2.5" - checksum: 10c0/9e1c7330433c3a8f226c5a44ed1dcdda13b313c4126ce3281f970d1e471b1c9fd9e1559cc76a0592af25d55a3f81afe1a5778aa7b80e51c9fa01930cd1d5557e +"@floating-ui/utils@npm:^0.2.8": + version: 0.2.8 + resolution: "@floating-ui/utils@npm:0.2.8" + checksum: 10c0/a8cee5f17406c900e1c3ef63e3ca89b35e7a2ed645418459a73627b93b7377477fc888081011c6cd177cac45ec2b92a6cab018c14ea140519465498dddd2d3f9 languageName: node linkType: hard @@ -4090,6 +4090,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-arrow@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-arrow@npm:1.1.0" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/cbe059dfa5a9c1677478d363bb5fd75b0c7a08221d0ac7f8e7b9aec9dbae9754f6a3518218cf63e4ed53df6c36d193c8d2618d03433a37aa0cb7ee77a60a591f + languageName: node + linkType: hard + "@radix-ui/react-aspect-ratio@npm:^1.0.1": version: 1.0.3 resolution: "@radix-ui/react-aspect-ratio@npm:1.0.3" @@ -4312,6 +4331,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-context@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-context@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/fc4ace9d79d7954c715ade765e06c95d7e1b12a63a536bcbe842fb904f03f88fc5bd6e38d44bd23243d37a270b4c44380fedddaeeae2d274f0b898a20665aba2 + languageName: node + linkType: hard + "@radix-ui/react-dialog@npm:1.0.5, @radix-ui/react-dialog@npm:^1.0.2": version: 1.0.5 resolution: "@radix-ui/react-dialog@npm:1.0.5" @@ -4420,6 +4452,29 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-dismissable-layer@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.1" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-escape-keydown": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/637f8d55437bd2269d5aa9fa48e869eade31082cd950b5efcc5f0d9ed016b46feb7fcfcc115ba9972dba68c4686b57873d84aca67ece76ab77463e7de995f6da + languageName: node + linkType: hard + "@radix-ui/react-dropdown-menu@npm:^2.0.1": version: 2.0.6 resolution: "@radix-ui/react-dropdown-menu@npm:2.0.6" @@ -4461,6 +4516,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-focus-guards@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-focus-guards@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/2e99750ca593083a530542a185d656b45b100752353a7a193a67566e3c256414a76fa9171d152f8c0167b8d6c1fdf62b2e07750d7af2974bf8ef39eb204aa537 + languageName: node + linkType: hard + "@radix-ui/react-focus-scope@npm:1.0.4": version: 1.0.4 resolution: "@radix-ui/react-focus-scope@npm:1.0.4" @@ -4483,6 +4551,27 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-focus-scope@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-focus-scope@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/2593d4bbd4a3525624675ec1d5a591a44f015f43f449b99a5a33228159b83f445e8f1c6bc6f9f2011387abaeadd3df406623c08d4e795b7ae509795652a1d069 + languageName: node + linkType: hard + "@radix-ui/react-icons@npm:^1.1.1": version: 1.3.0 resolution: "@radix-ui/react-icons@npm:1.3.0" @@ -4612,37 +4701,36 @@ __metadata: languageName: node linkType: hard -"@radix-ui/react-popover@npm:^1.0.2": - version: 1.0.7 - resolution: "@radix-ui/react-popover@npm:1.0.7" +"@radix-ui/react-popover@npm:^1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-popover@npm:1.1.2" dependencies: - "@babel/runtime": "npm:^7.13.10" - "@radix-ui/primitive": "npm:1.0.1" - "@radix-ui/react-compose-refs": "npm:1.0.1" - "@radix-ui/react-context": "npm:1.0.1" - "@radix-ui/react-dismissable-layer": "npm:1.0.5" - "@radix-ui/react-focus-guards": "npm:1.0.1" - "@radix-ui/react-focus-scope": "npm:1.0.4" - "@radix-ui/react-id": "npm:1.0.1" - "@radix-ui/react-popper": "npm:1.1.3" - "@radix-ui/react-portal": "npm:1.0.4" - "@radix-ui/react-presence": "npm:1.0.1" - "@radix-ui/react-primitive": "npm:1.0.3" - "@radix-ui/react-slot": "npm:1.0.2" - "@radix-ui/react-use-controllable-state": "npm:1.0.1" + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.1" + "@radix-ui/react-dismissable-layer": "npm:1.1.1" + "@radix-ui/react-focus-guards": "npm:1.1.1" + "@radix-ui/react-focus-scope": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-popper": "npm:1.2.0" + "@radix-ui/react-portal": "npm:1.1.2" + "@radix-ui/react-presence": "npm:1.1.1" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-slot": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" aria-hidden: "npm:^1.1.1" - react-remove-scroll: "npm:2.5.5" + react-remove-scroll: "npm:2.6.0" peerDependencies: "@types/react": "*" "@types/react-dom": "*" - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true "@types/react-dom": optional: true - checksum: 10c0/ed7abbd61df1e15d62072e214fafbdc4e31942e0ce49665f2045d8279944a0a37762bcd70a36389ed9e43c95797d5acb57f6f5ca5a15b688b1928cfc2b9ce196 + checksum: 10c0/d8fb4e3507a3cd6168bdbb6b840fb8eb538b3b1ce62192a1dcc4e8e4947fbf082c437c0ad5f6faed078006dcb7073867e493378d04c50372c6ea826c5a811f2c languageName: node linkType: hard @@ -4675,6 +4763,34 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-popper@npm:1.2.0": + version: 1.2.0 + resolution: "@radix-ui/react-popper@npm:1.2.0" + dependencies: + "@floating-ui/react-dom": "npm:^2.0.0" + "@radix-ui/react-arrow": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@radix-ui/react-use-rect": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + "@radix-ui/rect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/a78ea534b9822d07153fff0895b6cdf742e7213782b140b3ab94a76df0ca70e6001925aea946e99ca680fc63a7fcca49c1d62e8dc5a2f651692fba3541e180c0 + languageName: node + linkType: hard + "@radix-ui/react-portal@npm:1.0.4, @radix-ui/react-portal@npm:^1.0.1": version: 1.0.4 resolution: "@radix-ui/react-portal@npm:1.0.4" @@ -4695,6 +4811,26 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-portal@npm:1.1.2": + version: 1.1.2 + resolution: "@radix-ui/react-portal@npm:1.1.2" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/836967330893b16b85371775ed1a59e038ce99189f4851cfa976bde2710d704c2a9e49e0a5206e7ac3fcf8a67ddd2d126b8352a88f295d6ef49d04e269736ed1 + languageName: node + linkType: hard + "@radix-ui/react-presence@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-presence@npm:1.0.1" @@ -4736,6 +4872,26 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-presence@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-presence@npm:1.1.1" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/777cda0406450ff5ca0e49235e486237723323d046a3382e35a0e78eededccfc95a76a9b5fecd7404dac793264762f4bc10111af1e08f8cc2d4d571d7971220e + languageName: node + linkType: hard + "@radix-ui/react-primitive@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-primitive@npm:1.0.3" @@ -5228,6 +5384,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-rect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-rect@npm:1.1.0" + dependencies: + "@radix-ui/rect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/c2e30150ab49e2cec238cda306fd748c3d47fb96dcff69a3b08e1d19108d80bac239d48f1747a25dadca614e3e967267d43b91e60ea59db2befbc7bea913ff84 + languageName: node + linkType: hard + "@radix-ui/react-use-size@npm:1.0.1": version: 1.0.1 resolution: "@radix-ui/react-use-size@npm:1.0.1" @@ -5244,6 +5415,21 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-size@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-size@npm:1.1.0" + dependencies: + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/4c8b89037597fdc1824d009e0c941b510c7c6c30f83024cc02c934edd748886786e7d9f36f57323b02ad29833e7fa7e8974d81969b4ab33d8f41661afa4f30a6 + languageName: node + linkType: hard + "@radix-ui/react-visually-hidden@npm:1.0.3, @radix-ui/react-visually-hidden@npm:^1.0.1": version: 1.0.3 resolution: "@radix-ui/react-visually-hidden@npm:1.0.3" @@ -5292,6 +5478,22 @@ __metadata: languageName: node linkType: hard +"@radix-ui/rect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/rect@npm:1.1.0" + checksum: 10c0/a26ff7f8708fb5f2f7949baad70a6b2a597d761ee4dd4aadaf1c1a33ea82ea23dfef6ce6366a08310c5d008cdd60b2e626e4ee03fa342bd5f246ddd9d427f6be + languageName: node + linkType: hard + +"@rehookify/datepicker@npm:^6.6.7": + version: 6.6.7 + resolution: "@rehookify/datepicker@npm:6.6.7" + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + checksum: 10c0/78dec650b8bd414f8d2774b9d369a91759c07cec8e5329aa5b3ec782d9ddb2c49b166dc20c234c202916ed3fcb67d29e5606f83e4f8c509f67f3742dfecf6548 + languageName: node + linkType: hard + "@rollup/plugin-babel@npm:^5.3.1": version: 5.3.1 resolution: "@rollup/plugin-babel@npm:5.3.1" @@ -6182,6 +6384,7 @@ __metadata: "@babel/preset-typescript": "npm:^7.16.7" "@eslint/compat": "npm:^1.1.1" "@eslint/js": "npm:^9.7.0" + "@floating-ui/react": "npm:^0.26.25" "@mdx-js/react": "npm:^2.1.5" "@radix-ui/colors": "npm:^2.1.0" "@radix-ui/react-accessible-icon": "npm:^1.0.3" @@ -6197,7 +6400,7 @@ __metadata: "@radix-ui/react-id": "npm:^1.0.0" "@radix-ui/react-label": "npm:^2.0.0" "@radix-ui/react-navigation-menu": "npm:^1.2.0" - "@radix-ui/react-popover": "npm:^1.0.2" + "@radix-ui/react-popover": "npm:^1.1.2" "@radix-ui/react-portal": "npm:^1.0.1" "@radix-ui/react-progress": "npm:^1.0.1" "@radix-ui/react-radio-group": "npm:^1.1.0" @@ -6211,6 +6414,7 @@ __metadata: "@radix-ui/react-tooltip": "npm:^1.0.7" "@radix-ui/react-use-layout-effect": "npm:^1.0.0" "@radix-ui/react-visually-hidden": "npm:^1.0.1" + "@rehookify/datepicker": "npm:^6.6.7" "@rollup/plugin-babel": "npm:^5.3.1" "@semantic-release/commit-analyzer": "npm:^9.0.2" "@semantic-release/github": "npm:^8.0.2" @@ -6244,10 +6448,10 @@ __metadata: date-fns: "npm:^4.1.0" eslint: "npm:9.x" eslint-config-prettier: "npm:^9.1.0" - eslint-plugin-jsx-a11y: "npm:^6.9.0" + eslint-plugin-jsx-a11y: "npm:^6.10.1" eslint-plugin-prettier: "npm:^5.1.3" - eslint-plugin-react: "npm:^7.34.4" - eslint-plugin-react-hooks: "npm:^4.6.2" + eslint-plugin-react: "npm:^7.37.1" + eslint-plugin-react-hooks: "npm:^5.0.0" eslint-plugin-simple-import-sort: "npm:^12.1.1" globals: "npm:^15.8.0" husky: "npm:^8.0.0" @@ -6259,7 +6463,6 @@ __metadata: patch-package: "npm:^8.0.0" prettier: "npm:^3.3.3" react: "npm:18.2.0" - react-datepicker: "npm:^7.3.0" react-dom: "npm:18.2.0" rollup: "npm:^2.70.1" rollup-plugin-typescript2: "npm:^0.36.0" @@ -6268,7 +6471,7 @@ __metadata: storybook-dark-mode: "npm:^4.0.2" tinycolor2: "npm:^1.4.2" typescript: "npm:5.4.5" - typescript-eslint: "npm:^7.16.0" + typescript-eslint: "npm:^8.11.0" use-debounce: "npm:9.0.2" vite: "npm:^5.1.5" webpack: "npm:^5.94.0" @@ -6808,89 +7011,87 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:7.16.0": - version: 7.16.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.16.0" +"@typescript-eslint/eslint-plugin@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.11.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.16.0" - "@typescript-eslint/type-utils": "npm:7.16.0" - "@typescript-eslint/utils": "npm:7.16.0" - "@typescript-eslint/visitor-keys": "npm:7.16.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/type-utils": "npm:8.11.0" + "@typescript-eslint/utils": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" ts-api-utils: "npm:^1.3.0" peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a6c4c93bd7ec1604079018b95416d8ac28af3345d50620f815ffd36e705c4964d88edc434e710ef8722690497f1eeab1e9a0f48faa6d448405980f5d05c888b7 + checksum: 10c0/be509f7bb0c0c596801059b06995a81a1c326cc6ac31d96a32f7b6b7d7b495f9bad4dc442aa6e923d22515e62c668d3c14695c68bd6e0be1d4bf72158b7fd2d6 languageName: node linkType: hard -"@typescript-eslint/parser@npm:7.16.0": - version: 7.16.0 - resolution: "@typescript-eslint/parser@npm:7.16.0" +"@typescript-eslint/parser@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/parser@npm:8.11.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.16.0" - "@typescript-eslint/types": "npm:7.16.0" - "@typescript-eslint/typescript-estree": "npm:7.16.0" - "@typescript-eslint/visitor-keys": "npm:7.16.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" debug: "npm:^4.3.4" peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/bf809c5a59dddc72fc2f11a5d10c78825fa2ffbec72a711e3f783b022d77266a1b709ad450912ebbff24ca9ac20c6baae1d12477735e00aafce662fdbdfa66ef + checksum: 10c0/e83f239fec60697083e5dcb1c8948340e783ea6e043fe9a65d557faef8882963b09d69aacd736eb8ab18a768769a7bbfc3de0f1251d4bba080613541acb0741c languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.16.0": - version: 7.16.0 - resolution: "@typescript-eslint/scope-manager@npm:7.16.0" +"@typescript-eslint/scope-manager@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/scope-manager@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:7.16.0" - "@typescript-eslint/visitor-keys": "npm:7.16.0" - checksum: 10c0/e00f57908a1b30fb93ae0e35c46a798669782428e98f927a4d39ef3b1e7d5ad4a48e4e121bd136ed9732c2d1c09cf0b99e4029b1a1a11aadf6f2b92e1003f41c + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" + checksum: 10c0/0910da62d8ae261711dd9f89d5c7d8e96ff13c50054436256e5a661309229cb49e3b8189c9468d36b6c4d3f7cddd121519ea78f9b18c9b869a808834b079b2ea languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.16.0": - version: 7.16.0 - resolution: "@typescript-eslint/type-utils@npm:7.16.0" +"@typescript-eslint/type-utils@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/type-utils@npm:8.11.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.16.0" - "@typescript-eslint/utils": "npm:7.16.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" + "@typescript-eslint/utils": "npm:8.11.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" - peerDependencies: - eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/91ef86e173d2d86487d669ddda7a0f754485e82a671a64cfbf7790639dfb4c691f6f002ae19d4d82a90e4cca9cd7563e38100c1dfabab461632b0da1eac2b39b + checksum: 10c0/b69e31c1599ceeb20c29052a4ddb33a554174a3a4c55ee37d90c9b8250af6ef978a0b9ddbeefef4e83d62c4caea1bfa2d8088527f397bde69fb4ab9b360d794a languageName: node linkType: hard -"@typescript-eslint/types@npm:7.16.0": - version: 7.16.0 - resolution: "@typescript-eslint/types@npm:7.16.0" - checksum: 10c0/5d7080991241232072c50c1e1be35976631f764fe0f4fd43cf1026a2722aab772a14906dfaa322183b040c6ca8ae4494a78f653dd3b22bcdbdfe063a301240b0 +"@typescript-eslint/types@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/types@npm:8.11.0" + checksum: 10c0/5ccdd3eeee077a6fc8e7f4bc0e0cbc9327b1205a845253ec5c0c6c49ff915e853161df00c24a0ffb4b8ec745d3f153dd0e066400a021c844c026e31121f46699 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.16.0": - version: 7.16.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.16.0" +"@typescript-eslint/typescript-estree@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:7.16.0" - "@typescript-eslint/visitor-keys": "npm:7.16.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" debug: "npm:^4.3.4" - globby: "npm:^11.1.0" + fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" minimatch: "npm:^9.0.4" semver: "npm:^7.6.0" @@ -6898,31 +7099,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/2b4e7cbdb1b43d937d1dde057ab18111e0f2bb16cb2d3f48a60c5611ff81d0b64455b325475bcce6213c54653b6c4d3b475526f7ffcf8f74014ab9b64a3d6d92 + checksum: 10c0/b629ad3cd32b005d5c1d67c36958a418f8672efebea869399834f4f201ebf90b942165eebb5c9d9799dcabdc2cc26e5fabb00629f76b158847f42e1a491a75a6 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.16.0": - version: 7.16.0 - resolution: "@typescript-eslint/utils@npm:7.16.0" +"@typescript-eslint/utils@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/utils@npm:8.11.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.16.0" - "@typescript-eslint/types": "npm:7.16.0" - "@typescript-eslint/typescript-estree": "npm:7.16.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" peerDependencies: - eslint: ^8.56.0 - checksum: 10c0/1b835cbd243a4266a84655bcfcd08a14003e9740efbb032d60ab4403f03838280e7ad759b1f362d88939beaee08d7a1752fa6b049aad8d33793758853469fe76 + eslint: ^8.57.0 || ^9.0.0 + checksum: 10c0/bb5bcc8d928a55b22298e76f834ea6a9fe125a9ffeb6ac23bee0258b3ed32f41e281888a3d0be226a05e1011bb3b70e42a71a40366acdefea6779131c46bc522 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.16.0": - version: 7.16.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.16.0" +"@typescript-eslint/visitor-keys@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:7.16.0" + "@typescript-eslint/types": "npm:8.11.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/a3c614cdc2e9c37e007e15e1ee169a9ad040fac189d0abd2b840f78910b499b362493bbf0019c5979785567ae30839a799b4dd219f70a668bac930fd79fdc5d3 + checksum: 10c0/7a5a49609fdc47e114fe59eee56393c90b122ec8e9520f90b0c5e189635ae1ccfa8e00108f641342c2c8f4637fe9d40c77927cf7c8248a3a660812cb4b7d0c08 languageName: node linkType: hard @@ -7523,7 +7724,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.1.3, aria-query@npm:~5.1.3": +"aria-query@npm:5.1.3": version: 5.1.3 resolution: "aria-query@npm:5.1.3" dependencies: @@ -7541,6 +7742,13 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:^5.3.2": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e + languageName: node + linkType: hard + "array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" @@ -7624,18 +7832,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.toreversed@npm:^1.1.2": - version: 1.1.2 - resolution: "array.prototype.toreversed@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - checksum: 10c0/2b7627ea85eae1e80ecce665a500cc0f3355ac83ee4a1a727562c7c2a1d5f1c0b4dd7b65c468ec6867207e452ba01256910a2c0b41486bfdd11acf875a7a3435 - languageName: node - linkType: hard - "array.prototype.tosorted@npm:^1.1.4": version: 1.1.4 resolution: "array.prototype.tosorted@npm:1.1.4" @@ -7739,19 +7935,17 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.9.1": - version: 4.9.1 - resolution: "axe-core@npm:4.9.1" - checksum: 10c0/ac9e5a0c6fa115a43ebffc32a1d2189e1ca6431b5a78e88cdcf94a72a25c5964185682edd94fe6bdb1cb4266c0d06301b022866e0e50dcdf6e3cefe556470110 +"axe-core@npm:^4.10.0": + version: 4.10.1 + resolution: "axe-core@npm:4.10.1" + checksum: 10c0/53d865efb7284fd69bc95ced1a1709fd603ea07f06e272da06942e7cfeca1c823e09bde28f57178e3a1a4c9a089fe4b5d274c871e3e6522a3b1bffec8eaa7dd8 languageName: node linkType: hard -"axobject-query@npm:~3.1.1": - version: 3.1.1 - resolution: "axobject-query@npm:3.1.1" - dependencies: - deep-equal: "npm:^2.0.5" - checksum: 10c0/fff3175a22fd1f41fceb7ae0cd25f6594a0d7fba28c2335dd904538b80eb4e1040432564a3c643025cd2bb748f68d35aaabffb780b794da97ecfc748810b25ad +"axobject-query@npm:^4.1.0": + version: 4.1.0 + resolution: "axobject-query@npm:4.1.0" + checksum: 10c0/c470e4f95008f232eadd755b018cb55f16c03ccf39c027b941cd8820ac6b68707ce5d7368a46756db4256fbc91bb4ead368f84f7fb034b2b7932f082f6dc0775 languageName: node linkType: hard @@ -8635,13 +8829,6 @@ __metadata: languageName: node linkType: hard -"clsx@npm:^2.1.0": - version: 2.1.1 - resolution: "clsx@npm:2.1.1" - checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839 - languageName: node - linkType: hard - "cmd-shim@npm:^5.0.0": version: 5.0.0 resolution: "cmd-shim@npm:5.0.0" @@ -9137,13 +9324,6 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^3.3.1": - version: 3.6.0 - resolution: "date-fns@npm:3.6.0" - checksum: 10c0/0b5fb981590ef2f8e5a3ba6cd6d77faece0ea7f7158948f2eaae7bbb7c80a8f63ae30b01236c2923cf89bb3719c33aeb150c715ea4fe4e86e37dcf06bed42fb6 - languageName: node - linkType: hard - "date-fns@npm:^4.1.0": version: 4.1.0 resolution: "date-fns@npm:4.1.0" @@ -9821,6 +10001,28 @@ __metadata: languageName: node linkType: hard +"es-iterator-helpers@npm:^1.1.0": + version: 1.1.0 + resolution: "es-iterator-helpers@npm:1.1.0" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.3" + es-errors: "npm:^1.3.0" + es-set-tostringtag: "npm:^2.0.3" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + globalthis: "npm:^1.0.4" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.0.3" + has-symbols: "npm:^1.0.3" + internal-slot: "npm:^1.0.7" + iterator.prototype: "npm:^1.1.3" + safe-array-concat: "npm:^1.1.2" + checksum: 10c0/84d6c240c7da6e62323b336cb1497781546dab16bebdbd879ccfdf588979712d3e941d41165b6c2ffce5a03a7b929d4e6131d3124d330da1a0e2bfa1da7cd99f + languageName: node + linkType: hard + "es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0": version: 1.5.4 resolution: "es-module-lexer@npm:1.5.4" @@ -10117,29 +10319,29 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:^6.9.0": - version: 6.9.0 - resolution: "eslint-plugin-jsx-a11y@npm:6.9.0" +"eslint-plugin-jsx-a11y@npm:^6.10.1": + version: 6.10.1 + resolution: "eslint-plugin-jsx-a11y@npm:6.10.1" dependencies: - aria-query: "npm:~5.1.3" + aria-query: "npm:^5.3.2" array-includes: "npm:^3.1.8" array.prototype.flatmap: "npm:^1.3.2" ast-types-flow: "npm:^0.0.8" - axe-core: "npm:^4.9.1" - axobject-query: "npm:~3.1.1" + axe-core: "npm:^4.10.0" + axobject-query: "npm:^4.1.0" damerau-levenshtein: "npm:^1.0.8" emoji-regex: "npm:^9.2.2" - es-iterator-helpers: "npm:^1.0.19" + es-iterator-helpers: "npm:^1.1.0" hasown: "npm:^2.0.2" jsx-ast-utils: "npm:^3.3.5" language-tags: "npm:^1.0.9" minimatch: "npm:^3.1.2" object.fromentries: "npm:^2.0.8" safe-regex-test: "npm:^1.0.3" - string.prototype.includes: "npm:^2.0.0" + string.prototype.includes: "npm:^2.0.1" peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 10c0/72ac719ca90b6149c8f3c708ac5b1177f6757668b6e174d72a78512d4ac10329331b9c666c21e9561237a96a45d7f147f6a5d270dadbb99eb4ee093f127792c3 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: 10c0/25bf28e3db4f6789c5d4f9300fc6fc54faca19ecc537d0f46e9c873f80ed37103a033e1f716f608fab5f5813dd38af65a9a6ae2e29dd079763ce539ebecf998e languageName: node linkType: hard @@ -10163,23 +10365,22 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.6.2": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" +"eslint-plugin-react-hooks@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-react-hooks@npm:5.0.0" peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: 10c0/bcb74b421f32e4203a7100405b57aab85526be4461e5a1da01bc537969a30012d2ee209a2c2a6cac543833a27188ce1e6ad71e4628d0bb4a2e5365cad86c5002 languageName: node linkType: hard -"eslint-plugin-react@npm:^7.34.4": - version: 7.34.4 - resolution: "eslint-plugin-react@npm:7.34.4" +"eslint-plugin-react@npm:^7.37.1": + version: 7.37.1 + resolution: "eslint-plugin-react@npm:7.37.1" dependencies: array-includes: "npm:^3.1.8" array.prototype.findlast: "npm:^1.2.5" array.prototype.flatmap: "npm:^1.3.2" - array.prototype.toreversed: "npm:^1.1.2" array.prototype.tosorted: "npm:^1.1.4" doctrine: "npm:^2.1.0" es-iterator-helpers: "npm:^1.0.19" @@ -10196,8 +10397,8 @@ __metadata: string.prototype.matchall: "npm:^4.0.11" string.prototype.repeat: "npm:^1.0.0" peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 10c0/5b87cfefc7e83ee5f122bf4c4f14af62856561b4b51d84aa35056ba7ee1081b80e3331ef1e89d94e7989e349561492a6fb84944c7d7c798e91bf039366c011b0 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 10c0/13cf55666f16d2ca45b14aad1b0e14741d1817679c86d20aff0bc1e802439a8541f40a42c4c8e3486ffb710f1bcc2f3e56697f2b5f724306a7fca174e1ad6433 languageName: node linkType: hard @@ -11206,7 +11407,7 @@ __metadata: languageName: node linkType: hard -"globalthis@npm:^1.0.3": +"globalthis@npm:^1.0.3, globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" dependencies: @@ -11216,7 +11417,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.0, globby@npm:^11.0.1, globby@npm:^11.1.0": +"globby@npm:^11.0.0, globby@npm:^11.0.1": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -12645,6 +12846,19 @@ __metadata: languageName: node linkType: hard +"iterator.prototype@npm:^1.1.3": + version: 1.1.3 + resolution: "iterator.prototype@npm:1.1.3" + dependencies: + define-properties: "npm:^1.2.1" + get-intrinsic: "npm:^1.2.1" + has-symbols: "npm:^1.0.3" + reflect.getprototypeof: "npm:^1.0.4" + set-function-name: "npm:^2.0.1" + checksum: 10c0/68b0320c14291fbb3d8ed5a17e255d3127e7971bec19108076667e79c9ff4c7d69f99de4b0b3075c789c3f318366d7a0a35bb086eae0f2cf832dd58465b2f9e6 + languageName: node + linkType: hard + "jackspeak@npm:^3.1.2": version: 3.4.3 resolution: "jackspeak@npm:3.4.3" @@ -16283,22 +16497,6 @@ __metadata: languageName: node linkType: hard -"react-datepicker@npm:^7.3.0": - version: 7.3.0 - resolution: "react-datepicker@npm:7.3.0" - dependencies: - "@floating-ui/react": "npm:^0.26.2" - clsx: "npm:^2.1.0" - date-fns: "npm:^3.3.1" - prop-types: "npm:^15.7.2" - react-onclickoutside: "npm:^6.13.0" - peerDependencies: - react: ^16.9.0 || ^17 || ^18 - react-dom: ^16.9.0 || ^17 || ^18 - checksum: 10c0/a926c896fbd827bd6195e5fdbf98bf48fc86a076112bcff38dcbd580da24a98c0c8f5ed1a1dfb2d91076134e41b209e118ccd41cbc3b2036e94c54af25e1788c - languageName: node - linkType: hard - "react-docgen-typescript@npm:^2.2.2": version: 2.2.2 resolution: "react-docgen-typescript@npm:2.2.2" @@ -16392,16 +16590,6 @@ __metadata: languageName: node linkType: hard -"react-onclickoutside@npm:^6.13.0": - version: 6.13.1 - resolution: "react-onclickoutside@npm:6.13.1" - peerDependencies: - react: ^15.5.x || ^16.x || ^17.x || ^18.x - react-dom: ^15.5.x || ^16.x || ^17.x || ^18.x - checksum: 10c0/93b02c493332ca7f8b480a1e185386c4af55d1daf33af2f68ddf440e4fc9b22ad13f59d7e204694aa31c1c2e332f0766c7ee302fe3b0cecbd0e0b45d55905c96 - languageName: node - linkType: hard - "react-refresh@npm:^0.14.2": version: 0.14.2 resolution: "react-refresh@npm:0.14.2" @@ -16409,7 +16597,7 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll-bar@npm:^2.3.3": +"react-remove-scroll-bar@npm:^2.3.3, react-remove-scroll-bar@npm:^2.3.6": version: 2.3.6 resolution: "react-remove-scroll-bar@npm:2.3.6" dependencies: @@ -16444,6 +16632,25 @@ __metadata: languageName: node linkType: hard +"react-remove-scroll@npm:2.6.0": + version: 2.6.0 + resolution: "react-remove-scroll@npm:2.6.0" + dependencies: + react-remove-scroll-bar: "npm:^2.3.6" + react-style-singleton: "npm:^2.2.1" + tslib: "npm:^2.1.0" + use-callback-ref: "npm:^1.3.0" + use-sidecar: "npm:^1.1.2" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/c5881c537477d986e8d25d2588a9b6f7fe1254e05946fb4f4b55baeead502b0e1875fc3c42bb6f82736772cd96a50266e41d84e3c4cd25e9525bdfe2d838e96d + languageName: node + linkType: hard + "react-style-singleton@npm:^2.2.1": version: 2.2.1 resolution: "react-style-singleton@npm:2.2.1" @@ -17875,13 +18082,14 @@ __metadata: languageName: node linkType: hard -"string.prototype.includes@npm:^2.0.0": - version: 2.0.0 - resolution: "string.prototype.includes@npm:2.0.0" +"string.prototype.includes@npm:^2.0.1": + version: 2.0.1 + resolution: "string.prototype.includes@npm:2.0.1" dependencies: - define-properties: "npm:^1.1.3" - es-abstract: "npm:^1.17.5" - checksum: 10c0/32dff118c9e9dcc87e240b05462fa8ee7248d9e335c0015c1442fe18152261508a2146d9bb87ddae56abab69148a83c61dfaea33f53853812a6a2db737689ed2 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.3" + checksum: 10c0/25ce9c9b49128352a2618fbe8758b46f945817a58a4420f4799419e40a8d28f116e176c7590d767d5327a61e75c8f32c86171063f48e389b9fdd325f1bd04ee5 languageName: node linkType: hard @@ -18697,19 +18905,17 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^7.16.0": - version: 7.16.0 - resolution: "typescript-eslint@npm:7.16.0" +"typescript-eslint@npm:^8.11.0": + version: 8.11.0 + resolution: "typescript-eslint@npm:8.11.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:7.16.0" - "@typescript-eslint/parser": "npm:7.16.0" - "@typescript-eslint/utils": "npm:7.16.0" - peerDependencies: - eslint: ^8.56.0 + "@typescript-eslint/eslint-plugin": "npm:8.11.0" + "@typescript-eslint/parser": "npm:8.11.0" + "@typescript-eslint/utils": "npm:8.11.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/37d5e1f261db0923d1a05a60790b07c68aa95e39875a8b366674b5883e0db1bfefaf09a31237c8c0355eada6d1196ec76f6c14e3779320949e4af91daae0755b + checksum: 10c0/8f9b5916c9f47b0cbb26f142d1a266a6aaf33998ec87621252dffb56d8fe0ad01a944f8d8d837e4e6058153a1deee3557527d14fa7bf7ef80a927334529db6bd languageName: node linkType: hard