diff --git a/.nvmrc b/.nvmrc index 68c98aa7a..78a949591 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18.18.2 \ No newline at end of file +v20.15.1 \ No newline at end of file diff --git a/package.json b/package.json index 64c1ff4ab..9f9473eb3 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "prettier": "^3.2.5", "prettier-plugin-svelte": "^3.2.2", "prettier-plugin-tailwindcss": "0.5.13", - "svelte": "5.0.0-next.181", + "svelte": "5.0.0-next.183", "svelte-eslint-parser": "^0.34.1", "wrangler": "^3.44.0" }, diff --git a/packages/bits-ui/package.json b/packages/bits-ui/package.json index d35e42ac8..e79c9c01d 100644 --- a/packages/bits-ui/package.json +++ b/packages/bits-ui/package.json @@ -1,6 +1,6 @@ { "name": "bits-ui", - "version": "0.21.3", + "version": "0.21.4", "license": "MIT", "repository": "github:huntabyte/bits-ui", "funding": "https://github.com/sponsors/huntabyte", @@ -28,41 +28,41 @@ ], "devDependencies": { "@melt-ui/pp": "^0.3.0", - "@sveltejs/kit": "^2.5.0", - "@sveltejs/package": "^2.2.7", - "@sveltejs/vite-plugin-svelte": "^3.1.0", - "@testing-library/dom": "^10.0.0", - "@testing-library/jest-dom": "^6.4.2", + "@sveltejs/kit": "^2.5.18", + "@sveltejs/package": "^2.3.2", + "@sveltejs/vite-plugin-svelte": "^3.1.1", + "@testing-library/dom": "^10.3.1", + "@testing-library/jest-dom": "^6.4.6", "@testing-library/svelte": "^5.2.0", "@testing-library/user-event": "^14.5.2", "@types/jest-axe": "^3.5.9", - "@types/node": "^20.12.2", + "@types/node": "^20.14.10", "@types/resize-observer-browser": "^0.1.11", "@types/testing-library__jest-dom": "^5.14.9", "@vitest/ui": "^1.5.0", "csstype": "^3.1.3", - "jest-axe": "^8.0.0", - "jsdom": "^24.0.0", - "publint": "^0.2.7", + "jest-axe": "^9.0.0", + "jsdom": "^24.1.0", + "publint": "^0.2.8", "resize-observer-polyfill": "^1.5.1", - "svelte": "5.0.0-next.181", - "svelte-check": "^3.6.9", - "tslib": "^2.6.2", + "svelte": "5.0.0-next.183", + "svelte-check": "^3.8.4", + "tslib": "^2.6.3", "typescript": "^5.5.3", - "vite": "^5.2.8", - "vitest": "^1.6.0" + "vite": "^5.3.3", + "vitest": "^2.0.2" }, "svelte": "./dist/index.js", "types": "./dist/index.d.ts", "type": "module", "dependencies": { - "@floating-ui/core": "^1.6.0", - "@floating-ui/dom": "^1.6.3", - "@internationalized/date": "^3.5.1", + "@floating-ui/core": "^1.6.4", + "@floating-ui/dom": "^1.6.7", + "@internationalized/date": "^3.5.4", "@melt-ui/svelte": "0.76.2", - "clsx": "^2.1.0", + "clsx": "^2.1.1", "esm-env": "^1.0.0", - "nanoid": "^5.0.5", + "nanoid": "^5.0.7", "runed": "^0.15.0", "scule": "^1.3.0", "style-object-to-css-string": "^1.1.3", @@ -70,6 +70,6 @@ "svelte-toolbelt": "^0.0.2" }, "peerDependencies": { - "svelte": "^5.0.0" + "svelte": "^5.0.0-next.1" } } diff --git a/packages/bits-ui/src/lib/bits/aspect-ratio/components/aspect-ratio.svelte b/packages/bits-ui/src/lib/bits/aspect-ratio/components/aspect-ratio.svelte index e5883f355..381185b58 100644 --- a/packages/bits-ui/src/lib/bits/aspect-ratio/components/aspect-ratio.svelte +++ b/packages/bits-ui/src/lib/bits/aspect-ratio/components/aspect-ratio.svelte @@ -1,7 +1,7 @@
diff --git a/packages/bits-ui/src/lib/bits/aspect-ratio/index.ts b/packages/bits-ui/src/lib/bits/aspect-ratio/index.ts index 9d76843c5..b4be99bc7 100644 --- a/packages/bits-ui/src/lib/bits/aspect-ratio/index.ts +++ b/packages/bits-ui/src/lib/bits/aspect-ratio/index.ts @@ -1,3 +1,3 @@ export { default as Root } from "./components/aspect-ratio.svelte"; -export type { AspectRatioProps as Props } from "./types.js"; +export type { AspectRatioProps as RootProps } from "./types.js"; diff --git a/packages/bits-ui/src/lib/bits/aspect-ratio/types.ts b/packages/bits-ui/src/lib/bits/aspect-ratio/types.ts index d9f07f539..714224973 100644 --- a/packages/bits-ui/src/lib/bits/aspect-ratio/types.ts +++ b/packages/bits-ui/src/lib/bits/aspect-ratio/types.ts @@ -1,4 +1,5 @@ import type { HTMLDivAttributes } from "$lib/internal/index.js"; +import type { Expand } from "$lib/internal/index.js"; export type AspectRatioPropsWithoutHTML = Expand<{ ratio?: number; diff --git a/packages/bits-ui/src/lib/bits/avatar/avatar.svelte.ts b/packages/bits-ui/src/lib/bits/avatar/avatar.svelte.ts index 77e6b2193..68fd2ac2f 100644 --- a/packages/bits-ui/src/lib/bits/avatar/avatar.svelte.ts +++ b/packages/bits-ui/src/lib/bits/avatar/avatar.svelte.ts @@ -146,7 +146,7 @@ class AvatarFallbackState { () => ({ style: { - display: this.root.loadingStatus.value === "loaded" ? "none" : "block", + display: this.root.loadingStatus.value === "loaded" ? "none" : undefined, }, [AVATAR_FALLBACK_ATTR]: "", }) as const diff --git a/packages/bits-ui/src/lib/bits/calendar/types.ts b/packages/bits-ui/src/lib/bits/calendar/types.ts index c65c40c97..154deefcc 100644 --- a/packages/bits-ui/src/lib/bits/calendar/types.ts +++ b/packages/bits-ui/src/lib/bits/calendar/types.ts @@ -20,176 +20,173 @@ export type CalendarRootSnippetProps = { weekdays: string[]; }; -type CalendarBaseRootPropsWithoutHTML = WithChild< - { - /** - * The placeholder date, used to control the view of the - * calendar when no value is present. - * - * @defaultValue the current date - */ - placeholder?: DateValue; +type CalendarBaseRootPropsWithoutHTML = { + /** + * The placeholder date, used to control the view of the + * calendar when no value is present. + * + * @defaultValue the current date + */ + placeholder?: DateValue; - /** - * A callback function called when the placeholder value - * changes. - */ - onPlaceholderChange?: OnChangeFn; + /** + * A callback function called when the placeholder value + * changes. + */ + onPlaceholderChange?: OnChangeFn; - /** - * Whether or not users can deselect a date once selected - * without selecting another date. - * - * @defaultValue false - */ - preventDeselect?: boolean; + /** + * Whether or not users can deselect a date once selected + * without selecting another date. + * + * @defaultValue false + */ + preventDeselect?: boolean; - /** - * The minimum date that can be selected in the calendar. - */ - minValue?: DateValue; + /** + * The minimum date that can be selected in the calendar. + */ + minValue?: DateValue; - /** - * The maximum date that can be selected in the calendar. - */ - maxValue?: DateValue; + /** + * The maximum date that can be selected in the calendar. + */ + maxValue?: DateValue; - /** - * Whether or not the calendar is disabled. - * - * @defaultValue false - */ - disabled?: boolean; + /** + * Whether or not the calendar is disabled. + * + * @defaultValue false + */ + disabled?: boolean; - /** - * Applicable only when `numberOfMonths` is greater than 1. - * - * Controls whether to use paged navigation for the next and previous buttons in the - * date picker. With paged navigation set to `true`, clicking the next/prev buttons - * changes all months in view. When set to `false`, it shifts the view by a single month. - * - * For example, with `pagedNavigation` set to `true` and 2 months displayed (January and - * February), clicking the next button changes the view to March and April. If `pagedNavigation` - * is `false`, the view shifts to February and March. - * - * @defaultValue false - */ - pagedNavigation?: boolean; + /** + * Applicable only when `numberOfMonths` is greater than 1. + * + * Controls whether to use paged navigation for the next and previous buttons in the + * date picker. With paged navigation set to `true`, clicking the next/prev buttons + * changes all months in view. When set to `false`, it shifts the view by a single month. + * + * For example, with `pagedNavigation` set to `true` and 2 months displayed (January and + * February), clicking the next button changes the view to March and April. If `pagedNavigation` + * is `false`, the view shifts to February and March. + * + * @defaultValue false + */ + pagedNavigation?: boolean; - /** - * The day of the week to start the calendar on, which must - * be a number between 0 and 6, where 0 is Sunday and 6 is - * Saturday. - * - * @defaultValue 0 (Sunday) - */ - weekStartsOn?: WeekStartsOn; + /** + * The day of the week to start the calendar on, which must + * be a number between 0 and 6, where 0 is Sunday and 6 is + * Saturday. + * + * @defaultValue 0 (Sunday) + */ + weekStartsOn?: WeekStartsOn; - /** - * How the string representation of the weekdays provided via the `weekdays` state store - * should be formatted. - * - * ```md - * - "long": "Sunday", "Monday", "Tuesday", etc. - * - "short": "Sun", "Mon", "Tue", etc. - * - "narrow": "S", "M", "T", etc. - *``` - * - * @defaultValue "narrow" - * - * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#weekday - */ - weekdayFormat?: Intl.DateTimeFormatOptions["weekday"]; + /** + * How the string representation of the weekdays provided via the `weekdays` state store + * should be formatted. + * + * ```md + * - "long": "Sunday", "Monday", "Tuesday", etc. + * - "short": "Sun", "Mon", "Tue", etc. + * - "narrow": "S", "M", "T", etc. + *``` + * + * @defaultValue "narrow" + * + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#weekday + */ + weekdayFormat?: Intl.DateTimeFormatOptions["weekday"]; - /** - * A function that receives a date and returns `true` or `false` to indicate whether - * the date is disabled. - * - * @remarks - * Disabled dates cannot be focused or selected. Additionally, they are tagged - * with a data attribute to enable custom styling. - * - * `[data-disabled]` - applied to disabled dates - * - */ - isDateDisabled?: DateMatcher; + /** + * A function that receives a date and returns `true` or `false` to indicate whether + * the date is disabled. + * + * @remarks + * Disabled dates cannot be focused or selected. Additionally, they are tagged + * with a data attribute to enable custom styling. + * + * `[data-disabled]` - applied to disabled dates + * + */ + isDateDisabled?: DateMatcher; - /** - * Dates matching the provided matchers are marked as "unavailable." Unlike disabled dates, - * users can still focus and select unavailable dates. However, selecting an unavailable date - * renders the date picker as invalid. - * - * For example, in a calendar for booking appointments, you might mark already booked dates as - * unavailable. These dates could become available again before the appointment date, allowing - * users to select them to learn more about the appointment. - * - * `[data-unavailable]` - applied to unavailable dates - * - */ - isDateUnavailable?: DateMatcher; + /** + * Dates matching the provided matchers are marked as "unavailable." Unlike disabled dates, + * users can still focus and select unavailable dates. However, selecting an unavailable date + * renders the date picker as invalid. + * + * For example, in a calendar for booking appointments, you might mark already booked dates as + * unavailable. These dates could become available again before the appointment date, allowing + * users to select them to learn more about the appointment. + * + * `[data-unavailable]` - applied to unavailable dates + * + */ + isDateUnavailable?: DateMatcher; - /** - * Display 6 weeks per month, regardless the month's number of weeks. - * This is useful for displaying a consistent calendar, where the size - * of the calendar doesn't change month to month. - * - * To display 6 weeks per month, you will need to render out the previous - * and next month's dates in the calendar as well. - * - * @defaultValue false - */ - fixedWeeks?: boolean; + /** + * Display 6 weeks per month, regardless the month's number of weeks. + * This is useful for displaying a consistent calendar, where the size + * of the calendar doesn't change month to month. + * + * To display 6 weeks per month, you will need to render out the previous + * and next month's dates in the calendar as well. + * + * @defaultValue false + */ + fixedWeeks?: boolean; - /** - * Determines the number of months to display on the calendar simultaneously. - * For navigation between months, refer to the `pagedNavigation` prop. - * - * @defaultValue 1 - */ - numberOfMonths?: number; + /** + * Determines the number of months to display on the calendar simultaneously. + * For navigation between months, refer to the `pagedNavigation` prop. + * + * @defaultValue 1 + */ + numberOfMonths?: number; - /** - * This label is exclusively used for accessibility, remaining hidden from the page. - * It's read by screen readers when the calendar is opened. The current month and year - * are automatically appended to the label, so you only need to provide the base label. - * - * For instance: - * - 'Date of birth' will be read as 'Date of birth, January 2021' if the current month is January 2021. - * - 'Appointment date' will be read as 'Appointment date, January 2021' if the current month is January 2021. - * - 'Booking date' will be read as 'Booking date, January 2021' if the current month is January 2021. - */ - calendarLabel?: string; + /** + * This label is exclusively used for accessibility, remaining hidden from the page. + * It's read by screen readers when the calendar is opened. The current month and year + * are automatically appended to the label, so you only need to provide the base label. + * + * For instance: + * - 'Date of birth' will be read as 'Date of birth, January 2021' if the current month is January 2021. + * - 'Appointment date' will be read as 'Appointment date, January 2021' if the current month is January 2021. + * - 'Booking date' will be read as 'Booking date, January 2021' if the current month is January 2021. + */ + calendarLabel?: string; - /** - * The default locale setting. - * - * @defaultValue 'en' - */ - locale?: string; + /** + * The default locale setting. + * + * @defaultValue 'en' + */ + locale?: string; - /** - * Whether the calendar is readonly. When true, the user will be able - * to focus and navigate the calendar, but will not be able to select - * dates. @see disabled for a similar prop that prevents focusing - * and selecting dates. - * - * @defaultValue false - */ - readonly?: boolean; + /** + * Whether the calendar is readonly. When true, the user will be able + * to focus and navigate the calendar, but will not be able to select + * dates. @see disabled for a similar prop that prevents focusing + * and selecting dates. + * + * @defaultValue false + */ + readonly?: boolean; - /** - * Whether to disable the selection of days outside the current month. By default, - * days outside the current month are rendered to fill the calendar grid, but they - * are not selectable. Setting this prop to `true` will disable this behavior. - * - * @defaultValue false - */ - disableDaysOutsideMonth?: boolean; - }, - CalendarRootSnippetProps ->; + /** + * Whether to disable the selection of days outside the current month. By default, + * days outside the current month are rendered to fill the calendar grid, but they + * are not selectable. Setting this prop to `true` will disable this behavior. + * + * @defaultValue false + */ + disableDaysOutsideMonth?: boolean; +}; -type CalendarSingleRootPropsWithoutHTML = CalendarBaseRootPropsWithoutHTML & { +type CalendarSingleRootPropsWithoutHTML = { /** * The type of calendar. If set to `'single'`, the calendar will * only allow a single date to be selected. If set to `'multiple'`, @@ -208,7 +205,7 @@ type CalendarSingleRootPropsWithoutHTML = CalendarBaseRootPropsWithoutHTML & { onValueChange?: OnChangeFn; }; -type CalendarMultipleRootPropsWithoutHTML = CalendarBaseRootPropsWithoutHTML & { +type CalendarMultipleRootPropsWithoutHTML = { /** * The type of calendar. If set to `'single'`, the calendar will * only allow a single date to be selected. If set to `'multiple'`, @@ -227,9 +224,11 @@ type CalendarMultipleRootPropsWithoutHTML = CalendarBaseRootPropsWithoutHTML & { onValueChange?: OnChangeFn; }; -export type CalendarRootPropsWithoutHTML = - | CalendarSingleRootPropsWithoutHTML - | CalendarMultipleRootPropsWithoutHTML; +export type CalendarRootPropsWithoutHTML = CalendarBaseRootPropsWithoutHTML & + ( + | WithChild + | WithChild + ); export type CalendarRootProps = CalendarRootPropsWithoutHTML & Without; diff --git a/packages/bits-ui/src/lib/bits/date-range-field/components/date-range-field.svelte b/packages/bits-ui/src/lib/bits/date-range-field/components/date-range-field.svelte index e230c482e..95742779b 100644 --- a/packages/bits-ui/src/lib/bits/date-range-field/components/date-range-field.svelte +++ b/packages/bits-ui/src/lib/bits/date-range-field/components/date-range-field.svelte @@ -29,9 +29,14 @@ readonlySegments = [], children, child, + onStartValueChange = noop, + onEndValueChange = noop, ...restProps }: RootProps = $props(); + let startValue = $state(value?.start); + let endValue = $state(value?.end); + if (placeholder === undefined) { placeholder = getDefaultDate({ granularity, @@ -79,6 +84,20 @@ } } ), + startValue: box.with( + () => startValue, + (v) => { + startValue = v; + onStartValueChange(v); + } + ), + endValue: box.with( + () => endValue, + (v) => { + endValue = v; + onEndValueChange(v); + } + ), }); const mergedProps = $derived(mergeProps(restProps, rootState.props)); diff --git a/packages/bits-ui/src/lib/bits/date-range-field/date-range-field.svelte.ts b/packages/bits-ui/src/lib/bits/date-range-field/date-range-field.svelte.ts index 9502f4497..191f3ce32 100644 --- a/packages/bits-ui/src/lib/bits/date-range-field/date-range-field.svelte.ts +++ b/packages/bits-ui/src/lib/bits/date-range-field/date-range-field.svelte.ts @@ -7,7 +7,7 @@ import type { DateRange, SegmentPart } from "$lib/shared/index.js"; import type { DateValue } from "@internationalized/date"; import { onDestroy, untrack } from "svelte"; import { useDateFieldRoot } from "../date-field/date-field.svelte.js"; -import type { WithRefProps } from "$lib/internal/types.js"; +import type { OnChangeFn, WithRefProps } from "$lib/internal/types.js"; import { useRefById } from "$lib/internal/useRefById.svelte.js"; import { createContext } from "$lib/internal/createContext.js"; import { getFirstSegment } from "$lib/shared/date/field.js"; @@ -20,6 +20,8 @@ type DateRangeFieldRootStateProps = WithRefProps< WritableBoxedValues<{ value: DateRange; placeholder: DateValue; + startValue: DateValue | undefined; + endValue: DateValue | undefined; }> & ReadableBoxedValues<{ readonlySegments: SegmentPart[]; @@ -52,35 +54,35 @@ export class DateRangeFieldRootState { locale: DateRangeFieldRootStateProps["locale"]; hideTimeZone: DateRangeFieldRootStateProps["hideTimeZone"]; required: DateRangeFieldRootStateProps["required"]; + startValue: DateRangeFieldRootStateProps["startValue"]; + endValue: DateRangeFieldRootStateProps["endValue"]; descriptionId = useId(); formatter: Formatter; fieldNode = $state(null); labelNode = $state(null); descriptionNode = $state(null); validationNode = $state(null); - startValue = $state(undefined); - endValue = $state(undefined); startValueComplete = $derived.by(() => this.startValue !== undefined); endValueComplete = $derived.by(() => this.endValue !== undefined); rangeComplete = $derived(this.startValueComplete && this.endValueComplete); mergedValues = $derived.by(() => { - if (this.startValue === undefined || this.endValue === undefined) { + if (this.startValue.value === undefined || this.endValue.value === undefined) { return { start: undefined, end: undefined, }; } else { return { - start: this.startValue, - end: this.endValue, + start: this.startValue.value, + end: this.endValue.value, }; } }); constructor(props: DateRangeFieldRootStateProps) { this.value = props.value; - this.startValue = this.value.value.start; - this.endValue = this.value.value.end; + this.startValue = props.startValue; + this.endValue = props.endValue; this.placeholder = props.placeholder; this.isDateUnavailable = props.isDateUnavailable; this.minValue = props.minValue; @@ -135,11 +137,11 @@ export class DateRangeFieldRootState { const value = this.value.value; untrack(() => { - if (value && value.start !== this.startValue) { - this.startValue = value.start; + if (value && value.start !== this.startValue.value) { + this.setStartValue(value.start); } - if (value && value.end !== this.endValue) { - this.endValue = value.end; + if (value && value.end !== this.endValue.value) { + this.setEndValue(value.end); } }); }); @@ -148,7 +150,7 @@ export class DateRangeFieldRootState { $effect(() => { const placeholder = untrack(() => this.placeholder.value); - const startValue = untrack(() => this.startValue); + const startValue = untrack(() => this.startValue.value); if (this.startValueComplete && placeholder !== startValue) { untrack(() => { @@ -164,6 +166,14 @@ export class DateRangeFieldRootState { }); } + setStartValue(value: DateValue | undefined) { + this.startValue.value = value; + } + + setEndValue(value: DateValue | undefined) { + this.endValue.value = value; + } + /** * These props are used to override those of the child fields. * TODO: diff --git a/packages/bits-ui/src/lib/bits/date-range-field/types.ts b/packages/bits-ui/src/lib/bits/date-range-field/types.ts index f5119e8cf..c86728673 100644 --- a/packages/bits-ui/src/lib/bits/date-range-field/types.ts +++ b/packages/bits-ui/src/lib/bits/date-range-field/types.ts @@ -126,6 +126,20 @@ export type DateRangeFieldRootPropsWithoutHTML = WithChild<{ * @defaultValue false; */ hideTimeZone?: boolean; + + /** + * A callback function called when the start value changes. This doesn't necessarily mean + * the `value` has updated and should be used to apply cosmetic changes to the calendar when + * only part of the value is changed/completed. + */ + onStartValueChange?: OnChangeFn; + + /** + * A callback function called when the end value changes. This doesn't necessarily mean + * the `value` has updated and should be used to apply cosmetic changes to the calendar when + * only part of the value is changed/completed. + */ + onEndValueChange?: OnChangeFn; }>; export type DateRangeFieldRootProps = DateRangeFieldRootPropsWithoutHTML & diff --git a/packages/bits-ui/src/lib/bits/date-range-picker/components/date-range-picker-calendar.svelte b/packages/bits-ui/src/lib/bits/date-range-picker/components/date-range-picker-calendar.svelte index 71b9e699d..3d69b30ef 100644 --- a/packages/bits-ui/src/lib/bits/date-range-picker/components/date-range-picker-calendar.svelte +++ b/packages/bits-ui/src/lib/bits/date-range-picker/components/date-range-picker-calendar.svelte @@ -40,6 +40,8 @@ placeholder: dateRangePickerRootState.props.placeholder, value: dateRangePickerRootState.props.value, onRangeSelect: dateRangePickerRootState.props.onRangeSelect, + startValue: dateRangePickerRootState.props.startValue, + endValue: dateRangePickerRootState.props.endValue, }); const mergedProps = $derived(mergeProps(restProps, rangeCalendarState.props)); diff --git a/packages/bits-ui/src/lib/bits/date-range-picker/components/date-range-picker.svelte b/packages/bits-ui/src/lib/bits/date-range-picker/components/date-range-picker.svelte index 444f01023..535cd1ef9 100644 --- a/packages/bits-ui/src/lib/bits/date-range-picker/components/date-range-picker.svelte +++ b/packages/bits-ui/src/lib/bits/date-range-picker/components/date-range-picker.svelte @@ -42,11 +42,16 @@ fixedWeeks = false, numberOfMonths = 1, closeOnRangeSelect = true, + onStartValueChange = noop, + onEndValueChange = noop, child, children, ...restProps }: RootProps = $props(); + let startValue = $state(value?.start); + let endValue = $state(value?.end); + if (value === undefined) { value = { start: undefined, end: undefined }; } @@ -114,6 +119,20 @@ fixedWeeks: box.with(() => fixedWeeks), numberOfMonths: box.with(() => numberOfMonths), onRangeSelect: box.with(() => onRangeSelect), + startValue: box.with( + () => startValue, + (v) => { + startValue = v; + onStartValueChange(v); + } + ), + endValue: box.with( + () => endValue, + (v) => { + endValue = v; + onEndValueChange(v); + } + ), }); usePopoverRoot({ @@ -139,6 +158,8 @@ () => ref, (v) => (ref = v) ), + startValue: pickerRootState.props.startValue, + endValue: pickerRootState.props.endValue, }); const mergedProps = $derived(mergeProps(restProps, fieldRootState.props)); diff --git a/packages/bits-ui/src/lib/bits/date-range-picker/date-range-picker.svelte.ts b/packages/bits-ui/src/lib/bits/date-range-picker/date-range-picker.svelte.ts index d5f61adc3..49437cdc2 100644 --- a/packages/bits-ui/src/lib/bits/date-range-picker/date-range-picker.svelte.ts +++ b/packages/bits-ui/src/lib/bits/date-range-picker/date-range-picker.svelte.ts @@ -6,6 +6,8 @@ import type { DateValue } from "@internationalized/date"; type DateRangePickerRootStateProps = WritableBoxedValues<{ value: DateRange; + startValue: DateValue | undefined; + endValue: DateValue | undefined; open: boolean; placeholder: DateValue; }> & diff --git a/packages/bits-ui/src/lib/bits/date-range-picker/types.ts b/packages/bits-ui/src/lib/bits/date-range-picker/types.ts index e60d97625..dcef60a4f 100644 --- a/packages/bits-ui/src/lib/bits/date-range-picker/types.ts +++ b/packages/bits-ui/src/lib/bits/date-range-picker/types.ts @@ -238,6 +238,20 @@ export type DateRangePickerRootPropsWithoutHTML = WithChild<{ * @defaultValue true */ closeOnRangeSelect?: boolean; + + /** + * A callback function called when the start value changes. This doesn't necessarily mean + * the `value` has updated and should be used to apply cosmetic changes to the calendar when + * only part of the value is changed/completed. + */ + onStartValueChange?: OnChangeFn; + + /** + * A callback function called when the end value changes. This doesn't necessarily mean + * the `value` has updated and should be used to apply cosmetic changes to the calendar when + * only part of the value is changed/completed. + */ + onEndValueChange?: OnChangeFn; }>; export type DateRangePickerRootProps = DateRangePickerRootPropsWithoutHTML & diff --git a/packages/bits-ui/src/lib/bits/floating/_types.ts b/packages/bits-ui/src/lib/bits/floating/_types.ts index d8762c697..4ff7a5e14 100644 --- a/packages/bits-ui/src/lib/bits/floating/_types.ts +++ b/packages/bits-ui/src/lib/bits/floating/_types.ts @@ -1,4 +1,5 @@ import type { DOMElement, Transition, TransitionProps } from "$lib/internal/index.js"; +import type { Expand } from "$lib/internal/index.js"; export type ArrowProps = Expand< { diff --git a/packages/bits-ui/src/lib/bits/index.ts b/packages/bits-ui/src/lib/bits/index.ts index 82dc4c5ff..81fc69516 100644 --- a/packages/bits-ui/src/lib/bits/index.ts +++ b/packages/bits-ui/src/lib/bits/index.ts @@ -1,5 +1,3 @@ -import { writable } from "svelte/store"; - export * as Accordion from "./accordion/index.js"; export * as AlertDialog from "./alert-dialog/index.js"; export * as AspectRatio from "./aspect-ratio/index.js"; @@ -37,5 +35,3 @@ export * as Toggle from "./toggle/index.js"; export * as ToggleGroup from "./toggle-group/index.js"; export * as Toolbar from "./toolbar/index.js"; export * as Tooltip from "./tooltip/index.js"; - -export const eventLogs = writable([]); diff --git a/packages/bits-ui/src/lib/bits/label/types.ts b/packages/bits-ui/src/lib/bits/label/types.ts index 0a617c890..1e5fbbe02 100644 --- a/packages/bits-ui/src/lib/bits/label/types.ts +++ b/packages/bits-ui/src/lib/bits/label/types.ts @@ -1,7 +1,7 @@ import type { PrimitiveLabelAttributes, WithChild, Without } from "$lib/internal/types.js"; export type LabelRootPropsWithoutHTML = WithChild<{ - for: string; + for?: string; }>; export type LabelRootProps = LabelRootPropsWithoutHTML & diff --git a/packages/bits-ui/src/lib/bits/popover/index.ts b/packages/bits-ui/src/lib/bits/popover/index.ts index bc11ccdb3..4f5a2f7d6 100644 --- a/packages/bits-ui/src/lib/bits/popover/index.ts +++ b/packages/bits-ui/src/lib/bits/popover/index.ts @@ -11,8 +11,6 @@ export type { PopoverContentProps as ContentProps, PopoverTriggerProps as TriggerProps, PopoverCloseProps as CloseProps, - PopoverTriggerEvents as TriggerEvents, - PopoverCloseEvents as CloseEvents, } from "./types.js"; export type { PortalProps } from "$lib/bits/utilities/portal/types.js"; diff --git a/packages/bits-ui/src/lib/bits/radio-group/index.ts b/packages/bits-ui/src/lib/bits/radio-group/index.ts index 5311f6065..2a5d62ab9 100644 --- a/packages/bits-ui/src/lib/bits/radio-group/index.ts +++ b/packages/bits-ui/src/lib/bits/radio-group/index.ts @@ -1,5 +1,4 @@ export { default as Root } from "./components/radio-group.svelte"; -export { default as Input } from "./components/radio-group-input.svelte"; export { default as Item } from "./components/radio-group-item.svelte"; export type { diff --git a/packages/bits-ui/src/lib/bits/range-calendar/components/range-calendar.svelte b/packages/bits-ui/src/lib/bits/range-calendar/components/range-calendar.svelte index c2482e83c..a823560b8 100644 --- a/packages/bits-ui/src/lib/bits/range-calendar/components/range-calendar.svelte +++ b/packages/bits-ui/src/lib/bits/range-calendar/components/range-calendar.svelte @@ -1,5 +1,6 @@ - + {#snippet content({ props })} - {@const finalProps = mergeProps(props, mergedProps)} + {@const finalProps = mergeProps(props, mergedProps, { + style: contentFloatingState.props.style, + })} {#if child} {@render child?.({ props: finalProps })} {:else} diff --git a/packages/bits-ui/src/lib/bits/select/components/select-item-text.svelte b/packages/bits-ui/src/lib/bits/select/components/select-item-text.svelte index a27d4f7f1..25517d4be 100644 --- a/packages/bits-ui/src/lib/bits/select/components/select-item-text.svelte +++ b/packages/bits-ui/src/lib/bits/select/components/select-item-text.svelte @@ -25,7 +25,7 @@ const mergedProps = $derived(mergeProps(restProps, itemTextState.props)); -{#if itemTextState.item.isSelected && itemTextState.item.root.valueId.value && !itemTextState.item.root.valueNodeHasChildren.value} +{#if itemTextState.item.isSelected && itemTextState.item.root.valueId.value && !itemTextState.item.root.valueNodeHasChildren.value && itemTextState.item.root.valueNode} {@render children?.()} diff --git a/packages/bits-ui/src/lib/bits/select/select.svelte.ts b/packages/bits-ui/src/lib/bits/select/select.svelte.ts index 3ca2220ba..bf3ff7154 100644 --- a/packages/bits-ui/src/lib/bits/select/select.svelte.ts +++ b/packages/bits-ui/src/lib/bits/select/select.svelte.ts @@ -1,4 +1,4 @@ -import { type ReadableBox, box } from "svelte-toolbelt"; +import { type ReadableBox, type WritableBox, box } from "svelte-toolbelt"; import { SvelteMap } from "svelte/reactivity"; import { untrack } from "svelte"; import type { ReadableBoxedValues, WritableBoxedValues } from "$lib/internal/box.svelte.js"; @@ -89,6 +89,7 @@ export class SelectRootState { triggerNode = $state(null); valueId = box(useId()); valueNodeHasChildren = box(false); + valueNode = $state(null); contentNode = $state(null); triggerPointerDownPos = box<{ x: number; y: number } | null>({ x: 0, y: 0 }); contentFragment = $state(null); @@ -306,9 +307,18 @@ class SelectTriggerState { class SelectValueState { root: SelectRootState; showPlaceholder = $derived.by(() => shouldShowPlaceholder(this.root.value.value)); + ref: WritableBox = box(null); constructor(root: SelectRootState) { this.root = root; + + useRefById({ + id: this.root.valueId, + ref: this.ref, + onRefChange: (node) => { + this.root.valueNode = node; + }, + }); } props = $derived.by( diff --git a/packages/bits-ui/src/lib/bits/utilities/floating-layer/useFloatingLayer.svelte.ts b/packages/bits-ui/src/lib/bits/utilities/floating-layer/useFloatingLayer.svelte.ts index d8d39710f..2b71aafbc 100644 --- a/packages/bits-ui/src/lib/bits/utilities/floating-layer/useFloatingLayer.svelte.ts +++ b/packages/bits-ui/src/lib/bits/utilities/floating-layer/useFloatingLayer.svelte.ts @@ -204,6 +204,7 @@ class FloatingContentState { visibility: "hidden", "pointer-events": "none", }), + ...this.style.value, }, // Floating UI calculates logical alignment based the `dir` attribute dir: this.dir.value, diff --git a/packages/bits-ui/src/lib/index.ts b/packages/bits-ui/src/lib/index.ts index 40f9e7790..fc1bd4bbc 100644 --- a/packages/bits-ui/src/lib/index.ts +++ b/packages/bits-ui/src/lib/index.ts @@ -1,4 +1,3 @@ -// Reexport your entry components here export * from "./bits/index.js"; export * from "./helpers/index.js"; export * from "./shared/index.js"; diff --git a/packages/bits-ui/src/lib/internal/types.ts b/packages/bits-ui/src/lib/internal/types.ts index b3ff903cf..a85fc4cd2 100644 --- a/packages/bits-ui/src/lib/internal/types.ts +++ b/packages/bits-ui/src/lib/internal/types.ts @@ -168,8 +168,8 @@ export type WithChild< > = Omit & { child?: SnippetProps extends { _default: never } ? Snippet<[{ props: Record }]> - : Snippet<[Expand & { props: Record }]>; - children?: SnippetProps extends { _default: never } ? Snippet : Snippet<[Expand]>; + : Snippet<[SnippetProps & { props: Record }]>; + children?: SnippetProps extends { _default: never } ? Snippet : Snippet<[SnippetProps]>; style?: StyleProperties; ref?: Ref | null; }; diff --git a/packages/bits-ui/src/lib/shared/index.ts b/packages/bits-ui/src/lib/shared/index.ts index 9f25a1d4f..0c99f5813 100644 --- a/packages/bits-ui/src/lib/shared/index.ts +++ b/packages/bits-ui/src/lib/shared/index.ts @@ -1,5 +1,5 @@ import type { DateValue } from "@internationalized/date"; -import type { EditableSegmentPart, Month } from "@melt-ui/svelte"; + import type * as CSS from "csstype"; export type Selected = { @@ -26,11 +26,20 @@ export type SegmentPart = export type FocusTarget = string | HTMLElement | SVGElement | null; export type FocusProp = FocusTarget | ((defaultEl?: HTMLElement | null) => FocusTarget); -export type StyleProperties = CSS.Properties; +export type StyleProperties = CSS.Properties & { + // Allow any CSS Custom Properties + // eslint-disable-next-line ts/no-explicit-any + [str: `--${string}`]: any; +}; export type Orientation = "horizontal" | "vertical"; export type Direction = "ltr" | "rtl"; -export type WithoutChildren = Omit; - -export type { Month, EditableSegmentPart }; +export type WithoutChildrenOrChild = WithoutChildren>; +export type WithoutChildren = T extends { children?: any } ? Omit : T; +export type WithoutChild = T extends { child?: any } ? Omit : T; +export type WithElementRef = T & { ref?: U | null }; +export type { EditableSegmentPart } from "./date/field/types.js"; +export type { Month } from "./date/types.js"; +export type { WithChild, Expand, Without } from "$lib/internal/types.js"; +export { useId } from "$lib/internal/useId.svelte.js"; diff --git a/packages/bits-ui/src/tests/calendar/CalendarMultiTest.svelte b/packages/bits-ui/src/tests/calendar/CalendarMultiTest.svelte index 3e1fa3d60..4a3f4b37f 100644 --- a/packages/bits-ui/src/tests/calendar/CalendarMultiTest.svelte +++ b/packages/bits-ui/src/tests/calendar/CalendarMultiTest.svelte @@ -1,9 +1,9 @@ diff --git a/packages/bits-ui/src/tests/date-range-field/DateRangeFieldTest.svelte b/packages/bits-ui/src/tests/date-range-field/DateRangeFieldTest.svelte index a1c8a583c..4e01cdab0 100644 --- a/packages/bits-ui/src/tests/date-range-field/DateRangeFieldTest.svelte +++ b/packages/bits-ui/src/tests/date-range-field/DateRangeFieldTest.svelte @@ -1,5 +1,5 @@
diff --git a/packages/bits-ui/src/tests/tabs/TabsTest.svelte b/packages/bits-ui/src/tests/tabs/TabsTest.svelte index a090d0aef..7180e74e1 100644 --- a/packages/bits-ui/src/tests/tabs/TabsTest.svelte +++ b/packages/bits-ui/src/tests/tabs/TabsTest.svelte @@ -1,11 +1,11 @@ diff --git a/packages/bits-ui/src/tests/toggle-group/ToggleGroupMultipleTest.svelte b/packages/bits-ui/src/tests/toggle-group/ToggleGroupMultipleTest.svelte index f7818f233..9bf4d4501 100644 --- a/packages/bits-ui/src/tests/toggle-group/ToggleGroupMultipleTest.svelte +++ b/packages/bits-ui/src/tests/toggle-group/ToggleGroupMultipleTest.svelte @@ -1,12 +1,12 @@ diff --git a/packages/bits-ui/src/tests/toggle-group/ToggleGroupTest.svelte b/packages/bits-ui/src/tests/toggle-group/ToggleGroupTest.svelte index 2ed1f8ee8..47ae2f1e7 100644 --- a/packages/bits-ui/src/tests/toggle-group/ToggleGroupTest.svelte +++ b/packages/bits-ui/src/tests/toggle-group/ToggleGroupTest.svelte @@ -1,12 +1,12 @@ diff --git a/packages/bits-ui/src/tests/toggle/ToggleTest.svelte b/packages/bits-ui/src/tests/toggle/ToggleTest.svelte index 6f942feee..7a215a32c 100644 --- a/packages/bits-ui/src/tests/toggle/ToggleTest.svelte +++ b/packages/bits-ui/src/tests/toggle/ToggleTest.svelte @@ -1,7 +1,7 @@
diff --git a/packages/bits-ui/src/tests/toolbar/ToolbarTest.svelte b/packages/bits-ui/src/tests/toolbar/ToolbarTest.svelte index f8e9aba25..54288e124 100644 --- a/packages/bits-ui/src/tests/toolbar/ToolbarTest.svelte +++ b/packages/bits-ui/src/tests/toolbar/ToolbarTest.svelte @@ -1,6 +1,6 @@ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 706e75118..9983b394e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,34 +13,34 @@ importers: version: 2.27.7 '@huntabyte/eslint-config': specifier: ^0.3.2 - version: 0.3.2(@vue/compiler-sfc@3.4.31)(eslint-plugin-svelte@2.42.0)(eslint@9.6.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.181)(typescript@5.5.3) + version: 0.3.2(@vue/compiler-sfc@3.4.31)(eslint-plugin-svelte@2.42.0)(eslint@9.7.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.183)(typescript@5.5.3) '@huntabyte/eslint-plugin': specifier: ^0.1.0 - version: 0.1.0(eslint@9.6.0) + version: 0.1.0(eslint@9.7.0) '@svitejs/changesets-changelog-github-compact': specifier: ^1.1.0 version: 1.1.0 eslint: specifier: ^9.0.0 - version: 9.6.0 + version: 9.7.0 eslint-plugin-svelte: specifier: ^2.37.0 - version: 2.42.0(eslint@9.6.0)(svelte@5.0.0-next.181) + version: 2.42.0(eslint@9.7.0)(svelte@5.0.0-next.183) prettier: specifier: ^3.2.5 - version: 3.3.2 + version: 3.3.3 prettier-plugin-svelte: specifier: ^3.2.2 - version: 3.2.5(prettier@3.3.2)(svelte@5.0.0-next.181) + version: 3.2.5(prettier@3.3.3)(svelte@5.0.0-next.183) prettier-plugin-tailwindcss: specifier: 0.5.13 - version: 0.5.13(prettier-plugin-svelte@3.2.5)(prettier@3.3.2) + version: 0.5.13(prettier-plugin-svelte@3.2.5)(prettier@3.3.3) svelte: - specifier: 5.0.0-next.181 - version: 5.0.0-next.181 + specifier: 5.0.0-next.183 + version: 5.0.0-next.183 svelte-eslint-parser: specifier: ^0.34.1 - version: 0.34.1(svelte@5.0.0-next.181) + version: 0.34.1(svelte@5.0.0-next.183) wrangler: specifier: ^3.44.0 version: 3.64.0 @@ -48,29 +48,29 @@ importers: packages/bits-ui: dependencies: '@floating-ui/core': - specifier: ^1.6.0 + specifier: ^1.6.4 version: 1.6.4 '@floating-ui/dom': - specifier: ^1.6.3 + specifier: ^1.6.7 version: 1.6.7 '@internationalized/date': - specifier: ^3.5.1 + specifier: ^3.5.4 version: 3.5.4 '@melt-ui/svelte': specifier: 0.76.2 - version: 0.76.2(svelte@5.0.0-next.181) + version: 0.76.2(svelte@5.0.0-next.183) clsx: - specifier: ^2.1.0 + specifier: ^2.1.1 version: 2.1.1 esm-env: specifier: ^1.0.0 version: 1.0.0 nanoid: - specifier: ^5.0.5 + specifier: ^5.0.7 version: 5.0.7 runed: specifier: ^0.15.0 - version: 0.15.0(svelte@5.0.0-next.181) + version: 0.15.0(svelte@5.0.0-next.183) scule: specifier: ^1.3.0 version: 1.3.0 @@ -82,29 +82,29 @@ importers: version: 1.0.6 svelte-toolbelt: specifier: ^0.0.2 - version: 0.0.2(svelte@5.0.0-next.181) + version: 0.0.2(svelte@5.0.0-next.183) devDependencies: '@melt-ui/pp': specifier: ^0.3.0 - version: 0.3.2(@melt-ui/svelte@0.76.2)(svelte@5.0.0-next.181) + version: 0.3.2(@melt-ui/svelte@0.76.2)(svelte@5.0.0-next.183) '@sveltejs/kit': - specifier: ^2.5.0 - version: 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.181)(vite@5.3.3) + specifier: ^2.5.18 + version: 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.183)(vite@5.3.3) '@sveltejs/package': - specifier: ^2.2.7 - version: 2.3.2(svelte@5.0.0-next.181)(typescript@5.5.3) + specifier: ^2.3.2 + version: 2.3.2(svelte@5.0.0-next.183)(typescript@5.5.3) '@sveltejs/vite-plugin-svelte': - specifier: ^3.1.0 - version: 3.1.1(svelte@5.0.0-next.181)(vite@5.3.3) + specifier: ^3.1.1 + version: 3.1.1(svelte@5.0.0-next.183)(vite@5.3.3) '@testing-library/dom': - specifier: ^10.0.0 + specifier: ^10.3.1 version: 10.3.1 '@testing-library/jest-dom': - specifier: ^6.4.2 - version: 6.4.6(vitest@1.6.0) + specifier: ^6.4.6 + version: 6.4.6(vitest@2.0.2) '@testing-library/svelte': specifier: ^5.2.0 - version: 5.2.0(svelte@5.0.0-next.181)(vite@5.3.3)(vitest@1.6.0) + version: 5.2.0(svelte@5.0.0-next.183)(vite@5.3.3)(vitest@2.0.2) '@testing-library/user-event': specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.3.1) @@ -112,7 +112,7 @@ importers: specifier: ^3.5.9 version: 3.5.9 '@types/node': - specifier: ^20.12.2 + specifier: ^20.14.10 version: 20.14.10 '@types/resize-observer-browser': specifier: ^0.1.11 @@ -122,40 +122,40 @@ importers: version: 5.14.9 '@vitest/ui': specifier: ^1.5.0 - version: 1.6.0(vitest@1.6.0) + version: 1.6.0(vitest@2.0.2) csstype: specifier: ^3.1.3 version: 3.1.3 jest-axe: - specifier: ^8.0.0 - version: 8.0.0 + specifier: ^9.0.0 + version: 9.0.0 jsdom: - specifier: ^24.0.0 + specifier: ^24.1.0 version: 24.1.0 publint: - specifier: ^0.2.7 + specifier: ^0.2.8 version: 0.2.8 resize-observer-polyfill: specifier: ^1.5.1 version: 1.5.1 svelte: - specifier: 5.0.0-next.181 - version: 5.0.0-next.181 + specifier: 5.0.0-next.183 + version: 5.0.0-next.183 svelte-check: - specifier: ^3.6.9 - version: 3.8.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.181) + specifier: ^3.8.4 + version: 3.8.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.183) tslib: - specifier: ^2.6.2 + specifier: ^2.6.3 version: 2.6.3 typescript: specifier: ^5.5.3 version: 5.5.3 vite: - specifier: ^5.2.8 + specifier: ^5.3.3 version: 5.3.3(@types/node@20.14.10) vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0) + specifier: ^2.0.2 + version: 2.0.2(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0) sites/docs: dependencies: @@ -164,26 +164,26 @@ importers: version: 3.5.4 '@melt-ui/svelte': specifier: 0.76.2 - version: 0.76.2(svelte@5.0.0-next.181) + version: 0.76.2(svelte@5.0.0-next.183) bits-ui: specifier: workspace:* version: link:../../packages/bits-ui devDependencies: '@melt-ui/pp': specifier: ^0.3.0 - version: 0.3.2(@melt-ui/svelte@0.76.2)(svelte@5.0.0-next.181) + version: 0.3.2(@melt-ui/svelte@0.76.2)(svelte@5.0.0-next.183) '@prettier/sync': specifier: 0.3.0 - version: 0.3.0(prettier@3.3.2) + version: 0.3.0(prettier@3.3.3) '@sveltejs/adapter-cloudflare': specifier: ^4.2.0 version: 4.6.1(@sveltejs/kit@2.5.18)(wrangler@3.64.0) '@sveltejs/kit': specifier: ^2.5.0 - version: 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.181)(vite@5.3.3) + version: 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.183)(vite@5.3.3) '@sveltejs/vite-plugin-svelte': specifier: ^3.1.0 - version: 3.1.1(svelte@5.0.0-next.181)(vite@5.3.3) + version: 3.1.1(svelte@5.0.0-next.183)(vite@5.3.3) '@tailwindcss/typography': specifier: ^0.5.10 version: 0.5.13(tailwindcss@3.4.4) @@ -216,13 +216,13 @@ importers: version: 3.1.0 mdsx: specifier: ^0.0.6 - version: 0.0.6(svelte@5.0.0-next.181) + version: 0.0.6(svelte@5.0.0-next.183) mode-watcher: specifier: ^0.2.0 - version: 0.2.2(svelte@5.0.0-next.181) + version: 0.2.2(svelte@5.0.0-next.183) phosphor-svelte: specifier: ^1.4.2 - version: 1.4.2(svelte@5.0.0-next.181) + version: 1.4.2(svelte@5.0.0-next.183) postcss: specifier: ^8.4.33 version: 8.4.39 @@ -242,14 +242,14 @@ importers: specifier: ^1.1.1 version: 1.10.3 svelte: - specifier: 5.0.0-next.181 - version: 5.0.0-next.181 + specifier: 5.0.0-next.183 + version: 5.0.0-next.183 svelte-check: specifier: ^3.6.9 - version: 3.8.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.181) + version: 3.8.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.183) svelte-sonner: specifier: ^0.3.24 - version: 0.3.25(svelte@5.0.0-next.181) + version: 0.3.26(svelte@5.0.0-next.183) tailwind-merge: specifier: ^2.2.1 version: 2.4.0 @@ -294,8 +294,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/eslint-config@2.22.0': - resolution: {integrity: sha512-5bkd3R9UZMd/XI88fQk1ZsDDm/vDzYeBl+I4zfGw7bjDBNxQq2OhLDgdUB9d1r3J5R+grnozF1blXtfT5qYXfw==} + '@antfu/eslint-config@2.22.2': + resolution: {integrity: sha512-LKC61Rm1VC0CduV4XAZzzEQ1nmTd+H4Y1rVvNg47MgcaCVGftUpY50MD2us3QCC+ktt3AAQYT9Kmbr/nsFW73g==} hasBin: true peerDependencies: '@eslint-react/eslint-plugin': ^1.5.8 @@ -475,8 +475,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/workers-types@4.20240701.0': - resolution: {integrity: sha512-6Cu6NIAicmb8H6CkzFdQG5Ib+TDs9HU8AKQEGlxnbvEBDmhUNpmL30ETXpLS0asdeyc+rTb2xag0hSv0Z1BflQ==} + '@cloudflare/workers-types@4.20240712.0': + resolution: {integrity: sha512-C+C0ZnkRrxR2tPkZKAXwBsWEse7bWaA7iMbaG6IKaxaPTo/5ilx7Ei3BkI2izxmOJMsC05VS1eFUf95urXzhmw==} '@contentlayer/cli@0.3.4': resolution: {integrity: sha512-vNDwgLuhYNu+m70NZ3XK9kexKNguuxPXg7Yvzj3B34cEilQjjzSrcTY/i+AIQm9V7uT5GGshx9ukzPf+SmoszQ==} @@ -1004,8 +1004,8 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.6.0': - resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} + '@eslint/js@9.7.0': + resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -1385,6 +1385,9 @@ packages: cpu: [x64] os: [win32] + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@shikijs/core@1.10.3': resolution: {integrity: sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==} @@ -1461,8 +1464,8 @@ packages: resolution: {integrity: sha512-qhUGGDHcpbY2zpjW3SwqchuW8J/5EzlPFud7xNntHKA7f3a/mx5+g+ruJKFHSAiVZYo30PALt+AyhmPUNKH/Og==} engines: {node: ^14.13.1 || ^16.0.0 || >=18} - '@swc/helpers@0.5.11': - resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} + '@swc/helpers@0.5.12': + resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} '@tailwindcss/typography@0.5.13': resolution: {integrity: sha512-ADGcJ8dX21dVVHIwTRgzrcunY6YY9uSlAHHGVKvkA+vLc5qLwEszvKts40lx7z0qc4clpjclwLeK5rVCV2P/uw==} @@ -1760,17 +1763,20 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + '@vitest/expect@2.0.2': + resolution: {integrity: sha512-nKAvxBYqcDugYZ4nJvnm5OR8eDJdgWjk4XM9owQKUjzW70q0icGV2HVnQOyYsp906xJaBDUXw0+9EHw2T8e0mQ==} + + '@vitest/pretty-format@2.0.2': + resolution: {integrity: sha512-SBCyOXfGVvddRd9r2PwoVR0fonQjh9BMIcBMlSzbcNwFfGr6ZhOhvBzurjvi2F4ryut2HcqiFhNeDVGwru8tLg==} - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + '@vitest/runner@2.0.2': + resolution: {integrity: sha512-OCh437Vi8Wdbif1e0OvQcbfM3sW4s2lpmOjAE7qfLrpzJX2M7J1IQlNvEcb/fu6kaIB9n9n35wS0G2Q3en5kHg==} - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + '@vitest/snapshot@2.0.2': + resolution: {integrity: sha512-Yc2ewhhZhx+0f9cSUdfzPRcsM6PhIb+S43wxE7OG0kTxqgqzo8tHkXFuFlndXeDMp09G3sY/X5OAo/RfYydf1g==} - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + '@vitest/spy@2.0.2': + resolution: {integrity: sha512-MgwJ4AZtCgqyp2d7WcQVE8aNG5vQ9zu9qMPYQHjsld/QVsrvg78beNrXdO4HYkP0lDahCO3P4F27aagIag+SGQ==} '@vitest/ui@1.6.0': resolution: {integrity: sha512-k3Lyo+ONLOgylctiGovRKy7V4+dIN2yxstX3eY5cWFXH6WP+ooVX79YSyi0GagdTQzLmT43BF27T0s6dOIPBXA==} @@ -1780,6 +1786,9 @@ packages: '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@vitest/utils@2.0.2': + resolution: {integrity: sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==} + '@vue/compiler-core@3.4.31': resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==} @@ -1882,8 +1891,9 @@ packages: as-table@1.0.55: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} @@ -1903,8 +1913,8 @@ packages: resolution: {integrity: sha512-LEUDjgmdJoA3LqklSTwKYqkjcZ4HKc4ddIYGSAiSkr46NTjzg2L9RNB+lekO9P7Dlpa87+hBtzc2Fzn/+GUWMQ==} engines: {node: '>=4'} - axe-core@4.7.2: - resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==} + axe-core@4.9.1: + resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} engines: {node: '>=4'} axobject-query@4.0.0: @@ -1983,9 +1993,9 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -2027,8 +2037,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} @@ -2194,8 +2205,8 @@ packages: dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-is@0.1.4: @@ -2371,8 +2382,8 @@ packages: peerDependencies: eslint: '>=4.19.1' - eslint-plugin-import-x@0.5.3: - resolution: {integrity: sha512-hJ/wkMcsLQXAZL3+txXIDpbW5cqwdm1rLTqV4VRY03aIbzE3zWE7rPZKW6Gzf7xyl1u3V1iYC6tOG77d9NF4GQ==} + eslint-plugin-import-x@3.0.1: + resolution: {integrity: sha512-jzQgJuE4ssxwNi0aMBkOL8whd4eHb0Z/uFWsk8uEoYB7xwTkAptSKojLzRswxgf/1bhH6QgcLjgabUBQqluBIg==} engines: {node: '>=16'} peerDependencies: eslint: ^8.56.0 || ^9.0.0-0 @@ -2500,8 +2511,8 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -2512,8 +2523,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.6.0: - resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} + eslint@9.7.0: + resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -3037,9 +3048,9 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jest-axe@8.0.0: - resolution: {integrity: sha512-4kNcNn7J0jPO4jANEYZOHeQ/tSBvkXS+MxTbX1CKbXGd0+ZbRGDn/v/8IYWI/MmYX15iLVyYRnRev9X3ksePWA==} - engines: {node: '>= 14.0.0'} + jest-axe@9.0.0: + resolution: {integrity: sha512-Xt7O0+wIpW31lv0SO1wQZUTyJE7DEmnDEZeTt9/S9L5WUywxrv8BrgvTuQEqujtfaQOcJ70p4wg7UUgK1E2F5g==} + engines: {node: '>= 16.0.0'} jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} @@ -3072,9 +3083,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -3206,6 +3214,9 @@ packages: loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -3710,10 +3721,6 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -3808,8 +3815,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} @@ -4008,8 +4016,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -4424,9 +4432,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - style-object-to-css-string@1.1.3: resolution: {integrity: sha512-bISQoUsir/qGfo7vY8rw00ia9nnyE1jvYt3zZ2jhdkcXZ6dAEi74inMzQ6On57vFI+I4Fck6wOv5UI9BEwJDgw==} @@ -4524,8 +4529,8 @@ packages: typescript: optional: true - svelte-sonner@0.3.25: - resolution: {integrity: sha512-jYAHqDc1fBAotI+9g9SW2Pc6sKJ8oVl7aXB/EhQsxiVADAZ9AX4w7dxDI1oyskD6pG8mhYIKXi+5WqFmCRqFyw==} + svelte-sonner@0.3.26: + resolution: {integrity: sha512-nIrXy0p4L/gdOgOXWEOprO5RJ6cjldhxIN0lIsl9f3uMsG0BrCSUhJDLIhhvgaN2ZqXPAyciVQdPQggW96fayQ==} peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.1 @@ -4540,8 +4545,8 @@ packages: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@5.0.0-next.181: - resolution: {integrity: sha512-F4vPUp0NKxku5ZXEiCZ1C8lhKlL0hXedbTRu2i5Cf49SCSS9lceSPhLP/Zn2Ds5MSlfEnjBF3a0jWDc51pbF2Q==} + svelte@5.0.0-next.183: + resolution: {integrity: sha512-1onDKWp5+a5ehYVWJ0scHVO0IbOTH9zIqYb/odXp/aG0qF9XdR76DL2tLrgRM5xzUdcvXSmakxa+tQDJojTBVw==} engines: {node: '>=18'} symbol-tree@3.2.4: @@ -4604,12 +4609,16 @@ packages: tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} engines: {node: '>=14.0.0'} tmp@0.0.33: @@ -4824,8 +4833,8 @@ packages: vfile@6.0.1: resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + vite-node@2.0.2: + resolution: {integrity: sha512-w4vkSz1Wo+NIQg8pjlEn0jQbcM/0D+xVaYjhw3cvarTanLLBh54oNiRbsT8PNK5GfuST0IlVXjsNRoNlqvY/fw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -4865,15 +4874,15 @@ packages: vite: optional: true - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + vitest@2.0.2: + resolution: {integrity: sha512-WlpZ9neRIjNBIOQwBYfBSr0+of5ZCbxT2TVGKW4Lv0c8+srCFIiRdsP7U009t8mMn821HQ4XKgkx5dVWpyoyLw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 + '@vitest/browser': 2.0.2 + '@vitest/ui': 2.0.2 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -5066,44 +5075,44 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@2.22.0(@vue/compiler-sfc@3.4.31)(eslint-plugin-svelte@2.42.0)(eslint@9.6.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.181)(typescript@5.5.3)': + '@antfu/eslint-config@2.22.2(@vue/compiler-sfc@3.4.31)(eslint-plugin-svelte@2.42.0)(eslint@9.7.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.183)(typescript@5.5.3)': dependencies: '@antfu/install-pkg': 0.3.3 '@clack/prompts': 0.7.0 - '@stylistic/eslint-plugin': 2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3) - '@typescript-eslint/eslint-plugin': 8.0.0-alpha.40(@typescript-eslint/parser@8.0.0-alpha.40)(eslint@9.6.0)(typescript@5.5.3) - '@typescript-eslint/parser': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@stylistic/eslint-plugin': 2.6.0-beta.0(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/eslint-plugin': 8.0.0-alpha.40(@typescript-eslint/parser@8.0.0-alpha.40)(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.0.0-alpha.40(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 eslint-config-flat-gitignore: 0.1.7 eslint-flat-config-utils: 0.2.5 - eslint-merge-processors: 0.1.0(eslint@9.6.0) - eslint-plugin-antfu: 2.3.4(eslint@9.6.0) - eslint-plugin-command: 0.2.3(eslint@9.6.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.6.0) - eslint-plugin-import-x: 0.5.3(eslint@9.6.0)(typescript@5.5.3) - eslint-plugin-jsdoc: 48.7.0(eslint@9.6.0) - eslint-plugin-jsonc: 2.16.0(eslint@9.6.0) - eslint-plugin-markdown: 5.1.0(eslint@9.6.0) - eslint-plugin-n: 17.9.0(eslint@9.6.0) + eslint-merge-processors: 0.1.0(eslint@9.7.0) + eslint-plugin-antfu: 2.3.4(eslint@9.7.0) + eslint-plugin-command: 0.2.3(eslint@9.7.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.7.0) + eslint-plugin-import-x: 3.0.1(eslint@9.7.0)(typescript@5.5.3) + eslint-plugin-jsdoc: 48.7.0(eslint@9.7.0) + eslint-plugin-jsonc: 2.16.0(eslint@9.7.0) + eslint-plugin-markdown: 5.1.0(eslint@9.7.0) + eslint-plugin-n: 17.9.0(eslint@9.7.0) eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-perfectionist: 2.11.0(eslint@9.6.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.181)(typescript@5.5.3)(vue-eslint-parser@9.4.3) - eslint-plugin-regexp: 2.6.0(eslint@9.6.0) - eslint-plugin-svelte: 2.42.0(eslint@9.6.0)(svelte@5.0.0-next.181) - eslint-plugin-toml: 0.11.1(eslint@9.6.0) - eslint-plugin-unicorn: 54.0.0(eslint@9.6.0) - eslint-plugin-unused-imports: 4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.40)(eslint@9.6.0) - eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.40)(eslint@9.6.0)(typescript@5.5.3) - eslint-plugin-vue: 9.27.0(eslint@9.6.0) - eslint-plugin-yml: 1.14.0(eslint@9.6.0) - eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.31)(eslint@9.6.0) + eslint-plugin-perfectionist: 2.11.0(eslint@9.7.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.183)(typescript@5.5.3)(vue-eslint-parser@9.4.3) + eslint-plugin-regexp: 2.6.0(eslint@9.7.0) + eslint-plugin-svelte: 2.42.0(eslint@9.7.0)(svelte@5.0.0-next.183) + eslint-plugin-toml: 0.11.1(eslint@9.7.0) + eslint-plugin-unicorn: 54.0.0(eslint@9.7.0) + eslint-plugin-unused-imports: 4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.40)(eslint@9.7.0) + eslint-plugin-vitest: 0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.40)(eslint@9.7.0)(typescript@5.5.3) + eslint-plugin-vue: 9.27.0(eslint@9.7.0) + eslint-plugin-yml: 1.14.0(eslint@9.7.0) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.31)(eslint@9.7.0) globals: 15.8.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 parse-gitignore: 2.0.0 picocolors: 1.0.1 - svelte-eslint-parser: 0.34.1(svelte@5.0.0-next.181) + svelte-eslint-parser: 0.34.1(svelte@5.0.0-next.183) toml-eslint-parser: 0.10.0 - vue-eslint-parser: 9.4.3(eslint@9.6.0) + vue-eslint-parser: 9.4.3(eslint@9.7.0) yaml-eslint-parser: 1.2.3 yargs: 17.7.2 transitivePeerDependencies: @@ -5342,7 +5351,7 @@ snapshots: '@cloudflare/workerd-windows-64@1.20240701.0': optional: true - '@cloudflare/workers-types@4.20240701.0': {} + '@cloudflare/workers-types@4.20240712.0': {} '@contentlayer/cli@0.3.4(esbuild@0.23.0)': dependencies: @@ -5713,9 +5722,9 @@ snapshots: '@esbuild/win32-x64@0.23.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.7.0)': dependencies: - eslint: 9.6.0 + eslint: 9.7.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} @@ -5742,7 +5751,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.6.0': {} + '@eslint/js@9.7.0': {} '@eslint/object-schema@2.1.4': {} @@ -5777,21 +5786,21 @@ snapshots: '@humanwhocodes/retry@0.3.0': {} - '@huntabyte/eslint-config@0.3.2(@vue/compiler-sfc@3.4.31)(eslint-plugin-svelte@2.42.0)(eslint@9.6.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.181)(typescript@5.5.3)': + '@huntabyte/eslint-config@0.3.2(@vue/compiler-sfc@3.4.31)(eslint-plugin-svelte@2.42.0)(eslint@9.7.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.183)(typescript@5.5.3)': dependencies: - '@antfu/eslint-config': 2.22.0(@vue/compiler-sfc@3.4.31)(eslint-plugin-svelte@2.42.0)(eslint@9.6.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.181)(typescript@5.5.3) + '@antfu/eslint-config': 2.22.2(@vue/compiler-sfc@3.4.31)(eslint-plugin-svelte@2.42.0)(eslint@9.7.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.183)(typescript@5.5.3) '@antfu/install-pkg': 0.3.3 '@clack/prompts': 0.7.0 - '@huntabyte/eslint-plugin': 0.1.0(eslint@9.6.0) - '@typescript-eslint/eslint-plugin': 7.16.0(@typescript-eslint/parser@7.16.0)(eslint@9.6.0)(typescript@5.5.3) - '@typescript-eslint/parser': 7.16.0(eslint@9.6.0)(typescript@5.5.3) + '@huntabyte/eslint-plugin': 0.1.0(eslint@9.7.0) + '@typescript-eslint/eslint-plugin': 7.16.0(@typescript-eslint/parser@7.16.0)(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.16.0(eslint@9.7.0)(typescript@5.5.3) chalk: 5.3.0 - eslint: 9.6.0 + eslint: 9.7.0 eslint-flat-config-utils: 0.2.5 - eslint-plugin-svelte: 2.42.0(eslint@9.6.0)(svelte@5.0.0-next.181) + eslint-plugin-svelte: 2.42.0(eslint@9.7.0)(svelte@5.0.0-next.183) local-pkg: 0.5.0 parse-gitignore: 2.0.0 - svelte-eslint-parser: 0.34.1(svelte@5.0.0-next.181) + svelte-eslint-parser: 0.34.1(svelte@5.0.0-next.183) yargs: 17.7.2 transitivePeerDependencies: - '@eslint-react/eslint-plugin' @@ -5811,13 +5820,13 @@ snapshots: - typescript - vitest - '@huntabyte/eslint-plugin@0.1.0(eslint@9.6.0)': + '@huntabyte/eslint-plugin@0.1.0(eslint@9.7.0)': dependencies: - eslint: 9.6.0 + eslint: 9.7.0 '@internationalized/date@3.5.4': dependencies: - '@swc/helpers': 0.5.11 + '@swc/helpers': 0.5.12 '@isaacs/cliui@8.0.2': dependencies: @@ -5928,14 +5937,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@melt-ui/pp@0.3.2(@melt-ui/svelte@0.76.2)(svelte@5.0.0-next.181)': + '@melt-ui/pp@0.3.2(@melt-ui/svelte@0.76.2)(svelte@5.0.0-next.183)': dependencies: - '@melt-ui/svelte': 0.76.2(svelte@5.0.0-next.181) + '@melt-ui/svelte': 0.76.2(svelte@5.0.0-next.183) estree-walker: 3.0.3 magic-string: 0.30.10 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 - '@melt-ui/svelte@0.76.2(svelte@5.0.0-next.181)': + '@melt-ui/svelte@0.76.2(svelte@5.0.0-next.183)': dependencies: '@floating-ui/core': 1.6.4 '@floating-ui/dom': 1.6.7 @@ -5943,7 +5952,7 @@ snapshots: dequal: 2.0.3 focus-trap: 7.5.4 nanoid: 5.0.7 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -6081,9 +6090,9 @@ snapshots: '@polka/url@1.0.0-next.25': {} - '@prettier/sync@0.3.0(prettier@3.3.2)': + '@prettier/sync@0.3.0(prettier@3.3.3)': dependencies: - prettier: 3.3.2 + prettier: 3.3.3 '@protobufjs/aspromise@1.1.2': {} @@ -6156,70 +6165,72 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true + '@rtsao/scc@1.1.0': {} + '@shikijs/core@1.10.3': dependencies: '@types/hast': 3.0.4 '@sinclair/typebox@0.27.8': {} - '@stylistic/eslint-plugin-js@2.6.0-beta.0(eslint@9.6.0)': + '@stylistic/eslint-plugin-js@2.6.0-beta.0(eslint@9.7.0)': dependencies: '@types/eslint': 8.56.10 acorn: 8.12.1 - eslint: 9.6.0 + eslint: 9.7.0 eslint-visitor-keys: 4.0.0 espree: 10.1.0 - '@stylistic/eslint-plugin-jsx@2.6.0-beta.0(eslint@9.6.0)': + '@stylistic/eslint-plugin-jsx@2.6.0-beta.0(eslint@9.7.0)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.6.0) + '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.7.0) '@types/eslint': 8.56.10 - eslint: 9.6.0 + eslint: 9.7.0 estraverse: 5.3.0 picomatch: 4.0.2 - '@stylistic/eslint-plugin-plus@2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)': + '@stylistic/eslint-plugin-plus@2.6.0-beta.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 8.0.0-alpha.41(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@typescript-eslint/utils': 8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin-ts@2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)': + '@stylistic/eslint-plugin-ts@2.6.0-beta.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.6.0) + '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.7.0) '@types/eslint': 8.56.10 - '@typescript-eslint/utils': 8.0.0-alpha.41(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@typescript-eslint/utils': 8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript - '@stylistic/eslint-plugin@2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3)': + '@stylistic/eslint-plugin@2.6.0-beta.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.6.0) - '@stylistic/eslint-plugin-jsx': 2.6.0-beta.0(eslint@9.6.0) - '@stylistic/eslint-plugin-plus': 2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3) - '@stylistic/eslint-plugin-ts': 2.6.0-beta.0(eslint@9.6.0)(typescript@5.5.3) + '@stylistic/eslint-plugin-js': 2.6.0-beta.0(eslint@9.7.0) + '@stylistic/eslint-plugin-jsx': 2.6.0-beta.0(eslint@9.7.0) + '@stylistic/eslint-plugin-plus': 2.6.0-beta.0(eslint@9.7.0)(typescript@5.5.3) + '@stylistic/eslint-plugin-ts': 2.6.0-beta.0(eslint@9.7.0)(typescript@5.5.3) '@types/eslint': 8.56.10 - eslint: 9.6.0 + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript '@sveltejs/adapter-cloudflare@4.6.1(@sveltejs/kit@2.5.18)(wrangler@3.64.0)': dependencies: - '@cloudflare/workers-types': 4.20240701.0 - '@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.181)(vite@5.3.3) + '@cloudflare/workers-types': 4.20240712.0 + '@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.183)(vite@5.3.3) esbuild: 0.21.5 worktop: 0.8.0-next.18 wrangler: 3.64.0 - '@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.181)(vite@5.3.3)': + '@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.183)(vite@5.3.3)': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.181)(vite@5.3.3) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.183)(vite@5.3.3) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.0.0 @@ -6231,39 +6242,39 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.4 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 tiny-glob: 0.2.9 vite: 5.3.3(@types/node@20.14.10) - '@sveltejs/package@2.3.2(svelte@5.0.0-next.181)(typescript@5.5.3)': + '@sveltejs/package@2.3.2(svelte@5.0.0-next.183)(typescript@5.5.3)': dependencies: chokidar: 3.6.0 kleur: 4.1.5 sade: 1.8.1 semver: 7.6.2 - svelte: 5.0.0-next.181 - svelte2tsx: 0.7.13(svelte@5.0.0-next.181)(typescript@5.5.3) + svelte: 5.0.0-next.183 + svelte2tsx: 0.7.13(svelte@5.0.0-next.183)(typescript@5.5.3) transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.181)(vite@5.3.3)': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.183)(vite@5.3.3)': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.181)(vite@5.3.3) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.183)(vite@5.3.3) debug: 4.3.5 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 vite: 5.3.3(@types/node@20.14.10) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.181)(vite@5.3.3)': + '@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.183)(vite@5.3.3)': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.181)(vite@5.3.3) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1)(svelte@5.0.0-next.183)(vite@5.3.3) debug: 4.3.5 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.10 - svelte: 5.0.0-next.181 - svelte-hmr: 0.16.0(svelte@5.0.0-next.181) + svelte: 5.0.0-next.183 + svelte-hmr: 0.16.0(svelte@5.0.0-next.183) vite: 5.3.3(@types/node@20.14.10) vitefu: 0.2.5(vite@5.3.3) transitivePeerDependencies: @@ -6276,7 +6287,7 @@ snapshots: transitivePeerDependencies: - encoding - '@swc/helpers@0.5.11': + '@swc/helpers@0.5.12': dependencies: tslib: 2.6.3 @@ -6299,7 +6310,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.6(vitest@1.6.0)': + '@testing-library/jest-dom@6.4.6(vitest@2.0.2)': dependencies: '@adobe/css-tools': 4.4.0 '@babel/runtime': 7.24.8 @@ -6309,14 +6320,14 @@ snapshots: dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - vitest: 1.6.0(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0) + vitest: 2.0.2(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0) - '@testing-library/svelte@5.2.0(svelte@5.0.0-next.181)(vite@5.3.3)(vitest@1.6.0)': + '@testing-library/svelte@5.2.0(svelte@5.0.0-next.183)(vite@5.3.3)(vitest@2.0.2)': dependencies: '@testing-library/dom': 10.3.1 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 vite: 5.3.3(@types/node@20.14.10) - vitest: 1.6.0(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0) + vitest: 2.0.2(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0) '@testing-library/user-event@14.5.2(@testing-library/dom@10.3.1)': dependencies: @@ -6425,15 +6436,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0)(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0)(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.16.0(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.16.0(eslint@9.7.0)(typescript@5.5.3) '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/type-utils': 7.16.0(eslint@9.6.0)(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/type-utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) '@typescript-eslint/visitor-keys': 7.16.0 - eslint: 9.6.0 + eslint: 9.7.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -6442,15 +6453,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.0.0-alpha.40(@typescript-eslint/parser@8.0.0-alpha.40)(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/eslint-plugin@8.0.0-alpha.40(@typescript-eslint/parser@8.0.0-alpha.40)(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/parser': 8.0.0-alpha.40(eslint@9.7.0)(typescript@5.5.3) '@typescript-eslint/scope-manager': 8.0.0-alpha.40 - '@typescript-eslint/type-utils': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3) - '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/type-utils': 8.0.0-alpha.40(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.7.0)(typescript@5.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.40 - eslint: 9.6.0 + eslint: 9.7.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -6459,26 +6470,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.16.0(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/parser@7.16.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/scope-manager': 7.16.0 '@typescript-eslint/types': 7.16.0 '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) '@typescript-eslint/visitor-keys': 7.16.0 debug: 4.3.5 - eslint: 9.6.0 + eslint: 9.7.0 typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/parser@8.0.0-alpha.40(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/scope-manager': 8.0.0-alpha.40 '@typescript-eslint/types': 8.0.0-alpha.40 '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) '@typescript-eslint/visitor-keys': 8.0.0-alpha.40 debug: 4.3.5 - eslint: 9.6.0 + eslint: 9.7.0 typescript: 5.5.3 transitivePeerDependencies: - supports-color @@ -6498,21 +6509,21 @@ snapshots: '@typescript-eslint/types': 8.0.0-alpha.41 '@typescript-eslint/visitor-keys': 8.0.0-alpha.41 - '@typescript-eslint/type-utils@7.16.0(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@7.16.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5 - eslint: 9.6.0 + eslint: 9.7.0 ts-api-utils: 1.3.0(typescript@5.5.3) typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/type-utils@8.0.0-alpha.40(eslint@9.7.0)(typescript@5.5.3)': dependencies: '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) - '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3) + '@typescript-eslint/utils': 8.0.0-alpha.40(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5 ts-api-utils: 1.3.0(typescript@5.5.3) typescript: 5.5.3 @@ -6568,35 +6579,35 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.16.0(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/utils@7.16.0(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@typescript-eslint/scope-manager': 7.16.0 '@typescript-eslint/types': 7.16.0 '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3) - eslint: 9.6.0 + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.0.0-alpha.40(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/utils@8.0.0-alpha.40(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@typescript-eslint/scope-manager': 8.0.0-alpha.40 '@typescript-eslint/types': 8.0.0-alpha.40 '@typescript-eslint/typescript-estree': 8.0.0-alpha.40(typescript@5.5.3) - eslint: 9.6.0 + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.0.0-alpha.41(eslint@9.6.0)(typescript@5.5.3)': + '@typescript-eslint/utils@8.0.0-alpha.41(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@typescript-eslint/scope-manager': 8.0.0-alpha.41 '@typescript-eslint/types': 8.0.0-alpha.41 '@typescript-eslint/typescript-estree': 8.0.0-alpha.41(typescript@5.5.3) - eslint: 9.6.0 + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript @@ -6618,29 +6629,33 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitest/expect@1.6.0': + '@vitest/expect@2.0.2': dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.4.1 + '@vitest/spy': 2.0.2 + '@vitest/utils': 2.0.2 + chai: 5.1.1 + tinyrainbow: 1.2.0 - '@vitest/runner@1.6.0': + '@vitest/pretty-format@2.0.2': dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 + tinyrainbow: 1.2.0 + + '@vitest/runner@2.0.2': + dependencies: + '@vitest/utils': 2.0.2 pathe: 1.1.2 - '@vitest/snapshot@1.6.0': + '@vitest/snapshot@2.0.2': dependencies: + '@vitest/pretty-format': 2.0.2 magic-string: 0.30.10 pathe: 1.1.2 - pretty-format: 29.7.0 - '@vitest/spy@1.6.0': + '@vitest/spy@2.0.2': dependencies: - tinyspy: 2.2.1 + tinyspy: 3.0.0 - '@vitest/ui@1.6.0(vitest@1.6.0)': + '@vitest/ui@1.6.0(vitest@2.0.2)': dependencies: '@vitest/utils': 1.6.0 fast-glob: 3.3.2 @@ -6649,7 +6664,7 @@ snapshots: pathe: 1.1.2 picocolors: 1.0.1 sirv: 2.0.4 - vitest: 1.6.0(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0) + vitest: 2.0.2(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0) '@vitest/utils@1.6.0': dependencies: @@ -6658,6 +6673,13 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 + '@vitest/utils@2.0.2': + dependencies: + '@vitest/pretty-format': 2.0.2 + estree-walker: 3.0.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + '@vue/compiler-core@3.4.31': dependencies: '@babel/parser': 7.24.8 @@ -6764,7 +6786,7 @@ snapshots: dependencies: printable-characters: 1.0.42 - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} astring@1.8.6: {} @@ -6782,7 +6804,7 @@ snapshots: axe-core@3.5.6: {} - axe-core@4.7.2: {} + axe-core@4.9.1: {} axobject-query@4.0.0: dependencies: @@ -6852,15 +6874,13 @@ snapshots: ccount@2.0.1: {} - chai@4.4.1: + chai@5.1.1: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 chalk@2.4.2: dependencies: @@ -6896,9 +6916,7 @@ snapshots: chardet@0.7.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + check-error@2.1.1: {} chokidar@3.6.0: dependencies: @@ -7059,9 +7077,7 @@ snapshots: dedent-js@1.0.1: {} - deep-eql@4.1.4: - dependencies: - type-detect: 4.0.8 + deep-eql@5.0.2: {} deep-is@0.1.4: {} @@ -7221,9 +7237,9 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.6.0): + eslint-compat-utils@0.5.1(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 semver: 7.6.2 eslint-config-flat-gitignore@0.1.7: @@ -7244,39 +7260,40 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-merge-processors@0.1.0(eslint@9.6.0): + eslint-merge-processors@0.1.0(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 - eslint-plugin-antfu@2.3.4(eslint@9.6.0): + eslint-plugin-antfu@2.3.4(eslint@9.7.0): dependencies: '@antfu/utils': 0.7.10 - eslint: 9.6.0 + eslint: 9.7.0 - eslint-plugin-command@0.2.3(eslint@9.6.0): + eslint-plugin-command@0.2.3(eslint@9.7.0): dependencies: '@es-joy/jsdoccomment': 0.43.1 - eslint: 9.6.0 + eslint: 9.7.0 - eslint-plugin-es-x@7.8.0(eslint@9.6.0): + eslint-plugin-es-x@7.8.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint-community/regexpp': 4.11.0 - eslint: 9.6.0 - eslint-compat-utils: 0.5.1(eslint@9.6.0) + eslint: 9.7.0 + eslint-compat-utils: 0.5.1(eslint@9.7.0) - eslint-plugin-eslint-comments@3.2.0(eslint@9.6.0): + eslint-plugin-eslint-comments@3.2.0(eslint@9.7.0): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.6.0 + eslint: 9.7.0 ignore: 5.3.1 - eslint-plugin-import-x@0.5.3(eslint@9.6.0)(typescript@5.5.3): + eslint-plugin-import-x@3.0.1(eslint@9.7.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.5.3) + '@rtsao/scc': 1.1.0 + '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5 doctrine: 3.0.0 - eslint: 9.6.0 + eslint: 9.7.0 eslint-import-resolver-node: 0.3.9 get-tsconfig: 4.7.5 is-glob: 4.0.3 @@ -7288,14 +7305,14 @@ snapshots: - supports-color - typescript - eslint-plugin-jsdoc@48.7.0(eslint@9.6.0): + eslint-plugin-jsdoc@48.7.0(eslint@9.7.0): dependencies: '@es-joy/jsdoccomment': 0.46.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.5 escape-string-regexp: 4.0.0 - eslint: 9.6.0 + eslint: 9.7.0 esquery: 1.6.0 parse-imports: 2.1.1 semver: 7.6.2 @@ -7304,30 +7321,30 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.16.0(eslint@9.6.0): + eslint-plugin-jsonc@2.16.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - eslint: 9.6.0 - eslint-compat-utils: 0.5.1(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + eslint: 9.7.0 + eslint-compat-utils: 0.5.1(eslint@9.7.0) espree: 9.6.1 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 natural-compare: 1.4.0 synckit: 0.6.2 - eslint-plugin-markdown@5.1.0(eslint@9.6.0): + eslint-plugin-markdown@5.1.0(eslint@9.7.0): dependencies: - eslint: 9.6.0 + eslint: 9.7.0 mdast-util-from-markdown: 0.8.5 transitivePeerDependencies: - supports-color - eslint-plugin-n@17.9.0(eslint@9.6.0): + eslint-plugin-n@17.9.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) enhanced-resolve: 5.17.0 - eslint: 9.6.0 - eslint-plugin-es-x: 7.8.0(eslint@9.6.0) + eslint: 9.7.0 + eslint-plugin-es-x: 7.8.0(eslint@9.7.0) get-tsconfig: 4.7.5 globals: 15.8.0 ignore: 5.3.1 @@ -7336,36 +7353,36 @@ snapshots: eslint-plugin-no-only-tests@3.1.0: {} - eslint-plugin-perfectionist@2.11.0(eslint@9.6.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.181)(typescript@5.5.3)(vue-eslint-parser@9.4.3): + eslint-plugin-perfectionist@2.11.0(eslint@9.7.0)(svelte-eslint-parser@0.34.1)(svelte@5.0.0-next.183)(typescript@5.5.3)(vue-eslint-parser@9.4.3): dependencies: - '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 minimatch: 9.0.5 natural-compare-lite: 1.4.0 - svelte: 5.0.0-next.181 - svelte-eslint-parser: 0.34.1(svelte@5.0.0-next.181) - vue-eslint-parser: 9.4.3(eslint@9.6.0) + svelte: 5.0.0-next.183 + svelte-eslint-parser: 0.34.1(svelte@5.0.0-next.183) + vue-eslint-parser: 9.4.3(eslint@9.7.0) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-regexp@2.6.0(eslint@9.6.0): + eslint-plugin-regexp@2.6.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint-community/regexpp': 4.11.0 comment-parser: 1.4.1 - eslint: 9.6.0 + eslint: 9.7.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-svelte@2.42.0(eslint@9.6.0)(svelte@5.0.0-next.181): + eslint-plugin-svelte@2.42.0(eslint@9.7.0)(svelte@5.0.0-next.183): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.6.0 - eslint-compat-utils: 0.5.1(eslint@9.6.0) + eslint: 9.7.0 + eslint-compat-utils: 0.5.1(eslint@9.7.0) esutils: 2.0.3 known-css-properties: 0.34.0 postcss: 8.4.39 @@ -7373,30 +7390,30 @@ snapshots: postcss-safe-parser: 6.0.0(postcss@8.4.39) postcss-selector-parser: 6.1.1 semver: 7.6.2 - svelte: 5.0.0-next.181 - svelte-eslint-parser: 0.40.0(svelte@5.0.0-next.181) + svelte: 5.0.0-next.183 + svelte-eslint-parser: 0.40.0(svelte@5.0.0-next.183) transitivePeerDependencies: - ts-node - eslint-plugin-toml@0.11.1(eslint@9.6.0): + eslint-plugin-toml@0.11.1(eslint@9.7.0): dependencies: debug: 4.3.5 - eslint: 9.6.0 - eslint-compat-utils: 0.5.1(eslint@9.6.0) + eslint: 9.7.0 + eslint-compat-utils: 0.5.1(eslint@9.7.0) lodash: 4.17.21 toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@54.0.0(eslint@9.6.0): + eslint-plugin-unicorn@54.0.0(eslint@9.7.0): dependencies: '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint/eslintrc': 3.1.0 ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.37.1 - eslint: 9.6.0 + eslint: 9.7.0 esquery: 1.6.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -7410,50 +7427,50 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-unused-imports@4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.40)(eslint@9.6.0): + eslint-plugin-unused-imports@4.0.0(@typescript-eslint/eslint-plugin@8.0.0-alpha.40)(eslint@9.7.0): dependencies: - '@typescript-eslint/eslint-plugin': 8.0.0-alpha.40(@typescript-eslint/parser@8.0.0-alpha.40)(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@typescript-eslint/eslint-plugin': 8.0.0-alpha.40(@typescript-eslint/parser@8.0.0-alpha.40)(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 eslint-rule-composer: 0.3.0 - eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.40)(eslint@9.6.0)(typescript@5.5.3): + eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@8.0.0-alpha.40)(eslint@9.7.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.0.0-alpha.40(@typescript-eslint/parser@8.0.0-alpha.40)(eslint@9.6.0)(typescript@5.5.3) - '@typescript-eslint/utils': 7.16.0(eslint@9.6.0)(typescript@5.5.3) - eslint: 9.6.0 + '@typescript-eslint/eslint-plugin': 8.0.0-alpha.40(@typescript-eslint/parser@8.0.0-alpha.40)(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-vue@9.27.0(eslint@9.6.0): + eslint-plugin-vue@9.27.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - eslint: 9.6.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + eslint: 9.7.0 globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.1 semver: 7.6.2 - vue-eslint-parser: 9.4.3(eslint@9.6.0) + vue-eslint-parser: 9.4.3(eslint@9.7.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-yml@1.14.0(eslint@9.6.0): + eslint-plugin-yml@1.14.0(eslint@9.7.0): dependencies: debug: 4.3.5 - eslint: 9.6.0 - eslint-compat-utils: 0.5.1(eslint@9.6.0) + eslint: 9.7.0 + eslint-compat-utils: 0.5.1(eslint@9.7.0) lodash: 4.17.21 natural-compare: 1.4.0 yaml-eslint-parser: 1.2.3 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.31)(eslint@9.6.0): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.31)(eslint@9.7.0): dependencies: '@vue/compiler-sfc': 3.4.31 - eslint: 9.6.0 + eslint: 9.7.0 eslint-rule-composer@0.3.0: {} @@ -7462,7 +7479,7 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-scope@8.0.1: + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -7471,13 +7488,13 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.6.0: + eslint@9.7.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.17.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.6.0 + '@eslint/js': 9.7.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -7486,7 +7503,7 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.5 escape-string-regexp: 4.0.0 - eslint-scope: 8.0.1 + eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 espree: 10.1.0 esquery: 1.6.0 @@ -8134,9 +8151,9 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jest-axe@8.0.0: + jest-axe@9.0.0: dependencies: - axe-core: 4.7.2 + axe-core: 4.9.1 chalk: 4.1.2 jest-matcher-utils: 29.2.2 lodash.merge: 4.6.2 @@ -8189,8 +8206,6 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@9.0.0: {} - js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -8322,6 +8337,10 @@ snapshots: dependencies: get-func-name: 2.0.2 + loupe@3.1.1: + dependencies: + get-func-name: 2.0.2 + lower-case@2.0.2: dependencies: tslib: 2.6.3 @@ -8579,7 +8598,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdsx@0.0.6(svelte@5.0.0-next.181): + mdsx@0.0.6(svelte@5.0.0-next.183): dependencies: esrap: 1.2.2 hast-util-to-html: 9.0.1 @@ -8588,7 +8607,7 @@ snapshots: rehype-stringify: 10.0.0 remark-parse: 11.0.0 remark-rehype: 11.1.0 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 unified: 11.0.5 unist-util-visit: 5.0.0 vfile: 6.0.1 @@ -9094,9 +9113,9 @@ snapshots: pkg-types: 1.1.3 ufo: 1.5.3 - mode-watcher@0.2.2(svelte@5.0.0-next.181): + mode-watcher@0.2.2(svelte@5.0.0-next.183): dependencies: - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 mri@1.2.0: {} @@ -9222,10 +9241,6 @@ snapshots: dependencies: yocto-queue: 1.1.1 - p-limit@5.0.0: - dependencies: - yocto-queue: 1.1.1 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -9318,7 +9333,7 @@ snapshots: pathe@1.1.2: {} - pathval@1.1.1: {} + pathval@2.0.0: {} periscopic@3.1.0: dependencies: @@ -9326,9 +9341,9 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.2 - phosphor-svelte@1.4.2(svelte@5.0.0-next.181): + phosphor-svelte@1.4.2(svelte@5.0.0-next.183): dependencies: - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 picocolors@1.0.1: {} @@ -9424,19 +9439,19 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-svelte@3.2.5(prettier@3.3.2)(svelte@5.0.0-next.181): + prettier-plugin-svelte@3.2.5(prettier@3.3.3)(svelte@5.0.0-next.183): dependencies: - prettier: 3.3.2 - svelte: 5.0.0-next.181 + prettier: 3.3.3 + svelte: 5.0.0-next.183 - prettier-plugin-tailwindcss@0.5.13(prettier-plugin-svelte@3.2.5)(prettier@3.3.2): + prettier-plugin-tailwindcss@0.5.13(prettier-plugin-svelte@3.2.5)(prettier@3.3.3): dependencies: - prettier: 3.3.2 - prettier-plugin-svelte: 3.2.5(prettier@3.3.2)(svelte@5.0.0-next.181) + prettier: 3.3.3 + prettier-plugin-svelte: 3.2.5(prettier@3.3.3)(svelte@5.0.0-next.183) prettier@2.8.8: {} - prettier@3.3.2: {} + prettier@3.3.3: {} pretty-format@27.5.1: dependencies: @@ -9719,10 +9734,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 - runed@0.15.0(svelte@5.0.0-next.181): + runed@0.15.0(svelte@5.0.0-next.183): dependencies: esm-env: 1.0.0 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 rxjs@7.8.1: dependencies: @@ -9912,10 +9927,6 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 - style-object-to-css-string@1.1.3: {} style-to-object@0.4.4: @@ -9950,14 +9961,14 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@3.8.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.181): + svelte-check@3.8.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.183): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 3.6.0 picocolors: 1.0.1 sade: 1.8.1 - svelte: 5.0.0-next.181 - svelte-preprocess: 5.1.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.181)(typescript@5.5.3) + svelte: 5.0.0-next.183 + svelte-preprocess: 5.1.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.183)(typescript@5.5.3) typescript: 5.5.3 transitivePeerDependencies: - '@babel/core' @@ -9970,29 +9981,29 @@ snapshots: - stylus - sugarss - svelte-eslint-parser@0.34.1(svelte@5.0.0-next.181): + svelte-eslint-parser@0.34.1(svelte@5.0.0-next.183): dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 postcss: 8.4.39 postcss-scss: 4.0.9(postcss@8.4.39) - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 - svelte-eslint-parser@0.40.0(svelte@5.0.0-next.181): + svelte-eslint-parser@0.40.0(svelte@5.0.0-next.183): dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 postcss: 8.4.39 postcss-scss: 4.0.9(postcss@8.4.39) - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 - svelte-hmr@0.16.0(svelte@5.0.0-next.181): + svelte-hmr@0.16.0(svelte@5.0.0-next.183): dependencies: - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 - svelte-preprocess@5.1.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.181)(typescript@5.5.3): + svelte-preprocess@5.1.4(postcss-load-config@5.1.0)(postcss@8.4.39)(svelte@5.0.0-next.183)(typescript@5.5.3): dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 @@ -10001,25 +10012,25 @@ snapshots: postcss-load-config: 5.1.0(postcss@8.4.39) sorcery: 0.11.1 strip-indent: 3.0.0 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 typescript: 5.5.3 - svelte-sonner@0.3.25(svelte@5.0.0-next.181): + svelte-sonner@0.3.26(svelte@5.0.0-next.183): dependencies: - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 - svelte-toolbelt@0.0.2(svelte@5.0.0-next.181): + svelte-toolbelt@0.0.2(svelte@5.0.0-next.183): dependencies: - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 - svelte2tsx@0.7.13(svelte@5.0.0-next.181)(typescript@5.5.3): + svelte2tsx@0.7.13(svelte@5.0.0-next.183)(typescript@5.5.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.0.0-next.181 + svelte: 5.0.0-next.183 typescript: 5.5.3 - svelte@5.0.0-next.181: + svelte@5.0.0-next.183: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -10109,9 +10120,11 @@ snapshots: tinybench@2.8.0: {} - tinypool@0.8.4: {} + tinypool@1.0.0: {} + + tinyrainbow@1.2.0: {} - tinyspy@2.2.1: {} + tinyspy@3.0.0: {} tmp@0.0.33: dependencies: @@ -10350,12 +10363,12 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-node@1.6.0(@types/node@20.14.10): + vite-node@2.0.2(@types/node@20.14.10): dependencies: cac: 6.7.14 debug: 4.3.5 pathe: 1.1.2 - picocolors: 1.0.1 + tinyrainbow: 1.2.0 vite: 5.3.3(@types/node@20.14.10) transitivePeerDependencies: - '@types/node' @@ -10380,30 +10393,29 @@ snapshots: dependencies: vite: 5.3.3(@types/node@20.14.10) - vitest@1.6.0(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0): + vitest@2.0.2(@types/node@20.14.10)(@vitest/ui@1.6.0)(jsdom@24.1.0): dependencies: + '@ampproject/remapping': 2.3.0 '@types/node': 20.14.10 - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/ui': 1.6.0(vitest@1.6.0) - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.3 - chai: 4.4.1 + '@vitest/expect': 2.0.2 + '@vitest/pretty-format': 2.0.2 + '@vitest/runner': 2.0.2 + '@vitest/snapshot': 2.0.2 + '@vitest/spy': 2.0.2 + '@vitest/ui': 1.6.0(vitest@2.0.2) + '@vitest/utils': 2.0.2 + chai: 5.1.1 debug: 4.3.5 execa: 8.0.1 jsdom: 24.1.0 - local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 - picocolors: 1.0.1 std-env: 3.7.0 - strip-literal: 2.1.0 tinybench: 2.8.0 - tinypool: 0.8.4 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 vite: 5.3.3(@types/node@20.14.10) - vite-node: 1.6.0(@types/node@20.14.10) + vite-node: 2.0.2(@types/node@20.14.10) why-is-node-running: 2.3.0 transitivePeerDependencies: - less @@ -10414,10 +10426,10 @@ snapshots: - supports-color - terser - vue-eslint-parser@9.4.3(eslint@9.6.0): + vue-eslint-parser@9.4.3(eslint@9.7.0): dependencies: debug: 4.3.5 - eslint: 9.6.0 + eslint: 9.7.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 diff --git a/sites/docs/package.json b/sites/docs/package.json index 828476733..f5ba3a7e5 100644 --- a/sites/docs/package.json +++ b/sites/docs/package.json @@ -7,7 +7,7 @@ "scripts": { "dev": "concurrently \"pnpm:dev:content\" \"pnpm:dev:svelte\"", "dev:content": "contentlayer dev", - "dev:svelte": "vite dev --host", + "dev:svelte": "vite dev", "build": "contentlayer build && vite build", "build:content": "contentlayer build", "build:content-cachebust": "contentlayer build --clearCache", @@ -39,7 +39,7 @@ "rehype-slug": "^6.0.0", "remark-gfm": "^4.0.0", "shiki": "^1.1.1", - "svelte": "5.0.0-next.181", + "svelte": "5.0.0-next.183", "svelte-check": "^3.6.9", "svelte-sonner": "^0.3.24", "tailwind-merge": "^2.2.1", diff --git a/sites/docs/src/lib/components/demos/select-demo.svelte b/sites/docs/src/lib/components/demos/select-demo.svelte index 85b375468..589e824e9 100644 --- a/sites/docs/src/lib/components/demos/select-demo.svelte +++ b/sites/docs/src/lib/components/demos/select-demo.svelte @@ -26,48 +26,46 @@ ]; -
- - + + + + + + + - - - - - - up - up - - {#each themes as theme} - - {#snippet children({ selected })} - - {theme.label} - - {#if selected} - - - - {/if} - {/snippet} - - {/each} - - down - - - -
+ + {#each themes as theme} + + {#snippet children({ selected })} + + {theme.label} + + {#if selected} + + + + {/if} + {/snippet} + + {/each} + + down + + +