@forte-ui/react 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +240 -0
- package/dist/Accordion-9JunkjgY.js +111 -0
- package/dist/Alert-Cn_WUF3L.js +183 -0
- package/dist/AspectRatio-gSjpTVk-.js +39 -0
- package/dist/Avatar-BuitDluH.js +87 -0
- package/dist/Badge-sArNWMre.js +33 -0
- package/dist/Breadcrumb-Cq7tFtMX.js +170 -0
- package/dist/Button-AiyKnx5I.js +42 -0
- package/dist/ButtonGroup-C-CrwPXP.js +54 -0
- package/dist/Calendar-D7Q-QJ_e.js +503 -0
- package/dist/Checkbox-DfNbmOed.js +56 -0
- package/dist/Collapsible-D8UKiGip.js +86 -0
- package/dist/ColorPicker-B-eCI31W.js +612 -0
- package/dist/Combobox-D-BN-Tvp.js +302 -0
- package/dist/ContextMenu-D81uDaMG.js +44 -0
- package/dist/DatePicker-CfkMsaI-.js +192 -0
- package/dist/Dialog-_n8FpFs5.js +432 -0
- package/dist/Drawer-DKQF3OO7.js +158 -0
- package/dist/Field-FLFEO70D.js +58 -0
- package/dist/Fieldset-CYhh71Qt.js +28 -0
- package/dist/Form-DVPmW9XV.js +17 -0
- package/dist/Input-BgGWhO2q.js +18 -0
- package/dist/InputGroup-DsZyDXNn.js +89 -0
- package/dist/Menu-CKu9xE2h.js +261 -0
- package/dist/Menubar-Dax027Db.js +19 -0
- package/dist/NavList-DGvcIoJm.js +176 -0
- package/dist/NavigationMenu-BayQkUUb.js +209 -0
- package/dist/NumberField-P55SA8T7.js +191 -0
- package/dist/OTPField-CjHvBNSN.js +55 -0
- package/dist/Popover-BXhn2Wwt.js +142 -0
- package/dist/PreviewCard-Dnitrky0.js +99 -0
- package/dist/Progress-BlomDp-X.js +81 -0
- package/dist/ProgressCircle-j6XBl0fk.js +112 -0
- package/dist/Radio-BIcX4INJ.js +37 -0
- package/dist/Resizable-7nJJM97e.js +609 -0
- package/dist/ScrollArea-CBMGJ6hh.js +83 -0
- package/dist/Select-BP-zvdXm.js +237 -0
- package/dist/Separator-DewJBzaJ.js +21 -0
- package/dist/Skeleton-zr6ObCCq.js +79 -0
- package/dist/Slider-Bh8_cti1.js +104 -0
- package/dist/Spinner-BF0uD4hR.js +53 -0
- package/dist/Switch-OBewMMvM.js +39 -0
- package/dist/Tabs-LgkSbPSF.js +132 -0
- package/dist/Textarea-CqZJL41e.js +51 -0
- package/dist/Toast-BWayxAcd.js +304 -0
- package/dist/Toggle-BrhMnkF5.js +45 -0
- package/dist/Toolbar-OmOVCk3i.js +88 -0
- package/dist/Tooltip-CI4chsRw.js +101 -0
- package/dist/clsx-By2n9mTe.js +16 -0
- package/dist/cn.d.ts +8 -0
- package/dist/cn.js +11 -0
- package/dist/components/accordion/Accordion.d.ts +117 -0
- package/dist/components/accordion/Accordion.js +3 -0
- package/dist/components/accordion/index.d.ts +2 -0
- package/dist/components/accordion/index.js +2 -0
- package/dist/components/alert/Alert.d.ts +167 -0
- package/dist/components/alert/Alert.js +3 -0
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/aspect-ratio/AspectRatio.d.ts +128 -0
- package/dist/components/aspect-ratio/AspectRatio.js +3 -0
- package/dist/components/aspect-ratio/index.d.ts +2 -0
- package/dist/components/aspect-ratio/index.js +2 -0
- package/dist/components/avatar/Avatar.d.ts +176 -0
- package/dist/components/avatar/Avatar.js +3 -0
- package/dist/components/avatar/index.d.ts +2 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/badge/Badge.d.ts +117 -0
- package/dist/components/badge/Badge.js +3 -0
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/breadcrumb/Breadcrumb.d.ts +244 -0
- package/dist/components/breadcrumb/Breadcrumb.js +3 -0
- package/dist/components/breadcrumb/index.d.ts +2 -0
- package/dist/components/breadcrumb/index.js +2 -0
- package/dist/components/button/Button.d.ts +73 -0
- package/dist/components/button/Button.js +3 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/index.js +2 -0
- package/dist/components/button-group/ButtonGroup.d.ts +113 -0
- package/dist/components/button-group/ButtonGroup.js +3 -0
- package/dist/components/button-group/index.d.ts +2 -0
- package/dist/components/button-group/index.js +2 -0
- package/dist/components/calendar/Calendar.d.ts +201 -0
- package/dist/components/calendar/Calendar.js +3 -0
- package/dist/components/calendar/index.d.ts +2 -0
- package/dist/components/calendar/index.js +2 -0
- package/dist/components/checkbox/Checkbox.d.ts +130 -0
- package/dist/components/checkbox/Checkbox.js +3 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/collapsible/Collapsible.d.ts +91 -0
- package/dist/components/collapsible/Collapsible.js +3 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/collapsible/index.js +2 -0
- package/dist/components/color-picker/ColorPicker.d.ts +553 -0
- package/dist/components/color-picker/ColorPicker.js +4 -0
- package/dist/components/color-picker/color.d.ts +102 -0
- package/dist/components/color-picker/color.js +249 -0
- package/dist/components/color-picker/index.d.ts +2 -0
- package/dist/components/color-picker/index.js +3 -0
- package/dist/components/combobox/Combobox.d.ts +553 -0
- package/dist/components/combobox/Combobox.js +3 -0
- package/dist/components/combobox/index.d.ts +2 -0
- package/dist/components/combobox/index.js +2 -0
- package/dist/components/context-menu/ContextMenu.d.ts +103 -0
- package/dist/components/context-menu/ContextMenu.js +3 -0
- package/dist/components/context-menu/index.d.ts +3 -0
- package/dist/components/context-menu/index.js +2 -0
- package/dist/components/date-picker/DatePicker.d.ts +268 -0
- package/dist/components/date-picker/DatePicker.js +3 -0
- package/dist/components/date-picker/index.d.ts +2 -0
- package/dist/components/date-picker/index.js +2 -0
- package/dist/components/dialog/Dialog.d.ts +567 -0
- package/dist/components/dialog/Dialog.js +3 -0
- package/dist/components/dialog/index.d.ts +2 -0
- package/dist/components/dialog/index.js +2 -0
- package/dist/components/drawer/Drawer.d.ts +351 -0
- package/dist/components/drawer/Drawer.js +3 -0
- package/dist/components/drawer/index.d.ts +2 -0
- package/dist/components/drawer/index.js +2 -0
- package/dist/components/field/Field.d.ts +170 -0
- package/dist/components/field/Field.js +3 -0
- package/dist/components/field/index.d.ts +2 -0
- package/dist/components/field/index.js +2 -0
- package/dist/components/fieldset/Fieldset.d.ts +60 -0
- package/dist/components/fieldset/Fieldset.js +3 -0
- package/dist/components/fieldset/index.d.ts +2 -0
- package/dist/components/fieldset/index.js +2 -0
- package/dist/components/form/Form.d.ts +76 -0
- package/dist/components/form/Form.js +3 -0
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.js +2 -0
- package/dist/components/input/Input.d.ts +67 -0
- package/dist/components/input/Input.js +3 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/index.js +2 -0
- package/dist/components/input-group/InputGroup.d.ts +214 -0
- package/dist/components/input-group/InputGroup.js +3 -0
- package/dist/components/input-group/index.d.ts +2 -0
- package/dist/components/input-group/index.js +2 -0
- package/dist/components/menu/Menu.d.ts +587 -0
- package/dist/components/menu/Menu.js +3 -0
- package/dist/components/menu/index.d.ts +2 -0
- package/dist/components/menu/index.js +2 -0
- package/dist/components/menubar/Menubar.d.ts +104 -0
- package/dist/components/menubar/Menubar.js +3 -0
- package/dist/components/menubar/index.d.ts +2 -0
- package/dist/components/menubar/index.js +2 -0
- package/dist/components/nav-list/NavList.d.ts +290 -0
- package/dist/components/nav-list/NavList.js +3 -0
- package/dist/components/nav-list/index.d.ts +2 -0
- package/dist/components/nav-list/index.js +2 -0
- package/dist/components/navigation-menu/NavigationMenu.d.ts +483 -0
- package/dist/components/navigation-menu/NavigationMenu.js +3 -0
- package/dist/components/navigation-menu/index.d.ts +2 -0
- package/dist/components/navigation-menu/index.js +2 -0
- package/dist/components/number-field/NumberField.d.ts +303 -0
- package/dist/components/number-field/NumberField.js +3 -0
- package/dist/components/number-field/index.d.ts +2 -0
- package/dist/components/number-field/index.js +2 -0
- package/dist/components/otp-field/OTPField.d.ts +206 -0
- package/dist/components/otp-field/OTPField.js +3 -0
- package/dist/components/otp-field/index.d.ts +2 -0
- package/dist/components/otp-field/index.js +2 -0
- package/dist/components/popover/Popover.d.ts +394 -0
- package/dist/components/popover/Popover.js +3 -0
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/index.js +2 -0
- package/dist/components/preview-card/PreviewCard.d.ts +307 -0
- package/dist/components/preview-card/PreviewCard.js +3 -0
- package/dist/components/preview-card/index.d.ts +2 -0
- package/dist/components/preview-card/index.js +2 -0
- package/dist/components/progress/Progress.d.ts +156 -0
- package/dist/components/progress/Progress.js +3 -0
- package/dist/components/progress/ProgressCircle.d.ts +166 -0
- package/dist/components/progress/ProgressCircle.js +3 -0
- package/dist/components/progress/index.d.ts +4 -0
- package/dist/components/progress/index.js +3 -0
- package/dist/components/radio/Radio.d.ts +144 -0
- package/dist/components/radio/Radio.js +3 -0
- package/dist/components/radio/index.d.ts +2 -0
- package/dist/components/radio/index.js +2 -0
- package/dist/components/resizable/Resizable.d.ts +211 -0
- package/dist/components/resizable/Resizable.js +3 -0
- package/dist/components/resizable/index.d.ts +2 -0
- package/dist/components/resizable/index.js +2 -0
- package/dist/components/scroll-area/ScrollArea.d.ts +113 -0
- package/dist/components/scroll-area/ScrollArea.js +3 -0
- package/dist/components/scroll-area/index.d.ts +2 -0
- package/dist/components/scroll-area/index.js +2 -0
- package/dist/components/select/Select.d.ts +345 -0
- package/dist/components/select/Select.js +3 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/index.js +2 -0
- package/dist/components/separator/Separator.d.ts +75 -0
- package/dist/components/separator/Separator.js +3 -0
- package/dist/components/separator/index.d.ts +2 -0
- package/dist/components/separator/index.js +2 -0
- package/dist/components/skeleton/Skeleton.d.ts +169 -0
- package/dist/components/skeleton/Skeleton.js +3 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/index.js +2 -0
- package/dist/components/slider/Slider.d.ts +208 -0
- package/dist/components/slider/Slider.js +3 -0
- package/dist/components/slider/index.d.ts +2 -0
- package/dist/components/slider/index.js +2 -0
- package/dist/components/spinner/Spinner.d.ts +92 -0
- package/dist/components/spinner/Spinner.js +3 -0
- package/dist/components/spinner/index.d.ts +2 -0
- package/dist/components/spinner/index.js +2 -0
- package/dist/components/switch/Switch.d.ts +80 -0
- package/dist/components/switch/Switch.js +3 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/index.js +2 -0
- package/dist/components/tabs/Tabs.d.ts +125 -0
- package/dist/components/tabs/Tabs.js +3 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/textarea/Textarea.d.ts +119 -0
- package/dist/components/textarea/Textarea.js +3 -0
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/textarea/index.js +2 -0
- package/dist/components/toast/Toast.d.ts +517 -0
- package/dist/components/toast/Toast.js +3 -0
- package/dist/components/toast/index.d.ts +2 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/toggle/Toggle.d.ts +171 -0
- package/dist/components/toggle/Toggle.js +3 -0
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle/index.js +2 -0
- package/dist/components/toolbar/Toolbar.d.ts +318 -0
- package/dist/components/toolbar/Toolbar.js +3 -0
- package/dist/components/toolbar/index.d.ts +2 -0
- package/dist/components/toolbar/index.js +2 -0
- package/dist/components/tooltip/Tooltip.d.ts +361 -0
- package/dist/components/tooltip/Tooltip.js +3 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.js +2 -0
- package/dist/index.d.ts +92 -0
- package/dist/index.js +86 -0
- package/dist/styles/Accordion.css +1 -0
- package/dist/styles/Alert.css +1 -0
- package/dist/styles/AspectRatio.css +1 -0
- package/dist/styles/Avatar.css +1 -0
- package/dist/styles/Badge.css +1 -0
- package/dist/styles/Breadcrumb.css +1 -0
- package/dist/styles/Button.css +1 -0
- package/dist/styles/ButtonGroup.css +1 -0
- package/dist/styles/Calendar.css +1 -0
- package/dist/styles/Checkbox.css +1 -0
- package/dist/styles/Collapsible.css +1 -0
- package/dist/styles/ColorPicker.css +1 -0
- package/dist/styles/Combobox.css +1 -0
- package/dist/styles/ContextMenu.css +1 -0
- package/dist/styles/DatePicker.css +1 -0
- package/dist/styles/Dialog.css +1 -0
- package/dist/styles/Drawer.css +1 -0
- package/dist/styles/Field.css +1 -0
- package/dist/styles/Fieldset.css +1 -0
- package/dist/styles/Form.css +1 -0
- package/dist/styles/Input.css +1 -0
- package/dist/styles/InputGroup.css +1 -0
- package/dist/styles/Menu.css +1 -0
- package/dist/styles/Menubar.css +1 -0
- package/dist/styles/NavList.css +1 -0
- package/dist/styles/NavigationMenu.css +1 -0
- package/dist/styles/NumberField.css +1 -0
- package/dist/styles/OTPField.css +1 -0
- package/dist/styles/Popover.css +1 -0
- package/dist/styles/PreviewCard.css +1 -0
- package/dist/styles/Progress.css +1 -0
- package/dist/styles/ProgressCircle.css +1 -0
- package/dist/styles/Radio.css +1 -0
- package/dist/styles/Resizable.css +1 -0
- package/dist/styles/ScrollArea.css +1 -0
- package/dist/styles/Select.css +1 -0
- package/dist/styles/Separator.css +1 -0
- package/dist/styles/Skeleton.css +1 -0
- package/dist/styles/Slider.css +1 -0
- package/dist/styles/Spinner.css +1 -0
- package/dist/styles/Switch.css +1 -0
- package/dist/styles/Tabs.css +1 -0
- package/dist/styles/Textarea.css +1 -0
- package/dist/styles/Toast.css +1 -0
- package/dist/styles/Toggle.css +1 -0
- package/dist/styles/Toolbar.css +1 -0
- package/dist/styles/Tooltip.css +1 -0
- package/dist/styles/a11y.css +119 -0
- package/dist/styles/layers.css +39 -0
- package/dist/styles/motion.css +194 -0
- package/dist/styles/patterns.css +236 -0
- package/dist/styles/properties.css +62 -0
- package/dist/styles/reset.css +11 -0
- package/dist/styles/tailwind.css +281 -0
- package/dist/styles/theme.css +57 -0
- package/dist/styles/tokens.color.css +223 -0
- package/dist/styles/tokens.css +460 -0
- package/dist/tailwind-merge.d.ts +52 -0
- package/dist/tailwind-merge.js +52 -0
- package/docs-data/props.json +8047 -0
- package/docs-data/theming.json +9600 -0
- package/docs-data/tokens.json +4070 -0
- package/package.json +78 -0
|
@@ -0,0 +1,553 @@
|
|
|
1
|
+
import { Combobox as BaseCombobox } from '@base-ui/react/combobox';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export type ComboboxSize = "sm" | "md" | "lg";
|
|
4
|
+
export type ComboboxVariant = "outline" | "soft" | "ghost";
|
|
5
|
+
/**
|
|
6
|
+
* Props for {@link ComboboxRoot}. A re-export of Base UI's own root props,
|
|
7
|
+
* kept generic so `<Combobox.Root<Country>>` still infers the value type of
|
|
8
|
+
* `onValueChange`, `defaultValue`, `items` and `itemToStringLabel`.
|
|
9
|
+
*/
|
|
10
|
+
export type ComboboxRootProps<Value, Multiple extends boolean | undefined = false> = BaseCombobox.Root.Props<Value, Multiple>;
|
|
11
|
+
/**
|
|
12
|
+
* Groups every part of the combobox and owns its value, input value and open
|
|
13
|
+
* state. Renders no DOM element of its own, so it accepts neither `className`
|
|
14
|
+
* nor `ref`.
|
|
15
|
+
*
|
|
16
|
+
* Both generics are forwarded rather than widened to `any`: `Value` is the
|
|
17
|
+
* type of a single item, and `Multiple` flips the value between `Value` and
|
|
18
|
+
* `Value[]`. Passing `multiple` alone is enough for `Multiple` to infer.
|
|
19
|
+
*
|
|
20
|
+
* One behaviour is added on top of the primitive: a `multiple` combobox never
|
|
21
|
+
* closes because an item was pressed. Base UI closes it only when a filter had
|
|
22
|
+
* been typed and the input lives outside the popup, which makes picking from a
|
|
23
|
+
* short list and picking from a searched list two different gestures — and an
|
|
24
|
+
* async list, where typing is the only way to see anything, closes on every
|
|
25
|
+
* single pick. Keeping it open also keeps the query, so "search once, tick
|
|
26
|
+
* three results" works. A consumer who does want a pick to close can drive
|
|
27
|
+
* `open` themselves and set it from `onValueChange`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function ComboboxRoot<Value, Multiple extends boolean | undefined = false>({ onOpenChange, ...props }: ComboboxRootProps<Value, Multiple>): React.JSX.Element;
|
|
30
|
+
type BaseLabelProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Label>;
|
|
31
|
+
export interface ComboboxLabelProps extends Omit<BaseLabelProps, "className"> {
|
|
32
|
+
/**
|
|
33
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
34
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
35
|
+
*/
|
|
36
|
+
className?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A visible label wired to the combobox **trigger** — Base UI renders a
|
|
40
|
+
* `<div>` and associates it with `aria-labelledby`, so clicking it focuses
|
|
41
|
+
* the trigger without opening the popup. Reach for it in the
|
|
42
|
+
* input-inside-popup pattern, where the trigger is the form control.
|
|
43
|
+
*
|
|
44
|
+
* When `<Combobox.Input>` is the form control (the usual field pattern),
|
|
45
|
+
* label the input instead: a native `<label htmlFor>`, a `<Field.Label>` in
|
|
46
|
+
* the same `<Field.Root>`, or `aria-label` on the input.
|
|
47
|
+
*/
|
|
48
|
+
export declare const ComboboxLabel: React.ForwardRefExoticComponent<ComboboxLabelProps & React.RefAttributes<HTMLDivElement>>;
|
|
49
|
+
type BaseInputGroupProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.InputGroup>;
|
|
50
|
+
export interface ComboboxInputGroupProps extends Omit<BaseInputGroupProps, "className"> {
|
|
51
|
+
/**
|
|
52
|
+
* How much visual weight the field carries. `outline` reads as a form
|
|
53
|
+
* control, `soft` as a filled field, `ghost` as an inline affordance.
|
|
54
|
+
* @default "outline"
|
|
55
|
+
*/
|
|
56
|
+
variant?: ComboboxVariant;
|
|
57
|
+
/**
|
|
58
|
+
* Size of the field. Height, inline padding and font size move together,
|
|
59
|
+
* and the actual numbers follow the ambient `data-forte-density` setting.
|
|
60
|
+
* Matches `Input` and `Select.Trigger`, so the three line up on one row.
|
|
61
|
+
* @default "md"
|
|
62
|
+
*/
|
|
63
|
+
size?: ComboboxSize;
|
|
64
|
+
/**
|
|
65
|
+
* Stretch the field to fill the width of its container.
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
68
|
+
fullWidth?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
71
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
72
|
+
*/
|
|
73
|
+
className?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The field shell: a `<div>` that wraps `<Combobox.Input>` and its associated
|
|
77
|
+
* controls — `<Combobox.Trigger>`, `<Combobox.Clear>`, `<Combobox.Chips>` —
|
|
78
|
+
* and carries all of the control chrome (border, background, sizes,
|
|
79
|
+
* variants), so the input inside stays bare and the buttons sit inside the
|
|
80
|
+
* boundary. Focus lives on the input; the group rings for it via
|
|
81
|
+
* `.forte-focus-ring-within`.
|
|
82
|
+
*/
|
|
83
|
+
export declare const ComboboxInputGroup: React.ForwardRefExoticComponent<ComboboxInputGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
84
|
+
type BaseInputProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Input>;
|
|
85
|
+
export interface ComboboxInputProps extends Omit<BaseInputProps, "className"> {
|
|
86
|
+
/**
|
|
87
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
88
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
89
|
+
*/
|
|
90
|
+
className?: string;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The text input that filters the list. Renders an `<input>`, deliberately
|
|
94
|
+
* bare: the chrome belongs to whichever surface hosts it —
|
|
95
|
+
* `<Combobox.InputGroup>` draws the field boundary in the anchor pattern, and
|
|
96
|
+
* `<Combobox.Popup>` draws it as a search row when the input sits inside the
|
|
97
|
+
* popup. An input rendered outside both gets no boundary at all.
|
|
98
|
+
*/
|
|
99
|
+
export declare const ComboboxInput: React.ForwardRefExoticComponent<ComboboxInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
100
|
+
type BaseTriggerProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Trigger>;
|
|
101
|
+
export interface ComboboxTriggerProps extends Omit<BaseTriggerProps, "className"> {
|
|
102
|
+
/**
|
|
103
|
+
* How much visual weight the trigger carries. Only in play when the trigger
|
|
104
|
+
* stands alone (the input-inside-popup pattern); inside an
|
|
105
|
+
* `<Combobox.InputGroup>` the group owns the chrome and the trigger is a
|
|
106
|
+
* plain icon button.
|
|
107
|
+
* @default "outline"
|
|
108
|
+
*/
|
|
109
|
+
variant?: ComboboxVariant;
|
|
110
|
+
/**
|
|
111
|
+
* Size of the standalone trigger. Ignored inside an
|
|
112
|
+
* `<Combobox.InputGroup>`, where the group's `size` decides.
|
|
113
|
+
* @default "md"
|
|
114
|
+
*/
|
|
115
|
+
size?: ComboboxSize;
|
|
116
|
+
/**
|
|
117
|
+
* Stretch the standalone trigger to fill the width of its container.
|
|
118
|
+
* @default false
|
|
119
|
+
*/
|
|
120
|
+
fullWidth?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Contents of the trigger. Defaults to a caret pair, the right children for
|
|
123
|
+
* the icon-button form inside an `<Combobox.InputGroup>` — an icon-only
|
|
124
|
+
* trigger still needs an `aria-label`. In the input-inside-popup pattern
|
|
125
|
+
* pass `<Combobox.Value>` and `<Combobox.Icon>` instead, and name the
|
|
126
|
+
* control with a `<Combobox.Label>`.
|
|
127
|
+
*/
|
|
128
|
+
children?: React.ReactNode;
|
|
129
|
+
/**
|
|
130
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
131
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
132
|
+
*/
|
|
133
|
+
className?: string;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* A button that opens the popup. Renders a native `<button>`, in one of two
|
|
137
|
+
* shapes decided by where it sits: inside an `<Combobox.InputGroup>` it is a
|
|
138
|
+
* compact icon button at the end of the field; standing alone it is a
|
|
139
|
+
* select-like trigger that holds `<Combobox.Value>` and `<Combobox.Icon>`
|
|
140
|
+
* while the input waits inside the popup.
|
|
141
|
+
*/
|
|
142
|
+
export declare const ComboboxTrigger: React.ForwardRefExoticComponent<ComboboxTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
143
|
+
type BaseValueProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Value>;
|
|
144
|
+
export interface ComboboxValueProps extends BaseValueProps {
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The current value, for display inside a standalone `<Combobox.Trigger>`.
|
|
148
|
+
* Renders no DOM element of its own — pass a function as `children` to
|
|
149
|
+
* format the value, or `placeholder` for the empty state. The trigger carries
|
|
150
|
+
* `data-placeholder` while there is no value, which is what the muted
|
|
151
|
+
* placeholder colour keys off.
|
|
152
|
+
*/
|
|
153
|
+
export declare function ComboboxValue(props: ComboboxValueProps): React.JSX.Element;
|
|
154
|
+
type BaseIconProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Icon>;
|
|
155
|
+
export interface ComboboxIconProps extends Omit<BaseIconProps, "className"> {
|
|
156
|
+
/**
|
|
157
|
+
* Icon to render. Defaults to a caret pair whose halves spread apart while
|
|
158
|
+
* the popup is open.
|
|
159
|
+
* @default <CaretUpDownIcon />
|
|
160
|
+
*/
|
|
161
|
+
children?: React.ReactNode;
|
|
162
|
+
/**
|
|
163
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
164
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
165
|
+
*/
|
|
166
|
+
className?: string;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* The affordance that marks a standalone trigger as openable. Renders a
|
|
170
|
+
* `<span>`. Purely decorative — the trigger's own role and `aria-expanded`
|
|
171
|
+
* are what reach assistive technology.
|
|
172
|
+
*/
|
|
173
|
+
export declare const ComboboxIcon: React.ForwardRefExoticComponent<ComboboxIconProps & React.RefAttributes<HTMLSpanElement>>;
|
|
174
|
+
type BaseClearProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Clear>;
|
|
175
|
+
export interface ComboboxClearProps extends Omit<BaseClearProps, "className"> {
|
|
176
|
+
/**
|
|
177
|
+
* Contents of the button. Defaults to an X glyph; the button is icon-only
|
|
178
|
+
* either way, so it still needs an `aria-label`.
|
|
179
|
+
* @default <XIcon />
|
|
180
|
+
*/
|
|
181
|
+
children?: React.ReactNode;
|
|
182
|
+
/**
|
|
183
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
184
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
185
|
+
*/
|
|
186
|
+
className?: string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* A button that clears the value. Renders a native `<button>` that Base UI
|
|
190
|
+
* only mounts while there is something to clear (`keepMounted` opts out), so
|
|
191
|
+
* an empty field never shows a dead control.
|
|
192
|
+
*/
|
|
193
|
+
export declare const ComboboxClear: React.ForwardRefExoticComponent<ComboboxClearProps & React.RefAttributes<HTMLButtonElement>>;
|
|
194
|
+
type BaseChipsProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Chips>;
|
|
195
|
+
export interface ComboboxChipsProps extends Omit<BaseChipsProps, "className"> {
|
|
196
|
+
/**
|
|
197
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
198
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
199
|
+
*/
|
|
200
|
+
className?: string;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* The container for the selection chips of a `multiple` combobox. Renders a
|
|
204
|
+
* `<div>` inside `<Combobox.InputGroup>`; render the chips through
|
|
205
|
+
* `<Combobox.Value>`'s function child and finish with `<Combobox.Input>`, so
|
|
206
|
+
* the input wraps onto the same line as the last chip.
|
|
207
|
+
*/
|
|
208
|
+
export declare const ComboboxChips: React.ForwardRefExoticComponent<ComboboxChipsProps & React.RefAttributes<HTMLDivElement>>;
|
|
209
|
+
type BaseChipProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Chip>;
|
|
210
|
+
export interface ComboboxChipProps extends Omit<BaseChipProps, "className"> {
|
|
211
|
+
/**
|
|
212
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
213
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
214
|
+
*/
|
|
215
|
+
className?: string;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* One selected value of a `multiple` combobox. Renders a `<div>`; put a
|
|
219
|
+
* `<Combobox.ChipRemove>` inside it so the selection can be removed by
|
|
220
|
+
* pointer as well as by keyboard (Backspace in the empty input already
|
|
221
|
+
* removes the last chip). `data-highlighted` marks the chip keyboard
|
|
222
|
+
* navigation has reached.
|
|
223
|
+
*/
|
|
224
|
+
export declare const ComboboxChip: React.ForwardRefExoticComponent<ComboboxChipProps & React.RefAttributes<HTMLDivElement>>;
|
|
225
|
+
type BaseChipRemoveProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.ChipRemove>;
|
|
226
|
+
export interface ComboboxChipRemoveProps extends Omit<BaseChipRemoveProps, "className"> {
|
|
227
|
+
/**
|
|
228
|
+
* Contents of the button. Defaults to an X glyph; give the button an
|
|
229
|
+
* `aria-label` naming the value it removes.
|
|
230
|
+
* @default <XIcon />
|
|
231
|
+
*/
|
|
232
|
+
children?: React.ReactNode;
|
|
233
|
+
/**
|
|
234
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
235
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
236
|
+
*/
|
|
237
|
+
className?: string;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* A button that removes its chip's value from the selection. Renders a
|
|
241
|
+
* native `<button>`.
|
|
242
|
+
*/
|
|
243
|
+
export declare const ComboboxChipRemove: React.ForwardRefExoticComponent<ComboboxChipRemoveProps & React.RefAttributes<HTMLButtonElement>>;
|
|
244
|
+
type BasePopupProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Popup>;
|
|
245
|
+
type BasePositionerProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Positioner>;
|
|
246
|
+
type BasePortalProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Portal>;
|
|
247
|
+
export interface ComboboxPopupProps extends Omit<BasePopupProps, "className"> {
|
|
248
|
+
/**
|
|
249
|
+
* The popup's contents — typically `<Combobox.Empty>` followed by
|
|
250
|
+
* `<Combobox.List>`, plus `<Combobox.Status>` for async lists or an
|
|
251
|
+
* `<Combobox.Input>` first for the input-inside-popup pattern.
|
|
252
|
+
*/
|
|
253
|
+
children?: React.ReactNode;
|
|
254
|
+
/**
|
|
255
|
+
* Which side of the anchor the popup opens on.
|
|
256
|
+
* @default "bottom"
|
|
257
|
+
*/
|
|
258
|
+
side?: BasePositionerProps["side"];
|
|
259
|
+
/**
|
|
260
|
+
* How the popup aligns along the chosen side.
|
|
261
|
+
* @default "start"
|
|
262
|
+
*/
|
|
263
|
+
align?: BasePositionerProps["align"];
|
|
264
|
+
/**
|
|
265
|
+
* Gap in pixels between the anchor and the popup. The default clears the
|
|
266
|
+
* focus ring rather than sitting flush against it: unlike `Select`, focus
|
|
267
|
+
* stays on the field while the popup is open, so the group's two-tone ring
|
|
268
|
+
* (`--forte-focus-ring-offset` + `--forte-focus-ring-width`, 4px together) is
|
|
269
|
+
* painted in exactly the gap this measures.
|
|
270
|
+
* @default 8
|
|
271
|
+
*/
|
|
272
|
+
sideOffset?: BasePositionerProps["sideOffset"];
|
|
273
|
+
/**
|
|
274
|
+
* Extra offset in pixels along the alignment axis.
|
|
275
|
+
* @default 0
|
|
276
|
+
*/
|
|
277
|
+
alignOffset?: BasePositionerProps["alignOffset"];
|
|
278
|
+
/**
|
|
279
|
+
* Space to keep between the popup and the edge of its collision boundary.
|
|
280
|
+
* @default 5
|
|
281
|
+
*/
|
|
282
|
+
collisionPadding?: BasePositionerProps["collisionPadding"];
|
|
283
|
+
/**
|
|
284
|
+
* Render the popup into a different container instead of `<body>`.
|
|
285
|
+
*/
|
|
286
|
+
container?: BasePortalProps["container"];
|
|
287
|
+
/**
|
|
288
|
+
* Render a dimming layer behind the popup. Off by default — a combobox
|
|
289
|
+
* popup is a listbox, not a dialog.
|
|
290
|
+
* @default false
|
|
291
|
+
*/
|
|
292
|
+
backdrop?: boolean;
|
|
293
|
+
/**
|
|
294
|
+
* Additional class name(s) for the popup surface. Applied after the
|
|
295
|
+
* internal styles so consumer utilities win without needing `!important`.
|
|
296
|
+
*/
|
|
297
|
+
className?: string;
|
|
298
|
+
/**
|
|
299
|
+
* Additional class name(s) for the positioner — the absolutely positioned
|
|
300
|
+
* wrapper around the popup. Use this to reach `--forte-combobox-z-index`, the
|
|
301
|
+
* only knob declared on the positioner.
|
|
302
|
+
*/
|
|
303
|
+
positionerClassName?: string;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* The floating surface holding the list.
|
|
307
|
+
*
|
|
308
|
+
* This one part renders the floating half of Base UI's anatomy — `Portal` →
|
|
309
|
+
* (`Backdrop`) → `Positioner` → `Popup` — and hands you the inside: unlike
|
|
310
|
+
* `Select.Popup` it does NOT wrap its children in a list, because what sits
|
|
311
|
+
* next to the list is the point of a combobox — `<Combobox.Empty>`,
|
|
312
|
+
* `<Combobox.Status>`, or the input itself in the input-inside-popup pattern.
|
|
313
|
+
*/
|
|
314
|
+
export declare const ComboboxPopup: React.ForwardRefExoticComponent<ComboboxPopupProps & React.RefAttributes<HTMLDivElement>>;
|
|
315
|
+
type BaseListProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.List>;
|
|
316
|
+
export interface ComboboxListProps extends Omit<BaseListProps, "className"> {
|
|
317
|
+
/**
|
|
318
|
+
* The items, groups and separators — or a function `(item, index) =>
|
|
319
|
+
* ReactNode` that renders each item Base UI's filtering lets through. The
|
|
320
|
+
* function form is what keeps the list in sync with the query; it requires
|
|
321
|
+
* `items` on `<Combobox.Root>`.
|
|
322
|
+
*/
|
|
323
|
+
children?: BaseListProps["children"];
|
|
324
|
+
/**
|
|
325
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
326
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
327
|
+
*/
|
|
328
|
+
className?: string;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* The scrolling container for the items. Renders a `<div>`; scrolling lives
|
|
332
|
+
* here rather than on the popup so a sibling input or status row stays put
|
|
333
|
+
* while the items scroll under it.
|
|
334
|
+
*/
|
|
335
|
+
export declare const ComboboxList: React.ForwardRefExoticComponent<ComboboxListProps & React.RefAttributes<HTMLDivElement>>;
|
|
336
|
+
type BaseEmptyProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Empty>;
|
|
337
|
+
export interface ComboboxEmptyProps extends Omit<BaseEmptyProps, "className"> {
|
|
338
|
+
/**
|
|
339
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
340
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
341
|
+
*/
|
|
342
|
+
className?: string;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Shows its children only while the filtered list is empty, and announces the
|
|
346
|
+
* change politely to screen readers. Requires `items` on `<Combobox.Root>`.
|
|
347
|
+
* The element itself must stay mounted for the announcement to be reliable —
|
|
348
|
+
* Base UI keeps it in the DOM and this component collapses it to nothing
|
|
349
|
+
* while it has no content, so render it unconditionally.
|
|
350
|
+
*/
|
|
351
|
+
export declare const ComboboxEmpty: React.ForwardRefExoticComponent<ComboboxEmptyProps & React.RefAttributes<HTMLDivElement>>;
|
|
352
|
+
type BaseStatusProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Status>;
|
|
353
|
+
export interface ComboboxStatusProps extends Omit<BaseStatusProps, "className"> {
|
|
354
|
+
/**
|
|
355
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
356
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
357
|
+
*/
|
|
358
|
+
className?: string;
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* A status row announced politely to screen readers when its content changes
|
|
362
|
+
* — "Searching…", an error, a hint. Like `<Combobox.Empty>` it must stay
|
|
363
|
+
* mounted to announce reliably: swap its children rather than the element,
|
|
364
|
+
* and it collapses to nothing while it has none.
|
|
365
|
+
*/
|
|
366
|
+
export declare const ComboboxStatus: React.ForwardRefExoticComponent<ComboboxStatusProps & React.RefAttributes<HTMLDivElement>>;
|
|
367
|
+
type BaseItemProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Item>;
|
|
368
|
+
export interface ComboboxItemProps extends Omit<BaseItemProps, "className"> {
|
|
369
|
+
/**
|
|
370
|
+
* The item's label. Rendered next to the indicator column; give the item a
|
|
371
|
+
* plain-text `aria-label` if this is not text.
|
|
372
|
+
*/
|
|
373
|
+
children?: React.ReactNode;
|
|
374
|
+
/**
|
|
375
|
+
* The value this item selects. Objects are matched by `Object.is` unless
|
|
376
|
+
* `<Combobox.Root>` is given `isItemEqualToValue`; a `{ value, label }`
|
|
377
|
+
* shape displays its `label` in the input automatically.
|
|
378
|
+
* @default null
|
|
379
|
+
*/
|
|
380
|
+
value?: unknown;
|
|
381
|
+
/**
|
|
382
|
+
* Whether the item ignores user interaction. Disabled items stay in the
|
|
383
|
+
* list and stay announced.
|
|
384
|
+
* @default false
|
|
385
|
+
*/
|
|
386
|
+
disabled?: boolean;
|
|
387
|
+
/**
|
|
388
|
+
* What marks the item as selected. Rendered inside
|
|
389
|
+
* `<Combobox.ItemIndicator>`, which only mounts while the item is selected.
|
|
390
|
+
* @default <CheckIcon />
|
|
391
|
+
*/
|
|
392
|
+
indicator?: React.ReactNode;
|
|
393
|
+
/**
|
|
394
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
395
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
396
|
+
*/
|
|
397
|
+
className?: string;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* One option in the list. Renders a `<div>` with `role="option"`.
|
|
401
|
+
*
|
|
402
|
+
* `data-highlighted` is the focus analogue: DOM focus stays on the input
|
|
403
|
+
* while arrow keys and pointer hover move the highlight between items.
|
|
404
|
+
* Because the list is a clipping scroll container, the focus ring is applied
|
|
405
|
+
* inset via `data-focus-inset` so `overflow` cannot crop it.
|
|
406
|
+
*/
|
|
407
|
+
export declare const ComboboxItem: React.ForwardRefExoticComponent<ComboboxItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
408
|
+
type BaseGroupProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Group>;
|
|
409
|
+
export interface ComboboxGroupProps extends Omit<BaseGroupProps, "className"> {
|
|
410
|
+
/**
|
|
411
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
412
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
413
|
+
*/
|
|
414
|
+
className?: string;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Groups related items under a heading. Renders a `<div>` with
|
|
418
|
+
* `role="group"`, associated with the `<Combobox.GroupLabel>` inside it. Pass
|
|
419
|
+
* the group's `items` here and render them with `<Combobox.Collection>` so
|
|
420
|
+
* filtering stays aware of the grouping.
|
|
421
|
+
*/
|
|
422
|
+
export declare const ComboboxGroup: React.ForwardRefExoticComponent<ComboboxGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
423
|
+
type BaseGroupLabelProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.GroupLabel>;
|
|
424
|
+
export interface ComboboxGroupLabelProps extends Omit<BaseGroupLabelProps, "className"> {
|
|
425
|
+
/**
|
|
426
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
427
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
428
|
+
*/
|
|
429
|
+
className?: string;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* The heading for a `<Combobox.Group>`. Renders a `<div>`, set at the list's
|
|
433
|
+
* own text edge — outdented from the items it heads, and uppercased and
|
|
434
|
+
* tracked — so it reads a level up from them rather than as one more row.
|
|
435
|
+
*/
|
|
436
|
+
export declare const ComboboxGroupLabel: React.ForwardRefExoticComponent<ComboboxGroupLabelProps & React.RefAttributes<HTMLDivElement>>;
|
|
437
|
+
type BaseSeparatorProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Separator>;
|
|
438
|
+
export interface ComboboxSeparatorProps extends Omit<BaseSeparatorProps, "className"> {
|
|
439
|
+
/**
|
|
440
|
+
* Orientation of the rule. A combobox list is vertical, so the separator
|
|
441
|
+
* between two groups runs horizontally.
|
|
442
|
+
* @default "horizontal"
|
|
443
|
+
*/
|
|
444
|
+
orientation?: BaseSeparatorProps["orientation"];
|
|
445
|
+
/**
|
|
446
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
447
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
448
|
+
*/
|
|
449
|
+
className?: string;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* A divider between groups of items. Renders a `<div>` with
|
|
453
|
+
* `role="separator"`, so it is exposed to assistive technology rather than
|
|
454
|
+
* being a purely visual line.
|
|
455
|
+
*/
|
|
456
|
+
export declare const ComboboxSeparator: React.ForwardRefExoticComponent<ComboboxSeparatorProps & React.RefAttributes<HTMLDivElement>>;
|
|
457
|
+
type BaseRowProps = React.ComponentPropsWithoutRef<typeof BaseCombobox.Row>;
|
|
458
|
+
export interface ComboboxRowProps extends Omit<BaseRowProps, "className"> {
|
|
459
|
+
/**
|
|
460
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
461
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
462
|
+
*/
|
|
463
|
+
className?: string;
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* One row of items when the list is a grid (`grid` on `<Combobox.Root>`),
|
|
467
|
+
* where arrow keys navigate across rows and columns. Renders a `<div>`.
|
|
468
|
+
*/
|
|
469
|
+
export declare const ComboboxRow: React.ForwardRefExoticComponent<ComboboxRowProps & React.RefAttributes<HTMLDivElement>>;
|
|
470
|
+
/**
|
|
471
|
+
* Renders the filtered items of the nearest `<Combobox.Group>` (or of the
|
|
472
|
+
* root, inside a grid `<Combobox.Row>`) through a function child. Renders no
|
|
473
|
+
* DOM element of its own — a flat list can pass the function straight to
|
|
474
|
+
* `<Combobox.List>` instead. A direct re-export of Base UI's part.
|
|
475
|
+
*/
|
|
476
|
+
export declare const ComboboxCollection: typeof BaseCombobox.Collection;
|
|
477
|
+
/**
|
|
478
|
+
* `Intl.Collator`-backed matchers (`contains`, `startsWith`, `endsWith`) for
|
|
479
|
+
* filtering externally — pass the result into `filter` on `<Combobox.Root>`,
|
|
480
|
+
* or use one inside your own search. A direct re-export of Base UI's
|
|
481
|
+
* `Combobox.useFilter`.
|
|
482
|
+
*/
|
|
483
|
+
export declare const useComboboxFilter: typeof BaseCombobox.useFilter;
|
|
484
|
+
/**
|
|
485
|
+
* Returns the items the combobox is currently showing after its internal
|
|
486
|
+
* filtering — the hook a virtualizer measures. Must be called from a
|
|
487
|
+
* component rendered inside `<Combobox.Root>`. A direct re-export of Base
|
|
488
|
+
* UI's `Combobox.useFilteredItems`.
|
|
489
|
+
*/
|
|
490
|
+
export declare const useComboboxFilteredItems: typeof BaseCombobox.useFilteredItems;
|
|
491
|
+
/**
|
|
492
|
+
* A combobox built on Base UI's unstyled `Combobox` primitives: an input
|
|
493
|
+
* combined with a filterable list of predefined options. Prefer it over
|
|
494
|
+
* `Select` when the list is long enough to need typing; prefer `Select` when
|
|
495
|
+
* there is no input at all.
|
|
496
|
+
*
|
|
497
|
+
* ```tsx
|
|
498
|
+
* <Combobox.Root items={fruits}>
|
|
499
|
+
* <Combobox.InputGroup>
|
|
500
|
+
* <Combobox.Input placeholder="e.g. Apple" aria-label="Fruit" />
|
|
501
|
+
* <Combobox.Clear aria-label="Clear selection" />
|
|
502
|
+
* <Combobox.Trigger aria-label="Open popup" />
|
|
503
|
+
* </Combobox.InputGroup>
|
|
504
|
+
* <Combobox.Popup>
|
|
505
|
+
* <Combobox.Empty>No fruits found.</Combobox.Empty>
|
|
506
|
+
* <Combobox.List>
|
|
507
|
+
* {(fruit: string) => (
|
|
508
|
+
* <Combobox.Item key={fruit} value={fruit}>
|
|
509
|
+
* {fruit}
|
|
510
|
+
* </Combobox.Item>
|
|
511
|
+
* )}
|
|
512
|
+
* </Combobox.List>
|
|
513
|
+
* </Combobox.Popup>
|
|
514
|
+
* </Combobox.Root>
|
|
515
|
+
* ```
|
|
516
|
+
*
|
|
517
|
+
* Styling is driven entirely by `data-*` attributes and `--forte-combobox-*`
|
|
518
|
+
* custom properties, so it can be re-skinned from plain CSS or targeted with
|
|
519
|
+
* Tailwind arbitrary variants (`data-[highlighted]:...`) without wrapping.
|
|
520
|
+
* Each part declares its own knobs, so an ancestor's value is only inherited
|
|
521
|
+
* and loses — set them on the part itself via `className`. The popup is also
|
|
522
|
+
* portalled to `<body>`, so an ancestor of the input could not reach it in
|
|
523
|
+
* any case; `positionerClassName` reaches `--forte-combobox-z-index`. The
|
|
524
|
+
* global `--forte-color-*` / `--forte-control-*` / `--forte-radius-*` /
|
|
525
|
+
* `--forte-space-*` tokens these resolve to ARE inherited, so re-pointing those
|
|
526
|
+
* from `:root` or a theme scope moves every combobox at once.
|
|
527
|
+
*/
|
|
528
|
+
export declare const Combobox: {
|
|
529
|
+
Root: typeof ComboboxRoot;
|
|
530
|
+
Label: React.ForwardRefExoticComponent<ComboboxLabelProps & React.RefAttributes<HTMLDivElement>>;
|
|
531
|
+
InputGroup: React.ForwardRefExoticComponent<ComboboxInputGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
532
|
+
Input: React.ForwardRefExoticComponent<ComboboxInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
533
|
+
Trigger: React.ForwardRefExoticComponent<ComboboxTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
534
|
+
Value: typeof ComboboxValue;
|
|
535
|
+
Icon: React.ForwardRefExoticComponent<ComboboxIconProps & React.RefAttributes<HTMLSpanElement>>;
|
|
536
|
+
Clear: React.ForwardRefExoticComponent<ComboboxClearProps & React.RefAttributes<HTMLButtonElement>>;
|
|
537
|
+
Chips: React.ForwardRefExoticComponent<ComboboxChipsProps & React.RefAttributes<HTMLDivElement>>;
|
|
538
|
+
Chip: React.ForwardRefExoticComponent<ComboboxChipProps & React.RefAttributes<HTMLDivElement>>;
|
|
539
|
+
ChipRemove: React.ForwardRefExoticComponent<ComboboxChipRemoveProps & React.RefAttributes<HTMLButtonElement>>;
|
|
540
|
+
Popup: React.ForwardRefExoticComponent<ComboboxPopupProps & React.RefAttributes<HTMLDivElement>>;
|
|
541
|
+
List: React.ForwardRefExoticComponent<ComboboxListProps & React.RefAttributes<HTMLDivElement>>;
|
|
542
|
+
Empty: React.ForwardRefExoticComponent<ComboboxEmptyProps & React.RefAttributes<HTMLDivElement>>;
|
|
543
|
+
Status: React.ForwardRefExoticComponent<ComboboxStatusProps & React.RefAttributes<HTMLDivElement>>;
|
|
544
|
+
Item: React.ForwardRefExoticComponent<ComboboxItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
545
|
+
Group: React.ForwardRefExoticComponent<ComboboxGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
546
|
+
GroupLabel: React.ForwardRefExoticComponent<ComboboxGroupLabelProps & React.RefAttributes<HTMLDivElement>>;
|
|
547
|
+
Separator: React.ForwardRefExoticComponent<ComboboxSeparatorProps & React.RefAttributes<HTMLDivElement>>;
|
|
548
|
+
Row: React.ForwardRefExoticComponent<ComboboxRowProps & React.RefAttributes<HTMLDivElement>>;
|
|
549
|
+
Collection: typeof BaseCombobox.Collection;
|
|
550
|
+
useFilter: typeof BaseCombobox.useFilter;
|
|
551
|
+
useFilteredItems: typeof BaseCombobox.useFilteredItems;
|
|
552
|
+
};
|
|
553
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, w as x, x as S, y as C } from "../../Combobox-D-BN-Tvp.js";
|
|
3
|
+
export { v as Combobox, p as ComboboxChip, g as ComboboxChipRemove, u as ComboboxChips, r as ComboboxClear, m as ComboboxCollection, _ as ComboboxEmpty, a as ComboboxGroup, d as ComboboxGroupLabel, y as ComboboxIcon, o as ComboboxInput, s as ComboboxInputGroup, h as ComboboxItem, f as ComboboxLabel, l as ComboboxList, c as ComboboxPopup, n as ComboboxRoot, b as ComboboxRow, C as ComboboxSeparator, i as ComboboxStatus, S as ComboboxTrigger, t as ComboboxValue, e as useComboboxFilter, x as useComboboxFilteredItems };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { Combobox, ComboboxRoot, ComboboxLabel, ComboboxInputGroup, ComboboxInput, ComboboxTrigger, ComboboxValue, ComboboxIcon, ComboboxClear, ComboboxChips, ComboboxChip, ComboboxChipRemove, ComboboxPopup, ComboboxList, ComboboxEmpty, ComboboxStatus, ComboboxItem, ComboboxGroup, ComboboxGroupLabel, ComboboxSeparator, ComboboxRow, ComboboxCollection, useComboboxFilter, useComboboxFilteredItems, } from './Combobox';
|
|
2
|
+
export type { ComboboxRootProps, ComboboxLabelProps, ComboboxInputGroupProps, ComboboxInputProps, ComboboxTriggerProps, ComboboxValueProps, ComboboxIconProps, ComboboxClearProps, ComboboxChipsProps, ComboboxChipProps, ComboboxChipRemoveProps, ComboboxPopupProps, ComboboxListProps, ComboboxEmptyProps, ComboboxStatusProps, ComboboxItemProps, ComboboxGroupProps, ComboboxGroupLabelProps, ComboboxSeparatorProps, ComboboxRowProps, ComboboxSize, ComboboxVariant, } from './Combobox';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { C as e, S as t, _ as n, a as r, b as i, c as a, d as o, f as s, g as c, h as l, i as u, l as d, m as f, n as p, o as m, p as h, r as g, s as _, t as v, u as y, v as b, w as x, x as S, y as C } from "../../Combobox-D-BN-Tvp.js";
|
|
2
|
+
export { v as Combobox, p as ComboboxChip, g as ComboboxChipRemove, u as ComboboxChips, r as ComboboxClear, m as ComboboxCollection, _ as ComboboxEmpty, a as ComboboxGroup, d as ComboboxGroupLabel, y as ComboboxIcon, o as ComboboxInput, s as ComboboxInputGroup, h as ComboboxItem, f as ComboboxLabel, l as ComboboxList, c as ComboboxPopup, n as ComboboxRoot, b as ComboboxRow, C as ComboboxSeparator, i as ComboboxStatus, S as ComboboxTrigger, t as ComboboxValue, e as useComboboxFilter, x as useComboboxFilteredItems };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { ContextMenu as BaseContextMenu } from '@base-ui/react/context-menu';
|
|
2
|
+
import { MenuSubmenuRoot } from '../menu/Menu';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
export interface ContextMenuRootProps extends BaseContextMenu.Root.Props {
|
|
5
|
+
/**
|
|
6
|
+
* The `<ContextMenu.Trigger>` and its `<ContextMenu.Popup>`.
|
|
7
|
+
*/
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Groups every part of the context menu and owns its open state. Renders no
|
|
12
|
+
* DOM element of its own, so it accepts neither `className` nor `ref`.
|
|
13
|
+
*
|
|
14
|
+
* Forwards Base UI's own root props unchanged — `open`, `defaultOpen`,
|
|
15
|
+
* `onOpenChange`, `disabled`, `orientation`, `loopFocus`,
|
|
16
|
+
* `highlightItemOnHover`, `closeParentOnEsc` and `actionsRef`. Four of
|
|
17
|
+
* `Menu.Root`'s props are deliberately absent, because a context menu has no
|
|
18
|
+
* trigger element to hang them on: `modal` (it is always modal), `openOnHover`
|
|
19
|
+
* with its `delay` / `closeDelay`, and the `handle` / `triggerId` pair.
|
|
20
|
+
*/
|
|
21
|
+
export declare function ContextMenuRoot({ children, ...props }: ContextMenuRootProps): React.JSX.Element;
|
|
22
|
+
export interface ContextMenuTriggerProps extends Omit<BaseContextMenu.Trigger.Props, "className"> {
|
|
23
|
+
/**
|
|
24
|
+
* The region that answers a right click or a long press — a card, a table
|
|
25
|
+
* row, a canvas, a whole panel. It is ordinary content, not a control: the
|
|
26
|
+
* trigger adds no styling of its own to it beyond marking it while its menu
|
|
27
|
+
* is open.
|
|
28
|
+
*/
|
|
29
|
+
children?: React.ReactNode;
|
|
30
|
+
/**
|
|
31
|
+
* Replaces the rendered `<div>` with another element or component —
|
|
32
|
+
* `render={<tr />}` for a table row, `render={<li />}` inside a list, so the
|
|
33
|
+
* trigger does not break the parent's content model.
|
|
34
|
+
*/
|
|
35
|
+
render?: BaseContextMenu.Trigger.Props["render"];
|
|
36
|
+
/**
|
|
37
|
+
* Additional class name(s). Applied after the internal styles so consumer
|
|
38
|
+
* utilities (e.g. Tailwind) win without needing `!important`.
|
|
39
|
+
*/
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The region that opens the menu on right click or long press. Renders a
|
|
44
|
+
* `<div>`.
|
|
45
|
+
*
|
|
46
|
+
* It takes no tab stop and carries no ARIA of its own — a region that answers a
|
|
47
|
+
* right click is not a button, and saying otherwise would promise keyboard
|
|
48
|
+
* behaviour it does not have. The platform's context-menu key (Shift+F10) does
|
|
49
|
+
* reach it when the region happens to wrap something focusable, since the
|
|
50
|
+
* `contextmenu` event that key fires bubbles; that is a bonus, not a plan.
|
|
51
|
+
*
|
|
52
|
+
* So: **a context menu must never be the only route to an action.** Nothing
|
|
53
|
+
* announces that a region has one. Put the same commands behind a visible
|
|
54
|
+
* control — a `<Menu>` button on the card is the usual answer, and the docs
|
|
55
|
+
* carry a worked example.
|
|
56
|
+
*
|
|
57
|
+
* Left click does nothing here, so the trigger declares no cursor and lets the
|
|
58
|
+
* content it wraps keep its own — text stays a caret, an image stays an arrow.
|
|
59
|
+
*/
|
|
60
|
+
export declare const ContextMenuTrigger: React.ForwardRefExoticComponent<Omit<ContextMenuTriggerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
61
|
+
/**
|
|
62
|
+
* A menu that opens at the pointer on right click or long press, built on Base
|
|
63
|
+
* UI's unstyled `ContextMenu` primitives.
|
|
64
|
+
*
|
|
65
|
+
* ```tsx
|
|
66
|
+
* <ContextMenu.Root>
|
|
67
|
+
* <ContextMenu.Trigger>
|
|
68
|
+
* <Card />
|
|
69
|
+
* </ContextMenu.Trigger>
|
|
70
|
+
* <ContextMenu.Popup>
|
|
71
|
+
* <ContextMenu.Item onClick={duplicate}>Duplicate</ContextMenu.Item>
|
|
72
|
+
* <ContextMenu.Separator />
|
|
73
|
+
* <ContextMenu.Item tone="danger" onClick={remove}>Delete</ContextMenu.Item>
|
|
74
|
+
* </ContextMenu.Popup>
|
|
75
|
+
* </ContextMenu.Root>
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* Everything below `Trigger` is the same component `Menu` uses — Base UI's own
|
|
79
|
+
* `context-menu` entry point re-exports the Menu parts, and so does this one —
|
|
80
|
+
* so the popup and its rows look identical, answer the same keyboard, and are
|
|
81
|
+
* themed through the same `--forte-menu-*` knobs. The trigger is the only part
|
|
82
|
+
* with `--forte-context-menu-*` properties of its own.
|
|
83
|
+
*
|
|
84
|
+
* Treat it as an enhancement: it is undiscoverable, unreachable from the
|
|
85
|
+
* keyboard, and awkward on touch, so every command in it needs a visible home
|
|
86
|
+
* as well.
|
|
87
|
+
*/
|
|
88
|
+
export declare const ContextMenu: {
|
|
89
|
+
Root: typeof ContextMenuRoot;
|
|
90
|
+
Trigger: React.ForwardRefExoticComponent<Omit<ContextMenuTriggerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
91
|
+
Popup: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
92
|
+
Item: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuItemProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
93
|
+
LinkItem: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuLinkItemProps, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
94
|
+
CheckboxItem: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuCheckboxItemProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
95
|
+
RadioGroup: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
96
|
+
RadioItem: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuRadioItemProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
97
|
+
Group: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
98
|
+
GroupLabel: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
99
|
+
Separator: React.ForwardRefExoticComponent<import('.').ContextMenuSeparatorProps & React.RefAttributes<HTMLDivElement>>;
|
|
100
|
+
SubmenuRoot: typeof MenuSubmenuRoot;
|
|
101
|
+
SubmenuTrigger: React.ForwardRefExoticComponent<Omit<import('.').ContextMenuSubmenuTriggerProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
102
|
+
Shortcut: React.ForwardRefExoticComponent<import('.').ContextMenuShortcutProps & React.RefAttributes<HTMLSpanElement>>;
|
|
103
|
+
};
|