@surflane/ui 0.3.0 → 0.5.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.
Files changed (151) hide show
  1. package/README.md +18 -8
  2. package/dist/accordion.d.ts +26 -0
  3. package/dist/accordion.js +27 -0
  4. package/dist/alert-dialog.d.ts +31 -0
  5. package/dist/alert-dialog.js +22 -0
  6. package/dist/app-shell.js +17 -17
  7. package/dist/{input-extensions.d.ts → autocomplete.d.ts} +4 -42
  8. package/dist/{input-extensions.js → autocomplete.js} +12 -31
  9. package/dist/avatar.d.ts +24 -0
  10. package/dist/avatar.js +24 -0
  11. package/dist/badge.d.ts +20 -0
  12. package/dist/badge.js +16 -0
  13. package/dist/breadcrumbs.d.ts +13 -0
  14. package/dist/breadcrumbs.js +31 -0
  15. package/dist/button.d.ts +11 -0
  16. package/dist/button.js +28 -5
  17. package/dist/{content.d.ts → card.d.ts} +6 -24
  18. package/dist/card.js +26 -0
  19. package/dist/chart.d.ts +19 -0
  20. package/dist/chart.js +29 -8
  21. package/dist/checkbox-group.d.ts +2 -0
  22. package/dist/checkbox-group.js +16 -0
  23. package/dist/checkbox.d.ts +9 -0
  24. package/dist/checkbox.js +29 -0
  25. package/dist/choice-label.d.ts +25 -0
  26. package/dist/choice-label.js +14 -0
  27. package/dist/choice.d.ts +7 -0
  28. package/dist/choice.js +3 -0
  29. package/dist/code.d.ts +21 -0
  30. package/dist/{content.js → code.js} +10 -32
  31. package/dist/collapsible.d.ts +18 -0
  32. package/dist/collapsible.js +21 -0
  33. package/dist/{advanced-forms.d.ts → combobox.d.ts} +5 -25
  34. package/dist/combobox.js +57 -0
  35. package/dist/{context-overlays.d.ts → context-menu.d.ts} +6 -28
  36. package/dist/context-menu.js +30 -0
  37. package/dist/date-picker.js +3 -2
  38. package/dist/dialog.d.ts +6 -24
  39. package/dist/dialog.js +9 -21
  40. package/dist/{panels.d.ts → drawer.d.ts} +3 -34
  41. package/dist/drawer.js +47 -0
  42. package/dist/empty-state.d.ts +29 -0
  43. package/dist/empty-state.js +19 -0
  44. package/dist/field.d.ts +42 -0
  45. package/dist/field.js +21 -0
  46. package/dist/fieldset.d.ts +14 -0
  47. package/dist/fieldset.js +10 -0
  48. package/dist/file-upload.d.ts +3 -1
  49. package/dist/file-upload.js +8 -6
  50. package/dist/filter-bar.js +6 -6
  51. package/dist/form.d.ts +2 -0
  52. package/dist/form.js +7 -0
  53. package/dist/icon.d.ts +10 -0
  54. package/dist/icon.js +19 -2
  55. package/dist/index.d.ts +57 -31
  56. package/dist/index.js +71 -31
  57. package/dist/{messages.d.ts → inline-message.d.ts} +0 -28
  58. package/dist/inline-message.js +23 -0
  59. package/dist/input.js +3 -3
  60. package/dist/{foundations.d.ts → layout.d.ts} +5 -23
  61. package/dist/layout.js +40 -0
  62. package/dist/link.d.ts +6 -0
  63. package/dist/link.js +17 -0
  64. package/dist/list.d.ts +33 -0
  65. package/dist/list.js +21 -0
  66. package/dist/markdown.js +7 -7
  67. package/dist/menu.d.ts +7 -5
  68. package/dist/menu.js +24 -20
  69. package/dist/menubar.d.ts +4 -0
  70. package/dist/menubar.js +4 -0
  71. package/dist/meter.d.ts +29 -0
  72. package/dist/meter.js +13 -0
  73. package/dist/native-select.d.ts +8 -0
  74. package/dist/native-select.js +54 -0
  75. package/dist/navigation-menu.js +14 -11
  76. package/dist/number-field.d.ts +23 -0
  77. package/dist/number-field.js +33 -0
  78. package/dist/otp-field.js +4 -4
  79. package/dist/page-header.d.ts +12 -0
  80. package/dist/page-header.js +9 -0
  81. package/dist/pagination.js +4 -5
  82. package/dist/panel.d.ts +13 -0
  83. package/dist/panel.js +13 -0
  84. package/dist/parts.d.ts +22 -1
  85. package/dist/parts.js +40 -7
  86. package/dist/popover.d.ts +23 -6
  87. package/dist/popover.js +17 -7
  88. package/dist/preview-card.d.ts +29 -0
  89. package/dist/preview-card.js +27 -0
  90. package/dist/progress.d.ts +29 -0
  91. package/dist/progress.js +13 -0
  92. package/dist/radio-group.d.ts +16 -0
  93. package/dist/radio-group.js +31 -0
  94. package/dist/scroll-area.js +4 -5
  95. package/dist/select.d.ts +8 -8
  96. package/dist/select.js +19 -53
  97. package/dist/separator.d.ts +4 -0
  98. package/dist/separator.js +8 -0
  99. package/dist/sheet.d.ts +29 -0
  100. package/dist/sheet.js +39 -0
  101. package/dist/sizing.js +1 -1
  102. package/dist/skeleton.d.ts +8 -0
  103. package/dist/skeleton.js +8 -0
  104. package/dist/slider.d.ts +40 -0
  105. package/dist/slider.js +27 -0
  106. package/dist/spinner.d.ts +13 -0
  107. package/dist/spinner.js +10 -0
  108. package/dist/status.d.ts +1 -19
  109. package/dist/status.js +10 -14
  110. package/dist/switch.d.ts +13 -0
  111. package/dist/switch.js +25 -0
  112. package/dist/syntax-context.d.ts +7 -0
  113. package/dist/syntax-context.js +4 -0
  114. package/dist/syntax-highlighter.d.ts +4 -1
  115. package/dist/syntax-highlighter.js +13 -6
  116. package/dist/syntax-highlighting.d.ts +8 -0
  117. package/dist/syntax-highlighting.js +12 -0
  118. package/dist/{data.d.ts → table.d.ts} +8 -32
  119. package/dist/table.js +67 -0
  120. package/dist/tabs.d.ts +29 -0
  121. package/dist/tabs.js +13 -0
  122. package/dist/textarea.d.ts +7 -0
  123. package/dist/textarea.js +12 -0
  124. package/dist/toast.js +18 -17
  125. package/dist/toggle-group.d.ts +5 -0
  126. package/dist/toggle-group.js +7 -0
  127. package/dist/toggle.d.ts +7 -0
  128. package/dist/toggle.js +9 -0
  129. package/dist/{commands.d.ts → toolbar.d.ts} +0 -13
  130. package/dist/toolbar.js +14 -0
  131. package/dist/tooltip.d.ts +3 -2
  132. package/dist/tooltip.js +2 -2
  133. package/dist/tree.js +4 -2
  134. package/dist/typography.d.ts +12 -0
  135. package/dist/typography.js +14 -0
  136. package/package.json +286 -21
  137. package/src/all.css +8 -0
  138. package/src/styles.css +3745 -3629
  139. package/dist/advanced-forms.js +0 -93
  140. package/dist/commands.js +0 -27
  141. package/dist/context-overlays.js +0 -50
  142. package/dist/data.js +0 -82
  143. package/dist/feedback.d.ts +0 -76
  144. package/dist/feedback.js +0 -35
  145. package/dist/forms.d.ts +0 -91
  146. package/dist/forms.js +0 -109
  147. package/dist/foundations.js +0 -55
  148. package/dist/messages.js +0 -38
  149. package/dist/navigation.d.ts +0 -107
  150. package/dist/navigation.js +0 -108
  151. package/dist/panels.js +0 -99
@@ -1,55 +0,0 @@
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/messages.js DELETED
@@ -1,38 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import * as React from 'react';
4
- import { useToneTransition } from './tone-transition.js';
5
- import { part } from './parts.js';
6
- import { StatusIcon } from './status.js';
7
- const MessageRoot = React.forwardRef(function MessageRoot({ tone = 'neutral', className, ...props }, ref) {
8
- const elementRef = useToneTransition(tone, ref);
9
- return (_jsx("div", { ...props, ref: elementRef, "data-tone": tone, className: ['pui-message', className].filter(Boolean).join(' ') }));
10
- });
11
- const MessageIcon = React.forwardRef(function MessageIcon({ tone = 'neutral', children, className, ...props }, ref) {
12
- return (_jsx("span", { ...props, ref: ref, "aria-hidden": 'true', className: ['pui-message-icon', className].filter(Boolean).join(' '), children: children ?? _jsx(StatusIcon, { tone: tone }) }));
13
- });
14
- export const InlineMessage = {
15
- Root: MessageRoot,
16
- Icon: MessageIcon,
17
- Content: part('div', 'pui-message-content'),
18
- Title: part('strong', 'pui-message-title'),
19
- Description: part('p', 'pui-message-description'),
20
- Actions: part('div', 'pui-message-actions'),
21
- };
22
- const EmptyTitle = React.forwardRef(function EmptyTitle({ level = 3, className, ...props }, ref) {
23
- return React.createElement(`h${level}`, {
24
- ...props,
25
- ref,
26
- className: ['pui-empty-title', className].filter(Boolean).join(' '),
27
- });
28
- });
29
- export const EmptyState = {
30
- Root: part('div', 'pui-empty'),
31
- Icon: part('div', 'pui-empty-icon'),
32
- Title: EmptyTitle,
33
- Description: part('p', 'pui-empty-description'),
34
- Actions: part('div', 'pui-empty-actions'),
35
- };
36
- // Flat names for React Server Components, which cannot dot into client exports.
37
- export const { Root: EmptyStateRoot, Icon: EmptyStateIcon, Title: EmptyStateTitle, Description: EmptyStateDescription, Actions: EmptyStateActions, } = EmptyState;
38
- export const { Root: InlineMessageRoot, Icon: InlineMessageIcon, Content: InlineMessageContent, Title: InlineMessageTitle, Description: InlineMessageDescription, Actions: InlineMessageActions, } = InlineMessage;
@@ -1,107 +0,0 @@
1
- import * as React from 'react';
2
- import { type ComponentSizeAlias } from './sizing.js';
3
- import { Accordion as BaseAccordion } from '@base-ui/react/accordion';
4
- export declare const Tabs: {
5
- Root: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
6
- size?: import("./sizing.js").ComponentSize;
7
- } & React.RefAttributes<HTMLDivElement>>;
8
- List: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsListProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
9
- size?: import("./sizing.js").ComponentSize;
10
- } & React.RefAttributes<HTMLDivElement>>;
11
- Tab: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsTabProps, "ref"> & React.RefAttributes<HTMLElement>, "ref">, "size"> & {
12
- size?: import("./sizing.js").ComponentSize;
13
- } & React.RefAttributes<HTMLElement>>;
14
- Panel: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
15
- size?: import("./sizing.js").ComponentSize;
16
- } & React.RefAttributes<HTMLDivElement>>;
17
- Indicator: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref">, "size"> & {
18
- size?: import("./sizing.js").ComponentSize;
19
- } & React.RefAttributes<HTMLSpanElement>>;
20
- };
21
- declare function AccordionRoot<Value = string>({ className, ...props }: BaseAccordion.Root.Props<Value>): React.JSX.Element;
22
- declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/accordion").AccordionTriggerProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & {
23
- indicator?: React.ReactNode;
24
- } & React.RefAttributes<HTMLElement>>;
25
- declare const AccordionPanel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/accordion").AccordionPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
26
- export declare const Accordion: {
27
- Root: typeof AccordionRoot;
28
- Item: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/accordion").AccordionItemProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
29
- size?: import("./sizing.js").ComponentSize;
30
- } & React.RefAttributes<HTMLDivElement>>;
31
- Header: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/accordion").AccordionHeaderProps, "ref"> & React.RefAttributes<HTMLHeadingElement>, "ref">, "size"> & {
32
- size?: import("./sizing.js").ComponentSize;
33
- } & React.RefAttributes<HTMLHeadingElement>>;
34
- Trigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/accordion").AccordionTriggerProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & {
35
- indicator?: React.ReactNode;
36
- } & React.RefAttributes<HTMLElement>>;
37
- Panel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/accordion").AccordionPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
38
- };
39
- declare const CollapsibleTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/collapsible").CollapsibleTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & {
40
- indicator?: React.ReactNode;
41
- } & React.RefAttributes<HTMLButtonElement>>;
42
- declare const CollapsiblePanel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/collapsible").CollapsiblePanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
43
- export declare const Collapsible: {
44
- Root: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/collapsible").CollapsibleRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
45
- size?: import("./sizing.js").ComponentSize;
46
- } & React.RefAttributes<HTMLDivElement>>;
47
- Trigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/collapsible").CollapsibleTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & {
48
- indicator?: React.ReactNode;
49
- } & React.RefAttributes<HTMLButtonElement>>;
50
- Panel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/collapsible").CollapsiblePanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
51
- };
52
- declare const AvatarRoot: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/avatar").AvatarRootProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & {
53
- size?: ComponentSizeAlias;
54
- } & React.RefAttributes<HTMLSpanElement>>;
55
- declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/avatar").AvatarFallbackProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
56
- export declare const Avatar: {
57
- Root: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/avatar").AvatarRootProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & {
58
- size?: ComponentSizeAlias;
59
- } & React.RefAttributes<HTMLSpanElement>>;
60
- Status: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, "size"> & {
61
- size?: import("./sizing.js").ComponentSize;
62
- } & React.RefAttributes<HTMLSpanElement>>;
63
- Fallback: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/avatar").AvatarFallbackProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
64
- Image: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/avatar").AvatarImageProps, "ref"> & React.RefAttributes<HTMLImageElement>, "ref">, "size"> & {
65
- size?: import("./sizing.js").ComponentSize;
66
- } & React.RefAttributes<HTMLImageElement>>;
67
- };
68
- export declare const Separator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/separator").SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
69
- inset?: boolean;
70
- } & React.RefAttributes<HTMLDivElement>>;
71
- export declare const Link: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
72
- declare function BreadcrumbSeparator({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
73
- declare function BreadcrumbCurrent({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
74
- export declare const Breadcrumbs: {
75
- Root: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
76
- List: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
77
- Item: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
78
- Link: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
79
- Separator: typeof BreadcrumbSeparator;
80
- Current: typeof BreadcrumbCurrent;
81
- };
82
- export { AccordionPanel, AccordionRoot, AccordionTrigger, AvatarFallback, AvatarRoot, CollapsiblePanel, CollapsibleTrigger, };
83
- export declare const AccordionHeader: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/accordion").AccordionHeaderProps, "ref"> & React.RefAttributes<HTMLHeadingElement>, "ref">, "size"> & {
84
- size?: import("./sizing.js").ComponentSize;
85
- } & React.RefAttributes<HTMLHeadingElement>>, AccordionItem: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/accordion").AccordionItemProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
86
- size?: import("./sizing.js").ComponentSize;
87
- } & React.RefAttributes<HTMLDivElement>>;
88
- export declare const AvatarImage: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/avatar").AvatarImageProps, "ref"> & React.RefAttributes<HTMLImageElement>, "ref">, "size"> & {
89
- size?: import("./sizing.js").ComponentSize;
90
- } & React.RefAttributes<HTMLImageElement>>, AvatarStatus: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, "size"> & {
91
- size?: import("./sizing.js").ComponentSize;
92
- } & React.RefAttributes<HTMLSpanElement>>;
93
- export declare const BreadcrumbsRoot: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>, BreadcrumbsList: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>, BreadcrumbsItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>, BreadcrumbsLink: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>, BreadcrumbsSeparator: typeof BreadcrumbSeparator, BreadcrumbsCurrent: typeof BreadcrumbCurrent;
94
- export declare const CollapsibleRoot: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/collapsible").CollapsibleRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
95
- size?: import("./sizing.js").ComponentSize;
96
- } & React.RefAttributes<HTMLDivElement>>;
97
- export declare const TabsIndicator: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref">, "size"> & {
98
- size?: import("./sizing.js").ComponentSize;
99
- } & React.RefAttributes<HTMLSpanElement>>, TabsList: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsListProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
100
- size?: import("./sizing.js").ComponentSize;
101
- } & React.RefAttributes<HTMLDivElement>>, TabsPanel: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
102
- size?: import("./sizing.js").ComponentSize;
103
- } & React.RefAttributes<HTMLDivElement>>, TabsRoot: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
104
- size?: import("./sizing.js").ComponentSize;
105
- } & React.RefAttributes<HTMLDivElement>>, TabsTab: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/tabs").TabsTabProps, "ref"> & React.RefAttributes<HTMLElement>, "ref">, "size"> & {
106
- size?: import("./sizing.js").ComponentSize;
107
- } & React.RefAttributes<HTMLElement>>;
@@ -1,108 +0,0 @@
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 { 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
- export const Tabs = {
12
- ...BaseTabs,
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
- };
19
- function Chevron() {
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
- }
22
- function AccordionRoot({ className, ...props }) {
23
- return (_jsx(BaseAccordion.Root, { ...props, className: skin('pui-accordion', className) }));
24
- }
25
- const AccordionTrigger = React.forwardRef(function AccordionTrigger({ className, children, indicator, ...props }, ref) {
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
- });
28
- const AccordionPanel = React.forwardRef(function AccordionPanel({ className, children, render, ...props }, ref) {
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
- });
32
- export const Accordion = {
33
- ...BaseAccordion,
34
- Root: AccordionRoot,
35
- Item: part(BaseAccordion.Item, 'pui-accordion-item'),
36
- Header: part(BaseAccordion.Header, 'pui-accordion-header'),
37
- Trigger: AccordionTrigger,
38
- Panel: AccordionPanel,
39
- };
40
- const CollapsibleTrigger = React.forwardRef(function CollapsibleTrigger({ className, children, indicator, ...props }, ref) {
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
- });
43
- const CollapsiblePanel = React.forwardRef(function CollapsiblePanel({ className, children, ...props }, ref) {
44
- return (_jsx(BaseCollapsible.Panel, { ...props, ref: ref, className: skin('pui-collapsible-panel', className), children: _jsx("div", { className: 'pui-disclosure-body', children: children }) }));
45
- });
46
- export const Collapsible = {
47
- ...BaseCollapsible,
48
- Root: part(BaseCollapsible.Root, 'pui-collapsible'),
49
- Trigger: CollapsibleTrigger,
50
- Panel: CollapsiblePanel,
51
- };
52
- const AvatarRoot = React.forwardRef(function AvatarRoot({ size, className, ...props }, ref) {
53
- const scheme = useComponentSize(size);
54
- return (_jsx(BaseAvatar.Root, { ...props, ref: ref, "data-size": size, "data-ui-size": scheme, className: skin('pui-avatar', className) }));
55
- });
56
- function Person() {
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
- }
59
- const AvatarFallback = React.forwardRef(function AvatarFallback({ children, className, ...props }, ref) {
60
- return (_jsx(BaseAvatar.Fallback, { ...props, ref: ref, className: skin('pui-avatar-fallback', className), children: children ?? _jsx(Person, {}) }));
61
- });
62
- export const Avatar = {
63
- ...BaseAvatar,
64
- Root: AvatarRoot,
65
- Status: part('span', 'pui-avatar-status'),
66
- Fallback: AvatarFallback,
67
- Image: part(BaseAvatar.Image, 'pui-avatar-image'),
68
- };
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('pui-separator', className) }));
71
- });
72
- export const Link = React.forwardRef(function Link({ className, ...props }, ref) {
73
- return (_jsx("a", { ...props, ref: ref, className: ['pui-link', className].filter(Boolean).join(' ') }));
74
- });
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
- });
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
- });
81
- const BreadcrumbItem = React.forwardRef(function BreadcrumbItem({ className, ...props }, ref) {
82
- return (_jsx("li", { ...props, ref: ref, className: ['pui-breadcrumb-item', className].filter(Boolean).join(' ') }));
83
- });
84
- function BreadcrumbSeparator({ className, ...props }) {
85
- return (_jsx("span", { ...props, className: ['pui-breadcrumb-separator', className]
86
- .filter(Boolean)
87
- .join(' '), "aria-hidden": 'true', children: _jsx(Chevron, {}) }));
88
- }
89
- function BreadcrumbCurrent({ className, ...props }) {
90
- return (_jsx("span", { ...props, className: ['pui-breadcrumb-current', className]
91
- .filter(Boolean)
92
- .join(' '), "aria-current": 'page' }));
93
- }
94
- export const Breadcrumbs = {
95
- Root: BreadcrumbRoot,
96
- List: BreadcrumbList,
97
- Item: BreadcrumbItem,
98
- Link,
99
- Separator: BreadcrumbSeparator,
100
- Current: BreadcrumbCurrent,
101
- };
102
- // Flat names for React Server Components, which cannot dot into client exports.
103
- export { AccordionPanel, AccordionRoot, AccordionTrigger, AvatarFallback, AvatarRoot, CollapsiblePanel, CollapsibleTrigger, };
104
- export const { Header: AccordionHeader, Item: AccordionItem } = Accordion;
105
- export const { Image: AvatarImage, Status: AvatarStatus } = Avatar;
106
- export const { Root: BreadcrumbsRoot, List: BreadcrumbsList, Item: BreadcrumbsItem, Link: BreadcrumbsLink, Separator: BreadcrumbsSeparator, Current: BreadcrumbsCurrent, } = Breadcrumbs;
107
- export const { Root: CollapsibleRoot } = Collapsible;
108
- export const { Indicator: TabsIndicator, List: TabsList, Panel: TabsPanel, Root: TabsRoot, Tab: TabsTab, } = Tabs;
package/dist/panels.js DELETED
@@ -1,99 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
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
- const SheetSide = React.createContext({
8
- side: 'right',
9
- modal: true,
10
- });
11
- const DrawerSide = React.createContext({
12
- side: 'bottom',
13
- modal: true,
14
- });
15
- const cx = (...values) => values.filter(Boolean).join(' ');
16
- function CloseIcon() {
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
- }
19
- function SheetRoot({ side = 'right', modal = true, ...props }) {
20
- return (_jsx(SheetSide.Provider, { value: { side, modal }, children: _jsx(BaseDialog.Root, { ...props, modal: modal }) }));
21
- }
22
- function DrawerRoot({ side = 'bottom', modal = true, ...props }) {
23
- const direction = {
24
- left: 'left',
25
- right: 'right',
26
- top: 'up',
27
- bottom: 'down',
28
- };
29
- return (_jsx(DrawerSide.Provider, { value: { side, modal }, children: _jsx(BaseDrawer.Root, { ...props, modal: modal, swipeDirection: direction[side] }) }));
30
- }
31
- const SheetContent = React.forwardRef(function SheetContent({ size, closeLabel = 'Close panel', className, children, ...props }, ref) {
32
- const scheme = useComponentSize(size);
33
- const { side, modal } = React.useContext(SheetSide);
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
- });
42
- const DrawerContent = React.forwardRef(function DrawerContent({ size, closeLabel = 'Close panel', className, children, ...props }, ref) {
43
- const scheme = useComponentSize(size);
44
- const { side, modal } = React.useContext(DrawerSide);
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
- });
54
- function Header({ className, ...props }) {
55
- return _jsx("div", { ...props, className: cx('pui-panel-header', className) });
56
- }
57
- const Body = React.forwardRef(function Body({ className, ...props }, ref) {
58
- return (_jsx("div", { ...props, ref: ref, className: cx('pui-panel-body', className) }));
59
- });
60
- function Footer({ className, ...props }) {
61
- return _jsx("div", { ...props, className: cx('pui-panel-footer', className) });
62
- }
63
- function SheetTitle({ className, ...props }) {
64
- return (_jsx(BaseDialog.Title, { ...props, className: cx('pui-panel-title', typeof className === 'string' ? className : undefined) }));
65
- }
66
- function SheetDescription({ className, ...props }) {
67
- return (_jsx(BaseDialog.Description, { ...props, className: cx('pui-panel-description', typeof className === 'string' ? className : undefined) }));
68
- }
69
- function DrawerTitle({ className, ...props }) {
70
- return (_jsx(BaseDrawer.Title, { ...props, className: cx('pui-panel-title', typeof className === 'string' ? className : undefined) }));
71
- }
72
- function DrawerDescription({ className, ...props }) {
73
- return (_jsx(BaseDrawer.Description, { ...props, className: cx('pui-panel-description', typeof className === 'string' ? className : undefined) }));
74
- }
75
- export const Sheet = {
76
- ...BaseDialog,
77
- Root: SheetRoot,
78
- Content: SheetContent,
79
- Header,
80
- Body,
81
- Footer,
82
- Title: SheetTitle,
83
- Description: SheetDescription,
84
- };
85
- export const Drawer = {
86
- ...BaseDrawer,
87
- Root: DrawerRoot,
88
- Content: DrawerContent,
89
- PrimitiveContent: BaseDrawer.Content,
90
- Header,
91
- Body,
92
- Footer,
93
- Title: DrawerTitle,
94
- Description: DrawerDescription,
95
- };
96
- // Flat names for React Server Components, which cannot dot into client exports.
97
- export { DrawerContent, DrawerDescription, DrawerRoot, DrawerTitle, SheetDescription, SheetRoot, SheetTitle, SheetContent, };
98
- export const { Backdrop: DrawerBackdrop, Close: DrawerClose, Handle: DrawerHandle, Indent: DrawerIndent, IndentBackground: DrawerIndentBackground, Popup: DrawerPopup, Portal: DrawerPortal, Provider: DrawerProvider, SwipeArea: DrawerSwipeArea, Trigger: DrawerTrigger, Viewport: DrawerViewport, VirtualKeyboardProvider: DrawerVirtualKeyboardProvider, PrimitiveContent: DrawerPrimitiveContent, Header: DrawerHeader, Body: DrawerBody, Footer: DrawerFooter, } = Drawer;
99
- export const { Backdrop: SheetBackdrop, Close: SheetClose, Handle: SheetHandle, Popup: SheetPopup, Portal: SheetPortal, Trigger: SheetTrigger, Viewport: SheetViewport, Header: SheetHeader, Body: SheetBody, Footer: SheetFooter, } = Sheet;