@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,14 +1,4 @@
1
1
  import * as React from 'react';
2
- import { type ComponentSizeAlias } from './sizing.js';
3
- import { Toggle as BaseToggle } from '@base-ui/react/toggle';
4
- import { ToggleGroup as BaseToggleGroup } from '@base-ui/react/toggle-group';
5
- export declare function Toggle<Value extends string>({ className, size, ref, ...props }: BaseToggle.Props<Value> & {
6
- size?: ComponentSizeAlias | 'icon';
7
- ref?: React.Ref<HTMLButtonElement>;
8
- }): React.JSX.Element;
9
- export declare function ToggleGroup<Value extends string>({ className, ref, ...props }: BaseToggleGroup.Props<Value> & {
10
- ref?: React.Ref<HTMLDivElement>;
11
- }): React.JSX.Element;
12
2
  export declare const Toolbar: {
13
3
  Root: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/toolbar").ToolbarRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
14
4
  size?: import("./sizing.js").ComponentSize;
@@ -29,9 +19,6 @@ export declare const Toolbar: {
29
19
  size?: import("./sizing.js").ComponentSize;
30
20
  } & React.RefAttributes<HTMLDivElement>>;
31
21
  };
32
- export declare const Menubar: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/menubar").MenubarProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
33
- size?: import("./sizing.js").ComponentSize;
34
- } & React.RefAttributes<HTMLDivElement>>;
35
22
  export declare const ToolbarButton: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/toolbar").ToolbarButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref">, "size"> & {
36
23
  size?: import("./sizing.js").ComponentSize;
37
24
  } & React.RefAttributes<HTMLButtonElement>>, ToolbarGroup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/toolbar").ToolbarGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { Toolbar as BaseToolbar } from '@base-ui/react/toolbar';
3
+ import { part } from './parts.js';
4
+ export const Toolbar = {
5
+ ...BaseToolbar,
6
+ Root: /* @__PURE__ */ part(BaseToolbar.Root, 'pui-toolbar'),
7
+ Group: /* @__PURE__ */ part(BaseToolbar.Group, 'pui-toolbar-group'),
8
+ Button: /* @__PURE__ */ part(BaseToolbar.Button, 'pui-button pui-toolbar-button'),
9
+ Link: /* @__PURE__ */ part(BaseToolbar.Link, 'pui-button pui-toolbar-link'),
10
+ Input: /* @__PURE__ */ part(BaseToolbar.Input, 'pui-input pui-toolbar-input'),
11
+ Separator: /* @__PURE__ */ part(BaseToolbar.Separator, 'pui-toolbar-separator'),
12
+ };
13
+ // Flat names for React Server Components, which cannot dot into client exports.
14
+ export const { Button: ToolbarButton, Group: ToolbarGroup, Input: ToolbarInput, Link: ToolbarLink, Root: ToolbarRoot, Separator: ToolbarSeparator, } = Toolbar;
package/dist/tooltip.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import * as React from 'react';
2
+ import { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';
2
3
  export declare function TooltipProvider({ delayDuration, skipDelayDuration, children, }: {
3
4
  delayDuration?: number;
4
5
  skipDelayDuration?: number;
5
6
  children: React.ReactNode;
6
7
  }): React.JSX.Element;
7
- export declare function Tooltip({ label, enabled, children, }: {
8
+ export declare function Tooltip({ label, enabled, side, align, sideOffset, children, }: {
8
9
  label: string;
9
10
  enabled?: boolean;
10
11
  children: React.ReactElement;
11
- }): React.JSX.Element;
12
+ } & Pick<React.ComponentPropsWithoutRef<typeof BaseTooltip.Positioner>, 'side' | 'align' | 'sideOffset'>): React.JSX.Element;
package/dist/tooltip.js CHANGED
@@ -5,9 +5,9 @@ import { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';
5
5
  export function TooltipProvider({ delayDuration = 150, skipDelayDuration = 300, children, }) {
6
6
  return (_jsx(BaseTooltip.Provider, { delay: delayDuration, closeDelay: 0, timeout: skipDelayDuration, children: children }));
7
7
  }
8
- export function Tooltip({ label, enabled = true, children, }) {
8
+ export function Tooltip({ label, enabled = true, side = 'right', align, sideOffset = 10, children, }) {
9
9
  const scheme = useComponentSize();
10
10
  if (!enabled)
11
11
  return children;
12
- return (_jsxs(BaseTooltip.Root, { children: [_jsx(BaseTooltip.Trigger, { render: children }), _jsx(BaseTooltip.Portal, { children: _jsx(BaseTooltip.Positioner, { side: 'right', sideOffset: 10, collisionPadding: 8, className: 'pui-positioner pui-tooltip-positioner', children: _jsx(BaseTooltip.Popup, { className: 'pui-tooltip', "data-ui-size": scheme, children: label }) }) })] }));
12
+ return (_jsxs(BaseTooltip.Root, { children: [_jsx(BaseTooltip.Trigger, { render: children }), _jsx(BaseTooltip.Portal, { children: _jsx(BaseTooltip.Positioner, { side: side, align: align, sideOffset: sideOffset, collisionPadding: 8, className: 'pui-positioner pui-tooltip-positioner', children: _jsx(BaseTooltip.Popup, { className: 'pui-tooltip', "data-ui-size": scheme, children: label }) }) })] }));
13
13
  }
package/dist/tree.js CHANGED
@@ -2,11 +2,13 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { createElement as _createElement } from "react";
4
4
  import * as React from 'react';
5
+ import { Icon } from './icon.js';
5
6
  import { useComponentSize } from './sizing.js';
6
7
  import { buildProxiedInstance, syncDataLoaderFeature, } from '@headless-tree/core';
7
8
  import { useTree } from '@headless-tree/react';
8
9
  import { defaultRangeExtractor, useVirtualizer, } from '@tanstack/react-virtual';
9
10
  import { ScrollArea } from './scroll-area.js';
11
+ import { cx } from './parts.js';
10
12
  const normalize = (text) => text.normalize('NFKC').toLocaleLowerCase();
11
13
  /** Loaded, immutable hierarchy. Remote loading, permission checks and mutations remain caller-owned. */
12
14
  export function Tree({ nodes, label, expandedIds, defaultExpandedIds = [], onExpandedIdsChange, selectedIds, defaultSelectedIds = [], onSelectedIdsChange, selectionMode = 'single', height = 320, rowHeight: explicitRowHeight, size, virtualized = true, emptyLabel = 'No items.', dir, className, }) {
@@ -271,7 +273,7 @@ export function Tree({ nodes, label, expandedIds, defaultExpandedIds = [], onExp
271
273
  .getVirtualItems()
272
274
  .map((row) => ({ index: row.index, start: row.start }))
273
275
  : items.map((_, index) => ({ index, start: index * rowHeight }));
274
- return (_jsx(ScrollArea, { orientation: 'vertical', label: `${label} scroll area`, tabIndex: -1, ref: viewport, scrollChain: 'contain', rootClassName: ['pui-tree-scroll', className].filter(Boolean).join(' '), dir: dir, rootStyle: { blockSize: height, direction: dir }, className: 'pui-tree-viewport', children: items.length ? (_jsx("div", { ...containerProps, ref: (element) => {
276
+ return (_jsx(ScrollArea, { orientation: 'vertical', label: `${label} scroll area`, tabIndex: -1, ref: viewport, scrollChain: 'contain', rootClassName: cx('pui-tree-scroll', className), dir: dir, rootStyle: { blockSize: height, direction: dir }, className: 'pui-tree-viewport', children: items.length ? (_jsx("div", { ...containerProps, ref: (element) => {
275
277
  container.current = element;
276
278
  containerProps.ref(element);
277
279
  }, dir: dir, className: 'pui-tree', "data-ui-size": scheme, "aria-multiselectable": selectionMode === 'multiple' || undefined, onKeyDown: keydown, onFocusCapture: () => {
@@ -305,7 +307,7 @@ export function Tree({ nodes, label, expandedIds, defaultExpandedIds = [], onExp
305
307
  item.collapse();
306
308
  else
307
309
  item.expand();
308
- }, children: _jsx("svg", { "aria-hidden": 'true', width: '14', height: '14', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "data-expanded": item.isExpanded() || undefined, children: _jsx("path", { d: 'm9 5 7 7-7 7' }) }) })) : (_jsx("span", { className: 'pui-tree-leaf', "aria-hidden": 'true' })),
310
+ }, children: _jsx(Icon, { name: 'chevron-forward', "data-expanded": item.isExpanded() || undefined }) })) : (_jsx("span", { className: 'pui-tree-leaf', "aria-hidden": 'true' })),
309
311
  _jsx("span", { className: 'pui-tree-label', children: node.label })));
310
312
  }) })) : (_jsx("div", { role: 'status', className: 'pui-tree-empty', children: emptyLabel })) }));
311
313
  }
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ export declare function Heading({ level, size, className, ...props }: React.HTMLAttributes<HTMLHeadingElement> & {
3
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
4
+ size?: 'display' | 'title' | 'page' | 'section' | 'subsection' | 'workspace' | 'document';
5
+ }): React.JSX.Element;
6
+ export declare function Text({ as: Tag, variant, color, weight, className, ...props }: React.HTMLAttributes<HTMLElement> & {
7
+ as?: 'p' | 'span' | 'div';
8
+ variant?: 'body' | 'reading' | 'table' | 'caption' | 'label' | 'mono' | 'metric';
9
+ color?: 'primary' | 'secondary' | 'muted';
10
+ weight?: 'regular' | 'medium';
11
+ }): React.JSX.Element;
12
+ export declare const Prose: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,14 @@
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
+ export function Heading({ level = 2, size = 'section', className, ...props }) {
6
+ const Tag = `h${level}`;
7
+ return (_jsx(Tag, { ...props, className: cx('pui-heading', className), "data-size": size }));
8
+ }
9
+ export function Text({ as: Tag = 'p', variant = 'body', color = 'primary', weight = 'regular', className, ...props }) {
10
+ return (_jsx(Tag, { ...props, className: cx('pui-text', className), "data-variant": variant, "data-color": color, "data-weight": weight }));
11
+ }
12
+ export const Prose = /* @__PURE__ */ React.forwardRef(function Prose({ className, ...props }, ref) {
13
+ return _jsx("div", { ...props, ref: ref, className: cx('pui-prose', className) });
14
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surflane/ui",
3
- "version": "0.3.0",
3
+ "version": "0.5.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",
@@ -29,6 +29,7 @@
29
29
  "files": [
30
30
  "dist",
31
31
  "src/styles.css",
32
+ "src/all.css",
32
33
  "LICENSE-MIT",
33
34
  "LICENSE-APACHE"
34
35
  ],
@@ -38,13 +39,14 @@
38
39
  "import": "./dist/index.js"
39
40
  },
40
41
  "./styles.css": "./src/styles.css",
42
+ "./all.css": "./src/all.css",
41
43
  "./button": {
42
44
  "types": "./dist/button.d.ts",
43
45
  "import": "./dist/button.js"
44
46
  },
45
- "./slot": {
46
- "types": "./dist/slot.d.ts",
47
- "import": "./dist/slot.js"
47
+ "./toolbar": {
48
+ "types": "./dist/toolbar.d.ts",
49
+ "import": "./dist/toolbar.js"
48
50
  },
49
51
  "./input": {
50
52
  "types": "./dist/input.d.ts",
@@ -54,45 +56,313 @@
54
56
  "types": "./dist/select.d.ts",
55
57
  "import": "./dist/select.js"
56
58
  },
59
+ "./native-select": {
60
+ "types": "./dist/native-select.d.ts",
61
+ "import": "./dist/native-select.js"
62
+ },
63
+ "./field": {
64
+ "types": "./dist/field.d.ts",
65
+ "import": "./dist/field.js"
66
+ },
67
+ "./fieldset": {
68
+ "types": "./dist/fieldset.d.ts",
69
+ "import": "./dist/fieldset.js"
70
+ },
71
+ "./form": {
72
+ "types": "./dist/form.d.ts",
73
+ "import": "./dist/form.js"
74
+ },
75
+ "./textarea": {
76
+ "types": "./dist/textarea.d.ts",
77
+ "import": "./dist/textarea.js"
78
+ },
79
+ "./combobox": {
80
+ "types": "./dist/combobox.d.ts",
81
+ "import": "./dist/combobox.js"
82
+ },
83
+ "./autocomplete": {
84
+ "types": "./dist/autocomplete.d.ts",
85
+ "import": "./dist/autocomplete.js"
86
+ },
87
+ "./number-field": {
88
+ "types": "./dist/number-field.d.ts",
89
+ "import": "./dist/number-field.js"
90
+ },
91
+ "./slider": {
92
+ "types": "./dist/slider.d.ts",
93
+ "import": "./dist/slider.js"
94
+ },
95
+ "./otp-field": {
96
+ "types": "./dist/otp-field.d.ts",
97
+ "import": "./dist/otp-field.js"
98
+ },
99
+ "./date-picker": {
100
+ "types": "./dist/date-picker.d.ts",
101
+ "import": "./dist/date-picker.js"
102
+ },
103
+ "./file-upload": {
104
+ "types": "./dist/file-upload.d.ts",
105
+ "import": "./dist/file-upload.js"
106
+ },
107
+ "./checkbox": {
108
+ "types": "./dist/checkbox.d.ts",
109
+ "import": "./dist/checkbox.js"
110
+ },
111
+ "./checkbox-group": {
112
+ "types": "./dist/checkbox-group.d.ts",
113
+ "import": "./dist/checkbox-group.js"
114
+ },
115
+ "./radio-group": {
116
+ "types": "./dist/radio-group.d.ts",
117
+ "import": "./dist/radio-group.js"
118
+ },
119
+ "./switch": {
120
+ "types": "./dist/switch.d.ts",
121
+ "import": "./dist/switch.js"
122
+ },
123
+ "./toggle": {
124
+ "types": "./dist/toggle.d.ts",
125
+ "import": "./dist/toggle.js"
126
+ },
127
+ "./toggle-group": {
128
+ "types": "./dist/toggle-group.d.ts",
129
+ "import": "./dist/toggle-group.js"
130
+ },
131
+ "./choice-label": {
132
+ "types": "./dist/choice-label.d.ts",
133
+ "import": "./dist/choice-label.js"
134
+ },
57
135
  "./popover": {
58
136
  "types": "./dist/popover.d.ts",
59
137
  "import": "./dist/popover.js"
60
138
  },
139
+ "./menu": {
140
+ "types": "./dist/menu.d.ts",
141
+ "import": "./dist/menu.js"
142
+ },
143
+ "./context-menu": {
144
+ "types": "./dist/context-menu.d.ts",
145
+ "import": "./dist/context-menu.js"
146
+ },
61
147
  "./tooltip": {
62
148
  "types": "./dist/tooltip.d.ts",
63
149
  "import": "./dist/tooltip.js"
64
150
  },
151
+ "./preview-card": {
152
+ "types": "./dist/preview-card.d.ts",
153
+ "import": "./dist/preview-card.js"
154
+ },
65
155
  "./dialog": {
66
156
  "types": "./dist/dialog.d.ts",
67
157
  "import": "./dist/dialog.js"
68
158
  },
69
- "./sizing": {
70
- "types": "./dist/sizing.d.ts",
71
- "import": "./dist/sizing.js"
159
+ "./alert-dialog": {
160
+ "types": "./dist/alert-dialog.d.ts",
161
+ "import": "./dist/alert-dialog.js"
72
162
  },
73
- "./chart": {
74
- "types": "./dist/chart.d.ts",
75
- "import": "./dist/chart.js"
163
+ "./sheet": {
164
+ "types": "./dist/sheet.d.ts",
165
+ "import": "./dist/sheet.js"
76
166
  },
77
- "./markdown": {
78
- "types": "./dist/markdown.d.ts",
79
- "import": "./dist/markdown.js"
167
+ "./drawer": {
168
+ "types": "./dist/drawer.d.ts",
169
+ "import": "./dist/drawer.js"
170
+ },
171
+ "./tabs": {
172
+ "types": "./dist/tabs.d.ts",
173
+ "import": "./dist/tabs.js"
174
+ },
175
+ "./accordion": {
176
+ "types": "./dist/accordion.d.ts",
177
+ "import": "./dist/accordion.js"
178
+ },
179
+ "./collapsible": {
180
+ "types": "./dist/collapsible.d.ts",
181
+ "import": "./dist/collapsible.js"
182
+ },
183
+ "./navigation-menu": {
184
+ "types": "./dist/navigation-menu.d.ts",
185
+ "import": "./dist/navigation-menu.js"
186
+ },
187
+ "./menubar": {
188
+ "types": "./dist/menubar.d.ts",
189
+ "import": "./dist/menubar.js"
190
+ },
191
+ "./link": {
192
+ "types": "./dist/link.d.ts",
193
+ "import": "./dist/link.js"
194
+ },
195
+ "./breadcrumbs": {
196
+ "types": "./dist/breadcrumbs.d.ts",
197
+ "import": "./dist/breadcrumbs.js"
198
+ },
199
+ "./pagination": {
200
+ "types": "./dist/pagination.d.ts",
201
+ "import": "./dist/pagination.js"
202
+ },
203
+ "./avatar": {
204
+ "types": "./dist/avatar.d.ts",
205
+ "import": "./dist/avatar.js"
206
+ },
207
+ "./badge": {
208
+ "types": "./dist/badge.d.ts",
209
+ "import": "./dist/badge.js"
210
+ },
211
+ "./card": {
212
+ "types": "./dist/card.d.ts",
213
+ "import": "./dist/card.js"
214
+ },
215
+ "./table": {
216
+ "types": "./dist/table.d.ts",
217
+ "import": "./dist/table.js"
218
+ },
219
+ "./code": {
220
+ "types": "./dist/code.d.ts",
221
+ "import": "./dist/code.js"
80
222
  },
81
223
  "./syntax-highlighter": {
82
224
  "types": "./dist/syntax-highlighter.d.ts",
83
225
  "import": "./dist/syntax-highlighter.js"
84
226
  },
227
+ "./syntax-highlighting": {
228
+ "types": "./dist/syntax-highlighting.d.ts",
229
+ "import": "./dist/syntax-highlighting.js"
230
+ },
231
+ "./markdown": {
232
+ "types": "./dist/markdown.d.ts",
233
+ "import": "./dist/markdown.js"
234
+ },
235
+ "./list": {
236
+ "types": "./dist/list.d.ts",
237
+ "import": "./dist/list.js"
238
+ },
239
+ "./tree": {
240
+ "types": "./dist/tree.d.ts",
241
+ "import": "./dist/tree.js"
242
+ },
243
+ "./chart": {
244
+ "types": "./dist/chart.d.ts",
245
+ "import": "./dist/chart.js"
246
+ },
247
+ "./scroll-area": {
248
+ "types": "./dist/scroll-area.d.ts",
249
+ "import": "./dist/scroll-area.js"
250
+ },
251
+ "./separator": {
252
+ "types": "./dist/separator.d.ts",
253
+ "import": "./dist/separator.js"
254
+ },
255
+ "./progress": {
256
+ "types": "./dist/progress.d.ts",
257
+ "import": "./dist/progress.js"
258
+ },
259
+ "./meter": {
260
+ "types": "./dist/meter.d.ts",
261
+ "import": "./dist/meter.js"
262
+ },
263
+ "./toast": {
264
+ "types": "./dist/toast.d.ts",
265
+ "import": "./dist/toast.js"
266
+ },
267
+ "./inline-message": {
268
+ "types": "./dist/inline-message.d.ts",
269
+ "import": "./dist/inline-message.js"
270
+ },
271
+ "./spinner": {
272
+ "types": "./dist/spinner.d.ts",
273
+ "import": "./dist/spinner.js"
274
+ },
275
+ "./skeleton": {
276
+ "types": "./dist/skeleton.d.ts",
277
+ "import": "./dist/skeleton.js"
278
+ },
279
+ "./empty-state": {
280
+ "types": "./dist/empty-state.d.ts",
281
+ "import": "./dist/empty-state.js"
282
+ },
283
+ "./layout": {
284
+ "types": "./dist/layout.d.ts",
285
+ "import": "./dist/layout.js"
286
+ },
287
+ "./typography": {
288
+ "types": "./dist/typography.d.ts",
289
+ "import": "./dist/typography.js"
290
+ },
291
+ "./icon": {
292
+ "types": "./dist/icon.d.ts",
293
+ "import": "./dist/icon.js"
294
+ },
295
+ "./sizing": {
296
+ "types": "./dist/sizing.d.ts",
297
+ "import": "./dist/sizing.js"
298
+ },
299
+ "./slot": {
300
+ "types": "./dist/slot.d.ts",
301
+ "import": "./dist/slot.js"
302
+ },
303
+ "./app-shell": {
304
+ "types": "./dist/app-shell.d.ts",
305
+ "import": "./dist/app-shell.js"
306
+ },
307
+ "./page-header": {
308
+ "types": "./dist/page-header.d.ts",
309
+ "import": "./dist/page-header.js"
310
+ },
311
+ "./filter-bar": {
312
+ "types": "./dist/filter-bar.d.ts",
313
+ "import": "./dist/filter-bar.js"
314
+ },
85
315
  "./package.json": "./package.json"
86
316
  },
87
317
  "scripts": {
88
- "build": "tsc -p tsconfig.json",
318
+ "build": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.json",
89
319
  "prepack": "npm run build"
90
320
  },
91
321
  "dependencies": {
92
- "@base-ui/react": "1.9.0",
322
+ "@base-ui/react": "1.9.0"
323
+ },
324
+ "peerDependencies": {
325
+ "@headless-tree/core": "^1.8.0",
326
+ "@headless-tree/react": "^1.8.0",
327
+ "@surflane/design-tokens": "^0.5.0",
328
+ "@tanstack/react-virtual": "^3.14.21",
329
+ "react": "^19.0.0",
330
+ "react-aria-components": "^1.22.1",
331
+ "react-dom": "^19.0.0",
332
+ "react-markdown": "^10.1.0",
333
+ "recharts": "^3.10.1",
334
+ "remark-gfm": "^4.0.1",
335
+ "shiki": "^4.5.0"
336
+ },
337
+ "peerDependenciesMeta": {
338
+ "@headless-tree/core": {
339
+ "optional": true
340
+ },
341
+ "@headless-tree/react": {
342
+ "optional": true
343
+ },
344
+ "@tanstack/react-virtual": {
345
+ "optional": true
346
+ },
347
+ "react-aria-components": {
348
+ "optional": true
349
+ },
350
+ "react-markdown": {
351
+ "optional": true
352
+ },
353
+ "recharts": {
354
+ "optional": true
355
+ },
356
+ "remark-gfm": {
357
+ "optional": true
358
+ },
359
+ "shiki": {
360
+ "optional": true
361
+ }
362
+ },
363
+ "devDependencies": {
93
364
  "@headless-tree/core": "1.8.0",
94
365
  "@headless-tree/react": "1.8.0",
95
- "@internationalized/date": "3.12.4",
96
366
  "@tanstack/react-virtual": "3.14.21",
97
367
  "react-aria-components": "1.22.1",
98
368
  "react-markdown": "10.1.0",
@@ -100,11 +370,6 @@
100
370
  "remark-gfm": "4.0.1",
101
371
  "shiki": "4.5.0"
102
372
  },
103
- "peerDependencies": {
104
- "@surflane/design-tokens": "^0.3.0",
105
- "react": "^19.0.0",
106
- "react-dom": "^19.0.0"
107
- },
108
373
  "publishConfig": {
109
374
  "access": "public"
110
375
  }
package/src/all.css ADDED
@@ -0,0 +1,8 @@
1
+ /* Every Surflane stylesheet in one import, in the recommended order: tokens, controls,
2
+ * composition, document typography and components. Each file keeps its cascade layer. */
3
+ @layer surflane.tokens, surflane.themes, surflane.base, surflane.components;
4
+ @import '@surflane/design-tokens/tokens.css';
5
+ @import '@surflane/design-tokens/controls.css';
6
+ @import '@surflane/design-tokens/foundations.css';
7
+ @import '@surflane/design-tokens/typography.css';
8
+ @import './styles.css';