From bf47334fd8fa74ebc05ccf0fbf5b3a762544e2c7 Mon Sep 17 00:00:00 2001 From: Alexander Popoff Date: Wed, 25 Dec 2024 15:28:46 +0200 Subject: [PATCH] Try to fix `SpeedDial.ariaLabel` mismatch with `AriaAttributes` --- buildSrc/src/main/kotlin/karakum/mui/Overrides.kt | 2 +- .../kotlin/mui/base/TablePagination.types.kt | 4 +--- .../src/jsMain/kotlin/mui/base/useButton.types.kt | 5 ++--- .../src/jsMain/kotlin/mui/base/useInput.types.kt | 14 ++++++-------- .../src/jsMain/kotlin/mui/base/useList.types.kt | 5 ++--- .../src/jsMain/kotlin/mui/base/useMenu.types.kt | 8 +++----- .../jsMain/kotlin/mui/base/useMenuButton.types.kt | 7 ++----- .../jsMain/kotlin/mui/base/useMenuItem.types.kt | 6 ++---- .../src/jsMain/kotlin/mui/base/useOption.types.kt | 6 ++---- .../src/jsMain/kotlin/mui/base/useSelect.types.kt | 10 ++++------ .../src/jsMain/kotlin/mui/base/useSlider.types.kt | 5 ++--- .../src/jsMain/kotlin/mui/base/useTab.types.kt | 6 ++---- .../jsMain/kotlin/mui/base/useTabPanel.types.kt | 6 ++---- .../jsMain/kotlin/mui/base/useTabsList.types.kt | 6 ++---- .../src/jsMain/kotlin/mui/material/Pagination.kt | 3 +-- .../src/jsMain/kotlin/mui/material/SpeedDial.kt | 2 +- .../jsMain/kotlin/mui/material/TablePagination.kt | 3 +-- .../src/jsMain/kotlin/mui/material/TextField.kt | 11 +++++------ .../src/jsMain/kotlin/mui/material/ToggleButton.kt | 5 ++--- .../kotlin/mui/material/ToggleButtonGroup.kt | 3 +-- .../jsMain/kotlin/mui/material/TouchRipple.ext.kt | 4 +--- .../kotlin/muix/tree/view/TreeItemContent.kt | 3 +-- 22 files changed, 46 insertions(+), 78 deletions(-) diff --git a/buildSrc/src/main/kotlin/karakum/mui/Overrides.kt b/buildSrc/src/main/kotlin/karakum/mui/Overrides.kt index e5e1100c0..ce3c0514b 100644 --- a/buildSrc/src/main/kotlin/karakum/mui/Overrides.kt +++ b/buildSrc/src/main/kotlin/karakum/mui/Overrides.kt @@ -100,7 +100,7 @@ internal fun fixOverrides( "SpeedDial", -> content - .override("ariaLabel").replace("override var ariaLabel: String", "override var ariaLabel: String?") + .override("ariaLabel").replace("override var ariaLabel: String", "/* override var ariaLabel: String */") .override("hidden") "Tab", diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/TablePagination.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/TablePagination.types.kt index 82cd8df59..6e4882327 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/TablePagination.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/TablePagination.types.kt @@ -2,8 +2,6 @@ package mui.base -import web.html.HTMLElement - external interface TablePaginationProps : TablePaginationOwnProps, react.dom.html.HTMLAttributes @@ -105,7 +103,7 @@ external interface TablePaginationOwnProps : react.Props { * * @param {React.ChangeEvent} event The event source of the callback. */ - var onRowsPerPageChange: react.dom.events.ChangeEventHandler? + var onRowsPerPageChange: react.dom.events.ChangeEventHandler? /** * The zero-based index of the current page. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useButton.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useButton.types.kt index fa93881c0..23425266e 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useButton.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useButton.types.kt @@ -2,7 +2,6 @@ package mui.base -import web.dom.Element import web.html.ButtonType external interface UseButtonParameters { @@ -22,7 +21,7 @@ external interface UseButtonParameters { var onFocusVisible: react.dom.events.FocusEventHandler<*>? - var rootRef: react.Ref? + var rootRef: react.Ref? var tabIndex: Int? @@ -91,5 +90,5 @@ external interface UseButtonReturnValue { /** * A ref to the component's root DOM element. */ - var rootRef: react.RefCallback? + var rootRef: react.RefCallback? } diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useInput.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useInput.types.kt index d04553841..0f96720d0 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useInput.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useInput.types.kt @@ -2,8 +2,6 @@ package mui.base -import web.html.HTMLElement - external interface UseInputParameters { /** * The default value. Use when the component is not controlled. @@ -22,13 +20,13 @@ external interface UseInputParameters { */ var error: Boolean? - var onBlur: react.dom.events.FocusEventHandler? + var onBlur: react.dom.events.FocusEventHandler? var onClick: react.dom.events.MouseEventHandler<*>? - var onChange: react.dom.events.ChangeEventHandler? + var onChange: react.dom.events.ChangeEventHandler? - var onFocus: react.dom.events.FocusEventHandler? + var onFocus: react.dom.events.FocusEventHandler? var inputRef: react.Ref? @@ -52,11 +50,11 @@ external interface UseInputInputSlotOwnProps : react.Props { var value: dynamic - var onBlur: react.dom.events.FocusEventHandler + var onBlur: react.dom.events.FocusEventHandler - var onChange: react.dom.events.ChangeEventHandler + var onChange: react.dom.events.ChangeEventHandler - var onFocus: react.dom.events.FocusEventHandler + var onFocus: react.dom.events.FocusEventHandler var required: Boolean diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useList.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useList.types.kt index 5c155b097..faf667b09 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useList.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useList.types.kt @@ -3,7 +3,6 @@ package mui.base import js.array.ReadonlyArray -import web.dom.Element import web.html.HTMLElement external interface ListState { @@ -80,7 +79,7 @@ external interface UseListParameters? + var rootRef: react.Ref? /** * Callback fired when the selected value changes. @@ -193,7 +192,7 @@ external interface UseListReturnValue { */ var getRootProps: react.Props /* = {}>(externalProps?: ExternalProps) => UseListRootSlotProps */ - var rootRef: react.RefCallback? + var rootRef: react.RefCallback? var state: dynamic } diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useMenu.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useMenu.types.kt index 359664554..2034aa42d 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useMenu.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useMenu.types.kt @@ -3,8 +3,6 @@ package mui.base import js.array.ReadonlyArray -import web.dom.Element -import web.html.HTMLElement external interface UseMenuParameters { /** @@ -40,7 +38,7 @@ external interface UseMenuParameters { /** * The ref to the menu's listbox node. */ - var listboxRef: react.Ref? + var listboxRef: react.Ref? /** * The name of the component using useMenu. @@ -77,7 +75,7 @@ external interface UseMenuReturnValue { /** * The ref to the menu's listbox node. */ - var listboxRef: react.RefCallback? + var listboxRef: react.RefCallback? /** * Items in the menu listbox. @@ -92,5 +90,5 @@ external interface UseMenuReturnValue { /** * An element that triggers the visibility of the menu. */ - var triggerElement: HTMLElement? + var triggerElement: web.html.HTMLElement? } diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useMenuButton.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useMenuButton.types.kt index ff67525da..058e92c6f 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useMenuButton.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useMenuButton.types.kt @@ -2,9 +2,6 @@ package mui.base -import web.dom.Element -import web.html.HTMLElement - external interface UseMenuButtonParameters { /** * If `true`, the component is disabled. @@ -21,7 +18,7 @@ external interface UseMenuButtonParameters { /** * The ref to the root element. */ - var rootRef: react.Ref? + var rootRef: react.Ref? } external interface UseMenuButtonReturnValue { @@ -42,5 +39,5 @@ external interface UseMenuButtonReturnValue { /** * The ref to the root element. */ - var rootRef: react.RefCallback? + var rootRef: react.RefCallback? } diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useMenuItem.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useMenuItem.types.kt index 371762c8d..92f8889d5 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useMenuItem.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useMenuItem.types.kt @@ -2,8 +2,6 @@ package mui.base -import web.dom.Element - external interface MenuItemMetadata { var id: String @@ -21,7 +19,7 @@ external interface UseMenuItemParameters { var onClick: react.dom.events.MouseEventHandler<*>? - var rootRef: react.Ref + var rootRef: react.Ref /** * If `true`, the menu item won't receive focus when the mouse moves over it. @@ -62,7 +60,7 @@ external interface UseMenuItemReturnValue { /** * The ref to the component's root DOM element. */ - var rootRef: react.RefCallback? + var rootRef: react.RefCallback? /** * Total number of items in the menu. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useOption.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useOption.types.kt index 9f5f898c4..a61ed4305 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useOption.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useOption.types.kt @@ -2,8 +2,6 @@ package mui.base -import web.dom.Element - external interface SelectOption { var value: Value @@ -21,7 +19,7 @@ external interface UseOptionParameters { var label: react.ReactNode - var rootRef: react.Ref? + var rootRef: react.Ref? var value: Value } @@ -49,5 +47,5 @@ external interface UseOptionReturnValue { /** * Ref to the root slot DOM node. */ - var rootRef: react.RefCallback? + var rootRef: react.RefCallback? } diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useSelect.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useSelect.types.kt index b8acdffdf..06b21f579 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useSelect.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useSelect.types.kt @@ -2,8 +2,6 @@ package mui.base -import web.dom.Element - external interface SelectOptionDefinition { var value: Value @@ -42,7 +40,7 @@ external interface UseSelectParameters { /** * The ref of the trigger button element. */ - var buttonRef: react.Ref? + var buttonRef: react.Ref? /** * The `id` attribute of the listbox element. @@ -52,7 +50,7 @@ external interface UseSelectParameters { /** * The ref of the listbox element. */ - var listboxRef: react.Ref? + var listboxRef: react.Ref? /** * If `true`, the end user can select multiple values. @@ -145,7 +143,7 @@ external interface UseSelectReturnValue { /** * Ref to the button slot DOM node. */ - var buttonRef: react.RefCallback? + var buttonRef: react.RefCallback? /** * If `true`, the select is disabled. @@ -200,7 +198,7 @@ external interface UseSelectReturnValue { /** * Ref to the listbox slot DOM node. */ - var listboxRef: react.RefCallback? + var listboxRef: react.RefCallback? /** * If `true`, the listbox is open. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useSlider.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useSlider.types.kt index c33fe1fd6..8c7da1646 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useSlider.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useSlider.types.kt @@ -3,7 +3,6 @@ package mui.base import js.array.ReadonlyArray -import web.dom.Element import web.events.Event external interface UseSliderParameters { @@ -90,7 +89,7 @@ external interface UseSliderParameters { /** * The ref attached to the root of the Slider. */ - var rootRef: react.Ref? + var rootRef: react.Ref? /** * A transformation function, to change the scale of the slider. @@ -208,7 +207,7 @@ external interface UseSliderReturnValue { /** * Ref to the root slot's DOM node. */ - var rootRef: react.RefCallback? + var rootRef: react.RefCallback? /** * The track leap for the current value of the slider. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useTab.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useTab.types.kt index c3727c55b..8009dd5a3 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useTab.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useTab.types.kt @@ -2,8 +2,6 @@ package mui.base -import web.dom.Element - external interface UseTabParameters { /** * The value of the tab. @@ -36,7 +34,7 @@ external interface UseTabParameters { /** * Ref to the root slot's DOM element. */ - var rootRef: react.Ref? + var rootRef: react.Ref? } external interface UseTabReturnValue { @@ -71,7 +69,7 @@ external interface UseTabReturnValue { /** * Ref to the root slot's DOM element. */ - var rootRef: react.RefCallback? + var rootRef: react.RefCallback? /** * If `true`, the tab is selected. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useTabPanel.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useTabPanel.types.kt index 2f7dda593..c9853edc0 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useTabPanel.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useTabPanel.types.kt @@ -2,8 +2,6 @@ package mui.base -import web.html.HTMLElement - external interface UseTabPanelParameters { /** * The id of the TabPanel. @@ -13,7 +11,7 @@ external interface UseTabPanelParameters { /** * The ref of the TabPanel. */ - var rootRef: react.Ref? + var rootRef: react.Ref? /** * The value of the TabPanel. It will be shown when the Tab with the corresponding value is selected. @@ -34,5 +32,5 @@ external interface UseTabPanelReturnValue { */ var getRootProps: react.Props /* = {}>(externalProps?: ExternalProps) => UseTabPanelRootSlotProps */ - var rootRef: react.Ref + var rootRef: react.Ref } diff --git a/mui-kotlin/src/jsMain/kotlin/mui/base/useTabsList.types.kt b/mui-kotlin/src/jsMain/kotlin/mui/base/useTabsList.types.kt index c54bcedb5..e065309c3 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/base/useTabsList.types.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/base/useTabsList.types.kt @@ -2,13 +2,11 @@ package mui.base -import web.dom.Element - external interface UseTabsListParameters { /** * Ref to the root element. */ - var rootRef: react.Ref + var rootRef: react.Ref } external interface UseTabsListReturnValue { @@ -45,7 +43,7 @@ external interface UseTabsListReturnValue { */ var orientation: Orientation - var rootRef: react.RefCallback? + var rootRef: react.RefCallback? /** * The value of the currently selected tab. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/material/Pagination.kt b/mui-kotlin/src/jsMain/kotlin/mui/material/Pagination.kt index 378ee277c..2be242c37 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/material/Pagination.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/material/Pagination.kt @@ -6,12 +6,11 @@ package mui.material import mui.material.styles.Theme import mui.system.SxProps -import web.html.HTMLElement external interface PaginationProps : UsePaginationProps, mui.system.StandardProps, - react.dom.html.HTMLAttributes, + react.dom.html.HTMLAttributes, mui.system.PropsWithSx { /** * Override or extend the styles applied to the component. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/material/SpeedDial.kt b/mui-kotlin/src/jsMain/kotlin/mui/material/SpeedDial.kt index 5b912002d..36d7e3764 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/material/SpeedDial.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/material/SpeedDial.kt @@ -26,7 +26,7 @@ external interface SpeedDialProps : * The aria-label of the button element. * Also used to provide the `id` for the `SpeedDial` element and its children. */ - override var ariaLabel: String? + /* override var ariaLabel: String */ /** * The direction the actions open relative to the floating action button. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/material/TablePagination.kt b/mui-kotlin/src/jsMain/kotlin/mui/material/TablePagination.kt index 62eeb00fa..463643247 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/material/TablePagination.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/material/TablePagination.kt @@ -6,7 +6,6 @@ package mui.material import mui.material.styles.Theme import mui.system.SxProps -import web.html.HTMLElement external interface TablePaginationProps : TablePaginationOwnProps, @@ -109,7 +108,7 @@ external interface TablePaginationOwnProps : mui.system.PropsWithSx { * * @param {React.ChangeEvent} event The event source of the callback. */ - var onRowsPerPageChange: react.dom.events.ChangeEventHandler? + var onRowsPerPageChange: react.dom.events.ChangeEventHandler? /** * The zero-based index of the current page. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/material/TextField.kt b/mui-kotlin/src/jsMain/kotlin/mui/material/TextField.kt index 37040cc49..e7b3619bf 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/material/TextField.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/material/TextField.kt @@ -11,7 +11,6 @@ package mui.material import mui.material.styles.Theme import mui.system.SxProps -import web.html.HTMLElement import web.html.InputType typealias TextFieldProps = BaseTextFieldProps @@ -123,9 +122,9 @@ external interface BaseTextFieldProps : */ var name: String? - var onBlur: react.dom.events.FocusEventHandler? + var onBlur: react.dom.events.FocusEventHandler? - var onFocus: react.dom.events.FocusEventHandler? + var onFocus: react.dom.events.FocusEventHandler? /** * The short hint displayed in the `input` before the user enters a value. @@ -194,7 +193,7 @@ external interface StandardTextFieldProps : * @param {object} event The event source of the callback. * You can pull out the new value by accessing `event.target.value` (string). */ - var onChange: react.dom.events.ChangeEventHandler? + var onChange: react.dom.events.ChangeEventHandler? /** * The variant to use. @@ -219,7 +218,7 @@ external interface FilledTextFieldProps : * @param {object} event The event source of the callback. * You can pull out the new value by accessing `event.target.value` (string). */ - var onChange: react.dom.events.ChangeEventHandler? + var onChange: react.dom.events.ChangeEventHandler? /** * The variant to use. @@ -244,7 +243,7 @@ external interface OutlinedTextFieldProps : * @param {object} event The event source of the callback. * You can pull out the new value by accessing `event.target.value` (string). */ - var onChange: react.dom.events.ChangeEventHandler? + var onChange: react.dom.events.ChangeEventHandler? /** * The variant to use. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/material/ToggleButton.kt b/mui-kotlin/src/jsMain/kotlin/mui/material/ToggleButton.kt index ee4f7f681..e29374351 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/material/ToggleButton.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/material/ToggleButton.kt @@ -10,7 +10,6 @@ package mui.material import mui.material.styles.Theme import mui.system.SxProps -import web.html.HTMLElement external interface ToggleButtonProps : ToggleButtonOwnProps, @@ -64,7 +63,7 @@ external interface ToggleButtonOwnProps : * @param {React.MouseEvent} event The event source of the callback. * @param {any} value of the selected button. */ - var onChange: ((event: react.dom.events.MouseEvent, value: Any) -> Unit)? + var onChange: ((event: react.dom.events.MouseEvent, value: Any) -> Unit)? /** * Callback fired when the button is clicked. @@ -72,7 +71,7 @@ external interface ToggleButtonOwnProps : * @param {React.MouseEvent} event The event source of the callback. * @param {any} value of the selected button. */ - var onClick: ((event: react.dom.events.MouseEvent, value: Any) -> Unit)? + var onClick: ((event: react.dom.events.MouseEvent, value: Any) -> Unit)? /** * If `true`, the button is rendered in an active state. diff --git a/mui-kotlin/src/jsMain/kotlin/mui/material/ToggleButtonGroup.kt b/mui-kotlin/src/jsMain/kotlin/mui/material/ToggleButtonGroup.kt index 8bef0c371..60c4b87cd 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/material/ToggleButtonGroup.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/material/ToggleButtonGroup.kt @@ -6,7 +6,6 @@ package mui.material import mui.material.styles.Theme import mui.system.SxProps -import web.html.HTMLElement external interface ToggleButtonGroupProps : mui.system.StandardProps, @@ -57,7 +56,7 @@ external interface ToggleButtonGroupProps : * this is a single value; when false an array of selected values. If no value * is selected and `exclusive` is true the value is null; when false an empty array. */ - var onChange: ((event: react.dom.events.MouseEvent, value: Any) -> Unit)? + var onChange: ((event: react.dom.events.MouseEvent, value: Any) -> Unit)? /** * The component orientation (layout flow direction). diff --git a/mui-kotlin/src/jsMain/kotlin/mui/material/TouchRipple.ext.kt b/mui-kotlin/src/jsMain/kotlin/mui/material/TouchRipple.ext.kt index 41c9047ae..39373e62a 100644 --- a/mui-kotlin/src/jsMain/kotlin/mui/material/TouchRipple.ext.kt +++ b/mui-kotlin/src/jsMain/kotlin/mui/material/TouchRipple.ext.kt @@ -2,8 +2,6 @@ package mui.material -import web.html.HTMLElement - external interface TouchRippleProps : mui.system.StandardProps, - react.dom.html.HTMLAttributes + react.dom.html.HTMLAttributes diff --git a/mui-kotlin/src/jsMain/kotlin/muix/tree/view/TreeItemContent.kt b/mui-kotlin/src/jsMain/kotlin/muix/tree/view/TreeItemContent.kt index 5d8951e2b..c23d59a1f 100644 --- a/mui-kotlin/src/jsMain/kotlin/muix/tree/view/TreeItemContent.kt +++ b/mui-kotlin/src/jsMain/kotlin/muix/tree/view/TreeItemContent.kt @@ -5,10 +5,9 @@ package muix.tree.view import web.cssom.ClassName -import web.html.HTMLElement external interface TreeItemContentProps : - react.dom.html.HTMLAttributes, + react.dom.html.HTMLAttributes, react.PropsWithClassName { override var className: ClassName?