@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,21 +1,21 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
- const cx = (base, extra) => [base, extra].filter(Boolean).join(' ');
4
+ import { cx } from './parts.js';
5
5
  /** Layout only: filtering, routing and async results remain controlled by the caller. */
6
- const Root = React.forwardRef(function FilterBarRoot({ label, className, ...props }, ref) {
6
+ const Root = /* @__PURE__ */ React.forwardRef(function FilterBarRoot({ label, className, ...props }, ref) {
7
7
  return (_jsx("form", { ...props, ref: ref, role: 'search', "aria-label": label, className: cx('pui-filter-bar', className) }));
8
8
  });
9
- const Controls = React.forwardRef(function FilterBarControls({ className, ...props }, ref) {
9
+ const Controls = /* @__PURE__ */ React.forwardRef(function FilterBarControls({ className, ...props }, ref) {
10
10
  return (_jsx("div", { ...props, ref: ref, className: cx('pui-filter-bar-controls', className) }));
11
11
  });
12
- const Field = React.forwardRef(function FilterBarField({ width = 'filter', className, ...props }, ref) {
12
+ const Field = /* @__PURE__ */ React.forwardRef(function FilterBarField({ width = 'filter', className, ...props }, ref) {
13
13
  return (_jsx("label", { ...props, ref: ref, "data-width": width, className: cx('pui-filter-bar-field', className) }));
14
14
  });
15
- const Actions = React.forwardRef(function FilterBarActions({ className, ...props }, ref) {
15
+ const Actions = /* @__PURE__ */ React.forwardRef(function FilterBarActions({ className, ...props }, ref) {
16
16
  return (_jsx("div", { ...props, ref: ref, className: cx('pui-filter-bar-actions', className) }));
17
17
  });
18
- const Summary = React.forwardRef(function FilterBarSummary({ className, ...props }, ref) {
18
+ const Summary = /* @__PURE__ */ React.forwardRef(function FilterBarSummary({ className, ...props }, ref) {
19
19
  return (_jsx("div", { role: 'status', "aria-atomic": 'true', ...props, ref: ref, className: cx('pui-filter-bar-summary', className) }));
20
20
  });
21
21
  export const FilterBar = { Root, Controls, Field, Actions, Summary };
package/dist/form.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import { Form as BaseForm } from '@base-ui/react/form';
2
+ export declare function Form<Values extends Record<string, unknown> = Record<string, unknown>>({ className, ...props }: BaseForm.Props<Values>): import("react").JSX.Element;
package/dist/form.js ADDED
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Form as BaseForm } from '@base-ui/react/form';
4
+ import { skin } from './parts.js';
5
+ export function Form({ className, ...props }) {
6
+ return _jsx(BaseForm, { ...props, className: skin('pui-form', className) });
7
+ }
package/dist/icon.d.ts CHANGED
@@ -12,12 +12,22 @@ declare const shapes: {
12
12
  sun: React.JSX.Element;
13
13
  moon: React.JSX.Element;
14
14
  monitor: React.JSX.Element;
15
+ minus: React.JSX.Element;
16
+ 'minus-circle': React.JSX.Element;
17
+ clock: React.JSX.Element;
15
18
  'chevron-down': React.JSX.Element;
16
19
  'chevron-forward': React.JSX.Element;
20
+ 'chevron-back': React.JSX.Element;
17
21
  'arrow-back': React.JSX.Element;
22
+ 'arrow-up': React.JSX.Element;
23
+ 'arrow-down': React.JSX.Element;
24
+ sort: React.JSX.Element;
18
25
  'external-link': React.JSX.Element;
19
26
  copy: React.JSX.Element;
20
27
  play: React.JSX.Element;
28
+ upload: React.JSX.Element;
29
+ calendar: React.JSX.Element;
30
+ user: React.JSX.Element;
21
31
  settings: React.JSX.Element;
22
32
  };
23
33
  export type IconName = keyof typeof shapes;
package/dist/icon.js CHANGED
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
+ import { cx } from './parts.js';
4
5
  const shapes = {
5
6
  search: (_jsxs(_Fragment, { children: [_jsx("circle", { cx: '10.5', cy: '10.5', r: '6.5' }), _jsx("path", { d: 'm16 16 4 4' })] })),
6
7
  plus: _jsx("path", { d: 'M12 5v14M5 12h14' }),
@@ -14,16 +15,32 @@ const shapes = {
14
15
  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' })] })),
15
16
  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' }),
16
17
  monitor: (_jsxs(_Fragment, { children: [_jsx("rect", { x: '3', y: '4', width: '18', height: '13', rx: '2' }), _jsx("path", { d: 'M8 21h8m-4-4v4' })] })),
18
+ minus: _jsx("path", { d: 'M5 12h14' }),
19
+ 'minus-circle': (_jsxs(_Fragment, { children: [_jsx("circle", { cx: '12', cy: '12', r: '9' }), _jsx("path", { d: 'M8 12h8' })] })),
20
+ clock: (_jsxs(_Fragment, { children: [_jsx("circle", { cx: '12', cy: '12', r: '9' }), _jsx("path", { d: 'M12 7v6l4 2' })] })),
17
21
  'chevron-down': _jsx("path", { d: 'm7 10 5 5 5-5' }),
18
22
  'chevron-forward': _jsx("path", { d: 'm9 6 6 6-6 6' }),
23
+ 'chevron-back': _jsx("path", { d: 'm15 6-6 6 6 6' }),
19
24
  'arrow-back': _jsx("path", { d: 'M20 12H4m7-7-7 7 7 7' }),
25
+ 'arrow-up': _jsx("path", { d: 'M12 19V5m-6 6 6-6 6 6' }),
26
+ 'arrow-down': _jsx("path", { d: 'M12 5v14m-6-6 6 6 6-6' }),
27
+ sort: _jsx("path", { d: 'm8 9 4-4 4 4m-8 6 4 4 4-4' }),
20
28
  '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' }) })),
21
29
  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' })] })),
22
30
  play: _jsx("path", { d: 'm7 3 14 9-14 9V3Z' }),
31
+ upload: _jsx("path", { d: 'M12 16V3m-5 5 5-5 5 5M4 16v5h16v-5' }),
32
+ calendar: (_jsxs(_Fragment, { children: [_jsx("rect", { x: '3', y: '5', width: '18', height: '16', rx: '3' }), _jsx("path", { d: 'M7 3v4m10-4v4M3 11h18m-12 4h2' })] })),
33
+ user: (_jsxs(_Fragment, { children: [_jsx("circle", { cx: '12', cy: '8', r: '4' }), _jsx("path", { d: 'M4 21v-2a8 8 0 0 1 16 0v2' })] })),
23
34
  settings: (_jsx(_Fragment, { children: _jsx("path", { d: 'M4 6h16M4 12h16M4 18h16M9 3v6m6 0v6m-6 0v6' }) })),
24
35
  };
25
36
  export const iconNames = Object.keys(shapes);
37
+ // These point along the reading direction, so they mirror in right-to-left text.
38
+ const directional = new Set([
39
+ 'chevron-forward',
40
+ 'chevron-back',
41
+ 'arrow-back',
42
+ ]);
26
43
  /** Static SVG only. Actions, focus, accessible button names and hit targets belong to the parent control. */
27
- export const Icon = React.forwardRef(function Icon({ name, size = 'sm', decorative = true, label, className, ...props }, ref) {
28
- 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] }));
44
+ export const Icon = /* @__PURE__ */ React.forwardRef(function Icon({ name, size = 'sm', decorative = true, label, className, ...props }, ref) {
45
+ return (_jsx("svg", { ...props, ref: ref, className: cx('pui-icon', className), "data-size": size, "data-directional": directional.has(name) ? '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] }));
29
46
  });
package/dist/index.d.ts CHANGED
@@ -1,38 +1,64 @@
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';
1
+ export { Button, type ButtonVariant, type ButtonSize, type ButtonProps, LinkButton, type LinkButtonProps, } from './button.js';
2
+ export { Toolbar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarRoot, ToolbarSeparator, } from './toolbar.js';
4
3
  export { Input } from './input.js';
5
- export { Select, NativeSelect, NativeSelectOption, NativeSelectOptGroup, type SelectOption, type SelectProps, } from './select.js';
4
+ export { Select, type SelectOption, type SelectGroup, type SelectProps, } from './select.js';
5
+ export { NativeSelect, NativeSelectOption, NativeSelectOptGroup, } from './native-select.js';
6
+ export { Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldRoot, FieldValidity, } from './field.js';
7
+ export { Fieldset, FieldsetLegend, FieldsetRoot } from './fieldset.js';
8
+ export { Form } from './form.js';
9
+ export { Textarea } from './textarea.js';
10
+ export { Combobox, 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, } from './combobox.js';
11
+ export { Autocomplete, AutocompleteArrow, AutocompleteBackdrop, AutocompleteClear, AutocompleteCollection, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteIcon, AutocompleteInput, AutocompleteInputGroup, AutocompleteItem, AutocompleteList, AutocompletePopup, AutocompletePortal, AutocompletePositioner, AutocompleteRoot, AutocompleteRow, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue, AutocompleteContent, } from './autocomplete.js';
12
+ export { NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldRoot, NumberFieldScrubArea, NumberFieldScrubAreaCursor, } from './number-field.js';
13
+ export { Slider, SliderControl, SliderIndicator, SliderLabel, SliderRoot, SliderThumb, SliderTrack, SliderValue, } from './slider.js';
14
+ export { OTPField, OTPFieldInput, OTPFieldRoot, OTPFieldSeparator, OTPFieldGroup, } from './otp-field.js';
15
+ export { FileUpload, type FileUploadProps, type UploadTransport, type FileUploadLabels, type FileChangeDetails, type FileRejection, type UploadState, } from './file-upload.js';
16
+ export { Checkbox, CheckboxIndicator, CheckboxRoot } from './checkbox.js';
17
+ export { CheckboxGroup } from './checkbox-group.js';
18
+ export { Radio, RadioGroup, RadioIndicator, RadioRoot } from './radio-group.js';
19
+ export { Switch, SwitchRoot, SwitchThumb } from './switch.js';
20
+ export { Toggle } from './toggle.js';
21
+ export { ToggleGroup } from './toggle-group.js';
22
+ export { ChoiceLabel, type ChoiceLabelProps } from './choice-label.js';
6
23
  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
24
  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, TableSortHeader, TableCell, TableTruncate, TableMessage, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, type TableDensity, type TableSort, } from './data.js';
18
- export { useTableSelection, type TableSelectionOptions, type TableSelectionCheckbox, } from './table-selection.js';
19
- export { InlineMessage, EmptyState, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './messages.js';
20
- export { Card, CodeBlock, type CodeBlockProps, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './content.js';
21
- export { Pagination, type PaginationProps } 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';
25
+ export { ContextMenu, ContextMenuArrow, ContextMenuBackdrop, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuLinkItem, ContextMenuPopup, ContextMenuPortal, ContextMenuPositioner, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuRoot, ContextMenuSeparator, ContextMenuSubmenuRoot, ContextMenuSubmenuTrigger, ContextMenuTrigger, ContextMenuContent, } from './context-menu.js';
26
+ export { Tooltip, TooltipProvider } from './tooltip.js';
27
+ export { PreviewCard, PreviewCardArrow, PreviewCardBackdrop, PreviewCardHandle, PreviewCardPopup, PreviewCardPortal, PreviewCardPositioner, PreviewCardRoot, PreviewCardTrigger, PreviewCardViewport, PreviewCardContent, } from './preview-card.js';
28
+ export { Dialog, DialogBackdrop, DialogClose, DialogDescription, DialogHandle, DialogPopup, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DialogViewport, DialogContent, DialogHeader, DialogBody, DialogFooter, DialogCloseButton, } from './dialog.js';
29
+ export { AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogDescription, AlertDialogHandle, AlertDialogPopup, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, } from './alert-dialog.js';
30
+ export { Sheet, SheetBackdrop, SheetClose, SheetDescription, SheetHandle, SheetPopup, SheetPortal, SheetRoot, SheetTitle, SheetTrigger, SheetViewport, SheetContent, SheetHeader, SheetBody, SheetFooter, type PanelSide, } from './sheet.js';
31
+ export { Drawer, DrawerBackdrop, DrawerClose, DrawerContent, DrawerDescription, DrawerHandle, DrawerIndent, DrawerIndentBackground, DrawerPopup, DrawerPortal, DrawerProvider, DrawerRoot, DrawerSwipeArea, DrawerTitle, DrawerTrigger, DrawerViewport, DrawerVirtualKeyboardProvider, DrawerPrimitiveContent, DrawerHeader, DrawerBody, DrawerFooter, } from './drawer.js';
32
+ export { Tabs, TabsIndicator, TabsList, TabsPanel, TabsRoot, TabsTab, } from './tabs.js';
33
+ export { Accordion, AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger, } from './accordion.js';
34
+ export { Collapsible, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger, } from './collapsible.js';
27
35
  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';
36
+ export { Menubar } from './menubar.js';
37
+ export { Link, type LinkProps } from './link.js';
38
+ export { Breadcrumbs, BreadcrumbsRoot, BreadcrumbsList, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsSeparator, BreadcrumbsCurrent, } from './breadcrumbs.js';
39
+ export { Pagination, type PaginationProps } from './pagination.js';
40
+ export { Avatar, AvatarFallback, AvatarImage, AvatarRoot, AvatarStatus, } from './avatar.js';
41
+ export { Badge, StatusBadge, type BadgeProps, type StatusTone, } from './badge.js';
42
+ export { Card, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './card.js';
43
+ export { Table, TableContainer, TableRoot, TableCaption, TableHead, TableBody, TableFoot, TableRow, TableHeaderCell, TableSortHeader, TableCell, TableTruncate, TableMessage, type TableDensity, type TableSort, useTableSelection, type TableSelectionOptions, type TableSelectionCheckbox, } from './table.js';
44
+ export { CodeBlock, type CodeBlockProps } from './code.js';
45
+ export { SyntaxHighlighter, syntaxLanguages, type SyntaxHighlighterProps, } from './syntax-highlighter.js';
46
+ export { List, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, } from './list.js';
47
+ export { ScrollArea } from './scroll-area.js';
48
+ export { Separator } from './separator.js';
49
+ export { Progress, ProgressIndicator, ProgressLabel, ProgressRoot, ProgressTrack, ProgressValue, } from './progress.js';
50
+ export { Meter, MeterIndicator, MeterLabel, MeterRoot, MeterTrack, MeterValue, } from './meter.js';
29
51
  export { Toast, type ToastRootProps, type ToastViewportProps, ToastAction, ToastArrow, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastPositioner, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToastIcon, ToastText, } from './toast.js';
30
- export { FileUpload, type FileUploadProps, type UploadTransport, type FileUploadLabels, type FileChangeDetails, type FileRejection, type UploadState, } from './file-upload.js';
52
+ export { InlineMessage, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, } from './inline-message.js';
53
+ export { Spinner, type SpinnerProps } from './spinner.js';
54
+ export { Skeleton, type SkeletonProps } from './skeleton.js';
55
+ export { EmptyState, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './empty-state.js';
56
+ export { Container, Stack, Inline, Grid, GridItem, Surface, type SurfaceKind, type Space, } from './layout.js';
57
+ export { Heading, Text, Prose } from './typography.js';
31
58
  export { Icon, iconNames, type IconName, type IconProps } from './icon.js';
32
- export { FilterBar, FilterBarRoot, FilterBarControls, FilterBarField, FilterBarActions, FilterBarSummary, } from './filter-bar.js';
59
+ export { SizeProvider, type ComponentSize, type ComponentSizeAlias, } from './sizing.js';
60
+ export { DirectionProvider } from '@base-ui/react/direction-provider';
61
+ export { Slot } from './slot.js';
33
62
  export { AppShell, AppShellRoot, AppShellHeader, AppShellSidebar, AppShellContent, AppShellPage, AppShellFooter, AppShellLabel, AppShellLink, } from './app-shell.js';
34
- export { Tree, type TreeNode, type TreeProps } from './tree.js';
35
- export { DatePicker, DateRangePicker, TimeField, DateLocaleProvider, type DatePickerProps, type DateRangePickerProps, type TimeFieldProps, type DateValue, type TimeValue, } from './date-picker.js';
36
- export { Chart, type ChartDatum, type ChartSeries, type ChartProps, } from './chart.js';
37
- export { SyntaxHighlighter, syntaxLanguages, type SyntaxHighlighterProps, } from './syntax-highlighter.js';
38
- export { Markdown, type MarkdownProps } from './markdown.js';
63
+ export { PageHeader } from './page-header.js';
64
+ export { FilterBar, FilterBarRoot, FilterBarControls, FilterBarField, FilterBarActions, FilterBarSummary, } from './filter-bar.js';
package/dist/index.js CHANGED
@@ -1,39 +1,79 @@
1
1
  'use client';
2
- export { SizeProvider, } from './sizing.js';
3
- export { Button, } from './button.js';
4
- export { Slot } from './slot.js';
2
+ // One entry per catalog page: each module is also its own entry point, such as
3
+ // @surflane/ui/checkbox. Chart, DatePicker, Markdown, Tree and syntax highlighting
4
+ // need optional packages, so they live only on their own entry points:
5
+ // @surflane/ui/chart, /date-picker, /markdown, /tree and /syntax-highlighting.
6
+ // Actions
7
+ export { Button, LinkButton, } from './button.js';
8
+ export { Toolbar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarRoot, ToolbarSeparator, } from './toolbar.js';
9
+ // Forms
5
10
  export { Input } from './input.js';
6
- export { Select, NativeSelect, NativeSelectOption, NativeSelectOptGroup, } from './select.js';
11
+ export { Select, } from './select.js';
12
+ export { NativeSelect, NativeSelectOption, NativeSelectOptGroup, } from './native-select.js';
13
+ export { Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldRoot, FieldValidity, } from './field.js';
14
+ export { Fieldset, FieldsetLegend, FieldsetRoot } from './fieldset.js';
15
+ export { Form } from './form.js';
16
+ export { Textarea } from './textarea.js';
17
+ export { Combobox, 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, } from './combobox.js';
18
+ export { Autocomplete, AutocompleteArrow, AutocompleteBackdrop, AutocompleteClear, AutocompleteCollection, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteIcon, AutocompleteInput, AutocompleteInputGroup, AutocompleteItem, AutocompleteList, AutocompletePopup, AutocompletePortal, AutocompletePositioner, AutocompleteRoot, AutocompleteRow, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue, AutocompleteContent, } from './autocomplete.js';
19
+ export { NumberField, NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldRoot, NumberFieldScrubArea, NumberFieldScrubAreaCursor, } from './number-field.js';
20
+ export { Slider, SliderControl, SliderIndicator, SliderLabel, SliderRoot, SliderThumb, SliderTrack, SliderValue, } from './slider.js';
21
+ export { OTPField, OTPFieldInput, OTPFieldRoot, OTPFieldSeparator, OTPFieldGroup, } from './otp-field.js';
22
+ export { FileUpload, } from './file-upload.js';
23
+ // Selection
24
+ export { Checkbox, CheckboxIndicator, CheckboxRoot } from './checkbox.js';
25
+ export { CheckboxGroup } from './checkbox-group.js';
26
+ export { Radio, RadioGroup, RadioIndicator, RadioRoot } from './radio-group.js';
27
+ export { Switch, SwitchRoot, SwitchThumb } from './switch.js';
28
+ export { Toggle } from './toggle.js';
29
+ export { ToggleGroup } from './toggle-group.js';
30
+ export { ChoiceLabel } from './choice-label.js';
31
+ // Overlays
7
32
  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
33
  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, TableSortHeader, TableCell, TableTruncate, TableMessage, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, } from './data.js';
19
- export { useTableSelection, } from './table-selection.js';
20
- export { InlineMessage, EmptyState, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './messages.js';
21
- export { Card, CodeBlock, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './content.js';
22
- export { Pagination } from './pagination.js';
23
- 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';
24
- 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';
25
- export { DirectionProvider } from '@base-ui/react/direction-provider';
26
- export { Toggle, ToggleGroup, Toolbar, Menubar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarRoot, ToolbarSeparator, } from './commands.js';
27
- 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';
34
+ export { ContextMenu, ContextMenuArrow, ContextMenuBackdrop, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuLinkItem, ContextMenuPopup, ContextMenuPortal, ContextMenuPositioner, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuRoot, ContextMenuSeparator, ContextMenuSubmenuRoot, ContextMenuSubmenuTrigger, ContextMenuTrigger, ContextMenuContent, } from './context-menu.js';
35
+ export { Tooltip, TooltipProvider } from './tooltip.js';
36
+ export { PreviewCard, PreviewCardArrow, PreviewCardBackdrop, PreviewCardHandle, PreviewCardPopup, PreviewCardPortal, PreviewCardPositioner, PreviewCardRoot, PreviewCardTrigger, PreviewCardViewport, PreviewCardContent, } from './preview-card.js';
37
+ export { Dialog, DialogBackdrop, DialogClose, DialogDescription, DialogHandle, DialogPopup, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DialogViewport, DialogContent, DialogHeader, DialogBody, DialogFooter, DialogCloseButton, } from './dialog.js';
38
+ export { AlertDialog, AlertDialogBackdrop, AlertDialogClose, AlertDialogDescription, AlertDialogHandle, AlertDialogPopup, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, } from './alert-dialog.js';
39
+ export { Sheet, SheetBackdrop, SheetClose, SheetDescription, SheetHandle, SheetPopup, SheetPortal, SheetRoot, SheetTitle, SheetTrigger, SheetViewport, SheetContent, SheetHeader, SheetBody, SheetFooter, } from './sheet.js';
40
+ export { Drawer, DrawerBackdrop, DrawerClose, DrawerContent, DrawerDescription, DrawerHandle, DrawerIndent, DrawerIndentBackground, DrawerPopup, DrawerPortal, DrawerProvider, DrawerRoot, DrawerSwipeArea, DrawerTitle, DrawerTrigger, DrawerViewport, DrawerVirtualKeyboardProvider, DrawerPrimitiveContent, DrawerHeader, DrawerBody, DrawerFooter, } from './drawer.js';
41
+ // Navigation
42
+ export { Tabs, TabsIndicator, TabsList, TabsPanel, TabsRoot, TabsTab, } from './tabs.js';
43
+ export { Accordion, AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger, } from './accordion.js';
44
+ export { Collapsible, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger, } from './collapsible.js';
28
45
  export { NavigationMenu, NavigationMenuArrow, NavigationMenuBackdrop, NavigationMenuContent, NavigationMenuIcon, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPopup, NavigationMenuPortal, NavigationMenuPositioner, NavigationMenuRoot, NavigationMenuTrigger, NavigationMenuViewport, } from './navigation-menu.js';
29
- export { OTPField, OTPFieldInput, OTPFieldRoot, OTPFieldSeparator, OTPFieldGroup, } from './otp-field.js';
46
+ export { Menubar } from './menubar.js';
47
+ export { Link } from './link.js';
48
+ export { Breadcrumbs, BreadcrumbsRoot, BreadcrumbsList, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsSeparator, BreadcrumbsCurrent, } from './breadcrumbs.js';
49
+ export { Pagination } from './pagination.js';
50
+ // Data display
51
+ export { Avatar, AvatarFallback, AvatarImage, AvatarRoot, AvatarStatus, } from './avatar.js';
52
+ export { Badge, StatusBadge, } from './badge.js';
53
+ export { Card, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './card.js';
54
+ export { Table, TableContainer, TableRoot, TableCaption, TableHead, TableBody, TableFoot, TableRow, TableHeaderCell, TableSortHeader, TableCell, TableTruncate, TableMessage, useTableSelection, } from './table.js';
55
+ export { CodeBlock } from './code.js';
56
+ export { SyntaxHighlighter, syntaxLanguages, } from './syntax-highlighter.js';
57
+ export { List, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, } from './list.js';
58
+ // Structure
59
+ export { ScrollArea } from './scroll-area.js';
60
+ export { Separator } from './separator.js';
61
+ // Feedback
62
+ export { Progress, ProgressIndicator, ProgressLabel, ProgressRoot, ProgressTrack, ProgressValue, } from './progress.js';
63
+ export { Meter, MeterIndicator, MeterLabel, MeterRoot, MeterTrack, MeterValue, } from './meter.js';
30
64
  export { Toast, ToastAction, ToastArrow, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastPositioner, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToastIcon, ToastText, } from './toast.js';
31
- export { FileUpload, } from './file-upload.js';
65
+ export { InlineMessage, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, } from './inline-message.js';
66
+ export { Spinner } from './spinner.js';
67
+ export { Skeleton } from './skeleton.js';
68
+ export { EmptyState, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './empty-state.js';
69
+ // Foundations
70
+ export { Container, Stack, Inline, Grid, GridItem, Surface, } from './layout.js';
71
+ export { Heading, Text, Prose } from './typography.js';
32
72
  export { Icon, iconNames } from './icon.js';
33
- export { FilterBar, FilterBarRoot, FilterBarControls, FilterBarField, FilterBarActions, FilterBarSummary, } from './filter-bar.js';
73
+ export { SizeProvider, } from './sizing.js';
74
+ export { DirectionProvider } from '@base-ui/react/direction-provider';
75
+ export { Slot } from './slot.js';
76
+ // Patterns
34
77
  export { AppShell, AppShellRoot, AppShellHeader, AppShellSidebar, AppShellContent, AppShellPage, AppShellFooter, AppShellLabel, AppShellLink, } from './app-shell.js';
35
- export { Tree } from './tree.js';
36
- export { DatePicker, DateRangePicker, TimeField, DateLocaleProvider, } from './date-picker.js';
37
- export { Chart, } from './chart.js';
38
- export { SyntaxHighlighter, syntaxLanguages, } from './syntax-highlighter.js';
39
- export { Markdown } from './markdown.js';
78
+ export { PageHeader } from './page-header.js';
79
+ export { FilterBar, FilterBarRoot, FilterBarControls, FilterBarField, FilterBarActions, FilterBarSummary, } from './filter-bar.js';
@@ -20,34 +20,6 @@ export declare const InlineMessage: {
20
20
  size?: import("./sizing.js").ComponentSize;
21
21
  } & React.RefAttributes<HTMLDivElement>>;
22
22
  };
23
- export declare const EmptyState: {
24
- Root: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
25
- size?: import("./sizing.js").ComponentSize;
26
- } & React.RefAttributes<HTMLDivElement>>;
27
- Icon: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
28
- size?: import("./sizing.js").ComponentSize;
29
- } & React.RefAttributes<HTMLDivElement>>;
30
- Title: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & {
31
- level?: 2 | 3 | 4 | 5 | 6;
32
- } & React.RefAttributes<HTMLHeadingElement>>;
33
- Description: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">, "size"> & {
34
- size?: import("./sizing.js").ComponentSize;
35
- } & React.RefAttributes<HTMLParagraphElement>>;
36
- Actions: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
37
- size?: import("./sizing.js").ComponentSize;
38
- } & React.RefAttributes<HTMLDivElement>>;
39
- };
40
- export declare const EmptyStateRoot: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
41
- size?: import("./sizing.js").ComponentSize;
42
- } & React.RefAttributes<HTMLDivElement>>, EmptyStateIcon: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
43
- size?: import("./sizing.js").ComponentSize;
44
- } & React.RefAttributes<HTMLDivElement>>, EmptyStateTitle: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & {
45
- level?: 2 | 3 | 4 | 5 | 6;
46
- } & React.RefAttributes<HTMLHeadingElement>>, EmptyStateDescription: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">, "size"> & {
47
- size?: import("./sizing.js").ComponentSize;
48
- } & React.RefAttributes<HTMLParagraphElement>>, EmptyStateActions: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
49
- size?: import("./sizing.js").ComponentSize;
50
- } & React.RefAttributes<HTMLDivElement>>;
51
23
  export declare const InlineMessageRoot: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
52
24
  tone?: StatusTone;
53
25
  } & React.RefAttributes<HTMLDivElement>>, InlineMessageIcon: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
@@ -0,0 +1,23 @@
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, cx } from './parts.js';
6
+ import { StatusIcon } from './status.js';
7
+ const MessageRoot = /* @__PURE__ */ 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: cx('pui-message', className) }));
10
+ });
11
+ const MessageIcon = /* @__PURE__ */ React.forwardRef(function MessageIcon({ tone = 'neutral', children, className, ...props }, ref) {
12
+ return (_jsx("span", { ...props, ref: ref, "aria-hidden": 'true', className: cx('pui-message-icon', className), children: children ?? _jsx(StatusIcon, { tone: tone }) }));
13
+ });
14
+ export const InlineMessage = {
15
+ Root: MessageRoot,
16
+ Icon: MessageIcon,
17
+ Content: /* @__PURE__ */ part('div', 'pui-message-content'),
18
+ Title: /* @__PURE__ */ part('strong', 'pui-message-title'),
19
+ Description: /* @__PURE__ */ part('p', 'pui-message-description'),
20
+ Actions: /* @__PURE__ */ part('div', 'pui-message-actions'),
21
+ };
22
+ // Flat names for React Server Components, which cannot dot into client exports.
23
+ export const { Root: InlineMessageRoot, Icon: InlineMessageIcon, Content: InlineMessageContent, Title: InlineMessageTitle, Description: InlineMessageDescription, Actions: InlineMessageActions, } = InlineMessage;
package/dist/input.js CHANGED
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
+ import { cx } from './parts.js';
4
5
  import { useComponentSize } from './sizing.js';
5
6
  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) {
7
+ export const Input = /* @__PURE__ */ React.forwardRef(function Input({ className, leadingIcon, wrapperClassName, size, ...props }, ref) {
8
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) })] }));
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', "aria-hidden": 'true', children: leadingIcon })), _jsx(BaseInput, { ...props, size: typeof size === 'number' ? size : undefined, ref: ref, className: cx('pui-input', className) })] }));
10
10
  });
@@ -23,29 +23,11 @@ export declare const GridItem: React.ForwardRefExoticComponent<Omit<React.ClassA
23
23
  mediumSpan?: 1 | 2 | 3 | 4 | 5 | 6;
24
24
  smallSpan?: 1 | 2 | 3 | 4;
25
25
  }, "ref"> & React.RefAttributes<HTMLDivElement>>;
26
+ export type SurfaceKind = 'canvas' | 'subtle';
26
27
  export declare const Surface: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
27
- tone?: "canvas" | "subtle";
28
+ /** The background: subtle sits on the sheet, canvas matches it. */
29
+ surface?: SurfaceKind;
30
+ /** @deprecated Use surface; tone names a status color elsewhere. */
31
+ tone?: SurfaceKind;
28
32
  padding?: Space;
29
33
  }, "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>>;
package/dist/layout.js ADDED
@@ -0,0 +1,40 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { cx } from './parts.js';
5
+ const gapStyle = (gap, style) => ({
6
+ ...(gap === undefined ? {} : { '--layout-gap': `var(--space-${gap})` }),
7
+ ...style,
8
+ });
9
+ export const Container = /* @__PURE__ */ 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 = /* @__PURE__ */ 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 = /* @__PURE__ */ 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 = /* @__PURE__ */ 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 = /* @__PURE__ */ 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 = /* @__PURE__ */ React.forwardRef(function Surface({ surface, tone, padding, className, style, ...props }, ref) {
34
+ return (_jsx("div", { ...props, ref: ref, className: cx('pui-surface', className), "data-surface": surface ?? tone ?? 'subtle', style: {
35
+ ...(padding === undefined
36
+ ? {}
37
+ : { '--surface-padding': `var(--space-${padding})` }),
38
+ ...style,
39
+ } }));
40
+ });
package/dist/link.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ export type LinkProps = Omit<useRender.ComponentProps<'a'>, 'ref'>;
4
+ /** A text link. Pass a router's link element as `render`, such as
5
+ * `<Link render={<NextLink href='/docs' />}>Docs</Link>`, to keep client navigation. */
6
+ export declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
package/dist/link.js ADDED
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import { useRender } from '@base-ui/react/use-render';
4
+ import { cx } from './parts.js';
5
+ /** A text link. Pass a router's link element as `render`, such as
6
+ * `<Link render={<NextLink href='/docs' />}>Docs</Link>`, to keep client navigation. */
7
+ export const Link = /* @__PURE__ */ React.forwardRef(function Link({ render, className, ...props }, ref) {
8
+ return useRender({
9
+ defaultTagName: 'a',
10
+ render,
11
+ ref,
12
+ props: {
13
+ ...props,
14
+ className: cx('pui-link', className),
15
+ },
16
+ });
17
+ });
package/dist/list.d.ts ADDED
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ declare const ListRoot: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
3
+ declare const ListItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & {
4
+ selected?: boolean;
5
+ } & React.RefAttributes<HTMLLIElement>>;
6
+ export declare const List: {
7
+ Root: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
8
+ Item: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & {
9
+ selected?: boolean;
10
+ } & React.RefAttributes<HTMLLIElement>>;
11
+ Content: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
12
+ size?: import("./sizing.js").ComponentSize;
13
+ } & React.RefAttributes<HTMLDivElement>>;
14
+ Title: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
15
+ size?: import("./sizing.js").ComponentSize;
16
+ } & React.RefAttributes<HTMLDivElement>>;
17
+ Description: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">, "size"> & {
18
+ size?: import("./sizing.js").ComponentSize;
19
+ } & React.RefAttributes<HTMLParagraphElement>>;
20
+ Actions: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
21
+ size?: import("./sizing.js").ComponentSize;
22
+ } & React.RefAttributes<HTMLDivElement>>;
23
+ };
24
+ export { ListRoot, ListItem };
25
+ export declare const ListContent: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
26
+ size?: import("./sizing.js").ComponentSize;
27
+ } & React.RefAttributes<HTMLDivElement>>, ListTitle: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
28
+ size?: import("./sizing.js").ComponentSize;
29
+ } & React.RefAttributes<HTMLDivElement>>, ListDescription: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref">, "size"> & {
30
+ size?: import("./sizing.js").ComponentSize;
31
+ } & React.RefAttributes<HTMLParagraphElement>>, ListActions: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "size"> & {
32
+ size?: import("./sizing.js").ComponentSize;
33
+ } & React.RefAttributes<HTMLDivElement>>;
package/dist/list.js ADDED
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { part, cx } from './parts.js';
5
+ const ListRoot = /* @__PURE__ */ React.forwardRef(function ListRoot({ className, ...props }, ref) {
6
+ return (_jsx("ul", { role: 'list', ...props, ref: ref, className: cx('pui-list', className) }));
7
+ });
8
+ const ListItem = /* @__PURE__ */ React.forwardRef(function ListItem({ selected, className, ...props }, ref) {
9
+ return (_jsx("li", { ...props, ref: ref, "data-selected": selected || undefined, className: cx('pui-list-item', className) }));
10
+ });
11
+ export const List = {
12
+ Root: ListRoot,
13
+ Item: ListItem,
14
+ Content: /* @__PURE__ */ part('div', 'pui-list-content'),
15
+ Title: /* @__PURE__ */ part('div', 'pui-list-title'),
16
+ Description: /* @__PURE__ */ part('p', 'pui-list-description'),
17
+ Actions: /* @__PURE__ */ part('div', 'pui-list-actions'),
18
+ };
19
+ // Flat names for React Server Components, which cannot dot into client exports.
20
+ export { ListRoot, ListItem };
21
+ export const { Content: ListContent, Title: ListTitle, Description: ListDescription, Actions: ListActions, } = List;