Skip to content

Commit 2442f70

Browse files
committed
chore: add-class-names-to-target-popovers
1 parent baa6183 commit 2442f70

File tree

5 files changed

+28
-8
lines changed

5 files changed

+28
-8
lines changed

src/lib/dropdown/cascader/dropdown-container.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ interface IDropdownContainer
1919
"disabledKeys" | "defaultSelectedKey" | "items" | "callback"
2020
> {
2121
isOpen?: boolean;
22+
className?: string;
2223
}
2324

2425
const DropdownContainer: React.FC<IDropdownContainer> = ({
@@ -27,6 +28,7 @@ const DropdownContainer: React.FC<IDropdownContainer> = ({
2728
disabledKeys,
2829
defaultSelectedKey,
2930
callback,
31+
className,
3032
}) => {
3133
const gridRef = useRef<HTMLDivElement>(null);
3234
const [selectedKey, setSelectedKey] = useState<Key | null>(
@@ -78,17 +80,19 @@ const DropdownContainer: React.FC<IDropdownContainer> = ({
7880

7981
return (
8082
<Popover
81-
className={clsx(
83+
className={cn(
8284
"bg-klerosUIComponentsWhiteBackground rounded-base border-klerosUIComponentsStroke box-border border",
8385
"shadow-default focus-visible:outline-klerosUIComponentsPrimaryBlue overflow-hidden",
8486
"w-60 origin-top transform transition lg:w-max lg:max-w-6xl",
8587
isOpen
8688
? "entering:animate-scale-in scale-y-100"
8789
: "exiting:animate-scale-out scale-y-0",
90+
className,
8891
)}
8992
>
9093
<Dialog aria-label="dropdown-dialog">
9194
<Tree
95+
id="dropdown-tree"
9296
ref={gridRef}
9397
autoFocus="first"
9498
items={items}

src/lib/dropdown/cascader/index.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export interface IDropdownCascader extends AriaSelectProps {
1616
/** Callback function passes the Item object as argument. */
1717
callback: (item: IItem) => void;
1818
label?: string;
19+
dropdownClassName?: string;
1920
}
2021

2122
/** A Dropdown Cascader provides users with a way to navigate nested hierarchical information,
@@ -29,6 +30,7 @@ function DropdownCascader({
2930
disabledKeys,
3031
selectedKey,
3132
defaultSelectedKey,
33+
dropdownClassName,
3234
...props
3335
}: Readonly<IDropdownCascader>) {
3436
return (
@@ -56,6 +58,7 @@ function DropdownCascader({
5658
defaultSelectedKey: selectedKey ?? defaultSelectedKey,
5759
disabledKeys,
5860
callback,
61+
className: dropdownClassName,
5962
}}
6063
/>
6164
</>

src/lib/dropdown/select/dropdown-container.tsx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,36 @@ import React from "react";
33
import { Collection, ListBox, Popover } from "react-aria-components";
44
import Scrollbar from "../../scrollbar";
55
import Item, { IItem } from "./item";
6+
import { cn } from "../../../utils";
67

7-
const DropdownContainer: React.FC<{ isOpen?: boolean; items: IItem[] }> = ({
8-
isOpen,
9-
items,
10-
}) => {
8+
const DropdownContainer: React.FC<{
9+
isOpen?: boolean;
10+
items: IItem[];
11+
className?: string;
12+
}> = ({ isOpen, items, className }) => {
1113
return (
1214
<Popover
13-
className={clsx(
15+
className={cn(
1416
"bg-klerosUIComponentsWhiteBackground rounded-base border-klerosUIComponentsStroke border",
1517
"shadow-default focus:outline-klerosUIComponentsPrimaryBlue box-border overflow-hidden outline-none",
1618
"origin-top transform transition",
1719
isOpen
1820
? "entering:animate-scale-in scale-y-100"
1921
: "exiting:animate-scale-out scale-y-0",
22+
className,
2023
)}
2124
>
2225
<Scrollbar className="max-h-87.5 w-59.5">
2326
<ListBox
27+
id="listbox"
2428
className={clsx(
2529
"bg-klerosUIComponentsWhiteBackground box-border w-59.5",
2630
"cols-[repeat(auto-fill,_minmax(0,_45px))] grid grow py-4",
2731
)}
2832
>
29-
<Collection items={items}>{(item) => <Item {...item} />}</Collection>
33+
<Collection items={items}>
34+
{(item) => <Item className="listbox-item" {...item} />}
35+
</Collection>
3036
</ListBox>
3137
</Scrollbar>
3238
</Popover>

src/lib/dropdown/select/index.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ interface SelectProps extends AriaSelectProps {
2121
/** When `simpleButton` is `true`, this scales down the dropdown button size. */
2222
smallButton?: boolean;
2323
label?: string;
24+
dropdownClassName?: string;
2425
}
2526

2627
/** A select displays a collapsible list of options and allows a user to select one of them. */
@@ -32,6 +33,7 @@ function DropdownSelect({
3233
callback,
3334
placeholder,
3435
className,
36+
dropdownClassName,
3537
...props
3638
}: Readonly<SelectProps>) {
3739
const handleSelection = useCallback(
@@ -64,7 +66,9 @@ function DropdownSelect({
6466
<DropdownButton {...{ placeholder }} />
6567
)}
6668
<FieldError className="text-klerosUIComponentsError text-sm" />
67-
<DropdownContainer {...{ isOpen, items }} />
69+
<DropdownContainer
70+
{...{ isOpen, items, className: dropdownClassName }}
71+
/>
6872
</>
6973
)}
7074
</AriaSelect>

src/lib/form/datepicker/index.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ interface DatePickerProps
2525
/** Show time selection if true. */
2626
time?: boolean;
2727
label?: string;
28+
popoverClassName?: string;
2829
}
2930

3031
/** A date picker allow users to enter or select a date and time value. */
@@ -34,6 +35,7 @@ function DatePicker({
3435
minValue,
3536
defaultValue = now(getLocalTimeZone()),
3637
shouldCloseOnSelect = false,
38+
popoverClassName,
3739
...props
3840
}: Readonly<DatePickerProps>) {
3941
return (
@@ -62,6 +64,7 @@ function DatePicker({
6264
"bg-klerosUIComponentsWhiteBackground shadow-default rounded-base overflow-y-scroll",
6365
"border-klerosUIComponentsStroke ease-ease scrollbar border transition",
6466
time ? "w-82.5 lg:w-112.5" : "w-82.5",
67+
popoverClassName,
6568
)}
6669
>
6770
<Dialog className="flex size-full flex-wrap">

0 commit comments

Comments
 (0)