@surflane/ui 0.1.0 → 0.3.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/README.md +8 -8
- package/dist/advanced-forms.d.ts +2 -2
- package/dist/advanced-forms.js +39 -39
- package/dist/app-shell.d.ts +3 -2
- package/dist/app-shell.js +29 -13
- package/dist/button.d.ts +5 -5
- package/dist/button.js +12 -12
- package/dist/chart.d.ts +3 -3
- package/dist/chart.js +36 -34
- package/dist/commands.d.ts +5 -5
- package/dist/commands.js +17 -17
- package/dist/content.d.ts +2 -2
- package/dist/content.js +66 -28
- package/dist/context-overlays.d.ts +3 -3
- package/dist/context-overlays.js +11 -11
- package/dist/data.d.ts +58 -13
- package/dist/data.js +63 -21
- package/dist/date-picker.d.ts +8 -8
- package/dist/date-picker.js +18 -18
- package/dist/dialog-focus.js +7 -7
- package/dist/dialog.d.ts +5 -5
- package/dist/dialog.js +16 -16
- package/dist/feedback.d.ts +5 -5
- package/dist/feedback.js +20 -20
- package/dist/file-upload.d.ts +9 -9
- package/dist/file-upload.js +64 -63
- package/dist/filter-bar.d.ts +1 -1
- package/dist/filter-bar.js +9 -9
- package/dist/form-state.d.ts +1 -1
- package/dist/form-state.js +11 -11
- package/dist/forms.d.ts +5 -5
- package/dist/forms.js +32 -32
- package/dist/foundations.d.ts +10 -10
- package/dist/foundations.js +26 -26
- package/dist/icon.d.ts +8 -7
- package/dist/icon.js +23 -22
- package/dist/index.d.ts +38 -37
- package/dist/index.js +39 -38
- package/dist/input-extensions.d.ts +3 -3
- package/dist/input-extensions.js +21 -21
- package/dist/input.d.ts +2 -2
- package/dist/input.js +7 -7
- package/dist/markdown.d.ts +2 -2
- package/dist/markdown.js +38 -38
- package/dist/menu.d.ts +2 -2
- package/dist/menu.js +19 -19
- package/dist/messages.d.ts +2 -2
- package/dist/messages.js +18 -18
- package/dist/navigation-menu.d.ts +2 -2
- package/dist/navigation-menu.js +16 -16
- package/dist/navigation.d.ts +5 -5
- package/dist/navigation.js +40 -40
- package/dist/otp-field.d.ts +1 -1
- package/dist/otp-field.js +14 -14
- package/dist/pagination.d.ts +2 -2
- package/dist/pagination.js +12 -12
- package/dist/panels.d.ts +8 -8
- package/dist/panels.js +39 -39
- package/dist/parts.d.ts +2 -2
- package/dist/parts.js +8 -8
- package/dist/popover.d.ts +3 -3
- package/dist/popover.js +6 -6
- package/dist/scroll-area.d.ts +1 -1
- package/dist/scroll-area.js +20 -20
- package/dist/select.d.ts +8 -8
- package/dist/select.js +21 -21
- package/dist/sizing.d.ts +3 -3
- package/dist/sizing.js +9 -9
- package/dist/slot.d.ts +1 -1
- package/dist/slot.js +4 -4
- package/dist/status.d.ts +4 -4
- package/dist/status.js +8 -8
- package/dist/syntax-engine.js +43 -43
- package/dist/syntax-highlighter.d.ts +2 -2
- package/dist/syntax-highlighter.js +32 -32
- package/dist/table-selection.d.ts +31 -0
- package/dist/table-selection.js +50 -0
- package/dist/toast.d.ts +4 -4
- package/dist/toast.js +33 -33
- package/dist/tone-transition.d.ts +1 -1
- package/dist/tone-transition.js +17 -17
- package/dist/tooltip.d.ts +1 -1
- package/dist/tooltip.js +4 -4
- package/dist/tree.d.ts +4 -4
- package/dist/tree.js +60 -60
- package/package.json +2 -2
- package/src/styles.css +266 -142
package/dist/navigation.js
CHANGED
|
@@ -1,95 +1,95 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import * as React from
|
|
4
|
-
import { useComponentSize } from
|
|
5
|
-
import { Tabs as BaseTabs } from
|
|
6
|
-
import { Accordion as BaseAccordion } from
|
|
7
|
-
import { Collapsible as BaseCollapsible } from
|
|
8
|
-
import { Avatar as BaseAvatar } from
|
|
9
|
-
import { Separator as BaseSeparator } from
|
|
10
|
-
import { skin, part } from
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useComponentSize } from './sizing.js';
|
|
5
|
+
import { Tabs as BaseTabs } from '@base-ui/react/tabs';
|
|
6
|
+
import { Accordion as BaseAccordion } from '@base-ui/react/accordion';
|
|
7
|
+
import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible';
|
|
8
|
+
import { Avatar as BaseAvatar } from '@base-ui/react/avatar';
|
|
9
|
+
import { Separator as BaseSeparator } from '@base-ui/react/separator';
|
|
10
|
+
import { skin, part } from './parts.js';
|
|
11
11
|
export const Tabs = {
|
|
12
12
|
...BaseTabs,
|
|
13
|
-
Root: part(BaseTabs.Root,
|
|
14
|
-
List: part(BaseTabs.List,
|
|
15
|
-
Tab: part(BaseTabs.Tab,
|
|
16
|
-
Panel: part(BaseTabs.Panel,
|
|
17
|
-
Indicator: part(BaseTabs.Indicator,
|
|
13
|
+
Root: part(BaseTabs.Root, 'pui-tabs'),
|
|
14
|
+
List: part(BaseTabs.List, 'pui-tabs-list'),
|
|
15
|
+
Tab: part(BaseTabs.Tab, 'pui-tabs-tab'),
|
|
16
|
+
Panel: part(BaseTabs.Panel, 'pui-tabs-panel'),
|
|
17
|
+
Indicator: part(BaseTabs.Indicator, 'pui-tabs-indicator'),
|
|
18
18
|
};
|
|
19
19
|
function Chevron() {
|
|
20
|
-
return (_jsx("svg", { className:
|
|
20
|
+
return (_jsx("svg", { className: 'pui-disclosure-chevron', width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.5', "aria-hidden": 'true', children: _jsx("path", { d: 'm9 6 6 6-6 6' }) }));
|
|
21
21
|
}
|
|
22
22
|
function AccordionRoot({ className, ...props }) {
|
|
23
|
-
return (_jsx(BaseAccordion.Root, { ...props, className: skin(
|
|
23
|
+
return (_jsx(BaseAccordion.Root, { ...props, className: skin('pui-accordion', className) }));
|
|
24
24
|
}
|
|
25
25
|
const AccordionTrigger = React.forwardRef(function AccordionTrigger({ className, children, indicator, ...props }, ref) {
|
|
26
|
-
return (_jsxs(BaseAccordion.Trigger, { ...props, ref: ref, className: skin(
|
|
26
|
+
return (_jsxs(BaseAccordion.Trigger, { ...props, ref: ref, className: skin('pui-disclosure-trigger', className), children: [_jsx("span", { className: 'pui-disclosure-label', children: children }), indicator === undefined ? _jsx(Chevron, {}) : indicator] }));
|
|
27
27
|
});
|
|
28
28
|
const AccordionPanel = React.forwardRef(function AccordionPanel({ className, children, render, ...props }, ref) {
|
|
29
|
-
return (_jsx(BaseAccordion.Panel, { ...props, ref: ref, className: skin(
|
|
30
|
-
((panelProps, state) => (_jsx("div", { ...panelProps, inert: state.transitionStatus ===
|
|
29
|
+
return (_jsx(BaseAccordion.Panel, { ...props, ref: ref, className: skin('pui-accordion-panel', className), render: render ??
|
|
30
|
+
((panelProps, state) => (_jsx("div", { ...panelProps, inert: state.transitionStatus === 'ending' || undefined, "aria-hidden": state.transitionStatus === 'ending' || undefined }))), children: _jsx("div", { className: 'pui-disclosure-body', children: children }) }));
|
|
31
31
|
});
|
|
32
32
|
export const Accordion = {
|
|
33
33
|
...BaseAccordion,
|
|
34
34
|
Root: AccordionRoot,
|
|
35
|
-
Item: part(BaseAccordion.Item,
|
|
36
|
-
Header: part(BaseAccordion.Header,
|
|
35
|
+
Item: part(BaseAccordion.Item, 'pui-accordion-item'),
|
|
36
|
+
Header: part(BaseAccordion.Header, 'pui-accordion-header'),
|
|
37
37
|
Trigger: AccordionTrigger,
|
|
38
38
|
Panel: AccordionPanel,
|
|
39
39
|
};
|
|
40
40
|
const CollapsibleTrigger = React.forwardRef(function CollapsibleTrigger({ className, children, indicator, ...props }, ref) {
|
|
41
|
-
return (_jsxs(BaseCollapsible.Trigger, { ...props, ref: ref, className: skin(
|
|
41
|
+
return (_jsxs(BaseCollapsible.Trigger, { ...props, ref: ref, className: skin('pui-disclosure-trigger', className), children: [_jsx("span", { className: 'pui-disclosure-label', children: children }), indicator === undefined ? _jsx(Chevron, {}) : indicator] }));
|
|
42
42
|
});
|
|
43
43
|
const CollapsiblePanel = React.forwardRef(function CollapsiblePanel({ className, children, ...props }, ref) {
|
|
44
|
-
return (_jsx(BaseCollapsible.Panel, { ...props, ref: ref, className: skin(
|
|
44
|
+
return (_jsx(BaseCollapsible.Panel, { ...props, ref: ref, className: skin('pui-collapsible-panel', className), children: _jsx("div", { className: 'pui-disclosure-body', children: children }) }));
|
|
45
45
|
});
|
|
46
46
|
export const Collapsible = {
|
|
47
47
|
...BaseCollapsible,
|
|
48
|
-
Root: part(BaseCollapsible.Root,
|
|
48
|
+
Root: part(BaseCollapsible.Root, 'pui-collapsible'),
|
|
49
49
|
Trigger: CollapsibleTrigger,
|
|
50
50
|
Panel: CollapsiblePanel,
|
|
51
51
|
};
|
|
52
52
|
const AvatarRoot = React.forwardRef(function AvatarRoot({ size, className, ...props }, ref) {
|
|
53
53
|
const scheme = useComponentSize(size);
|
|
54
|
-
return (_jsx(BaseAvatar.Root, { ...props, ref: ref, "data-size": size, "data-ui-size": scheme, className: skin(
|
|
54
|
+
return (_jsx(BaseAvatar.Root, { ...props, ref: ref, "data-size": size, "data-ui-size": scheme, className: skin('pui-avatar', className) }));
|
|
55
55
|
});
|
|
56
56
|
function Person() {
|
|
57
|
-
return (_jsxs("svg", { width:
|
|
57
|
+
return (_jsxs("svg", { width: '18', height: '18', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.5', "aria-hidden": 'true', children: [_jsx("circle", { cx: '12', cy: '8', r: '4' }), _jsx("path", { d: 'M4 21v-2a8 8 0 0 1 16 0v2' })] }));
|
|
58
58
|
}
|
|
59
59
|
const AvatarFallback = React.forwardRef(function AvatarFallback({ children, className, ...props }, ref) {
|
|
60
|
-
return (_jsx(BaseAvatar.Fallback, { ...props, ref: ref, className: skin(
|
|
60
|
+
return (_jsx(BaseAvatar.Fallback, { ...props, ref: ref, className: skin('pui-avatar-fallback', className), children: children ?? _jsx(Person, {}) }));
|
|
61
61
|
});
|
|
62
62
|
export const Avatar = {
|
|
63
63
|
...BaseAvatar,
|
|
64
64
|
Root: AvatarRoot,
|
|
65
|
-
Status: part(
|
|
65
|
+
Status: part('span', 'pui-avatar-status'),
|
|
66
66
|
Fallback: AvatarFallback,
|
|
67
|
-
Image: part(BaseAvatar.Image,
|
|
67
|
+
Image: part(BaseAvatar.Image, 'pui-avatar-image'),
|
|
68
68
|
};
|
|
69
69
|
export const Separator = React.forwardRef(function Separator({ inset = false, className, ...props }, ref) {
|
|
70
|
-
return (_jsx(BaseSeparator, { ...props, ref: ref, "data-inset": inset || undefined, className: skin(
|
|
70
|
+
return (_jsx(BaseSeparator, { ...props, ref: ref, "data-inset": inset || undefined, className: skin('pui-separator', className) }));
|
|
71
71
|
});
|
|
72
72
|
export const Link = React.forwardRef(function Link({ className, ...props }, ref) {
|
|
73
|
-
return (_jsx("a", { ...props, ref: ref, className: [
|
|
73
|
+
return (_jsx("a", { ...props, ref: ref, className: ['pui-link', className].filter(Boolean).join(' ') }));
|
|
74
74
|
});
|
|
75
|
-
const BreadcrumbRoot = React.forwardRef(function BreadcrumbRoot({ className,
|
|
76
|
-
return (_jsx("nav", { ...props, ref: ref, "aria-label": label, className: [
|
|
75
|
+
const BreadcrumbRoot = React.forwardRef(function BreadcrumbRoot({ className, 'aria-label': label = 'Breadcrumb', ...props }, ref) {
|
|
76
|
+
return (_jsx("nav", { ...props, ref: ref, "aria-label": label, className: ['pui-breadcrumbs', className].filter(Boolean).join(' ') }));
|
|
77
77
|
});
|
|
78
|
-
const BreadcrumbList = React.forwardRef(function BreadcrumbList({ className, role =
|
|
79
|
-
return (_jsx("ol", { ...props, role: role, ref: ref, className: [
|
|
78
|
+
const BreadcrumbList = React.forwardRef(function BreadcrumbList({ className, role = 'list', ...props }, ref) {
|
|
79
|
+
return (_jsx("ol", { ...props, role: role, ref: ref, className: ['pui-breadcrumb-list', className].filter(Boolean).join(' ') }));
|
|
80
80
|
});
|
|
81
81
|
const BreadcrumbItem = React.forwardRef(function BreadcrumbItem({ className, ...props }, ref) {
|
|
82
|
-
return (_jsx("li", { ...props, ref: ref, className: [
|
|
82
|
+
return (_jsx("li", { ...props, ref: ref, className: ['pui-breadcrumb-item', className].filter(Boolean).join(' ') }));
|
|
83
83
|
});
|
|
84
84
|
function BreadcrumbSeparator({ className, ...props }) {
|
|
85
|
-
return (_jsx("span", { ...props, className: [
|
|
85
|
+
return (_jsx("span", { ...props, className: ['pui-breadcrumb-separator', className]
|
|
86
86
|
.filter(Boolean)
|
|
87
|
-
.join(
|
|
87
|
+
.join(' '), "aria-hidden": 'true', children: _jsx(Chevron, {}) }));
|
|
88
88
|
}
|
|
89
89
|
function BreadcrumbCurrent({ className, ...props }) {
|
|
90
|
-
return (_jsx("span", { ...props, className: [
|
|
90
|
+
return (_jsx("span", { ...props, className: ['pui-breadcrumb-current', className]
|
|
91
91
|
.filter(Boolean)
|
|
92
|
-
.join(
|
|
92
|
+
.join(' '), "aria-current": 'page' }));
|
|
93
93
|
}
|
|
94
94
|
export const Breadcrumbs = {
|
|
95
95
|
Root: BreadcrumbRoot,
|
package/dist/otp-field.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as React from
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
export declare const OTPField: {
|
|
3
3
|
Root: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/otp-field").OTPFieldRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
4
4
|
Input: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/otp-field").OTPFieldInputProps, "ref"> & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
package/dist/otp-field.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import * as React from
|
|
4
|
-
import { useRender } from
|
|
5
|
-
import { OTPField as BaseOTPField } from
|
|
6
|
-
import { part, skin } from
|
|
7
|
-
import { useResetValue, useRootRef } from
|
|
8
|
-
const Root = React.forwardRef(function Root({ value, defaultValue =
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useRender } from '@base-ui/react/use-render';
|
|
5
|
+
import { OTPField as BaseOTPField } from '@base-ui/react/otp-field';
|
|
6
|
+
import { part, skin } from './parts.js';
|
|
7
|
+
import { useResetValue, useRootRef } from './form-state.js';
|
|
8
|
+
const Root = React.forwardRef(function Root({ value, defaultValue = '', form, onValueChange, className, ...props }, forwardedRef) {
|
|
9
9
|
const [element, ref] = useRootRef(forwardedRef);
|
|
10
10
|
const [local, setLocal, revision] = useResetValue(value, defaultValue, element, form);
|
|
11
|
-
return (_jsx(BaseOTPField.Root, { ...props, ref: ref, form: form, value: local, className: skin(
|
|
11
|
+
return (_jsx(BaseOTPField.Root, { ...props, ref: ref, form: form, value: local, className: skin('pui-otp-field', className), onValueChange: (next, event) => {
|
|
12
12
|
onValueChange?.(next, event);
|
|
13
13
|
if (value === undefined && !event.isCanceled)
|
|
14
14
|
setLocal(next);
|
|
15
15
|
} }, revision));
|
|
16
16
|
});
|
|
17
17
|
const Separator = React.forwardRef(function Separator({ className, ...props }, ref) {
|
|
18
|
-
return (_jsx(BaseOTPField.Separator, { "aria-hidden":
|
|
18
|
+
return (_jsx(BaseOTPField.Separator, { "aria-hidden": 'true', ...props, ref: ref, className: skin('pui-otp-separator', className) }));
|
|
19
19
|
});
|
|
20
20
|
// Preserve Base UI's DOM refs and user render composition while fixing native-validation ARIA.
|
|
21
21
|
function SlotElement({ domProps, state, render, }) {
|
|
22
22
|
const { ref, ...props } = domProps;
|
|
23
23
|
return useRender({
|
|
24
|
-
defaultTagName:
|
|
24
|
+
defaultTagName: 'input',
|
|
25
25
|
ref,
|
|
26
|
-
render: typeof render ===
|
|
26
|
+
render: typeof render === 'function'
|
|
27
27
|
? (nextProps) => render(nextProps, state)
|
|
28
28
|
: render,
|
|
29
29
|
props: {
|
|
30
30
|
...props,
|
|
31
|
-
|
|
31
|
+
'aria-invalid': !state.disabled && state.valid === false ? true : props['aria-invalid'],
|
|
32
32
|
},
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
const Input = React.forwardRef(function Input({ render, className, ...props }, ref) {
|
|
36
|
-
return (_jsx(BaseOTPField.Input, { ...props, ref: ref, className: skin(
|
|
36
|
+
return (_jsx(BaseOTPField.Input, { ...props, ref: ref, className: skin('pui-input pui-otp-input', className), render: (domProps, state) => (_jsx(SlotElement, { domProps: domProps, state: state, render: render })) }));
|
|
37
37
|
});
|
|
38
38
|
export const OTPField = {
|
|
39
39
|
...BaseOTPField,
|
|
40
40
|
Root,
|
|
41
41
|
Input,
|
|
42
|
-
Group: part(
|
|
42
|
+
Group: part('div', 'pui-otp-group'),
|
|
43
43
|
Separator,
|
|
44
44
|
};
|
|
45
45
|
// Flat names for React Server Components, which cannot dot into client exports.
|
package/dist/pagination.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
type CommonPaginationProps = Omit<React.ComponentPropsWithoutRef<
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type CommonPaginationProps = Omit<React.ComponentPropsWithoutRef<'nav'>, 'children'> & {
|
|
3
3
|
page: number;
|
|
4
4
|
pageCount: number;
|
|
5
5
|
siblings?: 0 | 1 | 2;
|
package/dist/pagination.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import * as React from
|
|
4
|
-
import { Button } from
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Button } from './button.js';
|
|
5
5
|
function Chevron({ next = false }) {
|
|
6
|
-
return (_jsx("svg", { className:
|
|
6
|
+
return (_jsx("svg", { className: 'pui-pagination-arrow', width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "aria-hidden": 'true', children: _jsx("path", { d: next ? 'm9 6 6 6-6 6' : 'm15 6-6 6 6 6' }) }));
|
|
7
7
|
}
|
|
8
|
-
export const Pagination = React.forwardRef(function Pagination({ page, pageCount, siblings = 1, disabled = false, labels, getPageHref, onPageChange, className,
|
|
8
|
+
export const Pagination = React.forwardRef(function Pagination({ page, pageCount, siblings = 1, disabled = false, labels, getPageHref, onPageChange, className, 'aria-label': ariaLabel = 'Pagination', ...props }, ref) {
|
|
9
9
|
const count = Number.isFinite(pageCount)
|
|
10
10
|
? Math.min(Number.MAX_SAFE_INTEGER, Math.max(0, Math.floor(pageCount)))
|
|
11
11
|
: 0;
|
|
@@ -27,18 +27,18 @@ export const Pagination = React.forwardRef(function Pagination({ page, pageCount
|
|
|
27
27
|
});
|
|
28
28
|
function control(target, name, children, boundary = false) {
|
|
29
29
|
const inactive = disabled || boundary;
|
|
30
|
-
const currentPage = !boundary && target === current && typeof children ===
|
|
30
|
+
const currentPage = !boundary && target === current && typeof children === 'number';
|
|
31
31
|
const attributes = {
|
|
32
|
-
className:
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
className: 'pui-pagination-control',
|
|
33
|
+
'aria-label': name,
|
|
34
|
+
'aria-current': currentPage ? 'page' : undefined,
|
|
35
35
|
};
|
|
36
36
|
if (getPageHref)
|
|
37
|
-
return inactive ? (_jsx("span", { ...attributes, "aria-disabled":
|
|
38
|
-
return (_jsx(Button, { ...attributes, variant:
|
|
37
|
+
return inactive ? (_jsx("span", { ...attributes, "aria-disabled": 'true', children: children })) : (_jsx("a", { ...attributes, href: getPageHref(target), children: children }));
|
|
38
|
+
return (_jsx(Button, { ...attributes, variant: 'ghost', type: 'button', disabled: inactive, onClick: () => {
|
|
39
39
|
if (target !== current)
|
|
40
40
|
onPageChange?.(target);
|
|
41
41
|
}, children: children }));
|
|
42
42
|
}
|
|
43
|
-
return (_jsxs("nav", { ...props, ref: ref, "aria-label": ariaLabel, className: [
|
|
43
|
+
return (_jsxs("nav", { ...props, ref: ref, "aria-label": ariaLabel, className: ['pui-pagination', className].filter(Boolean).join(' '), children: [control(Math.max(1, current - 1), labels?.previous ?? 'Previous page', _jsxs(_Fragment, { children: [_jsx(Chevron, {}), _jsx("span", { children: labels?.previous ?? 'Previous page' })] }), current === 1), _jsx("span", { className: 'pui-pagination-summary', children: labels?.summary?.(current, count) ?? `Page ${current} of ${count}` }), _jsx("ul", { role: 'list', className: 'pui-pagination-list', children: items.map((item) => (_jsx("li", { children: typeof item === 'number' ? (control(item, labels?.page?.(item) ?? `Page ${item}`, item)) : (_jsxs("span", { className: 'pui-pagination-gap', children: [_jsxs("svg", { width: '16', height: '16', viewBox: '0 0 24 24', fill: 'currentColor', "aria-hidden": 'true', children: [_jsx("circle", { cx: '5', cy: '12', r: '1.5' }), _jsx("circle", { cx: '12', cy: '12', r: '1.5' }), _jsx("circle", { cx: '19', cy: '12', r: '1.5' })] }), _jsx("span", { className: 'pui-feedback-sr', children: labels?.more ?? 'More pages' })] })) }, item))) }), control(Math.min(count, current + 1), labels?.next ?? 'Next page', _jsxs(_Fragment, { children: [_jsx("span", { children: labels?.next ?? 'Next page' }), _jsx(Chevron, { next: true })] }), current === count)] }));
|
|
44
44
|
});
|
package/dist/panels.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { type ComponentSizeAlias } from
|
|
3
|
-
import { Dialog as BaseDialog } from
|
|
4
|
-
import { Drawer as BaseDrawer } from
|
|
5
|
-
export type PanelSide =
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type ComponentSizeAlias } from './sizing.js';
|
|
3
|
+
import { Dialog as BaseDialog } from '@base-ui/react/dialog';
|
|
4
|
+
import { Drawer as BaseDrawer } from '@base-ui/react/drawer';
|
|
5
|
+
export type PanelSide = 'left' | 'right' | 'top' | 'bottom';
|
|
6
6
|
type PanelOptions = {
|
|
7
7
|
size?: ComponentSizeAlias;
|
|
8
8
|
closeLabel?: string;
|
|
@@ -10,13 +10,13 @@ type PanelOptions = {
|
|
|
10
10
|
declare function SheetRoot({ side, modal, ...props }: React.ComponentProps<typeof BaseDialog.Root> & {
|
|
11
11
|
side?: PanelSide;
|
|
12
12
|
}): React.JSX.Element;
|
|
13
|
-
declare function DrawerRoot({ side, modal, ...props }: Omit<React.ComponentProps<typeof BaseDrawer.Root>,
|
|
13
|
+
declare function DrawerRoot({ side, modal, ...props }: Omit<React.ComponentProps<typeof BaseDrawer.Root>, 'swipeDirection'> & {
|
|
14
14
|
side?: PanelSide;
|
|
15
15
|
}): React.JSX.Element;
|
|
16
16
|
declare const SheetContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/dialog").DialogPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & PanelOptions & React.RefAttributes<HTMLDivElement>>;
|
|
17
17
|
declare const DrawerContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/drawer").DrawerPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & PanelOptions & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
-
declare function Header({ className, ...props }: React.ComponentProps<
|
|
19
|
-
declare function Footer({ className, ...props }: React.ComponentProps<
|
|
18
|
+
declare function Header({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
19
|
+
declare function Footer({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
20
20
|
declare function SheetTitle({ className, ...props }: React.ComponentProps<typeof BaseDialog.Title>): React.JSX.Element;
|
|
21
21
|
declare function SheetDescription({ className, ...props }: React.ComponentProps<typeof BaseDialog.Description>): React.JSX.Element;
|
|
22
22
|
declare function DrawerTitle({ className, ...props }: React.ComponentProps<typeof BaseDrawer.Title>): React.JSX.Element;
|
package/dist/panels.js
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import * as React from
|
|
4
|
-
import { useComponentSize, normalizeSize, } from
|
|
5
|
-
import { Dialog as BaseDialog } from
|
|
6
|
-
import { Drawer as BaseDrawer } from
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { useComponentSize, normalizeSize, } from './sizing.js';
|
|
5
|
+
import { Dialog as BaseDialog } from '@base-ui/react/dialog';
|
|
6
|
+
import { Drawer as BaseDrawer } from '@base-ui/react/drawer';
|
|
7
7
|
const SheetSide = React.createContext({
|
|
8
|
-
side:
|
|
8
|
+
side: 'right',
|
|
9
9
|
modal: true,
|
|
10
10
|
});
|
|
11
11
|
const DrawerSide = React.createContext({
|
|
12
|
-
side:
|
|
12
|
+
side: 'bottom',
|
|
13
13
|
modal: true,
|
|
14
14
|
});
|
|
15
|
-
const cx = (...values) => values.filter(Boolean).join(
|
|
15
|
+
const cx = (...values) => values.filter(Boolean).join(' ');
|
|
16
16
|
function CloseIcon() {
|
|
17
|
-
return (_jsx("svg", { width:
|
|
17
|
+
return (_jsx("svg", { width: '18', height: '18', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.7', "aria-hidden": 'true', children: _jsx("path", { d: 'm6 6 12 12M18 6 6 18' }) }));
|
|
18
18
|
}
|
|
19
|
-
function SheetRoot({ side =
|
|
19
|
+
function SheetRoot({ side = 'right', modal = true, ...props }) {
|
|
20
20
|
return (_jsx(SheetSide.Provider, { value: { side, modal }, children: _jsx(BaseDialog.Root, { ...props, modal: modal }) }));
|
|
21
21
|
}
|
|
22
|
-
function DrawerRoot({ side =
|
|
22
|
+
function DrawerRoot({ side = 'bottom', modal = true, ...props }) {
|
|
23
23
|
const direction = {
|
|
24
|
-
left:
|
|
25
|
-
right:
|
|
26
|
-
top:
|
|
27
|
-
bottom:
|
|
24
|
+
left: 'left',
|
|
25
|
+
right: 'right',
|
|
26
|
+
top: 'up',
|
|
27
|
+
bottom: 'down',
|
|
28
28
|
};
|
|
29
29
|
return (_jsx(DrawerSide.Provider, { value: { side, modal }, children: _jsx(BaseDrawer.Root, { ...props, modal: modal, swipeDirection: direction[side] }) }));
|
|
30
30
|
}
|
|
31
|
-
const SheetContent = React.forwardRef(function SheetContent({ size, closeLabel =
|
|
31
|
+
const SheetContent = React.forwardRef(function SheetContent({ size, closeLabel = 'Close panel', className, children, ...props }, ref) {
|
|
32
32
|
const scheme = useComponentSize(size);
|
|
33
33
|
const { side, modal } = React.useContext(SheetSide);
|
|
34
|
-
return (_jsx(BaseDialog.Portal, { children: _jsxs("div", { className:
|
|
35
|
-
? normalizeSize(size) ===
|
|
36
|
-
?
|
|
37
|
-
: normalizeSize(size) ===
|
|
38
|
-
?
|
|
39
|
-
:
|
|
40
|
-
:
|
|
34
|
+
return (_jsx(BaseDialog.Portal, { children: _jsxs("div", { className: 'pui-panel-layer', "data-ui-size": scheme, children: [modal === true && (_jsx(BaseDialog.Backdrop, { className: 'pui-panel-backdrop' })), _jsx("div", { className: 'pui-panel-viewport', "data-side": side, children: _jsxs(BaseDialog.Popup, { ...props, ref: ref, className: cx('pui-panel', typeof className === 'string' ? className : undefined), "data-side": side, "data-size": size
|
|
35
|
+
? normalizeSize(size) === 'small'
|
|
36
|
+
? 'sm'
|
|
37
|
+
: normalizeSize(size) === 'large'
|
|
38
|
+
? 'lg'
|
|
39
|
+
: 'md'
|
|
40
|
+
: 'md', children: [_jsx(BaseDialog.Close, { className: 'pui-panel-close pui-icon-button', "aria-label": closeLabel, children: _jsx(CloseIcon, {}) }), children] }) })] }) }));
|
|
41
41
|
});
|
|
42
|
-
const DrawerContent = React.forwardRef(function DrawerContent({ size, closeLabel =
|
|
42
|
+
const DrawerContent = React.forwardRef(function DrawerContent({ size, closeLabel = 'Close panel', className, children, ...props }, ref) {
|
|
43
43
|
const scheme = useComponentSize(size);
|
|
44
44
|
const { side, modal } = React.useContext(DrawerSide);
|
|
45
|
-
const KeyboardProvider = side ===
|
|
46
|
-
return (_jsx(KeyboardProvider, { children: _jsx(BaseDrawer.Portal, { children: _jsxs("div", { className:
|
|
47
|
-
? normalizeSize(size) ===
|
|
48
|
-
?
|
|
49
|
-
: normalizeSize(size) ===
|
|
50
|
-
?
|
|
51
|
-
:
|
|
52
|
-
:
|
|
45
|
+
const KeyboardProvider = side === 'bottom' ? BaseDrawer.VirtualKeyboardProvider : React.Fragment;
|
|
46
|
+
return (_jsx(KeyboardProvider, { children: _jsx(BaseDrawer.Portal, { children: _jsxs("div", { className: 'pui-panel-layer', "data-ui-size": scheme, children: [modal === true && (_jsx(BaseDrawer.Backdrop, { className: 'pui-panel-backdrop' })), _jsx(BaseDrawer.Viewport, { className: 'pui-panel-viewport', "data-side": side, children: _jsxs(BaseDrawer.Popup, { ...props, ref: ref, className: cx('pui-panel pui-drawer', typeof className === 'string' ? className : undefined), "data-side": side, "data-size": size
|
|
47
|
+
? normalizeSize(size) === 'small'
|
|
48
|
+
? 'sm'
|
|
49
|
+
: normalizeSize(size) === 'large'
|
|
50
|
+
? 'lg'
|
|
51
|
+
: 'md'
|
|
52
|
+
: 'lg', children: [_jsx("div", { className: 'pui-drawer-handle', "aria-hidden": 'true' }), _jsx(BaseDrawer.Close, { className: 'pui-panel-close pui-icon-button', "aria-label": closeLabel, children: _jsx(CloseIcon, {}) }), _jsx(BaseDrawer.Content, { className: 'pui-panel-content', children: children })] }) })] }) }) }));
|
|
53
53
|
});
|
|
54
54
|
function Header({ className, ...props }) {
|
|
55
|
-
return _jsx("div", { ...props, className: cx(
|
|
55
|
+
return _jsx("div", { ...props, className: cx('pui-panel-header', className) });
|
|
56
56
|
}
|
|
57
57
|
const Body = React.forwardRef(function Body({ className, ...props }, ref) {
|
|
58
|
-
return (_jsx("div", { ...props, ref: ref, className: cx(
|
|
58
|
+
return (_jsx("div", { ...props, ref: ref, className: cx('pui-panel-body', className) }));
|
|
59
59
|
});
|
|
60
60
|
function Footer({ className, ...props }) {
|
|
61
|
-
return _jsx("div", { ...props, className: cx(
|
|
61
|
+
return _jsx("div", { ...props, className: cx('pui-panel-footer', className) });
|
|
62
62
|
}
|
|
63
63
|
function SheetTitle({ className, ...props }) {
|
|
64
|
-
return (_jsx(BaseDialog.Title, { ...props, className: cx(
|
|
64
|
+
return (_jsx(BaseDialog.Title, { ...props, className: cx('pui-panel-title', typeof className === 'string' ? className : undefined) }));
|
|
65
65
|
}
|
|
66
66
|
function SheetDescription({ className, ...props }) {
|
|
67
|
-
return (_jsx(BaseDialog.Description, { ...props, className: cx(
|
|
67
|
+
return (_jsx(BaseDialog.Description, { ...props, className: cx('pui-panel-description', typeof className === 'string' ? className : undefined) }));
|
|
68
68
|
}
|
|
69
69
|
function DrawerTitle({ className, ...props }) {
|
|
70
|
-
return (_jsx(BaseDrawer.Title, { ...props, className: cx(
|
|
70
|
+
return (_jsx(BaseDrawer.Title, { ...props, className: cx('pui-panel-title', typeof className === 'string' ? className : undefined) }));
|
|
71
71
|
}
|
|
72
72
|
function DrawerDescription({ className, ...props }) {
|
|
73
|
-
return (_jsx(BaseDrawer.Description, { ...props, className: cx(
|
|
73
|
+
return (_jsx(BaseDrawer.Description, { ...props, className: cx('pui-panel-description', typeof className === 'string' ? className : undefined) }));
|
|
74
74
|
}
|
|
75
75
|
export const Sheet = {
|
|
76
76
|
...BaseDialog,
|
package/dist/parts.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type ComponentSize } from
|
|
2
|
-
import * as React from
|
|
1
|
+
import { type ComponentSize } from './sizing.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
3
|
/** Preserve Base UI's state-dependent className contract when adding a skin. */
|
|
4
4
|
export declare function skin<State>(base: string, custom?: string | ((state: State) => string | undefined)): string | ((state: State) => string);
|
|
5
5
|
export declare function part<Element extends HTMLElement, Props extends {
|
package/dist/parts.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { ComponentSizeContext, useComponentSize, } from
|
|
3
|
-
import * as React from
|
|
2
|
+
import { ComponentSizeContext, useComponentSize, } from './sizing.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
4
|
/** Preserve Base UI's state-dependent className contract when adding a skin. */
|
|
5
5
|
export function skin(base, custom) {
|
|
6
|
-
if (typeof custom ===
|
|
7
|
-
return (state) => [base, custom(state)].filter(Boolean).join(
|
|
8
|
-
return [base, custom].filter(Boolean).join(
|
|
6
|
+
if (typeof custom === 'function')
|
|
7
|
+
return (state) => [base, custom(state)].filter(Boolean).join(' ');
|
|
8
|
+
return [base, custom].filter(Boolean).join(' ');
|
|
9
9
|
}
|
|
10
10
|
export function part(Component, base) {
|
|
11
11
|
return React.forwardRef(function ThemedPart(props, ref) {
|
|
12
12
|
const { className, size, ...rest } = props;
|
|
13
13
|
const scheme = useComponentSize(size);
|
|
14
14
|
const portal = /positioner|popup|^pui-menu$|navigation-menu-viewport/.test(base);
|
|
15
|
-
const classes = typeof className ===
|
|
16
|
-
? (state) => [base, className(state)].filter(Boolean).join(
|
|
17
|
-
: [base, className].filter(Boolean).join(
|
|
15
|
+
const classes = typeof className === 'function'
|
|
16
|
+
? (state) => [base, className(state)].filter(Boolean).join(' ')
|
|
17
|
+
: [base, className].filter(Boolean).join(' ');
|
|
18
18
|
const element = (_jsx(Component, { ...rest, ref: ref, className: classes, "data-ui-size": size ? scheme : portal ? scheme : undefined }));
|
|
19
19
|
// Keep the React subtree stable when size changes from omitted to explicit.
|
|
20
20
|
return (_jsx(ComponentSizeContext.Provider, { value: scheme, children: element }));
|
package/dist/popover.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as React from
|
|
2
|
-
import { Popover as BasePopover } from
|
|
3
|
-
declare function PopoverContent({ side, align, sideOffset, collisionPadding, className, ...props }: React.ComponentProps<typeof BasePopover.Popup> & Pick<React.ComponentProps<typeof BasePopover.Positioner>,
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Popover as BasePopover } from '@base-ui/react/popover';
|
|
3
|
+
declare function PopoverContent({ side, align, sideOffset, collisionPadding, className, ...props }: React.ComponentProps<typeof BasePopover.Popup> & Pick<React.ComponentProps<typeof BasePopover.Positioner>, 'side' | 'align' | 'sideOffset' | 'collisionPadding'>): React.JSX.Element;
|
|
4
4
|
export declare const Popover: {
|
|
5
5
|
Content: typeof PopoverContent;
|
|
6
6
|
Root: typeof BasePopover.Root;
|
package/dist/popover.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useComponentSize } from
|
|
4
|
-
import { Popover as BasePopover } from
|
|
5
|
-
const cx = (...v) => v.filter(Boolean).join(
|
|
6
|
-
function PopoverContent({ side =
|
|
3
|
+
import { useComponentSize } from './sizing.js';
|
|
4
|
+
import { Popover as BasePopover } from '@base-ui/react/popover';
|
|
5
|
+
const cx = (...v) => v.filter(Boolean).join(' ');
|
|
6
|
+
function PopoverContent({ side = 'bottom', align = 'start', sideOffset = 8, collisionPadding = 12, className, ...props }) {
|
|
7
7
|
const scheme = useComponentSize();
|
|
8
|
-
return (_jsx(BasePopover.Positioner, { side: side, align: align, sideOffset: sideOffset, collisionPadding: collisionPadding, className:
|
|
8
|
+
return (_jsx(BasePopover.Positioner, { side: side, align: align, sideOffset: sideOffset, collisionPadding: collisionPadding, className: 'pui-positioner', children: _jsx(BasePopover.Popup, { "data-ui-size": scheme, ...props, className: cx('pui-popover', typeof className === 'string' && className) }) }));
|
|
9
9
|
}
|
|
10
10
|
export const Popover = { ...BasePopover, Content: PopoverContent };
|
|
11
11
|
// Flat names for React Server Components, which cannot dot into client exports.
|
package/dist/scroll-area.d.ts
CHANGED
package/dist/scroll-area.js
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import * as React from
|
|
4
|
-
import { ScrollArea as BaseScrollArea } from
|
|
5
|
-
export const ScrollArea = React.forwardRef(function ScrollArea({ label, orientation =
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { ScrollArea as BaseScrollArea } from '@base-ui/react/scroll-area';
|
|
5
|
+
export const ScrollArea = React.forwardRef(function ScrollArea({ label, orientation = 'horizontal', scrollChain = 'auto', style, rootClassName, rootStyle, tabIndex = label ? 0 : undefined, role = label ? 'region' : undefined, className, children, ...props }, ref) {
|
|
6
6
|
const dragPointer = React.useRef(null);
|
|
7
7
|
const clearDrag = (event) => {
|
|
8
8
|
if (dragPointer.current !== event.pointerId)
|
|
9
9
|
return;
|
|
10
10
|
dragPointer.current = null;
|
|
11
|
-
event.currentTarget.removeAttribute(
|
|
11
|
+
event.currentTarget.removeAttribute('data-scroll-dragging');
|
|
12
12
|
};
|
|
13
|
-
return (_jsxs(BaseScrollArea.Root, { className: [
|
|
14
|
-
if (event.pointerType ===
|
|
13
|
+
return (_jsxs(BaseScrollArea.Root, { className: ['pui-scroll-root', rootClassName].filter(Boolean).join(' '), style: rootStyle, onPointerMoveCapture: (event) => {
|
|
14
|
+
if (event.pointerType === 'touch')
|
|
15
15
|
return;
|
|
16
16
|
const root = event.currentTarget;
|
|
17
17
|
const bounds = root.getBoundingClientRect();
|
|
18
|
-
root.toggleAttribute(
|
|
19
|
-
root.toggleAttribute(
|
|
18
|
+
root.toggleAttribute('data-scroll-near-x', bounds.bottom - event.clientY <= 24 && event.clientY <= bounds.bottom);
|
|
19
|
+
root.toggleAttribute('data-scroll-near-y', bounds.right - event.clientX <= 24 && event.clientX <= bounds.right);
|
|
20
20
|
}, onPointerLeave: (event) => {
|
|
21
|
-
event.currentTarget.removeAttribute(
|
|
22
|
-
event.currentTarget.removeAttribute(
|
|
21
|
+
event.currentTarget.removeAttribute('data-scroll-near-x');
|
|
22
|
+
event.currentTarget.removeAttribute('data-scroll-near-y');
|
|
23
23
|
}, onPointerDownCapture: (event) => {
|
|
24
24
|
const target = event.target;
|
|
25
|
-
const bar = target.closest(
|
|
25
|
+
const bar = target.closest('.pui-scrollbar');
|
|
26
26
|
if (event.button === 0 && bar?.parentElement === event.currentTarget) {
|
|
27
27
|
dragPointer.current = event.pointerId;
|
|
28
|
-
event.currentTarget.setAttribute(
|
|
28
|
+
event.currentTarget.setAttribute('data-scroll-dragging', bar.getAttribute('data-orientation') ?? '');
|
|
29
29
|
}
|
|
30
|
-
}, onPointerUpCapture: clearDrag, onPointerCancelCapture: clearDrag, onLostPointerCapture: clearDrag, children: [_jsx(BaseScrollArea.Viewport, { ...props, ref: ref, className: [
|
|
30
|
+
}, onPointerUpCapture: clearDrag, onPointerCancelCapture: clearDrag, onLostPointerCapture: clearDrag, children: [_jsx(BaseScrollArea.Viewport, { ...props, ref: ref, className: ['pui-scroll-viewport scroll-area', className]
|
|
31
31
|
.filter(Boolean)
|
|
32
|
-
.join(
|
|
33
|
-
overflowX: orientation ===
|
|
34
|
-
overflowY: orientation ===
|
|
35
|
-
overscrollBehaviorX: orientation ===
|
|
36
|
-
overscrollBehaviorY: orientation ===
|
|
32
|
+
.join(' '), role: role, "aria-label": label, tabIndex: tabIndex, "data-scroll-orientation": orientation, style: {
|
|
33
|
+
overflowX: orientation === 'vertical' ? 'hidden' : 'auto',
|
|
34
|
+
overflowY: orientation === 'horizontal' ? 'hidden' : 'auto',
|
|
35
|
+
overscrollBehaviorX: orientation === 'vertical' ? 'auto' : scrollChain,
|
|
36
|
+
overscrollBehaviorY: orientation === 'horizontal' ? 'auto' : scrollChain,
|
|
37
37
|
...style,
|
|
38
|
-
}, children: _jsx(BaseScrollArea.Content, { className:
|
|
38
|
+
}, children: _jsx(BaseScrollArea.Content, { className: 'pui-scroll-content', style: orientation === 'vertical' ? { minWidth: 0 } : undefined, children: children }) }), orientation !== 'vertical' && (_jsx(BaseScrollArea.Scrollbar, { orientation: 'horizontal', className: 'pui-scrollbar', children: _jsx(BaseScrollArea.Thumb, { className: 'pui-scroll-thumb' }) })), orientation !== 'horizontal' && (_jsx(BaseScrollArea.Scrollbar, { orientation: 'vertical', className: 'pui-scrollbar', children: _jsx(BaseScrollArea.Thumb, { className: 'pui-scroll-thumb' }) })), _jsx(BaseScrollArea.Corner, {})] }));
|
|
39
39
|
});
|