@surflane/ui 0.4.0 → 0.6.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 (296) hide show
  1. package/README.md +2 -2
  2. package/dist/{disclosure.d.ts → accordion.d.ts} +1 -17
  3. package/dist/{disclosure.js → accordion.js} +3 -17
  4. package/dist/alert-dialog.d.ts +31 -0
  5. package/dist/alert-dialog.js +22 -0
  6. package/dist/app-shell.d.ts +44 -3
  7. package/dist/app-shell.js +86 -13
  8. package/dist/{input-extensions.d.ts → autocomplete.d.ts} +4 -42
  9. package/dist/{input-extensions.js → autocomplete.js} +7 -26
  10. package/dist/avatar.js +3 -5
  11. package/dist/badge.d.ts +20 -0
  12. package/dist/badge.js +16 -0
  13. package/dist/bottom-navigation.d.ts +66 -0
  14. package/dist/bottom-navigation.js +36 -0
  15. package/dist/{navigation.d.ts → breadcrumbs.d.ts} +2 -6
  16. package/dist/breadcrumbs.js +31 -0
  17. package/dist/button.d.ts +11 -0
  18. package/dist/button.js +27 -4
  19. package/dist/{content.d.ts → card.d.ts} +6 -24
  20. package/dist/card.js +26 -0
  21. package/dist/chart.d.ts +35 -0
  22. package/dist/chart.js +123 -50
  23. package/dist/checkbox-group.d.ts +2 -0
  24. package/dist/checkbox-group.js +16 -0
  25. package/dist/checkbox.d.ts +9 -0
  26. package/dist/checkbox.js +29 -0
  27. package/dist/choice-label.d.ts +25 -0
  28. package/dist/choice-label.js +14 -0
  29. package/dist/choice.d.ts +7 -0
  30. package/dist/choice.js +3 -0
  31. package/dist/code.d.ts +21 -0
  32. package/dist/{content.js → code.js} +5 -30
  33. package/dist/collapsible.d.ts +18 -0
  34. package/dist/collapsible.js +21 -0
  35. package/dist/{advanced-forms.d.ts → combobox.d.ts} +5 -25
  36. package/dist/{advanced-forms.js → combobox.js} +13 -49
  37. package/dist/{context-overlays.d.ts → context-menu.d.ts} +6 -28
  38. package/dist/{context-overlays.js → context-menu.js} +5 -25
  39. package/dist/css/accordion.css +11 -0
  40. package/dist/css/alert-dialog.css +11 -0
  41. package/{src → dist/css}/all.css +1 -1
  42. package/dist/css/app-shell.css +12 -0
  43. package/dist/css/autocomplete.css +15 -0
  44. package/dist/css/avatar.css +10 -0
  45. package/dist/css/badge.css +10 -0
  46. package/dist/css/bottom-navigation.css +8 -0
  47. package/dist/css/breadcrumbs.css +12 -0
  48. package/dist/css/button.css +8 -0
  49. package/dist/css/card.css +11 -0
  50. package/dist/css/chart.css +13 -0
  51. package/dist/css/checkbox-group.css +9 -0
  52. package/dist/css/checkbox.css +9 -0
  53. package/dist/css/choice-label.css +9 -0
  54. package/dist/css/code.css +13 -0
  55. package/dist/css/collapsible.css +11 -0
  56. package/dist/css/combobox.css +14 -0
  57. package/dist/css/context-menu.css +15 -0
  58. package/dist/css/date-picker.css +12 -0
  59. package/dist/css/dialog.css +10 -0
  60. package/dist/css/drawer.css +11 -0
  61. package/dist/css/empty-state.css +9 -0
  62. package/dist/css/field.css +10 -0
  63. package/dist/css/fieldset.css +8 -0
  64. package/dist/css/file-upload.css +17 -0
  65. package/dist/css/filter-bar.css +8 -0
  66. package/dist/css/form.css +8 -0
  67. package/dist/css/icon.css +8 -0
  68. package/dist/css/inline-message.css +10 -0
  69. package/dist/css/input.css +9 -0
  70. package/dist/css/layout.css +9 -0
  71. package/dist/css/link.css +9 -0
  72. package/dist/css/list.css +9 -0
  73. package/dist/css/markdown.css +18 -0
  74. package/dist/css/menu.css +14 -0
  75. package/dist/css/menubar.css +9 -0
  76. package/dist/css/meter.css +9 -0
  77. package/dist/css/native-select.css +13 -0
  78. package/dist/css/navigation-menu.css +11 -0
  79. package/dist/css/number-field.css +11 -0
  80. package/dist/css/otp-field.css +10 -0
  81. package/dist/css/page-header.css +11 -0
  82. package/dist/css/pagination.css +11 -0
  83. package/dist/css/popover.css +9 -0
  84. package/dist/css/preview-card.css +11 -0
  85. package/dist/css/progress.css +9 -0
  86. package/dist/css/radio-group.css +9 -0
  87. package/dist/css/rules/accordion.css +21 -0
  88. package/dist/css/rules/alert-dialog.css +23 -0
  89. package/dist/css/rules/app-shell.css +220 -0
  90. package/dist/css/rules/autocomplete.css +3 -0
  91. package/dist/css/rules/avatar.css +17 -0
  92. package/dist/css/rules/badge.css +17 -0
  93. package/dist/css/rules/bar.css +38 -0
  94. package/dist/css/rules/base.css +46 -0
  95. package/dist/css/rules/bottom-navigation.css +142 -0
  96. package/dist/css/rules/breadcrumbs.css +9 -0
  97. package/dist/css/rules/button.css +131 -0
  98. package/dist/css/rules/card.css +10 -0
  99. package/dist/css/rules/chart.css +256 -0
  100. package/dist/css/rules/checkbox-group.css +3 -0
  101. package/dist/css/rules/checkbox.css +25 -0
  102. package/dist/css/rules/choice-label.css +52 -0
  103. package/dist/css/rules/choice.css +104 -0
  104. package/dist/css/rules/code.css +9 -0
  105. package/dist/css/rules/collapsible.css +12 -0
  106. package/dist/css/rules/combobox.css +177 -0
  107. package/dist/css/rules/context-menu.css +9 -0
  108. package/dist/css/rules/date-picker.css +301 -0
  109. package/dist/css/rules/dialog.css +160 -0
  110. package/dist/css/rules/disclosure.css +107 -0
  111. package/dist/css/rules/drawer.css +18 -0
  112. package/dist/css/rules/empty-state.css +9 -0
  113. package/dist/css/rules/field-control.css +70 -0
  114. package/dist/css/rules/field.css +56 -0
  115. package/dist/css/rules/fieldset.css +23 -0
  116. package/dist/css/rules/file-upload.css +156 -0
  117. package/dist/css/rules/filter-bar.css +56 -0
  118. package/dist/css/rules/form.css +15 -0
  119. package/dist/css/rules/gauge.css +61 -0
  120. package/dist/css/rules/icon.css +27 -0
  121. package/dist/css/rules/inline-message.css +10 -0
  122. package/dist/css/rules/input-group.css +69 -0
  123. package/dist/css/rules/input.css +33 -0
  124. package/dist/css/rules/item.css +14 -0
  125. package/dist/css/rules/layout.css +3 -0
  126. package/dist/css/rules/link.css +9 -0
  127. package/dist/css/rules/list.css +10 -0
  128. package/dist/css/rules/markdown.css +63 -0
  129. package/dist/css/rules/menu.css +97 -0
  130. package/dist/css/rules/menubar.css +18 -0
  131. package/dist/css/rules/meter.css +3 -0
  132. package/dist/css/rules/native-select.css +3 -0
  133. package/dist/css/rules/navigation-menu.css +159 -0
  134. package/dist/css/rules/number-field.css +55 -0
  135. package/dist/css/rules/otp-field.css +68 -0
  136. package/dist/css/rules/page-header.css +3 -0
  137. package/dist/css/rules/pagination.css +3 -0
  138. package/dist/css/rules/panel.css +221 -0
  139. package/dist/css/rules/popover.css +41 -0
  140. package/dist/css/rules/popup.css +27 -0
  141. package/dist/css/rules/preview-card.css +60 -0
  142. package/dist/css/rules/progress.css +14 -0
  143. package/dist/css/rules/radio-group.css +26 -0
  144. package/dist/css/rules/scroll-area.css +101 -0
  145. package/dist/css/rules/select.css +88 -0
  146. package/dist/css/rules/separator.css +3 -0
  147. package/dist/css/rules/sheet.css +3 -0
  148. package/dist/css/rules/sizing.css +140 -0
  149. package/dist/css/rules/skeleton.css +41 -0
  150. package/dist/css/rules/slider.css +123 -0
  151. package/dist/css/rules/sparkline.css +52 -0
  152. package/dist/css/rules/spinner.css +38 -0
  153. package/dist/css/rules/stat.css +59 -0
  154. package/dist/css/rules/switch.css +50 -0
  155. package/dist/css/rules/syntax-highlighter.css +82 -0
  156. package/dist/css/rules/table.css +28 -0
  157. package/dist/css/rules/tabs.css +126 -0
  158. package/dist/css/rules/textarea.css +21 -0
  159. package/dist/css/rules/toast.css +247 -0
  160. package/dist/css/rules/toggle-group.css +3 -0
  161. package/dist/css/rules/toggle.css +27 -0
  162. package/dist/css/rules/toolbar.css +62 -0
  163. package/dist/css/rules/tooltip.css +38 -0
  164. package/dist/css/rules/tree.css +98 -0
  165. package/dist/css/rules/typography.css +3 -0
  166. package/dist/css/scroll-area.css +8 -0
  167. package/dist/css/select.css +12 -0
  168. package/dist/css/separator.css +9 -0
  169. package/dist/css/sheet.css +11 -0
  170. package/dist/css/sizing.css +7 -0
  171. package/dist/css/skeleton.css +8 -0
  172. package/dist/css/slider.css +8 -0
  173. package/dist/css/sparkline.css +8 -0
  174. package/dist/css/spinner.css +8 -0
  175. package/dist/css/stat.css +9 -0
  176. package/dist/css/styles.css +100 -0
  177. package/dist/css/switch.css +9 -0
  178. package/dist/css/syntax-highlighter.css +9 -0
  179. package/dist/css/table.css +12 -0
  180. package/dist/css/tabs.css +8 -0
  181. package/dist/css/textarea.css +10 -0
  182. package/dist/css/toast.css +11 -0
  183. package/dist/css/toggle-group.css +9 -0
  184. package/dist/css/toggle.css +10 -0
  185. package/dist/css/toolbar.css +12 -0
  186. package/dist/css/tooltip.css +9 -0
  187. package/dist/css/tree.css +10 -0
  188. package/dist/css/typography.css +9 -0
  189. package/dist/date-picker.js +3 -2
  190. package/dist/dialog.d.ts +6 -24
  191. package/dist/dialog.js +7 -20
  192. package/dist/{panels.d.ts → drawer.d.ts} +3 -34
  193. package/dist/drawer.js +47 -0
  194. package/dist/empty-state.d.ts +29 -0
  195. package/dist/empty-state.js +19 -0
  196. package/dist/field.d.ts +42 -0
  197. package/dist/field.js +21 -0
  198. package/dist/fieldset.d.ts +14 -0
  199. package/dist/fieldset.js +10 -0
  200. package/dist/file-upload.d.ts +3 -1
  201. package/dist/file-upload.js +7 -5
  202. package/dist/filter-bar.js +1 -1
  203. package/dist/form.d.ts +2 -0
  204. package/dist/form.js +7 -0
  205. package/dist/format.d.ts +25 -0
  206. package/dist/format.js +42 -0
  207. package/dist/icon.d.ts +11 -0
  208. package/dist/icon.js +19 -3
  209. package/dist/index.d.ts +61 -30
  210. package/dist/index.js +75 -33
  211. package/dist/{messages.d.ts → inline-message.d.ts} +0 -28
  212. package/dist/{messages.js → inline-message.js} +3 -18
  213. package/dist/input.js +2 -2
  214. package/dist/{foundations.d.ts → layout.d.ts} +5 -23
  215. package/dist/{foundations.js → layout.js} +4 -19
  216. package/dist/link.d.ts +6 -0
  217. package/dist/link.js +17 -0
  218. package/dist/list.d.ts +33 -0
  219. package/dist/list.js +21 -0
  220. package/dist/markdown.js +4 -5
  221. package/dist/menu.d.ts +7 -5
  222. package/dist/menu.js +12 -8
  223. package/dist/menubar.d.ts +4 -0
  224. package/dist/menubar.js +4 -0
  225. package/dist/meter.d.ts +29 -0
  226. package/dist/meter.js +13 -0
  227. package/dist/native-select.d.ts +8 -0
  228. package/dist/native-select.js +54 -0
  229. package/dist/navigation-menu.js +8 -5
  230. package/dist/number-field.d.ts +23 -0
  231. package/dist/number-field.js +33 -0
  232. package/dist/page-header.d.ts +12 -0
  233. package/dist/page-header.js +9 -0
  234. package/dist/pagination.js +3 -4
  235. package/dist/panel.d.ts +13 -0
  236. package/dist/panel.js +13 -0
  237. package/dist/parts.d.ts +19 -1
  238. package/dist/parts.js +32 -6
  239. package/dist/popover.d.ts +23 -6
  240. package/dist/popover.js +17 -7
  241. package/dist/preview-card.d.ts +29 -0
  242. package/dist/preview-card.js +27 -0
  243. package/dist/progress.d.ts +29 -0
  244. package/dist/progress.js +13 -0
  245. package/dist/radio-group.d.ts +16 -0
  246. package/dist/radio-group.js +31 -0
  247. package/dist/scroll-area.js +3 -4
  248. package/dist/select.d.ts +8 -8
  249. package/dist/select.js +19 -54
  250. package/dist/separator.d.ts +4 -0
  251. package/dist/separator.js +8 -0
  252. package/dist/sheet.d.ts +29 -0
  253. package/dist/sheet.js +39 -0
  254. package/dist/skeleton.d.ts +8 -0
  255. package/dist/skeleton.js +8 -0
  256. package/dist/slider.d.ts +40 -0
  257. package/dist/slider.js +27 -0
  258. package/dist/sparkline.d.ts +41 -0
  259. package/dist/sparkline.js +50 -0
  260. package/dist/spinner.d.ts +13 -0
  261. package/dist/spinner.js +10 -0
  262. package/dist/stat.d.ts +59 -0
  263. package/dist/stat.js +26 -0
  264. package/dist/status.d.ts +2 -20
  265. package/dist/status.js +11 -14
  266. package/dist/switch.d.ts +13 -0
  267. package/dist/switch.js +25 -0
  268. package/dist/syntax-highlighter.js +2 -1
  269. package/dist/{data.d.ts → table.d.ts} +8 -32
  270. package/dist/{data.js → table.js} +15 -30
  271. package/dist/textarea.d.ts +7 -0
  272. package/dist/textarea.js +12 -0
  273. package/dist/toast.d.ts +57 -1
  274. package/dist/toast.js +80 -8
  275. package/dist/toggle-group.d.ts +5 -0
  276. package/dist/toggle-group.js +7 -0
  277. package/dist/toggle.d.ts +7 -0
  278. package/dist/toggle.js +9 -0
  279. package/dist/{commands.d.ts → toolbar.d.ts} +0 -13
  280. package/dist/toolbar.js +14 -0
  281. package/dist/tooltip.d.ts +10 -3
  282. package/dist/tooltip.js +4 -4
  283. package/dist/tree.js +4 -2
  284. package/dist/typography.d.ts +12 -0
  285. package/dist/typography.js +14 -0
  286. package/package.json +324 -25
  287. package/dist/chevron.d.ts +0 -3
  288. package/dist/chevron.js +0 -6
  289. package/dist/commands.js +0 -27
  290. package/dist/feedback.d.ts +0 -76
  291. package/dist/feedback.js +0 -35
  292. package/dist/forms.d.ts +0 -91
  293. package/dist/forms.js +0 -109
  294. package/dist/navigation.js +0 -41
  295. package/dist/panels.js +0 -100
  296. package/src/styles.css +0 -3780
package/dist/index.d.ts CHANGED
@@ -1,37 +1,68 @@
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';
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, type TooltipProps } 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';
14
32
  export { Tabs, TabsIndicator, TabsList, TabsPanel, TabsRoot, TabsTab, } from './tabs.js';
15
- export { Accordion, Collapsible, AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger, } from './disclosure.js';
16
- export { Avatar, AvatarFallback, AvatarImage, AvatarRoot, AvatarStatus, } from './avatar.js';
17
- export { Separator, Link, Breadcrumbs, BreadcrumbsRoot, BreadcrumbsList, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsSeparator, BreadcrumbsCurrent, } from './navigation.js';
18
- export { Badge, StatusBadge, type BadgeProps, type StatusTone, } from './status.js';
19
- export { Progress, Meter, Spinner, Skeleton, type SpinnerProps, type SkeletonProps, ProgressIndicator, ProgressLabel, ProgressRoot, ProgressTrack, ProgressValue, MeterIndicator, MeterLabel, MeterRoot, MeterTrack, MeterValue, } from './feedback.js';
20
- 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';
21
- export { useTableSelection, type TableSelectionOptions, type TableSelectionCheckbox, } from './table-selection.js';
22
- export { InlineMessage, EmptyState, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './messages.js';
23
- export { Card, CodeBlock, type CodeBlockProps, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './content.js';
24
- export { Pagination, type PaginationProps } from './pagination.js';
25
- 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';
26
- 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';
27
- export { DirectionProvider } from '@base-ui/react/direction-provider';
28
- export { Toggle, ToggleGroup, Toolbar, Menubar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarRoot, ToolbarSeparator, } from './commands.js';
29
- 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';
33
+ export { Accordion, AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger, } from './accordion.js';
34
+ export { Collapsible, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger, } from './collapsible.js';
30
35
  export { NavigationMenu, NavigationMenuArrow, NavigationMenuBackdrop, NavigationMenuContent, NavigationMenuIcon, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPopup, NavigationMenuPortal, NavigationMenuPositioner, NavigationMenuRoot, NavigationMenuTrigger, NavigationMenuViewport, } from './navigation-menu.js';
31
- export { OTPField, OTPFieldInput, OTPFieldRoot, OTPFieldSeparator, OTPFieldGroup, } from './otp-field.js';
32
- export { Toast, type ToastRootProps, type ToastViewportProps, ToastAction, ToastArrow, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastPositioner, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToastIcon, ToastText, } from './toast.js';
33
- export { FileUpload, type FileUploadProps, type UploadTransport, type FileUploadLabels, type FileChangeDetails, type FileRejection, type UploadState, } from './file-upload.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 { BottomNavigation, BottomNavigationRoot, BottomNavigationItem, type BottomNavigationRootProps, type BottomNavigationItemProps, } from './bottom-navigation.js';
41
+ export { Avatar, AvatarFallback, AvatarImage, AvatarRoot, AvatarStatus, } from './avatar.js';
42
+ export { Badge, StatusBadge, type BadgeProps, type StatusTone, } from './badge.js';
43
+ export { Card, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './card.js';
44
+ 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';
45
+ export { CodeBlock, type CodeBlockProps } from './code.js';
46
+ export { SyntaxHighlighter, syntaxLanguages, type SyntaxHighlighterProps, } from './syntax-highlighter.js';
47
+ export { List, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, } from './list.js';
48
+ export { Stat, StatRoot, StatLabel, StatValue, StatChange, StatCaption, type StatChangeProps, type StatDirection, } from './stat.js';
49
+ export { Sparkline, type SparklineProps, type SparklineTrend, } from './sparkline.js';
50
+ export { ScrollArea } from './scroll-area.js';
51
+ export { Separator } from './separator.js';
52
+ export { Progress, ProgressIndicator, ProgressLabel, ProgressRoot, ProgressTrack, ProgressValue, } from './progress.js';
53
+ export { Meter, MeterIndicator, MeterLabel, MeterRoot, MeterTrack, MeterValue, } from './meter.js';
54
+ export { Toast, type ToastRootProps, type ToastViewportProps, ToastAction, ToastArrow, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastPositioner, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToastIcon, ToastText, toast, createToaster, Toaster, type ToastOptions, type ToastStep, type ToastHelper, type ToasterProps, } from './toast.js';
55
+ export { InlineMessage, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, } from './inline-message.js';
56
+ export { Spinner, type SpinnerProps } from './spinner.js';
57
+ export { Skeleton, type SkeletonProps } from './skeleton.js';
58
+ export { EmptyState, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './empty-state.js';
59
+ export { Container, Stack, Inline, Grid, GridItem, Surface, type SurfaceKind, type Space, } from './layout.js';
60
+ export { Heading, Text, Prose } from './typography.js';
61
+ export { formatNumber, formatCurrency, formatPercent, missingValue, type NumberFormatOptions, } from './format.js';
34
62
  export { Icon, iconNames, type IconName, type IconProps } from './icon.js';
63
+ export { SizeProvider, type ComponentSize, type ComponentSizeAlias, } from './sizing.js';
64
+ export { DirectionProvider } from '@base-ui/react/direction-provider';
65
+ export { Slot } from './slot.js';
66
+ export { AppShell, AppShellRoot, AppShellHeader, AppShellSidebar, AppShellSidebarToggle, type AppShellRootProps, type AppShellSidebarToggleProps, AppShellContent, AppShellPage, AppShellFooter, AppShellLabel, AppShellLink, } from './app-shell.js';
67
+ export { PageHeader } from './page-header.js';
35
68
  export { FilterBar, FilterBarRoot, FilterBarControls, FilterBarField, FilterBarActions, FilterBarSummary, } from './filter-bar.js';
36
- export { AppShell, AppShellRoot, AppShellHeader, AppShellSidebar, AppShellContent, AppShellPage, AppShellFooter, AppShellLabel, AppShellLink, } from './app-shell.js';
37
- export { SyntaxHighlighter, syntaxLanguages, type SyntaxHighlighterProps, } from './syntax-highlighter.js';
package/dist/index.js CHANGED
@@ -1,41 +1,83 @@
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';
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
15
42
  export { Tabs, TabsIndicator, TabsList, TabsPanel, TabsRoot, TabsTab, } from './tabs.js';
16
- export { Accordion, Collapsible, AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger, } from './disclosure.js';
17
- export { Avatar, AvatarFallback, AvatarImage, AvatarRoot, AvatarStatus, } from './avatar.js';
18
- export { Separator, Link, Breadcrumbs, BreadcrumbsRoot, BreadcrumbsList, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsSeparator, BreadcrumbsCurrent, } from './navigation.js';
19
- export { Badge, StatusBadge, } from './status.js';
20
- export { Progress, Meter, Spinner, Skeleton, ProgressIndicator, ProgressLabel, ProgressRoot, ProgressTrack, ProgressValue, MeterIndicator, MeterLabel, MeterRoot, MeterTrack, MeterValue, } from './feedback.js';
21
- export { Table, List, TableContainer, TableRoot, TableCaption, TableHead, TableBody, TableFoot, TableRow, TableHeaderCell, TableSortHeader, TableCell, TableTruncate, TableMessage, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, } from './data.js';
22
- export { useTableSelection, } from './table-selection.js';
23
- export { InlineMessage, EmptyState, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './messages.js';
24
- export { Card, CodeBlock, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './content.js';
25
- export { Pagination } from './pagination.js';
26
- 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';
27
- 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';
28
- export { DirectionProvider } from '@base-ui/react/direction-provider';
29
- export { Toggle, ToggleGroup, Toolbar, Menubar, ToolbarButton, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarRoot, ToolbarSeparator, } from './commands.js';
30
- 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';
43
+ export { Accordion, AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger, } from './accordion.js';
44
+ export { Collapsible, CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger, } from './collapsible.js';
31
45
  export { NavigationMenu, NavigationMenuArrow, NavigationMenuBackdrop, NavigationMenuContent, NavigationMenuIcon, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPopup, NavigationMenuPortal, NavigationMenuPositioner, NavigationMenuRoot, NavigationMenuTrigger, NavigationMenuViewport, } from './navigation-menu.js';
32
- export { OTPField, OTPFieldInput, OTPFieldRoot, OTPFieldSeparator, OTPFieldGroup, } from './otp-field.js';
33
- export { Toast, ToastAction, ToastArrow, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastPositioner, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToastIcon, ToastText, } from './toast.js';
34
- export { FileUpload, } from './file-upload.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
+ export { BottomNavigation, BottomNavigationRoot, BottomNavigationItem, } from './bottom-navigation.js';
51
+ // Data display
52
+ export { Avatar, AvatarFallback, AvatarImage, AvatarRoot, AvatarStatus, } from './avatar.js';
53
+ export { Badge, StatusBadge, } from './badge.js';
54
+ export { Card, CardRoot, CardHeader, CardTitle, CardDescription, CardBody, CardFooter, } from './card.js';
55
+ export { Table, TableContainer, TableRoot, TableCaption, TableHead, TableBody, TableFoot, TableRow, TableHeaderCell, TableSortHeader, TableCell, TableTruncate, TableMessage, useTableSelection, } from './table.js';
56
+ export { CodeBlock } from './code.js';
57
+ export { SyntaxHighlighter, syntaxLanguages, } from './syntax-highlighter.js';
58
+ export { List, ListRoot, ListItem, ListContent, ListTitle, ListDescription, ListActions, } from './list.js';
59
+ export { Stat, StatRoot, StatLabel, StatValue, StatChange, StatCaption, } from './stat.js';
60
+ export { Sparkline, } from './sparkline.js';
61
+ // Structure
62
+ export { ScrollArea } from './scroll-area.js';
63
+ export { Separator } from './separator.js';
64
+ // Feedback
65
+ export { Progress, ProgressIndicator, ProgressLabel, ProgressRoot, ProgressTrack, ProgressValue, } from './progress.js';
66
+ export { Meter, MeterIndicator, MeterLabel, MeterRoot, MeterTrack, MeterValue, } from './meter.js';
67
+ export { Toast, ToastAction, ToastArrow, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastPositioner, ToastProvider, ToastRoot, ToastTitle, ToastViewport, ToastIcon, ToastText, toast, createToaster, Toaster, } from './toast.js';
68
+ export { InlineMessage, InlineMessageRoot, InlineMessageIcon, InlineMessageContent, InlineMessageTitle, InlineMessageDescription, InlineMessageActions, } from './inline-message.js';
69
+ export { Spinner } from './spinner.js';
70
+ export { Skeleton } from './skeleton.js';
71
+ export { EmptyState, EmptyStateRoot, EmptyStateIcon, EmptyStateTitle, EmptyStateDescription, EmptyStateActions, } from './empty-state.js';
72
+ // Foundations
73
+ export { Container, Stack, Inline, Grid, GridItem, Surface, } from './layout.js';
74
+ export { Heading, Text, Prose } from './typography.js';
75
+ export { formatNumber, formatCurrency, formatPercent, missingValue, } from './format.js';
35
76
  export { Icon, iconNames } from './icon.js';
77
+ export { SizeProvider, } from './sizing.js';
78
+ export { DirectionProvider } from '@base-ui/react/direction-provider';
79
+ export { Slot } from './slot.js';
80
+ // Patterns
81
+ export { AppShell, AppShellRoot, AppShellHeader, AppShellSidebar, AppShellSidebarToggle, AppShellContent, AppShellPage, AppShellFooter, AppShellLabel, AppShellLink, } from './app-shell.js';
82
+ export { PageHeader } from './page-header.js';
36
83
  export { FilterBar, FilterBarRoot, FilterBarControls, FilterBarField, FilterBarActions, FilterBarSummary, } from './filter-bar.js';
37
- export { AppShell, AppShellRoot, AppShellHeader, AppShellSidebar, AppShellContent, AppShellPage, AppShellFooter, AppShellLabel, AppShellLink, } from './app-shell.js';
38
- // Chart, DatePicker, Markdown, Tree and syntax highlighting need optional packages, so
39
- // they live on their own entry points: @surflane/ui/chart, /date-picker, /markdown, /tree
40
- // and /syntax-highlighting.
41
- export { SyntaxHighlighter, syntaxLanguages, } from './syntax-highlighter.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"> & {
@@ -2,14 +2,14 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import { useToneTransition } from './tone-transition.js';
5
- import { part } from './parts.js';
5
+ import { part, cx } from './parts.js';
6
6
  import { StatusIcon } from './status.js';
7
7
  const MessageRoot = /* @__PURE__ */ React.forwardRef(function MessageRoot({ tone = 'neutral', className, ...props }, ref) {
8
8
  const elementRef = useToneTransition(tone, ref);
9
- return (_jsx("div", { ...props, ref: elementRef, "data-tone": tone, className: ['pui-message', className].filter(Boolean).join(' ') }));
9
+ return (_jsx("div", { ...props, ref: elementRef, "data-tone": tone, className: cx('pui-message', className) }));
10
10
  });
11
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: ['pui-message-icon', className].filter(Boolean).join(' '), children: children ?? _jsx(StatusIcon, { tone: tone }) }));
12
+ return (_jsx("span", { ...props, ref: ref, "aria-hidden": 'true', className: cx('pui-message-icon', className), children: children ?? _jsx(StatusIcon, { tone: tone }) }));
13
13
  });
14
14
  export const InlineMessage = {
15
15
  Root: MessageRoot,
@@ -19,20 +19,5 @@ export const InlineMessage = {
19
19
  Description: /* @__PURE__ */ part('p', 'pui-message-description'),
20
20
  Actions: /* @__PURE__ */ part('div', 'pui-message-actions'),
21
21
  };
22
- const EmptyTitle = /* @__PURE__ */ 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: /* @__PURE__ */ part('div', 'pui-empty'),
31
- Icon: /* @__PURE__ */ part('div', 'pui-empty-icon'),
32
- Title: EmptyTitle,
33
- Description: /* @__PURE__ */ part('p', 'pui-empty-description'),
34
- Actions: /* @__PURE__ */ part('div', 'pui-empty-actions'),
35
- };
36
22
  // 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
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
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>>;
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
- const cx = (...values) => values.filter(Boolean).join(' ');
4
+ import { cx } from './parts.js';
5
5
  const gapStyle = (gap, style) => ({
6
6
  ...(gap === undefined ? {} : { '--layout-gap': `var(--space-${gap})` }),
7
7
  ...style,
@@ -30,26 +30,11 @@ export const GridItem = /* @__PURE__ */ React.forwardRef(function GridItem({ spa
30
30
  ...style,
31
31
  } }));
32
32
  });
33
- export const Surface = /* @__PURE__ */ 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: {
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
35
  ...(padding === undefined
36
36
  ? {}
37
37
  : { '--surface-padding': `var(--space-${padding})` }),
38
38
  ...style,
39
39
  } }));
40
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 = /* @__PURE__ */ React.forwardRef(function Prose({ className, ...props }, ref) {
54
- return _jsx("div", { ...props, ref: ref, className: cx('pui-prose', className) });
55
- });
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;
package/dist/markdown.js CHANGED
@@ -3,8 +3,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import ReactMarkdown from 'react-markdown';
5
5
  import remarkGfm from 'remark-gfm';
6
- import { CodeBlock } from './content.js';
7
- import { Table } from './data.js';
6
+ import { CodeBlock } from './code.js';
7
+ import { Table } from './table.js';
8
+ import { cx } from './parts.js';
8
9
  function text(node) {
9
10
  return 'value' in node
10
11
  ? node.value
@@ -116,7 +117,5 @@ export const Markdown = /* @__PURE__ */ React.forwardRef(function Markdown({ sou
116
117
  },
117
118
  };
118
119
  }, [headingLevel, label, codeWrap]);
119
- return (_jsx("div", { ...props, ref: ref, role: 'article', className: ['pui-prose pui-markdown', className]
120
- .filter(Boolean)
121
- .join(' '), "aria-label": label, children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], rehypePlugins: [headings], remarkRehypeOptions: { clobberPrefix: `${prefix}-` }, skipHtml: true, components: components, children: source }) }));
120
+ return (_jsx("div", { ...props, ref: ref, role: 'article', className: cx('pui-prose pui-markdown', className), "aria-label": label, children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], rehypePlugins: [headings], remarkRehypeOptions: { clobberPrefix: `${prefix}-` }, skipHtml: true, components: components, children: source }) }));
122
121
  });
package/dist/menu.d.ts CHANGED
@@ -6,10 +6,13 @@ declare const MenuPopup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("
6
6
  declare const MenuPositioner: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menu").MenuPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
7
7
  size?: import("./sizing.js").ComponentSize;
8
8
  } & React.RefAttributes<HTMLDivElement>>;
9
- declare const MenuContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/menu").MenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<Omit<Omit<import("@base-ui/react/menu").MenuPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "align" | "side" | "sideOffset" | "collisionPadding"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const MenuContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/menu").MenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<Omit<Omit<import("@base-ui/react/menu").MenuPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "side" | "align" | "sideOffset" | "collisionPadding"> & React.RefAttributes<HTMLDivElement>>;
10
10
  declare const MenuTrigger: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuTriggerProps<unknown> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
11
+ /** Content brings its own portal; Portal stays for wrapping it, or raw parts. */
12
+ declare const MenuPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
13
  export declare const Menu: {
12
- Content: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/menu").MenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<Omit<Omit<import("@base-ui/react/menu").MenuPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "align" | "side" | "sideOffset" | "collisionPadding"> & React.RefAttributes<HTMLDivElement>>;
14
+ Portal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
15
+ Content: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/menu").MenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<Omit<Omit<import("@base-ui/react/menu").MenuPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "side" | "align" | "sideOffset" | "collisionPadding"> & React.RefAttributes<HTMLDivElement>>;
13
16
  Popup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menu").MenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
14
17
  size?: import("./sizing.js").ComponentSize;
15
18
  } & React.RefAttributes<HTMLDivElement>>;
@@ -46,7 +49,6 @@ export declare const Menu: {
46
49
  Arrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
47
50
  Backdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
48
51
  Group: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
49
- Portal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
50
52
  RadioGroup: React.NamedExoticComponent<Omit<import("@base-ui/react/menu").MenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
51
53
  Root: typeof BaseMenu.Root;
52
54
  SubmenuRoot: typeof BaseMenu.SubmenuRoot;
@@ -59,7 +61,7 @@ export declare const Menu: {
59
61
  Empty: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuEmptyProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
60
62
  useFilter: typeof BaseMenu.useFilter;
61
63
  };
62
- export { MenuPopup, MenuPositioner, MenuTrigger, MenuContent };
64
+ export { MenuPopup, MenuPositioner, MenuTrigger, MenuContent, MenuPortal };
63
65
  export declare const MenuArrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuBackdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuCheckboxItem: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menu").MenuCheckboxItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref">, "size"> & {
64
66
  size?: import("./sizing.js").ComponentSize;
65
67
  } & React.RefAttributes<HTMLDivElement>>, MenuCheckboxItemIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/menu").MenuCheckboxItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>, MenuClear: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuClearProps, "ref"> & React.RefAttributes<HTMLButtonElement>>, MenuEmpty: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuEmptyProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuFilterProvider: typeof BaseMenu.FilterProvider, MenuGroup: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuGroupLabel: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menu").MenuGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
@@ -70,7 +72,7 @@ export declare const MenuArrow: React.ForwardRefExoticComponent<Omit<import("@ba
70
72
  size?: import("./sizing.js").ComponentSize;
71
73
  } & React.RefAttributes<HTMLDivElement>>, MenuLinkItem: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menu").MenuLinkItemProps, "ref"> & React.RefAttributes<Element>, "ref">, "size"> & {
72
74
  size?: import("./sizing.js").ComponentSize;
73
- } & React.RefAttributes<HTMLAnchorElement>>, MenuList: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuListProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuRadioGroup: React.NamedExoticComponent<Omit<import("@base-ui/react/menu").MenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuRadioItem: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menu").MenuRadioItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref">, "size"> & {
75
+ } & React.RefAttributes<HTMLAnchorElement>>, MenuList: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/menu").MenuListProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuRadioGroup: React.NamedExoticComponent<Omit<import("@base-ui/react/menu").MenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>, MenuRadioItem: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menu").MenuRadioItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref">, "size"> & {
74
76
  size?: import("./sizing.js").ComponentSize;
75
77
  } & React.RefAttributes<HTMLDivElement>>, MenuRadioItemIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/menu").MenuRadioItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>, MenuRoot: typeof BaseMenu.Root, MenuSeparator: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
76
78
  size?: import("./sizing.js").ComponentSize;