@optimum-intelligence/opti-ui 0.0.0-stage → 0.2.0
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/LICENSE +23 -0
- package/README.md +161 -2
- package/dist/components/accordion/Accordion.d.ts +17 -0
- package/dist/components/accordion/Accordion.js +204 -0
- package/dist/components/accordion/Accordion.js.map +1 -0
- package/dist/components/alert/Alert.d.ts +18 -0
- package/dist/components/alert/Alert.js +164 -0
- package/dist/components/alert/Alert.js.map +1 -0
- package/dist/components/app-shell/AppShell.d.ts +97 -0
- package/dist/components/app-shell/AppShell.js +689 -0
- package/dist/components/app-shell/AppShell.js.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +21 -0
- package/dist/components/avatar/Avatar.js +190 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +16 -0
- package/dist/components/badge/Badge.js +94 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/components/breadcrumbs/Breadcrumbs.d.ts +18 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js +154 -0
- package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/button/Button.d.ts +23 -0
- package/dist/components/button/Button.js +159 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/calendar/Calendar.d.ts +59 -0
- package/dist/components/calendar/Calendar.js +709 -0
- package/dist/components/calendar/Calendar.js.map +1 -0
- package/dist/components/calendar/date-utils.d.ts +32 -0
- package/dist/components/calendar/date-utils.js +112 -0
- package/dist/components/calendar/date-utils.js.map +1 -0
- package/dist/components/card/Card.d.ts +42 -0
- package/dist/components/card/Card.js +82 -0
- package/dist/components/card/Card.js.map +1 -0
- package/dist/components/choice/Choice.d.ts +32 -0
- package/dist/components/choice/Choice.js +371 -0
- package/dist/components/choice/Choice.js.map +1 -0
- package/dist/components/collapsible/Collapsible.d.ts +15 -0
- package/dist/components/collapsible/Collapsible.js +155 -0
- package/dist/components/collapsible/Collapsible.js.map +1 -0
- package/dist/components/combobox/Combobox.d.ts +68 -0
- package/dist/components/combobox/Combobox.js +752 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/command-palette/CommandPalette.d.ts +52 -0
- package/dist/components/command-palette/CommandPalette.js +328 -0
- package/dist/components/command-palette/CommandPalette.js.map +1 -0
- package/dist/components/data-table/DataTable.d.ts +111 -0
- package/dist/components/data-table/DataTable.js +444 -0
- package/dist/components/data-table/DataTable.js.map +1 -0
- package/dist/components/date-picker/DatePicker.d.ts +50 -0
- package/dist/components/date-picker/DatePicker.js +485 -0
- package/dist/components/date-picker/DatePicker.js.map +1 -0
- package/dist/components/date-picker/DateRangePicker.d.ts +39 -0
- package/dist/components/date-picker/DateRangePicker.js +339 -0
- package/dist/components/date-picker/DateRangePicker.js.map +1 -0
- package/dist/components/date-picker/PickerField.d.ts +38 -0
- package/dist/components/date-picker/PickerField.js +238 -0
- package/dist/components/date-picker/PickerField.js.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +70 -0
- package/dist/components/dialog/Dialog.js +354 -0
- package/dist/components/dialog/Dialog.js.map +1 -0
- package/dist/components/drawer/Drawer.d.ts +39 -0
- package/dist/components/drawer/Drawer.js +225 -0
- package/dist/components/drawer/Drawer.js.map +1 -0
- package/dist/components/empty-state/EmptyState.d.ts +12 -0
- package/dist/components/empty-state/EmptyState.js +116 -0
- package/dist/components/empty-state/EmptyState.js.map +1 -0
- package/dist/components/field/Field.d.ts +36 -0
- package/dist/components/field/Field.js +337 -0
- package/dist/components/field/Field.js.map +1 -0
- package/dist/components/file-upload/FileUpload.d.ts +91 -0
- package/dist/components/file-upload/FileUpload.js +714 -0
- package/dist/components/file-upload/FileUpload.js.map +1 -0
- package/dist/components/input/Input.d.ts +49 -0
- package/dist/components/input/Input.js +538 -0
- package/dist/components/input/Input.js.map +1 -0
- package/dist/components/link/Link.d.ts +17 -0
- package/dist/components/link/Link.js +91 -0
- package/dist/components/link/Link.js.map +1 -0
- package/dist/components/menu/Menu.d.ts +79 -0
- package/dist/components/menu/Menu.js +615 -0
- package/dist/components/menu/Menu.js.map +1 -0
- package/dist/components/number-field/NumberField.d.ts +16 -0
- package/dist/components/number-field/NumberField.js +188 -0
- package/dist/components/number-field/NumberField.js.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +34 -0
- package/dist/components/pagination/Pagination.js +244 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/components/popover/Popover.d.ts +22 -0
- package/dist/components/popover/Popover.js +186 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/preview-card/PreviewCard.d.ts +20 -0
- package/dist/components/preview-card/PreviewCard.js +114 -0
- package/dist/components/preview-card/PreviewCard.js.map +1 -0
- package/dist/components/progress/Progress.d.ts +20 -0
- package/dist/components/progress/Progress.js +169 -0
- package/dist/components/progress/Progress.js.map +1 -0
- package/dist/components/scroll-area/ScrollArea.d.ts +8 -0
- package/dist/components/scroll-area/ScrollArea.js +112 -0
- package/dist/components/scroll-area/ScrollArea.js.map +1 -0
- package/dist/components/search-input/SearchInput.d.ts +14 -0
- package/dist/components/search-input/SearchInput.js +114 -0
- package/dist/components/search-input/SearchInput.js.map +1 -0
- package/dist/components/select/Select.d.ts +66 -0
- package/dist/components/select/Select.js +601 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/separator/Separator.d.ts +4 -0
- package/dist/components/separator/Separator.js +46 -0
- package/dist/components/separator/Separator.js.map +1 -0
- package/dist/components/skeleton/Skeleton.d.ts +16 -0
- package/dist/components/skeleton/Skeleton.js +135 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +11 -0
- package/dist/components/slider/Slider.js +107 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/spinner/Spinner.d.ts +9 -0
- package/dist/components/spinner/Spinner.js +78 -0
- package/dist/components/spinner/Spinner.js.map +1 -0
- package/dist/components/stack/Stack.d.ts +23 -0
- package/dist/components/stack/Stack.js +79 -0
- package/dist/components/stack/Stack.js.map +1 -0
- package/dist/components/stat-card/StatCard.d.ts +22 -0
- package/dist/components/stat-card/StatCard.js +153 -0
- package/dist/components/stat-card/StatCard.js.map +1 -0
- package/dist/components/stepper/Stepper.d.ts +30 -0
- package/dist/components/stepper/Stepper.js +131 -0
- package/dist/components/stepper/Stepper.js.map +1 -0
- package/dist/components/table/Table.d.ts +53 -0
- package/dist/components/table/Table.js +221 -0
- package/dist/components/table/Table.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +19 -0
- package/dist/components/tabs/Tabs.js +183 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tag/Tag.d.ts +22 -0
- package/dist/components/tag/Tag.js +121 -0
- package/dist/components/tag/Tag.js.map +1 -0
- package/dist/components/toast/Toast.d.ts +34 -0
- package/dist/components/toast/Toast.js +187 -0
- package/dist/components/toast/Toast.js.map +1 -0
- package/dist/components/toggle/Toggle.d.ts +31 -0
- package/dist/components/toggle/Toggle.js +197 -0
- package/dist/components/toggle/Toggle.js.map +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +21 -0
- package/dist/components/toolbar/Toolbar.js +239 -0
- package/dist/components/toolbar/Toolbar.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +33 -0
- package/dist/components/tooltip/Tooltip.js +182 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/typography/Typography.d.ts +32 -0
- package/dist/components/typography/Typography.js +183 -0
- package/dist/components/typography/Typography.js.map +1 -0
- package/dist/fonts.css +3 -0
- package/dist/icons/index.d.ts +125 -0
- package/dist/icons/index.js +174 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.js +56 -0
- package/dist/opti-ui.css +5365 -0
- package/dist/theme/ThemeProvider.d.ts +22 -0
- package/dist/theme/ThemeProvider.js +115 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/utils/cx.d.ts +10 -0
- package/dist/utils/cx.js +18 -0
- package/dist/utils/cx.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/portal.d.ts +8 -0
- package/dist/utils/portal.js +16 -0
- package/dist/utils/portal.js.map +1 -0
- package/dist/utils/primitive.d.ts +13 -0
- package/dist/utils/primitive.js +61 -0
- package/dist/utils/primitive.js.map +1 -0
- package/dist/utils/search.d.ts +4 -0
- package/dist/utils/search.js +15 -0
- package/dist/utils/search.js.map +1 -0
- package/package.json +71 -4
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type InputProps } from '../input/Input';
|
|
3
|
+
export interface SearchInputProps extends Omit<InputProps, 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'startAdornment' | 'endAdornment'> {
|
|
4
|
+
value?: string;
|
|
5
|
+
defaultValue?: string;
|
|
6
|
+
/** Called with the new text on typing and with `''` on clear. */
|
|
7
|
+
onValueChange?: (value: string) => void;
|
|
8
|
+
/** Accessible name of the clear button. */
|
|
9
|
+
clearLabel?: string;
|
|
10
|
+
/** Replaces the leading search icon. */
|
|
11
|
+
icon?: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
/** Text input with a search icon and a clear button that appears once there is a value. */
|
|
14
|
+
export declare function SearchInput({ value, defaultValue, onValueChange, clearLabel, icon, disabled, ref, ...props }: SearchInputProps): React.JSX.Element;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { SearchIcon, XIcon } from "../../icons/index.js";
|
|
3
|
+
import { IconButton } from "../button/Button.js";
|
|
4
|
+
import { Input } from "../input/Input.js";
|
|
5
|
+
import { c } from "react/compiler-runtime";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/search-input/SearchInput.tsx
|
|
9
|
+
/** Text input with a search icon and a clear button that appears once there is a value. */
|
|
10
|
+
function SearchInput(t0) {
|
|
11
|
+
const $ = c(26);
|
|
12
|
+
let disabled;
|
|
13
|
+
let icon;
|
|
14
|
+
let onValueChange;
|
|
15
|
+
let props;
|
|
16
|
+
let ref;
|
|
17
|
+
let t1;
|
|
18
|
+
let t2;
|
|
19
|
+
let value;
|
|
20
|
+
if ($[0] !== t0) {
|
|
21
|
+
({value, defaultValue: t1, onValueChange, clearLabel: t2, icon, disabled, ref, ...props} = t0);
|
|
22
|
+
$[0] = t0;
|
|
23
|
+
$[1] = disabled;
|
|
24
|
+
$[2] = icon;
|
|
25
|
+
$[3] = onValueChange;
|
|
26
|
+
$[4] = props;
|
|
27
|
+
$[5] = ref;
|
|
28
|
+
$[6] = t1;
|
|
29
|
+
$[7] = t2;
|
|
30
|
+
$[8] = value;
|
|
31
|
+
} else {
|
|
32
|
+
disabled = $[1];
|
|
33
|
+
icon = $[2];
|
|
34
|
+
onValueChange = $[3];
|
|
35
|
+
props = $[4];
|
|
36
|
+
ref = $[5];
|
|
37
|
+
t1 = $[6];
|
|
38
|
+
t2 = $[7];
|
|
39
|
+
value = $[8];
|
|
40
|
+
}
|
|
41
|
+
const defaultValue = t1 === void 0 ? "" : t1;
|
|
42
|
+
const clearLabel = t2 === void 0 ? "Clear search" : t2;
|
|
43
|
+
const [inner, setInner] = React.useState(defaultValue);
|
|
44
|
+
const current = value ?? inner;
|
|
45
|
+
const inputRef = React.useRef(null);
|
|
46
|
+
let t3;
|
|
47
|
+
if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
|
|
48
|
+
t3 = () => inputRef.current;
|
|
49
|
+
$[9] = t3;
|
|
50
|
+
} else t3 = $[9];
|
|
51
|
+
React.useImperativeHandle(ref, t3);
|
|
52
|
+
let t4;
|
|
53
|
+
if ($[10] !== onValueChange) {
|
|
54
|
+
t4 = (next) => {
|
|
55
|
+
setInner(next);
|
|
56
|
+
onValueChange?.(next);
|
|
57
|
+
};
|
|
58
|
+
$[10] = onValueChange;
|
|
59
|
+
$[11] = t4;
|
|
60
|
+
} else t4 = $[11];
|
|
61
|
+
const change = t4;
|
|
62
|
+
let t5;
|
|
63
|
+
if ($[12] !== icon) {
|
|
64
|
+
t5 = icon ?? /* @__PURE__ */ jsx(SearchIcon, {});
|
|
65
|
+
$[12] = icon;
|
|
66
|
+
$[13] = t5;
|
|
67
|
+
} else t5 = $[13];
|
|
68
|
+
let t6;
|
|
69
|
+
if ($[14] !== change || $[15] !== clearLabel || $[16] !== current || $[17] !== disabled) {
|
|
70
|
+
t6 = current && !disabled ? /* @__PURE__ */ jsx(IconButton, {
|
|
71
|
+
size: "sm",
|
|
72
|
+
shape: "circle",
|
|
73
|
+
"aria-label": clearLabel,
|
|
74
|
+
onClick: () => {
|
|
75
|
+
change("");
|
|
76
|
+
inputRef.current?.focus();
|
|
77
|
+
},
|
|
78
|
+
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
79
|
+
}) : void 0;
|
|
80
|
+
$[14] = change;
|
|
81
|
+
$[15] = clearLabel;
|
|
82
|
+
$[16] = current;
|
|
83
|
+
$[17] = disabled;
|
|
84
|
+
$[18] = t6;
|
|
85
|
+
} else t6 = $[18];
|
|
86
|
+
let t7;
|
|
87
|
+
if ($[19] !== change || $[20] !== current || $[21] !== disabled || $[22] !== props || $[23] !== t5 || $[24] !== t6) {
|
|
88
|
+
t7 = /* @__PURE__ */ jsx(Input, {
|
|
89
|
+
ref: inputRef,
|
|
90
|
+
type: "text",
|
|
91
|
+
role: "searchbox",
|
|
92
|
+
enterKeyHint: "search",
|
|
93
|
+
autoComplete: "off",
|
|
94
|
+
disabled,
|
|
95
|
+
...props,
|
|
96
|
+
value: current,
|
|
97
|
+
onValueChange: change,
|
|
98
|
+
startAdornment: t5,
|
|
99
|
+
endAdornment: t6
|
|
100
|
+
});
|
|
101
|
+
$[19] = change;
|
|
102
|
+
$[20] = current;
|
|
103
|
+
$[21] = disabled;
|
|
104
|
+
$[22] = props;
|
|
105
|
+
$[23] = t5;
|
|
106
|
+
$[24] = t6;
|
|
107
|
+
$[25] = t7;
|
|
108
|
+
} else t7 = $[25];
|
|
109
|
+
return t7;
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { SearchInput };
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=SearchInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchInput.js","names":["React","Input","InputProps","IconButton","SearchIcon","XIcon","SearchInputProps","Omit","value","defaultValue","onValueChange","clearLabel","icon","ReactNode","SearchInput","t0","$","_c","disabled","props","ref","t1","t2","undefined","inner","setInner","useState","current","inputRef","useRef","t3","Symbol","for","HTMLInputElement","useImperativeHandle","t4","next","change","t5","t6","focus","t7","_c"],"sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Input, type InputProps } from '../input/Input';\nimport { IconButton } from '../button/Button';\nimport { SearchIcon, XIcon } from '../../icons';\n\nexport interface SearchInputProps\n extends Omit<InputProps, 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'startAdornment' | 'endAdornment'> {\n value?: string;\n defaultValue?: string;\n /** Called with the new text on typing and with `''` on clear. */\n onValueChange?: (value: string) => void;\n /** Accessible name of the clear button. */\n clearLabel?: string;\n /** Replaces the leading search icon. */\n icon?: React.ReactNode;\n}\n\n/** Text input with a search icon and a clear button that appears once there is a value. */\nexport function SearchInput({\n value,\n defaultValue = '',\n onValueChange,\n clearLabel = 'Clear search',\n icon,\n disabled,\n ref,\n ...props\n}: SearchInputProps) {\n const [inner, setInner] = React.useState(defaultValue);\n const current = value ?? inner;\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n React.useImperativeHandle(ref, () => inputRef.current as HTMLInputElement);\n\n const change = (next: string) => {\n setInner(next);\n onValueChange?.(next);\n };\n\n return (\n <Input\n ref={inputRef}\n type=\"text\"\n role=\"searchbox\"\n enterKeyHint=\"search\"\n autoComplete=\"off\"\n disabled={disabled}\n {...props}\n value={current}\n onValueChange={change}\n startAdornment={icon ?? <SearchIcon />}\n endAdornment={\n current && !disabled ? (\n <IconButton\n size=\"sm\"\n shape=\"circle\"\n aria-label={clearLabel}\n onClick={() => {\n change('');\n inputRef.current?.focus();\n }}\n >\n <XIcon />\n </IconButton>\n ) : undefined\n }\n />\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Select as BaseSelect } from '@base-ui/react/select';
|
|
3
|
+
import type { ControlSize } from '../input/Input';
|
|
4
|
+
export interface SelectTriggerProps extends BaseSelect.Trigger.Props {
|
|
5
|
+
size?: ControlSize;
|
|
6
|
+
/** Placeholder shown by the default value slot. */
|
|
7
|
+
placeholder?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/** The select button. Renders the value and chevron unless children are given. */
|
|
10
|
+
declare function SelectTrigger({ size, placeholder, className, children, ref, ...props }: SelectTriggerProps): React.JSX.Element;
|
|
11
|
+
declare function SelectValue({ className, ref, ...props }: BaseSelect.Value.Props): React.JSX.Element;
|
|
12
|
+
export interface SelectContentProps extends BaseSelect.Popup.Props {
|
|
13
|
+
side?: BaseSelect.Positioner.Props['side'];
|
|
14
|
+
align?: BaseSelect.Positioner.Props['align'];
|
|
15
|
+
sideOffset?: BaseSelect.Positioner.Props['sideOffset'];
|
|
16
|
+
/** Overlap the trigger so the selected item lines up with it (macOS style). */
|
|
17
|
+
alignItemWithTrigger?: boolean;
|
|
18
|
+
positionerProps?: BaseSelect.Positioner.Props;
|
|
19
|
+
}
|
|
20
|
+
/** Portal + positioner + popup + list in one. */
|
|
21
|
+
declare function SelectContent({ side, align, sideOffset, alignItemWithTrigger, positionerProps, className, children, ref, ...props }: SelectContentProps): React.JSX.Element;
|
|
22
|
+
declare function SelectItem({ className, children, ref, ...props }: BaseSelect.Item.Props): React.JSX.Element;
|
|
23
|
+
declare function SelectGroup({ className, ref, ...props }: BaseSelect.Group.Props): React.JSX.Element;
|
|
24
|
+
declare function SelectGroupLabel({ className, ref, ...props }: BaseSelect.GroupLabel.Props): React.JSX.Element;
|
|
25
|
+
declare function SelectSeparator({ className, ref, ...props }: BaseSelect.Separator.Props): React.JSX.Element;
|
|
26
|
+
declare function SelectLabel({ className, ref, ...props }: BaseSelect.Label.Props): React.JSX.Element;
|
|
27
|
+
export interface SelectOption {
|
|
28
|
+
value: string;
|
|
29
|
+
label: React.ReactNode;
|
|
30
|
+
disabled?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface SelectOptionGroup {
|
|
33
|
+
label: React.ReactNode;
|
|
34
|
+
items: SelectOption[];
|
|
35
|
+
}
|
|
36
|
+
type RootProps = Omit<BaseSelect.Root.Props<string, false>, 'items' | 'children' | 'multiple'>;
|
|
37
|
+
export interface SelectProps extends RootProps {
|
|
38
|
+
/** Options, or groups of options. */
|
|
39
|
+
items: Array<SelectOption | SelectOptionGroup>;
|
|
40
|
+
label?: React.ReactNode;
|
|
41
|
+
description?: React.ReactNode;
|
|
42
|
+
error?: React.ReactNode;
|
|
43
|
+
placeholder?: React.ReactNode;
|
|
44
|
+
size?: ControlSize;
|
|
45
|
+
/** Props passed to the trigger button (className, style, aria-*). */
|
|
46
|
+
triggerProps?: Omit<SelectTriggerProps, 'size' | 'placeholder'>;
|
|
47
|
+
contentProps?: Omit<SelectContentProps, 'children'>;
|
|
48
|
+
}
|
|
49
|
+
declare function SelectComponent({ items, label, description, error, placeholder, size, triggerProps, contentProps, name, disabled, required, ...rootProps }: SelectProps): React.JSX.Element;
|
|
50
|
+
/**
|
|
51
|
+
* `<Select items={…} />` renders a complete labelled select. For full control
|
|
52
|
+
* compose the parts: `Select.Root`, `Select.Trigger`, `Select.Content`,
|
|
53
|
+
* `Select.Item`, `Select.Group`, `Select.GroupLabel`, `Select.Separator`.
|
|
54
|
+
*/
|
|
55
|
+
export declare const Select: typeof SelectComponent & {
|
|
56
|
+
Root: typeof BaseSelect.Root;
|
|
57
|
+
Label: typeof SelectLabel;
|
|
58
|
+
Trigger: typeof SelectTrigger;
|
|
59
|
+
Value: typeof SelectValue;
|
|
60
|
+
Content: typeof SelectContent;
|
|
61
|
+
Item: typeof SelectItem;
|
|
62
|
+
Group: typeof SelectGroup;
|
|
63
|
+
GroupLabel: typeof SelectGroupLabel;
|
|
64
|
+
Separator: typeof SelectSeparator;
|
|
65
|
+
};
|
|
66
|
+
export {};
|