@surflane/ui 0.12.0 → 0.13.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 (126) hide show
  1. package/dist/alert-dialog.d.ts +25 -7
  2. package/dist/alert-dialog.js +9 -4
  3. package/dist/autocomplete.d.ts +2 -6
  4. package/dist/avatar.d.ts +7 -7
  5. package/dist/avatar.js +2 -2
  6. package/dist/bar-list.js +7 -1
  7. package/dist/button.d.ts +6 -11
  8. package/dist/button.js +8 -8
  9. package/dist/card.d.ts +15 -10
  10. package/dist/card.js +7 -2
  11. package/dist/chart.d.ts +6 -4
  12. package/dist/chart.js +83 -19
  13. package/dist/choice.d.ts +2 -2
  14. package/dist/class-names.d.ts +0 -4
  15. package/dist/class-names.js +0 -14
  16. package/dist/code.d.ts +19 -7
  17. package/dist/code.js +32 -38
  18. package/dist/combobox.d.ts +2 -8
  19. package/dist/combobox.js +2 -2
  20. package/dist/context-menu.d.ts +2 -8
  21. package/dist/context-menu.js +2 -2
  22. package/dist/css/rules/alert-dialog.css +4 -2
  23. package/dist/css/rules/app-shell.css +47 -10
  24. package/dist/css/rules/bar-list.css +2 -2
  25. package/dist/css/rules/bar.css +5 -12
  26. package/dist/css/rules/bottom-navigation.css +5 -2
  27. package/dist/css/rules/breadcrumbs.css +0 -6
  28. package/dist/css/rules/button.css +4 -12
  29. package/dist/css/rules/card.css +14 -0
  30. package/dist/css/rules/chart.css +13 -5
  31. package/dist/css/rules/choice.css +26 -2
  32. package/dist/css/rules/combobox.css +17 -16
  33. package/dist/css/rules/dashboard.css +53 -1
  34. package/dist/css/rules/date-picker.css +50 -27
  35. package/dist/css/rules/dialog.css +38 -9
  36. package/dist/css/rules/disclosure.css +17 -3
  37. package/dist/css/rules/field-control.css +9 -6
  38. package/dist/css/rules/file-upload.css +9 -5
  39. package/dist/css/rules/filter-bar.css +24 -1
  40. package/dist/css/rules/gauge.css +2 -2
  41. package/dist/css/rules/icon.css +0 -5
  42. package/dist/css/rules/input-group.css +23 -8
  43. package/dist/css/rules/link.css +0 -6
  44. package/dist/css/rules/menu.css +5 -2
  45. package/dist/css/rules/menubar.css +1 -1
  46. package/dist/css/rules/navigation-menu.css +31 -26
  47. package/dist/css/rules/number-field.css +8 -1
  48. package/dist/css/rules/otp-field.css +13 -3
  49. package/dist/css/rules/page-header.css +10 -0
  50. package/dist/css/rules/panel.css +51 -10
  51. package/dist/css/rules/popup.css +50 -0
  52. package/dist/css/rules/preview-card.css +0 -21
  53. package/dist/css/rules/scroll-area.css +20 -1
  54. package/dist/css/rules/select.css +4 -1
  55. package/dist/css/rules/sizing.css +15 -3
  56. package/dist/css/rules/skeleton.css +1 -1
  57. package/dist/css/rules/slider.css +16 -8
  58. package/dist/css/rules/spinner.css +1 -1
  59. package/dist/css/rules/stat.css +9 -0
  60. package/dist/css/rules/tabs.css +14 -6
  61. package/dist/css/rules/textarea.css +28 -0
  62. package/dist/css/rules/toast.css +3 -1
  63. package/dist/css/rules/toggle.css +10 -3
  64. package/dist/css/rules/toolbar.css +10 -3
  65. package/dist/css/rules/tree.css +29 -4
  66. package/dist/dashboard.d.ts +19 -7
  67. package/dist/dashboard.js +30 -5
  68. package/dist/date-picker.d.ts +32 -3
  69. package/dist/date-picker.js +43 -4
  70. package/dist/dialog.d.ts +25 -7
  71. package/dist/dialog.js +9 -4
  72. package/dist/drawer.d.ts +10 -2
  73. package/dist/drawer.js +6 -3
  74. package/dist/icon.d.ts +5 -5
  75. package/dist/icon.js +5 -3
  76. package/dist/index.d.ts +3 -3
  77. package/dist/index.js +2 -2
  78. package/dist/inline-message.d.ts +2 -2
  79. package/dist/inline-message.js +7 -2
  80. package/dist/input.d.ts +2 -2
  81. package/dist/layout.d.ts +1 -3
  82. package/dist/layout.js +2 -2
  83. package/dist/native-select.d.ts +2 -2
  84. package/dist/navigation-menu.d.ts +16 -0
  85. package/dist/navigation-menu.js +6 -1
  86. package/dist/page-header.d.ts +10 -2
  87. package/dist/page-header.js +3 -3
  88. package/dist/panel.d.ts +6 -3
  89. package/dist/panel.js +2 -2
  90. package/dist/parts.d.ts +7 -3
  91. package/dist/parts.js +12 -4
  92. package/dist/popover.d.ts +6 -6
  93. package/dist/popover.js +3 -2
  94. package/dist/preview-card.d.ts +2 -8
  95. package/dist/preview-card.js +2 -2
  96. package/dist/select.d.ts +7 -4
  97. package/dist/select.js +23 -8
  98. package/dist/sheet.d.ts +10 -2
  99. package/dist/sheet.js +6 -3
  100. package/dist/size.d.ts +8 -6
  101. package/dist/size.js +2 -7
  102. package/dist/sizing.d.ts +13 -6
  103. package/dist/sizing.js +13 -4
  104. package/dist/sparkline.d.ts +2 -2
  105. package/dist/sparkline.js +2 -2
  106. package/dist/spinner.d.ts +2 -2
  107. package/dist/spinner.js +2 -2
  108. package/dist/stat.d.ts +6 -2
  109. package/dist/stat.js +2 -2
  110. package/dist/table.d.ts +12 -4
  111. package/dist/table.js +8 -3
  112. package/dist/textarea.d.ts +6 -3
  113. package/dist/textarea.js +2 -2
  114. package/dist/time-range-picker.d.ts +2 -2
  115. package/dist/time-range-picker.js +2 -2
  116. package/dist/toggle.d.ts +2 -2
  117. package/dist/toggle.js +2 -2
  118. package/dist/toolbar.d.ts +11 -10
  119. package/dist/toolbar.js +23 -1
  120. package/dist/tooltip.d.ts +1 -3
  121. package/dist/tooltip.js +4 -2
  122. package/dist/tree.d.ts +1 -3
  123. package/dist/tree.js +2 -2
  124. package/dist/typography.d.ts +10 -3
  125. package/dist/typography.js +4 -3
  126. package/package.json +3 -3
package/dist/tree.js CHANGED
@@ -11,7 +11,7 @@ import { ScrollArea } from './scroll-area.js';
11
11
  import { cx } from './parts.js';
12
12
  const normalize = (text) => text.normalize('NFKC').toLocaleLowerCase();
13
13
  /** Loaded, immutable hierarchy. Remote loading, permission checks and mutations remain caller-owned. */
14
- export function Tree({ nodes, label, expandedIds, defaultExpandedIds = [], onExpandedIdsChange, selectedIds, defaultSelectedIds = [], onSelectedIdsChange, selectionMode = 'single', height = 320, rowHeight: explicitRowHeight, size, virtualized = true, labels, emptyLabel, dir, className, }) {
14
+ export function Tree({ nodes, label, expandedIds, defaultExpandedIds = [], onExpandedIdsChange, selectedIds, defaultSelectedIds = [], onSelectedIdsChange, selectionMode = 'single', height = 320, rowHeight: explicitRowHeight, size, virtualized = true, labels, dir, className, }) {
15
15
  const scheme = useComponentSize(size);
16
16
  const touchFloor = React.useSyncExternalStore((listener) => {
17
17
  const query = matchMedia('(max-width: 760px), (pointer: coarse)');
@@ -313,5 +313,5 @@ export function Tree({ nodes, label, expandedIds, defaultExpandedIds = [], onExp
313
313
  item.expand();
314
314
  }, children: _jsx(Icon, { name: 'chevron-forward', "data-expanded": item.isExpanded() || undefined }) })) : (_jsx("span", { className: 'surf-tree-leaf', "aria-hidden": 'true' })),
315
315
  _jsx("span", { className: 'surf-tree-label', children: node.label })));
316
- }) })) : (_jsx("div", { role: 'status', className: 'surf-tree-empty', children: labels?.empty ?? emptyLabel ?? 'No items.' })) }));
316
+ }) })) : (_jsx("div", { role: 'status', className: 'surf-tree-empty', children: labels?.empty ?? 'No items.' })) }));
317
317
  }
@@ -1,11 +1,18 @@
1
1
  import * as React from 'react';
2
- export declare function Heading({ level, size, className, ...props }: React.HTMLAttributes<HTMLHeadingElement> & {
2
+ export type HeadingVariant = 'display' | 'title' | 'page' | 'section' | 'subsection';
3
+ export declare function Heading({ level, variant, size, className, ...props }: React.HTMLAttributes<HTMLHeadingElement> & {
3
4
  level?: 1 | 2 | 3 | 4 | 5 | 6;
4
- size?: 'display' | 'title' | 'page' | 'section' | 'subsection' | 'workspace' | 'document';
5
+ /** The type role, as Text's variant is: display, title, page, section or
6
+ * subsection. */
7
+ variant?: HeadingVariant;
8
+ /** @deprecated The earlier name for `variant`. `workspace` and `document` are
9
+ * earlier names for `display`. */
10
+ size?: HeadingVariant | 'workspace' | 'document';
5
11
  }): React.JSX.Element;
6
12
  export declare function Text({ as: Tag, variant, color, weight, className, ...props }: React.HTMLAttributes<HTMLElement> & {
7
13
  as?: 'p' | 'span' | 'div';
8
- variant?: 'body' | 'reading' | 'table' | 'caption' | 'label' | 'mono' | 'metric';
14
+ /** `table` is the earlier name for `compact`, deprecated: it renders the same. */
15
+ variant?: 'body' | 'reading' | 'compact' | 'table' | 'caption' | 'label' | 'mono' | 'metric';
9
16
  color?: 'primary' | 'secondary' | 'muted';
10
17
  weight?: 'regular' | 'medium';
11
18
  }): React.JSX.Element;
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { cx } from './class-names.js';
3
- export function Heading({ level = 2, size = 'section', className, ...props }) {
3
+ export function Heading({ level = 2, variant, size, className, ...props }) {
4
4
  const Tag = `h${level}`;
5
- return (_jsx(Tag, { ...props, className: cx('surf-heading', className), "data-size": size }));
5
+ // The role stays in data-size, which @surflane/css's heading classes read.
6
+ return (_jsx(Tag, { ...props, className: cx('surf-heading', className), "data-size": variant ?? size ?? 'section' }));
6
7
  }
7
8
  export function Text({ as: Tag = 'p', variant = 'body', color = 'primary', weight = 'regular', className, ...props }) {
8
- return (_jsx(Tag, { ...props, className: cx('surf-text', className), "data-variant": variant, "data-color": color, "data-weight": weight }));
9
+ return (_jsx(Tag, { ...props, className: cx('surf-text', className), "data-variant": variant === 'table' ? 'compact' : variant, "data-color": color, "data-weight": weight }));
9
10
  }
10
11
  export const Prose = function Prose({ className, ref, ...props }) {
11
12
  return _jsx("div", { ...props, ref: ref, className: cx('surf-prose', className) });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surflane/ui",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "Surflane React components built on Base UI, with data, chart, code and Markdown components.",
5
5
  "keywords": [
6
6
  "design-system",
@@ -421,8 +421,8 @@
421
421
  "@base-ui/react": "^1.9.0",
422
422
  "@headless-tree/core": "^1.8.0",
423
423
  "@headless-tree/react": "^1.8.0",
424
- "@surflane/css": "^0.12.0",
425
- "@surflane/design-tokens": "^0.12.0",
424
+ "@surflane/css": "^0.13.0",
425
+ "@surflane/design-tokens": "^0.13.0",
426
426
  "@tanstack/react-virtual": "^3.14.21",
427
427
  "react": "^19.0.0",
428
428
  "react-aria-components": "^1.22.1",