@surflane/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-APACHE +202 -0
- package/LICENSE-MIT +18 -0
- package/README.md +55 -2
- package/dist/advanced-forms.d.ts +115 -0
- package/dist/advanced-forms.js +93 -0
- package/dist/app-shell.d.ts +23 -0
- package/dist/app-shell.js +29 -0
- package/dist/button.d.ts +11 -0
- package/dist/button.js +16 -0
- package/dist/chart.d.ts +48 -0
- package/dist/chart.js +126 -0
- package/dist/commands.d.ts +47 -0
- package/dist/commands.js +27 -0
- package/dist/content.d.ts +59 -0
- package/dist/content.js +104 -0
- package/dist/context-overlays.d.ts +95 -0
- package/dist/context-overlays.js +50 -0
- package/dist/data.d.ts +95 -0
- package/dist/data.js +40 -0
- package/dist/date-picker.d.ts +23 -0
- package/dist/date-picker.js +39 -0
- package/dist/dialog-focus.d.ts +5 -0
- package/dist/dialog-focus.js +35 -0
- package/dist/dialog.d.ts +59 -0
- package/dist/dialog.js +49 -0
- package/dist/feedback.d.ts +76 -0
- package/dist/feedback.js +35 -0
- package/dist/file-upload.d.ts +77 -0
- package/dist/file-upload.js +344 -0
- package/dist/filter-bar.d.ts +17 -0
- package/dist/filter-bar.js +23 -0
- package/dist/form-state.d.ts +5 -0
- package/dist/form-state.js +63 -0
- package/dist/forms.d.ts +91 -0
- package/dist/forms.js +109 -0
- package/dist/foundations.d.ts +51 -0
- package/dist/foundations.js +55 -0
- package/dist/icon.d.ts +37 -0
- package/dist/icon.js +28 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.js +38 -0
- package/dist/input-extensions.d.ts +117 -0
- package/dist/input-extensions.js +64 -0
- package/dist/input.d.ts +7 -0
- package/dist/input.js +10 -0
- package/dist/markdown.d.ts +15 -0
- package/dist/markdown.js +121 -0
- package/dist/menu.d.ts +79 -0
- package/dist/menu.js +44 -0
- package/dist/messages.d.ts +63 -0
- package/dist/messages.js +38 -0
- package/dist/navigation-menu.d.ts +52 -0
- package/dist/navigation-menu.js +31 -0
- package/dist/navigation.d.ts +107 -0
- package/dist/navigation.js +108 -0
- package/dist/otp-field.d.ts +12 -0
- package/dist/otp-field.js +46 -0
- package/dist/pagination.d.ts +23 -0
- package/dist/pagination.js +44 -0
- package/dist/panels.d.ts +66 -0
- package/dist/panels.js +99 -0
- package/dist/parts.d.ts +9 -0
- package/dist/parts.js +22 -0
- package/dist/popover.d.ts +21 -0
- package/dist/popover.js +13 -0
- package/dist/scroll-area.d.ts +8 -0
- package/dist/scroll-area.js +39 -0
- package/dist/select.d.ts +33 -0
- package/dist/select.js +97 -0
- package/dist/sizing.d.ts +13 -0
- package/dist/sizing.js +23 -0
- package/dist/slot.d.ts +2 -0
- package/dist/slot.js +10 -0
- package/dist/status.d.ts +22 -0
- package/dist/status.js +17 -0
- package/dist/syntax-engine.d.ts +5 -0
- package/dist/syntax-engine.js +129 -0
- package/dist/syntax-highlighter.d.ts +17 -0
- package/dist/syntax-highlighter.js +64 -0
- package/dist/toast.d.ts +59 -0
- package/dist/toast.js +99 -0
- package/dist/tone-transition.d.ts +4 -0
- package/dist/tone-transition.js +81 -0
- package/dist/tooltip.d.ts +11 -0
- package/dist/tooltip.js +13 -0
- package/dist/tree.d.ts +28 -0
- package/dist/tree.js +311 -0
- package/package.json +109 -4
- package/src/styles.css +3799 -0
package/dist/forms.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useComponentSize } from './sizing.js';
|
|
5
|
+
import { Field as BaseField } from '@base-ui/react/field';
|
|
6
|
+
import { Fieldset as BaseFieldset } from '@base-ui/react/fieldset';
|
|
7
|
+
import { Form as BaseForm } from '@base-ui/react/form';
|
|
8
|
+
import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';
|
|
9
|
+
import { CheckboxGroup as BaseCheckboxGroup } from '@base-ui/react/checkbox-group';
|
|
10
|
+
import { Radio as BaseRadio } from '@base-ui/react/radio';
|
|
11
|
+
import { RadioGroup as BaseRadioGroup } from '@base-ui/react/radio-group';
|
|
12
|
+
import { Switch as BaseSwitch } from '@base-ui/react/switch';
|
|
13
|
+
const ChoiceResetPaint = React.createContext(0);
|
|
14
|
+
import { skin, part } from './parts.js';
|
|
15
|
+
const FieldRoot = part(BaseField.Root, 'pui-field');
|
|
16
|
+
const FieldLabel = part(BaseField.Label, 'pui-field-label');
|
|
17
|
+
const FieldControl = part(BaseField.Control, 'pui-input');
|
|
18
|
+
const FieldDescription = part(BaseField.Description, 'pui-field-description');
|
|
19
|
+
const FieldError = part(BaseField.Error, 'pui-field-error');
|
|
20
|
+
const FieldItem = part(BaseField.Item, 'pui-field-item');
|
|
21
|
+
export const Field = {
|
|
22
|
+
...BaseField,
|
|
23
|
+
Root: FieldRoot,
|
|
24
|
+
Label: FieldLabel,
|
|
25
|
+
Control: FieldControl,
|
|
26
|
+
Description: FieldDescription,
|
|
27
|
+
Error: FieldError,
|
|
28
|
+
Item: FieldItem,
|
|
29
|
+
};
|
|
30
|
+
export const Fieldset = {
|
|
31
|
+
...BaseFieldset,
|
|
32
|
+
Root: part(BaseFieldset.Root, 'pui-fieldset'),
|
|
33
|
+
Legend: part(BaseFieldset.Legend, 'pui-fieldset-legend'),
|
|
34
|
+
};
|
|
35
|
+
export function Form({ className, ...props }) {
|
|
36
|
+
return _jsx(BaseForm, { ...props, className: skin('pui-form', className) });
|
|
37
|
+
}
|
|
38
|
+
export const Textarea = React.forwardRef(function Textarea({ className, size, ...props }, ref) {
|
|
39
|
+
const scheme = useComponentSize(size);
|
|
40
|
+
return (_jsx("textarea", { "data-ui-size": scheme, ...props, ref: ref, className: ['pui-input pui-textarea', className]
|
|
41
|
+
.filter(Boolean)
|
|
42
|
+
.join(' ') }));
|
|
43
|
+
});
|
|
44
|
+
import { useRootRef, useResetValue } from './form-state.js';
|
|
45
|
+
const CheckboxRoot = React.forwardRef(function CheckboxRoot({ checked, defaultChecked = false, onCheckedChange, className, form, ...props }, ref) {
|
|
46
|
+
React.useContext(ChoiceResetPaint);
|
|
47
|
+
const [element, attach] = useRootRef(ref);
|
|
48
|
+
const [selected, setSelected] = useResetValue(checked, defaultChecked, element, form);
|
|
49
|
+
return (_jsx(BaseCheckbox.Root, { ...props, form: form, ref: attach, checked: selected, className: skin('pui-checkbox', className), onCheckedChange: (next, event) => {
|
|
50
|
+
onCheckedChange?.(next, event);
|
|
51
|
+
if (checked === undefined && !event.isCanceled)
|
|
52
|
+
setSelected(next);
|
|
53
|
+
} }));
|
|
54
|
+
});
|
|
55
|
+
const CheckboxIndicator = React.forwardRef(function CheckboxIndicator({ className, children, ...props }, ref) {
|
|
56
|
+
return (_jsx(BaseCheckbox.Indicator, { ...props, ref: ref, className: skin('pui-checkbox-indicator', className), children: children ?? (_jsxs("svg", { width: '14', height: '14', viewBox: '0 0 20 20', fill: 'none', stroke: 'currentColor', strokeWidth: '2', "aria-hidden": 'true', children: [_jsx("path", { className: 'pui-checkbox-check', d: 'm4 10 4 4 8-8' }), _jsx("path", { className: 'pui-checkbox-mixed', d: 'M4 10h12' })] })) }));
|
|
57
|
+
});
|
|
58
|
+
export const Checkbox = {
|
|
59
|
+
...BaseCheckbox,
|
|
60
|
+
Root: CheckboxRoot,
|
|
61
|
+
Indicator: CheckboxIndicator,
|
|
62
|
+
};
|
|
63
|
+
export const CheckboxGroup = React.forwardRef(function CheckboxGroup({ value, defaultValue = [], onValueChange, className, ...props }, ref) {
|
|
64
|
+
const [element, attach] = useRootRef(ref);
|
|
65
|
+
const [selected, setSelected, revision] = useResetValue(value, defaultValue, element);
|
|
66
|
+
return (_jsx(ChoiceResetPaint.Provider, { value: revision, children: _jsx(BaseCheckboxGroup, { ...props, ref: attach, value: selected, className: skin('pui-choice-group', className), onValueChange: (next, event) => {
|
|
67
|
+
onValueChange?.(next, event);
|
|
68
|
+
if (value === undefined && !event.isCanceled)
|
|
69
|
+
setSelected(next);
|
|
70
|
+
} }) }));
|
|
71
|
+
});
|
|
72
|
+
export function RadioGroup({ value, defaultValue, onValueChange, className, form, ref, ...props }) {
|
|
73
|
+
const [element, attach] = useRootRef(ref);
|
|
74
|
+
const [selected, setSelected, revision] = useResetValue(value, defaultValue ?? null, element, form);
|
|
75
|
+
return (_jsx(ChoiceResetPaint.Provider, { value: revision, children: _jsx(BaseRadioGroup, { ...props, form: form, ref: attach, value: selected, className: skin('pui-choice-group', className), onValueChange: (next, event) => {
|
|
76
|
+
onValueChange?.(next, event);
|
|
77
|
+
if (value === undefined && !event.isCanceled)
|
|
78
|
+
setSelected(next);
|
|
79
|
+
} }) }));
|
|
80
|
+
}
|
|
81
|
+
const RadioRoot = React.forwardRef(function RadioRoot({ className, ...props }, ref) {
|
|
82
|
+
React.useContext(ChoiceResetPaint);
|
|
83
|
+
return (_jsx(BaseRadio.Root, { ...props, ref: ref, className: skin('pui-radio', className) }));
|
|
84
|
+
});
|
|
85
|
+
export const Radio = {
|
|
86
|
+
...BaseRadio,
|
|
87
|
+
Root: RadioRoot,
|
|
88
|
+
Indicator: part(BaseRadio.Indicator, 'pui-radio-indicator'),
|
|
89
|
+
};
|
|
90
|
+
const SwitchRoot = React.forwardRef(function SwitchRoot({ checked, defaultChecked = false, onCheckedChange, className, form, ...props }, ref) {
|
|
91
|
+
const [element, attach] = useRootRef(ref);
|
|
92
|
+
const [selected, setSelected] = useResetValue(checked, defaultChecked, element, form);
|
|
93
|
+
return (_jsx(BaseSwitch.Root, { ...props, form: form, ref: attach, checked: selected, className: skin('pui-switch', className), onCheckedChange: (next, event) => {
|
|
94
|
+
onCheckedChange?.(next, event);
|
|
95
|
+
if (checked === undefined && !event.isCanceled)
|
|
96
|
+
setSelected(next);
|
|
97
|
+
} }));
|
|
98
|
+
});
|
|
99
|
+
export const Switch = {
|
|
100
|
+
...BaseSwitch,
|
|
101
|
+
Root: SwitchRoot,
|
|
102
|
+
Thumb: part(BaseSwitch.Thumb, 'pui-switch-thumb'),
|
|
103
|
+
};
|
|
104
|
+
// Flat names for React Server Components, which cannot dot into client exports.
|
|
105
|
+
export { CheckboxIndicator, CheckboxRoot, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldRoot, RadioRoot, SwitchRoot, };
|
|
106
|
+
export const { Validity: FieldValidity } = Field;
|
|
107
|
+
export const { Legend: FieldsetLegend, Root: FieldsetRoot } = Fieldset;
|
|
108
|
+
export const { Indicator: RadioIndicator } = Radio;
|
|
109
|
+
export const { Thumb: SwitchThumb } = Switch;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type Space = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20;
|
|
3
|
+
export declare const Container: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
4
|
+
width?: "workspace" | "reading" | "wide" | "full";
|
|
5
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export declare const Stack: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
7
|
+
gap?: Space;
|
|
8
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
export declare const Inline: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
10
|
+
gap?: Space;
|
|
11
|
+
justify?: "start" | "between" | "end";
|
|
12
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
export declare const Grid: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
14
|
+
gap?: Space;
|
|
15
|
+
/** Extend inline edges by the matching child content inset (card padding or table cell inset). The parent
|
|
16
|
+
* must reserve this space for the card surface and focus outline. */
|
|
17
|
+
bleed?: Space;
|
|
18
|
+
columns?: 1 | 2 | 3 | 4 | "layout";
|
|
19
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
/** Spans are explicit at each viewport breakpoint; placement follows DOM order. */
|
|
21
|
+
export declare const GridItem: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
22
|
+
span?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
|
23
|
+
mediumSpan?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
24
|
+
smallSpan?: 1 | 2 | 3 | 4;
|
|
25
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
export declare const Surface: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
27
|
+
tone?: "canvas" | "subtle";
|
|
28
|
+
padding?: Space;
|
|
29
|
+
}, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
+
export declare function Heading({ level, size, className, ...props }: React.HTMLAttributes<HTMLHeadingElement> & {
|
|
31
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
32
|
+
size?: 'display' | 'title' | 'page' | 'section' | 'subsection' | 'workspace' | 'document';
|
|
33
|
+
}): React.JSX.Element;
|
|
34
|
+
export declare function Text({ as: Tag, variant, color, weight, className, ...props }: React.HTMLAttributes<HTMLElement> & {
|
|
35
|
+
as?: 'p' | 'span' | 'div';
|
|
36
|
+
variant?: 'body' | 'reading' | 'table' | 'caption' | 'label' | 'mono' | 'metric';
|
|
37
|
+
color?: 'primary' | 'secondary' | 'muted';
|
|
38
|
+
weight?: 'regular' | 'medium';
|
|
39
|
+
}): React.JSX.Element;
|
|
40
|
+
export declare function PageHeader({ as: Root, headingProps, actionsLabel, title, description, breadcrumb, actions, level, size, className, ...props }: Omit<React.ComponentProps<'div'>, 'title'> & {
|
|
41
|
+
as?: 'div' | 'header';
|
|
42
|
+
headingProps?: Omit<React.HTMLAttributes<HTMLHeadingElement>, 'children' | 'dangerouslySetInnerHTML'>;
|
|
43
|
+
actionsLabel?: string;
|
|
44
|
+
title: React.ReactNode;
|
|
45
|
+
description?: React.ReactNode;
|
|
46
|
+
breadcrumb?: React.ReactNode;
|
|
47
|
+
actions?: React.ReactNode;
|
|
48
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
49
|
+
size?: 'title' | 'page' | 'workspace' | 'document';
|
|
50
|
+
}): React.JSX.Element;
|
|
51
|
+
export declare const Prose: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
const cx = (...values) => values.filter(Boolean).join(' ');
|
|
5
|
+
const gapStyle = (gap, style) => ({
|
|
6
|
+
...(gap === undefined ? {} : { '--layout-gap': `var(--space-${gap})` }),
|
|
7
|
+
...style,
|
|
8
|
+
});
|
|
9
|
+
export const Container = React.forwardRef(function Container({ width = 'workspace', className, ...props }, ref) {
|
|
10
|
+
return (_jsx("div", { ...props, ref: ref, className: cx('pui-container', className), "data-width": width }));
|
|
11
|
+
});
|
|
12
|
+
export const Stack = React.forwardRef(function Stack({ gap, className, style, ...props }, ref) {
|
|
13
|
+
return (_jsx("div", { ...props, ref: ref, className: cx('pui-stack', className), style: gapStyle(gap, style) }));
|
|
14
|
+
});
|
|
15
|
+
export const Inline = React.forwardRef(function Inline({ gap, justify = 'start', className, style, ...props }, ref) {
|
|
16
|
+
return (_jsx("div", { ...props, ref: ref, className: cx('pui-inline', className), "data-justify": justify, style: gapStyle(gap, style) }));
|
|
17
|
+
});
|
|
18
|
+
export const Grid = React.forwardRef(function Grid({ gap, bleed = 0, columns = 3, className, style, ...props }, ref) {
|
|
19
|
+
return (_jsx("div", { ...props, ref: ref, className: cx('pui-grid', className), "data-columns": columns, style: gapStyle(gap, {
|
|
20
|
+
'--grid-inline-bleed': `var(--space-${bleed})`,
|
|
21
|
+
...style,
|
|
22
|
+
}) }));
|
|
23
|
+
});
|
|
24
|
+
/** Spans are explicit at each viewport breakpoint; placement follows DOM order. */
|
|
25
|
+
export const GridItem = React.forwardRef(function GridItem({ span, mediumSpan, smallSpan, className, style, ...props }, ref) {
|
|
26
|
+
return (_jsx("div", { ...props, ref: ref, className: cx('pui-grid-item', className), style: {
|
|
27
|
+
'--grid-item-span': span,
|
|
28
|
+
'--grid-item-span-medium': mediumSpan,
|
|
29
|
+
'--grid-item-span-small': smallSpan,
|
|
30
|
+
...style,
|
|
31
|
+
} }));
|
|
32
|
+
});
|
|
33
|
+
export const Surface = React.forwardRef(function Surface({ tone = 'subtle', padding, className, style, ...props }, ref) {
|
|
34
|
+
return (_jsx("div", { ...props, ref: ref, className: cx('pui-surface', className), "data-tone": tone, style: {
|
|
35
|
+
...(padding === undefined
|
|
36
|
+
? {}
|
|
37
|
+
: { '--surface-padding': `var(--space-${padding})` }),
|
|
38
|
+
...style,
|
|
39
|
+
} }));
|
|
40
|
+
});
|
|
41
|
+
export function Heading({ level = 2, size = 'section', className, ...props }) {
|
|
42
|
+
const Tag = `h${level}`;
|
|
43
|
+
return (_jsx(Tag, { ...props, className: cx('pui-heading', className), "data-size": size }));
|
|
44
|
+
}
|
|
45
|
+
export function Text({ as: Tag = 'p', variant = 'body', color = 'primary', weight = 'regular', className, ...props }) {
|
|
46
|
+
return (_jsx(Tag, { ...props, className: cx('pui-text', className), "data-variant": variant, "data-color": color, "data-weight": weight }));
|
|
47
|
+
}
|
|
48
|
+
export function PageHeader({ as: Root = 'div', headingProps, actionsLabel, title, description, breadcrumb, actions, level = 1, size = 'title', className, ...props }) {
|
|
49
|
+
return (_jsxs(Root, { ...props, className: cx('pui-page-header', className), children: [breadcrumb != null && breadcrumb !== false && breadcrumb !== '' && (_jsx("div", { className: 'pui-page-header-breadcrumb', children: breadcrumb })), _jsxs("div", { className: 'pui-page-header-content', children: [_jsxs("div", { className: 'pui-page-header-copy', children: [_jsx(Heading, { ...headingProps, level: level, size: size, children: title }), description != null &&
|
|
50
|
+
description !== false &&
|
|
51
|
+
description !== '' && (_jsx(Text, { color: 'secondary', className: 'pui-page-header-description', children: description }))] }), actions != null && actions !== false && actions !== '' && (_jsx("div", { className: 'pui-page-header-actions', role: actionsLabel ? 'group' : undefined, "aria-label": actionsLabel, children: actions }))] })] }));
|
|
52
|
+
}
|
|
53
|
+
export const Prose = React.forwardRef(function Prose({ className, ...props }, ref) {
|
|
54
|
+
return _jsx("div", { ...props, ref: ref, className: cx('pui-prose', className) });
|
|
55
|
+
});
|
package/dist/icon.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
declare const shapes: {
|
|
3
|
+
search: React.JSX.Element;
|
|
4
|
+
plus: React.JSX.Element;
|
|
5
|
+
close: React.JSX.Element;
|
|
6
|
+
check: React.JSX.Element;
|
|
7
|
+
info: React.JSX.Element;
|
|
8
|
+
alert: React.JSX.Element;
|
|
9
|
+
warning: React.JSX.Element;
|
|
10
|
+
menu: React.JSX.Element;
|
|
11
|
+
sun: React.JSX.Element;
|
|
12
|
+
moon: React.JSX.Element;
|
|
13
|
+
monitor: React.JSX.Element;
|
|
14
|
+
'chevron-down': React.JSX.Element;
|
|
15
|
+
'chevron-forward': React.JSX.Element;
|
|
16
|
+
'arrow-back': React.JSX.Element;
|
|
17
|
+
'external-link': React.JSX.Element;
|
|
18
|
+
copy: React.JSX.Element;
|
|
19
|
+
play: React.JSX.Element;
|
|
20
|
+
settings: React.JSX.Element;
|
|
21
|
+
};
|
|
22
|
+
export type IconName = keyof typeof shapes;
|
|
23
|
+
export declare const iconNames: readonly IconName[];
|
|
24
|
+
type Semantics = {
|
|
25
|
+
decorative?: true;
|
|
26
|
+
label?: never;
|
|
27
|
+
} | {
|
|
28
|
+
decorative: false;
|
|
29
|
+
label: string;
|
|
30
|
+
};
|
|
31
|
+
export type IconProps = Omit<React.ComponentPropsWithoutRef<'svg'>, 'children' | 'name' | 'role' | 'aria-label' | 'aria-labelledby' | 'aria-hidden' | 'tabIndex' | 'focusable' | 'width' | 'height' | 'viewBox' | 'strokeWidth' | 'fill' | 'stroke' | 'title'> & Semantics & {
|
|
32
|
+
name: IconName;
|
|
33
|
+
size?: 'sm' | 'md' | 'lg';
|
|
34
|
+
};
|
|
35
|
+
/** Static SVG only. Actions, focus, accessible button names and hit targets belong to the parent control. */
|
|
36
|
+
export declare const Icon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
|
|
37
|
+
export {};
|
package/dist/icon.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
const shapes = {
|
|
5
|
+
search: (_jsxs(_Fragment, { children: [_jsx("circle", { cx: '10.5', cy: '10.5', r: '6.5' }), _jsx("path", { d: 'm16 16 4 4' })] })),
|
|
6
|
+
plus: _jsx("path", { d: 'M12 5v14M5 12h14' }),
|
|
7
|
+
close: _jsx("path", { d: 'm6 6 12 12M18 6 6 18' }),
|
|
8
|
+
check: _jsx("path", { d: 'm5 12 4 4L19 6' }),
|
|
9
|
+
info: (_jsxs(_Fragment, { children: [_jsx("circle", { cx: '12', cy: '12', r: '9' }), _jsx("path", { d: 'M12 11v6m0-10v1' })] })),
|
|
10
|
+
alert: (_jsxs(_Fragment, { children: [_jsx("circle", { cx: '12', cy: '12', r: '9' }), _jsx("path", { d: 'M12 7v6m0 3v1' })] })),
|
|
11
|
+
warning: (_jsxs(_Fragment, { children: [_jsx("path", { d: 'm12 3 10 18H2L12 3Z' }), _jsx("path", { d: 'M12 9v4m0 3v1' })] })),
|
|
12
|
+
menu: _jsx("path", { d: 'M4 6h16M4 12h16M4 18h16' }),
|
|
13
|
+
sun: (_jsxs(_Fragment, { children: [_jsx("circle", { cx: '12', cy: '12', r: '4' }), _jsx("path", { d: 'M12 2v2m0 16v2M2 12h2m16 0h2M5 5l1.5 1.5m11 11L19 19M5 19l1.5-1.5m11-11L19 5' })] })),
|
|
14
|
+
moon: _jsx("path", { d: 'M20.5 13.2A8.5 8.5 0 0 1 10.8 3.5 8.5 8.5 0 1 0 20.5 13.2Z' }),
|
|
15
|
+
monitor: (_jsxs(_Fragment, { children: [_jsx("rect", { x: '3', y: '4', width: '18', height: '13', rx: '2' }), _jsx("path", { d: 'M8 21h8m-4-4v4' })] })),
|
|
16
|
+
'chevron-down': _jsx("path", { d: 'm7 10 5 5 5-5' }),
|
|
17
|
+
'chevron-forward': _jsx("path", { d: 'm9 6 6 6-6 6' }),
|
|
18
|
+
'arrow-back': _jsx("path", { d: 'M20 12H4m7-7-7 7 7 7' }),
|
|
19
|
+
'external-link': (_jsx(_Fragment, { children: _jsx("path", { d: 'M14 3h7v7m0-7L10 14M10 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5' }) })),
|
|
20
|
+
copy: (_jsxs(_Fragment, { children: [_jsx("rect", { x: '8', y: '8', width: '12', height: '13', rx: '2' }), _jsx("path", { d: 'M16 8V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h3' })] })),
|
|
21
|
+
play: _jsx("path", { d: 'm7 3 14 9-14 9V3Z' }),
|
|
22
|
+
settings: (_jsx(_Fragment, { children: _jsx("path", { d: 'M4 6h16M4 12h16M4 18h16M9 3v6m6 0v6m-6 0v6' }) })),
|
|
23
|
+
};
|
|
24
|
+
export const iconNames = Object.keys(shapes);
|
|
25
|
+
/** Static SVG only. Actions, focus, accessible button names and hit targets belong to the parent control. */
|
|
26
|
+
export const Icon = React.forwardRef(function Icon({ name, size = 'sm', decorative = true, label, className, ...props }, ref) {
|
|
27
|
+
return (_jsx("svg", { ...props, ref: ref, className: ['pui-icon', className].filter(Boolean).join(' '), "data-size": size, "data-directional": name === 'chevron-forward' || name === 'arrow-back' ? 'true' : undefined, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeLinecap: 'round', strokeLinejoin: 'round', focusable: 'false', "aria-hidden": decorative ? true : undefined, role: decorative ? undefined : 'img', "aria-label": decorative ? undefined : label, children: shapes[name] }));
|
|
28
|
+
});
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export { SizeProvider, type ComponentSize, type ComponentSizeAlias, } from './sizing.js';
|
|
2
|
+
export { Button, type ButtonVariant, type ButtonSize, type ButtonProps, } from './button.js';
|
|
3
|
+
export { Slot } from './slot.js';
|
|
4
|
+
export { Input } from './input.js';
|
|
5
|
+
export { Select, NativeSelect, NativeSelectOption, NativeSelectOptGroup, type SelectOption, type SelectProps, } from './select.js';
|
|
6
|
+
export { Popover, PopoverArrow, PopoverBackdrop, PopoverClose, PopoverDescription, PopoverHandle, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverRoot, PopoverTitle, PopoverTrigger, PopoverViewport, PopoverContent, } from './popover.js';
|
|
7
|
+
export { Tooltip, TooltipProvider } from './tooltip.js';
|
|
8
|
+
export { Dialog, AlertDialog, DialogBackdrop, DialogClose, DialogDescription, DialogHandle, DialogPopup, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DialogViewport, DialogContent, DialogHeader, DialogBody, DialogFooter, DialogCloseButton, AlertDialogBackdrop, AlertDialogClose, AlertDialogDescription, AlertDialogHandle, AlertDialogPopup, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, } from './dialog.js';
|
|
9
|
+
export { Menu, MenuArrow, MenuBackdrop, MenuCheckboxItem, MenuCheckboxItemIndicator, MenuClear, MenuEmpty, MenuFilterProvider, MenuGroup, MenuGroupLabel, MenuHandle, MenuInput, MenuItem, MenuLinkItem, MenuList, MenuPopup, MenuPortal, MenuPositioner, MenuRadioGroup, MenuRadioItem, MenuRadioItemIndicator, MenuRoot, MenuSeparator, MenuSubmenuRoot, MenuSubmenuTrigger, MenuTrigger, MenuViewport, MenuContent, } from './menu.js';
|
|
10
|
+
export { ScrollArea } from './scroll-area.js';
|
|
11
|
+
export { Sheet, Drawer, type PanelSide, SheetBackdrop, SheetClose, SheetDescription, SheetHandle, SheetPopup, SheetPortal, SheetRoot, SheetTitle, SheetTrigger, SheetViewport, SheetContent, SheetHeader, SheetBody, SheetFooter, DrawerBackdrop, DrawerClose, DrawerContent, DrawerDescription, DrawerHandle, DrawerIndent, DrawerIndentBackground, DrawerPopup, DrawerPortal, DrawerProvider, DrawerRoot, DrawerSwipeArea, DrawerTitle, DrawerTrigger, DrawerViewport, DrawerVirtualKeyboardProvider, DrawerPrimitiveContent, DrawerHeader, DrawerBody, DrawerFooter, } from './panels.js';
|
|
12
|
+
export { Container, Stack, Inline, Grid, GridItem, Surface, Heading, Text, PageHeader, Prose, type Space, } from './foundations.js';
|
|
13
|
+
export { Field, Fieldset, Form, Textarea, Checkbox, CheckboxGroup, Radio, RadioGroup, Switch, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldRoot, FieldValidity, FieldsetLegend, FieldsetRoot, CheckboxIndicator, CheckboxRoot, RadioIndicator, RadioRoot, SwitchRoot, SwitchThumb, } from './forms.js';
|
|
14
|
+
export { Tabs, Accordion, Collapsible, Avatar, Separator, Link, Breadcrumbs, TabsIndicator, TabsList, TabsPanel, TabsRoot, TabsTab, AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger, AvatarFallback, AvatarImage, AvatarRoot, AvatarStatus, BreadcrumbsRoot, BreadcrumbsList, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsSeparator, BreadcrumbsCurrent, } from './navigation.js';
|
|
15
|
+
export { Badge, StatusBadge, type BadgeProps, type StatusTone, } from './status.js';
|
|
16
|
+
export { Progress, Meter, Spinner, Skeleton, type SpinnerProps, type SkeletonProps, ProgressIndicator, ProgressLabel, ProgressRoot, ProgressTrack, ProgressValue, MeterIndicator, MeterLabel, MeterRoot, MeterTrack, MeterValue, } from './feedback.js';
|
|
17
|
+
export { Table, List, TableContainer, TableRoot, TableCaption, TableHead, TableBody, TableFoot, TableRow, TableHeaderCell, TableCell, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, } from './data.js';
|
|
18
|
+
export { InlineMessage, EmptyState, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './messages.js';
|
|
19
|
+
export { Card, CodeBlock, type CodeBlockProps, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './content.js';
|
|
20
|
+
export { Pagination, type PaginationProps } from './pagination.js';
|
|
21
|
+
export { Combobox, NumberField, ComboboxArrow, ComboboxBackdrop, ComboboxChip, ComboboxChipRemove, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxIcon, ComboboxInput, ComboboxInputGroup, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxList, ComboboxPopup, ComboboxPortal, ComboboxPositioner, ComboboxRoot, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, ComboboxContent, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldRoot, NumberFieldScrubArea, NumberFieldScrubAreaCursor, } from './advanced-forms.js';
|
|
22
|
+
export { Autocomplete, Slider, AutocompleteArrow, AutocompleteBackdrop, AutocompleteClear, AutocompleteCollection, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteIcon, AutocompleteInput, AutocompleteInputGroup, AutocompleteItem, AutocompleteList, AutocompletePopup, AutocompletePortal, AutocompletePositioner, AutocompleteRoot, AutocompleteRow, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue, AutocompleteContent, SliderControl, SliderIndicator, SliderLabel, SliderRoot, SliderThumb, SliderTrack, SliderValue, } from './input-extensions.js';
|
|
23
|
+
export { DirectionProvider } from '@base-ui/react/direction-provider';
|
|
24
|
+
export { Toggle, ToggleGroup, Toolbar, Menubar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarRoot, ToolbarSeparator, } from './commands.js';
|
|
25
|
+
export { ContextMenu, PreviewCard, ContextMenuArrow, ContextMenuBackdrop, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuLinkItem, ContextMenuPopup, ContextMenuPortal, ContextMenuPositioner, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuRoot, ContextMenuSeparator, ContextMenuSubmenuRoot, ContextMenuSubmenuTrigger, ContextMenuTrigger, ContextMenuContent, PreviewCardArrow, PreviewCardBackdrop, PreviewCardHandle, PreviewCardPopup, PreviewCardPortal, PreviewCardPositioner, PreviewCardRoot, PreviewCardTrigger, PreviewCardViewport, PreviewCardContent, } from './context-overlays.js';
|
|
26
|
+
export { NavigationMenu, NavigationMenuArrow, NavigationMenuBackdrop, NavigationMenuContent, NavigationMenuIcon, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPopup, NavigationMenuPortal, NavigationMenuPositioner, NavigationMenuRoot, NavigationMenuTrigger, NavigationMenuViewport, } from './navigation-menu.js';
|
|
27
|
+
export { OTPField, OTPFieldInput, OTPFieldRoot, OTPFieldSeparator, OTPFieldGroup, } from './otp-field.js';
|
|
28
|
+
export { Toast, type ToastRootProps, type ToastViewportProps, ToastAction, ToastArrow, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastPositioner, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToastIcon, ToastText, } from './toast.js';
|
|
29
|
+
export { FileUpload, type FileUploadProps, type UploadTransport, type FileUploadLabels, type FileChangeDetails, type FileRejection, type UploadState, } from './file-upload.js';
|
|
30
|
+
export { Icon, iconNames, type IconName, type IconProps } from './icon.js';
|
|
31
|
+
export { FilterBar, FilterBarRoot, FilterBarControls, FilterBarField, FilterBarActions, FilterBarSummary, } from './filter-bar.js';
|
|
32
|
+
export { AppShell, AppShellRoot, AppShellHeader, AppShellSidebar, AppShellContent, AppShellFooter, AppShellLabel, AppShellLink, } from './app-shell.js';
|
|
33
|
+
export { Tree, type TreeNode, type TreeProps } from './tree.js';
|
|
34
|
+
export { DatePicker, DateRangePicker, TimeField, DateLocaleProvider, type DatePickerProps, type DateRangePickerProps, type TimeFieldProps, type DateValue, type TimeValue, } from './date-picker.js';
|
|
35
|
+
export { Chart, type ChartDatum, type ChartSeries, type ChartProps, } from './chart.js';
|
|
36
|
+
export { SyntaxHighlighter, syntaxLanguages, type SyntaxHighlighterProps, } from './syntax-highlighter.js';
|
|
37
|
+
export { Markdown, type MarkdownProps } from './markdown.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
export { SizeProvider, } from './sizing.js';
|
|
3
|
+
export { Button, } from './button.js';
|
|
4
|
+
export { Slot } from './slot.js';
|
|
5
|
+
export { Input } from './input.js';
|
|
6
|
+
export { Select, NativeSelect, NativeSelectOption, NativeSelectOptGroup, } from './select.js';
|
|
7
|
+
export { Popover, PopoverArrow, PopoverBackdrop, PopoverClose, PopoverDescription, PopoverHandle, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverRoot, PopoverTitle, PopoverTrigger, PopoverViewport, PopoverContent, } from './popover.js';
|
|
8
|
+
export { Tooltip, TooltipProvider } from './tooltip.js';
|
|
9
|
+
export { Dialog, AlertDialog, DialogBackdrop, DialogClose, DialogDescription, DialogHandle, DialogPopup, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DialogViewport, DialogContent, DialogHeader, DialogBody, DialogFooter, DialogCloseButton, AlertDialogBackdrop, AlertDialogClose, AlertDialogDescription, AlertDialogHandle, AlertDialogPopup, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, } from './dialog.js';
|
|
10
|
+
export { Menu, MenuArrow, MenuBackdrop, MenuCheckboxItem, MenuCheckboxItemIndicator, MenuClear, MenuEmpty, MenuFilterProvider, MenuGroup, MenuGroupLabel, MenuHandle, MenuInput, MenuItem, MenuLinkItem, MenuList, MenuPopup, MenuPortal, MenuPositioner, MenuRadioGroup, MenuRadioItem, MenuRadioItemIndicator, MenuRoot, MenuSeparator, MenuSubmenuRoot, MenuSubmenuTrigger, MenuTrigger, MenuViewport, MenuContent, } from './menu.js';
|
|
11
|
+
export { ScrollArea } from './scroll-area.js';
|
|
12
|
+
export { Sheet, Drawer, SheetBackdrop, SheetClose, SheetDescription, SheetHandle, SheetPopup, SheetPortal, SheetRoot, SheetTitle, SheetTrigger, SheetViewport, SheetContent, SheetHeader, SheetBody, SheetFooter, DrawerBackdrop, DrawerClose, DrawerContent, DrawerDescription, DrawerHandle, DrawerIndent, DrawerIndentBackground, DrawerPopup, DrawerPortal, DrawerProvider, DrawerRoot, DrawerSwipeArea, DrawerTitle, DrawerTrigger, DrawerViewport, DrawerVirtualKeyboardProvider, DrawerPrimitiveContent, DrawerHeader, DrawerBody, DrawerFooter, } from './panels.js';
|
|
13
|
+
export { Container, Stack, Inline, Grid, GridItem, Surface, Heading, Text, PageHeader, Prose, } from './foundations.js';
|
|
14
|
+
export { Field, Fieldset, Form, Textarea, Checkbox, CheckboxGroup, Radio, RadioGroup, Switch, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldRoot, FieldValidity, FieldsetLegend, FieldsetRoot, CheckboxIndicator, CheckboxRoot, RadioIndicator, RadioRoot, SwitchRoot, SwitchThumb, } from './forms.js';
|
|
15
|
+
export { Tabs, Accordion, Collapsible, Avatar, Separator, Link, Breadcrumbs, TabsIndicator, TabsList, TabsPanel, TabsRoot, TabsTab, AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger, AvatarFallback, AvatarImage, AvatarRoot, AvatarStatus, BreadcrumbsRoot, BreadcrumbsList, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsSeparator, BreadcrumbsCurrent, } from './navigation.js';
|
|
16
|
+
export { Badge, StatusBadge, } from './status.js';
|
|
17
|
+
export { Progress, Meter, Spinner, Skeleton, ProgressIndicator, ProgressLabel, ProgressRoot, ProgressTrack, ProgressValue, MeterIndicator, MeterLabel, MeterRoot, MeterTrack, MeterValue, } from './feedback.js';
|
|
18
|
+
export { Table, List, TableContainer, TableRoot, TableCaption, TableHead, TableBody, TableFoot, TableRow, TableHeaderCell, TableCell, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, } from './data.js';
|
|
19
|
+
export { InlineMessage, EmptyState, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './messages.js';
|
|
20
|
+
export { Card, CodeBlock, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './content.js';
|
|
21
|
+
export { Pagination } from './pagination.js';
|
|
22
|
+
export { Combobox, NumberField, ComboboxArrow, ComboboxBackdrop, ComboboxChip, ComboboxChipRemove, ComboboxChips, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxIcon, ComboboxInput, ComboboxInputGroup, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxList, ComboboxPopup, ComboboxPortal, ComboboxPositioner, ComboboxRoot, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, ComboboxContent, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldRoot, NumberFieldScrubArea, NumberFieldScrubAreaCursor, } from './advanced-forms.js';
|
|
23
|
+
export { Autocomplete, Slider, AutocompleteArrow, AutocompleteBackdrop, AutocompleteClear, AutocompleteCollection, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteIcon, AutocompleteInput, AutocompleteInputGroup, AutocompleteItem, AutocompleteList, AutocompletePopup, AutocompletePortal, AutocompletePositioner, AutocompleteRoot, AutocompleteRow, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue, AutocompleteContent, SliderControl, SliderIndicator, SliderLabel, SliderRoot, SliderThumb, SliderTrack, SliderValue, } from './input-extensions.js';
|
|
24
|
+
export { DirectionProvider } from '@base-ui/react/direction-provider';
|
|
25
|
+
export { Toggle, ToggleGroup, Toolbar, Menubar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarRoot, ToolbarSeparator, } from './commands.js';
|
|
26
|
+
export { ContextMenu, PreviewCard, ContextMenuArrow, ContextMenuBackdrop, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuLinkItem, ContextMenuPopup, ContextMenuPortal, ContextMenuPositioner, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuRoot, ContextMenuSeparator, ContextMenuSubmenuRoot, ContextMenuSubmenuTrigger, ContextMenuTrigger, ContextMenuContent, PreviewCardArrow, PreviewCardBackdrop, PreviewCardHandle, PreviewCardPopup, PreviewCardPortal, PreviewCardPositioner, PreviewCardRoot, PreviewCardTrigger, PreviewCardViewport, PreviewCardContent, } from './context-overlays.js';
|
|
27
|
+
export { NavigationMenu, NavigationMenuArrow, NavigationMenuBackdrop, NavigationMenuContent, NavigationMenuIcon, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPopup, NavigationMenuPortal, NavigationMenuPositioner, NavigationMenuRoot, NavigationMenuTrigger, NavigationMenuViewport, } from './navigation-menu.js';
|
|
28
|
+
export { OTPField, OTPFieldInput, OTPFieldRoot, OTPFieldSeparator, OTPFieldGroup, } from './otp-field.js';
|
|
29
|
+
export { Toast, ToastAction, ToastArrow, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastPositioner, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToastIcon, ToastText, } from './toast.js';
|
|
30
|
+
export { FileUpload, } from './file-upload.js';
|
|
31
|
+
export { Icon, iconNames } from './icon.js';
|
|
32
|
+
export { FilterBar, FilterBarRoot, FilterBarControls, FilterBarField, FilterBarActions, FilterBarSummary, } from './filter-bar.js';
|
|
33
|
+
export { AppShell, AppShellRoot, AppShellHeader, AppShellSidebar, AppShellContent, AppShellFooter, AppShellLabel, AppShellLink, } from './app-shell.js';
|
|
34
|
+
export { Tree } from './tree.js';
|
|
35
|
+
export { DatePicker, DateRangePicker, TimeField, DateLocaleProvider, } from './date-picker.js';
|
|
36
|
+
export { Chart, } from './chart.js';
|
|
37
|
+
export { SyntaxHighlighter, syntaxLanguages, } from './syntax-highlighter.js';
|
|
38
|
+
export { Markdown } from './markdown.js';
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Autocomplete as BaseAutocomplete } from '@base-ui/react/autocomplete';
|
|
3
|
+
import { Slider as BaseSlider } from '@base-ui/react/slider';
|
|
4
|
+
declare const AutocompleteRoot: typeof BaseAutocomplete.Root;
|
|
5
|
+
export declare const Autocomplete: {
|
|
6
|
+
Root: typeof BaseAutocomplete.Root;
|
|
7
|
+
Content: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompletePopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
8
|
+
positionerProps?: React.ComponentPropsWithoutRef<typeof BaseAutocomplete.Positioner>;
|
|
9
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
Popup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompletePopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
11
|
+
size?: import("./sizing.js").ComponentSize;
|
|
12
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
Positioner: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompletePositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
14
|
+
size?: import("./sizing.js").ComponentSize;
|
|
15
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
Input: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteInputProps, "ref"> & React.RefAttributes<HTMLInputElement>, "ref">, "size"> & {
|
|
17
|
+
size?: import("./sizing.js").ComponentSize;
|
|
18
|
+
} & React.RefAttributes<HTMLInputElement>>;
|
|
19
|
+
List: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteListProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
20
|
+
size?: import("./sizing.js").ComponentSize;
|
|
21
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
Empty: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteEmptyProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
23
|
+
size?: import("./sizing.js").ComponentSize;
|
|
24
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
Status: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteStatusProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
26
|
+
size?: import("./sizing.js").ComponentSize;
|
|
27
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
Group: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
29
|
+
size?: import("./sizing.js").ComponentSize;
|
|
30
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
GroupLabel: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
32
|
+
size?: import("./sizing.js").ComponentSize;
|
|
33
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
Clear: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteClearProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
35
|
+
Trigger: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
36
|
+
InputGroup: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteInputGroupProps & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
37
|
+
size?: import("./sizing.js").ComponentSize;
|
|
38
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
39
|
+
Item: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteItemProps & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
40
|
+
size?: import("./sizing.js").ComponentSize;
|
|
41
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
42
|
+
Separator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
43
|
+
size?: import("./sizing.js").ComponentSize;
|
|
44
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
45
|
+
Value: typeof BaseAutocomplete.Value;
|
|
46
|
+
Icon: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
|
|
47
|
+
Portal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompletePortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
48
|
+
Backdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
49
|
+
Arrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
50
|
+
Row: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteRowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
51
|
+
Collection: typeof BaseAutocomplete.Collection;
|
|
52
|
+
useFilter: typeof import("@base-ui/react/internals/filter").getFilter;
|
|
53
|
+
useFilteredItems: typeof BaseAutocomplete.useFilteredItems;
|
|
54
|
+
};
|
|
55
|
+
declare function SliderRoot<Value extends number | readonly number[]>({ value, defaultValue, onValueChange, ref, className, form, thumbAlignment, ...props }: BaseSlider.Root.Props<Value> & {
|
|
56
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
57
|
+
}): React.JSX.Element;
|
|
58
|
+
export declare const Slider: {
|
|
59
|
+
Root: typeof SliderRoot;
|
|
60
|
+
Label: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
61
|
+
size?: import("./sizing.js").ComponentSize;
|
|
62
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
63
|
+
Value: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderValueProps, "ref"> & React.RefAttributes<HTMLOutputElement>, "ref">, "size"> & {
|
|
64
|
+
size?: import("./sizing.js").ComponentSize;
|
|
65
|
+
} & React.RefAttributes<HTMLOutputElement>>;
|
|
66
|
+
Control: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderControlProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
67
|
+
size?: import("./sizing.js").ComponentSize;
|
|
68
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
69
|
+
Track: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderTrackProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
70
|
+
size?: import("./sizing.js").ComponentSize;
|
|
71
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
72
|
+
Indicator: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderIndicatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
73
|
+
size?: import("./sizing.js").ComponentSize;
|
|
74
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
75
|
+
Thumb: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderThumbProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
76
|
+
size?: import("./sizing.js").ComponentSize;
|
|
77
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
78
|
+
};
|
|
79
|
+
export { AutocompleteRoot, SliderRoot };
|
|
80
|
+
export declare const AutocompleteArrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>, AutocompleteBackdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>, AutocompleteClear: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteClearProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>, AutocompleteCollection: typeof BaseAutocomplete.Collection, AutocompleteEmpty: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteEmptyProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
81
|
+
size?: import("./sizing.js").ComponentSize;
|
|
82
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompleteGroup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
83
|
+
size?: import("./sizing.js").ComponentSize;
|
|
84
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompleteGroupLabel: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
85
|
+
size?: import("./sizing.js").ComponentSize;
|
|
86
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompleteIcon: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>, AutocompleteInput: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteInputProps, "ref"> & React.RefAttributes<HTMLInputElement>, "ref">, "size"> & {
|
|
87
|
+
size?: import("./sizing.js").ComponentSize;
|
|
88
|
+
} & React.RefAttributes<HTMLInputElement>>, AutocompleteInputGroup: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteInputGroupProps & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
89
|
+
size?: import("./sizing.js").ComponentSize;
|
|
90
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompleteItem: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteItemProps & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
91
|
+
size?: import("./sizing.js").ComponentSize;
|
|
92
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompleteList: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteListProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
93
|
+
size?: import("./sizing.js").ComponentSize;
|
|
94
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompletePopup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompletePopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
95
|
+
size?: import("./sizing.js").ComponentSize;
|
|
96
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompletePortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompletePortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>, AutocompletePositioner: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompletePositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
97
|
+
size?: import("./sizing.js").ComponentSize;
|
|
98
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompleteRow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteRowProps, "ref"> & React.RefAttributes<HTMLDivElement>>, AutocompleteSeparator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
99
|
+
size?: import("./sizing.js").ComponentSize;
|
|
100
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompleteStatus: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/autocomplete").AutocompleteStatusProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
101
|
+
size?: import("./sizing.js").ComponentSize;
|
|
102
|
+
} & React.RefAttributes<HTMLDivElement>>, AutocompleteTrigger: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/autocomplete").AutocompleteTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>, AutocompleteValue: typeof BaseAutocomplete.Value, AutocompleteContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/autocomplete").AutocompletePopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
103
|
+
positionerProps?: React.ComponentPropsWithoutRef<typeof BaseAutocomplete.Positioner>;
|
|
104
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
105
|
+
export declare const SliderControl: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderControlProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
106
|
+
size?: import("./sizing.js").ComponentSize;
|
|
107
|
+
} & React.RefAttributes<HTMLDivElement>>, SliderIndicator: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderIndicatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
108
|
+
size?: import("./sizing.js").ComponentSize;
|
|
109
|
+
} & React.RefAttributes<HTMLDivElement>>, SliderLabel: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
110
|
+
size?: import("./sizing.js").ComponentSize;
|
|
111
|
+
} & React.RefAttributes<HTMLDivElement>>, SliderThumb: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderThumbProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
112
|
+
size?: import("./sizing.js").ComponentSize;
|
|
113
|
+
} & React.RefAttributes<HTMLDivElement>>, SliderTrack: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderTrackProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
|
|
114
|
+
size?: import("./sizing.js").ComponentSize;
|
|
115
|
+
} & React.RefAttributes<HTMLDivElement>>, SliderValue: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/slider").SliderValueProps, "ref"> & React.RefAttributes<HTMLOutputElement>, "ref">, "size"> & {
|
|
116
|
+
size?: import("./sizing.js").ComponentSize;
|
|
117
|
+
} & React.RefAttributes<HTMLOutputElement>>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Autocomplete as BaseAutocomplete } from '@base-ui/react/autocomplete';
|
|
5
|
+
import { Slider as BaseSlider } from '@base-ui/react/slider';
|
|
6
|
+
import { Combobox } from './advanced-forms.js';
|
|
7
|
+
import { skin, part } from './parts.js';
|
|
8
|
+
import { useResetValue, useRootRef } from './form-state.js';
|
|
9
|
+
const AutocompleteRoot = function AutocompleteRoot({ children, form, value, defaultValue, onValueChange, ...props }) {
|
|
10
|
+
const anchor = React.useRef(null);
|
|
11
|
+
const [query, setQuery, revision] = useResetValue(value, defaultValue ?? '', anchor, form);
|
|
12
|
+
return (_jsxs(BaseAutocomplete.Root, { ...props, form: form, value: query, onValueChange: (next, event) => {
|
|
13
|
+
onValueChange?.(next, event);
|
|
14
|
+
if (value === undefined && !event.isCanceled)
|
|
15
|
+
setQuery(next);
|
|
16
|
+
}, children: [_jsx("span", { hidden: true, ref: anchor }), children] }, revision));
|
|
17
|
+
};
|
|
18
|
+
const AutoTrigger = React.forwardRef(function AutoTrigger({ className, children, ...props }, ref) {
|
|
19
|
+
return (_jsx(BaseAutocomplete.Trigger, { "aria-label": 'Show suggestions', ...props, ref: ref, className: skin('pui-combobox-action', className), children: children ?? (_jsx("svg", { width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "aria-hidden": 'true', children: _jsx("path", { d: 'm6 9 6 6 6-6' }) })) }));
|
|
20
|
+
});
|
|
21
|
+
const AutoClear = React.forwardRef(function AutoClear(props, ref) {
|
|
22
|
+
return _jsx(Combobox.Clear, { "aria-label": 'Clear input', ...props, ref: ref });
|
|
23
|
+
});
|
|
24
|
+
export const Autocomplete = {
|
|
25
|
+
...BaseAutocomplete,
|
|
26
|
+
Root: AutocompleteRoot,
|
|
27
|
+
Content: Combobox.Content,
|
|
28
|
+
Popup: Combobox.Popup,
|
|
29
|
+
Positioner: Combobox.Positioner,
|
|
30
|
+
Input: Combobox.Input,
|
|
31
|
+
List: Combobox.List,
|
|
32
|
+
Empty: Combobox.Empty,
|
|
33
|
+
Status: Combobox.Status,
|
|
34
|
+
Group: Combobox.Group,
|
|
35
|
+
GroupLabel: Combobox.GroupLabel,
|
|
36
|
+
Clear: AutoClear,
|
|
37
|
+
Trigger: AutoTrigger,
|
|
38
|
+
InputGroup: part(BaseAutocomplete.InputGroup, 'pui-combobox-group'),
|
|
39
|
+
Item: part(BaseAutocomplete.Item, 'pui-combobox-item'),
|
|
40
|
+
Separator: part(BaseAutocomplete.Separator, 'pui-combobox-separator'),
|
|
41
|
+
};
|
|
42
|
+
function SliderRoot({ value, defaultValue, onValueChange, ref, className, form, thumbAlignment = 'edge', ...props }) {
|
|
43
|
+
const [element, attach] = useRootRef(ref);
|
|
44
|
+
const [selected, setSelected] = useResetValue(value, (defaultValue ?? props.min ?? 0), element, form);
|
|
45
|
+
return (_jsx(BaseSlider.Root, { ...props, form: form, ref: attach, value: selected, thumbAlignment: thumbAlignment, className: skin('pui-slider', className), onValueChange: (next, event) => {
|
|
46
|
+
onValueChange?.(next, event);
|
|
47
|
+
if (value === undefined && !event.isCanceled)
|
|
48
|
+
setSelected(next);
|
|
49
|
+
} }));
|
|
50
|
+
}
|
|
51
|
+
export const Slider = {
|
|
52
|
+
...BaseSlider,
|
|
53
|
+
Root: SliderRoot,
|
|
54
|
+
Label: part(BaseSlider.Label, 'pui-slider-label'),
|
|
55
|
+
Value: part(BaseSlider.Value, 'pui-slider-value'),
|
|
56
|
+
Control: part(BaseSlider.Control, 'pui-slider-control'),
|
|
57
|
+
Track: part(BaseSlider.Track, 'pui-slider-track'),
|
|
58
|
+
Indicator: part(BaseSlider.Indicator, 'pui-slider-indicator'),
|
|
59
|
+
Thumb: part(BaseSlider.Thumb, 'pui-slider-thumb'),
|
|
60
|
+
};
|
|
61
|
+
// Flat names for React Server Components, which cannot dot into client exports.
|
|
62
|
+
export { AutocompleteRoot, SliderRoot };
|
|
63
|
+
export const { Arrow: AutocompleteArrow, Backdrop: AutocompleteBackdrop, Clear: AutocompleteClear, Collection: AutocompleteCollection, Empty: AutocompleteEmpty, Group: AutocompleteGroup, GroupLabel: AutocompleteGroupLabel, Icon: AutocompleteIcon, Input: AutocompleteInput, InputGroup: AutocompleteInputGroup, Item: AutocompleteItem, List: AutocompleteList, Popup: AutocompletePopup, Portal: AutocompletePortal, Positioner: AutocompletePositioner, Row: AutocompleteRow, Separator: AutocompleteSeparator, Status: AutocompleteStatus, Trigger: AutocompleteTrigger, Value: AutocompleteValue, Content: AutocompleteContent, } = Autocomplete;
|
|
64
|
+
export const { Control: SliderControl, Indicator: SliderIndicator, Label: SliderLabel, Thumb: SliderThumb, Track: SliderTrack, Value: SliderValue, } = Slider;
|
package/dist/input.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type ComponentSizeAlias } from './sizing.js';
|
|
3
|
+
export declare const Input: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "size"> & {
|
|
4
|
+
size?: number | ComponentSizeAlias;
|
|
5
|
+
leadingIcon?: React.ReactNode;
|
|
6
|
+
wrapperClassName?: string;
|
|
7
|
+
} & React.RefAttributes<HTMLInputElement>>;
|
package/dist/input.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useComponentSize } from './sizing.js';
|
|
5
|
+
import { Input as BaseInput } from '@base-ui/react/input';
|
|
6
|
+
const cx = (...v) => v.filter(Boolean).join(' ');
|
|
7
|
+
export const Input = React.forwardRef(function Input({ className, leadingIcon, wrapperClassName, size, ...props }, ref) {
|
|
8
|
+
const scheme = useComponentSize(typeof size === 'string' ? size : undefined);
|
|
9
|
+
return (_jsxs("span", { "data-ui-size": scheme, className: cx('pui-control', wrapperClassName), "data-leading-icon": leadingIcon ? '' : undefined, "data-disabled": props.disabled || undefined, children: [leadingIcon && (_jsx("span", { className: 'pui-control-icon control-icon', "aria-hidden": 'true', children: leadingIcon })), _jsx(BaseInput, { ...props, size: typeof size === 'number' ? size : undefined, ref: ref, className: cx('pui-input', className) })] }));
|
|
10
|
+
});
|