From 78faa9b1f3fd94066e0830729e74836741a58817 Mon Sep 17 00:00:00 2001 From: Segun Adebayo Date: Mon, 25 May 2026 16:33:08 +0200 Subject: [PATCH 1/2] docs: update typedocs --- apps/www/package.json | 1 + apps/www/public/r/types/action-bar.json | 6 - apps/www/public/r/types/card.json | 6 - apps/www/public/r/types/carousel.json | 18 +- apps/www/public/r/types/checkbox-card.json | 5 + apps/www/public/r/types/checkbox.json | 5 + apps/www/public/r/types/clipboard.json | 85 +--- apps/www/public/r/types/code-block.json | 6 - apps/www/public/r/types/color-swatch.json | 6 - apps/www/public/r/types/combobox.json | 25 +- apps/www/public/r/types/container.json | 6 - apps/www/public/r/types/data-list.json | 6 - apps/www/public/r/types/date-picker.json | 258 ++++++++++-- apps/www/public/r/types/drawer.json | 6 - apps/www/public/r/types/editable.json | 6 - apps/www/public/r/types/empty-state.json | 6 - apps/www/public/r/types/field.json | 20 +- apps/www/public/r/types/fieldset.json | 8 +- apps/www/public/r/types/file-upload.json | 7 +- apps/www/public/r/types/floating-panel.json | 427 ++++++++++++++++++++ apps/www/public/r/types/heading.json | 6 - apps/www/public/r/types/highlight.json | 3 - apps/www/public/r/types/hover-card.json | 6 - apps/www/public/r/types/icon.json | 6 - apps/www/public/r/types/index.json | 1 + apps/www/public/r/types/input-addon.json | 6 - apps/www/public/r/types/list.json | 6 - apps/www/public/r/types/listbox.json | 2 +- apps/www/public/r/types/locale.json | 3 - apps/www/public/r/types/menu.json | 6 + apps/www/public/r/types/native-select.json | 6 - apps/www/public/r/types/number-input.json | 5 + apps/www/public/r/types/pagination.json | 272 ++++++------- apps/www/public/r/types/progress.json | 2 +- apps/www/public/r/types/qr-code.json | 6 - apps/www/public/r/types/radio-card.json | 14 +- apps/www/public/r/types/radio-group.json | 14 +- apps/www/public/r/types/segment-group.json | 20 +- apps/www/public/r/types/select.json | 36 +- apps/www/public/r/types/separator.json | 6 - apps/www/public/r/types/skeleton.json | 6 - apps/www/public/r/types/slider.json | 6 + apps/www/public/r/types/spinner.json | 6 - apps/www/public/r/types/splitter.json | 31 +- apps/www/public/r/types/stat.json | 6 - apps/www/public/r/types/steps.json | 17 + apps/www/public/r/types/tags-input.json | 5 + apps/www/public/r/types/toast.json | 42 -- apps/www/public/r/types/toggle.json | 26 -- apps/www/public/r/types/tree-view.json | 31 +- apps/www/scripts/generate-types.ts | 114 ++++-- apps/www/utils/get-recipe-types.ts | 11 +- package.json | 3 +- 53 files changed, 1074 insertions(+), 569 deletions(-) create mode 100644 apps/www/public/r/types/floating-panel.json diff --git a/apps/www/package.json b/apps/www/package.json index cbd9af796f3..e6b837ec891 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -10,6 +10,7 @@ "lint": "next lint", "generate:composition": "pnpm tsx scripts/composition.ts", "generate:examples": "pnpm tsx scripts/generate-examples.ts", + "pregenerate:types": "pnpm build:react", "generate:types": "pnpm tsx scripts/generate-types.ts", "generate:icon": "pnpm tsx scripts/generate-icon.ts", "generate:theme": "pnpm tsx scripts/generate-theme.ts", diff --git a/apps/www/public/r/types/action-bar.json b/apps/www/public/r/types/action-bar.json index 3ccc60d546c..d2102e5ea66 100644 --- a/apps/www/public/r/types/action-bar.json +++ b/apps/www/public/r/types/action-bar.json @@ -189,12 +189,6 @@ "defaultValue": "false", "description": "Whether to unmount on exit." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "placement": { "type": "\"bottom\" | \"bottom-start\" | \"bottom-end\"", "defaultValue": "bottom", diff --git a/apps/www/public/r/types/card.json b/apps/www/public/r/types/card.json index c57a5b29361..d51ead2e049 100644 --- a/apps/www/public/r/types/card.json +++ b/apps/www/public/r/types/card.json @@ -30,12 +30,6 @@ "isRequired": false, "description": "Whether to remove the component's style." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"sm\" | \"md\" | \"lg\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/carousel.json b/apps/www/public/r/types/carousel.json index fdeeb4ec6c2..8100ac9d474 100644 --- a/apps/www/public/r/types/carousel.json +++ b/apps/www/public/r/types/carousel.json @@ -175,6 +175,12 @@ "defaultValue": "false", "description": "Whether to scroll automatically. The default delay is 4000ms." }, + "autoSize": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "Whether to enable variable width slides." + }, "defaultPage": { "type": "number", "isRequired": false, @@ -301,9 +307,8 @@ "isRequired": false }, "paused": { - "type": "string | number | bigint | boolean | ReactElement> | Iterable | ReactPortal | Promise<...>", - "isRequired": false, - "description": "The content to render when autoplay is paused." + "type": "React.ReactNode", + "isRequired": false }, "as": { "type": "React.ElementType", @@ -315,12 +320,13 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "playing": { + "fallback": { "type": "string | number | bigint | boolean | ReactElement> | Iterable | ReactPortal | Promise<...>", "isRequired": false, - "description": "The content to render when autoplay is playing." + "description": "The fallback content to render when autoplay is paused." } - } + }, + "element": "HTMLSpanElement" }, "ProgressText": { "props": { diff --git a/apps/www/public/r/types/checkbox-card.json b/apps/www/public/r/types/checkbox-card.json index 9a311e9ff49..7bbd23af23c 100644 --- a/apps/www/public/r/types/checkbox-card.json +++ b/apps/www/public/r/types/checkbox-card.json @@ -247,6 +247,11 @@ "isRequired": false, "description": "If `true`, the checkbox group is invalid" }, + "maxSelectedValues": { + "type": "number", + "isRequired": false, + "description": "The maximum number of selected values" + }, "name": { "type": "string", "isRequired": false, diff --git a/apps/www/public/r/types/checkbox.json b/apps/www/public/r/types/checkbox.json index 63f58bd0ea7..94eeda7a90e 100644 --- a/apps/www/public/r/types/checkbox.json +++ b/apps/www/public/r/types/checkbox.json @@ -197,6 +197,11 @@ "isRequired": false, "description": "If `true`, the checkbox group is invalid" }, + "maxSelectedValues": { + "type": "number", + "isRequired": false, + "description": "The maximum number of selected values" + }, "name": { "type": "string", "isRequired": false, diff --git a/apps/www/public/r/types/clipboard.json b/apps/www/public/r/types/clipboard.json index 4deaa89d600..4f547243270 100644 --- a/apps/www/public/r/types/clipboard.json +++ b/apps/www/public/r/types/clipboard.json @@ -1,45 +1,4 @@ { - "ClipboardControl": { - "props": {} - }, - "ClipboardIndicator": { - "props": {} - }, - "ClipboardRoot": { - "props": {} - }, - "ClipboardRootProvider": { - "props": {} - }, - "ClipboardLabel": { - "props": {} - }, - "ClipboardValueText": { - "props": {} - }, - "ClipboardTrigger": { - "props": {} - }, - "ClipboardInput": { - "props": {} - }, - "UseClipboard": { - "props": {} - }, - "Clipboard": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, "Control": { "props": { "asChild": { @@ -64,26 +23,6 @@ }, "element": "HTMLDivElement" }, - "Input": { - "props": { - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - }, - "element": "HTMLInputElement" - }, - "Label": { - "props": { - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - }, - "element": "HTMLLabelElement" - }, "Root": { "props": { "asChild": { @@ -144,7 +83,7 @@ }, "element": "HTMLDivElement" }, - "Trigger": { + "Label": { "props": { "asChild": { "type": "boolean", @@ -152,7 +91,7 @@ "description": "Use the provided child element as the default rendered element, combining their props and behavior." } }, - "element": "HTMLButtonElement" + "element": "HTMLLabelElement" }, "ValueText": { "props": { @@ -163,5 +102,25 @@ } }, "element": "HTMLDivElement" + }, + "Trigger": { + "props": { + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLButtonElement" + }, + "Input": { + "props": { + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLInputElement" } } \ No newline at end of file diff --git a/apps/www/public/r/types/code-block.json b/apps/www/public/r/types/code-block.json index bc8d8ceefb7..72d5b386677 100644 --- a/apps/www/public/r/types/code-block.json +++ b/apps/www/public/r/types/code-block.json @@ -54,12 +54,6 @@ "isRequired": false, "description": "Whether to remove the component's style." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"sm\" | \"md\" | \"lg\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/color-swatch.json b/apps/www/public/r/types/color-swatch.json index c690d87f635..105fe30c99c 100644 --- a/apps/www/public/r/types/color-swatch.json +++ b/apps/www/public/r/types/color-swatch.json @@ -11,12 +11,6 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"inherit\" | \"full\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/combobox.json b/apps/www/public/r/types/combobox.json index b9f8145962d..cd1b0015bfc 100644 --- a/apps/www/public/r/types/combobox.json +++ b/apps/www/public/r/types/combobox.json @@ -44,6 +44,21 @@ }, "element": "HTMLDivElement" }, + "List": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, "Input": { "props": { "as": { @@ -569,15 +584,5 @@ } }, "element": "HTMLButtonElement" - }, - "List": { - "props": { - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - }, - "element": "HTMLDivElement" } } \ No newline at end of file diff --git a/apps/www/public/r/types/container.json b/apps/www/public/r/types/container.json index 9b0b96a871f..afb400493a3 100644 --- a/apps/www/public/r/types/container.json +++ b/apps/www/public/r/types/container.json @@ -11,12 +11,6 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "centerContent": { "type": "\"true\" | \"false\"", "isRequired": false, diff --git a/apps/www/public/r/types/data-list.json b/apps/www/public/r/types/data-list.json index fa15361a115..b4f61c75c5d 100644 --- a/apps/www/public/r/types/data-list.json +++ b/apps/www/public/r/types/data-list.json @@ -58,12 +58,6 @@ "isRequired": false, "description": "Whether to remove the component's style." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "orientation": { "type": "\"horizontal\" | \"vertical\"", "defaultValue": "vertical", diff --git a/apps/www/public/r/types/date-picker.json b/apps/www/public/r/types/date-picker.json index 1581f0e51b7..8aecb40fe88 100644 --- a/apps/www/public/r/types/date-picker.json +++ b/apps/www/public/r/types/date-picker.json @@ -179,20 +179,6 @@ }, "element": "HTMLDivElement" }, - "RootBase": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, "Root": { "props": { "as": { @@ -277,6 +263,11 @@ "isRequired": false, "description": "Whether to render the date picker inline" }, + "invalid": { + "type": "boolean", + "isRequired": false, + "description": "Whether the date picker is invalid" + }, "isDateUnavailable": { "type": "(date: DateValue, locale: string) => boolean", "isRequired": false, @@ -299,6 +290,11 @@ "isRequired": false, "description": "The maximum date that can be selected." }, + "maxSelectedDates": { + "type": "number", + "isRequired": false, + "description": "The maximum number of dates that can be selected.\nThis is only applicable when `selectionMode` is `multiple`." + }, "maxView": { "type": "DateView", "isRequired": false, @@ -351,11 +347,22 @@ "isRequired": false, "description": "Function called when the view changes." }, + "onVisibleRangeChange": { + "type": "(details: VisibleRangeChangeDetails) => void", + "isRequired": false, + "description": "Function called when the visible range changes." + }, "open": { "type": "boolean", "isRequired": false, "description": "The controlled open state of the date picker" }, + "openOnClick": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "Whether to open the calendar when the input is clicked." + }, "outsideDaySelectable": { "type": "boolean", "isRequired": false, @@ -387,12 +394,22 @@ "isRequired": false, "description": "Whether the calendar is read-only." }, + "required": { + "type": "boolean", + "isRequired": false, + "description": "Whether the date picker is required" + }, "selectionMode": { "type": "SelectionMode", "isRequired": false, "defaultValue": "\"single\"", "description": "The selection mode of the calendar.\n- `single` - only one date can be selected\n- `multiple` - multiple dates can be selected\n- `range` - a range of dates can be selected" }, + "showWeekNumbers": { + "type": "boolean", + "isRequired": false, + "description": "Whether to show the week number column in the day view." + }, "skipAnimationOnMount": { "type": "boolean", "isRequired": false, @@ -438,27 +455,24 @@ "description": "The color palette of the component" }, "size": { - "type": "\"sm\" | \"md\" | \"lg\"", + "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"", "defaultValue": "md", "isRequired": false, "description": "The size of the component" - } - }, - "element": "HTMLDivElement" - }, - "RootProviderBase": { - "props": { - "as": { - "type": "React.ElementType", + }, + "hideOutsideDays": { + "type": "\"true\" | \"false\"", "isRequired": false, - "description": "The underlying element to render." + "description": "The hideOutsideDays of the component" }, - "asChild": { - "type": "boolean", + "variant": { + "type": "\"outline\" | \"subtle\" | \"flushed\"", + "defaultValue": "outline", "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." + "description": "The variant of the component" } - } + }, + "element": "HTMLDivElement" }, "RootProvider": { "props": { @@ -701,6 +715,58 @@ }, "element": "HTMLButtonElement" }, + "WeekNumberCell": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + }, + "week": { + "type": "DateValue[]", + "isRequired": true + }, + "weekIndex": { + "type": "number", + "isRequired": true + } + }, + "element": "HTMLTableCellElement" + }, + "WeekNumberCellText": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + } + }, + "WeekNumberHeaderCell": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLTableCellElement" + }, "YearSelect": { "props": { "as": { @@ -715,5 +781,141 @@ } }, "element": "HTMLSelectElement" + }, + "Header": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + } + }, + "IndicatorGroup": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + } + }, + "DayTable": { + "props": { + "offset": { + "type": "number", + "isRequired": false + }, + "weekNumberLabel": { + "type": "string", + "isRequired": false + }, + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + } + }, + "MonthTable": { + "props": { + "columns": { + "type": "number", + "isRequired": false + }, + "format": { + "type": "\"short\" | \"long\"", + "isRequired": false + }, + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + } + }, + "YearTable": { + "props": { + "columns": { + "type": "number", + "isRequired": false + }, + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + } + }, + "ValueText": { + "props": { + "placeholder": { + "type": "string", + "isRequired": false, + "description": "Text to display when no date is selected." + }, + "separator": { + "type": "string", + "defaultValue": "\", \"", + "isRequired": false, + "description": "The separator to use between multiple date values when using default rendering." + }, + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLSpanElement" + }, + "ValueTextRender": { + "props": { + "index": { + "type": "number", + "isRequired": true + }, + "remove": { + "type": "() => void", + "isRequired": true + }, + "value": { + "type": "DateValue", + "isRequired": true + }, + "valueAsString": { + "type": "string", + "isRequired": true + } + } } } \ No newline at end of file diff --git a/apps/www/public/r/types/drawer.json b/apps/www/public/r/types/drawer.json index 1d24792fe60..5e04b791405 100644 --- a/apps/www/public/r/types/drawer.json +++ b/apps/www/public/r/types/drawer.json @@ -278,12 +278,6 @@ "defaultValue": "false", "description": "Whether to unmount on exit." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"", "defaultValue": "xs", diff --git a/apps/www/public/r/types/editable.json b/apps/www/public/r/types/editable.json index d39d9452e66..4b77f80d148 100644 --- a/apps/www/public/r/types/editable.json +++ b/apps/www/public/r/types/editable.json @@ -184,12 +184,6 @@ "isRequired": false, "description": "The controlled value of the editable." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"sm\" | \"md\" | \"lg\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/empty-state.json b/apps/www/public/r/types/empty-state.json index 8d90b0ff2d8..b204ec5266b 100644 --- a/apps/www/public/r/types/empty-state.json +++ b/apps/www/public/r/types/empty-state.json @@ -16,12 +16,6 @@ "isRequired": false, "description": "Whether to remove the component's style." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"sm\" | \"md\" | \"lg\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/field.json b/apps/www/public/r/types/field.json index 78b6d5b1d0f..cf1b6895e72 100644 --- a/apps/www/public/r/types/field.json +++ b/apps/www/public/r/types/field.json @@ -41,12 +41,6 @@ "isRequired": false, "description": "Indicates whether the field is required." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "orientation": { "type": "\"vertical\" | \"horizontal\"", "defaultValue": "vertical", @@ -134,6 +128,20 @@ }, "element": "HTMLSpanElement" }, + "Item": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + } + }, "Input": { "props": { "asChild": { diff --git a/apps/www/public/r/types/fieldset.json b/apps/www/public/r/types/fieldset.json index c8fc684bb83..8ccac14b28f 100644 --- a/apps/www/public/r/types/fieldset.json +++ b/apps/www/public/r/types/fieldset.json @@ -21,12 +21,6 @@ "isRequired": false, "description": "Indicates whether the fieldset is invalid." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"sm\" | \"md\" | \"lg\"", "defaultValue": "md", @@ -98,7 +92,7 @@ "RootProvider": { "props": { "value": { - "type": "{ refs: { rootRef: RefObject; }; disabled: boolean; invalid: boolean; getRootProps: () => Omit, HTMLFieldSetElement>, \"ref\">; getLegendProps: () => Omit<...>; getHelperTextProps: () => Omit<...>; getErrorTextProps: () => Omit<....", + "type": "{ refs: { rootRef: RefObject; }; ids: { legend: string; errorText: string; helperText: string; }; disabled: boolean; invalid: boolean; getRootProps: () => Omit<...>; getLegendProps: () => Omit<...>; getHelperTextProps: () => Omit<...>; getErrorTextProps: () => Omit<...>; }", "isRequired": true }, "asChild": { diff --git a/apps/www/public/r/types/file-upload.json b/apps/www/public/r/types/file-upload.json index fe612dc89a7..14e16c0db30 100644 --- a/apps/www/public/r/types/file-upload.json +++ b/apps/www/public/r/types/file-upload.json @@ -107,7 +107,7 @@ "description": "Whether the file input is disabled" }, "ids": { - "type": "Partial<{\n root: string\n dropzone: string\n hiddenInput: string\n trigger: string\n label: string\n item: (id: string) => string\n itemName: (id: string) => string\n itemSizeText: (id: string) => string\n itemPreview: (id: string) => string\n}>", + "type": "Partial<{\n root: string\n dropzone: string\n hiddenInput: string\n trigger: string\n label: string\n item: (id: string) => string\n itemName: (id: string) => string\n itemSizeText: (id: string) => string\n itemPreview: (id: string) => string\n itemDeleteTrigger: (id: string) => string\n}>", "isRequired": false, "description": "The ids of the elements. Useful for composition." }, @@ -166,6 +166,11 @@ "defaultValue": "true", "description": "Whether to prevent the drop event on the document" }, + "readOnly": { + "type": "boolean", + "isRequired": false, + "description": "Whether the file input is read-only" + }, "required": { "type": "boolean", "isRequired": false, diff --git a/apps/www/public/r/types/floating-panel.json b/apps/www/public/r/types/floating-panel.json new file mode 100644 index 00000000000..56f2ebfe875 --- /dev/null +++ b/apps/www/public/r/types/floating-panel.json @@ -0,0 +1,427 @@ +{ + "Root": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + }, + "unstyled": { + "type": "boolean", + "isRequired": false, + "description": "Whether to remove the component's style." + }, + "allowOverflow": { + "type": "boolean", + "isRequired": false, + "defaultValue": "true", + "description": "Whether the panel should be strictly contained within the boundary when dragging" + }, + "closeOnEscape": { + "type": "boolean", + "isRequired": false, + "description": "Whether the panel should close when the escape key is pressed" + }, + "defaultOpen": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "The initial open state of the panel when rendered.\nUse when you don't need to control the open state of the panel." + }, + "defaultPosition": { + "type": "Point", + "isRequired": false, + "description": "The initial position of the panel when rendered.\nUse when you don't need to control the position of the panel." + }, + "defaultSize": { + "type": "Size", + "isRequired": false, + "description": "The default size of the panel" + }, + "dir": { + "type": "'ltr' | 'rtl'", + "isRequired": false, + "defaultValue": "\"ltr\"", + "description": "The document's text/writing direction." + }, + "disabled": { + "type": "boolean", + "isRequired": false, + "description": "Whether the panel is disabled" + }, + "draggable": { + "type": "boolean", + "isRequired": false, + "defaultValue": "true", + "description": "Whether the panel is draggable" + }, + "getAnchorPosition": { + "type": "(details: AnchorPositionDetails) => Point", + "isRequired": false, + "description": "Function that returns the initial position of the panel when it is opened.\nIf provided, will be used instead of the default position." + }, + "getBoundaryEl": { + "type": "() => HTMLElement | null", + "isRequired": false, + "description": "The boundary of the panel. Useful for recalculating the boundary rect when\nthe it is resized." + }, + "gridSize": { + "type": "number", + "isRequired": false, + "defaultValue": "1", + "description": "The snap grid for the panel" + }, + "id": { + "type": "string", + "isRequired": false, + "description": "The unique identifier of the machine." + }, + "ids": { + "type": "Partial<{ trigger: string; positioner: string; content: string; title: string; header: string }>", + "isRequired": false, + "description": "The ids of the elements in the floating panel. Useful for composition." + }, + "immediate": { + "type": "boolean", + "isRequired": false, + "description": "Whether to synchronize the present change immediately or defer it to the next frame" + }, + "lazyMount": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "Whether to enable lazy mounting" + }, + "lockAspectRatio": { + "type": "boolean", + "isRequired": false, + "description": "Whether the panel is locked to its aspect ratio" + }, + "maxSize": { + "type": "Size", + "isRequired": false, + "description": "The maximum size of the panel" + }, + "minSize": { + "type": "Size", + "isRequired": false, + "description": "The minimum size of the panel" + }, + "onExitComplete": { + "type": "VoidFunction", + "isRequired": false, + "description": "Function called when the animation ends in the closed state" + }, + "onOpenChange": { + "type": "(details: OpenChangeDetails) => void", + "isRequired": false, + "description": "Function called when the panel is opened or closed" + }, + "onPositionChange": { + "type": "(details: PositionChangeDetails) => void", + "isRequired": false, + "description": "Function called when the position of the panel changes via dragging" + }, + "onPositionChangeEnd": { + "type": "(details: PositionChangeDetails) => void", + "isRequired": false, + "description": "Function called when the position of the panel changes via dragging ends" + }, + "onSizeChange": { + "type": "(details: SizeChangeDetails) => void", + "isRequired": false, + "description": "Function called when the size of the panel changes via resizing" + }, + "onSizeChangeEnd": { + "type": "(details: SizeChangeDetails) => void", + "isRequired": false, + "description": "Function called when the size of the panel changes via resizing ends" + }, + "onStageChange": { + "type": "(details: StageChangeDetails) => void", + "isRequired": false, + "description": "Function called when the stage of the panel changes" + }, + "open": { + "type": "boolean", + "isRequired": false, + "description": "The controlled open state of the panel" + }, + "persistRect": { + "type": "boolean", + "isRequired": false, + "description": "Whether the panel size and position should be preserved when it is closed" + }, + "position": { + "type": "Point", + "isRequired": false, + "description": "The controlled position of the panel" + }, + "present": { + "type": "boolean", + "isRequired": false, + "description": "Whether the node is present (controlled by the user)" + }, + "resizable": { + "type": "boolean", + "isRequired": false, + "defaultValue": "true", + "description": "Whether the panel is resizable" + }, + "size": { + "type": "Size", + "isRequired": false, + "description": "The size of the panel" + }, + "skipAnimationOnMount": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "Whether to allow the initial presence animation." + }, + "strategy": { + "type": "'absolute' | 'fixed'", + "isRequired": false, + "defaultValue": "\"fixed\"", + "description": "The strategy to use for positioning" + }, + "translations": { + "type": "IntlTranslations", + "isRequired": false, + "description": "The translations for the floating panel." + }, + "unmountOnExit": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "Whether to unmount on exit." + } + } + }, + "RootProvider": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + }, + "value": { + "type": "UseFloatingPanelReturn", + "isRequired": true + }, + "immediate": { + "type": "boolean", + "isRequired": false, + "description": "Whether to synchronize the present change immediately or defer it to the next frame" + }, + "lazyMount": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "Whether to enable lazy mounting" + }, + "onExitComplete": { + "type": "VoidFunction", + "isRequired": false, + "description": "Function called when the animation ends in the closed state" + }, + "skipAnimationOnMount": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "Whether to allow the initial presence animation." + }, + "unmountOnExit": { + "type": "boolean", + "isRequired": false, + "defaultValue": "false", + "description": "Whether to unmount on exit." + } + } + }, + "Trigger": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLButtonElement" + }, + "Positioner": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, + "Content": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, + "Header": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, + "Body": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, + "Title": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, + "DragTrigger": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, + "ResizeTrigger": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + }, + "axis": { + "type": "ResizeTriggerAxis", + "isRequired": true, + "description": "The axis of the resize handle" + } + }, + "element": "HTMLDivElement" + }, + "StageTrigger": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + }, + "stage": { + "type": "Stage", + "isRequired": true, + "description": "The stage of the panel" + } + }, + "element": "HTMLButtonElement" + }, + "CloseTrigger": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLButtonElement" + }, + "Control": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + } +} \ No newline at end of file diff --git a/apps/www/public/r/types/heading.json b/apps/www/public/r/types/heading.json index 9dbf15d65ed..e720b4c2142 100644 --- a/apps/www/public/r/types/heading.json +++ b/apps/www/public/r/types/heading.json @@ -11,12 +11,6 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\" | \"6xl\" | \"7xl\"", "defaultValue": "xl", diff --git a/apps/www/public/r/types/highlight.json b/apps/www/public/r/types/highlight.json index e0618d87e03..c0fa01af0a5 100644 --- a/apps/www/public/r/types/highlight.json +++ b/apps/www/public/r/types/highlight.json @@ -41,8 +41,5 @@ "description": "Whether to match whole words only" } } - }, - "UseHighlight": { - "props": {} } } \ No newline at end of file diff --git a/apps/www/public/r/types/hover-card.json b/apps/www/public/r/types/hover-card.json index 3c2373be431..05557d7ef04 100644 --- a/apps/www/public/r/types/hover-card.json +++ b/apps/www/public/r/types/hover-card.json @@ -171,12 +171,6 @@ "defaultValue": "false", "description": "Whether to unmount on exit." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"xs\" | \"sm\" | \"md\" | \"lg\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/icon.json b/apps/www/public/r/types/icon.json index 84e761b53db..c608fd515c8 100644 --- a/apps/www/public/r/types/icon.json +++ b/apps/www/public/r/types/icon.json @@ -11,12 +11,6 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"inherit\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"", "defaultValue": "inherit", diff --git a/apps/www/public/r/types/index.json b/apps/www/public/r/types/index.json index 5c1839f4a5a..9fb7f14131b 100644 --- a/apps/www/public/r/types/index.json +++ b/apps/www/public/r/types/index.json @@ -42,6 +42,7 @@ "file-upload", "flex", "float", + "floating-panel", "focus-trap", "for", "format", diff --git a/apps/www/public/r/types/input-addon.json b/apps/www/public/r/types/input-addon.json index b797610d5de..b9c53e80d8f 100644 --- a/apps/www/public/r/types/input-addon.json +++ b/apps/www/public/r/types/input-addon.json @@ -11,12 +11,6 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/list.json b/apps/www/public/r/types/list.json index 10ba4b7061f..034c76b5e3d 100644 --- a/apps/www/public/r/types/list.json +++ b/apps/www/public/r/types/list.json @@ -16,12 +16,6 @@ "isRequired": false, "description": "Whether to remove the component's style." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "variant": { "type": "\"marker\" | \"plain\"", "defaultValue": "marker", diff --git a/apps/www/public/r/types/listbox.json b/apps/www/public/r/types/listbox.json index 0a577898c57..f563e11cd79 100644 --- a/apps/www/public/r/types/listbox.json +++ b/apps/www/public/r/types/listbox.json @@ -148,7 +148,7 @@ "description": "Use the provided child element as the default rendered element, combining their props and behavior." } }, - "element": "HTMLLabelElement" + "element": "HTMLSpanElement" }, "Root": { "props": { diff --git a/apps/www/public/r/types/locale.json b/apps/www/public/r/types/locale.json index db51ac396ed..f946b274985 100644 --- a/apps/www/public/r/types/locale.json +++ b/apps/www/public/r/types/locale.json @@ -9,9 +9,6 @@ } } }, - "UseFilter": { - "props": {} - }, "Locale": { "props": { "as": { diff --git a/apps/www/public/r/types/menu.json b/apps/www/public/r/types/menu.json index 7061d4b5e93..4ea2544ec39 100644 --- a/apps/www/public/r/types/menu.json +++ b/apps/www/public/r/types/menu.json @@ -470,6 +470,12 @@ "defaultValue": "false", "description": "Whether to unmount on exit." }, + "colorPalette": { + "defaultValue": "gray", + "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", + "isRequired": false, + "description": "The color palette of the component" + }, "variant": { "type": "\"subtle\" | \"solid\"", "defaultValue": "subtle", diff --git a/apps/www/public/r/types/native-select.json b/apps/www/public/r/types/native-select.json index 5efd7ae49d7..1a3e2a7ed80 100644 --- a/apps/www/public/r/types/native-select.json +++ b/apps/www/public/r/types/native-select.json @@ -24,12 +24,6 @@ "isRequired": false, "description": "Whether to remove the component's style." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "variant": { "type": "\"outline\" | \"subtle\" | \"plain\" | \"ghost\"", "defaultValue": "outline", diff --git a/apps/www/public/r/types/number-input.json b/apps/www/public/r/types/number-input.json index f445761b5e9..3f9bc00fcda 100644 --- a/apps/www/public/r/types/number-input.json +++ b/apps/www/public/r/types/number-input.json @@ -188,6 +188,11 @@ "isRequired": false, "description": "Function invoked when the value changes" }, + "onValueCommit": { + "type": "(details: ValueChangeDetails) => void", + "isRequired": false, + "description": "Function invoked when the value is committed (when the input is blurred or the Enter key is pressed)" + }, "onValueInvalid": { "type": "(details: ValueInvalidDetails) => void", "isRequired": false, diff --git a/apps/www/public/r/types/pagination.json b/apps/www/public/r/types/pagination.json index 398f3ba751b..8fced1e2b13 100644 --- a/apps/www/public/r/types/pagination.json +++ b/apps/www/public/r/types/pagination.json @@ -1,152 +1,16 @@ { - "PaginationRoot": { - "props": {} - }, - "PaginationRootProvider": { - "props": {} - }, - "PaginationPrevTrigger": { - "props": {} - }, - "PaginationNextTrigger": { - "props": {} - }, - "PaginationEllipsis": { - "props": {} - }, - "PaginationItem": { - "props": { - "href": { - "type": "LinkProps[\"href\"]", - "isRequired": true - }, - "external": { - "type": "boolean | undefined", - "isRequired": false - }, - "align": { - "type": "SystemStyleObject[\"alignItems\"] | undefined", - "isRequired": false, - "description": "Shorthand for `alignItems` style prop" - }, - "justify": { - "type": "SystemStyleObject[\"justifyContent\"] | undefined", - "isRequired": false, - "description": "Shorthand for `justifyContent` style prop" - }, - "wrap": { - "type": "SystemStyleObject[\"flexWrap\"] | undefined", - "isRequired": false, - "description": "Shorthand for `flexWrap` style prop" - }, - "direction": { - "type": "StackDirection | undefined", - "defaultValue": "column", - "isRequired": false, - "description": "The direction to stack the items." - }, - "separator": { - "type": "React.ReactElement | undefined", - "isRequired": false, - "description": "If `true`, each stack item will show a separator" - } - } - }, - "PaginationPageText": { - "props": { - "format": { - "type": "\"short\" | \"compact\" | \"long\" | undefined", - "isRequired": false - } - } - }, - "PaginationItems": { - "props": { - "render": { - "type": "(page", - "isRequired": true - }, - "ellipsis": { - "type": "React.ReactElement | undefined", - "isRequired": false - } - } - }, - "UsePagination": { - "props": {} - }, - "Pagination": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, - "Ellipsis": { + "Root": { "props": { - "index": { - "type": "number", - "isRequired": true - }, "asChild": { "type": "boolean", "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - }, - "element": "HTMLDivElement" - }, - "Item": { - "props": { - "type": { - "type": "'page'", - "isRequired": true }, - "value": { + "boundaryCount": { "type": "number", - "isRequired": true - }, - "asChild": { - "type": "boolean", "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - }, - "element": "HTMLButtonElement" - }, - "NextTrigger": { - "props": { - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - }, - "element": "HTMLButtonElement" - }, - "PrevTrigger": { - "props": { - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - }, - "element": "HTMLButtonElement" - }, - "Root": { - "props": { - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." + "defaultValue": "1", + "description": "Number of pages to show at the beginning and end" }, "count": { "type": "number", @@ -171,7 +35,7 @@ "description": "Function to generate href attributes for pagination links.\nOnly used when `type` is set to \"link\"." }, "ids": { - "type": "Partial<{\n root: string\n ellipsis: (index: number) => string\n prevTrigger: string\n nextTrigger: string\n item: (page: number) => string\n}>", + "type": "Partial<{\n root: string\n ellipsis: (index: number) => string\n firstTrigger: string\n prevTrigger: string\n nextTrigger: string\n lastTrigger: string\n item: (page: number) => string\n}>", "isRequired": false, "description": "The ids of the elements in the accordion. Useful for composition." }, @@ -228,5 +92,131 @@ } }, "element": "HTMLElement" + }, + "PrevTrigger": { + "props": { + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLButtonElement" + }, + "NextTrigger": { + "props": { + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLButtonElement" + }, + "Ellipsis": { + "props": { + "index": { + "type": "number", + "isRequired": true + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, + "Item": { + "props": { + "href": { + "type": "LinkProps[\"href\"]", + "isRequired": true + }, + "external": { + "type": "boolean | undefined", + "isRequired": false + }, + "align": { + "type": "SystemStyleObject[\"alignItems\"] | undefined", + "isRequired": false, + "description": "Shorthand for `alignItems` style prop" + }, + "justify": { + "type": "SystemStyleObject[\"justifyContent\"] | undefined", + "isRequired": false, + "description": "Shorthand for `justifyContent` style prop" + }, + "wrap": { + "type": "SystemStyleObject[\"flexWrap\"] | undefined", + "isRequired": false, + "description": "Shorthand for `flexWrap` style prop" + }, + "direction": { + "type": "StackDirection | undefined", + "defaultValue": "column", + "isRequired": false, + "description": "The direction to stack the items." + }, + "separator": { + "type": "React.ReactElement | undefined", + "isRequired": false, + "description": "If `true`, each stack item will show a separator" + }, + "type": { + "type": "'page'", + "isRequired": true + }, + "value": { + "type": "number", + "isRequired": true + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLButtonElement" + }, + "PageText": { + "props": { + "format": { + "type": "PaginationPageTextFormat | undefined", + "isRequired": false + } + } + }, + "Items": { + "props": { + "render": { + "type": "(page", + "isRequired": true + }, + "ellipsis": { + "type": "React.ReactElement | undefined", + "isRequired": false + } + } + }, + "FirstTrigger": { + "props": { + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLButtonElement" + }, + "LastTrigger": { + "props": { + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLButtonElement" } } \ No newline at end of file diff --git a/apps/www/public/r/types/progress.json b/apps/www/public/r/types/progress.json index 23e714c61ca..254c469c439 100644 --- a/apps/www/public/r/types/progress.json +++ b/apps/www/public/r/types/progress.json @@ -12,7 +12,7 @@ "description": "Use the provided child element as the default rendered element, combining their props and behavior." } }, - "element": "HTMLLabelElement" + "element": "HTMLSpanElement" }, "Range": { "props": { diff --git a/apps/www/public/r/types/qr-code.json b/apps/www/public/r/types/qr-code.json index c1546472f24..f18025d1421 100644 --- a/apps/www/public/r/types/qr-code.json +++ b/apps/www/public/r/types/qr-code.json @@ -51,12 +51,6 @@ "isRequired": false, "description": "The controlled value to encode." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/radio-card.json b/apps/www/public/r/types/radio-card.json index d5bdca8bdd8..0e045fa054d 100644 --- a/apps/www/public/r/types/radio-card.json +++ b/apps/www/public/r/types/radio-card.json @@ -69,7 +69,7 @@ "description": "Use the provided child element as the default rendered element, combining their props and behavior." } }, - "element": "HTMLLabelElement" + "element": "HTMLSpanElement" }, "Root": { "props": { @@ -113,6 +113,11 @@ "isRequired": false, "description": "The ids of the elements in the radio. Useful for composition." }, + "invalid": { + "type": "boolean", + "isRequired": false, + "description": "If `true`, the radio group is marked as invalid." + }, "name": { "type": "string", "isRequired": false, @@ -132,7 +137,12 @@ "readOnly": { "type": "boolean", "isRequired": false, - "description": "Whether the checkbox is read-only" + "description": "Whether the radio group is read-only" + }, + "required": { + "type": "boolean", + "isRequired": false, + "description": "If `true`, the radio group is marked as required." }, "value": { "type": "string", diff --git a/apps/www/public/r/types/radio-group.json b/apps/www/public/r/types/radio-group.json index 6ac0cb09b33..9739ab01b5d 100644 --- a/apps/www/public/r/types/radio-group.json +++ b/apps/www/public/r/types/radio-group.json @@ -69,7 +69,7 @@ "description": "Use the provided child element as the default rendered element, combining their props and behavior." } }, - "element": "HTMLLabelElement" + "element": "HTMLSpanElement" }, "Root": { "props": { @@ -113,6 +113,11 @@ "isRequired": false, "description": "The ids of the elements in the radio. Useful for composition." }, + "invalid": { + "type": "boolean", + "isRequired": false, + "description": "If `true`, the radio group is marked as invalid." + }, "name": { "type": "string", "isRequired": false, @@ -131,7 +136,12 @@ "readOnly": { "type": "boolean", "isRequired": false, - "description": "Whether the checkbox is read-only" + "description": "Whether the radio group is read-only" + }, + "required": { + "type": "boolean", + "isRequired": false, + "description": "If `true`, the radio group is marked as required." }, "value": { "type": "string", diff --git a/apps/www/public/r/types/segment-group.json b/apps/www/public/r/types/segment-group.json index 88579020050..19213972992 100644 --- a/apps/www/public/r/types/segment-group.json +++ b/apps/www/public/r/types/segment-group.json @@ -41,6 +41,11 @@ "isRequired": false, "description": "The ids of the elements in the radio. Useful for composition." }, + "invalid": { + "type": "boolean", + "isRequired": false, + "description": "If `true`, the radio group is marked as invalid." + }, "name": { "type": "string", "isRequired": false, @@ -59,19 +64,18 @@ "readOnly": { "type": "boolean", "isRequired": false, - "description": "Whether the checkbox is read-only" + "description": "Whether the radio group is read-only" + }, + "required": { + "type": "boolean", + "isRequired": false, + "description": "If `true`, the radio group is marked as required." }, "value": { "type": "string", "isRequired": false, "description": "The controlled value of the radio group" }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"xs\" | \"sm\" | \"md\" | \"lg\"", "defaultValue": "md", @@ -203,6 +207,6 @@ "description": "Use the provided child element as the default rendered element, combining their props and behavior." } }, - "element": "HTMLLabelElement" + "element": "HTMLSpanElement" } } \ No newline at end of file diff --git a/apps/www/public/r/types/select.json b/apps/www/public/r/types/select.json index bce70f401fe..d533a62c901 100644 --- a/apps/www/public/r/types/select.json +++ b/apps/www/public/r/types/select.json @@ -44,6 +44,21 @@ }, "element": "HTMLDivElement" }, + "List": { + "props": { + "as": { + "type": "React.ElementType", + "isRequired": false, + "description": "The underlying element to render." + }, + "asChild": { + "type": "boolean", + "isRequired": false, + "description": "Use the provided child element as the default rendered element, combining their props and behavior." + } + }, + "element": "HTMLDivElement" + }, "IndicatorGroup": { "props": { "as": { @@ -210,6 +225,11 @@ "isRequired": true, "description": "The collection of items" }, + "autoComplete": { + "type": "string", + "isRequired": false, + "description": "The autocomplete attribute for the hidden select. Enables browser autofill (e.g. \"address-level1\" for state)." + }, "closeOnSelect": { "type": "boolean", "isRequired": false, @@ -386,12 +406,6 @@ "isRequired": false, "description": "The controlled keys of the selected items" }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "variant": { "type": "\"outline\" | \"subtle\" | \"ghost\"", "defaultValue": "outline", @@ -501,15 +515,5 @@ } }, "element": "HTMLSelectElement" - }, - "List": { - "props": { - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - }, - "element": "HTMLDivElement" } } \ No newline at end of file diff --git a/apps/www/public/r/types/separator.json b/apps/www/public/r/types/separator.json index f686f4aa7c2..c88742342ab 100644 --- a/apps/www/public/r/types/separator.json +++ b/apps/www/public/r/types/separator.json @@ -11,12 +11,6 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "variant": { "type": "\"solid\" | \"dashed\" | \"dotted\"", "defaultValue": "solid", diff --git a/apps/www/public/r/types/skeleton.json b/apps/www/public/r/types/skeleton.json index fee252ae8d1..6abd41fc3ee 100644 --- a/apps/www/public/r/types/skeleton.json +++ b/apps/www/public/r/types/skeleton.json @@ -11,12 +11,6 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "loading": { "type": "\"true\" | \"false\"", "defaultValue": true, diff --git a/apps/www/public/r/types/slider.json b/apps/www/public/r/types/slider.json index d72f44510b1..21106d098b0 100644 --- a/apps/www/public/r/types/slider.json +++ b/apps/www/public/r/types/slider.json @@ -220,6 +220,12 @@ "defaultValue": "\"contain\"", "description": "The alignment of the slider thumb relative to the track\n- `center`: the thumb will extend beyond the bounds of the slider track.\n- `contain`: the thumb will be contained within the bounds of the track." }, + "thumbCollisionBehavior": { + "type": "'none' | 'push' | 'swap'", + "isRequired": false, + "defaultValue": "\"none\"", + "description": "Controls how thumbs behave when they collide during pointer interactions.\n- `none` (default): Thumbs cannot move past each other; excess movement is ignored.\n- `push`: Thumbs push each other without restoring their previous positions when dragged back.\n- `swap`: Thumbs swap places when dragged past each other." + }, "thumbSize": { "type": "{ width: number; height: number }", "isRequired": false, diff --git a/apps/www/public/r/types/spinner.json b/apps/www/public/r/types/spinner.json index 5a5e2651432..ecabc2b2fe4 100644 --- a/apps/www/public/r/types/spinner.json +++ b/apps/www/public/r/types/spinner.json @@ -11,12 +11,6 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"inherit\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/splitter.json b/apps/www/public/r/types/splitter.json index 58e1423361c..8cb0a67f715 100644 --- a/apps/www/public/r/types/splitter.json +++ b/apps/www/public/r/types/splitter.json @@ -30,7 +30,8 @@ "isRequired": false, "description": "Use the provided child element as the default rendered element, combining their props and behavior." } - } + }, + "element": "HTMLDivElement" }, "ResizeTriggerSeparator": { "props": { @@ -69,20 +70,6 @@ }, "element": "HTMLButtonElement" }, - "RootBase": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, "Root": { "props": { "as": { @@ -169,20 +156,6 @@ }, "element": "HTMLDivElement" }, - "RootProviderBase": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, "RootProvider": { "props": { "as": { diff --git a/apps/www/public/r/types/stat.json b/apps/www/public/r/types/stat.json index 926a6509c0a..83a3bd04ef0 100644 --- a/apps/www/public/r/types/stat.json +++ b/apps/www/public/r/types/stat.json @@ -44,12 +44,6 @@ "isRequired": false, "description": "Whether to remove the component's style." }, - "colorPalette": { - "defaultValue": "gray", - "type": "\"gray\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"teal\" | \"blue\" | \"cyan\" | \"purple\" | \"pink\"", - "isRequired": false, - "description": "The color palette of the component" - }, "size": { "type": "\"sm\" | \"md\" | \"lg\"", "defaultValue": "md", diff --git a/apps/www/public/r/types/steps.json b/apps/www/public/r/types/steps.json index 1974278f34d..79fbd9820a1 100644 --- a/apps/www/public/r/types/steps.json +++ b/apps/www/public/r/types/steps.json @@ -172,6 +172,18 @@ "isRequired": false, "description": "The custom ids for the stepper elements" }, + "isStepSkippable": { + "type": "(index: number) => boolean", + "isRequired": false, + "defaultValue": "() => false", + "description": "Whether a step can be skipped during navigation.\nSkippable steps are bypassed when using next/prev." + }, + "isStepValid": { + "type": "(index: number) => boolean", + "isRequired": false, + "defaultValue": "() => true", + "description": "Whether a step is valid. Invalid steps block forward navigation in linear mode." + }, "linear": { "type": "boolean", "isRequired": false, @@ -187,6 +199,11 @@ "isRequired": false, "description": "Callback to be called when a step is completed" }, + "onStepInvalid": { + "type": "(details: StepInvalidDetails) => void", + "isRequired": false, + "description": "Called when navigation is blocked due to an invalid step." + }, "orientation": { "type": "\"vertical\" | \"horizontal\"", "isRequired": false, diff --git a/apps/www/public/r/types/tags-input.json b/apps/www/public/r/types/tags-input.json index d8e9171e073..81d41364227 100644 --- a/apps/www/public/r/types/tags-input.json +++ b/apps/www/public/r/types/tags-input.json @@ -256,6 +256,11 @@ "isRequired": false, "description": "Callback fired when the max tag count is reached or the `validateTag` function returns `false`" }, + "placeholder": { + "type": "string", + "isRequired": false, + "description": "The placeholder text for the input" + }, "readOnly": { "type": "boolean", "isRequired": false, diff --git a/apps/www/public/r/types/toast.json b/apps/www/public/r/types/toast.json index d44c1755c38..f024441f5eb 100644 --- a/apps/www/public/r/types/toast.json +++ b/apps/www/public/r/types/toast.json @@ -93,48 +93,6 @@ }, "element": "HTMLDivElement" }, - "Createer": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, - "er": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, - "Store": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, "Toaster": { "props": { "toaster": { diff --git a/apps/www/public/r/types/toggle.json b/apps/www/public/r/types/toggle.json index 6fca8a1ba3a..0b25864c5f7 100644 --- a/apps/www/public/r/types/toggle.json +++ b/apps/www/public/r/types/toggle.json @@ -1,30 +1,4 @@ { - "ToggleIndicator": { - "props": {} - }, - "ToggleRootBase": { - "props": {} - }, - "ToggleRoot": { - "props": {} - }, - "UseToggle": { - "props": {} - }, - "Toggle": { - "props": { - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, "Indicator": { "props": { "asChild": { diff --git a/apps/www/public/r/types/tree-view.json b/apps/www/public/r/types/tree-view.json index 1fdfe148517..235c945ec29 100644 --- a/apps/www/public/r/types/tree-view.json +++ b/apps/www/public/r/types/tree-view.json @@ -213,32 +213,6 @@ } } }, - "NodeRender": { - "props": { - "node": { - "type": "T", - "isRequired": false - }, - "indexPath": { - "type": "number[]", - "isRequired": true - }, - "nodeState": { - "type": "ArkTreeView.NodeState", - "isRequired": true - }, - "as": { - "type": "React.ElementType", - "isRequired": false, - "description": "The underlying element to render." - }, - "asChild": { - "type": "boolean", - "isRequired": false, - "description": "Use the provided child element as the default rendered element, combining their props and behavior." - } - } - }, "Root": { "props": { "as": { @@ -368,6 +342,11 @@ "isRequired": false, "description": "Called when the selection changes" }, + "scrollToIndexFn": { + "type": "(details: ScrollToIndexDetails) => void", + "isRequired": false, + "description": "Function to scroll to a specific index.\nUseful for virtualized tree views." + }, "selectedValue": { "type": "string[]", "isRequired": false, diff --git a/apps/www/scripts/generate-types.ts b/apps/www/scripts/generate-types.ts index eb3ca399e71..40b54a0893c 100644 --- a/apps/www/scripts/generate-types.ts +++ b/apps/www/scripts/generate-types.ts @@ -11,7 +11,6 @@ import { chartComponents, filterEmpty, isEmptyObject, - mapEntries, toComponentCase, } from "@/utils/shared" import { defaultSystem } from "@chakra-ui/react/preset" @@ -36,17 +35,6 @@ async function getArkComponentProps() { return Object.fromEntries(entries) } -// Components where Root doesn't render a DOM node (uses withRootProvider) -const rootWithoutColorPalette = new Set([ - "menu", - "popover", - "dialog", - "tooltip", - "drawer", - "hover-card", - "action-bar", -]) - async function getRecipeProps() { const componentDirs = await getComponentList() const entries = componentDirs.map((dir) => { @@ -61,11 +49,6 @@ async function getRecipeProps() { } if (defaultSystem.isSlotRecipe(recipeKey)) { - // Filter out colorPalette for components where Root doesn't render a DOM node - if (rootWithoutColorPalette.has(dir)) { - const { colorPalette, ...rest } = props - props = rest - } return [kebabCase(dir), filterEmpty({ Root: { props } })] } @@ -109,6 +92,48 @@ const arkPropsMap: Record = { "checkbox-card": "checkbox", } +const omittedParts: Record = { + toast: ["Store"], +} + +function getValueExports(code: string) { + const exported = new Set() + const exportedValueRegex = /export\s*{([^}]+)}/g + let match = exportedValueRegex.exec(code) + + while (match != null) { + const values = match[1].split(",").map((value) => value.trim()) + values.forEach((value) => { + const [name, alias] = value.split(/\s+as\s+/) + exported.add(alias ?? name) + }) + match = exportedValueRegex.exec(code) + } + + return exported +} + +function getNamespaceAliases(componentDir: string) { + const file = join(componentDir, "namespace.ts") + const aliases = new Map() + if (!existsSync(file)) return aliases + + const content = readFileSync(file, "utf-8") + const exportedValueRegex = /export\s*{([^}]+)}/g + let match = exportedValueRegex.exec(content) + + while (match != null) { + const values = match[1].split(",").map((value) => value.trim()) + values.forEach((value) => { + const [name, alias] = value.split(/\s+as\s+/) + if (alias) aliases.set(name, alias) + }) + match = exportedValueRegex.exec(content) + } + + return aliases +} + async function extractComponents(components?: string[]) { const outDir = join("public", "r", "types") @@ -145,15 +170,22 @@ async function extractComponents(components?: string[]) { inPath = join(componentDir, dir, "index.tsx") } + const content = readFileSync(inPath, "utf-8") + const valueExports = getValueExports(content) + const namespaceAliases = getNamespaceAliases(join(componentDir, dir)) const props = await extractTypes(inPath) const json = deepMerge( {}, - wrapInProps(props, recipeKey), + wrapInProps(props, recipeKey, valueExports, namespaceAliases), arkProps[arkPropsMap[dir] || dir], recipeProps[dir], ) + omittedParts[dir]?.forEach((part) => { + Reflect.deleteProperty(json, part) + }) + writeFileSync(`${outDir}/${dir}.json`, JSON.stringify(json, null, 2)) } @@ -185,13 +217,43 @@ const unstyledProps = { }, } -function wrapInProps(obj: any, recipeKey: string) { +function wrapInProps( + obj: any, + recipeKey: string, + valueExports: Set, + namespaceAliases: Map, +) { const isSlotRecipe = defaultSystem.isSlotRecipe(recipeKey) const componentName = toComponentCase(recipeKey) - const result: Record = mapEntries(obj, (key: string, value) => [ - isSlotRecipe ? key.replace(componentName, "") : key, - isEmptyObject(value) ? { props: {} } : { props: value }, - ]) + const result: Record = {} + const slots = isSlotRecipe + ? defaultSystem + .getSlotRecipe(recipeKey) + .slots.map((slot: string) => toComponentCase(slot)) + : [] + + for (const [key, value] of Object.entries(obj)) { + if (key.startsWith("Use")) continue + if (key.endsWith("Base")) continue + + let part = key + + const alias = namespaceAliases.get(key) + if (alias) { + part = alias + } else if (isSlotRecipe) { + if (!key.startsWith(componentName)) continue + + part = key.slice(componentName.length) + + if (!slots.includes(part)) { + if (!valueExports.has(key)) continue + if (!/^[A-Z]/.test(part)) continue + } + } + + result[part] = isEmptyObject(value) ? { props: {} } : { props: value } + } if (isSlotRecipe) { result.Root ||= { props: {} } @@ -212,8 +274,10 @@ function wrapInProps(obj: any, recipeKey: string) { Object.assign(result[key].props, commonProps) } } else { - result[componentName] ||= { props: {} } - Object.assign(result[componentName].props, commonProps) + if (namespaceAliases.size === 0) { + result[componentName] ||= { props: {} } + Object.assign(result[componentName].props, commonProps) + } } return result diff --git a/apps/www/utils/get-recipe-types.ts b/apps/www/utils/get-recipe-types.ts index 8f372d241c1..a8a686cd1d5 100644 --- a/apps/www/utils/get-recipe-types.ts +++ b/apps/www/utils/get-recipe-types.ts @@ -37,6 +37,15 @@ function getColorPaletteType(system: SystemContext) { return toLiteralStringType(Array.from(system.tokens.colorPaletteMap.keys())) } +function usesColorPalette(value: unknown): boolean { + if (typeof value === "string") return /\bcolorPalette\./.test(value) + if (Array.isArray(value)) return value.some(usesColorPalette) + if (value && typeof value === "object") { + return Object.values(value).some(usesColorPalette) + } + return false +} + export function getRecipeTypes(system: SystemContext, key: string) { const result: PropDocRecord = {} @@ -47,7 +56,7 @@ export function getRecipeTypes(system: SystemContext, key: string) { const recipe = _recipe ? system.cva(config) : system.sva(config) - if (Object.keys(recipe.variantMap).length) { + if (Object.keys(recipe.variantMap).length && usesColorPalette(config)) { result["colorPalette"] = { defaultValue: "gray", type: colorPaletteType, diff --git a/package.json b/package.json index f0f48a66a08..c5aca329b79 100644 --- a/package.json +++ b/package.json @@ -14,12 +14,11 @@ "local:revert": "tsx scripts/symlink.ts --revert", "build:tokens": "chakra typegen packages/react/src/preset.ts", "build:tokens-dev": "cross-env LOCAL=1 chakra typegen packages/react/src/preset.ts", - "build:prop-docs": "pnpm typedocs && pnpm --filter=*props-docs build", "build": "pnpm --filter=./packages/* build", "build:fast": "pnpm --filter=./packages/* build:fast", "dev": "pnpm --recursive --parallel --filter=./packages/* dev", "postbuild": "pnpm build:tokens", - "typedocs": "pnpm react typedocs", + "typedocs": "pnpm www generate:types", "typecheck": "tsc --noEmit", "test": "vitest", "react": "pnpm --filter=@chakra-ui/react", From ae3031babc597078baf41a42072e8b3148d3eee4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 May 2026 16:45:15 +0200 Subject: [PATCH 2/2] fix(deps): update eslint to v8.59.4 (#10826) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 280 +++++++++++++++++++++++++++++++++---------------- 2 files changed, 193 insertions(+), 91 deletions(-) diff --git a/package.json b/package.json index c5aca329b79..d469eb7364b 100644 --- a/package.json +++ b/package.json @@ -71,8 +71,8 @@ "@types/node": "24.10.12", "@types/react": "19.2.13", "@types/react-dom": "19.2.3", - "@typescript-eslint/eslint-plugin": "8.59.3", - "@typescript-eslint/parser": "8.59.3", + "@typescript-eslint/eslint-plugin": "8.59.4", + "@typescript-eslint/parser": "8.59.4", "consola": "^3.4.2", "cross-env": "10.1.0", "dotenv": "17.2.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b78c849633..32c7f0aca0c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,11 +95,11 @@ importers: specifier: 19.2.3 version: 19.2.3(@types/react@19.2.13) '@typescript-eslint/eslint-plugin': - specifier: 8.59.3 - version: 8.59.3(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.59.4 + version: 8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: 8.59.3 - version: 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + specifier: 8.59.4 + version: 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) consola: specifier: ^3.4.2 version: 3.4.2 @@ -120,7 +120,7 @@ importers: version: 1.1.7 eslint-plugin-import: specifier: 2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) + version: 2.32.0(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-jsx-a11y: specifier: 6.10.2 version: 6.10.2(eslint@9.39.4(jiti@2.6.1)) @@ -791,7 +791,7 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.35.0 - version: 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^8.0.2 version: 8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1) @@ -912,7 +912,7 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.35.0 - version: 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^8.0.2 version: 8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1) @@ -1034,10 +1034,10 @@ importers: version: 19.2.3(@types/react@19.2.13) '@typescript-eslint/eslint-plugin': specifier: ^8.47.0 - version: 8.59.3(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.47.0 - version: 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) autoprefixer: specifier: ^10.4.22 version: 10.4.22(postcss@8.5.6) @@ -1049,7 +1049,7 @@ importers: version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) + version: 2.32.0(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@9.39.4(jiti@2.6.1)) @@ -1128,7 +1128,7 @@ importers: version: 5.9.3 typescript-eslint: specifier: ^8.35.0 - version: 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + version: 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^8.0.2 version: 8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1) @@ -1153,10 +1153,10 @@ importers: version: 10.3.4(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)) '@storybook/react': specifier: 10.3.4 - version: 10.3.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2) + version: 10.3.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3) '@storybook/react-vite': specifier: 10.3.3 - version: 10.3.3(esbuild@0.27.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.57.1)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)) + version: 10.3.3(esbuild@0.27.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.57.1)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(vite@8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)) '@types/react': specifier: 19.2.13 version: 19.2.13 @@ -5012,6 +5012,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/eslint-plugin@8.59.4': + resolution: {integrity: sha512-PegsU+XfyJJNjd4+u/k6f9yTyp0lEXXiPopUNobZcIAUJFGICFLN+sP0Rb3JehVmiij1Ph0dFGYqODoRo/2+6A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.59.4 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/parser@8.59.3': resolution: {integrity: sha512-HPwA+hVkfcriajbNvTmZv4VRauibay+cWArYUYq7u7W7PmGShMxbPxLvrwDme55a6d5alG3nrYfhyJ/G28XlLg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5019,6 +5027,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/parser@8.59.4': + resolution: {integrity: sha512-zORHqO/tuhxY1zWuTvMUqddRxpiFJ72xVfcNoWpqdLjs6lfPbuQBJuW4pk+49/uBMy7Ssr4bzgjiKmmDB1UbZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/project-service@8.57.1': resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5031,6 +5046,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/project-service@8.59.4': + resolution: {integrity: sha512-Ly00Vu4oAacfDeHp2Zg85ioNG6l8HG+tN1D7J+xTHSxu9y0awYKJ2zH1rFBn8ZSfuGK+7FxK3Cgl3uAz0aZZLg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/scope-manager@8.57.1': resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5039,6 +5060,10 @@ packages: resolution: {integrity: sha512-t2LvZnoEfzKtnPjgeEu41xw5gxq9mQVfYy4OoZ4Vlt0sk3JwxmhCca/AR7DwOiHrjWgjAj6as4AhRLKSDfvZIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.59.4': + resolution: {integrity: sha512-mUeR/3H1WrTAddJrwut8OoPjfauaztMQmRwV5fQTUyNVJCLiUXXe4lGEyYIL2oFDpP7UtgbGJXCt72wT0z2S3Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.57.1': resolution: {integrity: sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5051,6 +5076,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/tsconfig-utils@8.59.4': + resolution: {integrity: sha512-DLCpnKgD4alVxTBSKulK+gU1KCqOgUXfDRDXh2mZgzokQKa/70ax93I2uVO3m/LLvIAtWZIFoiifudmIqAxpMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/type-utils@8.59.3': resolution: {integrity: sha512-g71d8QD8UaiHGvrJwyIS1hCX5r63w6Jll+4VEYhEAHXTDIqX1JgxhTAbEHtKntL9kuc4jRo7/GWw5xfCepSccQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5058,6 +5089,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/type-utils@8.59.4': + resolution: {integrity: sha512-uonTuPAAKr9XaBGqJ3LjYTh72zy5DyGesljO9gtmk/eFW0W1fRHjnwVYKB35Lm8d5Q5CluEW3gPHjTvZTmgrfA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/types@8.57.1': resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5066,6 +5104,10 @@ packages: resolution: {integrity: sha512-ePFoH0g4ludssdRFqqDxQePCxU4WQyRa9+XVwjm7yLn0FKhMeoetC+qBEEI1Eyb1pGSDveTIT09Bvw2WhlGayg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.59.4': + resolution: {integrity: sha512-F1o7WJcCq+bc8dwcO/YsSEOudAH8RDtaOhM6wcAQhcUsFhnWQl81JKy48q1hoxAU0qrzM89+31GYh1515Zde3Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.57.1': resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5078,6 +5120,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/typescript-estree@8.59.4': + resolution: {integrity: sha512-F+RuOmcDXo4+TPdfd/TCLS3m2nw8gE9XXyZLrA3JBfaA5tz9TtdkyD3YJFmPxulyc2cKbEok/CvFE3MgSLWnag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@8.57.1': resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5092,6 +5140,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/utils@8.59.4': + resolution: {integrity: sha512-cYXeNAUsG4lJo5dbc1FcKm+JwIWrj1/UpTORsC6tGMjEZ81DYcvIr9/ueikhMa/Y/gDQYGp+YX9/xQrXje5BJw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/visitor-keys@8.57.1': resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5100,6 +5155,10 @@ packages: resolution: {integrity: sha512-f1UQF7ggd42YiwI5wGrRaPsa+P0CINBlrkLPmGfpq/u/I/oVtecoEIfFR9ag/oa1sLOsRNZ6xehf6qMZhQGBDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.59.4': + resolution: {integrity: sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} deprecated: Potential CWE-502 - Update to 1.3.1 or higher @@ -10424,8 +10483,8 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.8.0: - resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} + semver@7.8.1: + resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} engines: {node: '>=10'} hasBin: true @@ -11172,8 +11231,8 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typescript-eslint@8.59.3: - resolution: {integrity: sha512-KgusgyDgG4LI8Ih/sWaCtZ06tckLAS5CvT5A4D1Q7bYVoAAyzwiZvE4BmwDHkhRVkvhRBepKeASoFzQetha7Fg==} + typescript-eslint@8.59.4: + resolution: {integrity: sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -12554,7 +12613,7 @@ snapshots: '@commitlint/is-ignored@20.4.1': dependencies: '@commitlint/types': 20.4.0 - semver: 7.8.0 + semver: 7.8.1 '@commitlint/lint@20.4.1': dependencies: @@ -13520,14 +13579,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@6.0.2)(vite@8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))': - dependencies: - glob: 13.0.6 - react-docgen-typescript: 2.2.2(typescript@6.0.2) - vite: 8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1) - optionalDependencies: - typescript: 6.0.2 - '@jridgewell/gen-mapping@0.3.12': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -14912,28 +14963,6 @@ snapshots: - typescript - webpack - '@storybook/react-vite@10.3.3(esbuild@0.27.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.57.1)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))': - dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@6.0.2)(vite@8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)) - '@rollup/pluginutils': 5.1.2(rollup@4.57.1) - '@storybook/builder-vite': 10.3.3(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)) - '@storybook/react': 10.3.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2) - empathic: 2.0.0 - magic-string: 0.30.21 - react: 19.2.6 - react-docgen: 8.0.0 - react-dom: 19.2.6(react@19.2.6) - resolve: 1.22.8 - storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - tsconfig-paths: 4.2.0 - vite: 8.0.2(@types/node@24.10.12)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1) - transitivePeerDependencies: - - esbuild - - rollup - - supports-color - - typescript - - webpack - '@storybook/react@10.3.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)': dependencies: '@storybook/global': 5.0.0 @@ -14948,31 +14977,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react@10.3.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)': - dependencies: - '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 10.3.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)) - react: 19.2.6 - react-docgen: 8.0.3 - react-docgen-typescript: 2.2.2(typescript@6.0.2) - react-dom: 19.2.6(react@19.2.6) - storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - optionalDependencies: - typescript: 6.0.2 - transitivePeerDependencies: - - supports-color - - '@storybook/react@10.3.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)': + '@storybook/react@10.3.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)': dependencies: '@storybook/global': 5.0.0 '@storybook/react-dom-shim': 10.3.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)) react: 19.2.6 react-docgen: 8.0.3 - react-docgen-typescript: 2.2.2(typescript@6.0.2) + react-docgen-typescript: 2.2.2(typescript@5.9.3) react-dom: 19.2.6(react@19.2.6) storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.8.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) optionalDependencies: - typescript: 6.0.2 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -15841,6 +15856,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.59.4 + '@typescript-eslint/type-utils': 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.4 + eslint: 9.39.4(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.59.3 @@ -15853,6 +15884,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.59.4 + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/typescript-estree': 8.59.4(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.59.4 + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/project-service@8.57.1(typescript@5.9.3)': dependencies: '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.9.3) @@ -15871,6 +15914,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.59.4(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@5.9.3) + '@typescript-eslint/types': 8.59.4 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@8.57.1': dependencies: '@typescript-eslint/types': 8.57.1 @@ -15881,6 +15933,11 @@ snapshots: '@typescript-eslint/types': 8.59.3 '@typescript-eslint/visitor-keys': 8.59.3 + '@typescript-eslint/scope-manager@8.59.4': + dependencies: + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/visitor-keys': 8.59.4 + '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 @@ -15889,6 +15946,10 @@ snapshots: dependencies: typescript: 5.9.3 + '@typescript-eslint/tsconfig-utils@8.59.4(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + '@typescript-eslint/type-utils@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.59.3 @@ -15901,10 +15962,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/typescript-estree': 8.59.4(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.39.4(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@8.57.1': {} '@typescript-eslint/types@8.59.3': {} + '@typescript-eslint/types@8.59.4': {} + '@typescript-eslint/typescript-estree@8.57.1(typescript@5.9.3)': dependencies: '@typescript-eslint/project-service': 8.57.1(typescript@5.9.3) @@ -15913,7 +15988,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.57.1 debug: 4.4.3 minimatch: 10.2.5 - semver: 7.8.0 + semver: 7.8.1 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -15928,7 +16003,22 @@ snapshots: '@typescript-eslint/visitor-keys': 8.59.3 debug: 4.4.3 minimatch: 10.2.5 - semver: 7.8.0 + semver: 7.8.1 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.59.4(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.59.4(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@5.9.3) + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/visitor-keys': 8.59.4 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.8.1 tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -15957,6 +16047,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.59.4 + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/typescript-estree': 8.59.4(typescript@5.9.3) + eslint: 9.39.4(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@8.57.1': dependencies: '@typescript-eslint/types': 8.57.1 @@ -15967,6 +16068,11 @@ snapshots: '@typescript-eslint/types': 8.59.3 eslint-visitor-keys: 5.0.1 + '@typescript-eslint/visitor-keys@8.59.4': + dependencies: + '@typescript-eslint/types': 8.59.4 + eslint-visitor-keys: 5.0.1 + '@ungap/structured-clone@1.2.0': {} '@unrs/resolver-binding-android-arm-eabi@1.9.2': @@ -18299,7 +18405,7 @@ snapshots: '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.6.1)) @@ -18331,12 +18437,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 4.4.3 enhanced-resolve: 5.17.1 eslint: 9.39.4(jiti@2.6.1) - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.39.4(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.6.1)(eslint@9.39.4(jiti@2.6.1)) fast-glob: 3.3.3 get-tsconfig: 4.14.0 @@ -18359,26 +18465,26 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.9.2 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.6.1)) @@ -18396,7 +18502,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)))(eslint@9.39.4(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.39.4(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -18414,7 +18520,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -18425,7 +18531,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.4(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.4(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -18437,7 +18543,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -22166,10 +22272,6 @@ snapshots: dependencies: typescript: 5.9.3 - react-docgen-typescript@2.2.2(typescript@6.0.2): - dependencies: - typescript: 6.0.2 - react-docgen@8.0.0: dependencies: '@babel/core': 7.29.0 @@ -22881,7 +22983,7 @@ snapshots: semver@7.7.4: {} - semver@7.8.0: {} + semver@7.8.1: {} send@0.19.0: dependencies: @@ -23791,12 +23893,12 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript-eslint@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.59.3(@typescript-eslint/parser@8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.59.3(typescript@5.9.3) - '@typescript-eslint/utils': 8.59.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.59.4(@typescript-eslint/parser@8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.59.4(typescript@5.9.3) + '@typescript-eslint/utils': 8.59.4(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: